11var assert = require ( 'assert' )
2- var bigi = require ( 'bigi' )
32var bitcoin = require ( '../../' )
43var helloblock = require ( 'helloblock-js' ) ( {
54 network : 'testnet'
@@ -22,41 +21,6 @@ describe('bitcoinjs-lib (advanced)', function() {
2221 assert ( bitcoin . Message . verify ( address , signature , message ) )
2322 } )
2423
25- it ( 'can generate a single-key stealth address' , function ( ) {
26- var receiver = bitcoin . ECKey . fromWIF ( '5KYZdUEo39z3FPrtuX2QbbwGnNP5zTd7yyr2SC1j299sBCnWjss' )
27-
28- // XXX: ephemeral, must be random (and secret to sender) to preserve privacy
29- var sender = bitcoin . ECKey . fromWIF ( 'Kxr9tQED9H44gCmp6HAdmemAzU3n84H3dGkuWTKvE23JgHMW8gct' )
30-
31- var G = bitcoin . ECKey . curve . G
32- var d = receiver . d // secret (receiver only)
33- var Q = receiver . pub . Q // shared
34-
35- var e = sender . d // secret (sender only)
36- var P = sender . pub . Q // shared
37-
38- // derived shared secret
39- var eQ = Q . multiply ( e ) // sender
40- var dP = P . multiply ( d ) // receiver
41- assert . deepEqual ( eQ . getEncoded ( ) , dP . getEncoded ( ) )
42-
43- var c = bigi . fromBuffer ( bitcoin . crypto . sha256 ( eQ . getEncoded ( ) ) )
44- var cG = G . multiply ( c )
45-
46- // derived public key
47- var QprimeS = Q . add ( cG )
48- var QprimeR = G . multiply ( d . add ( c ) )
49- assert . deepEqual ( QprimeR . getEncoded ( ) , QprimeS . getEncoded ( ) )
50-
51- // derived shared-secret address
52- var address = new bitcoin . ECPubKey ( QprimeS ) . getAddress ( ) . toString ( )
53-
54- assert . equal ( address , '1EwCNJNZM5q58YPPTnjR1H5BvYRNeyZi47' )
55- } )
56-
57- // TODO
58- it . skip ( 'can generate a dual-key stealth address' , function ( ) { } )
59-
6024 it ( 'can create an OP_RETURN transaction' , function ( done ) {
6125 this . timeout ( 20000 )
6226
0 commit comments