Class: Multichain::Client
- Inherits:
-
Object
- Object
- Multichain::Client
show all
- Defined in:
- lib/multichain/client.rb
Instance Method Summary
collapse
Constructor Details
#initialize ⇒ Client
Returns a new instance of Client.
4
5
6
7
8
9
|
# File 'lib/multichain/client.rb', line 4
def initialize
@username = config['rpc']['user']
@password = config['rpc']['password']
@host = config['rpc']['host']
@port = config['rpc']['port']
end
|
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(sym, params = []) ⇒ Object
100
101
102
103
|
# File 'lib/multichain/client.rb', line 100
def method_missing(sym, params = [])
request = build_request(sym.to_s, params)
send_request(request)
end
|
Instance Method Details
#asset ⇒ Object
36
37
38
|
# File 'lib/multichain/client.rb', line 36
def asset
config['asset']
end
|
#auth ⇒ Object
11
12
13
|
# File 'lib/multichain/client.rb', line 11
def auth
"#{@username}:#{@password}"
end
|
#config ⇒ Object
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
# File 'lib/multichain/client.rb', line 19
def config
config_file = "#{ENV['HOME']}/.multichain/config.yml"
config_file = 'spec/support/fixtures/config.yml' if ENV['TEST']
@config ||= begin
c = YAML.load_file config_file
if ENV['TEST']
c['rpc'] = {}
c['rpc']['user'] = ENV['RPC_USER']
c['rpc']['password'] = ENV['RPC_PASSWORD']
c['rpc']['host'] = ENV['RPC_HOST']
c['rpc']['port'] = ENV['RPC_PORT']
end
c
end
end
|
#send_asset(recipient, amount) ⇒ Object
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
# File 'lib/multichain/client.rb', line 44
def send_asset recipient, amount
params = [
wallets.fetch(recipient),
asset,
amount
]
s = sendassettoaddress params
{
recipient: recipient,
asset: asset,
amount: amount,
id: s['result']
}
end
|
#send_asset_with_data(recipient, amount, data) ⇒ Object
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
# File 'lib/multichain/client.rb', line 61
def send_asset_with_data recipient, amount, data
params = [
wallets.fetch(recipient),
{asset => amount},
data
]
s = sendwithmetadata params
{
recipient: recipient,
asset: asset,
amount: amount,
data: data,
id: s['result']
}
end
|
#send_url(recipient, url) ⇒ Object
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
|
# File 'lib/multichain/client.rb', line 79
def send_url recipient, url
hex = Encoder.hexify url
params = [
wallets.fetch(recipient),
{asset => 0},
hex
]
s = sendwithmetadata params
data = Encoder. Encoder.decode hex
{
recipient: recipient,
url: url,
hash: data[:hash],
timestamp: data[:timestamp],
hex: hex,
id: s['result']
}
end
|
#url ⇒ Object
15
16
17
|
# File 'lib/multichain/client.rb', line 15
def url
"http://#{auth}@#{@host}:#{@port}"
end
|
#wallets ⇒ Object
40
41
42
|
# File 'lib/multichain/client.rb', line 40
def wallets
@wallets ||= Wallets.new
end
|