BLCOKSDK 개발자 문서와 공식 github에서 이더리움, 클레이튼, 폴리곤, BNC 등 다양한 블록체인 서비스 및 솔루션을 사용자의 프로그래밍 언어에 맞게 제공하고 있습니다.
자바스크립트로 지갑에 보관된 모든 ERC-20 토큰 데이터를 얻는 방법을 알아보건데요. ERC-20 토큰은 가장 널리 사용되는 토큰 표준 중 하나로, 다양한 프로젝트와 애플리케이션에서 광범위하게 채택되고 있습니다.
다음 글은 자바스크립트로 ERC-20 토큰 데이터를 얻는 예시 코드입니다.
이 글에서는 BLOCKSDK를 사용해 지갑에 보관된 모든 토큰 데이터를 얻는 방법을 알아보겠습니다.
BLOCKSDK에 로그인 후 더 많은 내용을 확인하고 테스트 해보세요
예시 코드
const axios = require('axios');
const list_network = ["eth","klay","bsc","etc","avax","matic"]
const api_token = "Node_RPC_TOKEN"
const wallet_address = "0xf977814e90da44bfa03b6295a0616a897441acec"
const result = {}
list_network.map((network) => (
axios.get(`https://mainnet-api.blocksdk.com/v3/${network}/token/${wallet_address}/all-balance`, {
headers: {
'X-API-TOKEN': api_token
}
}).then(response => {
response.data.payload.data.map(
(token, index)=>{
axios.get(`https://mainnet-api.blocksdk.com/v3/eth/token/${token.contract}/info`, {
headers: {
'X-API-TOKEN': api_token
}
})
.then(response => {
if(response.data.payload.totalSupply > 0){
result.name = response.data.payload.symbol
result.contract = token.contract
result.decimals = response.data.payload.decimals
let integerPart = response.data.payload.totalSupply.slice(0, -response.data.payload.decimals);
let decimalPart = response.data.payload.totalSupply.slice(-response.data.payload.decimals);
let formattedSupply = integerPart + '.' + decimalPart;
result.balance = formattedSupply
console.log(result)
}
})
.catch(error => {
console.log('Error:', error);
});
}
)
})
.catch(error => {
console.log('Error:', error);
})
))
axios.get
함수를 사용하여 각 블록체인 네트워크에서 지갑 주소가 보유한 모든 ERC-20 토큰의 잔액 정보를 조회합니다. 조회 URL은 https://mainnet-api.blocksdk.com/v3/${network}/token/${wallet_address}/all-balance
형식으로, ${network}
는 조회할 블록체인 네트워크, ${wallet_address}
는 조회할 지갑 주소를 나타냅니다.'X-API-TOKEN': api_token
을 포함시켜 인증합니다.https://mainnet-api.blocksdk.com/v3/eth/token/${token.contract}/info
형식입니다.${token.contract}
는 앞서 조회한 토큰 잔액 정보에서 얻은 각 토큰의 컨트랙트 주소입니다.response.data.payload
에서 토큰의 심볼, 컨트랙트 주소, 소수점 자릿수 등의 정보를 추출합니다. 그리고 총 공급량totalSupply
을 적절한 형식으로 포맷하여 최종 결과를 콘솔에 출력합니다.블록체인 네트워크에서 ERC-20 토큰의 잔액과 상세 정보를 효율적으로 조회할 수 있는 방법을 보여줍니다. 실제 사용 시에는 api_token
, wallet_address
등의 값을 사용자의 실제 정보로 대체해야 하며, 보안을 위해 API토큰과 개인 키의 관리에 주의해야 합니다.
{
name: 'ZRX',
contract: '0xe41d2489571d322189246dafa5ebde1f4699f498',
decimals: 18,
balance: '1000000000.000000000000000000'
}
{
name: '',
contract: '0x9f8f72aa9304c8b593d555f12ef6589cc3a579a2',
decimals: 18,
balance: '977631.036950888222010062'
}
{
name: 'CROW',
contract: '0x7530055e18a29f976c94f58430c4fcb5d689c0d0',
decimals: 8,
balance: '10000000000.00000000'
}
{
name: 'AERGO',
contract: '0x91af0fbb28aba7e31403cb457106ce79397fd4e6',
decimals: 18,
balance: '500000000.000000000000000000'
}
{
name: 'GNO',
contract: '0x6810e776880c02933d47db1b9fc05908e5386b96',
decimals: 18,
balance: '10000000.000000000000000000'
}
{
name: 'IOTX',
contract: '0x6fb3e0a217407efff7ca062d46c26e5d60a14d69',
decimals: 18,
balance: '10000000000.000000000000000000'
}
{
name: 'BAT',
contract: '0x0d8775f648430679a709e98d2b0cb6250d2887ef',
decimals: 18,
balance: '1500000000.000000000000000000'
}
{
name: 'SAND',
contract: '0xaf322c10333d27f47260fa94df1d2d74edaeee57',
decimals: 18,
balance: '1000000000000000000000.000000000000000000'
}
{
name: 'T',
contract: '0xcdf7028ceab81fa0c6971208e83fa7872994bee5',
decimals: 18,
balance: '10515000000.000000000000000000'
}
{
name: 'CTSI',
contract: '0x491604c0fdf08347dd1fa4ee062a822a5dd06b5d',
decimals: 18,
balance: '1000000000.000000000000000000'
}
{
name: 'TROY',
contract: '0x4574562e9310a94f9ca962bd23168d8a06875b1a',
decimals: 18,
balance: '10000000000.000000000000000000'
}
이 코드 예제를 통해 BLOCKSDK API를 사용하여 다양한 블록체인 네트워크에서 지갑에 보관된 모든 ERC-20 토큰의 데이터를 조회하는 방법을 살펴봤습니다. 이 과정에서는 먼저 각 네트워크별로 토큰 잔액을 조회하고, 이어서 각 토큰의 상세 정보를 불러오는 단계를 거쳤습니다. 이러한 작업을 수행하면서, API 호출에 필요한 인증과 오류 처리의 중요성도 함께 강조됐습니다.