web3-eth 0.2.31 → 0.2.32

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
- SHA1:
3
- metadata.gz: 5a96b2c928d43e0b8d5f864a5fb3e3eaab4326b7
4
- data.tar.gz: e321e093d3bba6ea0da9efb17cabc732c48c0973
2
+ SHA256:
3
+ metadata.gz: ff7384895fb7c2f2e57c2746641df622093a044729ff074018155d24ed7b53e2
4
+ data.tar.gz: 56bc56bac2729a586f8262f3caf769eea52b118a45bd1dde75126f64bc9bdd2c
5
5
  SHA512:
6
- metadata.gz: eecc45107cd03e153b1f0ca2c7b3396d9d6f037600ea74c6a4b5fbf90de3e303aa65832fe5adf1ef0db742aa6f8700e4efbbef16e2d71e72948d7d608aadbe9e
7
- data.tar.gz: cd7c69d5da88f740406a5a95360747d6e232000db7a9f2e509ba640f100c5ad8adb0fc2fc8f80d6a4cd9438da58d4d6c42b692f988c981f1ed5c9adb2cbd296a
6
+ metadata.gz: 4d0ce15cfeb520859f31cfc1e1c1acfbb1d641429da30b88d8a820da1fa1cee58b2d1c44436cb4b0d05d1339993cc9c4058a46eea6e642719feec7d762b8f3a3
7
+ data.tar.gz: 4d194ecedf614841db264a3880737c59f63a0102bfee4cd56c09091f7cf8af4649dcd4ea5ee475e48d2a564aa2ec8b21e065c94e5d29114fc93c497b729e75be
@@ -8,6 +8,8 @@ require "web3/eth/call_trace"
8
8
  require "web3/eth/log"
9
9
  require "web3/eth/transaction_receipt"
10
10
  require "web3/eth/eth_module"
11
+ require "web3/eth/debug/debug_module"
12
+ require "web3/eth/debug/transaction_call_trace"
11
13
  require "web3/eth/trace_module"
12
14
  require "web3/eth/etherscan"
13
15
  require "web3/eth/rpc"
@@ -27,6 +27,30 @@ module Web3
27
27
  from_hex number
28
28
  end
29
29
 
30
+ def block_difficulty
31
+ from_hex difficulty
32
+ end
33
+
34
+ def block_gasLimit
35
+ from_hex gasLimit
36
+ end
37
+
38
+ def block_gasUsed
39
+ from_hex gasUsed
40
+ end
41
+
42
+ def block_nonce
43
+ from_hex nonce
44
+ end
45
+
46
+ def block_size
47
+ from_hex size
48
+ end
49
+
50
+ def block_totalDifficulty
51
+ from_hex totalDifficulty
52
+ end
53
+
30
54
  end
31
55
 
32
56
  end
@@ -0,0 +1,36 @@
1
+ module Web3::Eth::Debug
2
+
3
+ class DebugModule
4
+
5
+ include Web3::Eth::Utility
6
+
7
+ PREFIX = 'debug_'
8
+
9
+ def initialize web3_rpc
10
+ @web3_rpc = web3_rpc
11
+ end
12
+
13
+ def traceTransaction hash, tracer = 'callTracer', convert_to_object = true
14
+ raw = @web3_rpc.request("#{PREFIX}#{__method__}", [hash, {tracer: tracer}])
15
+ convert_to_object ? TransactionCallTrace.new(raw) : raw
16
+ end
17
+
18
+ def traceBlockByNumber number, tracer = 'callTracer', convert_to_object = true
19
+ raw = @web3_rpc.request("#{PREFIX}#{__method__}", [hex(number), {tracer: tracer}])
20
+ convert_to_object ? raw.map{|r| TransactionCallTrace.new(r['result'])} : raw
21
+ end
22
+
23
+ def traceBlockByHash hash, tracer = 'callTracer', convert_to_object = true
24
+ raw = @web3_rpc.request("#{PREFIX}#{__method__}", [hash, {tracer: tracer}])
25
+ convert_to_object ? raw.map{|r| TransactionCallTrace.new(r['result'])} : raw
26
+ end
27
+
28
+
29
+ def method_missing m, *args
30
+ @web3_rpc.request "#{PREFIX}#{m}", args[0]
31
+ end
32
+
33
+
34
+ end
35
+
36
+ end
@@ -0,0 +1,94 @@
1
+ module Web3::Eth::Debug
2
+
3
+ class TransactionCallTrace
4
+
5
+ include Web3::Eth::Utility
6
+
7
+ attr_reader :raw_data, :calls, :traceAddress
8
+ def initialize raw, traceAddress = []
9
+ @raw_data = raw
10
+ @traceAddress = traceAddress
11
+ @calls = raw['calls'] ? raw['calls'].each_with_index.map{|c,i| TransactionCallTrace.new c, (traceAddress + [i]) } : []
12
+ end
13
+
14
+ # CALL STATICCALL DELEGATECALL CREATE SELFDESTRUCT
15
+ def type
16
+ raw_data['type']
17
+ end
18
+
19
+ def creates
20
+ (type=='CREATE' || type=='CREATE2') ? to : nil
21
+ end
22
+
23
+ def method_hash
24
+ if input && input.length>=10
25
+ input[2...10]
26
+ else
27
+ nil
28
+ end
29
+ end
30
+
31
+ def suicide?
32
+ type=='SELFDESTRUCT'
33
+ end
34
+
35
+ def from
36
+ raw_data['from']
37
+ end
38
+
39
+ def to
40
+ raw_data['to']
41
+ end
42
+
43
+ def value_wei
44
+ from_hex raw_data['value']
45
+ end
46
+
47
+ def value_eth
48
+ wei_to_ether value_wei
49
+ end
50
+
51
+ def gas
52
+ from_hex raw_data['gas']
53
+ end
54
+
55
+ def gas_used
56
+ from_hex raw_data['gasUsed']
57
+ end
58
+
59
+ def input
60
+ raw_data['input']
61
+ end
62
+
63
+ def output
64
+ raw_data['output']
65
+ end
66
+
67
+ def time
68
+ raw_data['time']
69
+ end
70
+
71
+ def error
72
+ raw_data['error']
73
+ end
74
+
75
+ def success?
76
+ !raw_data['error']
77
+ end
78
+
79
+ # suffix # 0xa1 0x65 'b' 'z' 'z' 'r' '0' 0x58 0x20 <32 bytes swarm hash> 0x00 0x29
80
+ # look http://solidity.readthedocs.io/en/latest/metadata.html for details
81
+ def call_input_data
82
+ if creates && input
83
+ input[/a165627a7a72305820\w{64}0029(\w*)/,1]
84
+ elsif input && input.length>10
85
+ input[10..input.length]
86
+ else
87
+ []
88
+ end
89
+ end
90
+
91
+ end
92
+
93
+
94
+ end
@@ -32,6 +32,11 @@ module Web3
32
32
  end
33
33
 
34
34
 
35
+ def debug
36
+ Debug::DebugModule.new self
37
+ end
38
+
39
+
35
40
  def request method, params = nil
36
41
 
37
42
 
@@ -55,6 +55,15 @@ module Web3
55
55
  wei_to_ether from_hex gasPrice
56
56
  end
57
57
 
58
+ def gasPrice_weth
59
+ from_hex gasPrice
60
+ end
61
+
62
+
63
+ def transaction_nonce
64
+ from_hex nonce
65
+ end
66
+
58
67
 
59
68
  end
60
69
  end
@@ -31,11 +31,14 @@ module Web3
31
31
  from_hex gasUsed
32
32
  end
33
33
 
34
-
35
34
  def cumulative_gas_used
36
35
  from_hex cumulativeGasUsed
37
36
  end
38
37
 
38
+ def transaction_index
39
+ from_hex transactionIndex
40
+ end
41
+
39
42
  end
40
43
  end
41
44
  end
@@ -12,7 +12,7 @@ module Web3
12
12
  end
13
13
 
14
14
  def from_hex h
15
- h.to_i 16
15
+ h.nil? ? 0 : h.to_i(16)
16
16
  end
17
17
 
18
18
  def remove_0x_head(s)
@@ -1,5 +1,5 @@
1
1
  module Web3
2
2
  module Eth
3
- VERSION = "0.2.31"
3
+ VERSION = "0.2.32"
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.31
4
+ version: 0.2.32
5
5
  platform: ruby
6
6
  authors:
7
7
  - studnev
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-09-18 00:00:00.000000000 Z
11
+ date: 2020-03-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rlp
@@ -105,6 +105,8 @@ files:
105
105
  - lib/web3/eth/block.rb
106
106
  - lib/web3/eth/call_trace.rb
107
107
  - lib/web3/eth/contract.rb
108
+ - lib/web3/eth/debug/debug_module.rb
109
+ - lib/web3/eth/debug/transaction_call_trace.rb
108
110
  - lib/web3/eth/eth_module.rb
109
111
  - lib/web3/eth/etherscan.rb
110
112
  - lib/web3/eth/log.rb
@@ -134,8 +136,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
134
136
  - !ruby/object:Gem::Version
135
137
  version: '0'
136
138
  requirements: []
137
- rubyforge_project:
138
- rubygems_version: 2.5.2.3
139
+ rubygems_version: 3.0.3
139
140
  signing_key:
140
141
  specification_version: 4
141
142
  summary: Web3 client to connect to Ethereum node by RPC.