diff --git a/lwk/lwkwallet.go b/lwk/lwkwallet.go index 227116f1..abdb978b 100644 --- a/lwk/lwkwallet.go +++ b/lwk/lwkwallet.go @@ -226,7 +226,9 @@ func (r *LWKRpcWallet) SendRawTx(txHex string) (string, error) { func (r *LWKRpcWallet) getFeePerKb(ctx context.Context) SatPerKVByte { feeBTCPerKb, err := r.electrumClient.GetFee(ctx, wallet.LiquidTargetBlocks) // convert to sat per byte - satPerByte := uint64(float64(feeBTCPerKb) * math.Pow10(int(8))) + // 1 kb = 1000 bytes + var kb float64 = 1000 + satPerByte := uint64(float64(feeBTCPerKb) * math.Pow10(int(8)) / kb) if satPerByte < minimumSatPerByte { satPerByte = minimumSatPerByte } diff --git a/test/lwk_cln_test.go b/test/lwk_cln_test.go index 96382b8e..f0308363 100644 --- a/test/lwk_cln_test.go +++ b/test/lwk_cln_test.go @@ -94,4 +94,84 @@ func Test_ClnCln_LWK_SwapIn(t *testing.T) { }() preimageClaimTest(t, params) }) + t.Run("claim_coop", func(t *testing.T) { + t.Parallel() + require := require.New(t) + + bitcoind, liquidd, lightningds, scid, electrs, lwk := clnclnLWKSetup(t, uint64(math.Pow10(9))) + defer func() { + if t.Failed() { + filter := os.Getenv("PEERSWAP_TEST_FILTER") + pprintFail( + tailableProcess{ + p: bitcoind.DaemonProcess, + lines: defaultLines, + }, + tailableProcess{ + p: liquidd.DaemonProcess, + lines: defaultLines, + }, + tailableProcess{ + p: lightningds[0].DaemonProcess, + filter: filter, + lines: 3000, + }, + tailableProcess{ + p: lightningds[1].DaemonProcess, + filter: filter, + lines: 3000, + }, + tailableProcess{ + p: electrs.Process, + lines: defaultLines, + }, + tailableProcess{ + p: lwk.Process, + lines: defaultLines, + }, + ) + } + }() + + var channelBalances []uint64 + var walletBalances []uint64 + for _, lightningd := range lightningds { + b, err := lightningd.GetBtcBalanceSat() + require.NoError(err) + walletBalances = append(walletBalances, b) + + b, err = lightningd.GetChannelBalanceSat(scid) + require.NoError(err) + channelBalances = append(channelBalances, b) + } + + params := &testParams{ + swapAmt: channelBalances[0] / 2, + scid: scid, + origTakerWallet: walletBalances[0], + origMakerWallet: walletBalances[1], + origTakerBalance: channelBalances[0], + origMakerBalance: channelBalances[1], + takerNode: lightningds[0], + makerNode: lightningds[1], + takerPeerswap: lightningds[0].DaemonProcess, + makerPeerswap: lightningds[1].DaemonProcess, + chainRpc: liquidd.RpcProxy, + chaind: liquidd, + confirms: LiquidConfirms + 1, + csv: LiquidCsv, + swapType: swap.SWAPTYPE_IN, + } + asset := "lbtc" + + // Do swap. + go func() { + var response map[string]interface{} + err := lightningds[1].Rpc.Request(&clightning.SwapIn{SatAmt: params.swapAmt, ShortChannelId: params.scid, Asset: asset}, &response) + require.NoError(err) + + }() + coopClaimTest(t, params) + }) + }