token_table

테이블 개요

'token_table'은 크롤러가 수집한 블록체인 정보 중 token의 정보를 저장하는 테이블입니다.

컬럼정의

컬럼명설명

network

크롤러가 지원하는 4개의 메인넷을 의미합니다. [ethereum, klaytn, polygon, bnb]

token_address, token_name, token_symbol, decimals, total_supply

수집된 토큰의 주소, 토큰의 이름, 토큰의 심볼, 토큰의 단위, 토큰의 총 공급량을 의미합니다.

주요 로직

token_transfer_table처럼 type을 통해 erc-20을 구분 된 토큰을 insert 합니다 이때 token_address를 통해 컨트렉트를 연결하여 컨트렉트 함수를 통해 name, symbol, decimals, total_supply를 조회합니다. 이때 컨트렉트에 이름, 심볼같은 정보를 배포하지않은 컨트렉트 정보는 가져올 수 없습니다. 컨트렉트에서 사용하는 byte32 데이터 유형으로 배포된 erc-20의 이름 심볼들은 더 나은 가독성을 위해 string/utf8 형태로 변환하여 DB에 수집합니다 nft_collection_table에서 설명했던 'supportsInterface()' 함수, 즉 IERC165는 ERC20에서 지원하지 않습니다. 이는 곧 컨트랙트가 IERC20 표준을 빠짐없이 준수했는지 알 수 없다는 말과 같습니다. *소스코드를 블록체인 탐색기에 공개하지 않은 상태(가져올 수 있는 정보가 바이트코드가 유일한 상태)에 한함 이를 위해 크롤러는 ERC20의 모든 전송 트랜잭션을 감지하여 소스코드가 공개되어 있지 않더라도 ERC20 토큰을 가려낼 수 있게 하고, 더 나아가 감지한 컨트랙트의 표준함수를 호출하여 세부 정보까지 가져올 수 있게 설계되었습니다.

TOKEN ADDRESS

계약 주소는 블록체인에 배포된 스마트 계약에 할당된 고유 식별자입니다. 토큰 전송 및 함수 호출을 포함하여 계약과의 상호 작용을 위한 목적지 역할을 합니다. mainnet coin은 따로 token_address가 존재하지 않기때문에 0x0000000000000000000000000000000000000000로 표기했습니다.

SYMBOL

ERC-20 토큰의 기호는 토큰의 티커 심볼 또는 속기 기호를 나타내는 대문자로 구성된 더 짧은 문자열입니다. 일반적으로 교환이나 지갑에서 토큰을 식별하는 데 사용됩니다.

DECIMALS

ERC-20 토큰의 데시말 값은 토큰의 분할 가능성을 결정합니다. 토큰을 분할할 수 있는 소수 자릿수를 나타냅니다. 예를 들어, 10진수 값이 18이면 토큰을 10^18 단위로 나눌 수 있다는 것을 의미하며, 이는 토큰의 가장 작은 분할 단위입니다. 이를 통해 토큰 공급에 대한 세부적인 제어가 가능하며 부분 소유가 가능합니다.

TOTAL SUPPLY

ERC-20 토큰의 총 공급은 토큰 생태계 내에 존재할 수 있는 최대 토큰 수를 의미합니다. 생성되거나 주조된 모든 토큰의 합계를 나타냅니다. 총 공급은 일반적으로 토큰 배포 중에 정의된 고정 값이며 토큰 계약의 규칙에 지정되지 않는 한 변경할 수 없습니다.

Last updated