nanook 0.7.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (202) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -1
  3. data/CHANGELOG.md +26 -0
  4. data/Gemfile.lock +2 -2
  5. data/README.md +18 -7
  6. data/Rakefile +18 -0
  7. data/docs/0.7.0/apple-touch-icon.png +0 -0
  8. data/docs/0.7.0/classes/Nanook.html +572 -0
  9. data/docs/0.7.0/classes/Nanook/Account.html +909 -0
  10. data/docs/0.7.0/classes/Nanook/Block.html +717 -0
  11. data/docs/0.7.0/classes/Nanook/Error.html +84 -0
  12. data/docs/0.7.0/classes/Nanook/Key.html +253 -0
  13. data/docs/0.7.0/classes/Nanook/Node.html +657 -0
  14. data/docs/0.7.0/classes/Nanook/Rpc.html +247 -0
  15. data/docs/0.7.0/classes/Nanook/Util.html +197 -0
  16. data/docs/0.7.0/classes/Nanook/Wallet.html +986 -0
  17. data/docs/0.7.0/classes/Nanook/WalletAccount.html +446 -0
  18. data/docs/0.7.0/classes/Nanook/WorkPeer.html +294 -0
  19. data/docs/0.7.0/created.rid +14 -0
  20. data/docs/0.7.0/css/github.css +123 -0
  21. data/docs/0.7.0/css/main.css +374 -0
  22. data/docs/0.7.0/css/panel.css +360 -0
  23. data/docs/0.7.0/css/reset.css +48 -0
  24. data/docs/0.7.0/favicon.ico +0 -0
  25. data/docs/0.7.0/files/README_md.html +418 -0
  26. data/docs/0.7.0/files/lib/nanook/account_rb.html +89 -0
  27. data/docs/0.7.0/files/lib/nanook/block_rb.html +89 -0
  28. data/docs/0.7.0/files/lib/nanook/error_rb.html +89 -0
  29. data/docs/0.7.0/files/lib/nanook/key_rb.html +89 -0
  30. data/docs/0.7.0/files/lib/nanook/node_rb.html +89 -0
  31. data/docs/0.7.0/files/lib/nanook/rpc_rb.html +99 -0
  32. data/docs/0.7.0/files/lib/nanook/util_rb.html +89 -0
  33. data/docs/0.7.0/files/lib/nanook/version_rb.html +84 -0
  34. data/docs/0.7.0/files/lib/nanook/wallet_account_rb.html +89 -0
  35. data/docs/0.7.0/files/lib/nanook/wallet_rb.html +89 -0
  36. data/docs/0.7.0/files/lib/nanook/work_peer_rb.html +89 -0
  37. data/docs/0.7.0/files/lib/nanook_rb.html +94 -0
  38. data/docs/0.7.0/i/arrow-down.svg +8 -0
  39. data/docs/0.7.0/i/arrow-right.svg +8 -0
  40. data/docs/0.7.0/i/search.svg +12 -0
  41. data/docs/0.7.0/i/tree_bg.svg +8 -0
  42. data/docs/0.7.0/index.html +11 -0
  43. data/docs/0.7.0/js/highlight.pack.js +1 -0
  44. data/docs/0.7.0/js/jquery-1.3.2.min.js +19 -0
  45. data/docs/0.7.0/js/main.js +25 -0
  46. data/docs/0.7.0/js/navigation.js +142 -0
  47. data/docs/0.7.0/js/search_index.js +1 -0
  48. data/docs/0.7.0/js/searchdoc.js +465 -0
  49. data/docs/0.7.0/js/searcher.js +229 -0
  50. data/docs/0.7.0/panel/index.html +47 -0
  51. data/docs/0.7.0/panel/links.html +32 -0
  52. data/docs/0.7.0/panel/tree.js +1 -0
  53. data/docs/0.8.0/apple-touch-icon.png +0 -0
  54. data/docs/0.8.0/classes/Nanook.html +621 -0
  55. data/docs/0.8.0/classes/Nanook/Account.html +971 -0
  56. data/docs/0.8.0/classes/Nanook/Block.html +759 -0
  57. data/docs/0.8.0/classes/Nanook/Error.html +84 -0
  58. data/docs/0.8.0/classes/Nanook/Key.html +295 -0
  59. data/docs/0.8.0/classes/Nanook/Node.html +657 -0
  60. data/docs/0.8.0/classes/Nanook/Rpc.html +247 -0
  61. data/docs/0.8.0/classes/Nanook/Util.html +264 -0
  62. data/docs/0.8.0/classes/Nanook/Wallet.html +1056 -0
  63. data/docs/0.8.0/classes/Nanook/WalletAccount.html +582 -0
  64. data/docs/0.8.0/classes/Nanook/WorkPeer.html +294 -0
  65. data/docs/0.8.0/created.rid +14 -0
  66. data/docs/0.8.0/css/github.css +123 -0
  67. data/docs/0.8.0/css/main.css +374 -0
  68. data/docs/0.8.0/css/panel.css +360 -0
  69. data/docs/0.8.0/css/reset.css +48 -0
  70. data/docs/0.8.0/favicon.ico +0 -0
  71. data/docs/0.8.0/files/README_md.html +423 -0
  72. data/docs/0.8.0/files/lib/nanook/account_rb.html +89 -0
  73. data/docs/0.8.0/files/lib/nanook/block_rb.html +89 -0
  74. data/docs/0.8.0/files/lib/nanook/error_rb.html +89 -0
  75. data/docs/0.8.0/files/lib/nanook/key_rb.html +89 -0
  76. data/docs/0.8.0/files/lib/nanook/node_rb.html +89 -0
  77. data/docs/0.8.0/files/lib/nanook/rpc_rb.html +99 -0
  78. data/docs/0.8.0/files/lib/nanook/util_rb.html +97 -0
  79. data/docs/0.8.0/files/lib/nanook/version_rb.html +84 -0
  80. data/docs/0.8.0/files/lib/nanook/wallet_account_rb.html +89 -0
  81. data/docs/0.8.0/files/lib/nanook/wallet_rb.html +89 -0
  82. data/docs/0.8.0/files/lib/nanook/work_peer_rb.html +89 -0
  83. data/docs/0.8.0/files/lib/nanook_rb.html +94 -0
  84. data/docs/0.8.0/i/arrow-down.svg +8 -0
  85. data/docs/0.8.0/i/arrow-right.svg +8 -0
  86. data/docs/0.8.0/i/search.svg +12 -0
  87. data/docs/0.8.0/i/tree_bg.svg +8 -0
  88. data/docs/0.8.0/index.html +11 -0
  89. data/docs/0.8.0/js/highlight.pack.js +1 -0
  90. data/docs/0.8.0/js/jquery-1.3.2.min.js +19 -0
  91. data/docs/0.8.0/js/main.js +25 -0
  92. data/docs/0.8.0/js/navigation.js +142 -0
  93. data/docs/0.8.0/js/search_index.js +1 -0
  94. data/docs/0.8.0/js/searchdoc.js +465 -0
  95. data/docs/0.8.0/js/searcher.js +229 -0
  96. data/docs/0.8.0/panel/index.html +47 -0
  97. data/docs/0.8.0/panel/links.html +32 -0
  98. data/docs/0.8.0/panel/tree.js +1 -0
  99. data/docs/1.0.0/apple-touch-icon.png +0 -0
  100. data/docs/1.0.0/classes/Nanook.html +621 -0
  101. data/docs/1.0.0/classes/Nanook/Account.html +971 -0
  102. data/docs/1.0.0/classes/Nanook/Block.html +759 -0
  103. data/docs/1.0.0/classes/Nanook/Error.html +84 -0
  104. data/docs/1.0.0/classes/Nanook/Key.html +295 -0
  105. data/docs/1.0.0/classes/Nanook/Node.html +657 -0
  106. data/docs/1.0.0/classes/Nanook/Rpc.html +247 -0
  107. data/docs/1.0.0/classes/Nanook/Util.html +264 -0
  108. data/docs/1.0.0/classes/Nanook/Wallet.html +1056 -0
  109. data/docs/1.0.0/classes/Nanook/WalletAccount.html +582 -0
  110. data/docs/1.0.0/classes/Nanook/WorkPeer.html +294 -0
  111. data/docs/1.0.0/created.rid +14 -0
  112. data/docs/1.0.0/css/github.css +123 -0
  113. data/docs/1.0.0/css/main.css +374 -0
  114. data/docs/1.0.0/css/panel.css +360 -0
  115. data/docs/1.0.0/css/reset.css +48 -0
  116. data/docs/1.0.0/favicon.ico +0 -0
  117. data/docs/1.0.0/files/README_md.html +423 -0
  118. data/docs/1.0.0/files/lib/nanook/account_rb.html +89 -0
  119. data/docs/1.0.0/files/lib/nanook/block_rb.html +89 -0
  120. data/docs/1.0.0/files/lib/nanook/error_rb.html +89 -0
  121. data/docs/1.0.0/files/lib/nanook/key_rb.html +89 -0
  122. data/docs/1.0.0/files/lib/nanook/node_rb.html +89 -0
  123. data/docs/1.0.0/files/lib/nanook/rpc_rb.html +99 -0
  124. data/docs/1.0.0/files/lib/nanook/util_rb.html +97 -0
  125. data/docs/1.0.0/files/lib/nanook/version_rb.html +84 -0
  126. data/docs/1.0.0/files/lib/nanook/wallet_account_rb.html +89 -0
  127. data/docs/1.0.0/files/lib/nanook/wallet_rb.html +89 -0
  128. data/docs/1.0.0/files/lib/nanook/work_peer_rb.html +89 -0
  129. data/docs/1.0.0/files/lib/nanook_rb.html +94 -0
  130. data/docs/1.0.0/i/arrow-down.svg +8 -0
  131. data/docs/1.0.0/i/arrow-right.svg +8 -0
  132. data/docs/1.0.0/i/search.svg +12 -0
  133. data/docs/1.0.0/i/tree_bg.svg +8 -0
  134. data/docs/1.0.0/index.html +11 -0
  135. data/docs/1.0.0/js/highlight.pack.js +1 -0
  136. data/docs/1.0.0/js/jquery-1.3.2.min.js +19 -0
  137. data/docs/1.0.0/js/main.js +25 -0
  138. data/docs/1.0.0/js/navigation.js +142 -0
  139. data/docs/1.0.0/js/search_index.js +1 -0
  140. data/docs/1.0.0/js/searchdoc.js +465 -0
  141. data/docs/1.0.0/js/searcher.js +229 -0
  142. data/docs/1.0.0/panel/index.html +47 -0
  143. data/docs/1.0.0/panel/links.html +32 -0
  144. data/docs/1.0.0/panel/tree.js +1 -0
  145. data/docs/apple-touch-icon.png +0 -0
  146. data/docs/classes/Nanook.html +572 -0
  147. data/docs/classes/Nanook/Account.html +907 -0
  148. data/docs/classes/Nanook/Block.html +717 -0
  149. data/docs/classes/Nanook/Error.html +84 -0
  150. data/docs/classes/Nanook/Key.html +253 -0
  151. data/docs/classes/Nanook/Node.html +657 -0
  152. data/docs/classes/Nanook/Rpc.html +247 -0
  153. data/docs/classes/Nanook/Util.html +197 -0
  154. data/docs/classes/Nanook/Wallet.html +778 -0
  155. data/docs/classes/Nanook/WalletAccount.html +447 -0
  156. data/docs/classes/Nanook/WorkPeer.html +294 -0
  157. data/docs/created.rid +14 -0
  158. data/docs/css/github.css +123 -0
  159. data/docs/css/main.css +374 -0
  160. data/docs/css/panel.css +360 -0
  161. data/docs/css/reset.css +48 -0
  162. data/docs/favicon.ico +0 -0
  163. data/docs/files/README_md.html +408 -0
  164. data/docs/files/lib/nanook/account_rb.html +89 -0
  165. data/docs/files/lib/nanook/block_rb.html +89 -0
  166. data/docs/files/lib/nanook/error_rb.html +89 -0
  167. data/docs/files/lib/nanook/key_rb.html +89 -0
  168. data/docs/files/lib/nanook/node_rb.html +89 -0
  169. data/docs/files/lib/nanook/rpc_rb.html +99 -0
  170. data/docs/files/lib/nanook/util_rb.html +89 -0
  171. data/docs/files/lib/nanook/version_rb.html +84 -0
  172. data/docs/files/lib/nanook/wallet_account_rb.html +89 -0
  173. data/docs/files/lib/nanook/wallet_rb.html +89 -0
  174. data/docs/files/lib/nanook/work_peer_rb.html +89 -0
  175. data/docs/files/lib/nanook_rb.html +94 -0
  176. data/docs/i/arrow-down.svg +8 -0
  177. data/docs/i/arrow-right.svg +8 -0
  178. data/docs/i/search.svg +12 -0
  179. data/docs/i/tree_bg.svg +8 -0
  180. data/docs/index.html +11 -0
  181. data/docs/js/highlight.pack.js +1 -0
  182. data/docs/js/jquery-1.3.2.min.js +19 -0
  183. data/docs/js/main.js +25 -0
  184. data/docs/js/navigation.js +142 -0
  185. data/docs/js/search_index.js +1 -0
  186. data/docs/js/searchdoc.js +465 -0
  187. data/docs/js/searcher.js +229 -0
  188. data/docs/panel/index.html +47 -0
  189. data/docs/panel/links.html +32 -0
  190. data/docs/panel/tree.js +1 -0
  191. data/lib/nanook.rb +40 -4
  192. data/lib/nanook/account.rb +250 -8
  193. data/lib/nanook/block.rb +25 -2
  194. data/lib/nanook/key.rb +10 -2
  195. data/lib/nanook/node.rb +4 -0
  196. data/lib/nanook/rpc.rb +5 -1
  197. data/lib/nanook/util.rb +9 -1
  198. data/lib/nanook/version.rb +1 -1
  199. data/lib/nanook/wallet.rb +275 -14
  200. data/lib/nanook/wallet_account.rb +63 -11
  201. data/lib/nanook/work_peer.rb +4 -0
  202. metadata +188 -3
@@ -0,0 +1,247 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <title>Nanook::Rpc</title>
5
+ <meta charset="UTF-8" />
6
+ <link rel="stylesheet" href="../../css/reset.css" type="text/css" media="screen" />
7
+ <link rel="stylesheet" href="../../css/main.css" type="text/css" media="screen" />
8
+ <link rel="stylesheet" href="../../css/github.css" type="text/css" media="screen" />
9
+ <script src="../../js/jquery-1.3.2.min.js" type="text/javascript" charset="utf-8"></script>
10
+ <script src="../../js/main.js" type="text/javascript" charset="utf-8"></script>
11
+ <script src="../../js/highlight.pack.js" type="text/javascript" charset="utf-8"></script>
12
+
13
+
14
+ <meta property="og:title" value="Nanook::Rpc">
15
+
16
+
17
+
18
+ <meta name="keywords" content="Nanook::Rpc class">
19
+
20
+ <meta name="keywords" content="new, call">
21
+
22
+ </head>
23
+
24
+ <body>
25
+ <div class="banner">
26
+
27
+ <h1>
28
+ <span class="type">Class</span>
29
+ Nanook::Rpc
30
+
31
+ <span class="parent">&lt;
32
+
33
+ Object
34
+
35
+ </span>
36
+
37
+ </h1>
38
+ <ul class="files">
39
+
40
+ <li><a href="../../files/lib/nanook/rpc_rb.html">lib/nanook/rpc.rb</a></li>
41
+
42
+ </ul>
43
+ </div>
44
+ <div id="bodyContent">
45
+ <div id="content">
46
+
47
+
48
+
49
+
50
+
51
+
52
+
53
+
54
+
55
+
56
+
57
+
58
+
59
+
60
+ <!-- Method ref -->
61
+ <div class="sectiontitle">Methods</div>
62
+ <dl class="methods">
63
+
64
+ <dt>C</dt>
65
+ <dd>
66
+ <ul>
67
+
68
+
69
+ <li>
70
+ <a href="#method-i-call">call</a>
71
+ </li>
72
+
73
+ </ul>
74
+ </dd>
75
+
76
+ <dt>N</dt>
77
+ <dd>
78
+ <ul>
79
+
80
+
81
+ <li>
82
+ <a href="#method-c-new">new</a>
83
+ </li>
84
+
85
+ </ul>
86
+ </dd>
87
+
88
+ </dl>
89
+
90
+
91
+
92
+
93
+
94
+
95
+
96
+
97
+
98
+
99
+
100
+
101
+
102
+ <!-- Section constants -->
103
+ <div class="sectiontitle">Constants</div>
104
+ <table border='0' cellpadding='5'>
105
+
106
+ <tr valign='top'>
107
+ <td class="attr-name">DEFAULT_TIMEOUT</td>
108
+ <td>=</td>
109
+ <td class="attr-value">500</td>
110
+ </tr>
111
+
112
+ <tr valign='top'>
113
+ <td>&nbsp;</td>
114
+ <td colspan="2" class="attr-desc"></td>
115
+ </tr>
116
+
117
+
118
+ <tr valign='top'>
119
+ <td class="attr-name">DEFAULT_URI</td>
120
+ <td>=</td>
121
+ <td class="attr-value">&quot;http://localhost:7076&quot;</td>
122
+ </tr>
123
+
124
+ <tr valign='top'>
125
+ <td>&nbsp;</td>
126
+ <td colspan="2" class="attr-desc"></td>
127
+ </tr>
128
+
129
+
130
+ </table>
131
+
132
+
133
+
134
+
135
+
136
+
137
+ <!-- Methods -->
138
+
139
+ <div class="sectiontitle">Class Public methods</div>
140
+
141
+ <div class="method">
142
+ <div class="title method-title" id="method-c-new">
143
+
144
+ <b>new</b>(uri=DEFAULT_URI, timeout:DEFAULT_TIMEOUT)
145
+
146
+ <a href="../../classes/Nanook/Rpc.html#method-c-new" name="method-c-new" class="permalink">Link</a>
147
+ </div>
148
+
149
+
150
+ <div class="description">
151
+
152
+ </div>
153
+
154
+
155
+
156
+
157
+
158
+
159
+
160
+
161
+ <div class="sourcecode">
162
+
163
+ <p class="source-link">
164
+ Source:
165
+ <a href="javascript:toggleSource('method-c-new_source')" id="l_method-c-new_source">show</a>
166
+
167
+ </p>
168
+ <div id="method-c-new_source" class="dyn-source">
169
+ <pre><span class="ruby-comment"># File lib/nanook/rpc.rb, line 10</span>
170
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">initialize</span>(<span class="ruby-identifier">uri</span>=<span class="ruby-constant">DEFAULT_URI</span>, <span class="ruby-value">timeout:</span><span class="ruby-constant">DEFAULT_TIMEOUT</span>)
171
+ <span class="ruby-identifier">rpc_server</span> = <span class="ruby-constant">URI</span>(<span class="ruby-identifier">uri</span>)
172
+
173
+ <span class="ruby-keyword">unless</span> [<span class="ruby-string">&#39;http&#39;</span>, <span class="ruby-string">&#39;https&#39;</span>].<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">rpc_server</span>.<span class="ruby-identifier">scheme</span>)
174
+ <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>.<span class="ruby-identifier">new</span>(<span class="ruby-node">&quot;URI must have http or https in it. Was given: #{uri}&quot;</span>)
175
+ <span class="ruby-keyword">end</span>
176
+
177
+ <span class="ruby-ivar">@http</span> = <span class="ruby-constant">Net</span><span class="ruby-operator">::</span><span class="ruby-constant">HTTP</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">rpc_server</span>.<span class="ruby-identifier">host</span>, <span class="ruby-identifier">rpc_server</span>.<span class="ruby-identifier">port</span>)
178
+ <span class="ruby-ivar">@http</span>.<span class="ruby-identifier">read_timeout</span> = <span class="ruby-identifier">timeout</span>
179
+ <span class="ruby-ivar">@request</span> = <span class="ruby-constant">Net</span><span class="ruby-operator">::</span><span class="ruby-constant">HTTP</span><span class="ruby-operator">::</span><span class="ruby-constant">Post</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">rpc_server</span>.<span class="ruby-identifier">request_uri</span>, {<span class="ruby-string">&quot;user-agent&quot;</span> <span class="ruby-operator">=&gt;</span> <span class="ruby-string">&quot;Ruby nanook gem&quot;</span>})
180
+ <span class="ruby-ivar">@request</span>.<span class="ruby-identifier">content_type</span> = <span class="ruby-string">&quot;application/json&quot;</span>
181
+ <span class="ruby-keyword">end</span></pre>
182
+ </div>
183
+ </div>
184
+
185
+ </div>
186
+
187
+
188
+
189
+ <div class="sectiontitle">Instance Public methods</div>
190
+
191
+ <div class="method">
192
+ <div class="title method-title" id="method-i-call">
193
+
194
+ <b>call</b>(action, params={})
195
+
196
+ <a href="../../classes/Nanook/Rpc.html#method-i-call" name="method-i-call" class="permalink">Link</a>
197
+ </div>
198
+
199
+
200
+ <div class="description">
201
+
202
+ </div>
203
+
204
+
205
+
206
+
207
+
208
+
209
+
210
+
211
+ <div class="sourcecode">
212
+
213
+ <p class="source-link">
214
+ Source:
215
+ <a href="javascript:toggleSource('method-i-call_source')" id="l_method-i-call_source">show</a>
216
+
217
+ </p>
218
+ <div id="method-i-call_source" class="dyn-source">
219
+ <pre><span class="ruby-comment"># File lib/nanook/rpc.rb, line 23</span>
220
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">call</span>(<span class="ruby-identifier">action</span>, <span class="ruby-identifier">params</span>={})
221
+ <span class="ruby-comment"># Stringify param values</span>
222
+ <span class="ruby-identifier">params</span> = <span class="ruby-constant">Hash</span>[<span class="ruby-identifier">params</span>.<span class="ruby-identifier">map</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">k</span>, <span class="ruby-identifier">v</span><span class="ruby-operator">|</span> [<span class="ruby-identifier">k</span>, <span class="ruby-identifier">v</span>.<span class="ruby-identifier">to_s</span>] }]
223
+
224
+ <span class="ruby-ivar">@request</span>.<span class="ruby-identifier">body</span> = { <span class="ruby-value">action:</span> <span class="ruby-identifier">action</span> }.<span class="ruby-identifier">merge</span>(<span class="ruby-identifier">params</span>).<span class="ruby-identifier">to_json</span>
225
+
226
+ <span class="ruby-identifier">response</span> = <span class="ruby-ivar">@http</span>.<span class="ruby-identifier">request</span>(<span class="ruby-ivar">@request</span>)
227
+
228
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">response</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Net</span><span class="ruby-operator">::</span><span class="ruby-constant">HTTPSuccess</span>)
229
+ <span class="ruby-identifier">hash</span> = <span class="ruby-constant">JSON</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">response</span>.<span class="ruby-identifier">body</span>)
230
+ <span class="ruby-identifier">process_hash</span>(<span class="ruby-identifier">hash</span>)
231
+ <span class="ruby-keyword">else</span>
232
+ <span class="ruby-identifier">raise</span> <span class="ruby-constant">Nanook</span><span class="ruby-operator">::</span><span class="ruby-constant">Error</span>.<span class="ruby-identifier">new</span>(<span class="ruby-node">&quot;Encountered net/http error #{response.code}: #{response.class.name}&quot;</span>)
233
+ <span class="ruby-keyword">end</span>
234
+ <span class="ruby-keyword">end</span></pre>
235
+ </div>
236
+ </div>
237
+
238
+ </div>
239
+
240
+
241
+
242
+
243
+ </div>
244
+
245
+ </div>
246
+ </body>
247
+ </html>
@@ -0,0 +1,197 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <title>Nanook::Util</title>
5
+ <meta charset="UTF-8" />
6
+ <link rel="stylesheet" href="../../css/reset.css" type="text/css" media="screen" />
7
+ <link rel="stylesheet" href="../../css/main.css" type="text/css" media="screen" />
8
+ <link rel="stylesheet" href="../../css/github.css" type="text/css" media="screen" />
9
+ <script src="../../js/jquery-1.3.2.min.js" type="text/javascript" charset="utf-8"></script>
10
+ <script src="../../js/main.js" type="text/javascript" charset="utf-8"></script>
11
+ <script src="../../js/highlight.pack.js" type="text/javascript" charset="utf-8"></script>
12
+
13
+
14
+ <meta property="og:title" value="Nanook::Util">
15
+
16
+
17
+
18
+ <meta name="keywords" content="Nanook::Util class">
19
+
20
+ <meta name="keywords" content="NANO_to_raw, coerce_empty_string_to_type">
21
+
22
+ </head>
23
+
24
+ <body>
25
+ <div class="banner">
26
+
27
+ <h1>
28
+ <span class="type">Class</span>
29
+ Nanook::Util
30
+
31
+ <span class="parent">&lt;
32
+
33
+ Object
34
+
35
+ </span>
36
+
37
+ </h1>
38
+ <ul class="files">
39
+
40
+ <li><a href="../../files/lib/nanook/util_rb.html">lib/nanook/util.rb</a></li>
41
+
42
+ </ul>
43
+ </div>
44
+ <div id="bodyContent">
45
+ <div id="content">
46
+
47
+
48
+
49
+
50
+
51
+
52
+
53
+
54
+
55
+
56
+
57
+
58
+
59
+
60
+ <!-- Method ref -->
61
+ <div class="sectiontitle">Methods</div>
62
+ <dl class="methods">
63
+
64
+ <dt>N</dt>
65
+ <dd>
66
+ <ul>
67
+
68
+
69
+ <li>
70
+ <a href="#method-c-NANO_to_raw">NANO_to_raw</a>
71
+ </li>
72
+
73
+ </ul>
74
+ </dd>
75
+
76
+ <dt>C</dt>
77
+ <dd>
78
+ <ul>
79
+
80
+
81
+ <li>
82
+ <a href="#method-c-coerce_empty_string_to_type">coerce_empty_string_to_type</a>
83
+ </li>
84
+
85
+ </ul>
86
+ </dd>
87
+
88
+ </dl>
89
+
90
+
91
+
92
+
93
+
94
+
95
+
96
+
97
+
98
+
99
+
100
+
101
+
102
+
103
+
104
+
105
+
106
+
107
+ <!-- Methods -->
108
+
109
+ <div class="sectiontitle">Class Public methods</div>
110
+
111
+ <div class="method">
112
+ <div class="title method-title" id="method-c-NANO_to_raw">
113
+
114
+ <b>NANO_to_raw</b>(nano)
115
+
116
+ <a href="../../classes/Nanook/Util.html#method-c-NANO_to_raw" name="method-c-NANO_to_raw" class="permalink">Link</a>
117
+ </div>
118
+
119
+
120
+ <div class="description">
121
+
122
+ </div>
123
+
124
+
125
+
126
+
127
+
128
+
129
+
130
+
131
+ <div class="sourcecode">
132
+
133
+ <p class="source-link">
134
+ Source:
135
+ <a href="javascript:toggleSource('method-c-NANO_to_raw_source')" id="l_method-c-NANO_to_raw_source">show</a>
136
+
137
+ </p>
138
+ <div id="method-c-NANO_to_raw_source" class="dyn-source">
139
+ <pre><span class="ruby-comment"># File lib/nanook/util.rb, line 4</span>
140
+ <span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-constant">NANO_to_raw</span>(<span class="ruby-identifier ruby-title">nano</span>)
141
+ <span class="ruby-identifier">nano</span> <span class="ruby-operator">*</span> (<span class="ruby-value">10</span><span class="ruby-operator">**</span><span class="ruby-value">30</span>)
142
+ <span class="ruby-keyword">end</span></pre>
143
+ </div>
144
+ </div>
145
+
146
+ </div>
147
+
148
+ <div class="method">
149
+ <div class="title method-title" id="method-c-coerce_empty_string_to_type">
150
+
151
+ <b>coerce_empty_string_to_type</b>(response, type)
152
+
153
+ <a href="../../classes/Nanook/Util.html#method-c-coerce_empty_string_to_type" name="method-c-coerce_empty_string_to_type" class="permalink">Link</a>
154
+ </div>
155
+
156
+
157
+ <div class="description">
158
+
159
+ </div>
160
+
161
+
162
+
163
+
164
+
165
+
166
+
167
+
168
+ <div class="sourcecode">
169
+
170
+ <p class="source-link">
171
+ Source:
172
+ <a href="javascript:toggleSource('method-c-coerce_empty_string_to_type_source')" id="l_method-c-coerce_empty_string_to_type_source">show</a>
173
+
174
+ </p>
175
+ <div id="method-c-coerce_empty_string_to_type_source" class="dyn-source">
176
+ <pre><span class="ruby-comment"># File lib/nanook/util.rb, line 8</span>
177
+ <span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier ruby-title">coerce_empty_string_to_type</span>(<span class="ruby-identifier">response</span>, <span class="ruby-identifier">type</span>)
178
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">response</span> <span class="ruby-operator">==</span> <span class="ruby-string">&quot;&quot;</span>
179
+ <span class="ruby-keyword">return</span> <span class="ruby-identifier">type</span>.<span class="ruby-identifier">new</span>
180
+ <span class="ruby-keyword">end</span>
181
+
182
+ <span class="ruby-identifier">response</span>
183
+ <span class="ruby-keyword">end</span></pre>
184
+ </div>
185
+ </div>
186
+
187
+ </div>
188
+
189
+
190
+
191
+
192
+
193
+ </div>
194
+
195
+ </div>
196
+ </body>
197
+ </html>
@@ -0,0 +1,986 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <title>Nanook::Wallet</title>
5
+ <meta charset="UTF-8" />
6
+ <link rel="stylesheet" href="../../css/reset.css" type="text/css" media="screen" />
7
+ <link rel="stylesheet" href="../../css/main.css" type="text/css" media="screen" />
8
+ <link rel="stylesheet" href="../../css/github.css" type="text/css" media="screen" />
9
+ <script src="../../js/jquery-1.3.2.min.js" type="text/javascript" charset="utf-8"></script>
10
+ <script src="../../js/main.js" type="text/javascript" charset="utf-8"></script>
11
+ <script src="../../js/highlight.pack.js" type="text/javascript" charset="utf-8"></script>
12
+
13
+
14
+ <meta property="og:title" value="Nanook::Wallet">
15
+
16
+
17
+
18
+ <meta name="description" content="The Nanook::Wallet class lets you manage your nano wallets, as well as some account-specific things like making and receiving payments.">
19
+ <meta property="og:description" content="The Nanook::Wallet class lets you manage your nano wallets, as well as some account-specific things like making and receiving payments.">
20
+
21
+
22
+ <meta name="keywords" content="Nanook::Wallet class">
23
+
24
+ <meta name="keywords" content="new, account, accounts, balance, create, destroy, export, contains?, pay, receive, locked?, unlock, change_password">
25
+
26
+ </head>
27
+
28
+ <body>
29
+ <div class="banner">
30
+
31
+ <h1>
32
+ <span class="type">Class</span>
33
+ Nanook::Wallet
34
+
35
+ <span class="parent">&lt;
36
+
37
+ Object
38
+
39
+ </span>
40
+
41
+ </h1>
42
+ <ul class="files">
43
+
44
+ <li><a href="../../files/lib/nanook/wallet_rb.html">lib/nanook/wallet.rb</a></li>
45
+
46
+ </ul>
47
+ </div>
48
+ <div id="bodyContent">
49
+ <div id="content">
50
+
51
+ <div class="description">
52
+
53
+ <p>The <code>Nanook::Wallet</code> class lets you manage your nano wallets, as
54
+ well as some account-specific things like making and receiving payments.</p>
55
+
56
+ <p>Your wallets each have a seed, which is a 32-byte uppercase hex string that
57
+ looks like this:</p>
58
+
59
+ <pre><code>000D1BAEC8EC208142C99059B393051BAC8380F9B5A2E6B2489A277D81789F3F
60
+ </code></pre>
61
+
62
+ <p>You can think of this string as your API key to the nano network. The
63
+ person who knows it can do all read and write actions against the wallet
64
+ and all accounts inside the wallet from anywhere on the nano network, not
65
+ just on the node you created the wallet on. <strong>Make sure this key is
66
+ always secret and safe</strong>. Do not commit your seed into source
67
+ control.</p>
68
+
69
+ <h3 id="class-Nanook::Wallet-label-Initializing">Initializing</h3>
70
+
71
+ <p>Initialize this class through the convenient <a
72
+ href="../Nanook.html#method-i-wallet">Nanook#wallet</a> method:</p>
73
+
74
+ <pre><code>nanook = Nanook.new
75
+ wallet = nanook.wallet(wallet_seed)
76
+ </code></pre>
77
+
78
+ <p>Or compose the longhand way like this:</p>
79
+
80
+ <pre><code>rpc_conn = Nanook::Rpc.new
81
+ wallet = Nanook::Wallet.new(rpc_conn, wallet_seed)
82
+ </code></pre>
83
+
84
+ </div>
85
+
86
+
87
+
88
+
89
+
90
+
91
+
92
+
93
+
94
+
95
+
96
+
97
+
98
+
99
+ <!-- Method ref -->
100
+ <div class="sectiontitle">Methods</div>
101
+ <dl class="methods">
102
+
103
+ <dt>A</dt>
104
+ <dd>
105
+ <ul>
106
+
107
+
108
+ <li>
109
+ <a href="#method-i-account">account</a>,
110
+ </li>
111
+
112
+
113
+ <li>
114
+ <a href="#method-i-accounts">accounts</a>
115
+ </li>
116
+
117
+ </ul>
118
+ </dd>
119
+
120
+ <dt>B</dt>
121
+ <dd>
122
+ <ul>
123
+
124
+
125
+ <li>
126
+ <a href="#method-i-balance">balance</a>
127
+ </li>
128
+
129
+ </ul>
130
+ </dd>
131
+
132
+ <dt>C</dt>
133
+ <dd>
134
+ <ul>
135
+
136
+
137
+ <li>
138
+ <a href="#method-i-change_password">change_password</a>,
139
+ </li>
140
+
141
+
142
+ <li>
143
+ <a href="#method-i-contains-3F">contains?</a>,
144
+ </li>
145
+
146
+
147
+ <li>
148
+ <a href="#method-i-create">create</a>
149
+ </li>
150
+
151
+ </ul>
152
+ </dd>
153
+
154
+ <dt>D</dt>
155
+ <dd>
156
+ <ul>
157
+
158
+
159
+ <li>
160
+ <a href="#method-i-destroy">destroy</a>
161
+ </li>
162
+
163
+ </ul>
164
+ </dd>
165
+
166
+ <dt>E</dt>
167
+ <dd>
168
+ <ul>
169
+
170
+
171
+ <li>
172
+ <a href="#method-i-export">export</a>
173
+ </li>
174
+
175
+ </ul>
176
+ </dd>
177
+
178
+ <dt>L</dt>
179
+ <dd>
180
+ <ul>
181
+
182
+
183
+ <li>
184
+ <a href="#method-i-locked-3F">locked?</a>
185
+ </li>
186
+
187
+ </ul>
188
+ </dd>
189
+
190
+ <dt>N</dt>
191
+ <dd>
192
+ <ul>
193
+
194
+
195
+ <li>
196
+ <a href="#method-c-new">new</a>
197
+ </li>
198
+
199
+ </ul>
200
+ </dd>
201
+
202
+ <dt>P</dt>
203
+ <dd>
204
+ <ul>
205
+
206
+
207
+ <li>
208
+ <a href="#method-i-pay">pay</a>
209
+ </li>
210
+
211
+ </ul>
212
+ </dd>
213
+
214
+ <dt>R</dt>
215
+ <dd>
216
+ <ul>
217
+
218
+
219
+ <li>
220
+ <a href="#method-i-receive">receive</a>
221
+ </li>
222
+
223
+ </ul>
224
+ </dd>
225
+
226
+ <dt>U</dt>
227
+ <dd>
228
+ <ul>
229
+
230
+
231
+ <li>
232
+ <a href="#method-i-unlock">unlock</a>
233
+ </li>
234
+
235
+ </ul>
236
+ </dd>
237
+
238
+ </dl>
239
+
240
+
241
+
242
+
243
+
244
+
245
+
246
+
247
+
248
+
249
+
250
+
251
+
252
+
253
+
254
+
255
+
256
+
257
+ <!-- Methods -->
258
+
259
+ <div class="sectiontitle">Class Public methods</div>
260
+
261
+ <div class="method">
262
+ <div class="title method-title" id="method-c-new">
263
+
264
+ <b>new</b>(rpc, wallet)
265
+
266
+ <a href="../../classes/Nanook/Wallet.html#method-c-new" name="method-c-new" class="permalink">Link</a>
267
+ </div>
268
+
269
+
270
+ <div class="description">
271
+
272
+ </div>
273
+
274
+
275
+
276
+
277
+
278
+
279
+
280
+
281
+ <div class="sourcecode">
282
+
283
+ <p class="source-link">
284
+ Source:
285
+ <a href="javascript:toggleSource('method-c-new_source')" id="l_method-c-new_source">show</a>
286
+
287
+ </p>
288
+ <div id="method-c-new_source" class="dyn-source">
289
+ <pre><span class="ruby-comment"># File lib/nanook/wallet.rb, line 31</span>
290
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">initialize</span>(<span class="ruby-identifier">rpc</span>, <span class="ruby-identifier">wallet</span>)
291
+ <span class="ruby-ivar">@rpc</span> = <span class="ruby-identifier">rpc</span>
292
+ <span class="ruby-ivar">@wallet</span> = <span class="ruby-identifier">wallet</span>
293
+ <span class="ruby-keyword">end</span></pre>
294
+ </div>
295
+ </div>
296
+
297
+ </div>
298
+
299
+
300
+
301
+ <div class="sectiontitle">Instance Public methods</div>
302
+
303
+ <div class="method">
304
+ <div class="title method-title" id="method-i-account">
305
+
306
+ <b>account</b>(account=nil)
307
+
308
+ <a href="../../classes/Nanook/Wallet.html#method-i-account" name="method-i-account" class="permalink">Link</a>
309
+ </div>
310
+
311
+
312
+ <div class="description">
313
+ <p>A convenient method that returns an account in your wallet, allowing you to
314
+ perform all the actions in <a
315
+ href="WalletAccount.html">Nanook::WalletAccount</a> on it.</p>
316
+
317
+ <pre><code>wallet.account(&quot;xrb_...&quot;) #=&gt; Nanook::WalletAccount instance
318
+ </code></pre>
319
+
320
+ <p>See <a href="WalletAccount.html">Nanook::WalletAccount</a>.</p>
321
+
322
+ <h4 id="method-i-account-label-Arguments">Arguments</h4>
323
+ <table class="rdoc-list label-list"><tbody><tr><td class='label'><code>account</code></td><td>
324
+ <p>Optional String of an account (starting with
325
+ <code>&quot;xrb...&quot;</code>) to start working with. Must be an account
326
+ within the wallet. When no account is given, the instance returned only
327
+ allows you to call <code>create</code> on it, to create a new account.
328
+ Otherwise, you must pass an account string for all other methods.</p>
329
+ </td></tr></tbody></table>
330
+
331
+ <h4 id="method-i-account-label-Examples">Examples</h4>
332
+
333
+ <pre><code>wallet.account.create # Creates an account in the wallet and returns a Nanook::WalletAccount
334
+ wallet.account(account_id) # Returns a Nanook::WalletAccount for the account
335
+ </code></pre>
336
+ </div>
337
+
338
+
339
+
340
+
341
+
342
+
343
+
344
+
345
+ <div class="sourcecode">
346
+
347
+ <p class="source-link">
348
+ Source:
349
+ <a href="javascript:toggleSource('method-i-account_source')" id="l_method-i-account_source">show</a>
350
+
351
+ </p>
352
+ <div id="method-i-account_source" class="dyn-source">
353
+ <pre><span class="ruby-comment"># File lib/nanook/wallet.rb, line 55</span>
354
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">account</span>(<span class="ruby-identifier">account</span>=<span class="ruby-keyword">nil</span>)
355
+ <span class="ruby-constant">Nanook</span><span class="ruby-operator">::</span><span class="ruby-constant">WalletAccount</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@rpc</span>, <span class="ruby-ivar">@wallet</span>, <span class="ruby-identifier">account</span>)
356
+ <span class="ruby-keyword">end</span></pre>
357
+ </div>
358
+ </div>
359
+
360
+ </div>
361
+
362
+ <div class="method">
363
+ <div class="title method-title" id="method-i-accounts">
364
+
365
+ <b>accounts</b>()
366
+
367
+ <a href="../../classes/Nanook/Wallet.html#method-i-accounts" name="method-i-accounts" class="permalink">Link</a>
368
+ </div>
369
+
370
+
371
+ <div class="description">
372
+ <p>Returns an Array with Strings of all account ids in the wallet.</p>
373
+
374
+ <h4 id="method-i-accounts-label-Example+response">Example response</h4>
375
+
376
+ <pre><code>[
377
+ &quot;xrb_3e3j5tkog48pnny9dmfzj1r16pg8t1e76dz5tmac6iq689wyjfpi00000000&quot;,
378
+ &quot;xrb_1e5aqegc1jb7qe964u4adzmcezyo6o146zb8hm6dft8tkp79za3sxwjym5rx&quot;
379
+ ]
380
+ </code></pre>
381
+ </div>
382
+
383
+
384
+
385
+
386
+
387
+
388
+
389
+
390
+ <div class="sourcecode">
391
+
392
+ <p class="source-link">
393
+ Source:
394
+ <a href="javascript:toggleSource('method-i-accounts_source')" id="l_method-i-accounts_source">show</a>
395
+
396
+ </p>
397
+ <div id="method-i-accounts_source" class="dyn-source">
398
+ <pre><span class="ruby-comment"># File lib/nanook/wallet.rb, line 67</span>
399
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">accounts</span>
400
+ <span class="ruby-identifier">wallet_required!</span>
401
+ <span class="ruby-identifier">response</span> = <span class="ruby-identifier">rpc</span>(<span class="ruby-value">:account_list</span>)[<span class="ruby-value">:accounts</span>]
402
+ <span class="ruby-constant">Nanook</span><span class="ruby-operator">::</span><span class="ruby-constant">Util</span>.<span class="ruby-identifier">coerce_empty_string_to_type</span>(<span class="ruby-identifier">response</span>, <span class="ruby-constant">Array</span>)
403
+ <span class="ruby-keyword">end</span></pre>
404
+ </div>
405
+ </div>
406
+
407
+ </div>
408
+
409
+ <div class="method">
410
+ <div class="title method-title" id="method-i-balance">
411
+
412
+ <b>balance</b>(account_break_down: false)
413
+
414
+ <a href="../../classes/Nanook/Wallet.html#method-i-balance" name="method-i-balance" class="permalink">Link</a>
415
+ </div>
416
+
417
+
418
+ <div class="description">
419
+ <p>Returns a Hash containing the balance of all accounts in the wallet,
420
+ optionally breaking the balances down by account.</p>
421
+
422
+ <h4 id="method-i-balance-label-Arguments">Arguments</h4>
423
+ <table class="rdoc-list label-list"><tbody><tr><td class='label'><code>account_break_down:</code></td><td>
424
+ <p>Boolean (default is false). When <code>true</code> the response will
425
+ contain balances per account.</p>
426
+ </td></tr></tbody></table>
427
+
428
+ <h4 id="method-i-balance-label-Examples">Examples</h4>
429
+
430
+ <p>Simple use:</p>
431
+
432
+ <pre><code>wallet.balance
433
+ </code></pre>
434
+
435
+ <p>Example response:</p>
436
+
437
+ <pre><code>{
438
+ &quot;balance&quot;=&gt;5000000000000000,
439
+ &quot;pending&quot;=&gt;10000000000000
440
+ }
441
+ </code></pre>
442
+
443
+ <p>Asking for totals to be broken down by account:</p>
444
+
445
+ <pre><code>wallet.balance(account_break_down: true)
446
+ </code></pre>
447
+
448
+ <p>Example response:</p>
449
+
450
+ <pre><code>{
451
+ &quot;xrb_3e3j5tkog48pnny9dmfzj1r16pg8t1e76dz5tmac6iq689wyjfpi00000000&quot;=&gt;{
452
+ &quot;balance&quot;=&gt;2500000000000000,
453
+ &quot;pending&quot;=&gt;10000000000000
454
+ },
455
+ &quot;xrb_1e5aqegc1jb7qe964u4adzmcezyo6o146zb8hm6dft8tkp79za3sxwjym5rx&quot;=&gt;{
456
+ &quot;balance&quot;=&gt;2500000000000000,
457
+ &quot;pending&quot;=&gt;0
458
+ },
459
+ }
460
+ </code></pre>
461
+ </div>
462
+
463
+
464
+
465
+
466
+
467
+
468
+
469
+
470
+ <div class="sourcecode">
471
+
472
+ <p class="source-link">
473
+ Source:
474
+ <a href="javascript:toggleSource('method-i-balance_source')" id="l_method-i-balance_source">show</a>
475
+
476
+ </p>
477
+ <div id="method-i-balance_source" class="dyn-source">
478
+ <pre><span class="ruby-comment"># File lib/nanook/wallet.rb, line 110</span>
479
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">balance</span>(<span class="ruby-value">account_break_down:</span> <span class="ruby-keyword">false</span>)
480
+ <span class="ruby-identifier">wallet_required!</span>
481
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">account_break_down</span>
482
+ <span class="ruby-constant">Nanook</span><span class="ruby-operator">::</span><span class="ruby-constant">Util</span>.<span class="ruby-identifier">coerce_empty_string_to_type</span>(<span class="ruby-identifier">rpc</span>(<span class="ruby-value">:wallet_balances</span>)[<span class="ruby-value">:balances</span>], <span class="ruby-constant">Hash</span>)
483
+ <span class="ruby-keyword">else</span>
484
+ <span class="ruby-identifier">rpc</span>(<span class="ruby-value">:wallet_balance_total</span>)
485
+ <span class="ruby-keyword">end</span>
486
+ <span class="ruby-keyword">end</span></pre>
487
+ </div>
488
+ </div>
489
+
490
+ </div>
491
+
492
+ <div class="method">
493
+ <div class="title method-title" id="method-i-change_password">
494
+
495
+ <b>change_password</b>(password)
496
+
497
+ <a href="../../classes/Nanook/Wallet.html#method-i-change_password" name="method-i-change_password" class="permalink">Link</a>
498
+ </div>
499
+
500
+
501
+ <div class="description">
502
+ <p>Changes the password for a wallet. Returns a boolean to indicate if the
503
+ action was successful.</p>
504
+
505
+ <h4 id="method-i-change_password-label-Example+response">Example response</h4>
506
+
507
+ <pre><code>true
508
+ </code></pre>
509
+ </div>
510
+
511
+
512
+
513
+
514
+
515
+
516
+
517
+
518
+ <div class="sourcecode">
519
+
520
+ <p class="source-link">
521
+ Source:
522
+ <a href="javascript:toggleSource('method-i-change_password_source')" id="l_method-i-change_password_source">show</a>
523
+
524
+ </p>
525
+ <div id="method-i-change_password_source" class="dyn-source">
526
+ <pre><span class="ruby-comment"># File lib/nanook/wallet.rb, line 284</span>
527
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">change_password</span>(<span class="ruby-identifier">password</span>)
528
+ <span class="ruby-identifier">wallet_required!</span>
529
+ <span class="ruby-identifier">rpc</span>(<span class="ruby-value">:password_change</span>, <span class="ruby-value">password:</span> <span class="ruby-identifier">password</span>)[<span class="ruby-value">:changed</span>] <span class="ruby-operator">==</span> <span class="ruby-value">1</span>
530
+ <span class="ruby-keyword">end</span></pre>
531
+ </div>
532
+ </div>
533
+
534
+ </div>
535
+
536
+ <div class="method">
537
+ <div class="title method-title" id="method-i-contains-3F">
538
+
539
+ <b>contains?</b>(account)
540
+
541
+ <a href="../../classes/Nanook/Wallet.html#method-i-contains-3F" name="method-i-contains-3F" class="permalink">Link</a>
542
+ </div>
543
+
544
+
545
+ <div class="description">
546
+ <p>Returns boolean indicating if the wallet contains an account.</p>
547
+
548
+ <h4 id="method-i-contains-3F-label-Arguments">Arguments</h4>
549
+ <table class="rdoc-list label-list"><tbody><tr><td class='label'><code>account</code></td><td>
550
+ <p>String account id (will start with <code>&quot;xrb_...&quot;</code>)</p>
551
+ </td></tr></tbody></table>
552
+
553
+ <h4 id="method-i-contains-3F-label-Example+response">Example response</h4>
554
+
555
+ <pre><code>true
556
+ </code></pre>
557
+ </div>
558
+
559
+
560
+
561
+
562
+
563
+
564
+
565
+
566
+ <div class="sourcecode">
567
+
568
+ <p class="source-link">
569
+ Source:
570
+ <a href="javascript:toggleSource('method-i-contains-3F_source')" id="l_method-i-contains-3F_source">show</a>
571
+
572
+ </p>
573
+ <div id="method-i-contains-3F_source" class="dyn-source">
574
+ <pre><span class="ruby-comment"># File lib/nanook/wallet.rb, line 178</span>
575
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">contains?</span>(<span class="ruby-identifier">account</span>)
576
+ <span class="ruby-identifier">wallet_required!</span>
577
+ <span class="ruby-identifier">response</span> = <span class="ruby-identifier">rpc</span>(<span class="ruby-value">:wallet_contains</span>, <span class="ruby-value">account:</span> <span class="ruby-identifier">account</span>)
578
+ <span class="ruby-operator">!</span><span class="ruby-identifier">response</span>.<span class="ruby-identifier">empty?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">response</span>[<span class="ruby-value">:exists</span>] <span class="ruby-operator">==</span> <span class="ruby-value">1</span>
579
+ <span class="ruby-keyword">end</span></pre>
580
+ </div>
581
+ </div>
582
+
583
+ </div>
584
+
585
+ <div class="method">
586
+ <div class="title method-title" id="method-i-create">
587
+
588
+ <b>create</b>()
589
+
590
+ <a href="../../classes/Nanook/Wallet.html#method-i-create" name="method-i-create" class="permalink">Link</a>
591
+ </div>
592
+
593
+
594
+ <div class="description">
595
+ <p>Creates a new wallet. This is the only method in <a
596
+ href="Wallet.html">Nanook::Wallet</a> that doesn&#39;t expect a wallet seed
597
+ to be passed in as an argument.</p>
598
+
599
+ <p>To create a new wallet:</p>
600
+
601
+ <pre><code>Nanook.new.wallet.create
602
+ </code></pre>
603
+
604
+ <h4 id="method-i-create-label-Very+important">Very important</h4>
605
+
606
+ <p><strong>Please read this.</strong> The response of this method is a wallet
607
+ seed. A seed is a 32-byte uppercase hex string. You can think of this
608
+ string as your API key to the nano network. The person who knows it can do
609
+ all read and write actions against the wallet and all accounts inside the
610
+ wallet from anywhere on the nano network, not just on the node you created
611
+ the wallet on.</p>
612
+
613
+ <p>If you intend for your wallet to contain funds, then make sure that you
614
+ consider the seed that is returned as the key to your funds and store it
615
+ somewhere secret and safe. Do not transmit the seed over insecure (non-SSH
616
+ or SSL) networks or store it where it is able to be easily comprised by a
617
+ hacker, which includes your personal computer.</p>
618
+
619
+ <h4 id="method-i-create-label-Example+response-3A">Example response:</h4>
620
+
621
+ <pre><code>&quot;CC2C9846A44DB6F0363F647D12B957794AD937F59498D4E35C172C81E2888650&quot;
622
+ </code></pre>
623
+ </div>
624
+
625
+
626
+
627
+
628
+
629
+
630
+
631
+
632
+ <div class="sourcecode">
633
+
634
+ <p class="source-link">
635
+ Source:
636
+ <a href="javascript:toggleSource('method-i-create_source')" id="l_method-i-create_source">show</a>
637
+
638
+ </p>
639
+ <div id="method-i-create_source" class="dyn-source">
640
+ <pre><span class="ruby-comment"># File lib/nanook/wallet.rb, line 145</span>
641
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">create</span>
642
+ <span class="ruby-identifier">rpc</span>(<span class="ruby-value">:wallet_create</span>)[<span class="ruby-value">:wallet</span>]
643
+ <span class="ruby-keyword">end</span></pre>
644
+ </div>
645
+ </div>
646
+
647
+ </div>
648
+
649
+ <div class="method">
650
+ <div class="title method-title" id="method-i-destroy">
651
+
652
+ <b>destroy</b>()
653
+
654
+ <a href="../../classes/Nanook/Wallet.html#method-i-destroy" name="method-i-destroy" class="permalink">Link</a>
655
+ </div>
656
+
657
+
658
+ <div class="description">
659
+ <p>Destroy the wallet. Returns a boolean indicating whether the action was
660
+ successful or not.</p>
661
+
662
+ <h4 id="method-i-destroy-label-Example+Response">Example Response</h4>
663
+
664
+ <pre><code>true
665
+ </code></pre>
666
+ </div>
667
+
668
+
669
+
670
+
671
+
672
+
673
+
674
+
675
+ <div class="sourcecode">
676
+
677
+ <p class="source-link">
678
+ Source:
679
+ <a href="javascript:toggleSource('method-i-destroy_source')" id="l_method-i-destroy_source">show</a>
680
+
681
+ </p>
682
+ <div id="method-i-destroy_source" class="dyn-source">
683
+ <pre><span class="ruby-comment"># File lib/nanook/wallet.rb, line 154</span>
684
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">destroy</span>
685
+ <span class="ruby-identifier">wallet_required!</span>
686
+ <span class="ruby-identifier">rpc</span>(<span class="ruby-value">:wallet_destroy</span>)
687
+ <span class="ruby-keyword">true</span>
688
+ <span class="ruby-keyword">end</span></pre>
689
+ </div>
690
+ </div>
691
+
692
+ </div>
693
+
694
+ <div class="method">
695
+ <div class="title method-title" id="method-i-export">
696
+
697
+ <b>export</b>()
698
+
699
+ <a href="../../classes/Nanook/Wallet.html#method-i-export" name="method-i-export" class="permalink">Link</a>
700
+ </div>
701
+
702
+
703
+ <div class="description">
704
+ <p>Generates a String containing a JSON representation of your wallet.</p>
705
+
706
+ <h4 id="method-i-export-label-Example+response">Example response</h4>
707
+
708
+ <pre><code>&quot;{\n \&quot;0000000000000000000000000000000000000000000000000000000000000000\&quot;: \&quot;0000000000000000000000000000000000000000000000000000000000000003\&quot;,\n \&quot;0000000000000000000000000000000000000000000000000000000000000001\&quot;: \&quot;C3A176FC3B90113277BFC91F55128FC9A1F1B6166A73E7446927CFFCA4C2C9D9\&quot;,\n \&quot;0000000000000000000000000000000000000000000000000000000000000002\&quot;: \&quot;3E58EC805B99C52B4715598BD332C234A1FBF1780577137E18F53B9B7F85F04B\&quot;,\n \&quot;0000000000000000000000000000000000000000000000000000000000000003\&quot;: \&quot;5FF8021122F3DEE0E4EC4241D35A3F41DEF63CCF6ADA66AF235DE857718498CD\&quot;,\n \&quot;0000000000000000000000000000000000000000000000000000000000000004\&quot;: \&quot;A30E0A32ED41C8607AA9212843392E853FCBCB4E7CB194E35C94F07F91DE59EF\&quot;,\n \&quot;0000000000000000000000000000000000000000000000000000000000000005\&quot;: \&quot;E707002E84143AA5F030A6DB8DD0C0480F2FFA75AB1FFD657EC22B5AA8E395D5\&quot;,\n \&quot;0000000000000000000000000000000000000000000000000000000000000006\&quot;: \&quot;0000000000000000000000000000000000000000000000000000000000000001\&quot;,\n \&quot;8646C0423160DEAEAA64034F9C6858F7A5C8A329E73E825A5B16814F6CCAFFE3\&quot;: \&quot;0000000000000000000000000000000000000000000000000000000100000000\&quot;\n}\n&quot;
709
+ </code></pre>
710
+ </div>
711
+
712
+
713
+
714
+
715
+
716
+
717
+
718
+
719
+ <div class="sourcecode">
720
+
721
+ <p class="source-link">
722
+ Source:
723
+ <a href="javascript:toggleSource('method-i-export_source')" id="l_method-i-export_source">show</a>
724
+
725
+ </p>
726
+ <div id="method-i-export_source" class="dyn-source">
727
+ <pre><span class="ruby-comment"># File lib/nanook/wallet.rb, line 165</span>
728
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">export</span>
729
+ <span class="ruby-identifier">wallet_required!</span>
730
+ <span class="ruby-identifier">rpc</span>(<span class="ruby-value">:wallet_export</span>)[<span class="ruby-value">:json</span>]
731
+ <span class="ruby-keyword">end</span></pre>
732
+ </div>
733
+ </div>
734
+
735
+ </div>
736
+
737
+ <div class="method">
738
+ <div class="title method-title" id="method-i-locked-3F">
739
+
740
+ <b>locked?</b>()
741
+
742
+ <a href="../../classes/Nanook/Wallet.html#method-i-locked-3F" name="method-i-locked-3F" class="permalink">Link</a>
743
+ </div>
744
+
745
+
746
+ <div class="description">
747
+ <p>Returns a boolean to indicate if the wallet is locked.</p>
748
+
749
+ <h4 id="method-i-locked-3F-label-Example+response">Example response</h4>
750
+
751
+ <pre><code>true
752
+ </code></pre>
753
+ </div>
754
+
755
+
756
+
757
+
758
+
759
+
760
+
761
+
762
+ <div class="sourcecode">
763
+
764
+ <p class="source-link">
765
+ Source:
766
+ <a href="javascript:toggleSource('method-i-locked-3F_source')" id="l_method-i-locked-3F_source">show</a>
767
+
768
+ </p>
769
+ <div id="method-i-locked-3F_source" class="dyn-source">
770
+ <pre><span class="ruby-comment"># File lib/nanook/wallet.rb, line 261</span>
771
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">locked?</span>
772
+ <span class="ruby-identifier">wallet_required!</span>
773
+ <span class="ruby-identifier">response</span> = <span class="ruby-identifier">rpc</span>(<span class="ruby-value">:wallet_locked</span>)
774
+ <span class="ruby-operator">!</span><span class="ruby-identifier">response</span>.<span class="ruby-identifier">empty?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">response</span>[<span class="ruby-value">:locked</span>] <span class="ruby-operator">!=</span> <span class="ruby-value">0</span>
775
+ <span class="ruby-keyword">end</span></pre>
776
+ </div>
777
+ </div>
778
+
779
+ </div>
780
+
781
+ <div class="method">
782
+ <div class="title method-title" id="method-i-pay">
783
+
784
+ <b>pay</b>(from:, to:, amount:, id:)
785
+
786
+ <a href="../../classes/Nanook/Wallet.html#method-i-pay" name="method-i-pay" class="permalink">Link</a>
787
+ </div>
788
+
789
+
790
+ <div class="description">
791
+ <p>Make a payment from an account in your wallet to another account on the
792
+ nano network. Returns a <em>send</em> block hash if successful, or an error
793
+ String if unsuccessful.</p>
794
+
795
+ <h4 id="method-i-pay-label-Arguments">Arguments</h4>
796
+ <table class="rdoc-list label-list"><tbody><tr><td class='label'><code>from:</code></td><td>
797
+ <p>String account id of an account in your wallet</p>
798
+ </td></tr><tr><td class='label'><code>to:</code></td><td>
799
+ <p>String account id of the recipient of your payment</p>
800
+ </td></tr><tr><td class='label'><code>amount:</code></td><td>
801
+ <p>Can be either an Integer or Float. Unit is NANO (which is currently
802
+ technically 1Mnano - see <a
803
+ href="https://nano.org/en/faq#what-are-nano-units-">What are Nano’s
804
+ Units</a>).</p>
805
+ </td></tr><tr><td class='label'><code>id:</code></td><td>
806
+ <p>String. Must be unique per payment. It serves an important purpose; it
807
+ allows you to make the same call multiple times with the same
808
+ <code>id</code> and be reassured that you will only ever send that nano
809
+ payment once.</p>
810
+ </td></tr></tbody></table>
811
+
812
+ <p>Note, there may be a delay in receiving a response due to Proof of Work
813
+ being done. From the <a
814
+ href="https://github.com/nanocurrency/raiblocks/wiki/RPC-protocol#account-create">Nano
815
+ RPC</a>:</p>
816
+
817
+ <p><em>Proof of Work is precomputed for one transaction in the background. If
818
+ it has been a while since your last transaction it will send instantly, the
819
+ next one will need to wait for Proof of Work to be generated.</em></p>
820
+
821
+ <h4 id="method-i-pay-label-Example">Example</h4>
822
+
823
+ <pre><code>wallet.pay(from: &quot;xrb_...&quot;, to: &quot;xrb_...&quot;, amount: 0.001, id: &quot;myUniqueId123&quot;)
824
+ </code></pre>
825
+
826
+ <h4 id="method-i-pay-label-Example+responses">Example responses</h4>
827
+
828
+ <pre><code>&quot;718CC2121C3E641059BC1C2CFC45666C99E8AE922F7A807B7D07B62C995D79E2&quot;
829
+ </code></pre>
830
+
831
+ <p>Or:</p>
832
+
833
+ <pre><code>&quot;Account not found&quot;
834
+ </code></pre>
835
+ </div>
836
+
837
+
838
+
839
+
840
+
841
+
842
+
843
+
844
+ <div class="sourcecode">
845
+
846
+ <p class="source-link">
847
+ Source:
848
+ <a href="javascript:toggleSource('method-i-pay_source')" id="l_method-i-pay_source">show</a>
849
+
850
+ </p>
851
+ <div id="method-i-pay_source" class="dyn-source">
852
+ <pre><span class="ruby-comment"># File lib/nanook/wallet.rb, line 214</span>
853
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">pay</span>(<span class="ruby-value">from:</span>, <span class="ruby-value">to:</span>, <span class="ruby-value">amount:</span>, <span class="ruby-value">id:</span>)
854
+ <span class="ruby-identifier">wallet_required!</span>
855
+ <span class="ruby-identifier">validate_wallet_contains_account!</span>(<span class="ruby-identifier">from</span>)
856
+ <span class="ruby-identifier">account</span>(<span class="ruby-identifier">from</span>).<span class="ruby-identifier">pay</span>(<span class="ruby-value">to:</span> <span class="ruby-identifier">to</span>, <span class="ruby-value">amount:</span> <span class="ruby-identifier">amount</span>, <span class="ruby-value">id:</span> <span class="ruby-identifier">id</span>)
857
+ <span class="ruby-keyword">end</span></pre>
858
+ </div>
859
+ </div>
860
+
861
+ </div>
862
+
863
+ <div class="method">
864
+ <div class="title method-title" id="method-i-receive">
865
+
866
+ <b>receive</b>(block=nil, into:)
867
+
868
+ <a href="../../classes/Nanook/Wallet.html#method-i-receive" name="method-i-receive" class="permalink">Link</a>
869
+ </div>
870
+
871
+
872
+ <div class="description">
873
+ <p>Receives a pending payment into an account in the wallet.</p>
874
+
875
+ <p>When called with no <code>block</code> argument, the latest pending payment
876
+ for the account will be received.</p>
877
+
878
+ <p>Returns a <em>receive</em> block hash if a receive was successful, or
879
+ <code>false</code> if there were no pending payments to receive.</p>
880
+
881
+ <p>You can also receive a specific pending block if you know it by passing the
882
+ block has in as an argument.</p>
883
+
884
+ <h4 id="method-i-receive-label-Arguments">Arguments</h4>
885
+ <table class="rdoc-list label-list"><tbody><tr><td class='label'><code>block</code></td><td>
886
+ <p>Optional block hash of pending payment. If not provided, the latest pending
887
+ payment will be received</p>
888
+ </td></tr><tr><td class='label'><code>into:</code></td><td>
889
+ <p>String account id of account in your wallet to receive the payment into</p>
890
+ </td></tr></tbody></table>
891
+
892
+ <h4 id="method-i-receive-label-Examples">Examples</h4>
893
+
894
+ <pre><code>wallet.receive(into: &quot;xrb...&quot;)
895
+ wallet.receive(&quot;718CC21...&quot;, into: &quot;xrb...&quot;)
896
+ </code></pre>
897
+
898
+ <h4 id="method-i-receive-label-Example+responses">Example responses</h4>
899
+
900
+ <pre><code>&quot;718CC2121C3E641059BC1C2CFC45666C99E8AE922F7A807B7D07B62C995D79E2&quot;
901
+ </code></pre>
902
+
903
+ <p>Or:</p>
904
+
905
+ <pre><code>false
906
+ </code></pre>
907
+ </div>
908
+
909
+
910
+
911
+
912
+
913
+
914
+
915
+
916
+ <div class="sourcecode">
917
+
918
+ <p class="source-link">
919
+ Source:
920
+ <a href="javascript:toggleSource('method-i-receive_source')" id="l_method-i-receive_source">show</a>
921
+
922
+ </p>
923
+ <div id="method-i-receive_source" class="dyn-source">
924
+ <pre><span class="ruby-comment"># File lib/nanook/wallet.rb, line 250</span>
925
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">receive</span>(<span class="ruby-identifier">block</span>=<span class="ruby-keyword">nil</span>, <span class="ruby-value">into:</span>)
926
+ <span class="ruby-identifier">wallet_required!</span>
927
+ <span class="ruby-identifier">validate_wallet_contains_account!</span>(<span class="ruby-identifier">into</span>)
928
+ <span class="ruby-identifier">account</span>(<span class="ruby-identifier">into</span>).<span class="ruby-identifier">receive</span>(<span class="ruby-identifier">block</span>)
929
+ <span class="ruby-keyword">end</span></pre>
930
+ </div>
931
+ </div>
932
+
933
+ </div>
934
+
935
+ <div class="method">
936
+ <div class="title method-title" id="method-i-unlock">
937
+
938
+ <b>unlock</b>(password)
939
+
940
+ <a href="../../classes/Nanook/Wallet.html#method-i-unlock" name="method-i-unlock" class="permalink">Link</a>
941
+ </div>
942
+
943
+
944
+ <div class="description">
945
+ <p>Unlocks a previously locked wallet. Returns a boolean to indicate if the
946
+ action was successful.</p>
947
+
948
+ <h4 id="method-i-unlock-label-Example+response">Example response</h4>
949
+
950
+ <pre><code>true
951
+ </code></pre>
952
+ </div>
953
+
954
+
955
+
956
+
957
+
958
+
959
+
960
+
961
+ <div class="sourcecode">
962
+
963
+ <p class="source-link">
964
+ Source:
965
+ <a href="javascript:toggleSource('method-i-unlock_source')" id="l_method-i-unlock_source">show</a>
966
+
967
+ </p>
968
+ <div id="method-i-unlock_source" class="dyn-source">
969
+ <pre><span class="ruby-comment"># File lib/nanook/wallet.rb, line 273</span>
970
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">unlock</span>(<span class="ruby-identifier">password</span>)
971
+ <span class="ruby-identifier">wallet_required!</span>
972
+ <span class="ruby-identifier">rpc</span>(<span class="ruby-value">:password_enter</span>, <span class="ruby-value">password:</span> <span class="ruby-identifier">password</span>)[<span class="ruby-value">:valid</span>] <span class="ruby-operator">==</span> <span class="ruby-value">1</span>
973
+ <span class="ruby-keyword">end</span></pre>
974
+ </div>
975
+ </div>
976
+
977
+ </div>
978
+
979
+
980
+
981
+
982
+ </div>
983
+
984
+ </div>
985
+ </body>
986
+ </html>