[AD]MCO VISA 암호화폐로 결제하자

Tron API 공부 - account, transaction

시간나면 짬짬이 트론에 대해서 공부를 해보려고 합니다. 먼저 API 에서 기본이 되는 계정정보와 트랜잭션 정보를 가져오는 API를 살펴보았습니다.

개발은 요즘 제가 편하게 사용하고 있는 nodejs를 이용하였습니다.


Tron Library 설치

  • tronweb과 trongrid 를 설치해야합니다.
  • trongrid는 tronweb에서 사용하기 불편한 함수를 보기좋고, 사용하기 편하게 변경하여 놓은 것입니다.
    ex) tronWeb.trx.getTransactionRelated(...) => tronGrid.account.getTransactions(...)
// tron 체인정보와 통신 할 수 있는 api
yarn add tronweb

// tronweb의 불편하거나 복잡한 부분을 단순화하여 만든 library(https://github.com/TRON-US/trongrid-js.git)
yarn add trongrid 


트론 계정 정보 가져오기

  • 함수명 : tronGrid.account.get
  • 트론 주소에 관한 정보를 가져옵니다.
  • 계정이 가지고 있는 자산과 수량도 가지고 옵니다.(assetV2 부분)
  • 그외 기본정보인 생성일 권한 정보를 알 수 있습니다.

image.png


계정의 트랜잭션 정보 가져오기

  • 함수명 : tronGrid.account.getTransactions
  • 트랜잭션 종류와 수수료는 나오는데 뭐를 보냈다, 얼마를 보냈다 이런거는 나오지 않음
  • 트랜잭션 ID로 따로 조회를 해서 해당 정보를 가져와야 트랜잭션 세부내용을 알아 낼 수가 있습니다.
  • TransferContract : 트론 전송
  • TransferAssetContract : 트랜 내부 코인들 전송(스팀엔진 코인 처럼)

image.png


Sample Source

  • await, promise, callback 방식으로 각각 예시
const TronGrid = require('trongrid');
const TronWeb = require('tronweb');

// https://api.trongrid.io 은 TRON 메인넷 주소입니다.
const tronWeb = new TronWeb({
    fullHost: 'https://api.trongrid.io'
});

const tronGrid = new TronGrid(tronWeb);
tronGrid.setExperimental('your experimental key');

async function getAccount(pAccount) {
    const address = pAccount;

    const options = {
        Show_assets: true,
        only_confirmed: true,
    };

    // awaiting
    const account = await tronGrid.account.get(address, options);
    console.log({account});

    // promise
    tronGrid.account.get(address, options).then(account => {
        console.log({account});
    }).catch(err => console.error(err));

    // callback
    tronGrid.account.get(address, options, (err, account) => {
        if (err)
            return console.error(err);

        console.log({account});
    });
}

async function getTransactions(pAccount) {
    const address = pAccount;

    const options = {
        only_to: true,
        only_confirmed: true,
        limit: 100,
        order_by: 'timestamp,asc',
        min_timestamp: Date.now() - 2*30*24*60*60*1000 // from a minute ago to go on
    };

    // awaiting
    const transactions = await tronGrid.account.getTransactions(address, options);
    console.log({transactions});

    // promise
    tronGrid.account.getTransactions(address, options).then(transactions => {
        console.log({transactions});
    }).catch(err => console.error(err));

    // callback
    tronGrid.account.getTransactions(address, options, (err, transactions) => {
        if (err)
            return console.error(err);

        console.log({transactions});
    });
}

async function getAssets(pAccount) {
    const address = 'TU5zKDbqWHzvMHBRRhPceBZMkE2XdYXVvG';
    const options = {};

    // awaiting
    const assets = await tronGrid.asset.get(address);
    console.log({assets});

    // promise
    tronGrid.asset.get(address, options).then(assets => {
        console.log({assets});
    }).catch(err => console.error(err));

    // callback
    tronGrid.asset.get(address, options, (err, assets) => {
        if (err)
            return console.error(err);

        console.log({assets});
    });
}

const inputAccount = 'TQj2LC7dfbfQxBHMGFw6YnC59QaGSCbPyo';

getAccount(inputAccount);
getTransactions(inputAccount);
getAssets(inputAccount);
Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

헉!!

저도 아직 잘은 모르게쏘요!!

KRWP건 활불되었네요 감사합니다.^^

봇이 뻗어 있었습니다.
방금 재시작하였고 처리가 되었습니다.
불편하게 해 드려서 죄송합니다!! ㅜㅜ

신경써 주셔서 감사합니다.^^

헉헉!!!

프렌드 형님 요즘 잘 안보이시네요~!! ㅎㅎ 잘지내시죠!? ㅎ

@happyberrysboy transfered 5.0 KRWP to @krwp.burn. voting percent : 98.07%, voting power : 2500, voting power : 1787851.91, SBD KRW : 1305.65.