diff --git a/lwk/lwkwallet.go b/lwk/lwkwallet.go index 61c64619..9cddc83d 100644 --- a/lwk/lwkwallet.go +++ b/lwk/lwkwallet.go @@ -15,7 +15,7 @@ import ( const ( kiloByte = 1000 - minimumSatPerByte = 0.1 + minimumSatPerByte = 0.2 ) // LWKRpcWallet uses the elementsd rpc wallet @@ -69,6 +69,14 @@ func (r *LWKRpcWallet) setupWallet() error { func (r *LWKRpcWallet) CreateAndBroadcastTransaction(swapParams *swap.OpeningParams, asset []byte) (txid, rawTx string, fee uint64, err error) { ctx := context.Background() + feeRes, err := r.electrumClient.GetFee(ctx, wallet.LiquidTargetBlocks) + satPerByte := float64(feeRes) / float64(kiloByte) + if err != nil { + satPerByte = minimumSatPerByte + } + if satPerByte < minimumSatPerByte { + satPerByte = minimumSatPerByte + } fundedTx, err := r.lwkClient.send(ctx, &sendRequest{ Addressees: []*unvalidatedAddressee{ { @@ -77,6 +85,7 @@ func (r *LWKRpcWallet) CreateAndBroadcastTransaction(swapParams *swap.OpeningPar }, }, WalletName: r.walletName, + FeeRate: &satPerByte, }) if err != nil { return "", "", 0, err