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 +5 -5
- data/lib/web3/eth.rb +2 -0
- data/lib/web3/eth/block.rb +24 -0
- data/lib/web3/eth/debug/debug_module.rb +36 -0
- data/lib/web3/eth/debug/transaction_call_trace.rb +94 -0
- data/lib/web3/eth/rpc.rb +5 -0
- data/lib/web3/eth/transaction.rb +9 -0
- data/lib/web3/eth/transaction_receipt.rb +4 -1
- data/lib/web3/eth/utility.rb +1 -1
- data/lib/web3/eth/version.rb +1 -1
- metadata +5 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: ff7384895fb7c2f2e57c2746641df622093a044729ff074018155d24ed7b53e2
|
4
|
+
data.tar.gz: 56bc56bac2729a586f8262f3caf769eea52b118a45bd1dde75126f64bc9bdd2c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4d0ce15cfeb520859f31cfc1e1c1acfbb1d641429da30b88d8a820da1fa1cee58b2d1c44436cb4b0d05d1339993cc9c4058a46eea6e642719feec7d762b8f3a3
|
7
|
+
data.tar.gz: 4d194ecedf614841db264a3880737c59f63a0102bfee4cd56c09091f7cf8af4649dcd4ea5ee475e48d2a564aa2ec8b21e065c94e5d29114fc93c497b729e75be
|
data/lib/web3/eth.rb
CHANGED
@@ -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"
|
data/lib/web3/eth/block.rb
CHANGED
@@ -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
|
data/lib/web3/eth/rpc.rb
CHANGED
data/lib/web3/eth/transaction.rb
CHANGED
data/lib/web3/eth/utility.rb
CHANGED
data/lib/web3/eth/version.rb
CHANGED
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.
|
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:
|
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
|
-
|
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.
|