Class: Ethname::Record

Inherits:
Object
  • Object
show all
Defined in:
lib/ethname/directory.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(address: nil, names: [], interfaces: []) ⇒ Record

Returns a new instance of Record.



35
36
37
38
39
40
41
# File 'lib/ethname/directory.rb', line 35

def initialize( address: nil,
                names: [],
                interfaces: [] )
   @address    = address
   @names      = names
   @interfaces = interfaces
end

Instance Attribute Details

#addressObject (readonly) Also known as: addr

Returns the value of attribute address.



33
34
35
# File 'lib/ethname/directory.rb', line 33

def address
  @address
end

#interfacesObject (readonly)

Returns the value of attribute interfaces.



33
34
35
# File 'lib/ethname/directory.rb', line 33

def interfaces
  @interfaces
end

#namesObject (readonly)

Returns the value of attribute names.



33
34
35
# File 'lib/ethname/directory.rb', line 33

def names
  @names
end

Class Method Details

.directoryObject



5
# File 'lib/ethname/directory.rb', line 5

def self.directory()  Ethname.directory; end

.find(addr) ⇒ Object



7
# File 'lib/ethname/directory.rb', line 7

def self.find( addr )  directory.find_record( addr ); end

.find_by(name:) ⇒ Object



8
# File 'lib/ethname/directory.rb', line 8

def self.find_by( name: ) directory.find_record_by( name: name ); end

.parse(row) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/ethname/directory.rb', line 12

def self.parse( row )
  ## note: always downcase addresses for now
  ##   (do NOT use addresss checksum with mixed-hexchars) - why? why not?
   address = row['address'].downcase

   names   = row['names'].split('|')
   names   =  names.map {|name| name.strip }   ## remove leading & trailing withespaces

   ## note: always downcase and normalize (remove space and - for now)
   #  - why? why not?
   ##   e.g. ERC20 => erc20
   ##        ERC-20 | ERC-721 => erc20  | erc721
   interfaces = (row['interfaces'] || '').split('|')
   interfaces = interfaces.map {|inter| inter.downcase.gsub(/[ -]/, '' ) }

   new( address:    address,
        names:      names,
        interfaces: interfaces )
end

Instance Method Details

#erc20?Boolean

Returns:

  • (Boolean)


46
# File 'lib/ethname/directory.rb', line 46

def erc20?()  @interfaces.include?('erc20' ); end

#erc721?Boolean

Returns:

  • (Boolean)


47
# File 'lib/ethname/directory.rb', line 47

def erc721?() @interfaces.include?('erc721' ); end

#nameObject



44
# File 'lib/ethname/directory.rb', line 44

def name() @names[0]; end