Module: MixinBot::API::Withdraw

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

Instance Method Summary collapse

Instance Method Details

#check_address(asset:, destination:, tag: nil) ⇒ Object



73
74
75
# File 'lib/mixin_bot/api/withdraw.rb', line 73

def check_address(asset:, destination:, tag: nil)
  client.get '/external/addresses/check', asset:, destination:, tag:, access_token: ''
end

#create_withdraw_address(**kwargs) ⇒ Object Also known as: create_address



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/mixin_bot/api/withdraw.rb', line 6

def create_withdraw_address(**kwargs)
  path = '/addresses'
  pin = kwargs[:pin]
  payload =
    {
      asset_id: kwargs[:asset_id],
      destination: kwargs[:destination],
      tag: kwargs[:tag],
      label: kwargs[:label]
    }

  payload.update(
    tip_or_legacy_pin_payload(pin, 'TIP:ADDRESS:ADD:', payload[:asset_id], payload[:destination], payload[:tag], payload[:label])
  )

  client.post path, **payload
end

#delete_withdraw_address(address, **kwargs) ⇒ Object Also known as: delete_address



32
33
34
35
36
37
38
39
# File 'lib/mixin_bot/api/withdraw.rb', line 32

def delete_withdraw_address(address, **kwargs)
  pin = kwargs[:pin]

  path = format('/addresses/%<address>s/delete', address:)
  payload = tip_or_legacy_pin_payload(pin, 'TIP:ADDRESS:REMOVE:', address)

  client.post path, **payload
end

#get_withdraw_address(address, access_token: nil) ⇒ Object Also known as: read_address



25
26
27
28
29
# File 'lib/mixin_bot/api/withdraw.rb', line 25

def get_withdraw_address(address, access_token: nil)
  path = format('/addresses/%<address>s', address:)

  client.get path, access_token:
end

#withdraw_addresses(asset_id, access_token: nil) ⇒ Object Also known as: get_addresses_by_asset_id



67
68
69
70
# File 'lib/mixin_bot/api/withdraw.rb', line 67

def withdraw_addresses(asset_id, access_token: nil)
  path = format('/assets/%<asset_id>s/addresses', asset_id:)
  client.get path, access_token:
end

#withdrawals(**kwargs) ⇒ Object Also known as: send_withdrawal



42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# File 'lib/mixin_bot/api/withdraw.rb', line 42

def withdrawals(**kwargs)
  address_id = kwargs[:address_id]
  pin = kwargs[:pin]
  amount = format('%.8f', kwargs[:amount].to_d.to_r)
  trace_id = kwargs[:trace_id]
  memo = kwargs[:memo]
  access_token = kwargs[:access_token]

  path = '/withdrawals'
  payload = {
    address_id:,
    amount:,
    trace_id:,
    memo:
  }

  fee = '0'
  payload.update(
    tip_or_legacy_pin_payload(pin, 'TIP:WITHDRAWAL:CREATE:', address_id, amount, fee, trace_id, memo)
  )

  client.post path, **payload, access_token:
end