test: allow custom fee estimates

pull/89/head
Wilmer Paulino 5 years ago
parent 9f25fdd0bb
commit 09029bfdec
No known key found for this signature in database
GPG Key ID: 6DF57B9F9514972F

@ -6,12 +6,12 @@ import (
"time" "time"
"github.com/btcsuite/btcd/chaincfg" "github.com/btcsuite/btcd/chaincfg"
"github.com/lightningnetwork/lnd/lntypes"
"github.com/lightningnetwork/lnd/zpay32"
"github.com/btcsuite/btcd/wire" "github.com/btcsuite/btcd/wire"
"github.com/lightninglabs/loop/lndclient" "github.com/lightninglabs/loop/lndclient"
"github.com/lightningnetwork/lnd/chainntnfs" "github.com/lightningnetwork/lnd/chainntnfs"
"github.com/lightningnetwork/lnd/lntypes"
"github.com/lightningnetwork/lnd/lnwallet"
"github.com/lightningnetwork/lnd/zpay32"
) )
var testStartingHeight = int32(600) var testStartingHeight = int32(600)
@ -20,7 +20,9 @@ var testStartingHeight = int32(600)
// tests. // tests.
func NewMockLnd() *LndMockServices { func NewMockLnd() *LndMockServices {
lightningClient := &mockLightningClient{} lightningClient := &mockLightningClient{}
walletKit := &mockWalletKit{} walletKit := &mockWalletKit{
feeEstimates: make(map[int32]lnwallet.SatPerKWeight),
}
chainNotifier := &mockChainNotifier{} chainNotifier := &mockChainNotifier{}
signer := &mockSigner{} signer := &mockSigner{}
invoices := &mockInvoices{} invoices := &mockInvoices{}
@ -197,3 +199,9 @@ func (s *LndMockServices) DecodeInvoice(request string) (*zpay32.Invoice,
return zpay32.Decode(request, s.ChainParams) return zpay32.Decode(request, s.ChainParams)
} }
func (s *LndMockServices) SetFeeEstimate(confTarget int32,
feeEstimate lnwallet.SatPerKWeight) {
s.WalletKit.(*mockWalletKit).feeEstimates[confTarget] = feeEstimate
}

@ -8,15 +8,19 @@ import (
"github.com/btcsuite/btcd/chaincfg/chainhash" "github.com/btcsuite/btcd/chaincfg/chainhash"
"github.com/btcsuite/btcd/wire" "github.com/btcsuite/btcd/wire"
"github.com/btcsuite/btcutil" "github.com/btcsuite/btcutil"
"github.com/lightninglabs/loop/lndclient"
"github.com/lightningnetwork/lnd/keychain" "github.com/lightningnetwork/lnd/keychain"
"github.com/lightningnetwork/lnd/lnwallet" "github.com/lightningnetwork/lnd/lnwallet"
) )
type mockWalletKit struct { type mockWalletKit struct {
lnd *LndMockServices lnd *LndMockServices
keyIndex int32 keyIndex int32
feeEstimates map[int32]lnwallet.SatPerKWeight
} }
var _ lndclient.WalletKitClient = (*mockWalletKit)(nil)
func (m *mockWalletKit) DeriveNextKey(ctx context.Context, family int32) ( func (m *mockWalletKit) DeriveNextKey(ctx context.Context, family int32) (
*keychain.KeyDescriptor, error) { *keychain.KeyDescriptor, error) {
@ -87,9 +91,15 @@ func (m *mockWalletKit) SendOutputs(ctx context.Context, outputs []*wire.TxOut,
func (m *mockWalletKit) EstimateFee(ctx context.Context, confTarget int32) ( func (m *mockWalletKit) EstimateFee(ctx context.Context, confTarget int32) (
lnwallet.SatPerKWeight, error) { lnwallet.SatPerKWeight, error) {
if confTarget <= 1 { if confTarget <= 1 {
return 0, errors.New("conf target must be greater than 1") return 0, errors.New("conf target must be greater than 1")
} }
return 10000, nil feeEstimate, ok := m.feeEstimates[confTarget]
if !ok {
return 10000, nil
}
return feeEstimate, nil
} }

Loading…
Cancel
Save