From 7e74aa84e91a89cfa74f432f7a84ff34756cc95a Mon Sep 17 00:00:00 2001 From: Rostislav Katin Date: Sun, 28 Jan 2018 16:44:25 +0300 Subject: [PATCH 1/3] Make the nonce more precise --- lib/cryptopia/api/private.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/cryptopia/api/private.rb b/lib/cryptopia/api/private.rb index 8176467..5ccb967 100644 --- a/lib/cryptopia/api/private.rb +++ b/lib/cryptopia/api/private.rb @@ -167,7 +167,7 @@ def hashed_post_params end def nonce - @nonce ||= Time.now.to_i.to_s + @nonce ||= (Time.now.to_f * 100).to_i end def invalid_transaction_type?(options) From fb66c598222a54b96086a80485c1ee05f78fe5ee Mon Sep 17 00:00:00 2001 From: poctek Date: Mon, 5 Feb 2018 09:45:51 +0300 Subject: [PATCH 2/3] Add submit_withdraw method --- lib/cryptopia/api/private.rb | 36 ++++++++++++++++++++++++------------ 1 file changed, 24 insertions(+), 12 deletions(-) diff --git a/lib/cryptopia/api/private.rb b/lib/cryptopia/api/private.rb index 84f211f..b1a274f 100644 --- a/lib/cryptopia/api/private.rb +++ b/lib/cryptopia/api/private.rb @@ -15,7 +15,8 @@ module Private trade_history: [:Market, :TradePairId], transactions: [:Type], submit_trade: [:Market, :TradePairId], - cancel_trade: [:OrderId, :TradeId] + cancel_trade: [:OrderId, :TradeId], + submit_withdraw: [:CurrencyId, :Currency] } OPTIONAL_PARAMS = { @@ -24,7 +25,8 @@ module Private EXACT_PARAMS = { submit_trade: [:Type, :Rate, :Amount], - cancel_trade: [:Type] + cancel_trade: [:Type], + submit_withdraw: [:Address, :Amount] } def initialize(api_key = nil, api_secret = nil) @@ -50,9 +52,9 @@ def deposit_address(options = {}) handle_response(auth_post('/GetDepositAddress', options)) end - end + end - def open_orders(options = {}) + def open_orders(options = {}) for_uri(Private::ENDPOINT) do if invalid_params?(:deposit_address, options) raise ArgumentError, "Arguments must be #{params(:deposit_address)}" @@ -60,7 +62,7 @@ def open_orders(options = {}) handle_response(auth_post('/GetOpenOrders', options)) end - end + end def trade_history(options = {}) for_uri(Private::ENDPOINT) do @@ -106,6 +108,16 @@ def cancel_trade(options = {}) end end + def submit_withdraw(options = {}) + for_uri(Private::ENDPOINT) do + if invalid_params?(:submit_withdraw, options, true) + raise ArgumentError, "Arguments must be #{params(:submit_withdraw)}" + end + + handle_response(auth_post('/SubmitWithdraw', options)) + end + end + private attr_reader :api_key, :api_secret, :url, :options @@ -135,7 +147,7 @@ def auth_post(endpoint, options = {}) def keys_is_not_present? (api_key.nil? || (!api_key.nil? && api_key == '')) || - (api_secret.nil? || (!api_secret.nil? && api_secret == '')) + (api_secret.nil? || (!api_secret.nil? && api_secret == '')) end def authorization_formatted_value @@ -190,12 +202,12 @@ def invalid_params?(endpoint, options = {}, exact = false) ( OPTIONAL_PARAMS.key?(endpoint) && (OPTIONAL_PARAMS[endpoint] - available_keys) >= 1 - ) && - ( - exact && - EXACT_PARAMS.key?(endpoint) && - EXACT_PARAMS[endpoint] - ) + ) && + ( + exact && + EXACT_PARAMS.key?(endpoint) && + EXACT_PARAMS[endpoint] + ) end def params(endpoint) From a72c3dd7ceef46548d588bb5d3d5c813e65c82eb Mon Sep 17 00:00:00 2001 From: Alexey Smirnov Date: Sat, 3 Mar 2018 03:06:13 +0100 Subject: [PATCH 3/3] add SubmitTransfer --- lib/cryptopia/api/private.rb | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/lib/cryptopia/api/private.rb b/lib/cryptopia/api/private.rb index b1a274f..70a8d2b 100644 --- a/lib/cryptopia/api/private.rb +++ b/lib/cryptopia/api/private.rb @@ -16,7 +16,8 @@ module Private transactions: [:Type], submit_trade: [:Market, :TradePairId], cancel_trade: [:OrderId, :TradeId], - submit_withdraw: [:CurrencyId, :Currency] + submit_withdraw: [:CurrencyId, :Currency], + submit_transfer: [:CurrencyId, :Currency] } OPTIONAL_PARAMS = { @@ -26,7 +27,8 @@ module Private EXACT_PARAMS = { submit_trade: [:Type, :Rate, :Amount], cancel_trade: [:Type], - submit_withdraw: [:Address, :Amount] + submit_withdraw: [:Address, :Amount], + submit_transfer: [:Username, :Amount] } def initialize(api_key = nil, api_secret = nil) @@ -117,6 +119,16 @@ def submit_withdraw(options = {}) handle_response(auth_post('/SubmitWithdraw', options)) end end + + def submit_transfer(options = {}) + for_uri(Private::ENDPOINT) do + if invalid_params?(:submit_transfer, options, true) + raise ArgumentError, "Arguments must be #{params(:submit_transfer)}" + end + + handle_response(auth_post('/SubmitTransfer', options)) + end + end private