contractcourt: add onchain interception

This commit is contained in:
Joost Jager
2022-02-04 14:32:15 +01:00
parent c392e003aa
commit 721fb4ee88
11 changed files with 264 additions and 16 deletions

57
witness_beacon_test.go Normal file
View File

@@ -0,0 +1,57 @@
package lnd
import (
"testing"
"github.com/lightningnetwork/lnd/channeldb"
"github.com/lightningnetwork/lnd/htlcswitch"
"github.com/lightningnetwork/lnd/htlcswitch/hop"
"github.com/lightningnetwork/lnd/lntypes"
"github.com/lightningnetwork/lnd/lnwire"
"github.com/stretchr/testify/require"
)
// TestWitnessBeaconIntercept tests that the beacon passes on subscriptions to
// the interceptor correctly.
func TestWitnessBeaconIntercept(t *testing.T) {
var interceptedFwd htlcswitch.InterceptedForward
interceptor := func(fwd htlcswitch.InterceptedForward) error {
interceptedFwd = fwd
return nil
}
p := newPreimageBeacon(
&mockWitnessCache{}, interceptor,
)
preimage := lntypes.Preimage{1, 2, 3}
hash := preimage.Hash()
subscription, err := p.SubscribeUpdates(
lnwire.NewShortChanIDFromInt(1),
&channeldb.HTLC{
RHash: hash,
},
&hop.Payload{},
[]byte{2},
)
require.NoError(t, err)
defer subscription.CancelSubscription()
require.NoError(t, interceptedFwd.Settle(preimage))
update := <-subscription.WitnessUpdates
require.Equal(t, preimage, update)
}
type mockWitnessCache struct {
witnessCache
}
func (w *mockWitnessCache) AddSha256Witnesses(
preimages ...lntypes.Preimage) error {
return nil
}