module MixinBot::API::Transfer

Constants

TRANSFER_ARGUMENTS

Public Instance Methods

create_transfer(pin, options = {}) click to toggle source
# File lib/mixin_bot/api/transfer.rb, line 7
def create_transfer(pin, options = {})
  raise ArgumentError, "#{TRANSFER_ARGUMENTS.join(', ')} are needed for create transfer" unless TRANSFER_ARGUMENTS.all? { |param| options.keys.include? param }

  asset_id = options[:asset_id]
  opponent_id = options[:opponent_id]
  amount = options[:amount].to_f
  memo = options[:memo]
  trace_id = options[:trace_id] || SecureRandom.uuid
  encrypted_pin = options[:encrypted_pin] || encrypt_pin(pin)

  path = '/transfers'
  payload = {
    asset_id: asset_id,
    opponent_id: opponent_id,
    pin: encrypted_pin,
    amount: format('%.8f', amount),
    trace_id: trace_id,
    memo: memo
  }

  access_token = options[:access_token]
  access_token ||= access_token('POST', path, payload.to_json)
  authorization = format('Bearer %<access_token>s', access_token: access_token)
  client.post(path, headers: { 'Authorization': authorization }, json: payload)
end
read_transfer(trace_id, access_token: nil)
Alias for: transfer
transfer(trace_id, access_token: nil) click to toggle source
# File lib/mixin_bot/api/transfer.rb, line 33
def transfer(trace_id, access_token: nil)
  path = format('/transfers/trace/%<trace_id>s', trace_id: trace_id)
  access_token ||= access_token('GET', path, '')
  authorization = format('Bearer %<access_token>s', access_token: access_token)
  client.get(path, headers: { 'Authorization': authorization })
end
Also aliased as: read_transfer