eth 0.5.8 → 0.5.10

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.
Files changed (53) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/spec.yml +2 -1
  3. data/CHANGELOG.md +32 -0
  4. data/CODE_OF_CONDUCT.md +122 -0
  5. data/CONTRIBUTING.md +61 -0
  6. data/LICENSE.txt +1 -1
  7. data/README.md +6 -2
  8. data/SECURITY.md +24 -0
  9. data/abi/ens_registry.json +436 -0
  10. data/abi/ens_resolver.json +885 -0
  11. data/lib/eth/abi/event.rb +1 -1
  12. data/lib/eth/abi/type.rb +46 -12
  13. data/lib/eth/abi.rb +72 -14
  14. data/lib/eth/address.rb +2 -2
  15. data/lib/eth/api.rb +1 -1
  16. data/lib/eth/chain.rb +19 -7
  17. data/lib/eth/client/http.rb +1 -1
  18. data/lib/eth/client/http_auth.rb +1 -1
  19. data/lib/eth/client/ipc.rb +1 -1
  20. data/lib/eth/client.rb +118 -16
  21. data/lib/eth/constant.rb +1 -1
  22. data/lib/eth/contract/event.rb +1 -1
  23. data/lib/eth/contract/function.rb +2 -2
  24. data/lib/eth/contract/function_input.rb +7 -2
  25. data/lib/eth/contract/function_output.rb +1 -1
  26. data/lib/eth/contract/initializer.rb +1 -1
  27. data/lib/eth/contract.rb +1 -1
  28. data/lib/eth/eip712.rb +2 -2
  29. data/lib/eth/ens/coin_type.rb +50 -0
  30. data/lib/eth/ens/resolver.rb +68 -24
  31. data/lib/eth/ens.rb +28 -0
  32. data/lib/eth/key/decrypter.rb +1 -1
  33. data/lib/eth/key/encrypter.rb +1 -1
  34. data/lib/eth/key.rb +5 -5
  35. data/lib/eth/rlp/decoder.rb +2 -2
  36. data/lib/eth/rlp/encoder.rb +3 -3
  37. data/lib/eth/rlp/sedes/big_endian_int.rb +1 -1
  38. data/lib/eth/rlp/sedes/binary.rb +2 -2
  39. data/lib/eth/rlp/sedes/list.rb +5 -5
  40. data/lib/eth/rlp/sedes.rb +4 -4
  41. data/lib/eth/rlp.rb +1 -1
  42. data/lib/eth/signature.rb +4 -4
  43. data/lib/eth/solidity.rb +5 -3
  44. data/lib/eth/tx/eip1559.rb +3 -3
  45. data/lib/eth/tx/eip2930.rb +3 -3
  46. data/lib/eth/tx/legacy.rb +3 -3
  47. data/lib/eth/tx.rb +5 -5
  48. data/lib/eth/unit.rb +1 -1
  49. data/lib/eth/util.rb +14 -14
  50. data/lib/eth/version.rb +2 -2
  51. data/lib/eth.rb +2 -2
  52. metadata +9 -3
  53. data/abis/ens.json +0 -422
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2016-2022 The Ruby-Eth Contributors
1
+ # Copyright (c) 2016-2023 The Ruby-Eth Contributors
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -78,7 +78,7 @@ module Eth
78
78
  # @raise [DeserializationError] if provided serial is of wrong type.
79
79
  # @raise [DeserializationError] if provided serial is of wrong length.
80
80
  def deserialize(serial)
81
- raise DeserializationError, "Objects of type #{serial.class} cannot be deserialized" unless Util.is_primitive? serial
81
+ raise DeserializationError, "Objects of type #{serial.class} cannot be deserialized" unless Util.primitive? serial
82
82
  raise DeserializationError, "#{serial.class} has invalid length" unless valid_length? serial.size
83
83
  serial
84
84
  end
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2016-2022 The Ruby-Eth Contributors
1
+ # Copyright (c) 2016-2023 The Ruby-Eth Contributors
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -34,9 +34,9 @@ module Eth
34
34
  super()
35
35
  @strict = strict
36
36
  elements.each do |e|
37
- if Sedes.is_sedes?(e)
37
+ if Sedes.sedes?(e)
38
38
  push e
39
- elsif Util.is_list?(e)
39
+ elsif Util.list?(e)
40
40
  push List.new(elements: e)
41
41
  else
42
42
  raise TypeError, "Instances of List must only contain sedes objects or nested sequences thereof."
@@ -51,7 +51,7 @@ module Eth
51
51
  # @raise [SerializationError] if provided array is not a sequence.
52
52
  # @raise [SerializationError] if provided array is of wrong length.
53
53
  def serialize(obj)
54
- raise SerializationError, "Can only serialize sequences" unless Util.is_list?(obj)
54
+ raise SerializationError, "Can only serialize sequences" unless Util.list?(obj)
55
55
  raise SerializationError, "List has wrong length" if (@strict && self.size != obj.size) || self.size < obj.size
56
56
  result = []
57
57
  obj.zip(self).each_with_index do |(element, sedes), i|
@@ -67,7 +67,7 @@ module Eth
67
67
  # @raise [DeserializationError] if provided serial is not a sequence.
68
68
  # @raise [DeserializationError] if provided serial is of wrong length.
69
69
  def deserialize(serial)
70
- raise DeserializationError, "Can only deserialize sequences" unless Util.is_list?(serial)
70
+ raise DeserializationError, "Can only deserialize sequences" unless Util.list?(serial)
71
71
  raise DeserializationError, "List has wrong length" if @strict && serial.size != self.size
72
72
  result = []
73
73
  len = [serial.size, self.size].min
data/lib/eth/rlp/sedes.rb CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2016-2022 The Ruby-Eth Contributors
1
+ # Copyright (c) 2016-2023 The Ruby-Eth Contributors
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -39,10 +39,10 @@ module Eth
39
39
  # @param obj [Object] the Ruby object for which to find a sedes object.
40
40
  # @raise [TypeError] if no appropriate sedes could be found.
41
41
  def infer(obj)
42
- return obj.class if is_sedes? obj.class
42
+ return obj.class if sedes? obj.class
43
43
  return big_endian_int if obj.is_a?(Integer) && obj >= 0
44
44
  return binary if Binary.valid_type? obj
45
- return List.new(elements: obj.map { |item| infer item }) if Util.is_list? obj
45
+ return List.new(elements: obj.map { |item| infer item }) if Util.list? obj
46
46
  raise TypeError, "Did not find sedes handling type #{obj.class.name}"
47
47
  end
48
48
 
@@ -50,7 +50,7 @@ module Eth
50
50
  #
51
51
  # @param obj [Object] the object to check.
52
52
  # @return [Boolean] true if it's serializable and deserializable.
53
- def is_sedes?(obj)
53
+ def sedes?(obj)
54
54
  obj.respond_to?(:serialize) && obj.respond_to?(:deserialize)
55
55
  end
56
56
 
data/lib/eth/rlp.rb CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2016-2022 The Ruby-Eth Contributors
1
+ # Copyright (c) 2016-2023 The Ruby-Eth Contributors
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
data/lib/eth/signature.rb CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2016-2022 The Ruby-Eth Contributors
1
+ # Copyright (c) 2016-2023 The Ruby-Eth Contributors
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -48,7 +48,7 @@ module Eth
48
48
  # @return [String, String, String] the `r`, `s`, and `v` values.
49
49
  # @raise [SignatureError] if signature is of unknown size.
50
50
  def dissect(signature)
51
- signature = Util.bin_to_hex signature unless Util.is_hex? signature
51
+ signature = Util.bin_to_hex signature unless Util.hex? signature
52
52
  signature = Util.remove_hex_prefix signature
53
53
  if signature.size < 130
54
54
  raise SignatureError, "Unknown signature length #{signature.size}!"
@@ -70,7 +70,7 @@ module Eth
70
70
  context = Secp256k1::Context.new
71
71
  r, s, v = dissect signature
72
72
  v = v.to_i(16)
73
- if !Chain.is_ledger? v and !Chain.is_legacy? v
73
+ if !Chain.ledger? v and !Chain.legacy? v
74
74
  min_v = 2 * chain_id + 35
75
75
  raise SignatureError, "Invalid signature v byte #{v} for chain ID #{chain_id}!" if v < min_v
76
76
  end
@@ -126,7 +126,7 @@ module Eth
126
126
 
127
127
  # recover message from personal_sign
128
128
  recovered_key = personal_recover blob, signature, chain_id
129
- elsif blob.instance_of? String and (Util.is_hex? blob or blob.encoding == Encoding::ASCII_8BIT)
129
+ elsif blob.instance_of? String and (Util.hex? blob or blob.encoding == Encoding::ASCII_8BIT)
130
130
 
131
131
  # if nothing else, recover from arbitrary signature
132
132
  recovered_key = recover blob, signature, chain_id
data/lib/eth/solidity.rb CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2016-2022 The Ruby-Eth Contributors
1
+ # Copyright (c) 2016-2023 The Ruby-Eth Contributors
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -42,8 +42,10 @@ module Eth
42
42
  # @return [Array] JSON containing the compiled contract and ABI for all contracts.
43
43
  def compile(contract)
44
44
  raise Errno::ENOENT, "Contract file not found: #{contract}" unless File.exist? contract
45
- command = "#{@compiler} --optimize --combined-json bin,abi #{contract}"
46
- output, error, status = Open3.capture3 command
45
+ flag_opt = "--optimize"
46
+ flag_json = "--combined-json=bin,abi"
47
+ path = File.realpath contract
48
+ output, error, status = Open3.capture3 @compiler, flag_opt, flag_json, path
47
49
  raise SystemCallError, "Unable to run solc compiler!" if status.exitstatus === 127
48
50
  raise CompilerError, error unless status.success?
49
51
  json = JSON.parse output
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2016-2022 The Ruby-Eth Contributors
1
+ # Copyright (c) 2016-2023 The Ruby-Eth Contributors
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -231,7 +231,7 @@ module Eth
231
231
  # @raise [Signature::SignatureError] if transaction is already signed.
232
232
  # @raise [Signature::SignatureError] if sender address does not match signing key.
233
233
  def sign(key)
234
- if Tx.is_signed? self
234
+ if Tx.signed? self
235
235
  raise Signature::SignatureError, "Transaction is already signed!"
236
236
  end
237
237
 
@@ -258,7 +258,7 @@ module Eth
258
258
  # @return [String] a raw, RLP-encoded EIP-1559 type transaction object.
259
259
  # @raise [Signature::SignatureError] if the transaction is not yet signed.
260
260
  def encoded
261
- unless Tx.is_signed? self
261
+ unless Tx.signed? self
262
262
  raise Signature::SignatureError, "Transaction is not signed!"
263
263
  end
264
264
  tx_data = []
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2016-2022 The Ruby-Eth Contributors
1
+ # Copyright (c) 2016-2023 The Ruby-Eth Contributors
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -225,7 +225,7 @@ module Eth
225
225
  # @raise [Signature::SignatureError] if transaction is already signed.
226
226
  # @raise [Signature::SignatureError] if sender address does not match signing key.
227
227
  def sign(key)
228
- if Tx.is_signed? self
228
+ if Tx.signed? self
229
229
  raise Signature::SignatureError, "Transaction is already signed!"
230
230
  end
231
231
 
@@ -252,7 +252,7 @@ module Eth
252
252
  # @return [String] a raw, RLP-encoded EIP-2930 type transaction object.
253
253
  # @raise [Signature::SignatureError] if the transaction is not yet signed.
254
254
  def encoded
255
- unless Tx.is_signed? self
255
+ unless Tx.signed? self
256
256
  raise Signature::SignatureError, "Transaction is not signed!"
257
257
  end
258
258
  tx_data = []
data/lib/eth/tx/legacy.rb CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2016-2022 The Ruby-Eth Contributors
1
+ # Copyright (c) 2016-2023 The Ruby-Eth Contributors
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -205,7 +205,7 @@ module Eth
205
205
  # @raise [Signature::SignatureError] if transaction is already signed.
206
206
  # @raise [Signature::SignatureError] if sender address does not match signing key.
207
207
  def sign(key)
208
- if Tx.is_signed? self
208
+ if Tx.signed? self
209
209
  raise Signature::SignatureError, "Transaction is already signed!"
210
210
  end
211
211
 
@@ -230,7 +230,7 @@ module Eth
230
230
  # @return [String] a raw, RLP-encoded legacy transaction.
231
231
  # @raise [Signature::SignatureError] if the transaction is not yet signed.
232
232
  def encoded
233
- unless Tx.is_signed? self
233
+ unless Tx.signed? self
234
234
  raise Signature::SignatureError, "Transaction is not signed!"
235
235
  end
236
236
  tx_data = []
data/lib/eth/tx.rb CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2016-2022 The Ruby-Eth Contributors
1
+ # Copyright (c) 2016-2023 The Ruby-Eth Contributors
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -164,7 +164,7 @@ module Eth
164
164
  def estimate_intrinsic_gas(data = "", list = [])
165
165
  gas = DEFAULT_GAS_LIMIT
166
166
  unless data.nil? or data.empty?
167
- data = Util.hex_to_bin data if Util.is_hex? data
167
+ data = Util.hex_to_bin data if Util.hex? data
168
168
 
169
169
  # count zero bytes
170
170
  zero = data.count ZERO_BYTE
@@ -288,7 +288,7 @@ module Eth
288
288
  data = "" if data.nil?
289
289
 
290
290
  # ensure payload to be binary if it's hex, otherwise we'll treat it raw
291
- data = Util.hex_to_bin data if Util.is_hex? data
291
+ data = Util.hex_to_bin data if Util.hex? data
292
292
  return data
293
293
  end
294
294
 
@@ -305,7 +305,7 @@ module Eth
305
305
 
306
306
  # recursively check the entire array
307
307
  list[index] = sanitize_list value
308
- elsif Util.is_hex? value
308
+ elsif Util.hex? value
309
309
 
310
310
  # only modify if we find a hex value
311
311
  list[index] = Util.hex_to_bin value
@@ -317,7 +317,7 @@ module Eth
317
317
  # Allows to check wether a transaction is signed already.
318
318
  #
319
319
  # @return [Bool] true if transaction is already signed.
320
- def is_signed?(tx)
320
+ def signed?(tx)
321
321
  !tx.signature_r.nil? and tx.signature_r != 0 and
322
322
  !tx.signature_s.nil? and tx.signature_s != 0
323
323
  end
data/lib/eth/unit.rb CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2016-2022 The Ruby-Eth Contributors
1
+ # Copyright (c) 2016-2023 The Ruby-Eth Contributors
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
data/lib/eth/util.rb CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2016-2022 The Ruby-Eth Contributors
1
+ # Copyright (c) 2016-2023 The Ruby-Eth Contributors
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -27,7 +27,7 @@ module Eth
27
27
  # @param str [String] the public key to be converted.
28
28
  # @return [Eth::Address] an Ethereum address.
29
29
  def public_key_to_address(str)
30
- str = hex_to_bin str if is_hex? str
30
+ str = hex_to_bin str if hex? str
31
31
  bytes = keccak256(str[1..-1])[-20..-1]
32
32
  Address.new bin_to_prefixed_hex bytes
33
33
  end
@@ -59,7 +59,7 @@ module Eth
59
59
  def hex_to_bin(hex)
60
60
  raise TypeError, "Value must be an instance of String" unless hex.instance_of? String
61
61
  hex = remove_hex_prefix hex
62
- raise TypeError, "Non-hexadecimal digit found" unless is_hex? hex
62
+ raise TypeError, "Non-hexadecimal digit found" unless hex? hex
63
63
  [hex].pack("H*")
64
64
  end
65
65
 
@@ -68,7 +68,7 @@ module Eth
68
68
  # @param hex [String] a hex-string to be prefixed.
69
69
  # @return [String] a prefixed hex-string.
70
70
  def prefix_hex(hex)
71
- return hex if is_prefixed? hex
71
+ return hex if prefixed? hex
72
72
  return "0x#{hex}"
73
73
  end
74
74
 
@@ -77,7 +77,7 @@ module Eth
77
77
  # @param hex [String] a prefixed hex-string.
78
78
  # @return [String] an unprefixed hex-string.
79
79
  def remove_hex_prefix(hex)
80
- return hex[2..-1] if is_prefixed? hex
80
+ return hex[2..-1] if prefixed? hex
81
81
  return hex
82
82
  end
83
83
 
@@ -93,7 +93,7 @@ module Eth
93
93
  #
94
94
  # @param str [String] a string to be checked.
95
95
  # @return [String] a match if true; `nil` if not.
96
- def is_hex?(str)
96
+ def hex?(str)
97
97
  return false unless str.is_a? String
98
98
  str = remove_hex_prefix str
99
99
  str.match /\A[0-9a-fA-F]*\z/
@@ -103,7 +103,7 @@ module Eth
103
103
  #
104
104
  # @param hex [String] a string to be checked.
105
105
  # @return [String] a match if true; `nil` if not.
106
- def is_prefixed?(hex)
106
+ def prefixed?(hex)
107
107
  hex.match /\A0x/
108
108
  end
109
109
 
@@ -113,7 +113,7 @@ module Eth
113
113
  # @return [String] serialized big endian integer string.
114
114
  # @raise [ArgumentError] if unsigned integer is out of bounds.
115
115
  def serialize_int_to_big_endian(num)
116
- num = num.to_i(16) if is_hex? num
116
+ num = num.to_i(16) if hex? num
117
117
  unless num.is_a? Integer and num >= 0 and num <= Constant::UINT_MAX
118
118
  raise ArgumentError, "Integer invalid or out of range: #{num}"
119
119
  end
@@ -125,7 +125,7 @@ module Eth
125
125
  # @param num [Integer] integer to be converted.
126
126
  # @return [String] packed, big-endian integer string.
127
127
  def int_to_big_endian(num)
128
- hex = num.to_s(16) unless is_hex? num
128
+ hex = num.to_s(16) unless hex? num
129
129
  hex = "0#{hex}" if hex.size.odd?
130
130
  hex_to_bin hex
131
131
  end
@@ -151,7 +151,7 @@ module Eth
151
151
  # @param str [String] binary string to be converted.
152
152
  # @return [Object] the string bytes.
153
153
  def str_to_bytes(str)
154
- is_bytes?(str) ? str : str.b
154
+ bytes?(str) ? str : str.b
155
155
  end
156
156
 
157
157
  # Converts bytes to a binary string.
@@ -166,7 +166,7 @@ module Eth
166
166
  #
167
167
  # @param str [String] a string to check.
168
168
  # @return [Boolean] true if it's an ASCII-8bit encoded byte-string.
169
- def is_bytes?(str)
169
+ def bytes?(str)
170
170
  str && str.instance_of?(String) && str.encoding.name == Constant::BINARY_ENCODING
171
171
  end
172
172
 
@@ -174,7 +174,7 @@ module Eth
174
174
  #
175
175
  # @param item [Object] the item to check.
176
176
  # @return [Boolean] true if it's a string primitive.
177
- def is_primitive?(item)
177
+ def primitive?(item)
178
178
  item.instance_of?(String)
179
179
  end
180
180
 
@@ -182,8 +182,8 @@ module Eth
182
182
  #
183
183
  # @param item [Object] the item to check.
184
184
  # @return [Boolean] true if it's a list.
185
- def is_list?(item)
186
- !is_primitive?(item) && item.respond_to?(:each)
185
+ def list?(item)
186
+ !primitive?(item) && item.respond_to?(:each)
187
187
  end
188
188
 
189
189
  # Ceil and integer to the next multiple of 32 bytes.
data/lib/eth/version.rb CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2016-2022 The Ruby-Eth Contributors
1
+ # Copyright (c) 2016-2023 The Ruby-Eth Contributors
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -16,5 +16,5 @@
16
16
  module Eth
17
17
 
18
18
  # Defines the version of the {Eth} module.
19
- VERSION = "0.5.8".freeze
19
+ VERSION = "0.5.10".freeze
20
20
  end
data/lib/eth.rb CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2016-2022 The Ruby-Eth Contributors
1
+ # Copyright (c) 2016-2023 The Ruby-Eth Contributors
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -32,5 +32,5 @@ require "eth/solidity"
32
32
  require "eth/tx"
33
33
  require "eth/unit"
34
34
  require "eth/util"
35
- require "eth/ens/resolver"
35
+ require "eth/ens"
36
36
  require "eth/version"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: eth
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.8
4
+ version: 0.5.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Steve Ellis
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2022-11-30 00:00:00.000000000 Z
12
+ date: 2023-01-02 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: keccak
@@ -105,11 +105,15 @@ files:
105
105
  - ".yardopts"
106
106
  - AUTHORS.txt
107
107
  - CHANGELOG.md
108
+ - CODE_OF_CONDUCT.md
109
+ - CONTRIBUTING.md
108
110
  - Gemfile
109
111
  - LICENSE.txt
110
112
  - README.md
111
113
  - Rakefile
112
- - abis/ens.json
114
+ - SECURITY.md
115
+ - abi/ens_registry.json
116
+ - abi/ens_resolver.json
113
117
  - bin/console
114
118
  - bin/setup
115
119
  - codecov.yml
@@ -133,6 +137,8 @@ files:
133
137
  - lib/eth/contract/function_output.rb
134
138
  - lib/eth/contract/initializer.rb
135
139
  - lib/eth/eip712.rb
140
+ - lib/eth/ens.rb
141
+ - lib/eth/ens/coin_type.rb
136
142
  - lib/eth/ens/resolver.rb
137
143
  - lib/eth/key.rb
138
144
  - lib/eth/key/decrypter.rb