Skip to content

Commit 616727c

Browse files
authored
Merge branch 'tx-proposal-use-highest-fee'
2 parents 70ae08c + 986d3f2 commit 616727c

File tree

6 files changed

+20
-11
lines changed

6 files changed

+20
-11
lines changed

backend/accounts/account.go

+3-1
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,9 @@ type TxProposalArgs struct {
5454
Amount coin.SendAmount
5555
FeeTargetCode FeeTargetCode
5656
// Only applies if FeeTargetCode == Custom. It is provided in sat/vB for BTC/LTC and Gwei for ETH.
57-
CustomFee string
57+
CustomFee string
58+
// Option to always use the highest fee rate without specifying FeeTargetCode or CustomFee
59+
UseHighestFee bool
5860
SelectedUTXOs map[wire.OutPoint]struct{}
5961
Note string
6062
PaymentRequest *PaymentRequest

backend/coins/btc/handlers/handlers.go

+2
Original file line numberDiff line numberDiff line change
@@ -454,6 +454,7 @@ func (input *sendTxInput) UnmarshalJSON(jsonBytes []byte) error {
454454
Note string `json:"note"`
455455
Counter int `json:"counter"`
456456
PaymentRequest *slip24Request `json:"paymentRequest"`
457+
UseHighestFee bool `json:"useHighestFee"`
457458
}{}
458459
if err := json.Unmarshal(jsonBytes, &jsonBody); err != nil {
459460
return errp.WithStack(err)
@@ -488,6 +489,7 @@ func (input *sendTxInput) UnmarshalJSON(jsonBytes []byte) error {
488489
}
489490
input.PaymentRequest = paymentRequest
490491
}
492+
input.UseHighestFee = jsonBody.UseHighestFee
491493
return nil
492494
}
493495

backend/coins/btc/transaction.go

+2-3
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,7 @@ const unitSatoshi = 1e8
3939
// fee target (priority) if one is given, or the provided args.FeePerKb if the fee taret is
4040
// `FeeTargetCodeCustom`.
4141
func (account *Account) getFeePerKb(args *accounts.TxProposalArgs) (btcutil.Amount, error) {
42-
isPaymentRequest := args.PaymentRequest != nil
43-
if args.FeeTargetCode == accounts.FeeTargetCodeCustom && !isPaymentRequest {
42+
if args.FeeTargetCode == accounts.FeeTargetCodeCustom && !args.UseHighestFee {
4443
float, err := strconv.ParseFloat(args.CustomFee, 64)
4544
if err != nil {
4645
return 0, err
@@ -60,7 +59,7 @@ func (account *Account) getFeePerKb(args *accounts.TxProposalArgs) (btcutil.Amou
6059
}
6160

6261
var feeTarget *FeeTarget
63-
if isPaymentRequest {
62+
if args.UseHighestFee {
6463
feeTarget = account.feeTargets().highest()
6564
} else {
6665
for _, target := range account.feeTargets() {

frontends/web/src/api/account.ts

+9-3
Original file line numberDiff line numberDiff line change
@@ -320,12 +320,18 @@ export const getReceiveAddressList = (code: AccountCode) => {
320320
export type TTxInput = {
321321
address: string;
322322
amount: string;
323-
feeTarget: FeeTargetCode;
324-
customFee: string;
325323
sendAll: 'yes' | 'no';
326324
selectedUTXOs: string[];
327325
paymentRequest: Slip24 | null;
328-
};
326+
} & (
327+
{
328+
useHighestFee: false;
329+
customFee: string;
330+
feeTarget: FeeTargetCode;
331+
} | {
332+
useHighestFee: true;
333+
}
334+
);
329335

330336
export type TTxProposalResult = {
331337
amount: IAmount;

frontends/web/src/routes/account/send/send.tsx

+1
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,7 @@ class Send extends Component<Props, State> {
165165
sendAll: (this.state.sendAll ? 'yes' : 'no'),
166166
selectedUTXOs: Object.keys(this.selectedUTXOs),
167167
paymentRequest: null,
168+
useHighestFee: false
168169
};
169170
};
170171

frontends/web/src/routes/exchange/pocket.tsx

+3-4
Original file line numberDiff line numberDiff line change
@@ -206,12 +206,11 @@ export const Pocket = ({ code, action }: TProps) => {
206206
const txInput: TTxInput = {
207207
address: message.bitcoinAddress,
208208
amount: parsedAmount.amount,
209-
// feeTarget will be automatically set on the highest in the BE.
210-
feeTarget: 'custom',
211-
customFee: '',
209+
// Always use the highest fee rate for Pocket sell
210+
useHighestFee: true,
212211
sendAll: 'no',
213212
selectedUTXOs: [],
214-
paymentRequest: message.slip24,
213+
paymentRequest: message.slip24
215214
};
216215

217216
let result = await proposeTx(code, txInput);

0 commit comments

Comments
 (0)