Class: BTC::AssetDefinition

Inherits:
Object
  • Object
show all
Defined in:
lib/btcruby/open_assets/asset_definition.rb

Constant Summary collapse

DEFAULT_VERSION =
"1.0".freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(dictionary: nil, json: nil, asset_ids: [], name: nil, name_short: nil, issuer: nil, type: nil, divisibility: 0) ⇒ AssetDefinition

Returns a new instance of AssetDefinition.



23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/btcruby/open_assets/asset_definition.rb', line 23

def initialize(dictionary: nil,
               json: nil,
               asset_ids: [],
               name: nil,
               name_short: nil,
               issuer: nil,
               type: nil,
               divisibility: 0)

  @json = json
  dictionary ||= (json ? JSON.parse(json) : nil)
  if dictionary
    @asset_ids = dictionary["asset_ids"].map{|aid| AssetID.parse(aid) }
  else
    @asset_ids = asset_ids
    @name = name
    @name_short = name_short
    @issuer = issuer
    @type = type
    @divisibility = divisibility
  end
  @version ||= DEFAULT_VERSION
  @asset_ids ||= []
  @divisibility ||= 0
end

Instance Attribute Details

#asset_idsObject

Returns the value of attribute asset_ids.



9
10
11
# File 'lib/btcruby/open_assets/asset_definition.rb', line 9

def asset_ids
  @asset_ids
end

#contract_urlObject

Returns the value of attribute contract_url.



12
13
14
# File 'lib/btcruby/open_assets/asset_definition.rb', line 12

def contract_url
  @contract_url
end

#descriptionObject

Returns the value of attribute description.



14
15
16
# File 'lib/btcruby/open_assets/asset_definition.rb', line 14

def description
  @description
end

#description_mimeObject

Returns the value of attribute description_mime.



15
16
17
# File 'lib/btcruby/open_assets/asset_definition.rb', line 15

def description_mime
  @description_mime
end

#divisibilityObject

Returns the value of attribute divisibility.



17
18
19
# File 'lib/btcruby/open_assets/asset_definition.rb', line 17

def divisibility
  @divisibility
end

#icon_urlObject

Returns the value of attribute icon_url.



19
20
21
# File 'lib/btcruby/open_assets/asset_definition.rb', line 19

def icon_url
  @icon_url
end

#image_urlObject

Returns the value of attribute image_url.



20
21
22
# File 'lib/btcruby/open_assets/asset_definition.rb', line 20

def image_url
  @image_url
end

#issuerObject

Returns the value of attribute issuer.



13
14
15
# File 'lib/btcruby/open_assets/asset_definition.rb', line 13

def issuer
  @issuer
end

Returns the value of attribute link_to_website.



18
19
20
# File 'lib/btcruby/open_assets/asset_definition.rb', line 18

def link_to_website
  @link_to_website
end

#nameObject

Returns the value of attribute name.



11
12
13
# File 'lib/btcruby/open_assets/asset_definition.rb', line 11

def name
  @name
end

#name_shortObject

Returns the value of attribute name_short.



10
11
12
# File 'lib/btcruby/open_assets/asset_definition.rb', line 10

def name_short
  @name_short
end

#typeObject

Returns the value of attribute type.



16
17
18
# File 'lib/btcruby/open_assets/asset_definition.rb', line 16

def type
  @type
end

#versionObject

Returns the value of attribute version.



21
22
23
# File 'lib/btcruby/open_assets/asset_definition.rb', line 21

def version
  @version
end

Instance Method Details

#dictionaryObject



49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# File 'lib/btcruby/open_assets/asset_definition.rb', line 49

def dictionary
  dict = {}
  dict["asset_ids"]  = self.asset_ids.map{|aid| aid.to_s}
  dict["name_short"] = self.name_short || ""
  dict["name"]       = self.name || ""
  dict["contract_url"] =       self.contract_url     if self.contract_url
  dict["issuer"] =             self.issuer           if self.issuer
  dict["description"] =        self.description      if self.description
  dict["description_mime"] =   self.description_mime if self.description_mime
  dict["type"] =               self.type             if self.type
  dict["divisibility"] =       self.divisibility     if self.divisibility
  dict["link_to_website"] =    self.link_to_website  if self.link_to_website
  dict["icon_url"] =           self.icon_url         if self.icon_url
  dict["image_url"] =          self.image_url        if self.image_url
  dict["version"] =            self.version          if self.version
  dict
end

#jsonObject



67
68
69
# File 'lib/btcruby/open_assets/asset_definition.rb', line 67

def json
  @json ||= JSON.generate(dictionary)
end

#sha256Object



71
72
73
# File 'lib/btcruby/open_assets/asset_definition.rb', line 71

def sha256
  BTC.to_hex(BTC.sha256(json))
end