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_legacy_transfer(pin, **kwargs) ⇒ Object Also known as: create_transfer

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
# File 'lib/mixin_bot/api/legacy_transfer.rb', line 7

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

  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:
  }

  payload.update(
    tip_or_legacy_pin_payload(pin, 'TIP:TRANSFER:CREATE:', asset_id, opponent_id, amount, trace_id, memo)
  )

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

#legacy_transfer(trace_id, access_token: nil) ⇒ Object Also known as: transfer



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

def legacy_transfer(trace_id, access_token: nil)
  warn_legacy_mixin_api!('LegacyTransfer#legacy_transfer')
  path = format('/transfers/trace/%<trace_id>s', trace_id:)
  client.get path, access_token:
end