Coder Social home page Coder Social logo

dawsbot / eth-labels Goto Github PK

View Code? Open in Web Editor NEW
183.0 6.0 28.0 34.21 MB

๐Ÿ“ƒ A public dataset of crypto addresses labeled

Home Page: https://eth-labels-production.up.railway.app/swagger

License: MIT License

JavaScript 0.02% Shell 0.01% TypeScript 1.10% HTML 98.87% Dockerfile 0.01%
ethereum etherscan web3

eth-labels's Introduction

Eth Labels
A public dataset of crypto addresses labeled (Ethereum and MANY more EVM chains)


API (Pre-Alpha)

A public API to consume this data is under active development. You can use it remotely here, or to use this API locally, start it like this:

bun run dev:api

Documentation for the API is available via swagger at /swagger


Ethereum

View labels here

Arbitrum

View labels here

Optimism

View labels here

Base

View labels here

Binance Smart Chain

View labels here

Gnosis Chain

View labels here

Celo

View labels here

More chains coming soon

Q & A

  • Where does this data come from?
    • This data is already organized by the kind folks at Etherscan. Unfortunately that data is not accessible for researchers, so we've copied the data out and into a more shareable format here.

Star History

Star History Chart

eth-labels's People

Contributors

dawsbot avatar icepy avatar kylewandishin avatar michaelgreen06 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

eth-labels's Issues

Sort addresses first by nametag, then by eth address

The output addresses should first be the ones which have an empty name tag. Sort alphabetically. THEN for only the addresses that have an empty name-tag, sort those alphabetically by ethereum address ("0x0..." first, then "0x1...")

MegaDoge.Org token and Wallet label

To my dismay, I found this token, as well as the contract address and my wallet address to have been wrongly labelled as "fake_phishing" and "phish/hack".

I believe this to be a mistake. I find the labels to be a mis-representation of the project and of me. My own wallet address has been unfairly labeled as "fake_phishing", and I find this to be highly defamatory.

The addresses in question:
URL: https://polygonscan.com/address/0xcbf4ab00b6aa19b4d5d29c7c3508b393a1c01fe3
Polygon Token Contract: 0xcbf4ab00b6aa19b4d5d29c7c3508b393a1c01fe3

URL: 0x38a5F90f91f29FcF94Db8f2d4250338330c7a4dF
Wallet Address: 0x38a5F90f91f29FcF94Db8f2d4250338330c7a4dF

May I have the reports that were submitted? May I have evidence of the alleged phishing or the alleged hacking? I need this information so I can ameliorate the issue and identify the problem. I believe this claim was wrongly raised based on misconceptions about this project. Whoever labelled it may have mistaken the token distribution as a dusting attack. They may have been duped by a scammer claiming to represent the token or pretending to be me. I cannot find anything in the transaction history that would indicate a phishing attack.

This token has been around for a long time and there have been no issues. I've tried to get polygonscan to post the logo and the price, but they always ignore my requests. They blocked any further commentary on the profile page so it might seem that the project is dead or inactive. I've lost a lot of trust in polygonscan and blockscan as a result of this troubling development. I feel I can no longer trust the company to publish accurate or honest information, and this highlights an urgent need for more decentralization in block explorer technology in crypto.

Please remove the addresses from your blacklists.

navpill handles for tokens

just like accounts on etherscan, some tokens have 'subcatId' pages example
i had the default value in the firrst API pr as 1 because any page with navpills has default subcatId 1 but realised we were pulling 0 tokens for most other labels so i have made a temporary change to subcatID 0 until a navpill handle can be included

Implement `loadAllTokensFromFileSystem()`

This is nearly the exact same as #81 <- do that first

We want a function which is callable synchronously (no await needed). that loads up ALL tokens from data/*/*/tokens.json.

The data type we are trying to load up can be called Array<TokenDBRow>.

An TokenDBRow is like the type TokenRow which is already in the db, but with a few extra keys. You can define the the like this:

type TokenDBRow = {
  chainId: number;
  address: string;
  label: string;
  name: string;
  symbol: string;
  nameTag?: string;
}

Steps

  1. Traverse the filesystem to generate this array.
    1.1 Use globby to get all account filepaths: https://github.com/sindresorhus/globby
    1.2 Use fs.readFileSync to load all of those files into memory & generate that TokenDBRow type

Expected outcome

const allTokens = loadAllTokensFromFilesystem();

Refactor away `scanConfig`

This is the stuff we drew on the whiteboard @kylewandishin

  1. Create a Chain class, which has url, chainName, puller
  2. Replace the objects in scanConfig with an Array<Chains>
  3. Change getConfig to return an array of chain classes
  4. Parallelize login, pull, sort, & store

[EPIC] - pull expanded token name

The full list is available here: https://etherscan.io/eaas

This is ordered by priority

  • etherscan ( Tracked via #70 )
  • polygon ( Tracked via #54 )
  • bscscan ( needs major fix )
  • celo ( needs major fix )
  • gnosisscan ( )
  • arbitrum ( in Pendel label )
  • basescan ( implement logic from arbiscan )
  • ftmscan ( Tracked via #52 )
  • optimism ( will be handled same as basescan )

Turn on eslint in your vscode

You'll need to go add this extension to vscode first, then it should auto-detect everything and you should see errors live in your TS files

Pull expanded token names

When a token name is beyond _ characters, it's currently truncated with "..." in the codebase:

https://github.com/dawsbot/evm-labels/blob/367e5f73f52b5f428872131eea99db1abfcb1010/data/etherscan/0x-protocol-ecosystem/tokens.json#L4

The confusing thing is that this expanded name exists nowhere in the DOM. Instead, this expanded name exists within a separate POST request response:

curl 'https://etherscan.io/tokens.aspx/GetTokensBySubLabel'...

The full CURL is not in this issue because it contains my cookie. This POST should only be done for tokens.json files which contain a "...". Most do not need this.

[Question] Contributing to label / scraping method

Came across the repo while requiring address label data awhile back and noticed it only covered a specific subset of label data from etherscan and scraping needed a separate tamper monkey script for each label.

Due to needing other label data not covered, I ended up making a more generalized scraper for etherscan over at https://github.com/brianleect/etherscan-labels

Would love to know how I could contribute back to this repo to populate it with more label information and perhaps also the more generalized scraping method I utilized.

Pull token image paths

This would come after #36

It would use the same POST method, so perhaps these two issues could be solved in the same PR to save on network requests.

Add all images for all chains in readme

Notice in the readme only some chains have images. Do this for all of them.

You can download the image to the repo by right clicking on it on the various scan page. Then move that image file into the codebase following the same pattern as the other images that are already saved in the codebase.

Implement `loadAllAccountsFromFilesystem()`

We want a function which is callable synchronously (no await needed). that loads up ALL accounts from data/*/*/accounts.json.

The data type we are trying to load up can be called Array<AccountDBRow>.

An AccountDBRow is like the type AccountRow which is already in the db, but with a few extra keys. You can define the the like this:

type AccountDBRow = {
  chainId: number;
  address: string;
  label: string;
  nameTag?: string;
}

Steps

  1. Add all chainIds to "scanConfig" (this will allow us to "decode" the filepaths like etherscan/* to have the chainId instead
  2. Traverse the filesystem to generate this array.
    2.1 Use globby to get all account filepaths: https://github.com/sindresorhus/globby
    2.2 Use fs.readFileSync to load all of those files into memory & generate that AccountDBRow type

Expected outcome

const allAccounts = loadAllAccountsFromFilesystem();

Fix pre-commit hooks

This is isolated to your machine from what I can tell @kylewandishin but we need to ensure you have the same pre-commit linting, testing, etc. running before you push to github

Pull basescan

  • Move html selections to a separate class that's testable (working on this in #30 )
  • Add testing for all etherscan selectors to ensure we keep selecting those fully functioning
  • Add testing for basescan (will be broken at first since etherscan selectors don't work for addresses)
  • Fix basescan tests so the selectors do work for basescan

Add tests for Arbiscan

Use this page as the labels because there is a truncated token name with "..." which we want to validate in our tests is expanded

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.