1
1
function begin_mining ( )
2
2
{
3
- var job = get_work ( ) ;
4
- job . start_date = new Date ( ) . getTime ( ) ;
3
+ $ . ajax ( {
4
+ url : "getwork.php" ,
5
+ cache : false ,
6
+ success : function ( data ) {
7
+ var response = JSON . parse ( data ) ;
8
+
9
+ var job = { } ;
10
+
11
+ job . midstate = hexstring_to_binary ( response . midstate ) ;
12
+ job . data = hexstring_to_binary ( response . data ) ;
13
+ job . hash1 = hexstring_to_binary ( response . hash1 ) ;
14
+ job . target = hexstring_to_binary ( response . target ) ;
15
+
16
+ // Remove the first 512-bits of data, since they aren't used
17
+ // in calculating hashes.
18
+ job . data = job . data . slice ( 16 ) ;
19
+
20
+ // Set startdate
21
+ job . start_date = new Date ( ) . getTime ( ) ;
22
+
23
+ var worker = new Worker ( "miner.js" ) ;
24
+ worker . onmessage = onWorkerMessage ;
25
+ worker . onerror = onWorkerError ;
26
+ worker . postMessage ( job ) ;
27
+
28
+ }
29
+ } ) ;
30
+
31
+
5
32
6
- var worker = new Worker ( "miner.js" ) ;
7
- worker . onmessage = onWorkerMessage ;
8
- worker . onerror = onWorkerError ;
9
- worker . postMessage ( job ) ;
10
33
}
11
34
12
35
function onWorkerMessage ( event ) {
@@ -16,7 +39,9 @@ function onWorkerMessage(event) {
16
39
if ( job . golden_ticket !== false ) {
17
40
$ ( '#golden-ticket' ) . val ( job . golden_ticket ) ;
18
41
19
- // TODO: Submit Work
42
+ // Submit Work using AJAX.
43
+ $ . post ( "submitwork.php" , { golden_ticket : job . golden_ticket } ) ;
44
+
20
45
}
21
46
else {
22
47
// :'( it was just an update
@@ -31,34 +56,6 @@ function onWorkerError(event) {
31
56
throw event . data ;
32
57
}
33
58
34
-
35
- function get_work ( )
36
- {
37
- var workrequest = "{\"method\": \"getwork\", \"params\": \[\], \"id\":0}\r\n" ;
38
- var response = "{\"result\":{\"midstate\":\"fd8c924ed9a07c7d6dd49c1079429142d94cf99d6bb978e123190d5
39
- 2 fbf8ef6f \",\"data\":\"0000000116237c0c0d1baffc50d4bf2a19bf5bc6fbf381c26bac4a0a0000db4\
40
- 0000000008108b0619305607e7f04634ffe7ef35294970d5656694c6b7a0ef3b07b87e9ac4d8d90321b00\
41
- f3390000000000000080000000000000000000000000000000000000000000000000000000000000000000\
42
- 0000000000000080020000\",\"hash1\":\"000000000000000000000000000000000000\
43
- 00000000000000000000000000000000008000000000000000000000000000000000000000000000\
44
- 000000010000\",\"target\":\"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\
45
- 00000000\"},\"error\":null,\"id\":0}" ;
46
-
47
- var response = JSON . parse ( response )
48
- var job = { } ;
49
-
50
- job . midstate = hexstring_to_binary ( response . result . midstate ) ;
51
- job . data = hexstring_to_binary ( response . result . data ) ;
52
- job . hash1 = hexstring_to_binary ( response . result . hash1 ) ;
53
- job . target = hexstring_to_binary ( response . result . target ) ;
54
-
55
- // Remove the first 512-bits of data, since they aren't used
56
- // in calculating hashes.
57
- job . data = job . data . slice ( 16 ) ;
58
-
59
- return job
60
- }
61
-
62
59
// Given a hex string, returns an array of 32-bit integers
63
60
// Data is assumed to be stored least-significant byte first (in the string)
64
61
function hexstring_to_binary ( str )
@@ -84,4 +81,6 @@ function hex_to_byte(hex)
84
81
}
85
82
86
83
87
-
84
+ window . onload = function ( ) {
85
+ begin_mining ( ) ;
86
+ }
0 commit comments