Class: Stellar::Asset
- Inherits:
-
XDR::Union
- Object
- XDR::Union
- Stellar::Asset
show all
- Includes:
- XDR::Namespace
- Defined in:
- lib/stellar/asset.rb,
generated/stellar/asset.rb,
generated/stellar/asset/alpha_num4.rb,
generated/stellar/asset/alpha_num12.rb
Defined Under Namespace
Classes: AlphaNum12, AlphaNum4
Constant Summary
collapse
- TYPES =
i(native alphanum4 alphanum12)
Class Method Summary
collapse
Instance Method Summary
collapse
Class Method Details
.alphanum12(code, issuer) ⇒ Object
16
17
18
19
20
21
|
# File 'lib/stellar/asset.rb', line 16
def self.alphanum12(code, issuer)
raise ArgumentError, "Bad :issuer" unless issuer.is_a?(KeyPair)
code = normalize_code(code, 12)
an = AlphaNum12.new({asset_code:code, issuer:issuer.account_id})
new(:asset_type_credit_alphanum12, an)
end
|
.alphanum4(code, issuer) ⇒ Object
9
10
11
12
13
14
|
# File 'lib/stellar/asset.rb', line 9
def self.alphanum4(code, issuer)
raise ArgumentError, "Bad :issuer" unless issuer.is_a?(KeyPair)
code = normalize_code(code, 4)
an = AlphaNum4.new({asset_code:code, issuer:issuer.account_id})
new(:asset_type_credit_alphanum4, an)
end
|
.native ⇒ Object
5
6
7
|
# File 'lib/stellar/asset.rb', line 5
def self.native
new(:asset_type_native)
end
|
.normalize_code(code, length) ⇒ Object
65
66
67
68
69
|
# File 'lib/stellar/asset.rb', line 65
def self.normalize_code(code, length)
raise ArgumentError, "Invalid asset code: #{code}, must be <= #{length} bytes" if code.length > length
code.ljust(length, "\x00")
end
|
Instance Method Details
#code ⇒ Object
43
44
45
46
47
48
49
50
51
52
|
# File 'lib/stellar/asset.rb', line 43
def code
case switch
when AssetType.asset_type_credit_alphanum4
alpha_num4!.asset_code
when AssetType.asset_type_credit_alphanum12
alpha_num12!.asset_code
else
raise "#{switch} assets do not have a code"
end
end
|
#inspect ⇒ Object
38
39
40
41
|
# File 'lib/stellar/asset.rb', line 38
def inspect
label = switch.to_s
"#<Stellar::Asset #{to_s}>"
end
|
#issuer ⇒ Object
54
55
56
57
58
59
60
61
62
63
|
# File 'lib/stellar/asset.rb', line 54
def issuer
case switch
when AssetType.asset_type_credit_alphanum4
alpha_num4!.issuer
when AssetType.asset_type_credit_alphanum12
alpha_num12!.issuer
else
raise "#{switch} assets do not have a isuuer"
end
end
|
#to_s ⇒ Object
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
# File 'lib/stellar/asset.rb', line 23
def to_s
case switch
when AssetType.asset_type_native
"native"
when AssetType.asset_type_credit_alphanum4
anum = alpha_num4!
issuer_address = Stellar::Convert.pk_to_address(anum.issuer)
"#{anum.asset_code}/#{issuer_address}"
when AssetType.asset_type_credit_alphanum12
anum = alpha_num12!
issuer_address = Stellar::Convert.pk_to_address(anum.issuer)
"#{anum.asset_code}/#{issuer_address}"
end
end
|