SummaryDev/ethereum-sql

Labels are many to many with contracts

Opened this issue · 0 comments

Flipsidecrypto labels are of 10 types like dex, cex etc and subtypes like hot_wallet, deposit_wallet or swap_contract, token_contract.

Dune's labels are also two level but different: a project aave and a contract AAVEToken; together with a known abi they make a table like aave.AAVEToken_evt_Transfer.

MyEtherWallet and other crowd sources mark tokens, their labels are thus one level like AAVEToken or USDC but can be made into two level labels by adding the token's standard like erc20.AAVEToken.

It is likely that the same contract is labeled in many sources:

  • FlipsideCrypto contract: dex.token_contract, its events are in a table: dex.token_contract_evt_Transfer
  • Dune contract: aave.AAVEToken, table: aave.AAVEToken_evt_Transfer
  • MyEtherWallet contract: erc20.AAVEToken, table: erc20.AAVEToken_evt_Transfer

Labels should have a many to many relationship with contracts.

Propose changes to the metadata schema:

category (or label, or project in aave terms or application)

  • id primary key
  • name (like dex in flipside, aave in dune, erc20, erc721)
  • source (like flipside, aave, blockchain_etl, myetherwallet etc.)
  • description (like Decentralized Exchange)

label (or name, or address name, or subtype in flipside terms or contract name in dune)

  • id primary key
  • name (like swap_contract in flipside, AAVEToken in dune or USDC)
  • category_id references category
  • description (like The contract used by the dex to facilitate token exchanges or jsonb with full token data like in MyEtherWallet)

contract

  • address primary key

contract_label

  • contract_address references contract
  • label_id references label

Open questions:

  • should source be the at the top level? Like dune->aave->AAVEToken and flipside->dex->token_contract ? Or keep the top level all in one bag?