-
Notifications
You must be signed in to change notification settings - Fork 11
/
sparecoins_lib.js
120 lines (107 loc) · 2.41 KB
/
sparecoins_lib.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
// == Public API Start ==
var ExceptionHandle = {
// accepts: err Error
raise: function( err ) {
throw err;
},
};
var Constants = {
toBTC: function() {
},
toSatoshi: function() {
},
minFee: BigInteger.valueOf( 10000 )
};
var Encryption = {
// accepts: password string
toPasswordDigest: function( password ) {},
};
// ExternalAPI
var BitcoinNodeAPI = {
root: 'https://blockchain.info/',
// accepts: addresses []string, callback function
// returns: nil
// callback
// accepts: data JSON
multiAddr: function( addresses, callback ) {
var self = this;
var data = {
"active": addresses.join( '|' ),
"cors": true
};
$.ajax( {
type: "GET",
dataType: 'json',
url: self.root + 'multiaddr',
data: data,
crossDomain: true,
success: function( ajaxResults ) {
callback( null, ajaxResults );
},
error: function( err ) {
callback( err, null );
}
} );
},
// accepts: addresses []string, callback function
// returns: nil
// callback
// accepts: data JSON
// {
// unspent_outputs: [
// {
// tx_hash: "810418730ef3e2b0e1d96f0a2637e0bbd70ab1ce9fe4dd07a707863cbcb68c10",
// tx_index: 101552953,
// tx_output_n: 0,
// script: "76a914419fb60d29b320764ed2ae6e77a16648a4e1853c88ac",
// value: 12430578,
// value_hex: "00bdacf2",
// confirmations: 127
// }
// ]
// }
getUnspent: function( addresses, callback ) {
var self = this;
var data = {
"active": addresses.join( '|' ),
"cors": true
};
$.ajax( {
type: "GET",
dataType: 'json',
url: self.root + 'unspent',
data: data,
crossDomain: true,
success: function( ajaxResults ) {
callback( null, ajaxResults );
},
error: function( err ) {
callback( err, null );
}
} );
},
// accepts: pendingTransaction obj
// callback
// accepts: data
pushTx: function( tx_serialized, tx_hash, callback ) {
var self = this;
var post_data = {
format: "plain",
tx: tx_serialized,
hash: tx_hash,
cors: "true",
};
$.ajax( {
type: "POST",
url: self.root + 'pushtx',
data: post_data,
success: function( data ) {
callback( null, data );
},
error: function( err ) {
callback( err, undefined );
}
} );
},
};
// == Public API End ==