peatio-coinpaymentnew 0.0.9 → 1.0.0

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
- SHA1:
3
- metadata.gz: fba2656c87b177ed9f41a2297a04f343bdaa29c9
4
- data.tar.gz: 942adceca45cf5d1aadd0d31e957b32a3c88c73b
2
+ SHA256:
3
+ metadata.gz: 338317e409dd01b8c1da60ad97488200c0a5d4ff3f13d4cd15bb244e945cc4e0
4
+ data.tar.gz: ddf5d03db1d83449a02e9ca5f16a67fb08ca7df3647a105e1d9b7dab5585e6e1
5
5
  SHA512:
6
- metadata.gz: 79d32c8700361d9a72cd31075b65aebc452b752e83917b7c92024cbe414f08da86638fe6768da27d2c067f05fe7075092d2704157ea3cb02d0ffd3120707fc15
7
- data.tar.gz: d8f5d1d4519a9b9434b0c9376b4cebef550c6e196510ee5c1bf2e5cceef0eba6cc1fafa1379e8c6dca17d44c2a1c7625a94f7ed96c37e6fc30fa46783e24e6f6
6
+ metadata.gz: 57cecc9b92c9aee512c78076e8c8648528a1e218f141b34f76495336b7047499530934ccfba0e262d87e8a9711b8ac75e6dab75695051c468911e4845908a194
7
+ data.tar.gz: 4f7ade2babf3da510839972fa65bd7b3f42d36d198503976551515ba39dddd2f0e22e7667e9fb6c2d390013e08a4fb87394e777fea984bf8a38bde944df09cc4
data/Gemfile CHANGED
@@ -5,4 +5,4 @@ git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
5
5
  # Specify your gem's dependencies in peatio-coinpaymentnew.gemspec
6
6
  gemspec
7
7
 
8
- # gem 'coinpayments'
8
+ gem 'coinpayments'
data/Gemfile.lock CHANGED
@@ -1,13 +1,12 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- peatio-coinpaymentnew (0.0.5)
4
+ peatio-coinpaymentnew (1.0.0)
5
5
  activesupport (~> 5.2.3)
6
6
  better-faraday (~> 1.0.5)
7
- coinpayments (~> 0.0.4)
8
- faraday (~> 0.17)
7
+ faraday (~> 0.15.4)
9
8
  memoist (~> 0.16.0)
10
- peatio (~> 2.6.3)
9
+ peatio (~> 0.6.1)
11
10
 
12
11
  GEM
13
12
  remote: https://rubygems.org/
@@ -38,47 +37,22 @@ GEM
38
37
  hashie
39
38
  httparty
40
39
  concurrent-ruby (1.1.9)
41
- cookiejar (0.3.3)
42
40
  crack (0.4.5)
43
41
  rexml
44
- daemons (1.4.1)
45
42
  diff-lcs (1.4.4)
46
- em-http-request (1.1.7)
47
- addressable (>= 2.3.4)
48
- cookiejar (!= 0.3.1)
49
- em-socksify (>= 0.3)
50
- eventmachine (>= 1.0.3)
51
- http_parser.rb (>= 0.6.0)
52
- em-socksify (0.3.2)
53
- eventmachine (>= 1.0.0.beta.4)
54
- em-synchrony (1.0.6)
55
- eventmachine (>= 1.0.0.beta.1)
56
- em-websocket (0.5.3)
43
+ em-websocket (0.5.2)
57
44
  eventmachine (>= 0.12.9)
58
- http_parser.rb (~> 0)
45
+ http_parser.rb (~> 0.6.0)
59
46
  eventmachine (1.2.7-x64-mingw32)
60
- faraday (0.17.4)
47
+ faraday (0.15.4)
61
48
  multipart-post (>= 1.2, < 3)
62
- faraday_middleware (0.13.1)
63
- faraday (>= 0.7.4, < 1.0)
64
- faye (1.4.0)
65
- cookiejar (>= 0.3.0)
66
- em-http-request (>= 1.1.6)
67
- eventmachine (>= 0.12.0)
68
- faye-websocket (>= 0.11.0)
69
- multi_json (>= 1.0.0)
70
- rack (>= 1.0.0)
71
- websocket-driver (>= 0.5.1)
72
- faye-websocket (0.11.1)
73
- eventmachine (>= 0.12.0)
74
- websocket-driver (>= 0.5.1)
75
49
  hashdiff (1.0.1)
76
50
  hashie (4.1.0)
77
- http_parser.rb (0.8.0)
51
+ http_parser.rb (0.6.0)
78
52
  httparty (0.20.0)
79
53
  mime-types (~> 3.0)
80
54
  multi_xml (>= 0.5.2)
81
- i18n (1.8.11)
55
+ i18n (1.8.10)
82
56
  concurrent-ruby (~> 1.0)
83
57
  jwt (2.3.0)
84
58
  memoist (0.16.2)
@@ -88,25 +62,18 @@ GEM
88
62
  mime-types-data (3.2021.0901)
89
63
  minitest (5.14.4)
90
64
  mocha (1.13.0)
91
- multi_json (1.15.0)
92
65
  multi_xml (0.6.0)
93
66
  multipart-post (2.1.1)
94
67
  mysql2 (0.5.3-x64-mingw32)
95
- peatio (2.6.5)
68
+ peatio (0.6.3)
96
69
  activemodel (> 5.2, <= 6.0.0)
97
70
  amqp
98
71
  bunny
99
72
  clamp
100
- em-synchrony (~> 1.0)
101
73
  em-websocket
102
74
  eventmachine
103
- faraday_middleware (~> 0.13.1)
104
- faye (~> 1.2)
105
75
  jwt
106
76
  mysql2
107
- prometheus-client
108
- thin
109
- prometheus-client (2.1.0)
110
77
  pry (0.13.1)
111
78
  coderay (~> 1.1)
112
79
  method_source (~> 1.0)
@@ -114,8 +81,7 @@ GEM
114
81
  byebug (~> 11.0)
115
82
  pry (~> 0.13.0)
116
83
  public_suffix (4.0.6)
117
- rack (2.2.3)
118
- rake (13.0.6)
84
+ rake (10.5.0)
119
85
  rbtree (0.4.4)
120
86
  rexml (3.2.5)
121
87
  rspec (3.10.0)
@@ -131,14 +97,10 @@ GEM
131
97
  diff-lcs (>= 1.2.0, < 2.0)
132
98
  rspec-support (~> 3.10.0)
133
99
  rspec-support (3.10.2)
134
- set (1.0.2)
100
+ set (1.0.1)
135
101
  sorted_set (1.0.3)
136
102
  rbtree
137
103
  set (~> 1.0)
138
- thin (1.8.1)
139
- daemons (~> 1.0, >= 1.0.9)
140
- eventmachine (~> 1.0, >= 1.0.4)
141
- rack (>= 1, < 3)
142
104
  thread_safe (0.3.6)
143
105
  tzinfo (1.2.9)
144
106
  thread_safe (~> 0.1)
@@ -146,21 +108,19 @@ GEM
146
108
  addressable (>= 2.8.0)
147
109
  crack (>= 0.3.2)
148
110
  hashdiff (>= 0.4.0, < 2.0.0)
149
- websocket-driver (0.7.5)
150
- websocket-extensions (>= 0.1.0)
151
- websocket-extensions (0.1.5)
152
111
 
153
112
  PLATFORMS
154
113
  x64-mingw32
155
114
 
156
115
  DEPENDENCIES
157
116
  bundler (~> 1.16)
117
+ coinpayments
158
118
  mocha (~> 1.8)
159
119
  peatio-coinpaymentnew!
160
120
  pry-byebug
161
- rake (~> 13.0)
121
+ rake (~> 10.0)
162
122
  rspec (~> 3.0)
163
123
  webmock (~> 3.5)
164
124
 
165
125
  BUNDLED WITH
166
- 1.17.3
126
+ 1.17.2
@@ -0,0 +1,6 @@
1
+ Coinpayments.configure do |config|
2
+ config.merchant_id = '81584a734276162e589fb2a5c19d1114'
3
+ config.public_api_key = '1c68e7c5cd7f03d79325bc63e2985d3dc604847242a22d682673f531af4cadcb'
4
+ config.private_api_key = '13F4855BFDa330B43063F07961CA373CfF3bb141d8ccCdF83B5e92ac2ad0f78b'
5
+ config.secret_phrase = '@hari123'
6
+ end
@@ -27,7 +27,7 @@ module Peatio
27
27
 
28
28
  def register
29
29
  Peatio::Blockchain.registry[:coinpaymentnew] = Coinpaymentnew::Blockchain
30
- Peatio::Wallet.registry[:coinpaymentnew] = Coinpaymentnew::Wallet
30
+ Peatio::Wallet.registry[:coinpaymentnewd] = Coinpaymentnew::Wallet
31
31
  end
32
32
  end
33
33
 
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Peatio
4
4
  module Coinpaymentnew
5
- VERSION = "0.0.9"
5
+ VERSION = "1.0.0"
6
6
  end
7
7
  end
@@ -2,7 +2,7 @@ module Peatio
2
2
  module Coinpaymentnew
3
3
  class Wallet < Peatio::Wallet::Abstract
4
4
  TIME_DIFFERENCE_IN_MINUTES = 10
5
- XLM_MEMO_TYPES = { 'memoId': 'id', 'memoText': 'text', 'memoHash': 'hash', 'memoReturn': 'return' }
5
+ # XLM_MEMO_TYPES = { 'memoId': 'id', 'memoText': 'text', 'memoHash': 'hash', 'memoReturn': 'return' }
6
6
 
7
7
  DEFAULT_FEATURES = { skip_deposit_collection: false }.freeze
8
8
 
@@ -19,7 +19,7 @@ module Peatio
19
19
 
20
20
  @wallet = @settings.fetch(:wallet) do
21
21
  raise Peatio::Wallet::MissingSettingError, :wallet
22
- end.slice(:uri, :address, :secret, :access_token, :access_token2, :wallet_id, :testnet)
22
+ end.slice(:uri, :address, :secret, :access_token, :wallet_id, :testnet)
23
23
 
24
24
  @currency = @settings.fetch(:currency) do
25
25
  raise Peatio::Wallet::MissingSettingError, :currency
@@ -27,71 +27,115 @@ module Peatio
27
27
  end
28
28
 
29
29
  def create_address!(options = {})
30
- args = { cmd: 'get_callback_address', ipn_url: "https://v2app.rokes.exchange/api/v2/peatio/public/webhooks/deposit", currency: currency_id.upcase }
31
- response = client.rest_api(args)
32
- { address: response['address'] }
30
+ currency = erc20_currency_id
31
+ options.deep_symbolize_keys!
32
+ response = WalletApi.get_deposit_address(currency.upcase)
33
+ { address: response[:address], secret: coinpayment_wallet_passphrase, details: { address_id: response[:address] }}
34
+ # if options.dig(:pa_details, :address_id).present? &&
35
+ # options.dig(:pa_details, :updated_at).present? &&
36
+ # time_difference_in_minutes(options.dig(:pa_details, :updated_at)) >= TIME_DIFFERENCE_IN_MINUTES
37
+ #
38
+ # response = client.rest_api(:get, "#{currency}/wallet/#{wallet_id}/address/#{options.dig(:pa_details, :address_id)}")
39
+ # { address: response['address'], secret: bitgo_wallet_passphrase }
40
+ # elsif options.dig(:pa_details, :address_id).blank?
41
+ # response = client.rest_api(:post, "#{currency}/wallet/#{wallet_id}/address")
42
+ # { address: response['address'], secret: bitgo_wallet_passphrase, details: { address_id: response['id'] }}
43
+ # end
33
44
  rescue Coinpaymentnew::Client::Error => e
34
45
  raise Peatio::Wallet::ClientError, e
35
46
  end
36
47
 
37
48
  def create_transaction!(transaction, options = {})
38
49
  currency_options = @currency.fetch(:options).slice(:gas_limit, :gas_price, :erc20_contract_address)
39
- amount = convert_to_base_unit(transaction.amount)
40
- args = { cmd: "create_transaction", amount: amount, currency1: "USD", currency2: currency_id.upcase, buyer_email: "joshirockstar007@gmail.com", address: normalize_address(transaction.to_address.to_s) }
41
- response = client.rest_api(args)
42
- transaction.hash = normalize_txid(response['txn_id'])
43
- transactio
50
+
51
+ # if currency_options[:gas_limit].present? && currency_options[:gas_price].present?
52
+ # options.merge!(currency_options)
53
+ # create_eth_transaction(transaction, options)
54
+ # else
55
+ amount = convert_to_base_unit(transaction.amount)
56
+
57
+ # if options[:subtract_fee].to_s == 'true'
58
+ # fee = build_raw_transaction(transaction)
59
+ # baseFeeInfo = fee.dig('feeInfo','fee')
60
+ # fee = baseFeeInfo.present? ? baseFeeInfo : fee.dig('txInfo','Fee')
61
+ # amount -= fee.to_i
62
+ # end
63
+ response = WalletApi.createTransaction(transaction.amount.to_s, "USD",currency_id.upcase, transaction.to_address.to_s)
64
+ # response = client.rest_api(:post, "#{currency_id}/wallet/#{wallet_id}/sendcoins", {
65
+ # address: normalize_address(transaction.to_address.to_s),
66
+ # amount: amount.to_s,
67
+ # walletPassphrase: bitgo_wallet_passphrase,
68
+ # memo: xlm_memo(transaction.to_address.to_s)
69
+ # }.compact)
70
+ #
71
+ # if response['feeString'].present?
72
+ # fee = convert_from_base_unit(response['feeString'])
73
+ # transaction.fee = fee
74
+ # end
75
+
76
+ transaction.hash = normalize_txid(response[:txn_id])
77
+ transaction.fee_currency_id = erc20_currency_id
78
+ transaction
79
+ # end
44
80
  rescue Coinpaymentnew::Client::Error => e
45
81
  raise Peatio::Wallet::ClientError, e
46
82
  end
47
83
 
48
-
49
- def build_raw_transaction(transaction)
50
- args = { cmd: "rates" }
51
- response = client.rest_api(args)
52
- response[currency_id.upcase]
53
- end
84
+ #
85
+ # def build_raw_transaction(transaction)
86
+ # client.rest_api(:post, "#{currency_id}/wallet/#{wallet_id}/tx/build", {
87
+ # recipients: [{
88
+ # address: transaction.to_address,
89
+ # amount: convert_to_base_unit(transaction.amount).to_s
90
+ # }]
91
+ # }.compact)
92
+ # end
54
93
 
55
94
  # def create_eth_transaction(transaction, options = {})
56
95
  # amount = convert_to_base_unit(transaction.amount)
57
96
  # hop = true unless options.slice(:gas_price).present?
58
-
97
+ #
59
98
  # fee_estimate = fee_estimate(amount.to_s, hop)
60
-
99
+ #
61
100
  # if transaction.options.present? && transaction.options[:gas_price].present?
62
101
  # options[:gas_price] = transaction.options[:gas_price]
63
102
  # else
64
103
  # options[:gas_price] = fee_estimate['minGasPrice'].to_i
65
104
  # end
66
-
105
+ #
67
106
  # response = client.rest_api(:post, "#{currency_id}/wallet/#{wallet_id}/sendcoins", {
68
107
  # address: transaction.to_address.to_s,
69
108
  # amount: amount.to_s,
70
- # walletPassphrase: coinpayment_wallet_passphrase,
109
+ # walletPassphrase: bitgo_wallet_passphrase,
71
110
  # gas: options.fetch(:gas_limit).to_i,
72
111
  # gasPrice: options.fetch(:gas_price).to_i,
73
112
  # hop: hop
74
113
  # }.compact)
75
-
114
+ #
76
115
  # if response['feeString'].present?
77
116
  # fee = convert_from_base_unit(response['feeString'])
78
117
  # transaction.fee = fee
79
118
  # end
80
-
119
+ #
81
120
  # transaction.hash = normalize_txid(response['txid'])
82
121
  # transaction.fee_currency_id = erc20_currency_id
83
122
  # transaction.options = options
84
123
  # transaction
85
124
  # end
86
125
 
87
- # def fee_estimate(amount, hop)
88
- # client.rest_api(:get, "#{erc20_currency_id}/tx/fee", { amount: amount, hop: hop }.compact)
89
- # end
126
+ def fee_estimate(amount, hop)
127
+ client.rest_api(:get, "#{erc20_currency_id}/tx/fee", { amount: amount, hop: hop }.compact)
128
+ end
90
129
 
91
130
  def load_balance!
92
- args = { cmd: "balances" }
93
- response = client.rest_api(args)
94
- response[currency_id.upcase]['balancef']
131
+ # if @currency.fetch(:options).slice(:erc20_contract_address).present?
132
+ # load_erc20_balance!
133
+ # else
134
+ # response = client.rest_api(:get, "#{currency_id}/wallet/#{wallet_id}")
135
+ response = WalletApi.balance
136
+ response = response.fetch(currency_id)
137
+ convert_from_base_unit(response["balance"])
138
+ # end
95
139
  rescue Coinpaymentnew::Client::Error => e
96
140
  raise Peatio::Wallet::ClientError, e
97
141
  end
@@ -99,78 +143,99 @@ module Peatio
99
143
  # def load_erc20_balance!
100
144
  # response = client.rest_api(:get, "#{erc20_currency_id}/wallet/#{wallet_id}?allTokens=true")
101
145
  # convert_from_base_unit(response.dig('tokens', currency_id, 'balanceString'))
102
- # rescue Coinpayment::Client::Error => e
146
+ # rescue Coinpaymentnew::Client::Error => e
103
147
  # raise Peatio::Wallet::ClientError, e
104
148
  # end
105
149
 
106
150
  def trigger_webhook_event(request)
107
- # currency = @wallet.fetch(:testnet).present? ? 't' + @currency.fetch(:id) : @currency.fetch(:id)
108
- # if request.params['ipn_type'] == 'deposit'
109
- # return unless currency == request.params['coin'] &&
110
- # @wallet.fetch(:wallet_id) == request.params['wallet']
111
- # else
112
- # return unless @wallet.fetch(:wallet_id) == request.params['walletId']
113
- # end
151
+ currency = @wallet.fetch(:testnet).present? ? 't' + @currency.fetch(:id) : @currency.fetch(:id)
152
+ if request.params['type'] == 'transfer'
153
+ return unless currency == request.params['coin'] &&
154
+ @wallet.fetch(:wallet_id) == request.params['wallet']
155
+ else
156
+ return unless @wallet.fetch(:wallet_id) == request.params['walletId']
157
+ end
114
158
 
115
- if request.params['ipn_type'] == 'deposit'
116
- transactions = fetch_transfer!(request.params['txn_id'])
159
+ if request.params['type'] == 'transfer'
160
+ transactions = fetch_transfer!(request.params['transfer'])
117
161
  return transactions
162
+ elsif request.params['type'] == 'address_confirmation'
163
+ address_id = fetch_address_id(request.params['address'])
164
+ return { address_id: address_id, address: request.params['address'], currency_id: currency_id }
118
165
  end
119
166
  end
120
167
 
121
- # def register_webhooks!(url)
122
- # transfer_webhook(url)
123
- # address_confirmation_webhook(url)
124
- # end
168
+ def register_webhooks!(url)
169
+ transfer_webhook(url)
170
+ address_confirmation_webhook(url)
171
+ end
125
172
 
126
173
  # def fetch_address_id(address)
127
174
  # currency = erc20_currency_id
128
175
  # client.rest_api(:get, "#{currency}/wallet/#{wallet_id}/address/#{address}")
129
176
  # .fetch('id')
130
- # rescue Coinpayment::Client::Error => e
177
+ # rescue Coinpaymentnew::Client::Error => e
131
178
  # raise Peatio::Wallet::ClientError, e
132
179
  # end
133
180
 
134
181
  def fetch_transfer!(id)
135
- args = { cmd: "get_tx_info", txid: id }
136
- response = client.rest_api(args)
137
- state = define_transaction_state(response['status'])
138
- transaction = Peatio::Transaction.new(
139
- currency_id: @currency.fetch(:id),
140
- amount: convert_from_base_unit(response['amountf']),
141
- fee: 0,
142
- fee_currency_id: response["coin"],
143
- hash: normalize_txid(response['txid']),
144
- to_address: response["payment_address"],
145
- block_number: 0,
146
- txout: 0,
147
- status: state
148
- )
149
-
150
- transaction
182
+ response = client.rest_api(:get, "#{currency_id}/wallet/#{wallet_id}/transfer/#{id}")
183
+ parse_entries(response['entries']).map do |entry|
184
+ to_address = if response.dig('coinSpecific', 'memo').present?
185
+ memo = response.dig('coinSpecific', 'memo')
186
+ memo_type = memo.kind_of?(Array) ? memo.first : memo
187
+ build_address(entry['address'], memo_type)
188
+ else
189
+ entry['address']
190
+ end
191
+ state = define_transaction_state(response['state'])
192
+
193
+ if response['outputs'].present?
194
+ output = response['outputs'].find { |out| out['address'] == to_address }
195
+ txout = output['index'] if output.present?
196
+ end
197
+
198
+ if response['feeString'].present?
199
+ fee = convert_from_base_unit(response['feeString']) / response['entries'].count
200
+ end
201
+
202
+ transaction = Peatio::Transaction.new(
203
+ currency_id: @currency.fetch(:id),
204
+ amount: convert_from_base_unit(entry['valueString']),
205
+ fee: fee,
206
+ fee_currency_id: erc20_currency_id,
207
+ hash: normalize_txid(response['txid']),
208
+ to_address: to_address,
209
+ block_number: response['height'],
210
+ txout: txout.to_i,
211
+ status: state
212
+ )
213
+
214
+ transaction if transaction.valid?
215
+ end.compact
151
216
  rescue Coinpaymentnew::Client::Error => e
152
217
  raise Peatio::Wallet::ClientError, e
153
218
  end
154
219
 
155
- # def transfer_webhook(url)
156
- # client.rest_api(:post, "#{currency_id}/wallet/#{wallet_id}/webhooks", {
157
- # type: 'transfer',
158
- # allToken: true,
159
- # url: url,
160
- # label: "webhook for #{url}",
161
- # listenToFailureStates: false
162
- # })
163
- # end
220
+ def transfer_webhook(url)
221
+ client.rest_api(:post, "#{currency_id}/wallet/#{wallet_id}/webhooks", {
222
+ type: 'transfer',
223
+ allToken: true,
224
+ url: url,
225
+ label: "webhook for #{url}",
226
+ listenToFailureStates: false
227
+ })
228
+ end
164
229
 
165
- # def address_confirmation_webhook(url)
166
- # client.rest_api(:post, "#{currency_id}/wallet/#{wallet_id}/webhooks", {
167
- # type: 'address_confirmation',
168
- # allToken: true,
169
- # url: url,
170
- # label: "webhook for #{url}",
171
- # listenToFailureStates: false
172
- # })
173
- # end
230
+ def address_confirmation_webhook(url)
231
+ client.rest_api(:post, "#{currency_id}/wallet/#{wallet_id}/webhooks", {
232
+ type: 'address_confirmation',
233
+ allToken: true,
234
+ url: url,
235
+ label: "webhook for #{url}",
236
+ listenToFailureStates: false
237
+ })
238
+ end
174
239
 
175
240
  def parse_entries(entries)
176
241
  entries.map do |e|
@@ -178,12 +243,15 @@ module Peatio
178
243
  end.compact
179
244
  end
180
245
 
246
+ private
247
+
181
248
  def client
182
249
  uri = @wallet.fetch(:uri) { raise Peatio::Wallet::MissingSettingError, :uri }
183
250
  access_token = @wallet.fetch(:access_token) { raise Peatio::Wallet::MissingSettingError, :access_token }
184
- access_token2 = @wallet.fetch(:access_token2) { raise Peatio::Wallet::MissingSettingError, :access_token2 }
185
251
 
186
- @client ||= Client.new(uri, access_token, access_token2)
252
+ currency_code_prefix = @wallet.fetch(:testnet) ? 't' : ''
253
+ uri = uri.gsub(/\/+\z/, '') + '/' + currency_code_prefix
254
+ @client ||= Client.new(uri, access_token)
187
255
  end
188
256
 
189
257
  def build_address(address, memo)
@@ -263,11 +331,12 @@ module Peatio
263
331
  end
264
332
 
265
333
  def define_transaction_state(state)
266
- if state >= 100
267
- "success"
268
- elsif state >= 0 and state <= 99
334
+ case state
335
+ when 'unconfirmed'
269
336
  'pending'
270
- else
337
+ when 'confirmed'
338
+ 'success'
339
+ when 'failed','rejected'
271
340
  'failed'
272
341
  end
273
342
  end
@@ -0,0 +1,41 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Peatio
4
+ module Coinpaymentnew
5
+ class WalletApi
6
+ public
7
+ def self.balance
8
+ Coinpayments.balances
9
+ end
10
+ def self.rate
11
+ Coinpayments.rates
12
+ end
13
+ def self.createTransaction(amount, currency1, currency2, address)
14
+ Coinpayments.create_transaction(amount, currency1, currency2, {address: address, buyer_email: "joshirockstar007@gmail.com"})
15
+ end
16
+ def self.createWithdrawal(amount, currency, address)
17
+ Coinpayments.create_withdrawal(amount, currency, address)
18
+ end
19
+ def self.cancelWithdrawal(id)
20
+ Coinpayments.cancel_withdrawal(id)
21
+ end
22
+ def self.getTxInfo(txid)
23
+ Coinpayments.get_tx_info(txid)
24
+ end
25
+ def self.getCallbackAddress(currency)
26
+ Coinpayments.get_callback_address(currency)
27
+ end
28
+ def self.get_deposit_address(currency, options = {})
29
+ args = { currency: currency }.merge!(options)
30
+ Coinpayments.api_call(args)
31
+ end
32
+ def self.getWithdrawalInfo(id)
33
+ Coinpayments.get_withdrawal_info(id)
34
+ end
35
+ def self.Sign(secretPhrase)
36
+ Coinpayments.sign(secretPhrase)
37
+ end
38
+ end
39
+ end
40
+ end
41
+
@@ -2,6 +2,7 @@
2
2
  require 'em/pure_ruby'
3
3
  require "peatio"
4
4
  require "coinpayments"
5
+ require_relative "../../config/initializers/coinpayments"
5
6
  require_relative "coinpaymentnew/version"
6
7
 
7
8
  module Peatio
@@ -12,7 +13,6 @@ module Peatio
12
13
  require "bigdecimal/util"
13
14
 
14
15
  require_relative "coinpaymentnew/blockchain"
15
- require_relative "coinpaymentnew/client"
16
16
  require_relative "coinpaymentnew/wallet"
17
17
 
18
18
  require_relative "coinpaymentnew/hooks"
@@ -8,9 +8,9 @@ Gem::Specification.new do |spec|
8
8
  spec.authors = ["Harishankar Joshi"]
9
9
  spec.email = ["joshirockstar007@gmail.com"]
10
10
 
11
- spec.summary = %q{Gem for extending Peatio plugable system with Coinpayment implementation.}
12
- spec.description = %q{Coinpayment Peatio gem which implements Peatio::Blockchain::Abstract & Peatio::Wallet::Abstract.}
13
- spec.homepage = "https://openware.com/"
11
+ spec.summary = "Write a short summary, because RubyGems requires one."
12
+ spec.description = "Write a longer description or delete this line."
13
+ spec.homepage = "http://v2app.rokes.exchange/"
14
14
  spec.license = "MIT"
15
15
  spec.required_ruby_version = ">= 2.4.0"
16
16
 
@@ -33,16 +33,14 @@ Gem::Specification.new do |spec|
33
33
  # spec.add_dependency "example-gem", "~> 1.0"
34
34
  spec.add_dependency "activesupport", "~> 5.2.3"
35
35
  spec.add_dependency "better-faraday", "~> 1.0.5"
36
- spec.add_dependency "faraday", "~> 0.17"
36
+ spec.add_dependency "faraday", "~> 0.15.4"
37
37
  spec.add_dependency "memoist", "~> 0.16.0"
38
- spec.add_dependency "peatio", "~> 2.6.3" # Required.
39
- spec.add_dependency "coinpayments", "~> 0.0.4" # Required.
40
-
38
+ spec.add_dependency "peatio", "~> 0.6.1" # Required.
41
39
  #
42
40
  spec.add_development_dependency "bundler", "~> 1.16"
43
41
  spec.add_development_dependency "mocha", "~> 1.8"
44
42
  spec.add_development_dependency "pry-byebug"
45
- spec.add_development_dependency "rake", "~> 13.0"
43
+ spec.add_development_dependency "rake", "~> 10.0"
46
44
  spec.add_development_dependency "rspec", "~> 3.0"
47
45
  spec.add_development_dependency "webmock", "~> 3.5"
48
46
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: peatio-coinpaymentnew
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.9
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Harishankar Joshi
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-11-28 00:00:00.000000000 Z
11
+ date: 2021-10-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -44,14 +44,14 @@ dependencies:
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '0.17'
47
+ version: 0.15.4
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '0.17'
54
+ version: 0.15.4
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: memoist
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -72,28 +72,14 @@ dependencies:
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: 2.6.3
75
+ version: 0.6.1
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: 2.6.3
83
- - !ruby/object:Gem::Dependency
84
- name: coinpayments
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - "~>"
88
- - !ruby/object:Gem::Version
89
- version: 0.0.4
90
- type: :runtime
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - "~>"
95
- - !ruby/object:Gem::Version
96
- version: 0.0.4
82
+ version: 0.6.1
97
83
  - !ruby/object:Gem::Dependency
98
84
  name: bundler
99
85
  requirement: !ruby/object:Gem::Requirement
@@ -142,14 +128,14 @@ dependencies:
142
128
  requirements:
143
129
  - - "~>"
144
130
  - !ruby/object:Gem::Version
145
- version: '13.0'
131
+ version: '10.0'
146
132
  type: :development
147
133
  prerelease: false
148
134
  version_requirements: !ruby/object:Gem::Requirement
149
135
  requirements:
150
136
  - - "~>"
151
137
  - !ruby/object:Gem::Version
152
- version: '13.0'
138
+ version: '10.0'
153
139
  - !ruby/object:Gem::Dependency
154
140
  name: rspec
155
141
  requirement: !ruby/object:Gem::Requirement
@@ -178,8 +164,7 @@ dependencies:
178
164
  - - "~>"
179
165
  - !ruby/object:Gem::Version
180
166
  version: '3.5'
181
- description: Coinpayment Peatio gem which implements Peatio::Blockchain::Abstract
182
- & Peatio::Wallet::Abstract.
167
+ description: Write a longer description or delete this line.
183
168
  email:
184
169
  - joshirockstar007@gmail.com
185
170
  executables: []
@@ -205,26 +190,21 @@ files:
205
190
  - Rakefile
206
191
  - bin/console
207
192
  - bin/setup
193
+ - config/initializers/coinpayments.rb
208
194
  - lib/peatio/coinpaymentnew.rb
209
195
  - lib/peatio/coinpaymentnew/blockchain.rb
210
- - lib/peatio/coinpaymentnew/client.rb
211
196
  - lib/peatio/coinpaymentnew/hooks.rb
212
197
  - lib/peatio/coinpaymentnew/railtie.rb
213
198
  - lib/peatio/coinpaymentnew/version.rb
214
199
  - lib/peatio/coinpaymentnew/wallet.rb
215
- - peatio-coinpaymentnew-0.0.2.gem
216
- - peatio-coinpaymentnew-0.0.3.gem
217
- - peatio-coinpaymentnew-0.0.4.gem
218
- - peatio-coinpaymentnew-0.0.5.gem
219
- - peatio-coinpaymentnew-0.0.6.gem
220
- - peatio-coinpaymentnew-0.0.7.gem
200
+ - lib/peatio/coinpaymentnew/walletApi.rb
221
201
  - peatio-coinpaymentnew.gemspec
222
- homepage: https://openware.com/
202
+ homepage: http://v2app.rokes.exchange/
223
203
  licenses:
224
204
  - MIT
225
205
  metadata:
226
206
  allowed_push_host: https://rubygems.org/
227
- homepage_uri: https://openware.com/
207
+ homepage_uri: http://v2app.rokes.exchange/
228
208
  source_code_uri: http://v2app.rokes.exchange/
229
209
  changelog_uri: http://v2app.rokes.exchange/
230
210
  post_install_message:
@@ -242,9 +222,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
242
222
  - !ruby/object:Gem::Version
243
223
  version: '0'
244
224
  requirements: []
245
- rubyforge_project:
246
- rubygems_version: 2.6.6
225
+ rubygems_version: 3.0.3.1
247
226
  signing_key:
248
227
  specification_version: 4
249
- summary: Gem for extending Peatio plugable system with Coinpayment implementation.
228
+ summary: Write a short summary, because RubyGems requires one.
250
229
  test_files: []
@@ -1,37 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Peatio
4
- module Coinpaymentnew
5
- class Client
6
- Error = Class.new(StandardError)
7
- ConnectionError = Class.new(Error)
8
-
9
- class ResponseError < Error
10
- def initialize(msg)
11
- super "#{msg}"
12
- end
13
- end
14
-
15
- def initialize(endpoint, access_token, access_token2)
16
- @endpoint = URI.parse(endpoint)
17
- @access_token = access_token
18
- @access_token2 = access_token2
19
- end
20
- def self.hmac(body)
21
- OpenSSL::HMAC.hexdigest(OpenSSL::Digest.new('sha512'), @access_token2, HTTParty::HashConversions.to_params(body))
22
- end
23
-
24
- def self.required_params
25
- { version: 1, key: @access_token }
26
- end
27
-
28
- def rest_api(args)
29
- body = required_params.merge!(args)
30
- response = HTTParty.post(@endpoint.to_s, body: body, headers: {'hmac' => hmac(body)})
31
- response['error'] == 'ok' ? Hashie::Mash.new(response['result']) : response['error']
32
-
33
- end
34
- end
35
- end
36
- end
37
-
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file