TRON-US / trongrid

The infrastructure for Tron developers
11 stars 9 forks source link

TronGrid

TronGrid v3 (TG3) uses a set of NodeJS apps to talk with Redis and PostgreSQL to provide a simple, fast and reliable query interface for the Tron API.

For a reference to the legacy(v2) version please refer to this version of the README

Notes:

Versioning

TronGrid v3 (TG3) will use api versioning moving forward. As this is the first iteration of the improved TronGrid, we will start with v1. ex: https://api.trongrid.io/v1

Endpoints

  1. Accounts
  2. Assets
  3. Blocks
  4. Contracts
  5. Transactions

Parameters, Queries, & Return Values

APIs

Accounts

1. Get Account Info By Address

    {
      "success": true,
      "meta": {
        "at": 1558109062846,
        "page_size": 1
      },
      "data": [
        {
          "account_resource": {
            "energy_usage": 6027620,
            "frozen_balance_for_energy": {
              "expire_time": 1558164300000,
              "frozen_balance": 2116000000000
            },
            "latest_consume_time_for_energy": 1558108998000
          },
          "address": "41704833c02883b3261f7baf62f8cb19b4b0c2e64e",
          "allowance": 704953,
          "asset": [...],
          "assetV2": [...],
          "asset_issued_ID": "31303031343736",
          "asset_issued_name": "47616d65546f6b656e",
          "balance": 4196409173,
          "create_time": 1529897991000,
          "free_asset_net_usageV2": [...],
          "is_witness": true,
          "latest_consume_free_time": 1557905064000,
          "latest_opration_time": 1558108998000,
          "latest_withdraw_time": 1557905064000
        }
      ]
    }

2. Get Transactions By Account Address

3. Get Account Resources By Address

    {
      "free_net_used": 4740,
      "free_net_limit": 5000,
      "asset_net_used": [...],
      "asset_net_limit": [...],
      "total_net_limit": 43200000000,
      "total_net_weight": 7001650727,
      "energy_used": 366327641,
      "energy_limit": 402999576,
      "total_energy_limit": 100000000000,
      "total_energy_weight": 496278437
    }

Assets

1. Get All Assets

2. Get Assets By Identifier

3. Get Assets By Name

Blocks

1. Returns Events By Block Identifier

Contracts

1. Get Events By Contract Address

2. Get Transactions By Contract Address

Transactions

1. Get Events By Transaction ID

------

TronWeb compatibility

To keep compatibility with TronWeb, TronGrid supports also the legacy format.
The Following are Four Methods for Polling:

1. By Contract Address:

https://api.trongrid.io/event/contract/TEEXEWrkMFKapSMJ6mErg39ELFKDqEs6w3

2. By Contract Address and Event Name:

curl https://api.trongrid.io/event/contract/TEEXEWrkMFKapSMJ6mErg39ELFKDqEs6w3/DiceResult

3. By Contract Address, Event Name, and Block Height:

https://api.trongrid.io/event/contract/TEEXEWrkMFKapSMJ6mErg39ELFKDqEs6w3/DiceResult/7273383

4. By Transaction ID:

https://api.trongrid.io/event/transaction/d74ba9c3947b509db385fe2df5fb1dc49f10fb33da93e1e5903d897714ef0f5c

Request Parameters:

fromTimestamp sets a time stamp, default 0, returning all events after or before that timestamp. For example:

https://api.trongrid.io/event/contract/TEEXEWrkMFKapSMJ6mErg39ELFKDqEs6w3?fromTimestamp=1541547888000

For retro-compatibility you can pass since instead of fromTimestamp.

size indicates the number of results returned. Default is 20, maximum is 200. Example:

https://api.trongrid.io/event/contract/TMJnJcHfdP5rhmXVkwRYb1a9A6gS46PUm6/Notify?size=10

page is no more supported.

sort indicates the order. By default the order is descending. To explicitly indicate it, use

sort=block_timestamp

for ascending order and

sort=-block_timestamp

for descending order. For example:

https://api.trongrid.io/event/contract/TEEXEWrkMFKapSMJ6mErg39ELFKDqEs6w3?fromTimestamp=1541547888000&sort=block_timestamp

fingerprint is necessary for pagination. Any time you require an API that could return more data that the indicate size, you will see that the latest element has the property _fingerprint. To get the next page, you can just call again the same API adding the parameter fingerprint=[previous _fingerint parameter]. For example:

https://api.trongrid.io/event/contract/TEEXEWrkMFKapSMJ6mErg39ELFKDqEs6w3?fingerprint=e1E1OqO3vrhmwE23

onlyConfirmed returns only the confirmed events.

onlyUnconfirmed returns only unconfirmed events.

If you pass both it returns an error.