etheruby 0.9.4 → 0.9.5

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
  SHA1:
3
- metadata.gz: 3820276ab8945379dd964e4bb2eb648acdac6f74
4
- data.tar.gz: 9fb6b699587224619e6e73d8d53a4c708b4b731a
3
+ metadata.gz: 2b35960ad21669693e324f1b0fe5a149f969b1fa
4
+ data.tar.gz: 0e449c63f6191bc83c3787b1028f18a74734ed08
5
5
  SHA512:
6
- metadata.gz: a3a66b0a3f071199be7f96e40eea49be3e526616b489db56227c685fa039297905876b75b11e4db695ce2c116bed293c2c49a834ede7bda30e83d4bd930d3a46
7
- data.tar.gz: 92c55c8446de0ff92746e0b6a575bb7e2afb452dea3c0f67654d4767efc82be8afe5cdd3933796b6540a4b086c30b1e437a09092e0cf7c1f8a4db32d6f8c988c
6
+ metadata.gz: a6f60f6a5ca338aa838b236e0063aef7319fd22dd5f7b5976cbb267bdbf4612a9777d465f5a613885d1da9cbda9ac60af3759be04842a46223a6041747d34f47
7
+ data.tar.gz: 6c402d40303b0814bf19b8378588d628748ee6d0daa8098cdf0eac14cb0c1a7d26b2e586c32b12a24d46d15ff2c6761151664b5a966bc78678849324d9b68624
@@ -22,7 +22,7 @@ module Etheruby
22
22
  end
23
23
  end
24
24
 
25
- def returns(*args)
25
+ def returns(args)
26
26
  data[:returns] = args
27
27
  end
28
28
 
@@ -5,7 +5,12 @@ module Etheruby::Encoders
5
5
 
6
6
  class Address < Base
7
7
  def encode
8
- Uint.new(data).encode
8
+ puts data.class
9
+ if data.is_a?(::String)
10
+ Uint.new(data[2..64].to_i(16)).encode
11
+ else
12
+ Uint.new(data).encode
13
+ end
9
14
  end
10
15
 
11
16
  def decode
@@ -4,6 +4,15 @@ require_relative 'encoders/int'
4
4
 
5
5
  module Etheruby
6
6
 
7
+ class ResponseHolder
8
+ def initialize(_values={})
9
+ @values=_values
10
+ end
11
+ def method_missing(sym, *args)
12
+ @values[sym]
13
+ end
14
+ end
15
+
7
16
  class ResponseParser
8
17
 
9
18
  attr_reader :returns, :response
@@ -14,11 +23,12 @@ module Etheruby
14
23
  end
15
24
 
16
25
  def parse
26
+ return unless @returns
17
27
  real_response = @response
18
- values = []
28
+ responses = {}
19
29
  i = 0
20
30
  loop do
21
- return_type = returns[i]
31
+ return_name, return_type = returns.keys[i], returns.values[i]
22
32
  if Etheruby::is_static_type?(return_type)
23
33
  v, s = Etheruby::treat_variable(return_type, real_response, :decode)
24
34
  else
@@ -32,16 +42,12 @@ module Etheruby
32
42
  if v.is_a? Etheruby::Encoders::DynamicArray or v.is_a? Etheruby::Encoders::StaticArray
33
43
  v, s = v.decode
34
44
  end
35
- values << v
36
- break if values.count == returns.count
45
+ responses[return_name] = v
46
+ break if responses.count == returns.count
37
47
  real_response = real_response[s*2..real_response.length]
38
48
  i += 1
39
49
  end
40
- if values.count == 1
41
- values[0]
42
- else
43
- values
44
- end
50
+ ResponseHolder.new(responses)
45
51
  end
46
52
 
47
53
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: etheruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.4
4
+ version: 0.9.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jérémy SEBAN
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-01-19 00:00:00.000000000 Z
11
+ date: 2017-01-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: simplecov