nano_rpc 0.13.0 → 0.14.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/lib/nano_rpc/node.rb +4 -4
- data/lib/nano_rpc/numeric.rb +4 -4
- data/lib/nano_rpc/proxy.rb +15 -9
- data/lib/nano_rpc/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5424fe4a2dbca86499f38bfb5f6edc927b1b0a491e4ccb441944f7d3ce6c06c4
|
4
|
+
data.tar.gz: '08345ae8d7e10c487999192e88deeea27f171926b0a9aaa86ef641ccd37ef1cb'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4b01154aaded6d5f27d846f0b3147b162a26c2a6d918fd7074de848164cf32be1cc4f9ba6987784420fdf385e6feb0cbe44c09143992a09e85035191d2379739
|
7
|
+
data.tar.gz: 044a5c806cf7d2661856f09068e46a9f77ccabc9e8e86700de085d1260bf603d5eece7d4d5016abafb337c6ca05a994431d0952fd50eaf2d8f13002f08953cc2
|
data/lib/nano_rpc/node.rb
CHANGED
@@ -117,9 +117,9 @@ module NanoRpc
|
|
117
117
|
|
118
118
|
def rpc_post(params)
|
119
119
|
response = rest_client_post(url, params)
|
120
|
-
ensure_status_success
|
120
|
+
ensure_status_success(response)
|
121
121
|
data = NanoRpc::Response.new(JSON[response&.body])
|
122
|
-
ensure_valid_response
|
122
|
+
ensure_valid_response(data)
|
123
123
|
|
124
124
|
data
|
125
125
|
end
|
@@ -149,13 +149,13 @@ module NanoRpc
|
|
149
149
|
end
|
150
150
|
end
|
151
151
|
|
152
|
-
def ensure_status_success
|
152
|
+
def ensure_status_success(response)
|
153
153
|
return if response&.code == 200
|
154
154
|
raise NanoRpc::BadRequest,
|
155
155
|
"Error response from node: #{JSON[response&.body]}"
|
156
156
|
end
|
157
157
|
|
158
|
-
def ensure_valid_response
|
158
|
+
def ensure_valid_response(data)
|
159
159
|
return unless data['error']
|
160
160
|
raise NanoRpc::InvalidRequest,
|
161
161
|
"Invalid request: #{data['error']}"
|
data/lib/nano_rpc/numeric.rb
CHANGED
@@ -5,14 +5,14 @@ module NanoRpc
|
|
5
5
|
|
6
6
|
module NanoToRaw
|
7
7
|
def to_raw
|
8
|
-
ensure_valid_nano_amount
|
8
|
+
ensure_valid_nano_amount
|
9
9
|
(self * 10**RAW_PRECISION).floor *
|
10
10
|
10**(RAW_FACTOR - RAW_PRECISION)
|
11
11
|
end
|
12
12
|
|
13
13
|
private
|
14
14
|
|
15
|
-
def ensure_valid_nano_amount
|
15
|
+
def ensure_valid_nano_amount
|
16
16
|
raise NanoRpc::InvalidNanoAmount unless valid_nano_amount?
|
17
17
|
end
|
18
18
|
|
@@ -24,13 +24,13 @@ module NanoRpc
|
|
24
24
|
|
25
25
|
module RawToNano
|
26
26
|
def to_nano
|
27
|
-
ensure_valid_raw_amount
|
27
|
+
ensure_valid_raw_amount
|
28
28
|
(to_f / 10**RAW_FACTOR).round(RAW_PRECISION)
|
29
29
|
end
|
30
30
|
|
31
31
|
private
|
32
32
|
|
33
|
-
def ensure_valid_raw_amount
|
33
|
+
def ensure_valid_raw_amount
|
34
34
|
raise NanoRpc::InvalidRawAmount unless valid_raw_amount?
|
35
35
|
end
|
36
36
|
|
data/lib/nano_rpc/proxy.rb
CHANGED
@@ -34,17 +34,23 @@ module NanoRpc::Proxy
|
|
34
34
|
private
|
35
35
|
|
36
36
|
def define_proxy_method(meth)
|
37
|
-
self.class
|
37
|
+
self.class
|
38
|
+
.send(:define_method, method_alias(meth)) do |args = {}|
|
38
39
|
@meth = meth
|
39
40
|
@call_args = args
|
40
|
-
|
41
|
-
validate_params!
|
41
|
+
validate_params
|
42
42
|
execute_call
|
43
43
|
end
|
44
44
|
end
|
45
45
|
|
46
46
|
def execute_call
|
47
|
-
|
47
|
+
result = node.call(@meth, @call_args)
|
48
|
+
handle_special_methods
|
49
|
+
expose_nested_data(result)
|
50
|
+
end
|
51
|
+
|
52
|
+
def handle_special_methods
|
53
|
+
@seed = @call_args[:seed] if @meth == :wallet_change_seed
|
48
54
|
end
|
49
55
|
|
50
56
|
def base_params
|
@@ -71,10 +77,10 @@ module NanoRpc::Proxy
|
|
71
77
|
data
|
72
78
|
end
|
73
79
|
|
74
|
-
def validate_params
|
80
|
+
def validate_params
|
75
81
|
prepare_params
|
76
|
-
ensure_required_params
|
77
|
-
prevent_forbidden_params
|
82
|
+
ensure_required_params
|
83
|
+
prevent_forbidden_params
|
78
84
|
drop_nil_params
|
79
85
|
end
|
80
86
|
|
@@ -89,14 +95,14 @@ module NanoRpc::Proxy
|
|
89
95
|
@call_args.merge!(base_params) if base_params
|
90
96
|
end
|
91
97
|
|
92
|
-
def ensure_required_params
|
98
|
+
def ensure_required_params
|
93
99
|
missing_params = required_params - opts_keys
|
94
100
|
return unless missing_params.any?
|
95
101
|
raise NanoRpc::MissingParameters,
|
96
102
|
"Missing required parameter(s): #{missing_params.join(', ')}"
|
97
103
|
end
|
98
104
|
|
99
|
-
def prevent_forbidden_params
|
105
|
+
def prevent_forbidden_params
|
100
106
|
forbidden_params = base_param_keys + opts_keys - allowed_params
|
101
107
|
return unless forbidden_params.any?
|
102
108
|
raise NanoRpc::ForbiddenParameter,
|
data/lib/nano_rpc/version.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.14.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-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|