forked from ordinals/ord
-
Notifications
You must be signed in to change notification settings - Fork 0
/
find.rs
83 lines (75 loc) Β· 2.17 KB
/
find.rs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
use {
super::*,
ord::subcommand::find::{FindRangeOutput, Output},
};
#[test]
fn find_command_returns_satpoint_for_sat() {
let rpc_server = test_bitcoincore_rpc::spawn();
assert_eq!(
CommandBuilder::new("--index-sats find 0")
.rpc_server(&rpc_server)
.run_and_deserialize_output::<Output>(),
Output {
satpoint: "4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b:0:0"
.parse()
.unwrap()
}
);
}
#[test]
fn find_range_command_returns_satpoints_and_ranges() {
let rpc_server = test_bitcoincore_rpc::spawn();
rpc_server.mine_blocks(1);
pretty_assert_eq!(
CommandBuilder::new(format!("--index-sats find 0 {}", 55 * COIN_VALUE))
.rpc_server(&rpc_server)
.run_and_deserialize_output::<Vec<FindRangeOutput>>(),
vec![
FindRangeOutput {
start: 0,
size: 50 * COIN_VALUE,
satpoint: "4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b:0:0"
.parse()
.unwrap()
},
FindRangeOutput {
start: 50 * COIN_VALUE,
size: 5 * COIN_VALUE,
satpoint: "30f2f037629c6a21c1f40ed39b9bd6278df39762d68d07f49582b23bcb23386a:0:0"
.parse()
.unwrap()
}
]
);
}
#[test]
fn find_range_command_fails_for_unmined_sat_ranges() {
let rpc_server = test_bitcoincore_rpc::spawn();
CommandBuilder::new(format!(
"--index-sats find {} {}",
50 * COIN_VALUE,
100 * COIN_VALUE
))
.rpc_server(&rpc_server)
.expected_exit_code(1)
.expected_stderr("error: range has not been mined as of index height\n")
.run_and_extract_stdout();
}
#[test]
fn unmined_sat() {
let rpc_server = test_bitcoincore_rpc::spawn();
CommandBuilder::new("--index-sats find 5000000000")
.rpc_server(&rpc_server)
.expected_stderr("error: sat has not been mined as of index height\n")
.expected_exit_code(1)
.run_and_extract_stdout();
}
#[test]
fn no_satoshi_index() {
let rpc_server = test_bitcoincore_rpc::spawn();
CommandBuilder::new("find 0")
.rpc_server(&rpc_server)
.expected_stderr("error: find requires index created with `--index-sats` flag\n")
.expected_exit_code(1)
.run_and_extract_stdout();
}