nano_rpc 0.13.0 → 0.14.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|