@@ -5,65 +5,78 @@ fn run_bitcoin_core_rbf_tests() {
5
5
// see rbf_tests.cpp
6
6
//
7
7
// https://github.com/bitcoin/bitcoin/blob/e69796c79c0aa202087a13ba62d9fbcc1c8754d4/src/test/rbf_tests.cpp#L151
8
- const CENT : u64 = 100_000 ; // no clue why this would be called CENT 😕
8
+ const CENT : u64 = 1_000_000 ;
9
9
let low_fee = CENT / 100 ;
10
10
let _normal_fee = CENT / 10 ;
11
11
let high_fee = CENT ;
12
12
let incremental_relay_feerate = FeeRate :: DEFUALT_RBF_INCREMENTAL_RELAY ;
13
13
let higher_relay_feerate = FeeRate :: from_sat_per_vb ( 2.0 ) ;
14
+ let very_high_relay_feerate = FeeRate :: from_sat_per_vb ( 10.0 ) ;
14
15
15
- assert ! ( pays_for_rbf( high_fee, high_fee, 1 , FeeRate :: ZERO ) ) ;
16
- assert ! ( !pays_for_rbf( high_fee, high_fee - 1 , 1 , FeeRate :: ZERO ) ) ;
17
- assert ! ( !pays_for_rbf( high_fee + 1 , high_fee, 1 , FeeRate :: ZERO ) ) ;
16
+ assert ! ( pays_for_rbf( high_fee, high_fee, 4 , FeeRate :: ZERO ) ) ;
17
+ assert ! ( !pays_for_rbf( high_fee, high_fee - 1 , 4 , FeeRate :: ZERO ) ) ;
18
+ assert ! ( !pays_for_rbf( high_fee + 1 , high_fee, 4 , FeeRate :: ZERO ) ) ;
18
19
assert ! ( !pays_for_rbf(
19
20
high_fee,
20
21
high_fee + 1 ,
21
- 2 ,
22
+ 8 ,
22
23
incremental_relay_feerate
23
24
) ) ;
24
25
assert ! ( pays_for_rbf(
25
26
high_fee,
26
27
high_fee + 2 ,
27
- 2 ,
28
+ 8 ,
28
29
incremental_relay_feerate
29
30
) ) ;
30
31
assert ! ( !pays_for_rbf(
31
32
high_fee,
32
33
high_fee + 2 ,
33
- 2 ,
34
+ 8 ,
34
35
higher_relay_feerate
35
36
) ) ;
36
37
assert ! ( pays_for_rbf(
37
38
high_fee,
38
39
high_fee + 4 ,
39
- 2 ,
40
+ 8 ,
40
41
higher_relay_feerate
41
42
) ) ;
42
43
assert ! ( !pays_for_rbf(
43
44
low_fee,
44
45
high_fee,
45
- 99999999 ,
46
+ 99999999 * 4 ,
46
47
incremental_relay_feerate
47
48
) ) ;
48
49
assert ! ( pays_for_rbf(
49
50
low_fee,
50
51
high_fee + 99999999 ,
51
- 99999999 ,
52
+ 99999999 * 4 ,
52
53
incremental_relay_feerate
53
54
) ) ;
55
+ assert ! ( !pays_for_rbf(
56
+ low_fee,
57
+ low_fee + 29 ,
58
+ 8 + 1 ,
59
+ very_high_relay_feerate
60
+ ) ) ;
61
+ assert ! ( pays_for_rbf(
62
+ low_fee,
63
+ low_fee + 30 , // 30 = (10 * (9/4).ceil())
64
+ 8 + 1 ,
65
+ very_high_relay_feerate
66
+ ) ) ;
54
67
}
55
68
56
69
fn pays_for_rbf (
57
70
original_fees : u64 ,
58
71
replacement_fees : u64 ,
59
- replacement_vsize : u64 ,
72
+ replacement_weight : u64 ,
60
73
relay_fee : FeeRate ,
61
74
) -> bool {
62
75
let min_fee = Replace {
63
76
fee : original_fees,
64
77
incremental_relay_feerate : relay_fee,
65
78
}
66
- . min_fee_to_do_replacement ( replacement_vsize * 4 ) ;
79
+ . min_fee_to_do_replacement ( replacement_weight ) ;
67
80
68
81
replacement_fees >= min_fee
69
82
}
0 commit comments