nanook 2.5.1 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d03d4611714f05048845e583058c3d99216e0d7bc4e82994556f7abd6bc94d4e
4
- data.tar.gz: 404045d0de5f045400897c648e22267c0981ff9d498e9404f08ef77aaadfbfac
3
+ metadata.gz: 4aa7c4cfb54ead1044be1f2da82f82c0e53e5fbf37750dc8019235071879d8f5
4
+ data.tar.gz: 6be63035a579afddb88c63baa8dba875346f8e8a5bba147a5e89cade033e8a94
5
5
  SHA512:
6
- metadata.gz: 7b5a0bf64ca64119b0e692b527677154a291c8080ade14c52624e41d59fb772c9e5f55c0f58bd8a460ea806fdcbbeebd0009f248547771f228f48a4829e2a014
7
- data.tar.gz: d78534084ba296713af7e3384222319916d3e6e61977d044d8cd724a46b70469c7df7299ba6ed35118dc491aa9de8cb9766a9fb42ab6a16e4543a95e30d76793
6
+ metadata.gz: 4b20db4ba4f60524baa8ced68e9fb821da4ebb0404fcc19f15332c5cbac7b37027fa5b96523e833ed96fcbe2e2700fe6a79a714c57cd1c5bc2558a48e53269b9
7
+ data.tar.gz: f286eb5b4ee747beec160d8c4c97d17a6bf4d0cef08914d425ca5bb630575ae5eb99e39071e230cd1b32571e3cc85e33e81293edf5e12bd3a24b4d6f962fa6fe
data/CHANGELOG.md CHANGED
@@ -4,6 +4,105 @@ All notable changes to this project will be documented in this file.
4
4
  The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
5
5
  and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
6
6
 
7
+ ## 3.0.0
8
+
9
+ ### Removed
10
+
11
+ - `Nanook::Block#block_count_by_type` Removed, as the RPC no longer supports this command.
12
+ - `Nanook::Block#history` Removed, as the RPC command is deprecated.
13
+ - `Nanook::Block#publish` Removed, as the RPC command expects more data than what we instantiate within `Nanook::Block`.
14
+ - Removed all RPC calls that are not recommended for production:
15
+ - `Nanook::Node#bootstrap_status`.
16
+ - `Nanook::Node#confirmation_history`.
17
+ - `Nanook::Node#confirmed_recently?`.
18
+ - `Nanook::Key` Replaced by `Nanook::PrivateKey`.
19
+ - `Nanook::Account#info` No longer accepts `detailed:` argument.
20
+ - `Nanook::Node#synced?` As this was deprecated for removal in v3.0.
21
+
22
+ ### Added
23
+
24
+ - Added missing `Nanook::WalletAccount#block_count` delegate.
25
+ - Added `Nanook#network_telemetry`.
26
+ - Added `Nanook::Rpc#test`.
27
+ - Added `Nanook::WalletAccount#work`.
28
+ - Added `Nanook::WalletAccount#set_work`.
29
+ - Added `Nanook::Account#blocks`.
30
+ - Added `Nanook::Account#delegators_count`.
31
+ - Added `Nanook::Account#open_block`.
32
+ - Added `Nanook::Node#change_receive_minimum`.
33
+ - Added `Nanook::Node#confirmation_quorum`.
34
+ - Added `Nanook::Node#keepalive`.
35
+ - Added `Nanook::Node#receive_minimum`.
36
+ - Added `Nanook::Node#search_pending`.
37
+ - Added `Nanook::Wallet#history`.
38
+ - Added `Nanook::Wallet#exists?`.
39
+ - Added `Nanook::Wallet#ledger`.
40
+ - Added `Nanook::Wallet#move_accounts`.
41
+ - Added `Nanook::Wallet#remove_account`.
42
+ - Added `Nanook::Wallet#republish_blocks`.
43
+ - Added `Nanook::Wallet#search_pending`.
44
+ - Added `Nanook::Wallet#work`.
45
+ - Added `Nanook::Block#account`.
46
+ - Added `Nanook::Block#amount`.
47
+ - Added `Nanook::Block#balance`.
48
+ - Added `Nanook::Block#change?`.
49
+ - Added `Nanook::Block#confirmed?`.
50
+ - Added `Nanook::Block#epoch?`.
51
+ - Added `Nanook::Block#exists?`.
52
+ - Added `Nanook::Block#height`.
53
+ - Added `Nanook::Block#open?`.
54
+ - Added `Nanook::Block#previous`.
55
+ - Added `Nanook::Block#receive?`.
56
+ - Added `Nanook::Block#representative`.
57
+ - Added `Nanook::Block#send?`.
58
+ - Added `Nanook::Block#signature`.
59
+ - Added `Nanook::Block#timestamp`.
60
+ - Added `Nanook::Block#type`.
61
+ - Added `Nanook::Block#unconfirmed?`.
62
+ - Added `Nanook::Block#work`.
63
+ - Added `Nanook::PrivateKey` with methods `#create`, `#account` and `#public_key`.
64
+ - Added `Nanook::PublicKey` with method `#account`.
65
+ - Added equality testing methods `#==`, `#eql?` and `#hash` for:
66
+ - `Nanook::Account`
67
+ - `Nanook::Block`
68
+ - `Nanook::PrivateKey`
69
+ - `Nanook::PublicKey`
70
+ - `Nanook::Wallet`
71
+ - `Nanook::WalletAccount`
72
+
73
+ ### Changed
74
+
75
+ - New error classes: `Nanook::ConnectionError`, `NanoUnitError`, `NodeRpcError` and `NodeRpcConfigurationError`.
76
+ - `Nanook::Wallet#default_representative` returns a `Nanook::Account`.
77
+ - `Nanook::Wallet#change_representative` returns a `Nanook::Account`.
78
+ - `Nanook::Wallet#unlock` can be passed no argument (`password` will be `nil`).
79
+ - `Nanook::Wallet#info` returns data from `wallet_info` RPC.
80
+ - `Nanook::Block#is_valid_work?` renamed to `#valid_work?`.
81
+ - `Nanook::Block#republish` returns an Array of `Nanook::Block`s.
82
+ - `Nanook::Block#chain` returns an Array of `Nanook::Block`s.
83
+ - `Nanook::Block#successors` returns an Array of `Nanook::Block`s.
84
+ - `Nanook::Block#info`:
85
+ - returns balances in nano, and can optionally be passed `unit: :raw` argument.
86
+ - returns account values as `Nanook::Account` and block values as `Nanook::Block`.
87
+ - `Nanook::Node#peers` returns details as a `Hash` keyed by `Nanook::Account`.
88
+ - `Nanook::Account#pending` returns source as `Nanook::Account` and block as `Nanook::Block` when `detailed: true`.
89
+ - `Nanook::Account#representative` returns a `Nanook::Account`.
90
+ - `Nanook::Account#delegators` returns accounts as `Nanook::Account`s.
91
+ - `Nanook::Account#history` returns accounts as `Nanook::Account` and blocks as `Nanook::Block`.
92
+ - `Nanook::Account#ledger` returns accounts as `Nanook::Account` and blocks as `Nanook::Block`.
93
+ - `Nanook::Account#public_key` returns a `Nanook::PublicKey`.
94
+ - `Nanook::Account#weight` accepts an optional `unit:` argment.
95
+ - `Nanook::Account#info`:
96
+ - returns the `frontier`, `open_block`, `representative_block` values as `Nanook::Block`s.
97
+ - returns the `representative` as a `Nanook::Account`.
98
+ - `modified_timestamp` key renamed to `last_modified_at` and value is a `Time` in UTC.
99
+ - `Nanook::Key` has become `Nanook::PrivateKey`, `#generate` has been renamed `#create` and returns a `Nanook::PrivateKey`.
100
+
101
+ ### Fixed
102
+
103
+ - A number of errors when node is still bootstrapping and is missing accounts from the ledger.
104
+ - `Nanook::Node#representatives_online` accessing representative list as a `Hash` after RPC change.
105
+
7
106
  ## 2.5.1
8
107
 
9
108
  ### Fixed
data/README.md CHANGED
@@ -26,7 +26,7 @@ Or install it yourself as:
26
26
 
27
27
  ## Initializing
28
28
 
29
- Nanook will by default connect to `http://localhost:7076`.
29
+ Nanook will by default connect to `http://[::1]:7076`.
30
30
 
31
31
  ```ruby
32
32
  nanook = Nanook.new
@@ -35,7 +35,7 @@ nanook = Nanook.new
35
35
  To connect to another host instead:
36
36
 
37
37
  ```ruby
38
- nanook = Nanook.new("http://ip6-localhost:7076")
38
+ nanook = Nanook.new("http://localhost:7076")
39
39
  ```
40
40
 
41
41
  ## Basics
@@ -45,19 +45,19 @@ nanook = Nanook.new("http://ip6-localhost:7076")
45
45
  Create a wallet:
46
46
 
47
47
  ```ruby
48
- Nanook.new.wallet.create
48
+ wallet = nanook.wallet.create
49
49
  ```
50
50
 
51
51
  Create an account within a wallet:
52
52
 
53
53
  ```ruby
54
- Nanook.new.wallet(wallet_id).account.create
54
+ account = wallet.account.create
55
55
  ```
56
56
 
57
57
  List accounts within a wallet:
58
58
 
59
59
  ```ruby
60
- Nanook.new.wallet(wallet_id).accounts
60
+ accounts = wallet.accounts
61
61
  ```
62
62
 
63
63
  ### Sending a payment
@@ -65,14 +65,14 @@ Nanook.new.wallet(wallet_id).accounts
65
65
  To send a payment from an account in a wallet:
66
66
 
67
67
  ```ruby
68
- account = Nanook.new.wallet(wallet_id).account(account_id)
68
+ account = nanook.wallet(wallet_id).account(account_id)
69
69
  account.pay(to: recipient_account_id, amount: 0.2, id: unique_id)
70
70
  ```
71
71
 
72
72
  Or, a wallet:
73
73
 
74
74
  ```ruby
75
- wallet = Nanook.new.wallet(wallet_id)
75
+ wallet = nanook.wallet(wallet_id)
76
76
  wallet.pay(from: your_account_id, to: recipient_account_id, amount: 0.2, id: unique_id)
77
77
  ```
78
78
 
@@ -80,7 +80,7 @@ The `id` can be any string and needs to be unique per payment. It serves an impo
80
80
 
81
81
  > You can (and should) specify a unique id for each spend to provide idempotency. That means that if you [make the payment call] two times with the same id, the second request won't send any additional Nano.
82
82
 
83
- The unit of the `amount` is NANO (which is currently technically Mnano — see [What are Nano's Units](https://nano.org/en/faq#what-are-nano-units-)). You can pass an amount of raw instead by adding the `unit: :raw` argument:
83
+ The unit of the `amount` is NANO (which is currently technically Mnano — see [What are Nano's Units](https://docs.nano.org/protocol-design/distribution-and-units/#unit-dividers)). You can pass an amount of raw instead by adding the `unit: :raw` argument:
84
84
 
85
85
  ```ruby
86
86
  account.pay(to: recipient_account_id, amount: 999, unit: :raw, id: unique_id)
@@ -95,12 +95,12 @@ Note, there may be a delay in receiving a response due to Proof of Work being do
95
95
  The simplest way to receive a payment is:
96
96
 
97
97
  ```ruby
98
- account = Nanook.new.wallet(wallet_id).account(account_id)
98
+ account = nanook.wallet(wallet_id).account(account_id)
99
99
  account.receive
100
100
 
101
101
  # or:
102
102
 
103
- wallet = Nanook.new.wallet(wallet_id)
103
+ wallet = nanook.wallet(wallet_id)
104
104
  wallet.receive(into: account_id)
105
105
  ```
106
106
 
@@ -109,42 +109,46 @@ The `receive` method when called as above will receive the latest pending paymen
109
109
  You can also receive a specific pending block if you know it (you may have discovered it through calling `account.pending` for example):
110
110
 
111
111
  ```ruby
112
- account = Nanook.new.wallet(wallet_id).account(account_id)
112
+ account = nanook.wallet(wallet_id).account(account_id)
113
113
  account.receive(block_id)
114
114
 
115
115
  # or:
116
116
 
117
- wallet = Nanook.new.wallet(wallet_id)
117
+ wallet = nanook.wallet(wallet_id)
118
118
  wallet.receive(block_id, into: account_id)
119
119
  ```
120
120
 
121
+ ## Exploring further
122
+
123
+ Read the [Using Nanook](https://github.com/lukes/nanook/wiki/Using-nanook) page for some example uses of Nanook to query the network.
124
+
121
125
  ## All commands
122
126
 
123
- Below is a quick reference list of commands. See the [full Nanook documentation](https://lukes.github.io/nanook/2.5.1/) for a searchable detailed description of every class and method, what the arguments mean, and example responses (Tip: the classes are listed under the "**Nanook** < Object" item in the sidebar).
127
+ Below is a quick reference list of commands. See the [full Nanook documentation](https://lukes.github.io/nanook/3.0.0/) for a searchable detailed description of every class and method, what the arguments mean, and example responses.
124
128
 
125
129
  ### Wallets
126
130
 
127
- See the [full documentation for Nanook::Wallet](https://lukes.github.io/nanook/2.5.1/Nanook/Wallet.html) for a detailed description of each method and example responses.
131
+ See the [full documentation for Nanook::Wallet](https://lukes.github.io/nanook/3.0.0/Nanook/Wallet.html) for a detailed description of each method and example responses.
128
132
 
129
133
  #### Create wallet:
130
134
 
131
135
  ```ruby
132
- Nanook.new.wallet.create
136
+ nanook.wallet.create
133
137
  ```
134
138
  #### Restoring a wallet from a seed
135
139
 
136
140
  ```ruby
137
- Nanook.new.wallet.restore(seed)
141
+ nanook.wallet.restore(seed)
138
142
  ```
139
143
  Optionally also restore the wallet's accounts:
140
144
  ```ruby
141
- Nanook.new.wallet.restore(seed, accounts: 2)
145
+ nanook.wallet.restore(seed, accounts: 2)
142
146
  ```
143
147
 
144
- #### Working with a single wallet:
148
+ #### Working with a wallet:
145
149
 
146
150
  ```ruby
147
- wallet = Nanook.new.wallet(wallet_id)
151
+ wallet = nanook.wallet(wallet_id)
148
152
 
149
153
  wallet.balance
150
154
  wallet.balance(account_break_down: true)
@@ -157,21 +161,32 @@ wallet.pending(detailed: true)
157
161
  wallet.pending(unit: :raw)
158
162
  wallet.receive(into: account_id)
159
163
  wallet.receive(pending_block_id, into: account_id)
164
+ wallet.search_pending
160
165
 
161
166
  wallet.account.create
162
167
  wallet.account.create(5)
163
168
  wallet.accounts
164
169
  wallet.contains?(account_id)
170
+ wallet.move_accounts(from_wallet_id, [account_1_id, account_2_id])
171
+ wallet.remove_account(account_id)
165
172
 
166
173
  wallet.default_representative
167
- wallet.change_default_representative(new_representative)
174
+ wallet.change_default_representative(representative_account_id)
175
+ wallet.change_password(password)
176
+ wallet.exists?
177
+ wallet.history
178
+ wallet.history(unit: :raw)
168
179
  wallet.info
169
180
  wallet.info(unit: :raw)
170
181
  wallet.export
182
+ wallet.ledger
183
+ wallet.ledger(unit: :raw)
171
184
  wallet.lock
172
185
  wallet.locked?
186
+ wallet.republish_blocks
187
+ wallet.republish_blocks(limit: 5)
173
188
  wallet.unlock(password)
174
- wallet.change_password(password)
189
+ wallet.work
175
190
 
176
191
  wallet.destroy
177
192
  ```
@@ -180,142 +195,159 @@ wallet.destroy
180
195
  #### Create account:
181
196
 
182
197
  ```ruby
183
- Nanook.new.wallet(wallet_id).account.create
198
+ nanook.wallet(wallet_id).account.create
184
199
  ```
185
200
 
186
201
  #### Create multiple accounts:
187
202
 
188
203
  ```ruby
189
- Nanook.new.wallet(wallet_id).account.create(5)
204
+ nanook.wallet(wallet_id).account.create(5)
190
205
  ```
191
206
 
192
- #### Working with a single account:
207
+ #### Working with an account:
193
208
 
194
- See the [full documentation for Nanook::WalletAccount](https://lukes.github.io/nanook/2.5.1/Nanook/WalletAccount.html) for a detailed description of each method and example responses.
209
+ Any account on the Nano network that is known by your node can be initialized through `Nanook#account`:
195
210
 
196
211
  ```ruby
197
- account = Nanook.new.wallet(wallet_id).account(account_id)
212
+ account = nanook.account(account_id)
213
+ ```
198
214
 
215
+ See the [full documentation for Nanook::Account](https://lukes.github.io/nanook/3.0.0/Nanook/Account.html) for a detailed description of each method and example responses.
216
+
217
+ ```ruby
199
218
  account.balance
200
219
  account.balance(unit: :raw)
201
- account.pay(to: recipient_account_id, amount: 2, id: unique_id)
202
- account.pay(to: recipient_account_id, amount: 2, id: unique_id, unit: :raw)
203
220
  account.pending
204
221
  account.pending(limit: 1)
205
222
  account.pending(detailed: true)
206
223
  account.pending(unit: :raw)
207
- account.receive
208
- account.receive(pending_block_id)
209
224
 
225
+ account.blocks
226
+ account.blocks(limit: 1)
227
+ account.blocks(sort: :desc)
228
+ account.delegators
229
+ account.delegators(unit: :raw)
230
+ account.delegators_count
210
231
  account.exists?
232
+ account.history
233
+ account.history(limit: 1)
234
+ account.history(unit: :raw)
235
+ account.history(sort: :desc)
211
236
  account.info
212
- account.info(detailed: true)
213
237
  account.info(unit: :raw)
214
238
  account.last_modified_at
215
239
  account.ledger
216
240
  account.ledger(limit: 10)
217
241
  account.ledger(modified_since: Time.now)
218
242
  account.ledger(unit: :raw)
219
- account.history
220
- account.history(limit: 1)
221
- account.history(unit: :raw)
243
+ account.ledger(sort: :desc)
244
+ account.open_block
222
245
  account.public_key
223
- account.delegators
224
- account.delegators(unit: :raw)
225
246
  account.representative
226
- account.change_representative(new_representative)
227
247
  account.weight
228
-
229
- account.destroy
248
+ account.weight(unit: :raw)
230
249
  ```
231
250
 
232
- #### Working with any account (not necessarily in your wallet):
251
+ #### Working with an account created on the node:
233
252
 
234
- See the [full documentation for Nanook::Account](https://lukes.github.io/nanook/2.5.1/Nanook/Account.html) for a detailed description of each method and example responses.
253
+ Accounts that have been created on your node can have
254
+ additional methods when initialized through `Nanook::Wallet#account`:
235
255
 
236
256
  ```ruby
237
- account = Nanook.new.account(account_id)
257
+ wallet = nanook.wallet(wallet_id)
258
+ account = wallet.account(account_id)
259
+ ```
238
260
 
239
- account.balance
240
- account.balance(unit: :raw)
241
- account.pending
242
- account.pending(limit: 1)
243
- account.pending(detailed: true)
244
- account.pending(unit: :raw)
261
+ As well as the following methods, all methods of [regular accounts](#working-with-any-account) can also be called.
245
262
 
246
- account.exists?
247
- account.info
248
- account.info(detailed: true)
249
- account.info(unit: :raw)
250
- account.last_modified_at
251
- account.ledger
252
- account.ledger(limit: 10)
253
- account.ledger(modified_since: Time.now)
254
- account.ledger(unit: :raw)
255
- account.history
256
- account.history(limit: 1)
257
- account.history(unit: :raw)
258
- account.public_key
259
- account.delegators
260
- account.delegators(unit: :raw)
261
- account.representative
262
- account.weight
263
+ See the [full documentation for Nanook::WalletAccount](https://lukes.github.io/nanook/3.0.0/Nanook/WalletAccount.html) for a detailed description of each method and example responses.
264
+
265
+ ```ruby
266
+ account.pay(to: recipient_account_id, amount: 2, id: unique_id)
267
+ account.pay(to: recipient_account_id, amount: 2, id: unique_id, unit: :raw)
268
+ account.receive
269
+ account.receive(pending_block_id)
270
+ account.change_representative(new_representative)
271
+ account.set_work(work)
272
+ account.work
273
+ account.destroy
263
274
  ```
264
275
 
265
276
  ### Blocks
266
277
 
267
- See the [full documentation for Nanook::Block](https://lukes.github.io/nanook/2.5.1/Nanook/Block.html) for a detailed description of each method and example responses.
278
+ See the [full documentation for Nanook::Block](https://lukes.github.io/nanook/3.0.0/Nanook/Block.html) for a detailed description of each method and example responses.
268
279
 
269
280
  ```ruby
270
- block = Nanook.new.block(block_id)
281
+ block = nanook.block(block_id)
271
282
 
283
+ block.account
284
+ block.amount
285
+ block.amount(unit: :raw)
286
+ block.balance
287
+ block.change?
288
+ block.checked?
289
+ block.epoch?
290
+ block.exists?
291
+ block.exists?(allow_unchecked: true)
292
+ block.height
272
293
  block.info # Verified blocks in the ledger
273
294
  block.info(allow_unchecked: true) # Verified blocks AND unchecked synchronizing blocks
295
+ block.info(unit: :raw)
274
296
  block.account
275
297
  block.chain
276
298
  block.chain(limit: 10)
277
299
  block.chain(offset: 10)
278
300
  block.confirm
279
- block.confirmed_recently?
280
- block.history
281
- block.history(limit: 10)
282
301
  block.republish
283
302
  block.republish(sources: 2)
284
303
  block.republish(destinations: 2)
304
+ block.open?
285
305
  block.pending?
286
- block.publish
306
+ block.previous
307
+ block.receive?
308
+ block.representative
309
+ block.send?
310
+ block.signature
287
311
  block.successors
288
312
  block.successors(limit: 10)
289
313
  block.successors(offset: 10)
314
+ block.timestamp
315
+ block.type
316
+ block.unchecked?
317
+ block.work
290
318
 
291
319
  block.generate_work
292
320
  block.generate_work(use_peers: true)
293
321
  block.cancel_work
294
- block.is_valid_work?(work_id)
322
+ block.valid_work?(work)
295
323
  ```
296
324
 
297
325
  ### Managing your nano node
298
326
 
299
- See the [full documentation for Nanook::Node](https://lukes.github.io/nanook/2.5.1/Nanook/Node.html) for a detailed description of each method and example responses.
327
+ See the [full documentation for Nanook::Node](https://lukes.github.io/nanook/3.0.0/Nanook/Node.html) for a detailed description of each method and example responses.
300
328
 
301
329
  ```ruby
302
- node = Nanook.new.node
330
+ node = nanook.node
303
331
 
304
332
  node.account_count
305
333
  node.block_count
306
- node.block_count_by_type
307
334
  node.bootstrap(address: "::ffff:138.201.94.249", port: 7075)
308
335
  node.bootstrap_any
309
336
  node.bootstrap_lazy(block_id)
310
337
  node.bootstrap_lazy(block_id, force: true)
311
- node.bootstrap_status
312
- node.confirmation_history
338
+ node.confirmation_quorum
313
339
  node.difficulty
314
340
  node.difficulty(include_trend: true)
341
+ node.keepalive(address: "::ffff:138.201.94.249", port: 7075)
315
342
  node.peers
343
+ node.receive_minimum
344
+ node.receive_minimum(unit: :raw)
345
+ node.change_receive_minimum(amount)
346
+ node.change_receive_minimum(amount, unit: :raw)
316
347
  node.representatives
317
348
  node.representatives(unit: :raw)
318
349
  node.representatives_online
350
+ node.search_pending
319
351
  node.synchronizing_blocks
320
352
  node.synchronizing_blocks(limit: 1)
321
353
  node.sync_progress
@@ -327,7 +359,7 @@ node.stop
327
359
  ### Work peers
328
360
 
329
361
  ```ruby
330
- work_peers = Nanook.new.work_peers
362
+ work_peers = nanook.work_peers
331
363
 
332
364
  work_peers.add(address: "::ffff:172.17.0.1:7076", port: 7076)
333
365
  work_peers.clear
@@ -339,16 +371,34 @@ work_peers.list
339
371
  #### Create private public key pair:
340
372
 
341
373
  ```ruby
342
- Nanook.new.key.generate
343
- Nanook.new.key.generate(seed: seed, index: 0)
374
+ private_key = nanook.private_key.create
375
+ private_key = nanook.private_key.create(seed: seed, index: 0)
376
+ private_key.public_key # => Nanook::PublicKey
377
+ ```
378
+
379
+ #### Working with a private key
380
+
381
+ ```ruby
382
+ key = nanook.private_key(private_key)
383
+
384
+ key.account
385
+ key.public_key
344
386
  ```
345
387
 
346
- #### Working with a single key
388
+ #### Working with a public key
347
389
 
348
390
  ```ruby
349
- key = Nanook.new.key(private_key)
391
+ key = nanook.public_key(public_key)
392
+
393
+ key.account
394
+ ```
395
+
396
+ ### Network
350
397
 
351
- key.info
398
+ A summarized overview of the Nano network:
399
+
400
+ ```ruby
401
+ nanook.network_telemetry
352
402
  ```
353
403
 
354
404
  ## Nanook Metal
@@ -358,7 +408,7 @@ You can do any call listed in the [Nano RPC](https://docs.nano.org/commands/rpc-
358
408
  E.g., the [accounts_create command](https://docs.nano.org/commands/rpc-protocol/#accounts_create) can be called like this:
359
409
 
360
410
  ```ruby
361
- Nanook.new.rpc.call(:accounts_create, wallet: wallet_id, count: 2)
411
+ nanook.rpc.call(:accounts_create, wallet: wallet_id, count: 2)
362
412
  ```
363
413
 
364
414
  ## Contributing
@@ -379,7 +429,7 @@ The gem is available as open source under the terms of the [MIT License](https:/
379
429
 
380
430
  ## Buy me a nano coffee
381
431
 
382
- This library is totally free to use, but feel free to send some nano [my way](https://www.nanode.co/account/nano_3c3ek3k8135f6e8qtfy8eruk9q3yzmpebes7btzncccdest8ymzhjmnr196j) if you'd like to!
432
+ This library is always free to use, but feel free to send some nano [my way](https://www.nanode.co/account/nano_3c3ek3k8135f6e8qtfy8eruk9q3yzmpebes7btzncccdest8ymzhjmnr196j) if you'd like to!
383
433
 
384
434
  nano_3c3ek3k8135f6e8qtfy8eruk9q3yzmpebes7btzncccdest8ymzhjmnr196j
385
435