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
Class Method Summary
collapse
Instance Method Summary
collapse
Class Method Details
.alphanum12(code, issuer) ⇒ Object
14
15
16
17
18
19
|
# File 'lib/stellar/asset.rb', line 14
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
7
8
9
10
11
12
|
# File 'lib/stellar/asset.rb', line 7
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
3
4
5
|
# File 'lib/stellar/asset.rb', line 3
def self.native
new(:asset_type_native)
end
|
.normalize_code(code, length) ⇒ Object
63
64
65
66
67
|
# File 'lib/stellar/asset.rb', line 63
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
41
42
43
44
45
46
47
48
49
50
|
# File 'lib/stellar/asset.rb', line 41
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
36
37
38
39
|
# File 'lib/stellar/asset.rb', line 36
def inspect
label = switch.to_s
"#<Stellar::Asset #{to_s}>"
end
|
#issuer ⇒ Object
52
53
54
55
56
57
58
59
60
61
|
# File 'lib/stellar/asset.rb', line 52
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
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
# File 'lib/stellar/asset.rb', line 21
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
|