mirror of
https://github.com/lightningnetwork/lnd.git
synced 2025-08-30 15:40:59 +02:00
contractcourt: add onchain interception
This commit is contained in:
57
witness_beacon_test.go
Normal file
57
witness_beacon_test.go
Normal 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
|
||||
}
|
Reference in New Issue
Block a user