sibit 0.21.2 → 0.21.3
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 +4 -4
- data/lib/sibit/bitcoinchain.rb +9 -8
- data/lib/sibit/blockchain.rb +10 -9
- data/lib/sibit/blockchair.rb +7 -6
- data/lib/sibit/btc.rb +14 -12
- data/lib/sibit/cex.rb +1 -1
- data/lib/sibit/cryptoapis.rb +12 -15
- data/lib/sibit/earn.rb +3 -2
- data/lib/sibit/json.rb +4 -2
- data/lib/sibit/version.rb +1 -1
- data/sibit.gemspec +1 -0
- metadata +16 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: c72b1319eee0a3b3dc8370b7dd1447109cfd96d86754b5a3aa3444986fb8f9e7
|
|
4
|
+
data.tar.gz: 7694b4e1284ac6d656b0794c7e58e5ed4d8be6eabd62e126608395f355986635
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 60c20d72c1b6b6c37c785bb3c0252d5cf37ed9f55892e51ff8675c17ee8870d5f968dbeeb150efb10b959f7f3dc419a56e7f3a31531b76a4216b62654aea6323
|
|
7
|
+
data.tar.gz: 7da7246776833039f185b63c2829f387f4fa20f506ba5085d1746e31814d470a3064caf6928b125a2ec9d34226297a2cd6e50d2fd53cb898498cc022f4deec6c
|
data/lib/sibit/bitcoinchain.rb
CHANGED
|
@@ -20,13 +20,14 @@
|
|
|
20
20
|
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
21
|
# SOFTWARE.
|
|
22
22
|
|
|
23
|
-
require '
|
|
23
|
+
require 'iri'
|
|
24
24
|
require 'json'
|
|
25
|
-
|
|
25
|
+
require 'uri'
|
|
26
26
|
require_relative 'error'
|
|
27
|
-
require_relative 'log'
|
|
28
27
|
require_relative 'http'
|
|
29
28
|
require_relative 'json'
|
|
29
|
+
require_relative 'log'
|
|
30
|
+
require_relative 'version'
|
|
30
31
|
|
|
31
32
|
# Bitcoinchain.com API.
|
|
32
33
|
#
|
|
@@ -56,7 +57,7 @@ class Sibit
|
|
|
56
57
|
# Get hash of the block after this one.
|
|
57
58
|
def next_of(hash)
|
|
58
59
|
block = Sibit::Json.new(http: @http, log: @log).get(
|
|
59
|
-
|
|
60
|
+
Iri.new('https://api-r.bitcoinchain.com/v1/block').append(hash)
|
|
60
61
|
)[0]
|
|
61
62
|
raise Sibit::Error, "Block #{hash} not found" if block.nil?
|
|
62
63
|
nxt = block['next_block']
|
|
@@ -69,7 +70,7 @@ class Sibit
|
|
|
69
70
|
# Gets the balance of the address, in satoshi.
|
|
70
71
|
def balance(address)
|
|
71
72
|
json = Sibit::Json.new(http: @http, log: @log).get(
|
|
72
|
-
|
|
73
|
+
Iri.new('https://api-r.bitcoinchain.com/v1/address').append(address),
|
|
73
74
|
accept: [200, 409]
|
|
74
75
|
)[0]
|
|
75
76
|
b = json['balance']
|
|
@@ -91,7 +92,7 @@ class Sibit
|
|
|
91
92
|
# Gets the hash of the latest block.
|
|
92
93
|
def latest
|
|
93
94
|
hash = Sibit::Json.new(http: @http, log: @log).get(
|
|
94
|
-
|
|
95
|
+
Iri.new('https://api-r.bitcoinchain.com/v1/status')
|
|
95
96
|
)['hash']
|
|
96
97
|
@log.info("The latest block hash is #{hash}")
|
|
97
98
|
hash
|
|
@@ -111,11 +112,11 @@ class Sibit
|
|
|
111
112
|
# an exception if the block is not found.
|
|
112
113
|
def block(hash)
|
|
113
114
|
head = Sibit::Json.new(http: @http, log: @log).get(
|
|
114
|
-
|
|
115
|
+
Iri.new('https://api-r.bitcoinchain.com/v1/block').append(hash)
|
|
115
116
|
)[0]
|
|
116
117
|
raise Sibit::Error, "The block #{hash} is not found" if head.nil?
|
|
117
118
|
txs = Sibit::Json.new(http: @http, log: @log).get(
|
|
118
|
-
|
|
119
|
+
Iri.new('https://api-r.bitcoinchain.com/v1/block/txs').append(hash)
|
|
119
120
|
)
|
|
120
121
|
nxt = head['next_block']
|
|
121
122
|
nxt = nil if nxt == '0000000000000000000000000000000000000000000000000000000000000000'
|
data/lib/sibit/blockchain.rb
CHANGED
|
@@ -21,12 +21,13 @@
|
|
|
21
21
|
# SOFTWARE.
|
|
22
22
|
|
|
23
23
|
require 'bitcoin'
|
|
24
|
+
require 'iri'
|
|
24
25
|
require 'json'
|
|
25
26
|
require 'uri'
|
|
26
|
-
require_relative 'version'
|
|
27
27
|
require_relative 'error'
|
|
28
28
|
require_relative 'http'
|
|
29
29
|
require_relative 'json'
|
|
30
|
+
require_relative 'version'
|
|
30
31
|
|
|
31
32
|
# Blockchain.info API.
|
|
32
33
|
#
|
|
@@ -49,7 +50,7 @@ class Sibit
|
|
|
49
50
|
# Current price of BTC in USD (float returned).
|
|
50
51
|
def price(currency = 'USD')
|
|
51
52
|
h = Sibit::Json.new(http: @http, log: @log).get(
|
|
52
|
-
|
|
53
|
+
Iri.new('https://blockchain.info/ticker')
|
|
53
54
|
)[currency]
|
|
54
55
|
raise Error, "Unrecognized currency #{currency}" if h.nil?
|
|
55
56
|
price = h['15m']
|
|
@@ -61,7 +62,7 @@ class Sibit
|
|
|
61
62
|
def next_of(_hash)
|
|
62
63
|
raise Sibit::NotSupportedError, 'next_of() in Blockchain API is broken, always returns NULL'
|
|
63
64
|
# json = Sibit::Json.new(http: @http, log: @log).get(
|
|
64
|
-
#
|
|
65
|
+
# Iri.new('https://blockchain.info/rawblock').append(hash)
|
|
65
66
|
# )
|
|
66
67
|
# nxt = json['next_block'][0]
|
|
67
68
|
# if nxt.nil?
|
|
@@ -75,7 +76,7 @@ class Sibit
|
|
|
75
76
|
# The height of the block.
|
|
76
77
|
def height(hash)
|
|
77
78
|
json = Sibit::Json.new(http: @http, log: @log).get(
|
|
78
|
-
|
|
79
|
+
Iri.new('https://blockchain.info/rawblock').append(hash)
|
|
79
80
|
)
|
|
80
81
|
h = json['height']
|
|
81
82
|
@log.info("The height of #{hash} is #{h}")
|
|
@@ -85,7 +86,7 @@ class Sibit
|
|
|
85
86
|
# Gets the balance of the address, in satoshi.
|
|
86
87
|
def balance(address)
|
|
87
88
|
json = Sibit::Json.new(http: @http, log: @log).get(
|
|
88
|
-
|
|
89
|
+
Iri.new('https://blockchain.info/rawaddr').append(address).add(limit: 0),
|
|
89
90
|
accept: [200, 500]
|
|
90
91
|
)
|
|
91
92
|
b = json['final_balance']
|
|
@@ -102,7 +103,7 @@ class Sibit
|
|
|
102
103
|
# of Bitcoin addresses.
|
|
103
104
|
def utxos(sources)
|
|
104
105
|
Sibit::Json.new(http: @http, log: @log).get(
|
|
105
|
-
|
|
106
|
+
Iri.new('https://blockchain.info/unspent').add(active: sources.join('|'), limit: 1000)
|
|
106
107
|
)['unspent_outputs'].map do |u|
|
|
107
108
|
{
|
|
108
109
|
value: u['value'],
|
|
@@ -118,7 +119,7 @@ class Sibit
|
|
|
118
119
|
def push(hex)
|
|
119
120
|
return if @dry
|
|
120
121
|
Sibit::Json.new(http: @http, log: @log).post(
|
|
121
|
-
|
|
122
|
+
Iri.new('https://blockchain.info/pushtx'),
|
|
122
123
|
hex
|
|
123
124
|
)
|
|
124
125
|
end
|
|
@@ -126,7 +127,7 @@ class Sibit
|
|
|
126
127
|
# Gets the hash of the latest block.
|
|
127
128
|
def latest
|
|
128
129
|
hash = Sibit::Json.new(http: @http, log: @log).get(
|
|
129
|
-
|
|
130
|
+
Iri.new('https://blockchain.info/latestblock')
|
|
130
131
|
)['hash']
|
|
131
132
|
@log.info("The latest block hash is #{hash}")
|
|
132
133
|
hash
|
|
@@ -135,7 +136,7 @@ class Sibit
|
|
|
135
136
|
# This method should fetch a Blockchain block and return as a hash.
|
|
136
137
|
def block(hash)
|
|
137
138
|
json = Sibit::Json.new(http: @http, log: @log).get(
|
|
138
|
-
|
|
139
|
+
Iri.new('https://blockchain.info/rawblock').append(hash)
|
|
139
140
|
)
|
|
140
141
|
{
|
|
141
142
|
hash: json['hash'],
|
data/lib/sibit/blockchair.rb
CHANGED
|
@@ -20,14 +20,15 @@
|
|
|
20
20
|
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
21
|
# SOFTWARE.
|
|
22
22
|
|
|
23
|
-
require 'uri'
|
|
24
|
-
require 'json'
|
|
25
23
|
require 'cgi'
|
|
26
|
-
|
|
24
|
+
require 'iri'
|
|
25
|
+
require 'json'
|
|
26
|
+
require 'uri'
|
|
27
27
|
require_relative 'error'
|
|
28
|
-
require_relative 'log'
|
|
29
28
|
require_relative 'http'
|
|
30
29
|
require_relative 'json'
|
|
30
|
+
require_relative 'log'
|
|
31
|
+
require_relative 'version'
|
|
31
32
|
|
|
32
33
|
# Blockchair.com API.
|
|
33
34
|
#
|
|
@@ -64,7 +65,7 @@ class Sibit
|
|
|
64
65
|
# Gets the balance of the address, in satoshi.
|
|
65
66
|
def balance(address)
|
|
66
67
|
json = Sibit::Json.new(http: @http, log: @log).get(
|
|
67
|
-
|
|
68
|
+
Iri.new('https://api.blockchair.com/bitcoin/dashboards/address').append(address).fragment(the_key)
|
|
68
69
|
)['data'][address]
|
|
69
70
|
if json.nil?
|
|
70
71
|
@log.info("Address #{address} not found")
|
|
@@ -94,7 +95,7 @@ class Sibit
|
|
|
94
95
|
# Push this transaction (in hex format) to the network.
|
|
95
96
|
def push(hex)
|
|
96
97
|
Sibit::Json.new(http: @http, log: @log).post(
|
|
97
|
-
|
|
98
|
+
Iri.new('https://api.blockchair.com/bitcoin/push/transaction').fragment(the_key),
|
|
98
99
|
"data=#{hex}"
|
|
99
100
|
)
|
|
100
101
|
@log.info("Transaction (#{hex.length} in hex) has been pushed to Blockchair")
|
data/lib/sibit/btc.rb
CHANGED
|
@@ -20,13 +20,14 @@
|
|
|
20
20
|
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
21
|
# SOFTWARE.
|
|
22
22
|
|
|
23
|
-
require '
|
|
23
|
+
require 'iri'
|
|
24
24
|
require 'json'
|
|
25
|
-
|
|
25
|
+
require 'uri'
|
|
26
26
|
require_relative 'error'
|
|
27
|
-
require_relative 'log'
|
|
28
27
|
require_relative 'http'
|
|
29
28
|
require_relative 'json'
|
|
29
|
+
require_relative 'log'
|
|
30
|
+
require_relative 'version'
|
|
30
31
|
|
|
31
32
|
# Btc.com API.
|
|
32
33
|
#
|
|
@@ -52,7 +53,7 @@ class Sibit
|
|
|
52
53
|
|
|
53
54
|
# Gets the balance of the address, in satoshi.
|
|
54
55
|
def balance(address)
|
|
55
|
-
uri =
|
|
56
|
+
uri = Iri.new('https://chain.api.btc.com/v3/address').append(address).append('unspent')
|
|
56
57
|
json = Sibit::Json.new(http: @http, log: @log).get(uri)
|
|
57
58
|
if json['err_no'] == 1
|
|
58
59
|
@log.info("The balance of #{address} is zero (not found)")
|
|
@@ -76,13 +77,13 @@ class Sibit
|
|
|
76
77
|
# Get hash of the block after this one.
|
|
77
78
|
def next_of(hash)
|
|
78
79
|
head = Sibit::Json.new(http: @http, log: @log).get(
|
|
79
|
-
|
|
80
|
+
Iri.new('https://chain.api.btc.com/v3/block').append(hash)
|
|
80
81
|
)
|
|
81
82
|
data = head['data']
|
|
82
83
|
raise Sibit::Error, "The block #{hash} not found" if data.nil?
|
|
83
84
|
nxt = data['next_block_hash']
|
|
84
85
|
nxt = nil if nxt == '0000000000000000000000000000000000000000000000000000000000000000'
|
|
85
|
-
@log.info("
|
|
86
|
+
@log.info("In BTC.com the block #{hash} is the latest, there is no next block") if nxt.nil?
|
|
86
87
|
@log.info("The next block of #{hash} is #{nxt}") unless nxt.nil?
|
|
87
88
|
nxt
|
|
88
89
|
end
|
|
@@ -90,7 +91,7 @@ class Sibit
|
|
|
90
91
|
# The height of the block.
|
|
91
92
|
def height(hash)
|
|
92
93
|
json = Sibit::Json.new(http: @http, log: @log).get(
|
|
93
|
-
|
|
94
|
+
Iri.new('https://chain.api.btc.com/v3/block').append(hash)
|
|
94
95
|
)
|
|
95
96
|
data = json['data']
|
|
96
97
|
raise Sibit::Error, "The block #{hash} not found" if data.nil?
|
|
@@ -107,7 +108,7 @@ class Sibit
|
|
|
107
108
|
|
|
108
109
|
# Gets the hash of the latest block.
|
|
109
110
|
def latest
|
|
110
|
-
uri =
|
|
111
|
+
uri = Iri.new('https://chain.api.btc.com/v3/block/latest')
|
|
111
112
|
json = Sibit::Json.new(http: @http, log: @log).get(uri)
|
|
112
113
|
data = json['data']
|
|
113
114
|
raise Sibit::Error, 'The latest block not found' if data.nil?
|
|
@@ -121,7 +122,7 @@ class Sibit
|
|
|
121
122
|
txns = []
|
|
122
123
|
sources.each do |hash|
|
|
123
124
|
json = Sibit::Json.new(http: @http, log: @log).get(
|
|
124
|
-
|
|
125
|
+
Iri.new('https://chain.api.btc.com/v3/address').append(hash).append('unspent')
|
|
125
126
|
)
|
|
126
127
|
data = json['data']
|
|
127
128
|
raise Sibit::Error, "The address #{hash} not found" if data.nil?
|
|
@@ -129,7 +130,7 @@ class Sibit
|
|
|
129
130
|
next if txns.nil?
|
|
130
131
|
txns.each do |u|
|
|
131
132
|
outs = Sibit::Json.new(http: @http, log: @log).get(
|
|
132
|
-
|
|
133
|
+
Iri.new('https://chain.api.btc.com/v3/tx').append(u['tx_hash']).add(verbose: 3)
|
|
133
134
|
)['data']['outputs']
|
|
134
135
|
outs.each_with_index do |o, i|
|
|
135
136
|
next unless o['addresses'].include?(hash)
|
|
@@ -154,7 +155,7 @@ class Sibit
|
|
|
154
155
|
# This method should fetch a Blockchain block and return as a hash.
|
|
155
156
|
def block(hash)
|
|
156
157
|
head = Sibit::Json.new(http: @http, log: @log).get(
|
|
157
|
-
|
|
158
|
+
Iri.new('https://chain.api.btc.com/v3/block').append(hash)
|
|
158
159
|
)
|
|
159
160
|
data = head['data']
|
|
160
161
|
raise Sibit::Error, "The block #{hash} not found" if data.nil?
|
|
@@ -177,7 +178,8 @@ class Sibit
|
|
|
177
178
|
all = []
|
|
178
179
|
loop do
|
|
179
180
|
data = Sibit::Json.new(http: @http, log: @log).get(
|
|
180
|
-
|
|
181
|
+
Iri.new('https://chain.api.btc.com/v3/block')
|
|
182
|
+
.append(hash).append('tx').add(page: page, pagesize: psize)
|
|
181
183
|
)['data']
|
|
182
184
|
raise Sibit::Error, "The block #{hash} has no data at page #{page}" if data.nil?
|
|
183
185
|
list = data['list']
|
data/lib/sibit/cex.rb
CHANGED
|
@@ -45,7 +45,7 @@ class Sibit
|
|
|
45
45
|
# Current price of BTC in USD (float returned).
|
|
46
46
|
def price(currency = 'USD')
|
|
47
47
|
json = Sibit::Json.new(http: @http, log: @log).get(
|
|
48
|
-
|
|
48
|
+
Iri.new('https://cex.io/api/last_price/BTC').append(currency)
|
|
49
49
|
)
|
|
50
50
|
p = json['lprice'].to_f
|
|
51
51
|
@log.info("The price of BTC is #{p} #{currency}")
|
data/lib/sibit/cryptoapis.rb
CHANGED
|
@@ -20,13 +20,14 @@
|
|
|
20
20
|
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
21
|
# SOFTWARE.
|
|
22
22
|
|
|
23
|
-
require '
|
|
23
|
+
require 'iri'
|
|
24
24
|
require 'json'
|
|
25
|
-
|
|
25
|
+
require 'uri'
|
|
26
26
|
require_relative 'error'
|
|
27
|
-
require_relative 'log'
|
|
28
27
|
require_relative 'http'
|
|
29
28
|
require_relative 'json'
|
|
29
|
+
require_relative 'log'
|
|
30
|
+
require_relative 'version'
|
|
30
31
|
|
|
31
32
|
# Cryptoapis.io API.
|
|
32
33
|
#
|
|
@@ -52,7 +53,7 @@ class Sibit
|
|
|
52
53
|
# Get hash of the block after this one.
|
|
53
54
|
def next_of(hash)
|
|
54
55
|
nxt = Sibit::Json.new(http: @http, log: @log).get(
|
|
55
|
-
|
|
56
|
+
Iri.new('https://api.cryptoapis.io/v1/bc/btc/mainnet/blocks').append(hash),
|
|
56
57
|
headers: headers
|
|
57
58
|
)['payload']['hash']
|
|
58
59
|
@log.info("The block #{hash} is the latest, there is no next block") if nxt.nil?
|
|
@@ -63,7 +64,7 @@ class Sibit
|
|
|
63
64
|
# The height of the block.
|
|
64
65
|
def height(hash)
|
|
65
66
|
json = Sibit::Json.new(http: @http, log: @log).get(
|
|
66
|
-
|
|
67
|
+
Iri.new('https://api.cryptoapis.io/v1/bc/btc/mainnet/blocks').append(hash),
|
|
67
68
|
headers: headers
|
|
68
69
|
)['payload']
|
|
69
70
|
h = json['height']
|
|
@@ -74,7 +75,7 @@ class Sibit
|
|
|
74
75
|
# Gets the balance of the address, in satoshi.
|
|
75
76
|
def balance(address)
|
|
76
77
|
json = Sibit::Json.new(http: @http, log: @log).get(
|
|
77
|
-
|
|
78
|
+
Iri.new('https://api.cryptoapis.io/v1/bc/btc/mainnet/address').append(address),
|
|
78
79
|
headers: headers
|
|
79
80
|
)['payload']
|
|
80
81
|
b = (json['balance'].to_f * 100_000_000).to_i
|
|
@@ -90,7 +91,7 @@ class Sibit
|
|
|
90
91
|
# Gets the hash of the latest block.
|
|
91
92
|
def latest
|
|
92
93
|
hash = Sibit::Json.new(http: @http, log: @log).get(
|
|
93
|
-
|
|
94
|
+
Iri.new('https://api.cryptoapis.io/v1/bc/btc/mainnet/blocks/latest'),
|
|
94
95
|
headers: headers
|
|
95
96
|
)['payload']['hash']
|
|
96
97
|
@log.info("The latest block hash is #{hash}")
|
|
@@ -105,7 +106,7 @@ class Sibit
|
|
|
105
106
|
# Push this transaction (in hex format) to the network.
|
|
106
107
|
def push(hex)
|
|
107
108
|
Sibit::Json.new(http: @http, log: @log).post(
|
|
108
|
-
|
|
109
|
+
Iri.new('https://api.cryptoapis.io/v1/bc/btc/testnet/txs/send'),
|
|
109
110
|
JSON.pretty_generate(hex: hex),
|
|
110
111
|
headers: headers
|
|
111
112
|
)
|
|
@@ -114,7 +115,7 @@ class Sibit
|
|
|
114
115
|
# This method should fetch a Blockchain block and return as a hash.
|
|
115
116
|
def block(hash)
|
|
116
117
|
head = Sibit::Json.new(http: @http, log: @log).get(
|
|
117
|
-
|
|
118
|
+
Iri.new('https://api.cryptoapis.io/v1/bc/btc/mainnet/blocks').append(hash),
|
|
118
119
|
headers: headers
|
|
119
120
|
)['payload']
|
|
120
121
|
{
|
|
@@ -141,12 +142,8 @@ class Sibit
|
|
|
141
142
|
all = []
|
|
142
143
|
loop do
|
|
143
144
|
txns = Sibit::Json.new(http: @http, log: @log).get(
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
'https://api.cryptoapis.io/v1/bc/btc/mainnet/txs/block/',
|
|
147
|
-
"#{hash}?index=#{index}&limit=#{limit}"
|
|
148
|
-
].join
|
|
149
|
-
),
|
|
145
|
+
Iri.new('https://api.cryptoapis.io/v1/bc/btc/mainnet/txs/block/')
|
|
146
|
+
.append(hash).add(index: index, limit: limit),
|
|
150
147
|
headers: headers
|
|
151
148
|
)['payload'].map do |t|
|
|
152
149
|
{
|
data/lib/sibit/earn.rb
CHANGED
|
@@ -20,12 +20,13 @@
|
|
|
20
20
|
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
21
|
# SOFTWARE.
|
|
22
22
|
|
|
23
|
+
require 'iri'
|
|
23
24
|
require 'json'
|
|
24
25
|
require 'uri'
|
|
25
|
-
require_relative 'version'
|
|
26
26
|
require_relative 'error'
|
|
27
27
|
require_relative 'http'
|
|
28
28
|
require_relative 'json'
|
|
29
|
+
require_relative 'version'
|
|
29
30
|
|
|
30
31
|
# Earn.com API.
|
|
31
32
|
#
|
|
@@ -66,7 +67,7 @@ class Sibit
|
|
|
66
67
|
# a hash: { S: 12, M: 45, L: 100, XL: 200 }
|
|
67
68
|
def fees
|
|
68
69
|
json = Sibit::Json.new(http: @http, log: @log).get(
|
|
69
|
-
|
|
70
|
+
Iri.new('https://bitcoinfees.earn.com/api/v1/fees/recommended')
|
|
70
71
|
)
|
|
71
72
|
@log.info("Current recommended Bitcoin fees: \
|
|
72
73
|
#{json['hourFee']}/#{json['halfHourFee']}/#{json['fastestFee']} sat/byte")
|
data/lib/sibit/json.rb
CHANGED
|
@@ -48,8 +48,9 @@ class Sibit
|
|
|
48
48
|
# Send GET request to the HTTP and return JSON response.
|
|
49
49
|
# This method will also log the process and will validate the
|
|
50
50
|
# response for correctness.
|
|
51
|
-
def get(
|
|
51
|
+
def get(address, headers: {}, accept: [200])
|
|
52
52
|
start = Time.now
|
|
53
|
+
uri = URI(address.to_s)
|
|
53
54
|
res = @http.client(uri).get(
|
|
54
55
|
"#{uri.path.empty? ? '/' : uri.path}#{uri.query ? "?#{uri.query}" : ''}",
|
|
55
56
|
{
|
|
@@ -66,8 +67,9 @@ class Sibit
|
|
|
66
67
|
JSON.parse(res.body)
|
|
67
68
|
end
|
|
68
69
|
|
|
69
|
-
def post(
|
|
70
|
+
def post(address, body, headers: {})
|
|
70
71
|
start = Time.now
|
|
72
|
+
uri = URI(address.to_s)
|
|
71
73
|
res = @http.client(uri).post(
|
|
72
74
|
"#{uri.path}?#{uri.query}",
|
|
73
75
|
"tx=#{CGI.escape(body)}",
|
data/lib/sibit/version.rb
CHANGED
data/sibit.gemspec
CHANGED
|
@@ -50,6 +50,7 @@ and Ruby 2.3+.'
|
|
|
50
50
|
s.extra_rdoc_files = ['README.md', 'LICENSE.txt']
|
|
51
51
|
s.add_runtime_dependency 'backtrace', '~> 0.3'
|
|
52
52
|
s.add_runtime_dependency 'bitcoin-ruby', '0.0.19'
|
|
53
|
+
s.add_runtime_dependency 'iri', '~> 0.5'
|
|
53
54
|
s.add_runtime_dependency 'json', '~> 2'
|
|
54
55
|
s.add_runtime_dependency 'retriable_proxy', '1.0.2'
|
|
55
56
|
s.add_runtime_dependency 'slop', '~> 4.6'
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: sibit
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.21.
|
|
4
|
+
version: 0.21.3
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Yegor Bugayenko
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2020-
|
|
11
|
+
date: 2020-11-25 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: backtrace
|
|
@@ -38,6 +38,20 @@ dependencies:
|
|
|
38
38
|
- - '='
|
|
39
39
|
- !ruby/object:Gem::Version
|
|
40
40
|
version: 0.0.19
|
|
41
|
+
- !ruby/object:Gem::Dependency
|
|
42
|
+
name: iri
|
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
|
44
|
+
requirements:
|
|
45
|
+
- - "~>"
|
|
46
|
+
- !ruby/object:Gem::Version
|
|
47
|
+
version: '0.5'
|
|
48
|
+
type: :runtime
|
|
49
|
+
prerelease: false
|
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
51
|
+
requirements:
|
|
52
|
+
- - "~>"
|
|
53
|
+
- !ruby/object:Gem::Version
|
|
54
|
+
version: '0.5'
|
|
41
55
|
- !ruby/object:Gem::Dependency
|
|
42
56
|
name: json
|
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|