Skip to content

Commit 935e550

Browse files
authored
Merge pull request #8463 from ProofOfKeags/refactor/chainreg/rm-channel-constraints
Remove `DefaultChannelConstraints` from PartialChainControl and lnwallet.Config
2 parents 1627976 + fb8de14 commit 935e550

File tree

8 files changed

+35
-63
lines changed

8 files changed

+35
-63
lines changed

chainreg/chainregistry.go

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -166,10 +166,6 @@ type PartialChainControl struct {
166166

167167
// MinHtlcIn is the minimum HTLC we will accept.
168168
MinHtlcIn lnwire.MilliSatoshi
169-
170-
// ChannelConstraints is the set of default constraints that will be
171-
// used for any incoming or outgoing channel reservation requests.
172-
ChannelConstraints channeldb.ChannelConstraints
173169
}
174170

175171
// ChainControl couples the three primary interfaces lnd utilizes for a
@@ -204,19 +200,6 @@ type ChainControl struct {
204200
Wallet *lnwallet.LightningWallet
205201
}
206202

207-
// GenDefaultBtcConstraints generates the default set of channel constraints
208-
// that are to be used when funding a Bitcoin channel.
209-
func GenDefaultBtcConstraints() channeldb.ChannelConstraints {
210-
// We use the dust limit for the maximally sized witness program with
211-
// a 40-byte data push.
212-
dustLimit := lnwallet.DustLimitForSize(input.UnknownWitnessSize)
213-
214-
return channeldb.ChannelConstraints{
215-
DustLimit: dustLimit,
216-
MaxAcceptedHtlcs: input.MaxHTLCNumber / 2,
217-
}
218-
}
219-
220203
// NewPartialChainControl creates a new partial chain control that contains all
221204
// the parts that can be purely constructed from the passed in global
222205
// configuration and doesn't need any wallet instance yet.
@@ -715,9 +698,6 @@ func NewPartialChainControl(cfg *Config) (*PartialChainControl, func(), error) {
715698
return nil, nil, err
716699
}
717700

718-
// Select the default channel constraints for the primary chain.
719-
cc.ChannelConstraints = GenDefaultBtcConstraints()
720-
721701
return cc, ccCleanup, nil
722702
}
723703

config_builder.go

Lines changed: 16 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -686,15 +686,14 @@ func (d *DefaultWalletImpl) BuildChainControl(
686686
// Create, and start the lnwallet, which handles the core payment
687687
// channel logic, and exposes control via proxy state machines.
688688
lnWalletConfig := lnwallet.Config{
689-
Database: partialChainControl.Cfg.ChanStateDB,
690-
Notifier: partialChainControl.ChainNotifier,
691-
WalletController: walletController,
692-
Signer: walletController,
693-
FeeEstimator: partialChainControl.FeeEstimator,
694-
SecretKeyRing: keyRing,
695-
ChainIO: walletController,
696-
DefaultConstraints: partialChainControl.ChannelConstraints,
697-
NetParams: *walletConfig.NetParams,
689+
Database: partialChainControl.Cfg.ChanStateDB,
690+
Notifier: partialChainControl.ChainNotifier,
691+
WalletController: walletController,
692+
Signer: walletController,
693+
FeeEstimator: partialChainControl.FeeEstimator,
694+
SecretKeyRing: keyRing,
695+
ChainIO: walletController,
696+
NetParams: *walletConfig.NetParams,
698697
}
699698

700699
// The broadcast is already always active for neutrino nodes, so we
@@ -801,15 +800,14 @@ func (d *RPCSignerWalletImpl) BuildChainControl(
801800
// Create, and start the lnwallet, which handles the core payment
802801
// channel logic, and exposes control via proxy state machines.
803802
lnWalletConfig := lnwallet.Config{
804-
Database: partialChainControl.Cfg.ChanStateDB,
805-
Notifier: partialChainControl.ChainNotifier,
806-
WalletController: rpcKeyRing,
807-
Signer: rpcKeyRing,
808-
FeeEstimator: partialChainControl.FeeEstimator,
809-
SecretKeyRing: rpcKeyRing,
810-
ChainIO: walletController,
811-
DefaultConstraints: partialChainControl.ChannelConstraints,
812-
NetParams: *walletConfig.NetParams,
803+
Database: partialChainControl.Cfg.ChanStateDB,
804+
Notifier: partialChainControl.ChainNotifier,
805+
WalletController: rpcKeyRing,
806+
Signer: rpcKeyRing,
807+
FeeEstimator: partialChainControl.FeeEstimator,
808+
SecretKeyRing: rpcKeyRing,
809+
ChainIO: walletController,
810+
NetParams: *walletConfig.NetParams,
813811
}
814812

815813
// We've created the wallet configuration now, so we can finish

funding/manager_test.go

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -360,15 +360,14 @@ func createTestWallet(cdb *channeldb.ChannelStateDB, netParams *chaincfg.Params,
360360
estimator chainfee.Estimator) (*lnwallet.LightningWallet, error) {
361361

362362
wallet, err := lnwallet.NewLightningWallet(lnwallet.Config{
363-
Database: cdb,
364-
Notifier: notifier,
365-
SecretKeyRing: keyRing,
366-
WalletController: wc,
367-
Signer: signer,
368-
ChainIO: bio,
369-
FeeEstimator: estimator,
370-
NetParams: *netParams,
371-
DefaultConstraints: chainreg.GenDefaultBtcConstraints(),
363+
Database: cdb,
364+
Notifier: notifier,
365+
SecretKeyRing: keyRing,
366+
WalletController: wc,
367+
Signer: signer,
368+
ChainIO: bio,
369+
FeeEstimator: estimator,
370+
NetParams: *netParams,
372371
})
373372
if err != nil {
374373
return nil, err

lnwallet/config.go

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -49,10 +49,6 @@ type Config struct {
4949
// used to lookup the existence of outputs within the UTXO set.
5050
ChainIO BlockChainIO
5151

52-
// DefaultConstraints is the set of default constraints that will be
53-
// used for any incoming or outgoing channel reservation requests.
54-
DefaultConstraints channeldb.ChannelConstraints
55-
5652
// NetParams is the set of parameters that tells the wallet which chain
5753
// it will be operating on.
5854
NetParams chaincfg.Params

lnwallet/parameters.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,3 +80,8 @@ func DustLimitForSize(scriptSize int) btcutil.Amount {
8080

8181
return dustlimit
8282
}
83+
84+
// DustLimitUnknownWitness returns the dust limit for an UnknownWitnessSize.
85+
func DustLimitUnknownWitness() btcutil.Amount {
86+
return DustLimitForSize(input.UnknownWitnessSize)
87+
}

lnwallet/reservation.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -262,7 +262,7 @@ func NewChannelReservation(capacity, localFundingAmt btcutil.Amount,
262262
}
263263

264264
// Used to cut down on verbosity.
265-
defaultDust := wallet.Cfg.DefaultConstraints.DustLimit
265+
defaultDust := DustLimitUnknownWitness()
266266

267267
// If we're the responder to a single-funder reservation, then we have
268268
// no initial balance in the channel unless the remote party is pushing

lnwallet/test/test_interface.go

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -356,14 +356,7 @@ func createTestWallet(tempTestDir string, miningNode *rpctest.Harness,
356356
Signer: signer,
357357
ChainIO: bio,
358358
FeeEstimator: chainfee.NewStaticEstimator(2500, 0),
359-
DefaultConstraints: channeldb.ChannelConstraints{
360-
DustLimit: 500,
361-
MaxPendingAmount: lnwire.NewMSatFromSatoshis(btcutil.SatoshiPerBitcoin) * 100,
362-
ChanReserve: 100,
363-
MinHTLC: 400,
364-
MaxAcceptedHtlcs: 900,
365-
},
366-
NetParams: *netParams,
359+
NetParams: *netParams,
367360
}
368361

369362
wallet, err := lnwallet.NewLightningWallet(cfg)
@@ -458,7 +451,7 @@ func testDualFundingReservationWorkflow(miner *rpctest.Harness,
458451
require.NoError(t, err, "unable to initialize funding reservation")
459452
aliceChanReservation.SetNumConfsRequired(numReqConfs)
460453
channelConstraints := &channeldb.ChannelConstraints{
461-
DustLimit: alice.Cfg.DefaultConstraints.DustLimit,
454+
DustLimit: lnwallet.DustLimitUnknownWitness(),
462455
ChanReserve: fundingAmount / 100,
463456
MaxPendingAmount: lnwire.NewMSatFromSatoshis(fundingAmount),
464457
MinHTLC: 1,
@@ -863,7 +856,7 @@ func testSingleFunderReservationWorkflow(miner *rpctest.Harness,
863856
require.NoError(t, err, "unable to init channel reservation")
864857
aliceChanReservation.SetNumConfsRequired(numReqConfs)
865858
channelConstraints := &channeldb.ChannelConstraints{
866-
DustLimit: alice.Cfg.DefaultConstraints.DustLimit,
859+
DustLimit: lnwallet.DustLimitUnknownWitness(),
867860
ChanReserve: fundingAmt / 100,
868861
MaxPendingAmount: lnwire.NewMSatFromSatoshis(fundingAmt),
869862
MinHTLC: 1,

lnwallet/wallet.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1363,7 +1363,8 @@ func (l *LightningWallet) initOurContribution(reservation *ChannelReservation,
13631363
)
13641364

13651365
reservation.partialState.RevocationProducer = producer
1366-
reservation.ourContribution.ChannelConstraints = l.Cfg.DefaultConstraints
1366+
reservation.ourContribution.ChannelConstraints.DustLimit =
1367+
DustLimitUnknownWitness()
13671368

13681369
// If taproot channels are active, then we'll generate our verification
13691370
// nonce here. We'll use this nonce to verify the signature for our

0 commit comments

Comments
 (0)