1
- use bitcoin:: blockdata:: transaction:: { TxIn , TxOut } ;
2
- use bitcoin_hashes:: sha256d:: Hash as Sha256dHash ;
1
+ use bitcoin:: blockdata:: transaction:: TxOut ;
3
2
4
3
use std:: cmp:: Ordering ;
5
4
@@ -13,35 +12,12 @@ pub fn sort_outputs<T, C : Fn(&T, &T) -> Ordering>(outputs: &mut Vec<(TxOut, T)>
13
12
} ) ;
14
13
}
15
14
16
- fn cmp ( a : & Sha256dHash , b : & Sha256dHash ) -> Ordering {
17
- use bitcoin_hashes:: Hash ;
18
-
19
- let av = a. into_inner ( ) ;
20
- let bv = b. into_inner ( ) ;
21
- for i in ( 0 ..32 ) . rev ( ) {
22
- let cmp = av[ i] . cmp ( & bv[ i] ) ;
23
- if cmp != Ordering :: Equal {
24
- return cmp;
25
- }
26
- }
27
- Ordering :: Equal
28
- }
29
-
30
- pub fn sort_inputs < T > ( inputs : & mut Vec < ( TxIn , T ) > ) {
31
- inputs. sort_unstable_by ( |a, b| {
32
- cmp ( & a. 0 . previous_output . txid , & b. 0 . previous_output . txid ) . then (
33
- a. 0 . previous_output . vout . cmp ( & b. 0 . previous_output . vout ) )
34
- } ) ;
35
- }
36
-
37
15
#[ cfg( test) ]
38
16
mod tests {
39
17
use super :: * ;
40
18
41
19
use bitcoin:: blockdata:: script:: { Script , Builder } ;
42
- use bitcoin:: blockdata:: transaction:: { TxOut , OutPoint } ;
43
- use bitcoin_hashes:: sha256d:: Hash as Sha256dHash ;
44
- use bitcoin_hashes:: hex:: FromHex ;
20
+ use bitcoin:: blockdata:: transaction:: TxOut ;
45
21
46
22
use hex:: decode;
47
23
@@ -153,63 +129,4 @@ mod tests {
153
129
bip69_txout_test_1: TXOUT1 . to_vec( ) ,
154
130
bip69_txout_test_2: TXOUT2 . to_vec( ) ,
155
131
}
156
-
157
- macro_rules! bip_txin_tests {
158
- ( $( $name: ident: $value: expr, ) * ) => {
159
- $(
160
- #[ test]
161
- fn $name( ) {
162
- let expected_raw: Vec <( & str , u32 ) > = $value;
163
- let expected: Vec <( TxIn , & str ) > = expected_raw. iter( ) . map(
164
- |txin_raw| TxIn {
165
- previous_output: OutPoint {
166
- txid: Sha256dHash :: from_hex( txin_raw. 0 ) . unwrap( ) ,
167
- vout: txin_raw. 1 ,
168
- } ,
169
- script_sig: Script :: new( ) ,
170
- sequence: 0 ,
171
- witness: vec![ ]
172
- }
173
- ) . map( |txin| ( txin, "ignore" ) ) . collect( ) ;
174
-
175
- let mut inputs = expected. clone( ) ;
176
- inputs. reverse( ) ;
177
-
178
- sort_inputs( & mut inputs) ;
179
-
180
- assert_eq!( expected, inputs) ;
181
- }
182
- ) *
183
- }
184
- }
185
-
186
- const TXIN1_BIP69 : [ ( & str , u32 ) ; 17 ] = [
187
- ( "0e53ec5dfb2cb8a71fec32dc9a634a35b7e24799295ddd5278217822e0b31f57" , 0 ) ,
188
- ( "26aa6e6d8b9e49bb0630aac301db6757c02e3619feb4ee0eea81eb1672947024" , 1 ) ,
189
- ( "28e0fdd185542f2c6ea19030b0796051e7772b6026dd5ddccd7a2f93b73e6fc2" , 0 ) ,
190
- ( "381de9b9ae1a94d9c17f6a08ef9d341a5ce29e2e60c36a52d333ff6203e58d5d" , 1 ) ,
191
- ( "3b8b2f8efceb60ba78ca8bba206a137f14cb5ea4035e761ee204302d46b98de2" , 0 ) ,
192
- ( "402b2c02411720bf409eff60d05adad684f135838962823f3614cc657dd7bc0a" , 1 ) ,
193
- ( "54ffff182965ed0957dba1239c27164ace5a73c9b62a660c74b7b7f15ff61e7a" , 1 ) ,
194
- ( "643e5f4e66373a57251fb173151e838ccd27d279aca882997e005016bb53d5aa" , 0 ) ,
195
- ( "6c1d56f31b2de4bfc6aaea28396b333102b1f600da9c6d6149e96ca43f1102b1" , 1 ) ,
196
- ( "7a1de137cbafb5c70405455c49c5104ca3057a1f1243e6563bb9245c9c88c191" , 0 ) ,
197
- ( "7d037ceb2ee0dc03e82f17be7935d238b35d1deabf953a892a4507bfbeeb3ba4" , 1 ) ,
198
- ( "a5e899dddb28776ea9ddac0a502316d53a4a3fca607c72f66c470e0412e34086" , 0 ) ,
199
- ( "b4112b8f900a7ca0c8b0e7c4dfad35c6be5f6be46b3458974988e1cdb2fa61b8" , 0 ) ,
200
- ( "bafd65e3c7f3f9fdfdc1ddb026131b278c3be1af90a4a6ffa78c4658f9ec0c85" , 0 ) ,
201
- ( "de0411a1e97484a2804ff1dbde260ac19de841bebad1880c782941aca883b4e9" , 1 ) ,
202
- ( "f0a130a84912d03c1d284974f563c5949ac13f8342b8112edff52971599e6a45" , 0 ) ,
203
- ( "f320832a9d2e2452af63154bc687493484a0e7745ebd3aaf9ca19eb80834ad60" , 0 ) ,
204
- ] ;
205
-
206
-
207
- const TXIN2_BIP69 : [ ( & str , u32 ) ; 2 ] = [
208
- ( "35288d269cee1941eaebb2ea85e32b42cdb2b04284a56d8b14dcc3f5c65d6055" , 0 ) ,
209
- ( "35288d269cee1941eaebb2ea85e32b42cdb2b04284a56d8b14dcc3f5c65d6055" , 1 ) ,
210
- ] ;
211
- bip_txin_tests ! {
212
- bip69_txin_test_1: TXIN1_BIP69 . to_vec( ) ,
213
- bip69_txin_test_2: TXIN2_BIP69 . to_vec( ) ,
214
- }
215
132
}
0 commit comments