From e32d3024aeebb9286a926964c96068ea2427da42 Mon Sep 17 00:00:00 2001 From: Conner Fromknecht Date: Fri, 1 Sep 2017 03:12:02 -0700 Subject: [PATCH] server: instantiate breacharbiter using BreachConfig --- server.go | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/server.go b/server.go index be542ac93..e04afd367 100644 --- a/server.go +++ b/server.go @@ -23,6 +23,7 @@ import ( "github.com/roasbeef/btcd/btcec" "github.com/roasbeef/btcd/chaincfg/chainhash" "github.com/roasbeef/btcd/connmgr" + "github.com/roasbeef/btcd/wire" "github.com/roasbeef/btcutil" "github.com/go-errors/errors" @@ -288,8 +289,27 @@ func newServer(listenAddrs []string, chanDB *channeldb.DB, cc *chainControl, return nil, err } - s.breachArbiter = newBreachArbiter(cc.wallet, chanDB, cc.chainNotifier, - s.htlcSwitch, s.cc.chainIO, s.cc.feeEstimator) + // Construct a closure that wraps the htlcswitch's CloseLink method. + closeLink := func(chanPoint *wire.OutPoint, + closureType htlcswitch.ChannelCloseType) { + // TODO(conner): Properly respect the update and error channels + // returned by CloseLink. + s.htlcSwitch.CloseLink(chanPoint, closureType) + } + + s.breachArbiter = newBreachArbiter(&BreachConfig{ + Signer: cc.wallet.Cfg.Signer, + DB: chanDB, + PublishTransaction: cc.wallet.PublishTransaction, + Notifier: cc.chainNotifier, + ChainIO: s.cc.chainIO, + Estimator: s.cc.feeEstimator, + CloseLink: closeLink, + Store: newRetributionStore(chanDB), + GenSweepScript: func() ([]byte, error) { + return newSweepPkScript(cc.wallet) + }, + }) // Create the connection manager which will be responsible for // maintaining persistent outbound connections and also accepting new