web3-eth 0.2.31 → 0.2.32

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 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.