@@ -16,8 +16,9 @@ use std::time::Duration;
16
16
use log:: { debug, error, info, trace, warn} ;
17
17
18
18
use bitcoin:: consensus:: encode:: deserialize;
19
- use bitcoin:: hashes:: hex:: { FromHex , ToHex } ;
19
+ use bitcoin:: hashes:: hex:: FromHex ;
20
20
use bitcoin:: { Script , Txid } ;
21
+ use bitcoin_private:: hex:: exts:: DisplayHex ;
21
22
22
23
#[ cfg( feature = "use-openssl" ) ]
23
24
use openssl:: ssl:: { SslConnector , SslMethod , SslStream , SslVerifyMode } ;
@@ -974,7 +975,7 @@ impl<T: Read + Write> ElectrumApi for RawClient<T> {
974
975
}
975
976
976
977
fn transaction_get_raw ( & self , txid : & Txid ) -> Result < Vec < u8 > , Error > {
977
- let params = vec ! [ Param :: String ( txid . to_hex ( ) ) ] ;
978
+ let params = vec ! [ Param :: String ( format! ( "{:x}" , txid ) ) ] ;
978
979
let req = Request :: new_id (
979
980
self . last_id . fetch_add ( 1 , Ordering :: SeqCst ) ,
980
981
"blockchain.transaction.get" ,
@@ -1023,7 +1024,7 @@ impl<T: Read + Write> ElectrumApi for RawClient<T> {
1023
1024
}
1024
1025
1025
1026
fn transaction_broadcast_raw ( & self , raw_tx : & [ u8 ] ) -> Result < Txid , Error > {
1026
- let params = vec ! [ Param :: String ( raw_tx. to_hex ( ) ) ] ;
1027
+ let params = vec ! [ Param :: String ( raw_tx. to_lower_hex_string ( ) ) ] ;
1027
1028
let req = Request :: new_id (
1028
1029
self . last_id . fetch_add ( 1 , Ordering :: SeqCst ) ,
1029
1030
"blockchain.transaction.broadcast" ,
@@ -1035,7 +1036,7 @@ impl<T: Read + Write> ElectrumApi for RawClient<T> {
1035
1036
}
1036
1037
1037
1038
fn transaction_get_merkle ( & self , txid : & Txid , height : usize ) -> Result < GetMerkleRes , Error > {
1038
- let params = vec ! [ Param :: String ( txid . to_hex ( ) ) , Param :: Usize ( height) ] ;
1039
+ let params = vec ! [ Param :: String ( format! ( "{:x}" , txid ) ) , Param :: Usize ( height) ] ;
1039
1040
let req = Request :: new_id (
1040
1041
self . last_id . fetch_add ( 1 , Ordering :: SeqCst ) ,
1041
1042
"blockchain.transaction.get_merkle" ,
@@ -1076,6 +1077,8 @@ impl<T: Read + Write> ElectrumApi for RawClient<T> {
1076
1077
1077
1078
#[ cfg( test) ]
1078
1079
mod test {
1080
+ use std:: str:: FromStr ;
1081
+
1079
1082
use super :: RawClient ;
1080
1083
use api:: ElectrumApi ;
1081
1084
@@ -1119,7 +1122,7 @@ mod test {
1119
1122
let client = RawClient :: new ( get_test_server ( ) , None ) . unwrap ( ) ;
1120
1123
1121
1124
let resp = client. block_header ( 0 ) . unwrap ( ) ;
1122
- assert_eq ! ( resp. version, 0x01 ) ;
1125
+ assert_eq ! ( resp. version, bitcoin :: block :: Version :: ONE ) ;
1123
1126
assert_eq ! ( resp. time, 1231006505 ) ;
1124
1127
assert_eq ! ( resp. nonce, 0x7c2bac1d ) ;
1125
1128
}
@@ -1160,7 +1163,9 @@ mod test {
1160
1163
1161
1164
// Realistically nobody will ever spend from this address, so we can expect the balance to
1162
1165
// increase over time
1163
- let addr = bitcoin:: Address :: from_str ( "1CounterpartyXXXXXXXXXXXXXXXUWLpVr" ) . unwrap ( ) ;
1166
+ let addr = bitcoin:: Address :: from_str ( "1CounterpartyXXXXXXXXXXXXXXXUWLpVr" )
1167
+ . unwrap ( )
1168
+ . assume_checked ( ) ;
1164
1169
let resp = client. script_get_balance ( & addr. script_pubkey ( ) ) . unwrap ( ) ;
1165
1170
assert ! ( resp. confirmed >= 213091301265 ) ;
1166
1171
}
@@ -1169,38 +1174,40 @@ mod test {
1169
1174
fn test_script_get_history ( ) {
1170
1175
use std:: str:: FromStr ;
1171
1176
1172
- use bitcoin:: hashes:: hex:: FromHex ;
1173
1177
use bitcoin:: Txid ;
1174
1178
1175
1179
let client = RawClient :: new ( get_test_server ( ) , None ) . unwrap ( ) ;
1176
1180
1177
1181
// Mt.Gox hack address
1178
1182
let addr = bitcoin:: Address :: from_str ( "1FeexV6bAHb8ybZjqQMjJrcCrHGW9sb6uF" ) . unwrap ( ) ;
1179
- let resp = client. script_get_history ( & addr. script_pubkey ( ) ) . unwrap ( ) ;
1183
+ let resp = client
1184
+ . script_get_history ( & addr. payload . script_pubkey ( ) )
1185
+ . unwrap ( ) ;
1180
1186
1181
1187
assert ! ( resp. len( ) >= 328 ) ;
1182
1188
assert_eq ! (
1183
1189
resp[ 0 ] . tx_hash,
1184
- Txid :: from_hex ( "e67a0550848b7932d7796aeea16ab0e48a5cfe81c4e8cca2c5b03e0416850114" )
1190
+ Txid :: from_str ( "e67a0550848b7932d7796aeea16ab0e48a5cfe81c4e8cca2c5b03e0416850114" )
1185
1191
. unwrap( )
1186
1192
) ;
1187
1193
}
1188
1194
1189
1195
#[ test]
1190
1196
fn test_script_list_unspent ( ) {
1191
- use bitcoin:: hashes:: hex:: FromHex ;
1192
1197
use bitcoin:: Txid ;
1193
1198
use std:: str:: FromStr ;
1194
1199
1195
1200
let client = RawClient :: new ( get_test_server ( ) , None ) . unwrap ( ) ;
1196
1201
1197
1202
// Mt.Gox hack address
1198
1203
let addr = bitcoin:: Address :: from_str ( "1FeexV6bAHb8ybZjqQMjJrcCrHGW9sb6uF" ) . unwrap ( ) ;
1199
- let resp = client. script_list_unspent ( & addr. script_pubkey ( ) ) . unwrap ( ) ;
1204
+ let resp = client
1205
+ . script_list_unspent ( & addr. payload . script_pubkey ( ) )
1206
+ . unwrap ( ) ;
1200
1207
1201
1208
assert ! ( resp. len( ) >= 329 ) ;
1202
1209
let txid = "e67a0550848b7932d7796aeea16ab0e48a5cfe81c4e8cca2c5b03e0416850114" ;
1203
- let txid = Txid :: from_hex ( txid) . unwrap ( ) ;
1210
+ let txid = Txid :: from_str ( txid) . unwrap ( ) ;
1204
1211
let txs: Vec < _ > = resp. iter ( ) . filter ( |e| e. tx_hash == txid) . collect ( ) ;
1205
1212
assert_eq ! ( txs. len( ) , 1 ) ;
1206
1213
assert_eq ! ( txs[ 0 ] . value, 7995600000000 ) ;
@@ -1217,9 +1224,12 @@ mod test {
1217
1224
// Mt.Gox hack address
1218
1225
let script_1 = bitcoin:: Address :: from_str ( "1FeexV6bAHb8ybZjqQMjJrcCrHGW9sb6uF" )
1219
1226
. unwrap ( )
1227
+ . payload
1220
1228
. script_pubkey ( ) ;
1221
1229
1222
- let resp = client. batch_script_list_unspent ( vec ! [ & script_1] ) . unwrap ( ) ;
1230
+ let resp = client
1231
+ . batch_script_list_unspent ( vec ! [ script_1. as_script( ) ] )
1232
+ . unwrap ( ) ;
1223
1233
assert_eq ! ( resp. len( ) , 1 ) ;
1224
1234
assert ! ( resp[ 0 ] . len( ) >= 329 ) ;
1225
1235
}
@@ -1236,31 +1246,29 @@ mod test {
1236
1246
1237
1247
#[ test]
1238
1248
fn test_transaction_get ( ) {
1239
- use bitcoin:: hashes:: hex:: FromHex ;
1240
1249
use bitcoin:: Txid ;
1241
1250
1242
1251
let client = RawClient :: new ( get_test_server ( ) , None ) . unwrap ( ) ;
1243
1252
1244
1253
let resp = client
1245
1254
. transaction_get (
1246
- & Txid :: from_hex ( "cc2ca076fd04c2aeed6d02151c447ced3d09be6fb4d4ef36cb5ed4e7a3260566" )
1255
+ & Txid :: from_str ( "cc2ca076fd04c2aeed6d02151c447ced3d09be6fb4d4ef36cb5ed4e7a3260566" )
1247
1256
. unwrap ( ) ,
1248
1257
)
1249
1258
. unwrap ( ) ;
1250
1259
assert_eq ! ( resp. version, 1 ) ;
1251
- assert_eq ! ( resp. lock_time. to_u32 ( ) , 0 ) ;
1260
+ assert_eq ! ( resp. lock_time. to_consensus_u32 ( ) , 0 ) ;
1252
1261
}
1253
1262
1254
1263
#[ test]
1255
1264
fn test_transaction_get_raw ( ) {
1256
- use bitcoin:: hashes:: hex:: FromHex ;
1257
1265
use bitcoin:: Txid ;
1258
1266
1259
1267
let client = RawClient :: new ( get_test_server ( ) , None ) . unwrap ( ) ;
1260
1268
1261
1269
let resp = client
1262
1270
. transaction_get_raw (
1263
- & Txid :: from_hex ( "cc2ca076fd04c2aeed6d02151c447ced3d09be6fb4d4ef36cb5ed4e7a3260566" )
1271
+ & Txid :: from_str ( "cc2ca076fd04c2aeed6d02151c447ced3d09be6fb4d4ef36cb5ed4e7a3260566" )
1264
1272
. unwrap ( ) ,
1265
1273
)
1266
1274
. unwrap ( ) ;
@@ -1288,14 +1296,13 @@ mod test {
1288
1296
1289
1297
#[ test]
1290
1298
fn test_transaction_get_merkle ( ) {
1291
- use bitcoin:: hashes:: hex:: FromHex ;
1292
1299
use bitcoin:: Txid ;
1293
1300
1294
1301
let client = RawClient :: new ( get_test_server ( ) , None ) . unwrap ( ) ;
1295
1302
1296
1303
let resp = client
1297
1304
. transaction_get_merkle (
1298
- & Txid :: from_hex ( "cc2ca076fd04c2aeed6d02151c447ced3d09be6fb4d4ef36cb5ed4e7a3260566" )
1305
+ & Txid :: from_str ( "cc2ca076fd04c2aeed6d02151c447ced3d09be6fb4d4ef36cb5ed4e7a3260566" )
1299
1306
. unwrap ( ) ,
1300
1307
630000 ,
1301
1308
)
@@ -1336,7 +1343,9 @@ mod test {
1336
1343
let addr = bitcoin:: Address :: from_str ( "1FeexV6bAHb8ybZjqQMjJrcCrHGW9sb6uF" ) . unwrap ( ) ;
1337
1344
1338
1345
// Just make sure that the call returns Ok(something)
1339
- client. script_subscribe ( & addr. script_pubkey ( ) ) . unwrap ( ) ;
1346
+ client
1347
+ . script_subscribe ( & addr. payload . script_pubkey ( ) )
1348
+ . unwrap ( ) ;
1340
1349
}
1341
1350
1342
1351
#[ test]
0 commit comments