Skip to content

Commit ad1dda7

Browse files
committed
Add --confirmed-only option to bid
1 parent 8d34df9 commit ad1dda7

File tree

3 files changed

+17
-5
lines changed

3 files changed

+17
-5
lines changed

node/src/bin/space-cli.rs

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,8 @@ enum Commands {
9292
/// Fee rate to use in sat/vB
9393
#[arg(long, short)]
9494
fee_rate: Option<u64>,
95+
#[arg(long, short, default_value = "false")]
96+
confirmed_only: bool,
9597
},
9698
/// Register a won auction
9799
Register {
@@ -270,6 +272,7 @@ impl SpaceCli {
270272
req: Option<RpcWalletRequest>,
271273
bidouts: Option<u8>,
272274
fee_rate: Option<u64>,
275+
confirmed_only: bool,
273276
) -> Result<(), ClientError> {
274277
let fee_rate = fee_rate.map(|fee| FeeRate::from_sat_per_vb(fee).unwrap());
275278
let result = self
@@ -285,6 +288,7 @@ impl SpaceCli {
285288
fee_rate,
286289
dust: self.dust,
287290
force: self.force,
291+
confirmed_only
288292
},
289293
)
290294
.await?;
@@ -440,13 +444,15 @@ async fn handle_commands(
440444
})),
441445
None,
442446
fee_rate,
447+
false
443448
)
444449
.await?
445450
}
446451
Commands::Bid {
447452
space,
448453
amount,
449454
fee_rate,
455+
confirmed_only
450456
} => {
451457
cli.send_request(
452458
Some(RpcWalletRequest::Bid(BidParams {
@@ -455,11 +461,12 @@ async fn handle_commands(
455461
})),
456462
None,
457463
fee_rate,
464+
confirmed_only
458465
)
459466
.await?
460467
}
461468
Commands::CreateBidOuts { pairs, fee_rate } => {
462-
cli.send_request(None, Some(pairs), fee_rate).await?
469+
cli.send_request(None, Some(pairs), fee_rate, false).await?
463470
}
464471
Commands::Register {
465472
space,
@@ -473,6 +480,7 @@ async fn handle_commands(
473480
})),
474481
None,
475482
fee_rate,
483+
false
476484
)
477485
.await?
478486
}
@@ -489,6 +497,7 @@ async fn handle_commands(
489497
})),
490498
None,
491499
fee_rate,
500+
false
492501
)
493502
.await?
494503
}
@@ -504,6 +513,7 @@ async fn handle_commands(
504513
})),
505514
None,
506515
fee_rate,
516+
false
507517
)
508518
.await?
509519
}
@@ -532,6 +542,7 @@ async fn handle_commands(
532542
})),
533543
None,
534544
fee_rate,
545+
false
535546
)
536547
.await?;
537548
}

node/src/rpc.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -210,6 +210,7 @@ pub struct RpcWalletTxBuilder {
210210
pub fee_rate: Option<FeeRate>,
211211
pub dust: Option<Amount>,
212212
pub force: bool,
213+
pub confirmed_only: bool,
213214
}
214215

215216
#[derive(Clone, Serialize, Deserialize)]

node/src/wallets.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -603,9 +603,9 @@ impl RpcWallet {
603603
if tx.bidouts.is_some() {
604604
builder = builder.bidouts(tx.bidouts.unwrap());
605605
}
606-
builder = builder.force(tx.force);
607606

608-
let mut bid_replacement = false;
607+
builder = builder.force(tx.force);
608+
let mut bid_replacement = tx.confirmed_only;
609609

610610
for req in tx.requests {
611611
match req {
@@ -800,8 +800,8 @@ impl RpcWallet {
800800
if rpc.message.contains("replacement-adds-unconfirmed") {
801801
error_data.insert(
802802
"hint".to_string(),
803-
"Competing bid in mempool but wallet has no confirmed bid \
804-
outputs (required to replace mempool bids)"
803+
"Competing bid in mempool but wallet must use confirmed bidouts and funding \
804+
outputs to replace it. Try --confirmed-only"
805805
.to_string(),
806806
);
807807
}

0 commit comments

Comments
 (0)