Sha256: 86e9ba4b9eb25b88f452d5a93353f4b6ae1178448dd6ff82413160f43271e179

Contents?: true

Size: 1.59 KB

Versions: 1

Compression:

Stored size: 1.59 KB

Contents

# frozen_string_literal: true

module ViaBTC
  module Helpers
    def response_invalid?(response)
      !response['error'].nil?
    end

    def amount_valid?(amount)
      amount.is_a?(Numeric) && amount.positive? && (amount.is_a?(Integer) || amount.is_a?(Float))
    end

    def fee_rate_valid?(fee_rate)
      (0...1).cover?(fee_rate)
    end

    def now
      Time.now.to_i
    end

    def raise_exchange_error(response)
      error_code    = response['error']['code']
      error_message = response['error']['message']

      case error_code
      when 1 then raise ViaBTC::Error::InvalidArgument, response
      when 2 then raise ViaBTC::Error::InternalError, response
      when 3 then raise ViaBTC::Error::ServiceUnavailable, response
      when 4 then raise ViaBTC::Error::MethodNotFound, response
      when 5 then raise ViaBTC::Error::ServiceTimeout, response
      when 6 then raise ViaBTC::Error::RequireAuthentication, response
      when 10
        case error_message
        when 'balance not enough' then raise ViaBTC::Error::LimitOrderBalanceNotEnough, response
        when 'repeat update' then raise ViaBTC::Error::RepeatBalanceUpdate, response
        else raise ViaBTC::Error::ExchangeError, response
        end
      when 11
        case error_message
        when 'amount too small' then raise ViaBTC::Error::LimitOrderAmountTooSmall, response
        when 'balance not enough' then raise ViaBTC::Error::BalanceNotEnough, response
        end
      when 12 then raise ViaBTC::Error::LimitOrderNoEnoughTrader, response
      else raise ViaBTC::Error::ExchangeError, response
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
viabtc-1.3.0 lib/viabtc/helpers.rb