fd02c1c1aa
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.
32 lines
840 B
Go
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)
|
|
}
|
|
}
|