Skip to content

Commit 07bcdc7

Browse files
committed
check minimum relay fee in bitcoin fee config
1 parent c59109c commit 07bcdc7

File tree

1 file changed

+15
-4
lines changed
  • packages/hooks-bitcoin/src/tx

1 file changed

+15
-4
lines changed

packages/hooks-bitcoin/src/tx/fee.ts

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,10 @@ import { action, computed, makeObservable, observable } from "mobx";
1313
import { useState } from "react";
1414
import { CoinPretty, Dec } from "@keplr-wallet/unit";
1515
import { InsufficientFeeError } from "./errors";
16-
import { BitcoinQueriesStore } from "@keplr-wallet/stores-bitcoin";
16+
import {
17+
BitcoinQueriesStore,
18+
MIN_RELAY_FEE,
19+
} from "@keplr-wallet/stores-bitcoin";
1720

1821
export class FeeConfig extends TxChainSetter implements IFeeConfig {
1922
@observable
@@ -88,10 +91,18 @@ export class FeeConfig extends TxChainSetter implements IFeeConfig {
8891
return undefined;
8992
}
9093

91-
return new CoinPretty(
92-
this.amountConfig.currency,
93-
this.txSizeConfig.txSize * this.feeRateConfig.feeRate + this.remainder
94+
const feeDec = new Dec(
95+
Math.ceil(this.txSizeConfig.txSize * this.feeRateConfig.feeRate) +
96+
this.remainder
9497
);
98+
99+
const minRelayFeeDec = new Dec(MIN_RELAY_FEE);
100+
101+
if (feeDec.lt(minRelayFeeDec)) {
102+
return new CoinPretty(this.amountConfig.currency, minRelayFeeDec);
103+
}
104+
105+
return new CoinPretty(this.amountConfig.currency, feeDec);
95106
}
96107

97108
return new CoinPretty(this.amountConfig.currency, this._value);

0 commit comments

Comments
 (0)