mercado_bitcoin 0.4.0 → 0.5.0
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/.rspec +1 -0
- data/bin/{mb_console.rb → mb_console} +0 -0
- data/lib/mercado_bitcoin/errors.rb +1 -0
- data/lib/mercado_bitcoin/trade_api.rb +49 -1
- data/lib/mercado_bitcoin/version.rb +1 -1
- data/mercado_bitcoin.gemspec +2 -1
- metadata +20 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6025df04b0aa23fac07d2558151eca505e1b1846
|
4
|
+
data.tar.gz: 5ef2021541f98e82b7e03a922bb953ac10b95ee1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 18bbaee0f9571f402291a71508145fd367d1c9b0e1ebfcd71ccfeef529fdb80fb61c983750b2ec0115c7f2153488c6a4c32ca8cdc7694862a2ddfb95b43e53db
|
7
|
+
data.tar.gz: 84329dddeb56770a65daa444234b62fa365184be0573cfb3767fb3460ea5768e2f8b083b6c55dbd16600c3f7a7c1e5544ad7598f25759ec86052041dfc114473
|
data/.rspec
CHANGED
File without changes
|
@@ -13,6 +13,7 @@ module MercadoBitcoin
|
|
13
13
|
@key = key
|
14
14
|
@code = code
|
15
15
|
@debug = debug
|
16
|
+
@retries = 0
|
16
17
|
end
|
17
18
|
|
18
19
|
def get_account_info
|
@@ -97,8 +98,18 @@ module MercadoBitcoin
|
|
97
98
|
post(params)
|
98
99
|
end
|
99
100
|
|
101
|
+
attr_writer :last_tapi_nonce
|
102
|
+
|
103
|
+
def last_tapi_nonce
|
104
|
+
@last_tapi_nonce ||= (Time.new.to_f * 10).to_i
|
105
|
+
end
|
106
|
+
|
107
|
+
def tapi_nonce
|
108
|
+
self.last_tapi_nonce += 1
|
109
|
+
end
|
110
|
+
|
100
111
|
def post(params)
|
101
|
-
params[:tapi_nonce] =
|
112
|
+
params[:tapi_nonce] = tapi_nonce
|
102
113
|
signature = sign(params)
|
103
114
|
puts params.to_query_string if debug?
|
104
115
|
result = JSON.parse(
|
@@ -108,6 +119,43 @@ module MercadoBitcoin
|
|
108
119
|
header(signature)
|
109
120
|
)
|
110
121
|
)
|
122
|
+
deal_with_errors(result)
|
123
|
+
rescue MercadoBitcoin::TonceAlreadyUsed
|
124
|
+
retry
|
125
|
+
end
|
126
|
+
|
127
|
+
def deal_with_errors(result)
|
128
|
+
if result['status_code'] == 100
|
129
|
+
@retries = 0
|
130
|
+
return result
|
131
|
+
end
|
132
|
+
|
133
|
+
@retries += 1
|
134
|
+
if @retries >= 6
|
135
|
+
@retries = 0
|
136
|
+
result[:_mb_gem] = { code: 1, retries: @retries, error: 'maximum retries reached' }
|
137
|
+
return result
|
138
|
+
end
|
139
|
+
|
140
|
+
return deal_with_tapi_nonce(result) if result['status_code'] == 203
|
141
|
+
|
142
|
+
deal_with_errors_not_treated(result)
|
143
|
+
end
|
144
|
+
|
145
|
+
def deal_with_tapi_nonce(result)
|
146
|
+
if result['error_message'] =~ /utilizado: (\d+)/
|
147
|
+
self.last_tapi_nonce = $1.to_i
|
148
|
+
raise MercadoBitcoin::TonceAlreadyUsed.new
|
149
|
+
else
|
150
|
+
result[:_mb_gem] = { code: 2, retries: @retries, error: 'last tapi_nonce not found.' }
|
151
|
+
result
|
152
|
+
end
|
153
|
+
end
|
154
|
+
|
155
|
+
def deal_with_errors_not_treated(result)
|
156
|
+
result[:_mb_gem] = { code: 0, retries: @retries, error: 'not treated' }
|
157
|
+
@retries = 0
|
158
|
+
result
|
111
159
|
end
|
112
160
|
|
113
161
|
def base_path
|
data/mercado_bitcoin.gemspec
CHANGED
@@ -23,6 +23,7 @@ Gem::Specification.new do |spec|
|
|
23
23
|
spec.add_development_dependency "bundler", "~> 1.10"
|
24
24
|
spec.add_development_dependency "pry", "~> 0.10"
|
25
25
|
spec.add_development_dependency "byebug", "~> 9.0"
|
26
|
-
spec.add_development_dependency "rake", "~>
|
26
|
+
spec.add_development_dependency "rake", "~> 12.0"
|
27
27
|
spec.add_development_dependency "rspec", "~> 3.4"
|
28
|
+
spec.add_development_dependency 'webmock', '~> 3.0'
|
28
29
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mercado_bitcoin
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Marco Carvalho
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-05-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: virtus
|
@@ -100,14 +100,14 @@ dependencies:
|
|
100
100
|
requirements:
|
101
101
|
- - "~>"
|
102
102
|
- !ruby/object:Gem::Version
|
103
|
-
version: '
|
103
|
+
version: '12.0'
|
104
104
|
type: :development
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
108
|
- - "~>"
|
109
109
|
- !ruby/object:Gem::Version
|
110
|
-
version: '
|
110
|
+
version: '12.0'
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
112
|
name: rspec
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
@@ -122,6 +122,20 @@ dependencies:
|
|
122
122
|
- - "~>"
|
123
123
|
- !ruby/object:Gem::Version
|
124
124
|
version: '3.4'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: webmock
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - "~>"
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '3.0'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - "~>"
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '3.0'
|
125
139
|
description: 'Thin layer over public price api of MercadoBitcoin.com.br for more information
|
126
140
|
about the API see https://www.mercadobitcoin.com.br/api '
|
127
141
|
email:
|
@@ -139,7 +153,7 @@ files:
|
|
139
153
|
- LICENSE.txt
|
140
154
|
- README.md
|
141
155
|
- Rakefile
|
142
|
-
- bin/mb_console
|
156
|
+
- bin/mb_console
|
143
157
|
- docker-compose.yml
|
144
158
|
- lib/mercado_bitcoin.rb
|
145
159
|
- lib/mercado_bitcoin/api.rb
|
@@ -180,7 +194,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
180
194
|
version: '0'
|
181
195
|
requirements: []
|
182
196
|
rubyforge_project:
|
183
|
-
rubygems_version: 2.6.
|
197
|
+
rubygems_version: 2.6.8
|
184
198
|
signing_key:
|
185
199
|
specification_version: 4
|
186
200
|
summary: Thin layer over public price api of MercadoBitcoin.com.br
|