contractcourt: update GenSweepScript to return internal key

For the upcoming aux sweeper integration, the internal key is needed for
the call backs.
This commit is contained in:
Olaoluwa Osuntokun committed 2024-10-02 18:10:01 -07:00
1 parent 9a181105e2
commit f81cd79bca
3 files changed
+19 -22

No files matched your search

+3 -3
View File
@@ -149,7 +149,7 @@ type BreachConfig struct {
Estimator chainfee.Estimator Estimator chainfee.Estimator
// GenSweepScript generates the receiving scripts for swept outputs. // GenSweepScript generates the receiving scripts for swept outputs.
GenSweepScript func() ([]byte, error) GenSweepScript func() fn.Result[lnwallet.AddrWithKey]
// Notifier provides a publish/subscribe interface for event driven // Notifier provides a publish/subscribe interface for event driven
// notifications regarding the confirmation of txids. // notifications regarding the confirmation of txids.
@@ -1517,7 +1517,7 @@ func (b *BreachArbitrator) sweepSpendableOutputsTxn(txWeight lntypes.WeightUnit,
// sweep the funds to. // sweep the funds to.
// TODO(roasbeef): possibly create many outputs to minimize change in // TODO(roasbeef): possibly create many outputs to minimize change in
// the future? // the future?
pkScript, err := b.cfg.GenSweepScript() pkScript, err := b.cfg.GenSweepScript().Unpack()
if err != nil { if err != nil {
return nil, err return nil, err
} }
@@ -1545,7 +1545,7 @@ func (b *BreachArbitrator) sweepSpendableOutputsTxn(txWeight lntypes.WeightUnit,
// We begin by adding the output to which our funds will be deposited. // We begin by adding the output to which our funds will be deposited.
txn.AddTxOut(&wire.TxOut{ txn.AddTxOut(&wire.TxOut{
PkScript: pkScript, PkScript: pkScript.DeliveryAddress,
Value: sweepAmt, Value: sweepAmt,
}) })
+13 -9
View File
@@ -2135,15 +2135,19 @@ func createTestArbiter(t *testing.T, contractBreaches chan *ContractBreachEvent,
// Assemble our test arbiter. // Assemble our test arbiter.
notifier := mock.MakeMockSpendNotifier() notifier := mock.MakeMockSpendNotifier()
ba := NewBreachArbitrator(&BreachConfig{ ba := NewBreachArbitrator(&BreachConfig{
CloseLink: func(_ *wire.OutPoint, _ ChannelCloseType) {}, CloseLink: func(_ *wire.OutPoint, _ ChannelCloseType) {},
DB: db.ChannelStateDB(), DB: db.ChannelStateDB(),
Estimator: chainfee.NewStaticEstimator(12500, 0), Estimator: chainfee.NewStaticEstimator(12500, 0),
GenSweepScript: func() ([]byte, error) { return nil, nil }, GenSweepScript: func() fn.Result[lnwallet.AddrWithKey] {
ContractBreaches: contractBreaches, return fn.Ok(lnwallet.AddrWithKey{})
Signer: signer, },
Notifier: notifier, ContractBreaches: contractBreaches,
PublishTransaction: func(_ *wire.MsgTx, _ string) error { return nil }, Signer: signer,
Store: store, Notifier: notifier,
PublishTransaction: func(_ *wire.MsgTx, _ string) error {
return nil
},
Store: store,
}) })
if err := ba.Start(); err != nil { if err := ba.Start(); err != nil {
+3 -10
View File
@@ -1177,16 +1177,9 @@ func newServer(cfg *Config, listenAddrs []net.Addr,
CloseLink: closeLink, CloseLink: closeLink,
DB: s.chanStateDB, DB: s.chanStateDB,
Estimator: s.cc.FeeEstimator, Estimator: s.cc.FeeEstimator,
GenSweepScript: func() ([]byte, error) { GenSweepScript: newSweepPkScriptGen(
addr, err := newSweepPkScriptGen( cc.Wallet, s.cfg.ActiveNetParams.Params,
cc.Wallet, netParams, ),
)().Unpack()
if err != nil {
return nil, err
}
return addr.DeliveryAddress, nil
},
Notifier: cc.ChainNotifier, Notifier: cc.ChainNotifier,
PublishTransaction: cc.Wallet.PublishTransaction, PublishTransaction: cc.Wallet.PublishTransaction,
ContractBreaches: contractBreaches, ContractBreaches: contractBreaches,