요즘은 tron을 이용한 defi에 투자를 하다 보니, tron 지갑을 많이 사용합니다. staking, swap, transfer, claim 등등 많이 하다보니 어떤 토큰을 어디에 얼마나 사용하였는지를 확인이 필요합니다. 특히 lp를 만든 후 다시 lp를 풀었을 때 얼마나 이익이 났는지 혹은 손실이 났다면 얼마나 났는지 궁금한 경우가 많습니다. 미리 미리 거래 내역을 정리해 놓았다면 그나마 계산이 가능하겠지만, 그렇지 않은 경우에는 사실 방법이 없습니다.
tronscan에 보면 이런 내역들이 나옵니다. 일일이 확인할 수도 있겠지만, transaction이 너무 많은 경우에는 일일이 확인하는데 시간이 많이 걸립니다.
그래서 tronscan에 나오는 거래 내역을 볼 수 있는 viewer를 간단하게 만들어보겠습니다.
관련 자료를 찾아보니 아래 사이트가 공식 사이트로 보입니다.
https://developers.tron.network/reference#note
여기나오는 API 중 viewer를 만드는데 필요한 API를 정리하면 아래와 같습니다.
- 잔고확인 : https://apilist.tronscan.io/api/account?address=본인지값주소
- 거래내역 : https://api.trongrid.io/v1/accounts/본인지갑주소/transactions
- 세부거래내역 : https://apilist.tronscan.io/api/transaction-info?hash=찾을txid
위 세 API를 이용하면 특정 지갑에서 이루어진 모든 거래 내역을 뽑을 수 있을 것 같습니다.
간단하게 파이썬 코드를 만들어보았습니다.
주의할 점은 txID가 없는 transaction이 다수 존재하는 점이고(이런 경우에는 skip), 각 토큰 별로 거래 수량이 string으로 표시가 되는데, 소숫점 이하 자리 수는 decimals라는 변수에 정의되어 있다는 점입니다. 이를 참고하여 특정 계정의 모든 transaction을 출력하는 코드입니다.
trs = get_data(url)
for tr in trs['data'] :
if 'txID' not in tr :
continue
data = get_data(url2+tr['txID'])
if 'trc20TransferInfo' not in data:
continue
for each in data['trc20TransferInfo'] :
if each['to_address'] == acc : # 내가 받은 것
amount = float(each['amount_str']) / (10**each['decimals'])
print(
format(each['symbol'], "6s"),
each['type'],
format(amount, "5.3f"),
each['contract_address'])
print('')
출력결과입니다.
이 코드로는 전체 거래내역은 출력되지 않습니다. 특정 기간 동안의 transaction을 출력하는 코드로 확장할 예정이고, cli를 붙여서 원하는 코인만 출력하는 부분도 추가할 예정입니다.
ps. tron api가 워낙 방대하여, 원하는 api를 찾는 것도 간단하지는 않군요. 어쨌거나 발견한 정보 공유 차원에서 정리하고 있습니다.
[US$49.00](▼14%)[Nespresso]스타벅스 네스프레소 호환 캡슐 7종 / 120 캡슐 골라담기 / 20개씩 총 6종류 교차 선택 가능 / 중복 선택 가능 / 재고 확보 / 무료배송 / 개당 약 486원 최저가★
WWW.QOO10.COMDownvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
@tradingideas transfered 12 KRWP to @krwp.burn. voting percent : 63.33%, voting power : 59.27%, steem power : 1942406.36, STU KRW : 1200.
@tradingideas staking status : 6000 KRWP
@tradingideas limit for KRWP voting service : 6 KRWP (rate : 0.001)
What you sent : 12 KRWP
Refund balance : 6 KRWP [47833576 - 7b996be03c4140b44ad4c021444ee14ac19e721c]
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit