lnd.xprv/lnwire/single_funding_response_test.go
Olaoluwa Osuntokun fd02c1c1aa
lnwire: update single funder workflow to use revocation keys
This commit updates the messages sent during a single funder workflow
to utilize revocation keys rather than revocation hashes. This now
matches the latest updates to the commitment transaction.

The changes to the workflow are as follows:
  * the response message now carries the responder’s revocation key
  * the complete message now carries the initiator’s revocation key

Once the initiator receives the response message, it can construct both
versions of the commitment transaction as it now knows the responder’s
commitment key. The initiator then sends their initial revocation key
over to the responder allowing it to construct the commitment
transactions and give the initiator a sig for their version.
2016-06-30 11:50:27 -07:00

32 lines
840 B
Go

package lnwire
import (
"bytes"
"reflect"
"testing"
)
func TestSingleFundingResponseWire(t *testing.T) {
// First create a new SFR message.
delivery := PkScript(bytes.Repeat([]byte{0x02}, 25))
sfr := NewSingleFundingResponse(22, pubKey, pubKey, pubKey, 5, delivery)
// Next encode the SFR message into an empty bytes buffer.
var b bytes.Buffer
if err := sfr.Encode(&b, 0); err != nil {
t.Fatalf("unable to encode SingleFundingSignComplete: %v", err)
}
// Deserialize the encoded SFR message into a new empty struct.
sfr2 := &SingleFundingResponse{}
if err := sfr2.Decode(&b, 0); err != nil {
t.Fatalf("unable to decode SingleFundingResponse: %v", err)
}
// Assert equality of the two instances.
if !reflect.DeepEqual(sfr, sfr2) {
t.Fatalf("encode/decode error messages don't match %#v vs %#v",
sfr, sfr2)
}
}