watchtower/multi: define blob TypeAltruistCommit and TypeRewardCommit
This commit is contained in:
6 files changed
+54
-54
No files matched your search
@@ -56,15 +56,11 @@ type descriptorTest struct {
|
||||
decErr error
|
||||
}
|
||||
|
||||
var rewardAndCommitType = blob.TypeFromFlags(
|
||||
blob.FlagReward, blob.FlagCommitOutputs,
|
||||
)
|
||||
|
||||
var descriptorTests = []descriptorTest{
|
||||
{
|
||||
name: "to-local only",
|
||||
encVersion: blob.TypeDefault,
|
||||
decVersion: blob.TypeDefault,
|
||||
encVersion: blob.TypeAltruistCommit,
|
||||
decVersion: blob.TypeAltruistCommit,
|
||||
sweepAddr: makeAddr(22),
|
||||
revPubKey: makePubKey(0),
|
||||
delayPubKey: makePubKey(1),
|
||||
@@ -73,8 +69,8 @@ var descriptorTests = []descriptorTest{
|
||||
},
|
||||
{
|
||||
name: "to-local and p2wkh",
|
||||
encVersion: rewardAndCommitType,
|
||||
decVersion: rewardAndCommitType,
|
||||
encVersion: blob.TypeRewardCommit,
|
||||
decVersion: blob.TypeRewardCommit,
|
||||
sweepAddr: makeAddr(22),
|
||||
revPubKey: makePubKey(0),
|
||||
delayPubKey: makePubKey(1),
|
||||
@@ -87,7 +83,7 @@ var descriptorTests = []descriptorTest{
|
||||
{
|
||||
name: "unknown encrypt version",
|
||||
encVersion: 0,
|
||||
decVersion: blob.TypeDefault,
|
||||
decVersion: blob.TypeAltruistCommit,
|
||||
sweepAddr: makeAddr(34),
|
||||
revPubKey: makePubKey(0),
|
||||
delayPubKey: makePubKey(1),
|
||||
@@ -97,7 +93,7 @@ var descriptorTests = []descriptorTest{
|
||||
},
|
||||
{
|
||||
name: "unknown decrypt version",
|
||||
encVersion: blob.TypeDefault,
|
||||
encVersion: blob.TypeAltruistCommit,
|
||||
decVersion: 0,
|
||||
sweepAddr: makeAddr(34),
|
||||
revPubKey: makePubKey(0),
|
||||
@@ -108,8 +104,8 @@ var descriptorTests = []descriptorTest{
|
||||
},
|
||||
{
|
||||
name: "sweep addr length zero",
|
||||
encVersion: blob.TypeDefault,
|
||||
decVersion: blob.TypeDefault,
|
||||
encVersion: blob.TypeAltruistCommit,
|
||||
decVersion: blob.TypeAltruistCommit,
|
||||
sweepAddr: makeAddr(0),
|
||||
revPubKey: makePubKey(0),
|
||||
delayPubKey: makePubKey(1),
|
||||
@@ -118,8 +114,8 @@ var descriptorTests = []descriptorTest{
|
||||
},
|
||||
{
|
||||
name: "sweep addr max size",
|
||||
encVersion: blob.TypeDefault,
|
||||
decVersion: blob.TypeDefault,
|
||||
encVersion: blob.TypeAltruistCommit,
|
||||
decVersion: blob.TypeAltruistCommit,
|
||||
sweepAddr: makeAddr(blob.MaxSweepAddrSize),
|
||||
revPubKey: makePubKey(0),
|
||||
delayPubKey: makePubKey(1),
|
||||
@@ -128,8 +124,8 @@ var descriptorTests = []descriptorTest{
|
||||
},
|
||||
{
|
||||
name: "sweep addr too long",
|
||||
encVersion: blob.TypeDefault,
|
||||
decVersion: blob.TypeDefault,
|
||||
encVersion: blob.TypeAltruistCommit,
|
||||
decVersion: blob.TypeAltruistCommit,
|
||||
sweepAddr: makeAddr(blob.MaxSweepAddrSize + 1),
|
||||
revPubKey: makePubKey(0),
|
||||
delayPubKey: makePubKey(1),
|
||||
|
||||
+11
-5
@@ -45,9 +45,15 @@ func (f Flag) String() string {
|
||||
// of the blob itself.
|
||||
type Type uint16
|
||||
|
||||
// TypeDefault sweeps only commitment outputs to a sweep address controlled by
|
||||
// the user, and does not give the tower a reward.
|
||||
const TypeDefault = Type(FlagCommitOutputs)
|
||||
const (
|
||||
// TypeAltruistCommit sweeps only commitment outputs to a sweep address
|
||||
// controlled by the user, and does not give the tower a reward.
|
||||
TypeAltruistCommit = Type(FlagCommitOutputs)
|
||||
|
||||
// TypeRewardCommit sweeps only commitment outputs to a sweep address
|
||||
// controlled by the user, and pays a negotiated reward to the tower.
|
||||
TypeRewardCommit = Type(FlagCommitOutputs | FlagReward)
|
||||
)
|
||||
|
||||
// Has returns true if the Type has the passed flag enabled.
|
||||
func (t Type) Has(flag Flag) bool {
|
||||
@@ -114,8 +120,8 @@ func (t Type) String() string {
|
||||
// supportedTypes is the set of all configurations known to be supported by the
|
||||
// package.
|
||||
var supportedTypes = map[Type]struct{}{
|
||||
FlagCommitOutputs.Type(): {},
|
||||
(FlagCommitOutputs | FlagReward).Type(): {},
|
||||
TypeAltruistCommit: {},
|
||||
TypeRewardCommit: {},
|
||||
}
|
||||
|
||||
// IsSupportedType returns true if the given type is supported by the package.
|
||||
|
||||
@@ -17,12 +17,12 @@ type typeStringTest struct {
|
||||
var typeStringTests = []typeStringTest{
|
||||
{
|
||||
name: "commit no-reward",
|
||||
typ: blob.TypeDefault,
|
||||
typ: blob.TypeAltruistCommit,
|
||||
expStr: "[FlagCommitOutputs|No-FlagReward]",
|
||||
},
|
||||
{
|
||||
name: "commit reward",
|
||||
typ: (blob.FlagCommitOutputs | blob.FlagReward).Type(),
|
||||
typ: blob.TypeRewardCommit,
|
||||
expStr: "[FlagCommitOutputs|FlagReward]",
|
||||
},
|
||||
{
|
||||
@@ -75,7 +75,7 @@ var typeFromFlagTests = []typeFromFlagTest{
|
||||
{
|
||||
name: "multiple flags",
|
||||
flags: []blob.Flag{blob.FlagReward, blob.FlagCommitOutputs},
|
||||
expType: blob.Type(blob.FlagReward | blob.FlagCommitOutputs),
|
||||
expType: blob.TypeRewardCommit,
|
||||
},
|
||||
{
|
||||
name: "duplicate flag",
|
||||
@@ -119,8 +119,8 @@ func TestTypeFromFlags(t *testing.T) {
|
||||
// blob.DefaultType returns true.
|
||||
func TestSupportedTypes(t *testing.T) {
|
||||
// Assert that the package's default type is supported.
|
||||
if !blob.IsSupportedType(blob.TypeDefault) {
|
||||
t.Fatalf("default type %s is not supported", blob.TypeDefault)
|
||||
if !blob.IsSupportedType(blob.TypeAltruistCommit) {
|
||||
t.Fatalf("default type %s is not supported", blob.TypeAltruistCommit)
|
||||
}
|
||||
|
||||
// Assert that all claimed supported types are actually supported.
|
||||
|
||||
Reference in new issue
Block a user