eth-patched 0.4.13

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.
@@ -0,0 +1,3 @@
1
+ module Eth
2
+ VERSION = "0.4.13"
3
+ end
data/lib/eth.rb ADDED
@@ -0,0 +1,69 @@
1
+ require 'digest/sha3'
2
+ require 'ffi'
3
+ require 'money-tree'
4
+ require 'rlp'
5
+
6
+ module Eth
7
+ BYTE_ZERO = "\x00".freeze
8
+ UINT_MAX = 2**256 - 1
9
+
10
+ autoload :Address, 'eth/address'
11
+ autoload :Gas, 'eth/gas'
12
+ autoload :Key, 'eth/key'
13
+ autoload :OpenSsl, 'eth/open_ssl'
14
+ autoload :Secp256k1, 'eth/secp256k1'
15
+ autoload :Sedes, 'eth/sedes'
16
+ autoload :Tx, 'eth/tx'
17
+ autoload :Utils, 'eth/utils'
18
+
19
+ class << self
20
+ def configure
21
+ yield(configuration)
22
+ end
23
+
24
+ def replayable_chain_id
25
+ 27
26
+ end
27
+
28
+ def chain_id
29
+ configuration.chain_id
30
+ end
31
+
32
+ def v_base
33
+ replayable_chain_id
34
+ end
35
+
36
+ def replayable_v?(v)
37
+ [replayable_chain_id, replayable_chain_id + 1].include? v
38
+ end
39
+
40
+ def tx_data_hex?
41
+ !!configuration.tx_data_hex
42
+ end
43
+
44
+ def chain_id_from_signature(signature)
45
+ return nil if Eth.replayable_v?(signature[:v])
46
+
47
+ cid = (signature[:v] - 35) / 2
48
+ (cid < 1) ? nil : cid
49
+ end
50
+
51
+ private
52
+
53
+ def configuration
54
+ @configuration ||= Configuration.new
55
+ end
56
+ end
57
+
58
+ class Configuration
59
+ attr_accessor :chain_id, :tx_data_hex
60
+
61
+ def initialize
62
+ self.chain_id = nil
63
+ self.tx_data_hex = true
64
+ end
65
+ end
66
+
67
+ class ValidationError < StandardError; end
68
+ class InvalidTransaction < ValidationError; end
69
+ end
metadata ADDED
@@ -0,0 +1,181 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: eth-patched
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.4.13
5
+ platform: ruby
6
+ authors:
7
+ - Steve Ellis
8
+ - Afri Schoedon
9
+ autorequire:
10
+ bindir: exe
11
+ cert_chain: []
12
+ date: 2021-09-23 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: digest-sha3-patched-ruby-3
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - "~>"
19
+ - !ruby/object:Gem::Version
20
+ version: '1.1'
21
+ type: :runtime
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - "~>"
26
+ - !ruby/object:Gem::Version
27
+ version: '1.1'
28
+ - !ruby/object:Gem::Dependency
29
+ name: ffi
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - "~>"
33
+ - !ruby/object:Gem::Version
34
+ version: '1.0'
35
+ type: :runtime
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - "~>"
40
+ - !ruby/object:Gem::Version
41
+ version: '1.0'
42
+ - !ruby/object:Gem::Dependency
43
+ name: money-tree
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - "~>"
47
+ - !ruby/object:Gem::Version
48
+ version: 0.10.0
49
+ type: :runtime
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - "~>"
54
+ - !ruby/object:Gem::Version
55
+ version: 0.10.0
56
+ - !ruby/object:Gem::Dependency
57
+ name: rlp
58
+ requirement: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - "~>"
61
+ - !ruby/object:Gem::Version
62
+ version: 0.7.3
63
+ type: :runtime
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - "~>"
68
+ - !ruby/object:Gem::Version
69
+ version: 0.7.3
70
+ - !ruby/object:Gem::Dependency
71
+ name: scrypt
72
+ requirement: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - "~>"
75
+ - !ruby/object:Gem::Version
76
+ version: 3.0.6
77
+ type: :runtime
78
+ prerelease: false
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - "~>"
82
+ - !ruby/object:Gem::Version
83
+ version: 3.0.6
84
+ - !ruby/object:Gem::Dependency
85
+ name: pry
86
+ requirement: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - "~>"
89
+ - !ruby/object:Gem::Version
90
+ version: '0.1'
91
+ type: :development
92
+ prerelease: false
93
+ version_requirements: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - "~>"
96
+ - !ruby/object:Gem::Version
97
+ version: '0.1'
98
+ - !ruby/object:Gem::Dependency
99
+ name: rake
100
+ requirement: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - ">="
103
+ - !ruby/object:Gem::Version
104
+ version: 12.3.3
105
+ type: :development
106
+ prerelease: false
107
+ version_requirements: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - ">="
110
+ - !ruby/object:Gem::Version
111
+ version: 12.3.3
112
+ - !ruby/object:Gem::Dependency
113
+ name: rspec
114
+ requirement: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - "~>"
117
+ - !ruby/object:Gem::Version
118
+ version: '3.0'
119
+ type: :development
120
+ prerelease: false
121
+ version_requirements: !ruby/object:Gem::Requirement
122
+ requirements:
123
+ - - "~>"
124
+ - !ruby/object:Gem::Version
125
+ version: '3.0'
126
+ description: Library to build, parse, and sign Ethereum transactions.
127
+ email:
128
+ - email@steveell.is
129
+ - gems@q9f.cc
130
+ executables: []
131
+ extensions: []
132
+ extra_rdoc_files: []
133
+ files:
134
+ - ".gitignore"
135
+ - ".gitmodules"
136
+ - ".rspec"
137
+ - ".travis.yml"
138
+ - CHANGELOG.md
139
+ - Gemfile
140
+ - LICENSE.txt
141
+ - README.md
142
+ - Rakefile
143
+ - bin/console
144
+ - bin/setup
145
+ - eth.gemspec
146
+ - lib/eth.rb
147
+ - lib/eth/address.rb
148
+ - lib/eth/gas.rb
149
+ - lib/eth/key.rb
150
+ - lib/eth/key/decrypter.rb
151
+ - lib/eth/key/encrypter.rb
152
+ - lib/eth/open_ssl.rb
153
+ - lib/eth/secp256k1.rb
154
+ - lib/eth/sedes.rb
155
+ - lib/eth/tx.rb
156
+ - lib/eth/utils.rb
157
+ - lib/eth/version.rb
158
+ homepage: https://github.com/q9f/ruby-eth
159
+ licenses:
160
+ - MIT
161
+ metadata: {}
162
+ post_install_message:
163
+ rdoc_options: []
164
+ require_paths:
165
+ - lib
166
+ required_ruby_version: !ruby/object:Gem::Requirement
167
+ requirements:
168
+ - - ">="
169
+ - !ruby/object:Gem::Version
170
+ version: '0'
171
+ required_rubygems_version: !ruby/object:Gem::Requirement
172
+ requirements:
173
+ - - ">="
174
+ - !ruby/object:Gem::Version
175
+ version: '0'
176
+ requirements: []
177
+ rubygems_version: 3.2.21
178
+ signing_key:
179
+ specification_version: 4
180
+ summary: Simple API to sign Ethereum transactions.
181
+ test_files: []