web3-eth 0.2.37 → 0.2.42

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: 548560ab7937b80219f7b83958df97e90c0223f08d45d71cd128b0d594a7f5f7
4
- data.tar.gz: 6da0e5a84c8b06ffe5587d1396a1fb053cc2e16a0d29b44b1895b9a0fee7652b
3
+ metadata.gz: be53500a62d2173534a5185754204a73dea2dca2c939a3600c4849c4fcd09507
4
+ data.tar.gz: b922097f3c0d77f1094d6f3989bc069230a6f957b7b1889159603b72959c7bd2
5
5
  SHA512:
6
- metadata.gz: e760bc9a9c09f2e0d0c003c17c03b20eaa58656c936b2486285480d327b9e78ac73ae3ba8ec791d39142f34015295c58b5514a1afc19c0ed732a223d725529fc
7
- data.tar.gz: 50d0c3a6a45af3136b55d92ef56b73232f8082e694b4c2bed750152caede939e61dfb29895995f3271fd0419d2aff28afd1302e7fb504838f28486b603a22665
6
+ metadata.gz: fb361e8864115ddb6a48578f935867747796509f18db2d6f68850bb81d500c995eb1e493bf9a578439676aae70baca5dd97835cb257b7cc7b6d5262365179923
7
+ data.tar.gz: d1629cbb28c2521be28b83bdb714a0045facf2af92cb3b4512cf116cf0a055b7405c2e2dced47fe97f69c5f0994c7723a22dbf61a0de07ab6efe81d9640dde72
@@ -11,5 +11,6 @@ require "web3/eth/eth_module"
11
11
  require "web3/eth/debug/debug_module"
12
12
  require "web3/eth/debug/transaction_call_trace"
13
13
  require "web3/eth/trace_module"
14
+ require "web3/eth/parity_module"
14
15
  require "web3/eth/etherscan"
15
16
  require "web3/eth/rpc"
@@ -92,7 +92,7 @@ module Web3
92
92
  def do_call web3_rpc, contract_address, args
93
93
  data = '0x' + signature_hash + encode_hex(encode_abi(input_types, args) )
94
94
 
95
- response = web3_rpc.request "eth_call", [{ to: contract_address, data: data}, 'latest']
95
+ response = web3_rpc.eth.call [{ to: contract_address, data: data}, 'latest']
96
96
 
97
97
  string_data = [remove_0x_head(response)].pack('H*')
98
98
  return nil if string_data.empty?
@@ -16,7 +16,10 @@ module Web3::Eth::Debug
16
16
  end
17
17
 
18
18
  def traceBlockByNumber number, tracer = 'callTracer', convert_to_object = true
19
- raw = @web3_rpc.request("#{PREFIX}#{__method__}", [hex(number), {tracer: tracer}])
19
+ timeout = @web3_rpc.connect_options[:read_timeout] || 120
20
+ raw = @web3_rpc.request("#{PREFIX}#{__method__}", [hex(number), {tracer: tracer,
21
+ timeout: "#{timeout}s"}])
22
+ raise raw.first['error'] if (raw.first && raw.first['error'])
20
23
  convert_to_object ? raw.map{|r| TransactionCallTrace.new(r['result'])} : raw
21
24
  end
22
25
 
@@ -0,0 +1,26 @@
1
+ module Web3
2
+ module Eth
3
+
4
+ class ParityModule
5
+
6
+ include Web3::Eth::Utility
7
+
8
+ PREFIX = 'parity_'
9
+
10
+ def initialize web3_rpc
11
+ @web3_rpc = web3_rpc
12
+ end
13
+
14
+ def method_missing m, *args
15
+ @web3_rpc.request "#{PREFIX}#{m}", args[0]
16
+ end
17
+
18
+ def getBlockReceiptsByBlockNumber block
19
+ @web3_rpc.request("#{PREFIX}getBlockReceipts", [hex(block)]).collect{|tr|
20
+ TransactionReceipt.new tr
21
+ }
22
+ end
23
+
24
+ end
25
+ end
26
+ end
@@ -17,7 +17,7 @@ module Web3
17
17
  DEFAULT_HOST = 'localhost'
18
18
  DEFAULT_PORT = 8545
19
19
 
20
- attr_reader :eth, :trace
20
+ attr_reader :eth, :connect_options
21
21
 
22
22
  def initialize host: DEFAULT_HOST, port: DEFAULT_PORT, connect_options: DEFAULT_CONNECT_OPTIONS
23
23
 
@@ -27,15 +27,20 @@ module Web3
27
27
  @connect_options = connect_options
28
28
 
29
29
  @eth = EthModule.new self
30
- @trace = TraceModule.new self
31
30
 
32
31
  end
33
32
 
33
+ def trace
34
+ @trace ||= TraceModule.new(self)
35
+ end
34
36
 
35
- def debug
36
- Debug::DebugModule.new self
37
+ def parity
38
+ @parity ||= ParityModule.new(self)
37
39
  end
38
40
 
41
+ def debug
42
+ @debug ||= Debug::DebugModule.new(self)
43
+ end
39
44
 
40
45
  def request method, params = nil
41
46
 
@@ -48,7 +53,7 @@ module Web3
48
53
 
49
54
  raise "Error code #{response.code} on request #{@uri.to_s} #{request.body}" unless response.kind_of? Net::HTTPOK
50
55
 
51
- body = JSON.parse(response.body)
56
+ body = JSON.parse(response.body, max_nesting: 1500)
52
57
 
53
58
  if body['result']
54
59
  body['result']
@@ -21,6 +21,12 @@ module Web3
21
21
  }
22
22
  end
23
23
 
24
+ def tracesByBlockNumber block
25
+ @web3_rpc.request("#{PREFIX}block", [hex(block)]).collect{|t|
26
+ CallTrace.new t
27
+ }
28
+ end
29
+
24
30
  end
25
31
  end
26
32
  end
@@ -1,5 +1,5 @@
1
1
  module Web3
2
2
  module Eth
3
- VERSION = "0.2.37"
3
+ VERSION = "0.2.42"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: web3-eth
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.37
4
+ version: 0.2.42
5
5
  platform: ruby
6
6
  authors:
7
7
  - studnev
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-04-24 00:00:00.000000000 Z
11
+ date: 2020-06-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rlp
@@ -110,6 +110,7 @@ files:
110
110
  - lib/web3/eth/eth_module.rb
111
111
  - lib/web3/eth/etherscan.rb
112
112
  - lib/web3/eth/log.rb
113
+ - lib/web3/eth/parity_module.rb
113
114
  - lib/web3/eth/rpc.rb
114
115
  - lib/web3/eth/trace_module.rb
115
116
  - lib/web3/eth/transaction.rb