nano_rpc 0.11.0 → 0.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +10 -0
- data/lib/nano_rpc/errors.rb +4 -2
- data/lib/nano_rpc/numeric.rb +47 -0
- data/lib/nano_rpc/version.rb +1 -1
- data/lib/nano_rpc.rb +1 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 06caeedce48a1cc0e468ca6f0cc98be0f452759601dfb75d4c706da2685a13d3
|
4
|
+
data.tar.gz: 1293ed07fb6fa65c46d775c950c3c411e8c7d656ba8d8258d179ce69a06a8824
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a5f1ed287ecf01ecade72a3f111dcc68c1e4ce03826632286c675d3621c566199265b07cdb209c9abf9bdc033c45a294524b9fe7e3487015972f31ea50d63f27
|
7
|
+
data.tar.gz: 8556558303db38de3e60f4d8f58297c8f80050039f80ad147daa2b64f02c4339cf25d0278a5014d274541fc51e14373e70da13aba50d024095605e8149de0304
|
data/README.md
CHANGED
@@ -113,6 +113,16 @@ account.pending_balance
|
|
113
113
|
# => 5
|
114
114
|
```
|
115
115
|
|
116
|
+
To convert from Nano to raw and back, use `#to_raw` and `#to_nano`, available on all `Numeric` objects:
|
117
|
+
|
118
|
+
```ruby
|
119
|
+
4622800482000000000000000000000000.to_nano
|
120
|
+
# => 4622.800482
|
121
|
+
|
122
|
+
4622.800482.to_raw
|
123
|
+
# => 4622800482000000000000000000000000
|
124
|
+
```
|
125
|
+
|
116
126
|
For a comprehensive guide, see the [Wiki](https://github.com/jcraigk/ruby_nano_rpc/wiki).
|
117
127
|
|
118
128
|
## Credits
|
data/lib/nano_rpc/errors.rb
CHANGED
@@ -2,10 +2,12 @@
|
|
2
2
|
module NanoRpc
|
3
3
|
class Error < StandardError; end
|
4
4
|
|
5
|
-
class NodeConnectionFailure < Error; end
|
6
5
|
class BadRequest < Error; end
|
7
|
-
class InvalidRequest < Error; end
|
8
6
|
class ForbiddenParameter < Error; end
|
7
|
+
class InvalidNanoAmount < Error; end
|
8
|
+
class InvalidRawAmount < Error; end
|
9
|
+
class InvalidRequest < Error; end
|
9
10
|
class MissingParameters < Error; end
|
11
|
+
class NodeConnectionFailure < Error; end
|
10
12
|
class NodeOpenTimeout < Error; end
|
11
13
|
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
module NanoRpc
|
3
|
+
RAW_FACTOR = 30
|
4
|
+
RAW_PRECISION = 6
|
5
|
+
|
6
|
+
module NanoToRaw
|
7
|
+
def to_raw
|
8
|
+
ensure_valid_nano_amount!
|
9
|
+
(self * 10**RAW_PRECISION).floor *
|
10
|
+
10**(RAW_FACTOR - RAW_PRECISION)
|
11
|
+
end
|
12
|
+
|
13
|
+
private
|
14
|
+
|
15
|
+
def ensure_valid_nano_amount!
|
16
|
+
raise NanoRpc::InvalidNanoAmount unless valid_nano_amount?
|
17
|
+
end
|
18
|
+
|
19
|
+
# 133,248,290 total nano in circulation
|
20
|
+
def valid_nano_amount?
|
21
|
+
self <= 133_248_290
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
module RawToNano
|
26
|
+
def to_nano
|
27
|
+
ensure_valid_raw_amount!
|
28
|
+
(to_f / 10**RAW_FACTOR).round(RAW_PRECISION)
|
29
|
+
end
|
30
|
+
|
31
|
+
private
|
32
|
+
|
33
|
+
def ensure_valid_raw_amount!
|
34
|
+
raise NanoRpc::InvalidRawAmount unless valid_raw_amount?
|
35
|
+
end
|
36
|
+
|
37
|
+
# Ensure at least 10^23
|
38
|
+
def valid_raw_amount?
|
39
|
+
self >= 100_000_000_000_000_000_000_000
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
class Numeric
|
45
|
+
include NanoRpc::NanoToRaw
|
46
|
+
include NanoRpc::RawToNano
|
47
|
+
end
|
data/lib/nano_rpc/version.rb
CHANGED
data/lib/nano_rpc.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nano_rpc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.12.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Justin Craig-Kuhn (JCK)
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-06-
|
11
|
+
date: 2018-06-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -173,6 +173,7 @@ files:
|
|
173
173
|
- lib/nano_rpc/helpers/node_helper.rb
|
174
174
|
- lib/nano_rpc/helpers/wallet_helper.rb
|
175
175
|
- lib/nano_rpc/node.rb
|
176
|
+
- lib/nano_rpc/numeric.rb
|
176
177
|
- lib/nano_rpc/proxies/account.rb
|
177
178
|
- lib/nano_rpc/proxies/accounts.rb
|
178
179
|
- lib/nano_rpc/proxies/wallet.rb
|