들어가며...
안녕하세요.
몇일전에 ["새로운 EOS 봇의 개발"]로 EOS의 잔고 및 이벤트를 전달해주는 봇에 대해서 소개를 드렸습니다.
주말 사이에 EOS 메인넷을 기반으로 ADD 토큰의 배포와 EOSDAC의 스왑이 이루어져서, 저희 지갑에 새로운 토큰이 2개자 들어왔습니다. 매우 고무적인 일인데요, 문제는...이 토큰을 조회할 방법이 마땅하지 않습니다.
eosflare에서 조회를 해보면 아래와 같이 토큰이 들어온 것은 조회가 되는데, 몇개인지가 조회가 안됩니다.
물론 eostracker등에서 블록정보를 열어보면 내용이 보이지만, 이또한 귀찮죠. 그래서..EOS봇에 토큰 잔고 기능을 추하겠습니다.
토큰 조회 기능 추가 및 사용
우선 기존에 쓰시던 분들은 새로 "/start"를 입력해 주세요. 그러면 아래와 같이 4번째 토큰잔고라는 메뉴가 생깁니다.
그리고 그 다음 진행을 하시기 전에 EOS봇이 후원하는 BP들에게 투표하는 것도 잊지 말아 주세요.
그 다음 "아이디"를 눌러서 자신의 아이디를 입력하고, 토큰 잔고를 누릅니다.
그러면, 위의 그림과 같이 ADD와 EOSDAC 토큰의 잔고를 확인하실 수 있습니다.
ADD는 신규로 EOS 메인넷상에서 EOS와 ADD를 2:1의 비율로 드랍했고, EOSDAC는 전에 MEW에 있던 EOSDAC만큼 스왑을 해 준 것입니다.
코드 공개
steem에서도 그러했지만, EOS에서도 그렇게 친절한 안내는 없습니다. 그래서 도움이 되셨으면 하는 마음에 잔고 조회 코드를 공개합니다.
async function getAddBalance(account){
let bal = await eos.getTableRows({json : true,
code : "eosadddddddd",
scope: account,
table: "accounts",
}).catch((err) => {
return null});
if(bal.rows.length != 0)
return bal.rows[0].balance;
else
return null;
}
async function getDacBalance(account){
let bal = await eos.getTableRows({json : true,
code : "eosdactokens",
scope: account,
table: "accounts",
}).catch((err) => {
return null});;
if(bal.rows.length != 0)
return bal.rows[0].balance;
else
return null;
}
이렇게 2개의 token을 가져오는 getTableRows를 사용했구요, 이는 사실 token type에 따른 code를 parameter로 줌으로써 하나로 통일할수도 있습니다. 당연히 나중을 위해서 그게 맞겠죠?
그리고 사용할때는..
let [addBalance, dacBalance] = await Promise.all([getAddBalance(account), getDacBalance(account)]);
요렇게 씁니다.
똑같은 방법으로 EOS token의 balance도 가지고 올수 있습니다. 눈여겨 보실 code는 getTableRows의 사용과, promise.all정도 입니다.
참고로 getTableRows는 eosjs에서 제공하고 있습니다..
감사합니다.
(jjangjjangman 태그 사용시 댓글을 남깁니다.)
호출에 감사드립니다! 즐거운 스티밋하세요!
오 이거 좋네요 리스팀하고갈게여!
리스팀 감사드립니다.!
^^ 텔레그램 봇 너무 좋은것 같습니다. 잘쓰겠습니다~
감사합니다. 쓰시면서 필요하신 것 있으심 알려주세요.
@ganzi님께서 이 포스팅에 많은 관심을 가지고 있어요. 리스팀을 해주셨군요~!
@neogia님께서 이 포스팅에 많은 관심을 가지고 있어요. 리스팀을 해주셨군요~!
@millionfist님께서 이 포스팅에 많은 관심을 가지고 있어요. 리스팀을 해주셨군요~!