[암호화폐] bscscan 같은 프로그램 만들어보기(1)

in SCT.암호화폐.Crypto3 years ago (edited)

DeFi를 여러개 하다보니, 각 DeFi 별로 수익이 얼마나 나는지 궁금합니다. claim할 때 마다 기록을 하면 되겠지만, 이것도 쉽지가 않습니다. 그래서 bscscan 같은 프로그램을 만들면 쉽게 확인이 가능할 것 같습니다.

그래서 또 만들어봅니다.

언제나 그렇듯이 일단 github에서 관련 api가 있는지 찾아봅니다. 몇 개가 보이는데, 이 중 아래 소스를 이용하기로 결정했습니다.

https://github.com/darkzeb/py-bscscan-api

이 프로그램을 사용하기 위해서는 bscscan에 회원가입을 하여 key를 받아야 합니다.
api관련 문서는 아래 사이트에서 확인이 가능합니다.

https://bscscan.com/apis

get_transaction_page()함수를 이용하면 최근 transaction을 받아올 수 있습니다. 자료 형태는 아래와 같습니다.

여기에서 필요한 정보는 from, to, tokenSymbol, value입니다. 이 값만 출력하는 코드는 아래와 같습니다. from/to 중 본인의 주소인 경우에는 my_addr로 표시하는 부분까지 추가하였습니다.

from bscscan.accounts import Account
from bscscan.stats import Stats
from bscscan.contracts import Contract

import json

BSC_SCAN_API_KEY = 'my scan api key'
MY_ADDR = 'my address'

api = Account(address=MY_ADDR, api_key=BSC_SCAN_API_KEY)
transactions = api.get_transaction_page(page=1, offset=100, sort='desc', erc20=True)
my_addr = MY_ADDR.lower()
print("--------------------------------------")
print("   from        to    symbol     amount")
print("--------------------------------------")
for each in transactions :
    qty = int(each['value'])/(10**18)
    from_addr = ''
    to_addr = ''
    if each['from'] == my_addr :
        from_addr = 'my_addr'
    if each['to'] == my_addr :
        to_addr = 'my_addr'
    print("%8s %8s  %7s %8.3f"%(from_addr, to_addr, each['tokenSymbol'], qty))

실행 결과입니다.

특정 코인을 구매한 이력도 있고, defi에서 claim한 후 매도한 이력도 있습니다. defi가 아닌 코인 매매도 있고요. 다양한 거래가 있다보니 defi 채굴 관련 정보만 빼오는 것이 간단하지는 않아보입니다.

일단은 여기까지 정리하고, 이 정보를 바탕으로 defi 관련 채굴 금액만 뽑는 것을 추가해보도로 하겠습니다.

to be continued ...

Sort:  

[US$49.00](▼14%)[Nespresso]스타벅스 네스프레소 호환 캡슐 7종 / 120 캡슐 골라담기 / 20개씩 총 6종류 교차 선택 가능 / 중복 선택 가능 / 재고 확보 / 무료배송 / 개당 약 486원 최저가★

WWW.QOO10.COM

@tradingideas transfered 45 KRWP to @krwp.burn. voting percent : 69.02%, voting power : 75.42%, steem power : 1770453.02, STU KRW : 1200.
@tradingideas staking status : 11000 KRWP
@tradingideas limit for KRWP voting service : 33 KRWP (rate : 0.003)
What you sent : 45 KRWP
Refund balance : 12 KRWP [53852582 - 272154124c58acda059839debac12eb836d04623]

멋지십니다..전문적인작업이신거 같은데..

와! 능력자세요.^^

!upvote 10

great post

Coin Marketplace

STEEM 0.17
TRX 0.15
JST 0.028
BTC 62264.03
ETH 2431.11
USDT 1.00
SBD 2.50