peatio-bitgo 1.1.4 → 1.1.5

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
  SHA256:
3
- metadata.gz: 0bf98903c7304e77f6cdc28f1f41c15a8bb8fb247e6edde49e146f0dc49c5690
4
- data.tar.gz: 1848b2e16408c9d2ea516388e77fb6c16a314bbc5b4ae6c300da1f492e545c57
3
+ metadata.gz: 8ae724cff419d17080fe3eab88cf0f3f8d31c3d41e787f350d8b5773f93f2078
4
+ data.tar.gz: 434d994c43c8e60a29d71078098114412946c994467e0f1790db2c390d7dd651
5
5
  SHA512:
6
- metadata.gz: 70a230d27976389a7eaeed25506bd1385508bb95fd82742487b39861b31854301856c65ef772ccc0a43d82359f37a9464fa70981254d42ebf80ead10acab6dd7
7
- data.tar.gz: e4987b11326c0c8d1f7d2b7b58bb8c1fa8e1becc88772aff96d72d4e0b47b987e17e8930179b3b286ad76ee0dd43aebb6e3adaec9faa06ed32d4a1170e020a98
6
+ metadata.gz: 641b57188eebb0f220733bd31db3a6ec27d17a2329e66038e6d2c1f25986d571d67cd94e5f177518057e096efe9ad775c9afb68e64a82a222d43b21fd0c72f2b
7
+ data.tar.gz: 87ef8015868f4a01f34242d7b111a2d35ccf0144da50c859216dc611e028c9378c4cd310213463983ce4b5fcb8c9125fd01a2abbfcd8cbf2a996ca371d78b0e2
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- peatio-bitgo (1.1.4)
4
+ peatio-bitgo (1.1.5)
5
5
  activesupport (~> 5.2.3)
6
6
  better-faraday (~> 1.0.5)
7
7
  faraday (~> 0.15.4)
@@ -1,5 +1,5 @@
1
1
  module Peatio
2
2
  module Bitgo
3
- VERSION = "1.1.4"
3
+ VERSION = "1.1.5"
4
4
  end
5
5
  end
@@ -1,6 +1,7 @@
1
1
  module Peatio
2
2
  module Bitgo
3
3
  class Wallet < Peatio::Wallet::Abstract
4
+ TIME_DIFFERENCE_IN_MINUTES = 10
4
5
 
5
6
  def initialize(settings = {})
6
7
  @settings = settings
@@ -24,10 +25,14 @@ module Peatio
24
25
  def create_address!(options = {})
25
26
  currency = erc20_currency_id
26
27
  options.deep_symbolize_keys!
27
- if options.dig(:pa_details,:address_id).present?
28
+
29
+ if options.dig(:pa_details, :address_id).present? &&
30
+ options.dig(:pa_details, :updated_at).present? &&
31
+ time_difference_in_minutes(options.dig(:pa_details, :updated_at)) >= TIME_DIFFERENCE_IN_MINUTES
32
+
28
33
  response = client.rest_api(:get, "#{currency}/wallet/#{wallet_id}/address/#{options.dig(:pa_details, :address_id)}")
29
34
  { address: response['address'], secret: bitgo_wallet_passphrase }
30
- else
35
+ elsif options.dig(:pa_details, :address_id).blank?
31
36
  response = client.rest_api(:post, "#{currency}/wallet/#{wallet_id}/address")
32
37
  { address: response['address'], secret: bitgo_wallet_passphrase, details: { address_id: response['id'] }}
33
38
  end
@@ -117,8 +122,9 @@ module Peatio
117
122
  if event['type'] == 'transfer'
118
123
  transactions = fetch_transfer!(event['transfer'])
119
124
  return { transfers: transactions }
120
- elsif event['address_confirmation']
121
- # TODO Add Address confirmation
125
+ elsif event['type'] == 'address_confirmation'
126
+ address_id = fetch_address_id(event['address'])
127
+ return { address_id: address_id}
122
128
  end
123
129
  end
124
130
 
@@ -127,6 +133,14 @@ module Peatio
127
133
  address_confirmation_webhook(url)
128
134
  end
129
135
 
136
+ def fetch_address_id(address)
137
+ currency = erc20_currency_id
138
+ client.rest_api(:get, "#{currency}/wallet/#{wallet_id}/address/#{address}")
139
+ .fetch('id')
140
+ rescue Bitgo::Client::Error => e
141
+ raise Peatio::Wallet::ClientError, e
142
+ end
143
+
130
144
  def fetch_transfer!(id)
131
145
  # TODO: Add Rspecs for this one
132
146
  response = client.rest_api(:get, "#{currency_id}/wallet/#{wallet_id}/transfer/#{id}")
@@ -169,7 +183,7 @@ module Peatio
169
183
 
170
184
  def address_confirmation_webhook(url)
171
185
  client.rest_api(:post, "#{currency_id}/wallet/#{wallet_id}/webhooks", {
172
- type: 'address_confirmation_webhook',
186
+ type: 'address_confirmation',
173
187
  allToken: true,
174
188
  url: url,
175
189
  label: "webhook for #{url}",
@@ -252,9 +266,13 @@ module Peatio
252
266
  x.to_i
253
267
  end
254
268
 
269
+ def time_difference_in_minutes(updated_at)
270
+ (Time.now - updated_at)/60
271
+ end
272
+
255
273
  def define_transaction_state(state)
256
274
  case state
257
- when 'unconfrimed'
275
+ when 'unconfirmed'
258
276
  'pending'
259
277
  when 'confirmed'
260
278
  'success'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: peatio-bitgo
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.4
4
+ version: 1.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nadia Ch., Maksym N.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-05-11 00:00:00.000000000 Z
11
+ date: 2020-06-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport