Module: Cryptopia::Api::Private

Included in:
Base
Defined in:
lib/cryptopia/api/private.rb

Constant Summary collapse

ENDPOINT =
'https://www.cryptopia.co.nz/Api'
AVAILABLE_PARAMS =
{
  balance: [:Currency, :CurrencyId],
  deposit_address: [:Currency, :CurrencyId],
  open_orders: [:Market, :TradePairId],
  trade_history: [:Market, :TradePairId],
  transactions: [:Type],
  submit_trade: [:Market, :TradePairId],
  cancel_trade: [:OrderId, :TradeId]
}
OPTIONAL_PARAMS =
{
  open_orders: [:Count]
}
EXACT_PARAMS =
{
  submit_trade: [:Type, :Rate, :Amount],
  cancel_trade: [:Type]
}

Instance Method Summary collapse

Instance Method Details

#balance(options = {}) ⇒ Object



35
36
37
38
39
40
41
42
43
# File 'lib/cryptopia/api/private.rb', line 35

def balance(options = {})
  for_uri(Private::ENDPOINT) do
    if invalid_params?(:balance, options)
      raise ArgumentError, "Arguments must be #{params(:balance)}"
    end

    handle_response(auth_post('/GetBalance', options))
  end
end

#cancel_trade(options = {}) ⇒ Object



99
100
101
102
103
104
105
106
107
# File 'lib/cryptopia/api/private.rb', line 99

def cancel_trade(options = {})
  for_uri(Private::ENDPOINT) do
    if invalid_params?(:cancel_trade, options, true)
      raise ArgumentError, "Arguments must be #{params(:cancel_trade)}"
    end

    handle_response(auth_post('/CancelTrade', options))
  end
end

#deposit_address(options = {}) ⇒ Object



45
46
47
48
49
50
51
52
53
# File 'lib/cryptopia/api/private.rb', line 45

def deposit_address(options = {})
     for_uri(Private::ENDPOINT) do
       if invalid_params?(:deposit_address, options)
         raise ArgumentError, "Arguments must be #{params(:deposit_address)}"
       end

       handle_response(auth_post('/GetDepositAddress', options))
     end
end

#initialize(api_key = nil, api_secret = nil) ⇒ Object



30
31
32
33
# File 'lib/cryptopia/api/private.rb', line 30

def initialize(api_key = nil, api_secret = nil)
  @api_key = api_key
  @api_secret = api_secret
end

#open_orders(options = {}) ⇒ Object



55
56
57
58
59
60
61
62
63
# File 'lib/cryptopia/api/private.rb', line 55

def open_orders(options = {})
     for_uri(Private::ENDPOINT) do
       if invalid_params?(:deposit_address, options)
         raise ArgumentError, "Arguments must be #{params(:deposit_address)}"
       end

       handle_response(auth_post('/GetOpenOrders', options))
     end
end

#submit_trade(options = {}) ⇒ Object



89
90
91
92
93
94
95
96
97
# File 'lib/cryptopia/api/private.rb', line 89

def submit_trade(options = {})
  for_uri(Private::ENDPOINT) do
    if invalid_params?(:submit_trade, options, true)
      raise ArgumentError, "Arguments must be #{params(:submit_trade)}"
    end

    handle_response(auth_post('/SubmitTrade', options))
  end
end

#trade_history(options = {}) ⇒ Object



65
66
67
68
69
70
71
72
73
# File 'lib/cryptopia/api/private.rb', line 65

def trade_history(options = {})
  for_uri(Private::ENDPOINT) do
    if invalid_params?(:trade_history, options)
      raise ArgumentError, "Arguments must be #{params(:trade_history)}"
    end

    handle_response(auth_post('/GetTradeHistory', options))
  end
end

#transactions(options = {}) ⇒ Object



75
76
77
78
79
80
81
82
83
84
85
86
87
# File 'lib/cryptopia/api/private.rb', line 75

def transactions(options = {})
  for_uri(Private::ENDPOINT) do
    if invalid_params?(:transactions, options)
      raise ArgumentError, "Arguments must be #{params(:transactions)}"
    end

    if invalid_transaction_type?(options)
      raise ArgumentError, "Type must be 'Deposit' or 'Withdraw'"
    end

    handle_response(auth_post('/GetTransactions', options))
  end
end