8147151fbf
This commit does to things: moves the prior ShortChannelID struct into a new short_channel_id.go file, and also implements the new ChannelID’s currently used within he specification. These new ID’s are 32-bytes in length and used during initial channel funding as well as during normal channel updates. During initial channel funding, the ID is to be a random 32-byte string, while once normal channel operation has began, the ID is to be (txid XOR index), where index is the index of the funding outpoint.
40 lines
709 B
Go
40 lines
709 B
Go
package lnwire
|
|
|
|
import (
|
|
"reflect"
|
|
"testing"
|
|
|
|
"github.com/davecgh/go-spew/spew"
|
|
)
|
|
|
|
func TestShortChannelIDEncoding(t *testing.T) {
|
|
var testCases = []ShortChannelID{
|
|
{
|
|
BlockHeight: (1 << 24) - 1,
|
|
TxIndex: (1 << 24) - 1,
|
|
TxPosition: (1 << 16) - 1,
|
|
},
|
|
{
|
|
BlockHeight: 2304934,
|
|
TxIndex: 2345,
|
|
TxPosition: 5,
|
|
},
|
|
{
|
|
BlockHeight: 9304934,
|
|
TxIndex: 2345,
|
|
TxPosition: 5233,
|
|
},
|
|
}
|
|
|
|
for _, testCase := range testCases {
|
|
chanInt := testCase.ToUint64()
|
|
|
|
newChanID := NewShortChanIDFromInt(chanInt)
|
|
|
|
if !reflect.DeepEqual(testCase, newChanID) {
|
|
t.Fatalf("chan ID's don't match: expected %v got %v",
|
|
spew.Sdump(testCase), spew.Sdump(newChanID))
|
|
}
|
|
}
|
|
}
|