Skip to content

Commit

Permalink
up
Browse files Browse the repository at this point in the history
  • Loading branch information
geraldb committed Jan 27, 2023
1 parent 8885cc1 commit f0c1001
Show file tree
Hide file tree
Showing 14 changed files with 336 additions and 112 deletions.
1 change: 1 addition & 0 deletions ethname/Manifest.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ Rakefile
config/contracts.2017.csv
config/contracts.2021.csv
config/contracts.2022.csv
config/contracts.2023.csv
lib/ethname.rb
lib/ethname/directory.rb
lib/ethname/version.rb
24 changes: 24 additions & 0 deletions ethname/config/contracts.2022.csv
Original file line number Diff line number Diff line change
Expand Up @@ -33,3 +33,27 @@ address, names, interfaces, created
0x6229c811d04501523c6058bfaac29c91bb586268, nouns descriptor v2,, 2022-07-14 14:40:29
0x8761b55af5a703d5855f1865db8fe4dd18e94c53, synth nouns | synthetic nouns,, 2022-07-23 11:31:20



0x8ae5523f76a5711fb6bdca1566df3f4707aec1c4, long live kevin | kevin, , 2022-06-22 03:20:35

0x82e8129dafb2d5f06aeded321fb04628f95ef654, women, , 2022-08-30 05:51:20

0x844da5d5d3c1929229be1d326933307ce29065a8, smiley, , 2022-09-16 00:36:11
0x139cf58d69779eea2edc9d0000a8f9d186d89bbb, pepitos, , 2022-09-23 23:33:23

0x25b4e698bfba060728dee0ca851d536020c79866, peepos, , 2022-10-06 05:58:23

0x7915bf033126fa5fcc4dfa79f9bdd5717ed4ce40, mad masks, , 2022-11-05 04:15:11
0x3b84502df3d36ef2e5318bce5a988460cf349304, teddies, , 2022-11-10 22:58:11
0x9a7d9b8693339f82d65f315f180faa0a558469bd, dick butts, , 2022-11-10 23:56:23
0xcd46fce2daf0f2f5129f74b502667e61b15c89f3, people, , 2022-11-16 11:20:59
0x7c2af580f37c23270dd7c52765073c1601c4ad33, dos phunks, , 2022-11-25 14:19:35
0x9251dec8df720c2adf3b6f46d968107cbbadf4d4, skulls, , 2022-11-26 05:34:59

0xb1bee499b063ee2663b52bfc7a1372296d94e24d, chimps, , 2022-12-04 19:18:47
0xd8a47f76bdca04d1b959cc70d72ae5539812e931, 3d skulls, , 2022-12-10 07:21:35
0xe8a9189218ccd5aa20aca3398e2324ab01ef3bfd, cherry nouns, , 2022-12-10 07:59:35
0xda1d2141154d33cb3b1ce9c87002b07bd24908e9, gatekeepers, , 2022-12-14 02:28:11
0x6255f0e78c520decccb5356d4f51a3df04149a3d, grimmers, , 2022-12-15 10:57:35
0x6c1c678428cc3793a53471c9304fc0372594dbbc, smol phunks | 3d phunks, , 2022-12-21 07:30:23
10 changes: 10 additions & 0 deletions ethname/config/contracts.2023.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
address, names, interfaces, created
0x22a81c80bb6bf4b797acf08351934b46193bddde, novo | novo punks, , 2023-01-08 04:10:59
0x897792d16a46f9e70446638bfc6a0d884b741f9b, pepe burb punks, , 2023-01-10 13:36:47
0x0e10e5e978ba4d1af92eb554cd730c9b97f4e571, pepe blocks, , 2023-01-14 05:37:35
0x5a8e04a84fb2f6ad4002c824045c7c1bde10cb81, frog central, , 2023-01-17 03:42:35
0xe302f509c4a3729791215f74299f1fa626396e5a, gm kevin, , 2023-01-19 00:24:35
0xcce158dd5384b599fc29fe34d83b11ea8fb7a816, death of kevin, , 2023-01-22 12:09:47
0xb0dc51536e2b4950d7d6667748a6be6fc53c3318, cute kevin, , 2023-01-22 16:29:35
0x94cb646dd34b3b0ff7c116208f7f7ff7ac216079, ecc0s, , 2023-01-25 12:38:11
0xe6313d1776e4043d906d5b7221be70cf470f5e87, shiba, , 2023-01-26 02:20:47
1 change: 1 addition & 0 deletions ethname/lib/ethname.rb
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ def self.dir
@dir ||= Directory.read( "#{root}/config/contracts.2017.csv",
"#{root}/config/contracts.2021.csv",
"#{root}/config/contracts.2022.csv",
"#{root}/config/contracts.2023.csv",
)
end
class << self
Expand Down
2 changes: 1 addition & 1 deletion ethname/lib/ethname/version.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
module Ethname
MAJOR = 0
MINOR = 1
PATCH = 2
PATCH = 3
VERSION = [MAJOR,MINOR,PATCH].join('.')

def self.version
Expand Down
26 changes: 26 additions & 0 deletions ethname/sandbox/contractdetails.csv
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,39 @@ blocknumber, timestamp, address, creator, txid
0xd7bcbd, 0x61fcea8a, 0xd12882c8b5d1bccca57c994c6af7d96355590dbd, 0xc874f918f29addeb8d0a377a625fcaa91007ca66, 0xd02314f9638dd3db61c85cfaf4d11dd3abf85952619e7a87aea43c72c6adb3b9
0xd8aa65, 0x62094d9f, 0xaf9ce4b327a3b690abea6f78eccbfefffbea9fdf, 0x3ce6543978f37315e047236139817c1f446300e5, 0xfd08b691d12ff2cf05e7edccd2a311e124bffdfeb528d666c98221c93dd3d648
0xdea450, 0x62599f86, 0x23581767a106ae21c074b2276d25e5c3e136a68b, 0x6c8984baf566db08675310b122bf0be9ea269eca, 0xd4547dc336dd4a0655f11267537964d7641f115ef3d5440d71514e3efba9d210
0xe4f796, 0x62b28a83, 0x8ae5523f76a5711fb6bdca1566df3f4707aec1c4, 0xea208da933c43857683c04bc76e3fd331d7bfdf7, 0xe25e2c321779de5a944ade29fe12787c76836ad47f28476ec86328b7d1479e54
0xe709ec, 0x62d02add, 0x6229c811d04501523c6058bfaac29c91bb586268, 0xac56e6156c9c0c56b6d9a4e8388799f25d7feb86, 0x2d1785073b0eac3fefc126badf6cfee3128639a35e439dcee7255f2397e9d531
0xe756cf, 0x62d42f7c, 0xe9b91d537c3aa5a3fa87275fbd2e4feaaed69bd0, 0xdf12dba344515c98f866af1436245438cd7d8566, 0xf6cca6972347e21871d55febe8f091e1d9d7584919826bce9d5ced237e8dd937
0xe7e9c3, 0x62dbdc08, 0x8761b55af5a703d5855f1865db8fe4dd18e94c53, 0x970a2bafd2bea9f62592e9b036bf07c287078151, 0xd730f037162e1c9602d2881ceb4600b5d595e0032b21a9e77157e668f35e28be
0xeb933c, 0x630da558, 0x82e8129dafb2d5f06aeded321fb04628f95ef654, 0x7ce5c931beea68a6bba6551ff5d993c86fa121c5, 0x598fe35a295878a83f4cd8df737fd9ab9c1a512c8b2065a3a98e6ef641b56e36
0xec0ede, 0x631450d6, 0xad8474ba5a7f6abc52708f171f57fefc5cdc8c1c, 0xfdf474098acdaec5bf8b4f7798b3e64da0d60f57, 0x9623323e2487dc3e1ed8ed3d5d2014bf81119d6b54ca8980e69445259f9ba065
0xecfbaa, 0x6321562e, 0xe5a5520b798c5f67ca1b0657b932656df02595ad, 0x549c01f812e609b80548c9837b2dacb0cb0adc64, 0x2bea1b01e5b23837de243bb1ae0298adcf710a5d26ff25b3b597c44074ac04bd
0xed2996, 0x6323c4fb, 0x844da5d5d3c1929229be1d326933307ce29065a8, 0x7ce5c931beea68a6bba6551ff5d993c86fa121c5, 0x5cc7d322be5a85cb7c0384b0d1c0ec99ebd49b01c427c8c2ae12bfd66a133a1f
0xedf272, 0x632d4a9f, 0x9b66d03fc1eee61a512341058e95f1a68dc3a913, 0xd503b89b39e5d820399e94ba6250b90fa22b9812, 0x88d3c3c0ac27e4ab93624a5de05ecd83e75637a0e434c02d8b7475f5392629a6
0xee06fe, 0x632e4243, 0x139cf58d69779eea2edc9d0000a8f9d186d89bbb, 0x4f04c937a3ad3b77c16d856c9edd683c64e01f45, 0xda4fb6c02fa374b2dd4359e1694dbfd011f552e7d936135583d06caf2718cd17
0xef5dd5, 0x633e6e7f, 0x25b4e698bfba060728dee0ca851d536020c79866, 0xaf2ab6d0e8f69656e7c8c967351de32f0d60fe76, 0xa38be7eaf3603089268746a9634d861a1201c500df19d475324b69d99fce20c0
0xef95d3, 0x634112e7, 0x34625ecaa75c0ea33733a05c584f4cf112c10b6b, 0xf2c0149f0cff4c19b9819d1084f465df0e1b3795, 0xb9f71063933f573385b4a1f076eb9eea74bcb35a26bb6e7e095fe1cdc92db40d
0xf15908, 0x635655e3, 0x2204a94f96d39df3b6bc0298cf068c8c82dc8d61, 0x29323644b5540d20e834578943a2bd91027699b1, 0xa4af8ee34de9681242bdec6b690aa98dc8325f0d7a3719300d7566d5af24ebfa
0xf2a2b4, 0x6365e34f, 0x7915bf033126fa5fcc4dfa79f9bdd5717ed4ce40, 0x1a1427a73b7cb0f4ea3f71c6c8090c4366c8ebe1, 0x526aeee62599e459be8b6a4c692745844e4a3ef9e5527b3228d342e44220620f
0xf34460, 0x636d8203, 0x3b84502df3d36ef2e5318bce5a988460cf349304, 0x4b074b99b7454dc183fe363faca21b2d7b120781, 0x14a480b0a019ebc28de31f708e64101ad825f1ecf31646583f9799dde7f8ab1a
0xf34582, 0x636d8fa7, 0x9a7d9b8693339f82d65f315f180faa0a558469bd, 0x75f52aef21c1692afa9bbe897a31db3002baf6c3, 0xfc0c612f7097eaaf52a0c2bf1cad71dc0dd6165a9cde7be16b5babc48497e025
0xf3deae, 0x6374c79b, 0xcd46fce2daf0f2f5129f74b502667e61b15c89f3, 0xaf7a60900bf698814b7d4f5e3995361f9cee9150, 0xd7c71b931d08b67ff961b77bdf27762cdb1dae8cfb73169dcc1fa279524ae2f5
0xf4ddc3, 0x6380cef7, 0x7c2af580f37c23270dd7c52765073c1601c4ad33, 0xa6933faa928ab80ba00acc4826f536e236b038ae, 0x236e52c4359b5e743cf98a1bde9d90ae4d2f7bb34c9e1371e85ff2a43d719e2f
0xf4ef8a, 0x6381a583, 0x9251dec8df720c2adf3b6f46d968107cbbadf4d4, 0x8b3f6f5c62ff1d8b66dc04ba3cc309e260bc4693, 0x15bbba06d97572cc94912ffe3c9ff47facf38dcf7265ab26e33992dd3dd2c671
0xf5d8d5, 0x638ca497, 0xd8e916c3016be144eb2907778cf972c4b01645fc, 0xc43473fa66237e9af3b2d886ee1205b81b14b2c8, 0x0d073c189b337ced2275e2f717b6ddd596e306de7e594588f12132d7fefb33ac
0xf5df48, 0x638cf297, 0xb1bee499b063ee2663b52bfc7a1372296d94e24d, 0xcb954e171c1bfdadc4af7adb3f4b20bb937b6158, 0xb8dadf50471cf57c32a43b3073359ccdb0b3456e729e9a0f86a2166bca171ad2
0xf66fe1, 0x6393c803, 0x58e90596c2065befd3060767736c829c18f3474c, 0xc43473fa66237e9af3b2d886ee1205b81b14b2c8, 0x92d3a69c4ac96ddd432f1c13e5dbb8bf3d7782489e7ee3538e78a25f2480c34f
0xf678c8, 0x6394337f, 0xd8a47f76bdca04d1b959cc70d72ae5539812e931, 0x019b0ee245fb09aaf92ac93ca3309832b7974681, 0x63b5353d737a0b0cfcd6a7a02e1573a13df4ba5ced7bf5e605ee6f64ec989481
0xf67984, 0x63943c67, 0xe8a9189218ccd5aa20aca3398e2324ab01ef3bfd, 0xc92b56eec24b3405afb08ee7215fd50725fa7df7, 0x3c66f2dd1fd70e0853faade94bdf4f58475c137badf16a3b17b2bf5b7490bfa4
0xf6e2ef, 0x639934bb, 0xda1d2141154d33cb3b1ce9c87002b07bd24908e9, 0xd503b89b39e5d820399e94ba6250b90fa22b9812, 0x38b2d4c39205df341bddaebafbdcc602c107a27380458f6cae87c7837a597103
0xf708ca, 0x639afd9f, 0x6255f0e78c520decccb5356d4f51a3df04149a3d, 0xe38a7e006aaa0d848587606022dc72872fa6b5e3, 0x0f5fec339fb7f164acc56ef5d2d84e25faea62f55f06edc3ea92970910b8a6f0
0xf7aca9, 0x63a2b60f, 0x6c1c678428cc3793a53471c9304fc0372594dbbc, 0x019b0ee245fb09aaf92ac93ca3309832b7974681, 0x16e2f52fc5542b6cf23814cb22cce6bb01c9a4715452fd87b9ec53bf077723d0
0xf9a0ae, 0x63ba4253, 0x22a81c80bb6bf4b797acf08351934b46193bddde, 0x675e19ebf696faaa27aaa7531edd51e2e75a5baa, 0x0326255452a09ebb308ffcb85a81d97ff68ff6327931ac3aaca7381a7306f016
0xf9e3ac, 0x63bd69ef, 0x897792d16a46f9e70446638bfc6a0d884b741f9b, 0x3dd1a54a8f84d34929e182e03371d2a2f4d47002, 0x518c1d8ee889a3137ccd2e64098fb8b12820d5792ac62f046d7f1541d8f90987
0xfa4a36, 0x63c23f9f, 0x0e10e5e978ba4d1af92eb554cd730c9b97f4e571, 0x240b4b8bf7b50806c1823de45f6fb85441867d01, 0x267f695907de3eff5dd959baf0eaae09664712b8c6c0af912819ceeff3514c51
0xfa9bd8, 0x63c6192b, 0x5a8e04a84fb2f6ad4002c824045c7c1bde10cb81, 0x37d245b218ffd8d546b5d16cc1f95442f70ac6ec, 0x9bfd936ad5acd79908bc7b932e3c543c5aad2156d98998c708c91e6990746739
0xfad004, 0x63c88dc3, 0xe302f509c4a3729791215f74299f1fa626396e5a, 0x5d76f8887b6e8bd6b73ed435c935fa8fc2872edb, 0x239b98cf9e22cc709eb6d65801cd7b8f823f049592341aadea4311f974c7455d
0xfb31a9, 0x63cd278b, 0xcce158dd5384b599fc29fe34d83b11ea8fb7a816, 0xbe1c3d1f47707990d0c852589c7e3f1c13da3b00, 0x6f0d84f531b518cbb041d9ce5b06b9d82783f41d7a83732192d132a58640dc2d
0xfb36b9, 0x63cd646f, 0xb0dc51536e2b4950d7d6667748a6be6fc53c3318, 0x42f575ebe22d4be35fe9e5906c7736416d70e58e, 0x1bac8a1f5f6ebdded47764c8b2b123e8dd1435743d315d71fce096b0b022da0f
0xfb862b, 0x63d122b3, 0x94cb646dd34b3b0ff7c116208f7f7ff7ac216079, 0x8caf042685e8740c6dc9d6ac23a28d0be00139e3, 0x46673453163a9adaa61de585d874ed41bcea1c70a74a5c49f041e2db7a10922a
0xfb9621, 0x63d1e37f, 0xe6313d1776e4043d906d5b7221be70cf470f5e87, 0x84bb73064300ab1f539310237b892ca47c58778c, 0xe015aef229ebe54e6e0b788a0b3eeafac1f4a881dffef74d96e3695a63e0c261
68 changes: 68 additions & 0 deletions ethname/sandbox/helper.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
$LOAD_PATH.unshift( "../etherscan-lite/lib" )

require 'ethname'
require 'etherscan-lite'

puts " #{Ethname.directory.size} (contract) address record(s)"



class ContractDetailsCache

def initialize( path )
@path = path
@table = if File.exist?( path )
build_table( read_csv( path ) )
else
{}
end
end

def [](addr)
if @table.has_key?( addr )
@table[ addr ]
else ## fetch missing data
data = Etherscan.getcontractdetails( contractaddress: addr )
## note: add new data to cache
@table[ addr ] = data
data
end
end



def build_table( recs )
h = {}
recs.each do |rec|
## (re)use contractdetails format / hash keys
h[ rec['address'] ] = {
'contractAddress' => rec['address'],
'contractCreator' => rec['creator'],
'txHash' => rec['txid'],
'blockNumber' => rec['blocknumber'],
'timestamp' => rec['timestamp']
}
end
h
end

def save
##############
## save cache - sort by blocknumber
entries = @table.values.sort { |l,r| l['blockNumber'].to_i(16) <=> r['blockNumber'].to_i(16) }
buf = ''
buf << ['blocknumber', 'timestamp', 'address', 'creator', 'txid'].join( ', ' )
buf << "\n"
entries.each do |entry|
buf << [entry['blockNumber'],
entry['timestamp'],
entry['contractAddress'],
entry['contractCreator'],
entry['txHash']
].join( ', ' )
buf << "\n"
end
write_text( @path, buf )
end
end # class ContractDetailsCache

5 changes: 5 additions & 0 deletions ethname/sandbox/inbox.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
names, address




97 changes: 97 additions & 0 deletions ethname/sandbox/inbox.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
##
# check and auto-fill new contract candidates in inbox
#
# to run use
# ruby -I ./lib sandbox/inbox.rb


require_relative 'helper'

## step 1:
## collect more metadata about (contract) address

## build cache
cache = ContractDetailsCache.new( './sandbox/contractdetails.csv' )


meta = []

recs = read_csv( './sandbox/inbox.csv' )
puts " #{recs.size} record(s)"

recs.each_with_index do |rec,i|
names = rec['names']
addr = rec['address'].downcase
puts "==> [#{i+1}] #{names} @ #{addr}..."

data = cache[ addr ]
pp data

timestamp = data['timestamp'].to_i(16)

## reformat to "classic format"
## for date use "2022-02-03 08:49:52"
meta << [addr, names, '',
Time.at( timestamp ).utc.strftime( '%Y-%m-%d %H:%M:%S' )
]
end

### note: save back contractdetails cache
cache.save


## (re)sort by timestamp / created date
meta = meta.sort { |l,r| l[3] <=> r[3] }


## tddo - lint / warn about non-unique names if any!!!
## todo - keep track of duplicate in new names too!!!


pp meta


meta.each do |values|
names = values[1]
rec = Ethname[ names ]
if rec
puts "!! WARN - duplicate contract found for >#{names}<:"
pp rec
end
end


headers = [
'address',
'names',
'interfaces',
'created'
]
###


buf = String.new('')
buf << headers.join( ', ')
buf << "\n"
meta.each do |values|
buf << values.join( ', ' )
buf << "\n"
end


write_text( "./tmp/contracts.csv", buf )

puts "bye"

__END__


[["0x22a81c80bb6bf4b797acf08351934b46193bddde", "novo", "", "2023-01-08 04:10:59 UTC"],
["0x897792d16a46f9e70446638bfc6a0d884b741f9b", "pepeburbpunks", "", "2023-01-10 13:36:47 UTC"],
["0x0e10e5e978ba4d1af92eb554cd730c9b97f4e571", "pepeblocks", "", "2023-01-14 05:37:35 UTC"],
["0x5a8e04a84fb2f6ad4002c824045c7c1bde10cb81", "frogcentral", "", "2023-01-17 03:42:35 UTC"],
["0xe302f509c4a3729791215f74299f1fa626396e5a", "gmkevin", "", "2023-01-19 00:24:35 UTC"],
["0xcce158dd5384b599fc29fe34d83b11ea8fb7a816", "deathofkevin", "", "2023-01-22 12:09:47 UTC"],
["0xb0dc51536e2b4950d7d6667748a6be6fc53c3318", "cutekevin", "", "2023-01-22 16:29:35 UTC"],
["0x94cb646dd34b3b0ff7c116208f7f7ff7ac216079", "ecc0s", "", "2023-01-25 12:38:11 UTC"],
["0xe6313d1776e4043d906d5b7221be70cf470f5e87", "shiba", "", "2023-01-26 02:20:47 UTC"]]
39 changes: 0 additions & 39 deletions ethname/sandbox/test_names.rb
Original file line number Diff line number Diff line change
Expand Up @@ -10,43 +10,4 @@
puts " #{Ethname.directory.size} (contract) address record(s)"


pp Ethname[ 'PUNKS V2' ]
pp Ethname[ 'Punks V.2' ]
pp Ethname[ '404 NOT FOUND']

pp Ethname[ 'PHUNKS' ]
pp Ethname[ 'SYNTHPUNKS' ]
pp Ethname[ 'PUNKBLOCKS' ]
pp Ethname[ 'MOONBIRDS' ]


puts
pp Ethname['punks v1']
pp Ethname['punks v2']
pp Ethname['punks v3']
pp Ethname['punks v4']

pp Ethname['punks v1 wrapped i']
pp Ethname['punks v1 wrapped ii']

pp Ethname['phunks v1']
pp Ethname['phunks v2']
pp Ethname['phunks v3']

pp Ethname['synth punks']

pp Ethname['punks data']
pp Ethname['punk blocks']



pp rec = Ethname::Record.find( '0xaf9CE4B327A3b690ABEA6F78eCCBfeFFfbEa9FDf' )
pp rec.addr
pp rec.address
pp rec.name
pp rec.names

pp rec = Ethname::Record.find_by( name: 'synth punks' )


puts "bye"
Loading

0 comments on commit f0c1001

Please sign in to comment.