ethermine_api 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: '0977591feed2d8e5ee4c472b20eafbcae36141b4'
4
- data.tar.gz: 9a63756c8adcd04d2546d663d439e6a3aaf31b3c
3
+ metadata.gz: 0c7018122fea85c09ed0300b6b6279bc10164d67
4
+ data.tar.gz: 04b61d0f351b196a55e010d3d0908dcd1ec50360
5
5
  SHA512:
6
- metadata.gz: 0eed8df1220873aea08adfb8228900724790ab58775d6a88033c961f0a5001a7a97607631dfc42e3afdaee8b29987ceb977f318df2c13b036f2710da16cb4616
7
- data.tar.gz: b06b89c574741b00b001adbc45323c54219eb658ef707d2d8dbdb1d8b8f0aab43b76c067271cf41a18a642c72b8c01b5b120706364f2a6124838f766b4c983bd
6
+ metadata.gz: c558baa11717abe624481888f0e170041946ee89fbcb8c8ed6175186b937386957715125860d782119565eabde50f15b4ca3a0bff904207fdbd19de32f7af352
7
+ data.tar.gz: d22620f476e095f5e8d94518e9f017aad263c0ea68524d58f4b9f077b7aa706f3cc62e16ea24fcf830b8c9749e04016c1d851892869efad9fbf43c158a811c94
data/README.md CHANGED
@@ -1,8 +1,6 @@
1
1
  # EthermineApi
2
2
 
3
- Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/ethermine_api`. To experiment with that code, run `bin/console` for an interactive prompt.
4
-
5
- TODO: Delete this and the text above, and describe your gem
3
+ Light weight [ethermine.org](https://ethermine.org) api wrapper written in Ruby
6
4
 
7
5
  ## Installation
8
6
 
@@ -22,7 +20,107 @@ Or install it yourself as:
22
20
 
23
21
  ## Usage
24
22
 
25
- TODO: Write usage instructions here
23
+ > Ethpool, Ethermine & Flypool provide a harmonized API for accessing all publicly
24
+ > available information.
25
+ > Access to the API is limited to 100 requests / 15 minutes / ip.
26
+ > All information is cached for 2 minutes so there is no point in making more
27
+ > frequent requests.
28
+
29
+ [ethermine.org api doc](https://api.ethermine.org/docs/)
30
+
31
+ ### Pool
32
+
33
+ #### Basic Pool Stats
34
+
35
+ ```ruby
36
+ EthermineApi::Pool.stats
37
+ # => #<OpenStruct status="OK", data=#<OpenStruct minedBlocks=[#<OpenStruct number=4380856, miner="f6F26015F0760f7A4B7f93E765bc48883Daf79a5", time=1508297435>, #<OpenStruct number=4380847, miner="848F0a6dC1ABe357b56892884C97387348858CA2", time=1508297307>, #<OpenStruct number=4380847, miner="10a7b4813166d8aa2ee61762d727010524a3927d", time=1508297282>, #<OpenStruct number=4380843, miner="3509F7bd9557F8a9b793759b3E3bfA2Cd505ae31", time=1508297257>, #<OpenStruct number=4380842, miner="bc049f47d8d6cdcf8d784aeb66bc0bbdd7dc1a45", time=1508297254>,#<OpenStruct number=4380830, miner="2F73FDA67B06b617a5d5F4de2c81b3427D53C680", time=1508297118>, #<OpenStruct number=4380826, miner="a23a1970cdb3eb47bff9e04171141776fe8a6cb1", time=1508297084>, #<OpenStruct number=4380823, miner="f88798b68067166e6d2fb1c50b7934db688fa118", time=1508297024>, #<OpenStruct number=4380821, miner="92CF722FAbF55fb8Bff11beebaC58897D242D8a6", time=1508297003>, #<OpenStruct number=4380820, miner="00F8f4508ddF1F210C1874060B4Ceab5dDAbd13E", time=1508296997>], topMiners=[#<OpenStruct miner="f1b3e00955d7cbcde70f4337e333cd84da3a1c36", hashRate=461864222222.22217>, #<OpenStruct miner="276b88fe9f3d8dc71a53034cc052f62648e3e99f", hashRate=196604222222.22223>, #<OpenStruct miner="b7b03ce91e5826bd8d223b15dedbdb8ef4ddd4a8", hashRate=184991888888.8889>, #<OpenStruct miner="362c89a6d8a1597ff41eb03e1e897d0d95827c54", hashRate=125916722222.22234>, #<OpenStruct miner="a65f825e4f82c26aee244512cba7add256bc0788", hashRate=123880111111.11111>, #<OpenStruct miner="482f7753b3d62c7d1fd0fdcb8fcc2d61704dfced", hashRate=81146333333.33336>, #<OpenStruct miner="58801ebec6685d0d5461a30999fa5df91549a59e", hashRate=78271888888.88887>, #<OpenStruct miner="68847a67605350c471b7a46c0ef27206512a6a14", hashRate=70088000000>, #<OpenStruct miner="0d4efc9557218e6ac6431c9d45ed7b4770cbe252", hashRate=69118111111.11111>, #<OpenStruct miner="d060904aa97c021ec31c8a502a8b2443f51a38bd", hashRate=64865666666.666664>], poolStats=#<OpenStruct hashRate=28705896277778.773, miners=66733, workers=230401, blocksPerHour=69.63>, price=#<OpenStruct usd=307.1, btc=0.05606>>>
38
+ ```
39
+
40
+ #### Credits list (only for ethpool.org)
41
+
42
+ ```ruby
43
+ EthermineApi::Pool.credits(base_url: 'http://api.ethpool.org')
44
+ # => #<OpenStruct status="OK", data=[#<OpenStruct miner="87e22465bfe36496ae21a23c0be5f5956480e25b", hashrate=414166666.6666666, credit=2645199800000000>, #<OpenStruct miner="4ef8295f6D04452DD8aD040bf43Da859379Dc564", hashrate=238333333.33333337, credit=2634510200000000>, #<OpenStruct miner="249586e792dB363A179A259060bF32fd6C36c013", hashrate=257722222.2222222, credit=2632519800000000>, #<OpenStruct miner="2B9F67024dC91dEbab6A322d27201f5F80f6b06A", hashrate=945888888.888889, credit=2631665684962467>,...]>
45
+ ```
46
+
47
+ #### Mined Block Stats
48
+
49
+ ```ruby
50
+ EthermineApi::Pool.blocks_history
51
+ # => #<OpenStruct status="OK", data=[#<OpenStruct time=1508212736, nbrBlocks=15, difficulty=1469986226066083>, #<OpenStruct time=1508216246, nbrBlocks=76, difficulty=1498157811667782>, #<OpenStruct time=1508219985, nbrBlocks=65, difficulty=1495924338718297>, #<OpenStruct time=1508223454, nbrBlocks=77, difficulty=1470413115601682>, #<OpenStruct time=1508227187, nbrBlocks=65, difficulty=1460372702365663>, #<OpenStruct time=1508230751, nbrBlocks=70, difficulty=1460910425240631>, #<OpenStruct time=1508234363, nbrBlocks=75, difficulty=1456608509189655>, #<OpenStruct time=1508237945, nbrBlocks=67, difficulty=1423382928506978>, #<OpenStruct time=1508241532, nbrBlocks=52, difficulty=1425447900135137>, #<OpenStruct time=1508245190, nbrBlocks=63, difficulty=1400461436689854>, #<OpenStruct time=1508248720, nbrBlocks=76, difficulty=1410667703939148>, #<OpenStruct time=1508252389, nbrBlocks=71, difficulty=1409925035518444>, #<OpenStruct time=1508255870, nbrBlocks=71, difficulty=1389940935574532>, #<OpenStruct time=1508259561, nbrBlocks=77, difficulty=1407629306676071>, #<OpenStruct time=1508263181, nbrBlocks=61, difficulty=1399384875766905>, #<OpenStruct time=1508266793, nbrBlocks=69, difficulty=1393112908301133>, #<OpenStruct time=1508270344, nbrBlocks=85, difficulty=1390290461807211>, #<OpenStruct time=1508273983, nbrBlocks=78, difficulty=1404529417941880>, #<OpenStruct time=1508277469, nbrBlocks=67, difficulty=1407907030026226>, #<OpenStruct time=1508281198, nbrBlocks=76, difficulty=1424382704053059>, #<OpenStruct time=1508284770, nbrBlocks=79, difficulty=1442483911584531>, #<OpenStruct time=1508288359, nbrBlocks=70, difficulty=1435421392397694>, #<OpenStruct time=1508291898, nbrBlocks=76, difficulty=1433857401029767>, #<OpenStruct time=1508295581, nbrBlocks=58, difficulty=1433133675561812>, #<OpenStruct time=1508298258, nbrBlocks=62, difficulty=1426020651269258>]>
52
+
53
+ #### Network Stats
54
+
55
+ ```ruby
56
+ EthermineApi::Pool.network_stats
57
+ # => #<OpenStruct status="OK", data=#<OpenStruct time=1508298297, blockTime=14.2129, difficulty=1417655795160128, hashrate=107244424361637, usd=306.59, btc=0.05612>>
58
+ ```
59
+
60
+ #### Server Hashrate Stats
61
+
62
+ ```ruby
63
+ EthermineApi::Pool.servers_stats
64
+ # => #<OpenStruct status="OK", data=[#<OpenStruct miner="87e22465bfe36496ae21a23c0be5f5956480e25b", hashrate=414166666.6666666, credit=2645199800000000>, #<OpenStruct miner="4ef8295f6D04452DD8aD040bf43Da859379Dc564", hashrate=238333333.33333337, credit=2634510200000000>, #<OpenStruct miner="249586e792dB363A179A259060bF32fd6C36c013", hashrate=257722222.2222222, credit=2632519800000000>, #<OpenStruct miner="2B9F67024dC91dEbab6A322d27201f5F80f6b06A", hashrate=945888888.888889, credit=2631665684962467>, #<OpenStruct miner="667C28528018a7Aa3179f3E3DA620E15EDBEED79", hashrate=1324111111.1111112, credit=2626431262474482>,...]>
65
+ ```
66
+
67
+ ### Miner
68
+
69
+ #### History
70
+
71
+ ```ruby
72
+ EthermineApi::Miner.history(id: <miner hash>)
73
+ # => #<OpenStruct status="OK", data=[#<OpenStruct time=1508212800, reportedHashrate=0, currentHashrate=223833333.33333334, validShares=193, invalidShares=0, staleShares=13, averageHashrate=255819830.24691355, activeWorkers=3>, #<OpenStruct time=1508213400, reportedHashrate=0, currentHashrate=223111111.1111111, validShares=193, invalidShares=0, staleShares=12, averageHashrate=255527777.77777773, activeWorkers=3>, #<OpenStruct time=1508214000, reportedHashrate=0, currentHashrate=228666666.6666667, validShares=198, invalidShares=0, staleShares=12, averageHashrate=255189429.01234564, activeWorkers=3>,...]>
74
+ ```
75
+
76
+ #### Payouts
77
+
78
+ ```ruby
79
+ EthermineApi::Miner.payouts(id: <miner hash>)
80
+ # => #<OpenStruct status="OK", data=[#<OpenStruct start=4246675, end=4342309, amount=1000144114602165800, txHash="0x376914aba43724b4637bfac6c0ba3d852f01de6ac9e82f988d8e9663e1f52475",paidOn=1507307206>, #<OpenStruct start=4157914, end=4246641, amount=1000300147302413600, txHash="0xeb92d2762a20b7e6ff46ad8f63aeec36227c2674fd0d6da5920b8e22fe261e92", paidOn=1504755124>, #<OpenStruct start=4099637, end=4157883, amount=1000299829170798700, txHash="0x36d380088e9a236a9900aaec0c8e54b3237344071afc79ea394aa63a4cfd1d6f", paidOn=1502740295>, #<OpenStruct start=3976116, end=4099603, amount=1000219294965464200, txHash="0x669907742afefae8c00cc4c2e086caf9890f1efa787ca7b109370465dc45167a", paidOn=1501505905>]>
81
+ ```
82
+
83
+ #### Rounds
84
+
85
+ ```ruby
86
+ EthermineApi::Miner.rounds(id: <miner hash>)
87
+ # => #<OpenStruct status="OK", data=[#<OpenStruct time=1508212800, reportedHashrate=0, currentHashrate=223833333.33333334, validShares=193, invalidShares=0, staleShares=13, averageHashrate=255819830.24691355, activeWorkers=3>, #<OpenStruct time=1508213400, reportedHashrate=0, currentHashrate=223111111.1111111, validShares=193, invalidShares=0, staleShares=12, averageHashrate=255527777.77777773, activeWorkers=3>, #<OpenStruct time=1508214000, reportedHashrate=0, currentHashrate=228666666.6666667, validShares=198, invalidShares=0, staleShares=12, averageHashrate=255189429.01234564, activeWorkers=3>,
88
+ ```
89
+
90
+ #### Settings
91
+
92
+ ```ruby
93
+ EthermineApi::Miner.settings(id: <miner hash>)
94
+ ```
95
+
96
+ #### Statistics
97
+
98
+ ```ruby
99
+ EthermineApi::Miner.stats(id: <miner hash>)
100
+ # => #<OpenStruct status="OK", data=#<OpenStruct time=1508299200, lastSeen=1508299199, reportedHashrate=0, currentHashrate=261666666.66666666, validShares=229, invalidShares=0, staleS│107 After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will hares=10, averageHashrate=206439927.73261067, activeWorkers=3, unpaid=366918340027796600, unconfirmed=nil, coinsPerMin=2.4173574397324627e-05, usdPerMin=0.007394696408141603, btcPerM│ allow you to experiment.
101
+ in=1.3510610730664735e-06>>
102
+ ```
103
+
104
+ ### Worker
105
+
106
+ #### All Worker Statistics
107
+
108
+ ```ruby
109
+ EthermineApi::Worker.all(miner_id: <miner hash>)
110
+ # => #<OpenStruct status="OK", data=[#<OpenStruct worker="bitty-balls", time=1508299200, lastSeen=1508299195, reportedHashrate=0, currentHashrate=123611111.1111111, validShares=108, invalidShares=0, staleShares=5, averageHashrate=130379629.62962958>, #<OpenStruct worker="bitty-booge", time=1508299200, lastSeen=1508299157, reportedHashrate=0, currentHashrate=111055555.55555555, validShares=98, invalidShares=0, staleShares=3, averageHashrate=89804783.95061725>, #<OpenStruct worker="bitty-boosh", time=1508299200, lastSeen=1508299199, reportedHashrate=0, currentHashrate=27000000, validShares=23, invalidShares=0, staleShares=2, averageHashrate=27170524.69135802>]>
111
+ ```
112
+
113
+ #### Individual Historical Worker Statistics
114
+
115
+ ```ruby
116
+ EthermineApi::Worker.history(id: <worker id>, miner_id: <miner hash>)
117
+ ```
118
+
119
+ #### Individual Worker Statistics
120
+
121
+ ```ruby
122
+ EthermineApi::Worker.stats(id: <worker id>, miner_id: <miner hash>)
123
+ ```
26
124
 
27
125
  ## Development
28
126
 
@@ -40,4 +138,4 @@ The gem is available as open source under the terms of the [MIT License](http://
40
138
 
41
139
  ## Code of Conduct
42
140
 
43
- Everyone interacting in the EthermineApi project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/[USERNAME]/ethermine_api/blob/master/CODE_OF_CONDUCT.md).
141
+ Everyone interacting in the EthermineApi project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/natemacinnes/ethermine_api/blob/master/CODE_OF_CONDUCT.md).
@@ -1,7 +1,7 @@
1
1
  module EthermineApi
2
2
  class Pool
3
3
  class << self
4
- def pool_stats options={}
4
+ def stats options={}
5
5
  DefaultParser.parse(
6
6
  EthermineApi.connection(options[:base_url]).call("poolStats")
7
7
  )
@@ -1,3 +1,3 @@
1
1
  module EthermineApi
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ethermine_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nathan MacInnes