etherclient 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/lib/etherclient/api/base_api.rb +3 -0
- data/lib/etherclient/api/miner_api.rb +36 -0
- data/lib/etherclient/api/pool_api.rb +27 -0
- data/lib/etherclient/api/worker_api.rb +28 -0
- data/lib/etherclient/attrs.rb +16 -0
- data/lib/etherclient/client.rb +22 -0
- data/lib/etherclient/models/miner/block.rb +12 -0
- data/lib/etherclient/models/miner/history.rb +12 -0
- data/lib/etherclient/models/miner/payout.rb +12 -0
- data/lib/etherclient/models/miner/round.rb +12 -0
- data/lib/etherclient/models/miner/setting.rb +12 -0
- data/lib/etherclient/models/miner/statistic.rb +12 -0
- data/lib/etherclient/models/model.rb +3 -0
- data/lib/etherclient/models/pool/credit.rb +12 -0
- data/lib/etherclient/models/pool/hashrate.rb +12 -0
- data/lib/etherclient/models/pool/mined_block.rb +12 -0
- data/lib/etherclient/models/pool/network.rb +12 -0
- data/lib/etherclient/models/pool/statistic.rb +12 -0
- data/lib/etherclient/models/worker/historical_statistic.rb +12 -0
- data/lib/etherclient/models/worker/monitor.rb +12 -0
- data/lib/etherclient/models/worker/statistic.rb +12 -0
- data/lib/etherclient.rb +60 -0
- metadata +65 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA1:
|
|
3
|
+
metadata.gz: 9af23df9af87e24c88310f9958efe6a4f091c28b
|
|
4
|
+
data.tar.gz: 930f20e407540c36773c58a8ab64437c85324414
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: 98d5bde4fed1cd03a6304a63dba13132bd0b51cf4834372fe0cb1dfc3127304ddbb38d71ee0b0cd342b5a92974f1fdb3ff90fa0c8a7beec1438b4818de83090f
|
|
7
|
+
data.tar.gz: 800c0a7817f3ba4ad4bc7ed276d8b8fe34c462d209242f336e6c175173cce192235def8c1ba59a1698d789676bc1b84c5b7697435402a2eec752c32b71336925
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
class EtherClient::Api::MinerApi < EtherClient::Api
|
|
2
|
+
|
|
3
|
+
def initialize(miner_id)
|
|
4
|
+
@miner_id = miner_id
|
|
5
|
+
end
|
|
6
|
+
|
|
7
|
+
def blocks
|
|
8
|
+
array = ethpool_request("miner/#{@miner_id}/blocks")
|
|
9
|
+
EtherClient::Model::MinerBlock.all(array)
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def history
|
|
13
|
+
array = ethermine_request("miner/#{@miner_id}/history")
|
|
14
|
+
EtherClient::Model::MinerHistory.all(array)
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def payouts
|
|
18
|
+
array = ethermine_request("miner/#{@miner_id}/payouts")
|
|
19
|
+
EtherClient::Model::MinerPayout.all(array)
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def rounds
|
|
23
|
+
array = ethermine_request("miner/#{@miner_id}/rounds")
|
|
24
|
+
EtherClient::Model::MinerRound.all(array)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def settings
|
|
28
|
+
data = ethermine_request("miner/#{@miner_id}/settings")
|
|
29
|
+
EtherClient::Model::MinerSetting.new(data)
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def statistics
|
|
33
|
+
data = ethermine_request("miner/#{@miner_id}/currentStats")
|
|
34
|
+
EtherClient::Model::MinerStatistic.new(data)
|
|
35
|
+
end
|
|
36
|
+
end
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
class EtherClient::Api::PoolApi < EtherClient::Api
|
|
2
|
+
|
|
3
|
+
def statistics
|
|
4
|
+
data = ethermine_request("poolStats")
|
|
5
|
+
EtherClient::Model::PoolStatistic.new(data)
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
def credits
|
|
9
|
+
array = ethpool_request("credits")
|
|
10
|
+
EtherClient::Model::PoolCredit.all(array)
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def mined_blocks
|
|
14
|
+
array = ethermine_request("blocks/history")
|
|
15
|
+
EtherClient::Model::PoolMinedBlock.all(array)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def network
|
|
19
|
+
data = ethermine_request("networkStats")
|
|
20
|
+
EtherClient::Model::PoolNetwork.new(data)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def hashrate
|
|
24
|
+
array = ethermine_request("servers/history")
|
|
25
|
+
EtherClient::Model::PoolHashrate.all(array)
|
|
26
|
+
end
|
|
27
|
+
end
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
class EtherClient::Api::WorkerApi < EtherClient::Api
|
|
2
|
+
|
|
3
|
+
def initialize(miner_id, worker_id = nil)
|
|
4
|
+
@miner_id = miner_id
|
|
5
|
+
@worker_id = worker_id
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
def all_statistics
|
|
9
|
+
array = ethermine_request("miner/#{@miner_id}/workers")
|
|
10
|
+
EtherClient::Model::WorkerStatistic.all(array)
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def historical_statistics
|
|
14
|
+
array = ethermine_request("miner/#{@miner_id}/worker/#{@worker_id}/history")
|
|
15
|
+
EtherClient::Model::WorkerHistoricalStatistic.all(array)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def statistics
|
|
19
|
+
data = ethermine_request("miner/#{@miner_id}/worker/#{@worker_id}/currentStats")
|
|
20
|
+
data['worker'] = @worker_id
|
|
21
|
+
EtherClient::Model::WorkerStatistic.new(data)
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def monitor
|
|
25
|
+
array = ethermine_request("miner/#{@miner_id}/workers/monitor")
|
|
26
|
+
EtherClient::Model::WorkerMonitor.all(array)
|
|
27
|
+
end
|
|
28
|
+
end
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
module EtherClient::Attrs
|
|
2
|
+
def attrs(data)
|
|
3
|
+
data.each do |key, value|
|
|
4
|
+
attr_name = underscore(key)
|
|
5
|
+
self.instance_variable_set("@#{attr_name}", value)
|
|
6
|
+
self.class.__send__(:attr_accessor, attr_name)
|
|
7
|
+
end
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def underscore(old_name)
|
|
11
|
+
new_name = old_name.gsub(/::/, '/').
|
|
12
|
+
gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
|
|
13
|
+
gsub(/([a-z\d])([A-Z])/,'\1_\2').
|
|
14
|
+
tr("-", "_").downcase
|
|
15
|
+
end
|
|
16
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
require 'net/http'
|
|
2
|
+
require 'json'
|
|
3
|
+
|
|
4
|
+
module EtherClient::Client
|
|
5
|
+
ETHERMINE_URL = 'https://api.ethermine.org/'
|
|
6
|
+
ETHPOOL_URL = 'http://api.ethpool.org/'
|
|
7
|
+
|
|
8
|
+
def ethermine_request(uri)
|
|
9
|
+
send_request("#{ETHERMINE_URL}#{uri}")
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def ethpool_request(uri)
|
|
13
|
+
send_request("#{ETHPOOL_URL}#{uri}")
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def send_request(url)
|
|
17
|
+
request_uri = URI(url)
|
|
18
|
+
response = Net::HTTP.get_response(request_uri)
|
|
19
|
+
raise StandardError, response.body unless response.message == 'OK'
|
|
20
|
+
JSON.parse(response.body)['data']
|
|
21
|
+
end
|
|
22
|
+
end
|
data/lib/etherclient.rb
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
class EtherClient
|
|
2
|
+
attr_reader :miner_id, :worker_id, :worker, :pool, :miner
|
|
3
|
+
|
|
4
|
+
def initialize(miner_id = nil, worker_id = nil)
|
|
5
|
+
@miner_id = miner_id
|
|
6
|
+
@worker_id = worker_id
|
|
7
|
+
set_apis
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def miner_id=(miner_id)
|
|
11
|
+
@miner_id = miner_id
|
|
12
|
+
set_apis
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def worker_id=(worker_id)
|
|
16
|
+
@worker_id = worker_id
|
|
17
|
+
set_apis
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
private
|
|
21
|
+
def set_apis
|
|
22
|
+
set_miner
|
|
23
|
+
set_pool
|
|
24
|
+
set_worker
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def set_miner
|
|
28
|
+
@miner = Api::MinerApi.new(@miner_id)
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def set_pool
|
|
32
|
+
@pool = Api::PoolApi.new
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def set_worker
|
|
36
|
+
@worker = Api::WorkerApi.new(@miner_id, @worker_id)
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
require_relative 'etherclient/client'
|
|
41
|
+
require_relative 'etherclient/attrs'
|
|
42
|
+
require_relative 'etherclient/api/base_api'
|
|
43
|
+
require_relative 'etherclient/api/miner_api'
|
|
44
|
+
require_relative 'etherclient/api/pool_api'
|
|
45
|
+
require_relative 'etherclient/api/worker_api'
|
|
46
|
+
require_relative 'etherclient/models/model'
|
|
47
|
+
require_relative 'etherclient/models/miner/block'
|
|
48
|
+
require_relative 'etherclient/models/miner/history'
|
|
49
|
+
require_relative 'etherclient/models/miner/payout'
|
|
50
|
+
require_relative 'etherclient/models/miner/round'
|
|
51
|
+
require_relative 'etherclient/models/miner/setting'
|
|
52
|
+
require_relative 'etherclient/models/miner/statistic'
|
|
53
|
+
require_relative 'etherclient/models/pool/statistic'
|
|
54
|
+
require_relative 'etherclient/models/pool/credit'
|
|
55
|
+
require_relative 'etherclient/models/pool/mined_block'
|
|
56
|
+
require_relative 'etherclient/models/pool/network'
|
|
57
|
+
require_relative 'etherclient/models/pool/hashrate'
|
|
58
|
+
require_relative 'etherclient/models/worker/statistic'
|
|
59
|
+
require_relative 'etherclient/models/worker/historical_statistic'
|
|
60
|
+
require_relative 'etherclient/models/worker/monitor'
|
metadata
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: etherclient
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.0.1
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- Luis Adrian Chavez Fregoso
|
|
8
|
+
autorequire:
|
|
9
|
+
bindir: bin
|
|
10
|
+
cert_chain: []
|
|
11
|
+
date: 2018-02-06 00:00:00.000000000 Z
|
|
12
|
+
dependencies: []
|
|
13
|
+
description: Client for ethermine.org & ethpool.org APIs
|
|
14
|
+
email: biolacf@gmail.com
|
|
15
|
+
executables: []
|
|
16
|
+
extensions: []
|
|
17
|
+
extra_rdoc_files: []
|
|
18
|
+
files:
|
|
19
|
+
- lib/etherclient.rb
|
|
20
|
+
- lib/etherclient/api/base_api.rb
|
|
21
|
+
- lib/etherclient/api/miner_api.rb
|
|
22
|
+
- lib/etherclient/api/pool_api.rb
|
|
23
|
+
- lib/etherclient/api/worker_api.rb
|
|
24
|
+
- lib/etherclient/attrs.rb
|
|
25
|
+
- lib/etherclient/client.rb
|
|
26
|
+
- lib/etherclient/models/miner/block.rb
|
|
27
|
+
- lib/etherclient/models/miner/history.rb
|
|
28
|
+
- lib/etherclient/models/miner/payout.rb
|
|
29
|
+
- lib/etherclient/models/miner/round.rb
|
|
30
|
+
- lib/etherclient/models/miner/setting.rb
|
|
31
|
+
- lib/etherclient/models/miner/statistic.rb
|
|
32
|
+
- lib/etherclient/models/model.rb
|
|
33
|
+
- lib/etherclient/models/pool/credit.rb
|
|
34
|
+
- lib/etherclient/models/pool/hashrate.rb
|
|
35
|
+
- lib/etherclient/models/pool/mined_block.rb
|
|
36
|
+
- lib/etherclient/models/pool/network.rb
|
|
37
|
+
- lib/etherclient/models/pool/statistic.rb
|
|
38
|
+
- lib/etherclient/models/worker/historical_statistic.rb
|
|
39
|
+
- lib/etherclient/models/worker/monitor.rb
|
|
40
|
+
- lib/etherclient/models/worker/statistic.rb
|
|
41
|
+
homepage: https://github.com/lacf95/etherclient
|
|
42
|
+
licenses:
|
|
43
|
+
- MIT
|
|
44
|
+
metadata: {}
|
|
45
|
+
post_install_message:
|
|
46
|
+
rdoc_options: []
|
|
47
|
+
require_paths:
|
|
48
|
+
- lib
|
|
49
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
50
|
+
requirements:
|
|
51
|
+
- - ">="
|
|
52
|
+
- !ruby/object:Gem::Version
|
|
53
|
+
version: '0'
|
|
54
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
55
|
+
requirements:
|
|
56
|
+
- - ">="
|
|
57
|
+
- !ruby/object:Gem::Version
|
|
58
|
+
version: '0'
|
|
59
|
+
requirements: []
|
|
60
|
+
rubyforge_project:
|
|
61
|
+
rubygems_version: 2.6.11
|
|
62
|
+
signing_key:
|
|
63
|
+
specification_version: 4
|
|
64
|
+
summary: Ethermine API client for Ruby!
|
|
65
|
+
test_files: []
|