@@ -2,7 +2,6 @@ extern crate core;
2
2
3
3
use std:: { fs, path:: PathBuf , str:: FromStr } ;
4
4
5
- use base64:: { prelude:: BASE64_STANDARD , Engine } ;
6
5
use clap:: { Parser , Subcommand } ;
7
6
use jsonrpsee:: {
8
7
core:: { client:: Error , ClientError } ,
@@ -31,14 +30,14 @@ use wallet::export::WalletExport;
31
30
pub struct Args {
32
31
/// Bitcoin network to use
33
32
#[ arg( long, env = "SPACED_CHAIN" ) ]
34
- chain : spaced :: config :: ExtendedNetwork ,
33
+ chain : ExtendedNetwork ,
35
34
/// Spaced RPC URL [default: based on specified chain]
36
35
#[ arg( long) ]
37
36
spaced_rpc_url : Option < String > ,
38
37
/// Specify wallet to use
39
38
#[ arg( long, short, global = true , default_value = "default" ) ]
40
39
wallet : String ,
41
- /// Custom dust amount in sat for auction outputs
40
+ /// Custom dust amount in sat for bid outputs
42
41
#[ arg( long, short, global = true ) ]
43
42
dust : Option < u64 > ,
44
43
/// Force invalid transaction (for testing only)
@@ -52,21 +51,15 @@ pub struct Args {
52
51
enum Commands {
53
52
/// Generate a new wallet
54
53
#[ command( name = "createwallet" ) ]
55
- CreateWallet {
56
- #[ arg( default_value = "default" ) ]
57
- name : String ,
58
- } ,
54
+ CreateWallet ,
59
55
/// Load a wallet
60
56
#[ command( name = "loadwallet" ) ]
61
- LoadWallet {
62
- #[ arg( default_value = "default" ) ]
63
- name : String ,
64
- } ,
57
+ LoadWallet ,
65
58
/// Export a wallet
66
59
#[ command( name = "exportwallet" ) ]
67
60
ExportWallet {
68
- # [ arg ( default_value = "default" ) ]
69
- name : String ,
61
+ // Destination path to export json file
62
+ path : PathBuf ,
70
63
} ,
71
64
/// Import a wallet
72
65
#[ command( name = "importwallet" ) ]
@@ -76,10 +69,7 @@ enum Commands {
76
69
} ,
77
70
/// Export a wallet
78
71
#[ command( name = "getwalletinfo" ) ]
79
- GetWalletInfo {
80
- #[ arg( default_value = "default" ) ]
81
- name : String ,
82
- } ,
72
+ GetWalletInfo ,
83
73
/// Export a wallet
84
74
#[ command( name = "getserverinfo" ) ]
85
75
GetServerInfo ,
@@ -163,8 +153,8 @@ enum Commands {
163
153
#[ command( name = "balance" ) ]
164
154
Balance ,
165
155
/// Pre-create outputs that can be auctioned off during the bidding process
166
- #[ command( name = "createauctionoutputs " ) ]
167
- CreateAuctionOutputs {
156
+ #[ command( name = "createbidout " ) ]
157
+ CreateBidOut {
168
158
/// Number of output pairs to create
169
159
/// Each pair can be used to make a bid
170
160
pairs : u8 ,
@@ -195,12 +185,13 @@ enum Commands {
195
185
#[ arg( default_value = "0" ) ]
196
186
target_interval : usize ,
197
187
} ,
198
- /// Associate the specified data with a given space (experimental may be removed)
199
- #[ command( name = "setdata" ) ]
200
- SetData {
188
+ /// Associate the specified data with a given space (not recommended use Fabric instead)
189
+ /// If for whatever reason it's not possible to use other protocols, then you may use this.
190
+ #[ command( name = "setrawfallback" ) ]
191
+ SetRawFallback {
201
192
/// Space name
202
193
space : String ,
203
- /// Base64 encoded data
194
+ /// Hex encoded data
204
195
data : String ,
205
196
/// Fee rate to use in sat/vB
206
197
#[ arg( long, short) ]
@@ -212,8 +203,8 @@ enum Commands {
212
203
ListSpaces ,
213
204
/// List unspent auction outputs i.e. outputs that can be
214
205
/// auctioned off in the bidding process
215
- #[ command( name = "listauctionoutputs " ) ]
216
- ListAuctionOutputs ,
206
+ #[ command( name = "listbidouts " ) ]
207
+ ListBidOuts ,
217
208
/// List unspent coins owned by wallet
218
209
#[ command( name = "listunspent" ) ]
219
210
ListUnspent ,
@@ -441,24 +432,26 @@ async fn handle_commands(
441
432
let response = cli. client . get_spaceout ( outpoint) . await ?;
442
433
println ! ( "{}" , serde_json:: to_string_pretty( & response) ?) ;
443
434
}
444
- Commands :: CreateWallet { name } => {
445
- cli. client . wallet_create ( & name ) . await ?;
435
+ Commands :: CreateWallet => {
436
+ cli. client . wallet_create ( & cli . wallet ) . await ?;
446
437
}
447
- Commands :: LoadWallet { name } => {
448
- cli. client . wallet_load ( & name ) . await ?;
438
+ Commands :: LoadWallet => {
439
+ cli. client . wallet_load ( & cli . wallet ) . await ?;
449
440
}
450
441
Commands :: ImportWallet { path } => {
451
442
let content =
452
443
fs:: read_to_string ( path) . map_err ( |e| ClientError :: Custom ( e. to_string ( ) ) ) ?;
453
444
let wallet: WalletExport = serde_json:: from_str ( & content) ?;
454
445
cli. client . wallet_import ( wallet) . await ?;
455
446
}
456
- Commands :: ExportWallet { name } => {
457
- let result = cli. client . wallet_export ( & name) . await ?;
458
- println ! ( "{}" , serde_json:: to_string_pretty( & result) . expect( "result" ) ) ;
447
+ Commands :: ExportWallet { path } => {
448
+ let result = cli. client . wallet_export ( & cli. wallet ) . await ?;
449
+ let content = serde_json:: to_string_pretty ( & result) . expect ( "result" ) ;
450
+ fs:: write ( path, content) . map_err ( |e|
451
+ ClientError :: Custom ( format ! ( "Could not save to path: {}" , e. to_string( ) ) ) ) ?;
459
452
}
460
- Commands :: GetWalletInfo { name } => {
461
- let result = cli. client . wallet_get_info ( & name ) . await ?;
453
+ Commands :: GetWalletInfo => {
454
+ let result = cli. client . wallet_get_info ( & cli . wallet ) . await ?;
462
455
println ! ( "{}" , serde_json:: to_string_pretty( & result) . expect( "result" ) ) ;
463
456
}
464
457
Commands :: GetServerInfo => {
@@ -495,7 +488,7 @@ async fn handle_commands(
495
488
)
496
489
. await ?
497
490
}
498
- Commands :: CreateAuctionOutputs { pairs, fee_rate } => {
491
+ Commands :: CreateBidOut { pairs, fee_rate } => {
499
492
cli. send_request ( None , Some ( pairs) , fee_rate) . await ?
500
493
}
501
494
Commands :: Register {
@@ -544,17 +537,17 @@ async fn handle_commands(
544
537
)
545
538
. await ?
546
539
}
547
- Commands :: SetData {
540
+ Commands :: SetRawFallback {
548
541
mut space,
549
542
data,
550
543
fee_rate,
551
544
} => {
552
545
space = normalize_space ( & space) ;
553
- let data = match BASE64_STANDARD . decode ( data) {
546
+ let data = match hex :: decode ( data) {
554
547
Ok ( data) => data,
555
548
Err ( e) => {
556
549
return Err ( ClientError :: Custom ( format ! (
557
- "Could not base64 decode data: {}" ,
550
+ "Could not hex decode data: {}" ,
558
551
e
559
552
) ) )
560
553
}
@@ -576,7 +569,7 @@ async fn handle_commands(
576
569
let spaces = cli. client . wallet_list_unspent ( & cli. wallet ) . await ?;
577
570
println ! ( "{}" , serde_json:: to_string_pretty( & spaces) ?) ;
578
571
}
579
- Commands :: ListAuctionOutputs => {
572
+ Commands :: ListBidOuts => {
580
573
let spaces = cli. client . wallet_list_auction_outputs ( & cli. wallet ) . await ?;
581
574
println ! ( "{}" , serde_json:: to_string_pretty( & spaces) ?) ;
582
575
}
0 commit comments