@@ -7,6 +7,8 @@ var bitcorenode = require('../../../');
7
7
var AddressService = bitcorenode . services . Address ;
8
8
var blockData = require ( '../../data/livenet-345003.json' ) ;
9
9
var bitcore = require ( 'bitcore' ) ;
10
+ var Script = bitcore . Script ;
11
+ var Address = bitcore . Address ;
10
12
var Networks = bitcore . Networks ;
11
13
var EventEmitter = require ( 'events' ) . EventEmitter ;
12
14
var errors = bitcorenode . errors ;
@@ -106,6 +108,40 @@ describe('Address Service', function() {
106
108
} ) ;
107
109
} ) ;
108
110
111
+ describe ( '#_extractAddressInfoFromScript' , function ( ) {
112
+ var am ;
113
+ before ( function ( ) {
114
+ am = new AddressService ( { node : mocknode } ) ;
115
+ am . node . network = Networks . livenet ;
116
+ } ) ;
117
+ it ( 'pay-to-publickey' , function ( ) {
118
+ var pubkey = new bitcore . PublicKey ( '022df8750480ad5b26950b25c7ba79d3e37d75f640f8e5d9bcd5b150a0f85014da' ) ;
119
+ var script = Script . buildPublicKeyOut ( pubkey ) ;
120
+ var info = am . _extractAddressInfoFromScript ( script ) ;
121
+ info . addressType . should . equal ( Address . PayToPublicKeyHash ) ;
122
+ info . hashBuffer . toString ( 'hex' ) . should . equal ( '9674af7395592ec5d91573aa8d6557de55f60147' ) ;
123
+ } ) ;
124
+ it ( 'pay-to-publickeyhash' , function ( ) {
125
+ var script = Script ( 'OP_DUP OP_HASH160 20 0x0000000000000000000000000000000000000000 OP_EQUALVERIFY OP_CHECKSIG' ) ;
126
+ var info = am . _extractAddressInfoFromScript ( script ) ;
127
+ info . addressType . should . equal ( Address . PayToPublicKeyHash ) ;
128
+ info . hashBuffer . toString ( 'hex' ) . should . equal ( '0000000000000000000000000000000000000000' ) ;
129
+ } ) ;
130
+ it ( 'pay-to-scripthash' , function ( ) {
131
+ var script = Script ( 'OP_HASH160 20 0x0000000000000000000000000000000000000000 OP_EQUAL' ) ;
132
+ var info = am . _extractAddressInfoFromScript ( script ) ;
133
+ info . addressType . should . equal ( Address . PayToScriptHash ) ;
134
+ info . hashBuffer . toString ( 'hex' ) . should . equal ( '0000000000000000000000000000000000000000' ) ;
135
+ } ) ;
136
+ it ( 'non-address script type' , function ( ) {
137
+ var buf = new Buffer ( 40 ) ;
138
+ buf . fill ( 0 ) ;
139
+ var script = Script ( 'OP_RETURN 40 0x' + buf . toString ( 'hex' ) ) ;
140
+ var info = am . _extractAddressInfoFromScript ( script ) ;
141
+ info . should . equal ( false ) ;
142
+ } ) ;
143
+ } ) ;
144
+
109
145
describe ( '#blockHandler' , function ( ) {
110
146
var am ;
111
147
var testBlock = bitcore . Block . fromString ( blockData ) ;
0 commit comments