Module: MixinBot::API::LegacyTransfer

Included in:
MixinBot::API
Defined in:
lib/mixin_bot/api/legacy_transfer.rb

Constant Summary collapse

TRANSFER_ARGUMENTS =
%i[asset_id opponent_id amount].freeze

Instance Method Summary collapse

Instance Method Details

#create_transfer(pin, **kwargs) ⇒ Object

Raises:



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/mixin_bot/api/legacy_transfer.rb', line 7

def create_transfer(pin, **kwargs)
  raise ArgumentError, "#{TRANSFER_ARGUMENTS.join(', ')} are needed for create transfer" unless TRANSFER_ARGUMENTS.all? { |param| kwargs.keys.include? param }

  asset_id = kwargs[:asset_id]
  opponent_id = kwargs[:opponent_id]
  amount = format('%.8f', kwargs[:amount].to_d.to_r).gsub(/\.?0+$/, '')
  trace_id = kwargs[:trace_id] || SecureRandom.uuid
  memo = kwargs[:memo] || ''

  payload = {
    asset_id:,
    opponent_id:,
    amount:,
    trace_id:,
    memo:
  }

  if pin.length > 6
    pin_base64 = encrypt_tip_pin pin, 'TIP:TRANSFER:CREATE:', asset_id, opponent_id, amount, trace_id, memo
    payload[:pin_base64] = pin_base64
  else
    encrypted_pin = encrypt_pin pin
    payload[:pin] = encrypted_pin
  end

  path = '/transfers'
  client.post path, **payload
end

#transfer(trace_id, access_token: nil) ⇒ Object



36
37
38
39
# File 'lib/mixin_bot/api/legacy_transfer.rb', line 36

def transfer(trace_id, access_token: nil)
  path = format('/transfers/trace/%<trace_id>s', trace_id:)
  client.get path, access_token:
end