Module: MixinBot::API::LegacyCollectible

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

Constant Summary collapse

NFT_ASSET_MIXIN_ID =
'1700941284a95f31b25ec8c546008f208f88eee4419ccdcdbe6e3195e60128ca'
COLLECTABLE_REQUEST_ACTIONS =
%i[sign unlock].freeze

Instance Method Summary collapse

Instance Method Details

#create_collectible_request(action, raw, access_token: nil) ⇒ Object



46
47
48
49
50
51
52
53
54
55
56
57
58
59
# File 'lib/mixin_bot/api/legacy_collectible.rb', line 46

def create_collectible_request(action, raw, access_token: nil)
  warn_legacy_mixin_api!('LegacyCollectible#create_collectible_request')
  unless COLLECTABLE_REQUEST_ACTIONS.include? action.to_sym
    raise ArgumentError,
          "request action is limited in #{COLLECTABLE_REQUEST_ACTIONS.join(', ')}"
  end

  path = '/collectibles/requests'
  payload = {
    action:,
    raw:
  }
  client.post path, **payload, access_token:
end

#create_sign_collectible_request(raw, access_token: nil) ⇒ Object



61
62
63
64
# File 'lib/mixin_bot/api/legacy_collectible.rb', line 61

def create_sign_collectible_request(raw, access_token: nil)
  warn_legacy_mixin_api!('LegacyCollectible#create_sign_collectible_request')
  create_collectible_request 'sign', raw, access_token:
end

#create_unlock_collectible_request(raw, access_token: nil) ⇒ Object



66
67
68
69
# File 'lib/mixin_bot/api/legacy_collectible.rb', line 66

def create_unlock_collectible_request(raw, access_token: nil)
  warn_legacy_mixin_api!('LegacyCollectible#create_unlock_collectible_request')
  create_collectible_request 'unlock', raw, access_token:
end

#legacy_collectible(id, access_token: nil) ⇒ Object



8
9
10
11
12
# File 'lib/mixin_bot/api/legacy_collectible.rb', line 8

def legacy_collectible(id, access_token: nil)
  warn_legacy_mixin_api!('LegacyCollectible#legacy_collectible')
  path = "/collectibles/tokens/#{id}"
  client.get path, access_token:
end

#legacy_collectibles(**kwargs) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/mixin_bot/api/legacy_collectible.rb', line 20

def legacy_collectibles(**kwargs)
  warn_legacy_mixin_api!('LegacyCollectible#legacy_collectibles')
  limit = kwargs[:limit] || 100
  offset = kwargs[:offset] || ''
  state = kwargs[:state] || ''

  member_ids = kwargs[:members] || [config.app_id]
  threshold = kwargs[:threshold] || member_ids.length

  members_hash = MixinBot.utils.hash_members(member_ids)

  access_token = kwargs[:access_token]

  path = '/collectibles/outputs'
  params = {
    limit:,
    offset:,
    state:,
    members: members_hash,
    threshold:
  }

  client.get path, **params, access_token:
end

#legacy_collection(id, access_token: nil) ⇒ Object



14
15
16
17
18
# File 'lib/mixin_bot/api/legacy_collectible.rb', line 14

def legacy_collection(id, access_token: nil)
  warn_legacy_mixin_api!('LegacyCollectible#legacy_collection')
  path = "/collectibles/collections/#{id}"
  client.get path, access_token:
end

#sign_collectible_request(request_id, pin = nil) ⇒ Object

Raises:



71
72
73
74
75
76
77
78
79
80
# File 'lib/mixin_bot/api/legacy_collectible.rb', line 71

def sign_collectible_request(request_id, pin = nil)
  warn_legacy_mixin_api!('LegacyCollectible#sign_collectible_request')
  pin ||= config.pin
  raise ArgumentError, 'pin is needed for sign collectible request' if pin.blank?

  path = format('/collectibles/requests/%<request_id>s/sign', request_id:)
  payload = tip_or_legacy_pin_payload(pin, 'TIP:COLLECTIBLE:REQUEST:SIGN:', request_id)

  client.post path, **payload
end

#unlock_collectible_request(request_id, pin = nil) ⇒ Object

Raises:



82
83
84
85
86
87
88
89
90
91
# File 'lib/mixin_bot/api/legacy_collectible.rb', line 82

def unlock_collectible_request(request_id, pin = nil)
  warn_legacy_mixin_api!('LegacyCollectible#unlock_collectible_request')
  pin ||= config.pin
  raise ArgumentError, 'pin is needed for sign collectible request' if pin.blank?

  path = format('/collectibles/requests/%<request_id>s/unlock', request_id:)
  payload = tip_or_legacy_pin_payload(pin, 'TIP:COLLECTIBLE:REQUEST:UNLOCK:', request_id)

  client.post path, **payload
end