Repository: trustwallet/blockatlas
Pull request #1154 (2020-06-21 16:02:47)

Add TRC20 tokens for TRON

codecov[bot]: # [Codecov](https://codecov.io/gh/trustwallet/blockatlas/pull/1154?src=pr&el=h1) Report
> Merging [#1154](https://codecov.io/gh/trustwallet/blockatlas/pull/1154?src=pr&el=desc) into [master](https://codecov.io/gh/trustwallet/blockatlas/commit/aeb9222185c0f6a151acd8cf81fd776fb344ad97&el=desc) will **increase** coverage by `1%`.
> The diff coverage is `71%`.

[![Impacted file tree graph](https://codecov.io/gh/trustwallet/blockatlas/pull/1154/graphs/tree.svg?width=650&height=150&src=pr&token=jnrjoEQAqv)](https://codecov.io/gh/trustwallet/blockatlas/pull/1154?src=pr&el=tree)

```diff
@@           Coverage Diff           @@
##           master   #1154    +/-   ##
=======================================
+ Coverage      36%     38%    +1%     
=======================================
  Files         169     169            
  Lines        5986    6047    +61     
=======================================
+ Hits         2199    2318   +119     
+ Misses       3641    3572    -69     
- Partials      146     157    +11     
```


| [Impacted Files](https://codecov.io/gh/trustwallet/blockatlas/pull/1154?src=pr&el=tree) | Coverage Δ | |
|---|---|---|
| [platform/tron/block.go](https://codecov.io/gh/trustwallet/blockatlas/pull/1154/diff?src=pr&el=tree#diff-cGxhdGZvcm0vdHJvbi9ibG9jay5nbw==) | `0% <0%> (ø)` | |
| [platform/tron/stake.go](https://codecov.io/gh/trustwallet/blockatlas/pull/1154/diff?src=pr&el=tree#diff-cGxhdGZvcm0vdHJvbi9zdGFrZS5nbw==) | `38% <0%> (ø)` | |
| [platform/tron/client.go](https://codecov.io/gh/trustwallet/blockatlas/pull/1154/diff?src=pr&el=tree#diff-cGxhdGZvcm0vdHJvbi9jbGllbnQuZ28=) | `61% <68%> (+61%)` | :arrow_up: |
| [platform/tron/token.go](https://codecov.io/gh/trustwallet/blockatlas/pull/1154/diff?src=pr&el=tree#diff-cGxhdGZvcm0vdHJvbi90b2tlbi5nbw==) | `80% <80%> (+61%)` | :arrow_up: |
| [platform/tron/transaction.go](https://codecov.io/gh/trustwallet/blockatlas/pull/1154/diff?src=pr&el=tree#diff-cGxhdGZvcm0vdHJvbi90cmFuc2FjdGlvbi5nbw==) | `73% <83%> (+34%)` | :arrow_up: |
| [platform/tron/base.go](https://codecov.io/gh/trustwallet/blockatlas/pull/1154/diff?src=pr&el=tree#diff-cGxhdGZvcm0vdHJvbi9iYXNlLmdv) | `66% <100%> (+66%)` | :arrow_up: |

------

[Continue to review full report at Codecov](https://codecov.io/gh/trustwallet/blockatlas/pull/1154?src=pr&el=continue).
> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta)
> `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
> Powered by [Codecov](https://codecov.io/gh/trustwallet/blockatlas/pull/1154?src=pr&el=footer). Last update [aeb9222...5d21743](https://codecov.io/gh/trustwallet/blockatlas/pull/1154?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).


Patch:
diff --git a/config.yml b/config.yml
index cb2f42f..2436514 100644
--- a/config.yml
+++ b/config.yml
@@ -9,7 +9,7 @@ gin:
 # If all - run all platforms in one binary. You can pick specific coin handle to run binary only with specific coin
 # Example: ethereum
 # You can see all the coin handles at coins/coins.yml file
-platform: [ethereum]
+platform: [all]
 
 # Can be platform or swagger
 rest_api: all
@@ -111,6 +111,7 @@ icon:
 # [TRX] Tron: https://tron.network/
 tron:
   api: https://api.trongrid.io
+  explorer: https://apilist.tronscan.org
 
 # [VET] VeChain: https://www.vechain.org
 vechain:
diff --git a/platform/platform.go b/platform/platform.go
index 2e4eefc..8012beb 100644
--- a/platform/platform.go
+++ b/platform/platform.go
@@ -62,7 +62,7 @@ func getAllHandlers() blockatlas.Platforms {
 		coin.Fio().Handle:          fio.Init(GetApiVar(coin.FIO)),
 		coin.Aion().Handle:         aion.Init(GetApiVar(coin.AION)),
 		coin.Icon().Handle:         icon.Init(GetApiVar(coin.ICX)),
-		coin.Tron().Handle:         tron.Init(GetApiVar(coin.TRX)),
+		coin.Tron().Handle:         tron.Init(GetApiVar(coin.TRX), GetVar("tron.explorer")),
 		coin.Nano().Handle:         nano.Init(GetApiVar(coin.NANO)),
 		coin.Nimiq().Handle:        nimiq.Init(GetApiVar(coin.NIM)),
 		coin.Iotex().Handle:        iotex.Init(GetApiVar(coin.IOTX)),
diff --git a/platform/tron/base.go b/platform/tron/base.go
index 24c15a0..5b42418 100644
--- a/platform/tron/base.go
+++ b/platform/tron/base.go
@@ -6,12 +6,14 @@ import (
 )
 
 type Platform struct {
-	client Client
+	client         Client
+	explorerClient ExplorerClient
 }
 
-func Init(api string) *Platform {
+func Init(api, explorerApi string) *Platform {
 	return &Platform{
-		client: Client{blockatlas.InitClient(api)},
+		client:         Client{blockatlas.InitClient(api)},
+		explorerClient: ExplorerClient{blockatlas.InitClient(explorerApi)},
 	}
 }
 
diff --git a/platform/tron/block.go b/platform/tron/block.go
index dba8310..66c2e85 100644
--- a/platform/tron/block.go
+++ b/platform/tron/block.go
@@ -7,11 +7,11 @@ import (
 )
 
 func (p *Platform) CurrentBlockNumber() (int64, error) {
-	return p.client.CurrentBlockNumber()
+	return p.client.fetchCurrentBlockNumber()
 }
 
 func (p *Platform) GetBlockByNumber(num int64) (*blockatlas.Block, error) {
-	block, err := p.client.GetBlockByNumber(num)
+	block, err := p.client.fetchBlockByNumber(num)
 	if err != nil {
 		return nil, err
 	}
@@ -48,7 +48,7 @@ func (p *Platform) NormalizeBlockChannel(srcTx Tx, txChan chan blockatlas.Tx) {
 		return
 	}
 
-	tx, err := Normalize(srcTx)
+	tx, err := normalize(srcTx)
 	if err != nil {
 		return
 	}
@@ -56,9 +56,9 @@ func (p *Platform) NormalizeBlockChannel(srcTx Tx, txChan chan blockatlas.Tx) {
 	if len(transfer.AssetName) > 0 {
 		assetName, err := hex.DecodeString(transfer.AssetName[:])
 		if err == nil {
-			info, err := p.client.GetTokenInfo(string(assetName))
+			info, err := p.client.fetchTokenInfo(string(assetName))
 			if err == nil && len(info.Data) > 0 {
-				setTokenMeta(tx, srcTx, info.Data[0])
+				addTokenMeta(tx, srcTx, info.Data[0])
 			}
 		}
 	}
diff --git a/platform/tron/client.go b/platform/tron/client.go
index dfa484a..5eb9888 100644
--- a/platform/tron/client.go
+++ b/platform/tron/client.go
@@ -8,17 +8,23 @@ import (
 	"time"
 )
 
-type Client struct {
-	blockatlas.Request
-}
+type (
+	Client struct {
+		blockatlas.Request
+	}
 
-func (c *Client) CurrentBlockNumber() (int64, error) {
+	ExplorerClient struct {
+		blockatlas.Request
+	}
+)
+
+func (c *Client) fetchCurrentBlockNumber() (int64, error) {
 	var block Block
 	err := c.Post(&block, "wallet/getnowblock", nil)
 	return block.BlockHeader.Data.Number, err
 }
 
-func (c *Client) GetBlockByNumber(num int64) (Block, error) {
+func (c *Client) fetchBlockByNumber(num int64) (Block, error) {
 	var blocks Blocks
 	err := c.Post(&blocks, "wallet/getblockbylimitnext", BlockRequest{StartNum: num, EndNum: num + 1})
 	if err != nil || blocks.Blocks == nil || len(blocks.Blocks) == 0 {
@@ -27,7 +33,7 @@ func (c *Client) GetBlockByNumber(num int64) (Block, error) {
 	return blocks.Blocks[0], nil
 }
 
-func (c *Client) GetTxsOfAddress(address, token string) ([]Tx, error) {
+func (c *Client) fetchTxsOfAddress(address, token string) ([]Tx, error) {
 	path := fmt.Sprintf("v1/accounts/%s/transactions", url.PathEscape(address))
 
 	var txs Page
@@ -40,24 +46,53 @@ func (c *Client) GetTxsOfAddress(address, token string) ([]Tx, error) {
 	return txs.Txs, err
 }
 
-func (c *Client) GetAccount(address string) (accounts *Account, err error) {
+func (c *Client) fetchAccount(address string) (accounts *Account, err error) {
 	path := fmt.Sprintf("v1/accounts/%s", address)
 	err = c.Get(&accounts, path, nil)
 	return
 }
 
-func (c *Client) GetAccountVotes(address string) (account *AccountData, err error) {
+func (c *Client) fetchAccountVotes(address string) (account *AccountData, err error) {
 	err = c.Post(&account, "wallet/getaccount", VotesRequest{Address: address, Visible: true})
 	return
 }
 
-func (c *Client) GetTokenInfo(id string) (asset Asset, err error) {
+func (c *Client) fetchTokenInfo(id string) (asset Asset, err error) {
 	path := fmt.Sprintf("v1/assets/%s", id)
 	err = c.GetWithCache(&asset, path, nil, time.Hour*24)
 	return
 }
 
-func (c *Client) GetValidators() (validators Validators, err error) {
+func (c *Client) fetchValidators() (validators Validators, err error) {
 	err = c.Get(&validators, "wallet/listwitnesses", nil)
 	return
 }
+
+func (c *Client) fetchTRC20Transactions(address string) (TRC20Transactions, error) {
+	var result TRC20Transactions
+	path := fmt.Sprintf("v1/accounts/%s/transactions/trc20", address)
+	err := c.Get(&result, path, url.Values{
+		"limit":          {"200"},
+		"order_by":       {"block_timestamp,desc"},
+		"only_confirmed": {"true"},
+	})
+	if err != nil {
+		return TRC20Transactions{}, err
+	}
+	return result, nil
+}
+
+func (c *ExplorerClient) fetchAllTRC20Tokens(address string) ([]ExplorerTrc20Tokens, error) {
+	var result ExplorerResponse
+	path := "api/account"
+	err := c.Get(&result, path, url.Values{
+		"address": {address},
+	})
+	if err != nil {
+		return nil, err
+	}
+	if result.ExplorerTrc20Tokens != nil {
+		return result.ExplorerTrc20Tokens, nil
+	}
+	return nil, nil
+}
diff --git a/platform/tron/model.go b/platform/tron/model.go
index 38e90ed..840a078 100644
--- a/platform/tron/model.go
+++ b/platform/tron/model.go
@@ -4,111 +4,146 @@ import (
 	"github.com/trustwallet/blockatlas/pkg/blockatlas"
 )
 
-type BlockRequest struct {
-	StartNum int64 `json:"startNum"`
-	EndNum   int64 `json:"endNum"`
-}
-
-type Blocks struct {
-	Blocks []Block `json:"block"`
-}
-
-type Block struct {
-	BlockId     string `json:"blockID"`
-	Txs         []Tx   `json:"transactions"`
-	BlockHeader struct {
-		Data BlockData `json:"raw_data"`
-	} `json:"block_header"`
-}
-
-type BlockData struct {
-	Number    int64 `json:"number"`
-	Timestamp int64 `json:"timestamp"`
-}
-
-type Page struct {
-	Success bool   `json:"success"`
-	Error   string `json:"error,omitempty"`
-	Txs     []Tx   `json:"data"`
-}
-
-type Tx struct {
-	ID        string `json:"txID"`
-	BlockTime int64  `json:"block_timestamp"`
-	Data      TxData `json:"raw_data"`
-}
-
-type TxData struct {
-	Timestamp int64      `json:"timestamp"`
-	Contracts []Contract `json:"contract"`
-}
-
-type ContractType string
+type (
+	BlockRequest struct {
+		StartNum int64 `json:"startNum"`
+		EndNum   int64 `json:"endNum"`
+	}
+
+	Blocks struct {
+		Blocks []Block `json:"block"`
+	}
+
+	Block struct {
+		BlockId     string `json:"blockID"`
+		Txs         []Tx   `json:"transactions"`
+		BlockHeader struct {
+			Data BlockData `json:"raw_data"`
+		} `json:"block_header"`
+	}
+
+	BlockData struct {
+		Number    int64 `json:"number"`
+		Timestamp int64 `json:"timestamp"`
+	}
+
+	Page struct {
+		Success bool   `json:"success"`
+		Error   string `json:"error,omitempty"`
+		Txs     []Tx   `json:"data"`
+	}
+
+	Tx struct {
+		ID        string `json:"txID"`
+		BlockTime int64  `json:"block_timestamp"`
+		Data      TxData `json:"raw_data"`
+	}
+
+	TxData struct {
+		Timestamp int64      `json:"timestamp"`
+		Contracts []Contract `json:"contract"`
+	}
+
+	ContractType string
+
+	Contract struct {
+		Type      ContractType `json:"type"`
+		Parameter struct {
+			Value TransferValue `json:"value"`
+		} `json:"parameter"`
+	}
+
+	TransferValue struct {
+		Amount       blockatlas.Amount `json:"amount"`
+		OwnerAddress string            `json:"owner_address"`
+		ToAddress    string            `json:"to_address"`
+		AssetName    string            `json:"asset_name,omitempty"`
+	}
+
+	Account struct {
+		Data []AccountData `json:"data"`
+	}
+
+	AccountData struct {
+		Balance  uint                `json:"balance"`
+		AssetsV2 []AssetV2           `json:"assetV2"`
+		Votes    []Votes             `json:"votes"`
+		Frozen   []Frozen            `json:"frozen"`
+		Trc20    []map[string]string `json:"trc20"`
+	}
+
+	AssetV2 struct {
+		Key string `json:"key"`
+	}
+
+	Votes struct {
+		VoteAddress string `json:"vote_address"`
+		VoteCount   int    `json:"vote_count"`
+	}
+
+	Frozen struct {
+		ExpireTime    int64       `json:"expire_time"`
+		FrozenBalance interface{} `json:"frozen_balance,string"` // nolint
+	}
+
+	Asset struct {
+		Data []AssetInfo `json:"data"`
+	}
+
+	AssetInfo struct {
+		Name     string `json:"name"`
+		Symbol   string `json:"abbr"`
+		ID       string `json:"id"`
+		Decimals uint   `json:"precision"`
+	}
+
+	Validators struct {
+		Witnesses []Validator `json:"witnesses"`
+	}
+
+	Validator struct {
+		Address string `json:"address"`
+	}
+
+	VotesRequest struct {
+		Address string `json:"address"`
+		Visible bool   `json:"visible"`
+	}
+
+	TRC20Transactions struct {
+		Data []TRC20Transaction `json:"data"`
+	}
+
+	TRC20Transaction struct {
+		From           string         `json:"from"`
+		To             string         `json:"to"`
+		BlockTimestamp int64          `json:"block_timestamp"`
+		Value          string         `json:"value"`
+		Type           string         `json:"type"`
+		TransactionID  string         `json:"transaction_id"`
+		TokenInfo      TRC20TokenInfo `json:"token_info"`
+	}
+
+	TRC20TokenInfo struct {
+		Name     string `json:"name"`
+		Symbol   string `json:"symbol"`
+		Decimals int    `json:"decimals"`
+		Address  string `json:"address"`
+	}
+
+	ExplorerResponse struct {
+		ExplorerTrc20Tokens []ExplorerTrc20Tokens `json:"trc20token_balances"`
+	}
+
+	ExplorerTrc20Tokens struct {
+		Name            string `json:"name"`
+		Symbol          string `json:"symbol"`
+		Decimals        int    `json:"decimals"`
+		ContractAddress string `json:"contract_address"`
+	}
+)
 
 const (
 	TransferContract      ContractType = "TransferContract"
 	TransferAssetContract ContractType = "TransferAssetContract"
 )
-
-type Contract struct {
-	Type      ContractType `json:"type"`
-	Parameter struct {
-		Value TransferValue `json:"value"`
-	} `json:"parameter"`
-}
-
-type TransferValue struct {
-	Amount       blockatlas.Amount `json:"amount"`
-	OwnerAddress string            `json:"owner_address"`
-	ToAddress    string            `json:"to_address"`
-	AssetName    string            `json:"asset_name,omitempty"`
-}
-
-type Account struct {
-	Data []AccountData `json:"data"`
-}
-
-type AccountData struct {
-	Balance  uint      `json:"balance"`
-	AssetsV2 []AssetV2 `json:"assetV2"`
-	Votes    []Votes   `json:"votes"`
-	Frozen   []Frozen  `json:"frozen"`
-}
-
-type AssetV2 struct {
-	Key string `json:"key"`
-}
-
-type Votes struct {
-	VoteAddress string `json:"vote_address"`
-	VoteCount   int    `json:"vote_count"`
-}
-
-type Frozen struct {
-	ExpireTime    int64       `json:"expire_time"`
-	FrozenBalance interface{} `json:"frozen_balance,string"` // nolint
-}
-
-type Asset struct {
-	Data []AssetInfo `json:"data"`
-}
-
-type AssetInfo struct {
-	Name     string `json:"name"`
-	Symbol   string `json:"abbr"`
-	ID       string `json:"id"`
-	Decimals uint   `json:"precision"`
-}
-
-type Validators struct {
-	Witnesses []Validator `json:"witnesses"`
-}
-
-type Validator struct {
-	Address string `json:"address"`
-}
-
-type VotesRequest struct {
-	Address string `json:"address"`
-	Visible bool   `json:"visible"`
-}
diff --git a/platform/tron/stake.go b/platform/tron/stake.go
index 18b9a38..c8c7859 100644
--- a/platform/tron/stake.go
+++ b/platform/tron/stake.go
@@ -25,7 +25,7 @@ func (p *Platform) GetActiveValidators() (blockatlas.StakeValidators, error) {
 
 func (p *Platform) GetValidators() (blockatlas.ValidatorPage, error) {
 	results := make(blockatlas.ValidatorPage, 0)
-	validators, err := p.client.GetValidators()
+	validators, err := p.client.fetchValidators()
 	if err != nil {
 		return results, err
 	}
@@ -53,7 +53,7 @@ func getDetails() blockatlas.StakingDetails {
 
 func (p *Platform) GetDelegations(address string) (blockatlas.DelegationsPage, error) {
 	results := make(blockatlas.DelegationsPage, 0)
-	votes, err := p.client.GetAccountVotes(address)
+	votes, err := p.client.fetchAccountVotes(address)
 	if err != nil {
 		return nil, err
 	}
@@ -69,7 +69,7 @@ func (p *Platform) GetDelegations(address string) (blockatlas.DelegationsPage, e
 }
 
 func (p *Platform) UndelegatedBalance(address string) (string, error) {
-	account, err := p.client.GetAccount(address)
+	account, err := p.client.fetchAccount(address)
 	if err != nil {
 		return "0", err
 	}
diff --git a/platform/tron/token.go b/platform/tron/token.go
index fc7f21f..e46aaf8 100644
--- a/platform/tron/token.go
+++ b/platform/tron/token.go
@@ -8,7 +8,7 @@ import (
 )
 
 func (p *Platform) GetTokenListByAddress(address string) (blockatlas.TokenPage, error) {
-	tokens, err := p.client.GetAccount(address)
+	tokens, err := p.client.fetchAccount(address)
 	if err != nil {
 		return nil, err
 	}
@@ -26,6 +26,23 @@ func (p *Platform) GetTokenListByAddress(address string) (blockatlas.TokenPage,
 	for info := range tokensChan {
 		tokenPage = append(tokenPage, info)
 	}
+
+	trc20Tokens, err := p.explorerClient.fetchAllTRC20Tokens(address)
+	if err != nil {
+		logger.Error("Explorer error" + err.Error())
+	}
+
+	for _, t := range trc20Tokens {
+		tokenPage = append(tokenPage, blockatlas.Token{
+			Name:     t.Name,
+			Symbol:   t.Symbol,
+			Decimals: uint(t.Decimals),
+			TokenID:  t.ContractAddress,
+			Coin:     coin.Tron().ID,
+			Type:     blockatlas.TokenTypeTRC20,
+		})
+	}
+
 	return tokenPage, nil
 }
 
@@ -48,9 +65,9 @@ func (p *Platform) getTokens(ids []string) chan blockatlas.Token {
 }
 
 func (p *Platform) getTokensChannel(id string, tkChan chan blockatlas.Token) error {
-	info, err := p.client.GetTokenInfo(id)
+	info, err := p.client.fetchTokenInfo(id)
 	if err != nil || len(info.Data) == 0 {
-		logger.Error(err, "GetTokenInfo: invalid token")
+		logger.Error(err, "fetchTokenInfo: invalid token")
 		return err
 	}
 	asset := NormalizeToken(info.Data[0])
diff --git a/platform/tron/transaction.go b/platform/tron/transaction.go
index baf200c..156eed3 100644
--- a/platform/tron/transaction.go
+++ b/platform/tron/transaction.go
@@ -6,17 +6,18 @@ import (
 	"github.com/trustwallet/blockatlas/pkg/blockatlas"
 	"github.com/trustwallet/blockatlas/pkg/errors"
 	"github.com/trustwallet/blockatlas/pkg/logger"
+	"strconv"
 )
 
 func (p *Platform) GetTxsByAddress(address string) (blockatlas.TxPage, error) {
-	Txs, err := p.client.GetTxsOfAddress(address, "")
+	Txs, err := p.client.fetchTxsOfAddress(address, "")
 	if err != nil && len(Txs) == 0 {
 		return nil, err
 	}
 
 	txs := make(blockatlas.TxPage, 0)
 	for _, srcTx := range Txs {
-		tx, err := Normalize(srcTx)
+		tx, err := normalize(srcTx)
 		if err != nil {
 			continue
 		}
@@ -32,52 +33,106 @@ func (p *Platform) GetTxsByAddress(address string) (blockatlas.TxPage, error) {
 }
 
 func (p *Platform) GetTokenTxsByAddress(address, token string) (blockatlas.TxPage, error) {
-	tokenTxs, err := p.client.GetTxsOfAddress(address, token)
+	unknownTokenType := errors.E("unknownTokenType")
+	tokenType := getTokenType(token)
+
+	switch tokenType {
+	case blockatlas.TokenTypeTRC10:
+		txs, err := p.fetchTransactionsForTRC10Tokens(address, token)
+		if err != nil {
+			return nil, err
+		}
+		return txs, nil
+	case blockatlas.TokenTypeTRC20:
+		trc20Transactions, err := p.client.fetchTRC20Transactions(address)
+		if err != nil {
+			return nil, err
+		}
+		return blockatlas.TxPage(normalizeTRC20Transactions(trc20Transactions)), nil
+	default:
+		return nil, unknownTokenType
+	}
+}
+
+func getTokenType(token string) blockatlas.TokenType {
+	_, err := strconv.Atoi(token)
 	if err != nil {
-		return nil, errors.E(err, "TRON: failed to get token from address", errors.TypePlatformApi,
-			errors.Params{"address": address, "token": token})
+		return blockatlas.TokenTypeTRC20
+	} else {
+		return blockatlas.TokenTypeTRC10
 	}
+}
 
+func addTokenMeta(tx *blockatlas.Tx, srcTx Tx, tokenInfo AssetInfo) {
+	transfer := srcTx.Data.Contracts[0].Parameter.Value
+	tx.Meta = blockatlas.TokenTransfer{
+		Name:     tokenInfo.Name,
+		Symbol:   tokenInfo.Symbol,
+		TokenID:  tokenInfo.ID,
+		Decimals: tokenInfo.Decimals,
+		Value:    transfer.Amount,
+		From:     tx.From,
+		To:       tx.To,
+	}
+}
+
+func (p *Platform) fetchTransactionsForTRC10Tokens(address, token string) (blockatlas.TxPage, error) {
 	txs := make(blockatlas.TxPage, 0)
 
-	if len(tokenTxs) == 0 {
-		return txs, nil
+	tokenTxs, err := p.client.fetchTxsOfAddress(address, token)
+	if err != nil {
+		return nil, errors.E(err, "TRON: failed to get token from address", errors.TypePlatformApi,
+			errors.Params{"address": address, "token": token})
 	}
 
-	info, err := p.client.GetTokenInfo(token)
-	if err != nil || len(info.Data) == 0 {
+	info, err := p.client.fetchTokenInfo(token)
+	if err != nil {
 		return nil, errors.E(err, "TRON: failed to get token info", errors.TypePlatformApi,
 			errors.Params{"address": address, "token": token})
 	}
-
 	for _, srcTx := range tokenTxs {
-		tx, err := Normalize(srcTx)
+		tx, err := normalize(srcTx)
 		if err != nil {
 			logger.Error(err)
 			continue
 		}
-		setTokenMeta(tx, srcTx, info.Data[0])
+		if info.Data != nil && len(info.Data) > 0 {
+			addTokenMeta(tx, srcTx, info.Data[0])
+		}
+
 		txs = append(txs, *tx)
 	}
-
 	return txs, nil
 }
 
-func setTokenMeta(tx *blockatlas.Tx, srcTx Tx, tokenInfo AssetInfo) {
-	transfer := srcTx.Data.Contracts[0].Parameter.Value
-	tx.Meta = blockatlas.TokenTransfer{
-		Name:     tokenInfo.Name,
-		Symbol:   tokenInfo.Symbol,
-		TokenID:  tokenInfo.ID,
-		Decimals: tokenInfo.Decimals,
-		Value:    transfer.Amount,
-		From:     tx.From,
-		To:       tx.To,
+func normalizeTRC20Transactions(transactions TRC20Transactions) blockatlas.Txs {
+	txs := make(blockatlas.Txs, 0, len(transactions.Data))
+	for _, rawTx := range transactions.Data {
+		tx := blockatlas.Tx{
+			ID:     rawTx.TransactionID,
+			Coin:   coin.TRX,
+			Date:   rawTx.BlockTimestamp / 1000,
+			From:   rawTx.From,
+			To:     rawTx.To,
+			Fee:    "0",
+			Block:  0,
+			Status: blockatlas.StatusCompleted,
+			Meta: blockatlas.TokenTransfer{
+				Name:     rawTx.TokenInfo.Name,
+				Symbol:   rawTx.TokenInfo.Symbol,
+				TokenID:  rawTx.TokenInfo.Address,
+				Decimals: uint(rawTx.TokenInfo.Decimals),
+				Value:    blockatlas.Amount(rawTx.Value),
+				From:     rawTx.From,
+				To:       rawTx.To,
+			},
+		}
+		txs = append(txs, tx)
 	}
+	return txs
 }
 
-/// Normalize converts a Tron transaction into the generic model
-func Normalize(srcTx Tx) (*blockatlas.Tx, error) {
+func normalize(srcTx Tx) (*blockatlas.Tx, error) {
 	if len(srcTx.Data.Contracts) == 0 {
 		return nil, errors.E("TRON: transfer without contract", errors.TypePlatformApi,
 			errors.Params{"tx": srcTx})


Test patch:
diff --git a/platform/tron/token_test.go b/platform/tron/token_test.go
index 8bf9089..c324f09 100644
--- a/platform/tron/token_test.go
+++ b/platform/tron/token_test.go
@@ -1,8 +1,13 @@
 package tron
 
 import (
+	"encoding/json"
+	"fmt"
 	"github.com/stretchr/testify/assert"
 	"github.com/trustwallet/blockatlas/pkg/blockatlas"
+	"net/http"
+	"net/http/httptest"
+	"sort"
 	"testing"
 )
 
@@ -20,3 +25,90 @@ func TestNormalizeToken(t *testing.T) {
 	actual := NormalizeToken(asset)
 	assert.Equal(t, tokenDst, actual)
 }
+
+func TestPlatform_GetTokenListByAddress(t *testing.T) {
+	server := httptest.NewServer(createMockedAPI())
+	defer server.Close()
+
+	p := Init(server.URL, server.URL)
+	res, err := p.GetTokenListByAddress("TM1zzNDZD2DPASbKcgdVoTYhfmYgtfwx9R")
+	assert.Nil(t, err)
+	sort.Slice(res, func(i, j int) bool {
+		return res[i].TokenID < res[j].TokenID
+	})
+	rawRes, err := json.Marshal(res)
+	assert.Nil(t, err)
+	assert.Equal(t, wantedTokensResponse, string(rawRes))
+}
+
+func createMockedAPI() http.Handler {
+	r := http.NewServeMux()
+
+	r.HandleFunc("/v1/accounts/TM1zzNDZD2DPASbKcgdVoTYhfmYgtfwx9R", func(w http.ResponseWriter, r *http.Request) {
+		w.WriteHeader(http.StatusOK)
+		if _, err := fmt.Fprint(w, mockedAccountsResponse); err != nil {
+			panic(err)
+		}
+	})
+
+	r.HandleFunc("/v1/assets/1000542", func(w http.ResponseWriter, r *http.Request) {
+		w.WriteHeader(http.StatusOK)
+		if _, err := fmt.Fprint(w, mockedAsset1000542Response); err != nil {
+			panic(err)
+		}
+	})
+
+	r.HandleFunc("/v1/assets/1000567", func(w http.ResponseWriter, r *http.Request) {
+		w.WriteHeader(http.StatusOK)
+		if _, err := fmt.Fprint(w, mockedAsset1000567Response); err != nil {
+			panic(err)
+		}
+	})
+	r.HandleFunc("/v1/assets/TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t", func(w http.ResponseWriter, r *http.Request) {
+		w.WriteHeader(http.StatusOK)
+		if _, err := fmt.Fprint(w, mockedAssetTR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6tResponse); err != nil {
+			panic(err)
+		}
+	})
+
+	r.HandleFunc("/api/account", func(w http.ResponseWriter, r *http.Request) {
+		w.WriteHeader(http.StatusOK)
+		if _, err := fmt.Fprint(w, mockedTrc20Response); err != nil {
+			panic(err)
+		}
+	})
+	r.HandleFunc("/v1/accounts/TM1zzNDZD2DPASbKcgdVoTYhfmYgtfwx9R/transactions", func(w http.ResponseWriter, r *http.Request) {
+		w.WriteHeader(http.StatusOK)
+		if _, err := fmt.Fprint(w, mockedAccountsTransactionsResponse); err != nil {
+			panic(err)
+		}
+	})
+
+	r.HandleFunc("/v1/accounts/TM1zzNDZD2DPASbKcgdVoTYhfmYgtfwx9D/transactions", func(w http.ResponseWriter, r *http.Request) {
+		w.WriteHeader(http.StatusOK)
+		if _, err := fmt.Fprint(w, mockedTransactionsEmptyResponse); err != nil {
+			panic(err)
+		}
+	})
+
+	r.HandleFunc("/v1/accounts/TM1zzNDZD2DPASbKcgdVoTYhfmYgtfwx9D/transactions/trc20", func(w http.ResponseWriter, r *http.Request) {
+		w.WriteHeader(http.StatusOK)
+		if _, err := fmt.Fprint(w, mockedTransactionsTrc20Response); err != nil {
+			panic(err)
+		}
+	})
+
+	return r
+}
+
+var (
+	wantedTokensResponse                                  = `[{"name":"FomoThreeD","symbol":"FOM","decimals":0,"token_id":"1000542","coin":195,"type":"TRC10"},{"name":"OtonamiS","symbol":"os","decimals":0,"token_id":"1000567","coin":195,"type":"TRC10"},{"name":"JUST GOV","symbol":"JST","decimals":18,"token_id":"TCFLL5dx5ZJdKnWuesXxi1VPwjLVmWZZy9","coin":195,"type":"TRC20"},{"name":"Enme Token","symbol":"EME","decimals":6,"token_id":"TCRhVHPv6efvXgogNMhiunAMXFKcMmv2pF","coin":195,"type":"TRC20"},{"name":"BeeHive","symbol":"Bee","decimals":8,"token_id":"TG7Z1ptC7nRkaniDVRhHSyLycaroaS5PdK","coin":195,"type":"TRC20"},{"name":"Mono Token","symbol":"MONO","decimals":18,"token_id":"TLKyLt4MXuvvdFvUUc3Zma4rZyj2t87Mak","coin":195,"type":"TRC20"},{"name":"WINK","symbol":"WIN","decimals":6,"token_id":"TLa2f6VPqDgRE67v1736s7bJ8Ray5wYjU7","coin":195,"type":"TRC20"},{"name":"PYRO Network","symbol":"PYRO","decimals":6,"token_id":"TMCMPzmosnQ8UAYW1zcBwjLTxDq8ce4Y5e","coin":195,"type":"TRC20"},{"name":"NoleCoin","symbol":"NOLE","decimals":6,"token_id":"TPt8DTDBZYfJ9fuyRjdWJr4PP68tRfptLG","coin":195,"type":"TRC20"},{"name":"Tether USD","symbol":"USDT","decimals":6,"token_id":"TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t","coin":195,"type":"TRC20"},{"name":"Wuhan Fried Bats","symbol":"WUHAN","decimals":4,"token_id":"TSzjFRf8bQ46kRndWaHYKSq1P5HzRJfPvr","coin":195,"type":"TRC20"},{"name":"HelGro","symbol":"HGRO","decimals":6,"token_id":"TTvVC9jv5AfDdHuGeCMcQg6QftmNnfQiVm","coin":195,"type":"TRC20"}]`
+	mockedAccountsTransactionsResponse                    = `{"success":true,"meta":{"at":1592755486554,"page_size":25,"fingerprint":"4CwRecxbH99eRRkU2FFkGRCvoQGwphNyRcTTiM1GfUrkoQ1fG9Kcc8ADZo7pSCYXja28JWKUACy2Xt6UG1Fa5tSZh5dqpUEuTi1W","links":{"next":"https://api.trongrid.io:443/v1/accounts/TM1zzNDZD2DPASbKcgdVoTYhfmYgtfwx9R/transactions?limit=25&order_by=block_timestamp%2Cdesc&token_id=&fingerprint=4CwRecxbH99eRRkU2FFkGRCvoQGwphNyRcTTiM1GfUrkoQ1fG9Kcc8ADZo7pSCYXja28JWKUACy2Xt6UG1Fa5tSZh5dqpUEuTi1W"}},"data":[{"blockNumber":20829763,"block_timestamp":1592755239000,"energy_fee":296310,"energy_usage":0,"energy_usage_total":29631,"internal_transactions":[],"net_fee":3460,"net_usage":0,"raw_data":{"contract":[{"parameter":{"type_url":"type.googleapis.com/protocol.TriggerSmartContract","value":{"call_value":0,"contract_address":"41a614f803b6fd780986a42c78ec9c7f77e6ded13c","data":"a9059cbb0000000000000000000000413b334848f75cf8c27ec975bcc7cc7e54f140b3c000000000000000000000000000000000000000000000000000000000cd0e33a0","owner_address":"4179309abcff2cf531070ca9222a1f72c4a5136874"}},"type":"TriggerSmartContract"}],"expiration":1592758890000,"fee_limit":1000000000,"ref_block_bytes":"d62e","ref_block_hash":"bbf7d06ee7004d5a","timestamp":1592755233594},"raw_data_hex":"0a02d62e2208bbf7d06ee7004d5a4090dccfbead2e5aae01081f12a9010a31747970652e676f6f676c65617069732e636f6d2f70726f746f636f6c2e54726967676572536d617274436f6e747261637412740a154179309abcff2cf531070ca9222a1f72c4a5136874121541a614f803b6fd780986a42c78ec9c7f77e6ded13c2244a9059cbb0000000000000000000000413b334848f75cf8c27ec975bcc7cc7e54f140b3c000000000000000000000000000000000000000000000000000000000cd0e33a070bac6f0bcad2e90018094ebdc03","ret":[{"code":"SUCESS","contractRet":"SUCCESS","fee":299770}],"signature":["c9a405be8b12f92747cc0f0d979606807a03edcefd154bcf517ce26f8bf681400d6cdacda11c98e7ae61d51905f7113658a786d6022b97e025f5a7e99b53845d01"],"txID":"18f5908a7e208e16bfb892a5b06df75675d3142d03a0d99d270ac46143b78d06"},{"blockNumber":20829760,"block_timestamp":1592755230000,"energy_fee":146310,"energy_usage":0,"energy_usage_total":14631,"internal_transactions":[],"net_fee":3460,"net_usage":0,"raw_data":{"contract":[{"parameter":{"type_url":"type.googleapis.com/protocol.TriggerSmartContract","value":{"call_value":0,"contract_address":"41a614f803b6fd780986a42c78ec9c7f77e6ded13c","data":"a9059cbb00000000000000000000004158a82464024027b8e81bd1997cc7ba8f26a01314000000000000000000000000000000000000000000000000000000001dce7a58","owner_address":"4179309abcff2cf531070ca9222a1f72c4a5136874"}},"type":"TriggerSmartContract"}],"expiration":1592758881000,"fee_limit":1000000000,"ref_block_bytes":"d62b","ref_block_hash":"38ebe631e633b827","timestamp":1592755223352},"raw_data_hex":"0a02d62b220838ebe631e633b82740e895cfbead2e5aae01081f12a9010a31747970652e676f6f676c65617069732e636f6d2f70726f746f636f6c2e54726967676572536d617274436f6e747261637412740a154179309abcff2cf531070ca9222a1f72c4a5136874121541a614f803b6fd780986a42c78ec9c7f77e6ded13c2244a9059cbb00000000000000000000004158a82464024027b8e81bd1997cc7ba8f26a01314000000000000000000000000000000000000000000000000000000001dce7a5870b8f6efbcad2e90018094ebdc03","ret":[{"code":"SUCESS","contractRet":"SUCCESS","fee":149770}],"signature":["39ee8b2e7ab589538f3a976644399ba60667ede4d9611229298d52f5aeb01a6624e2346703d8a19edc9f457b89a0dbb800ae87d049ad3a7d72353fde77635f1a00"],"txID":"2a9eda92b9a2a0e56d29000ad24daae7d577c5db44d2b737f6a35584cd81b5e0"},{"blockNumber":20829760,"block_timestamp":1592755230000,"energy_fee":119110,"energy_usage":0,"energy_usage_total":14631,"internal_transactions":[],"net_fee":3460,"net_usage":0,"raw_data":{"contract":[{"parameter":{"type_url":"type.googleapis.com/protocol.TriggerSmartContract","value":{"call_value":0,"contract_address":"41a614f803b6fd780986a42c78ec9c7f77e6ded13c","data":"a9059cbb0000000000000000000000413c51c36069e0a1fdf3278907ecd5a05e90a3ac84000000000000000000000000000000000000000000000000000000037e11d600","owner_address":"4179309abcff2cf531070ca9222a1f72c4a5136874"}},"type":"TriggerSmartContract"}],"expiration":1592758881000,"fee_limit":1000000000,"ref_block_bytes":"d62b","ref_block_hash":"38ebe631e633b827","timestamp":1592755223053},"raw_data_hex":"0a02d62b220838ebe631e633b82740e895cfbead2e5aae01081f12a9010a31747970652e676f6f676c65617069732e636f6d2f70726f746f636f6c2e54726967676572536d617274436f6e747261637412740a154179309abcff2cf531070ca9222a1f72c4a5136874121541a614f803b6fd780986a42c78ec9c7f77e6ded13c2244a9059cbb0000000000000000000000413c51c36069e0a1fdf3278907ecd5a05e90a3ac84000000000000000000000000000000000000000000000000000000037e11d600708df4efbcad2e90018094ebdc03","ret":[{"code":"SUCESS","contractRet":"SUCCESS","fee":122570}],"signature":["710a4b8543a9f605acc809ebe5b8a3a3b4681ebf2123fcdda39187bde86c9bc839cf6d882d9d15052b94ed6bba6474f9fdf09e73afefe40f6bad909029cadd2500"],"txID":"c838b8a683d39c6f1a8a173e6fffc5cc9122acc690f5e35fa7c1935cc5eae540"},{"blockNumber":20829742,"block_timestamp":1592755176000,"energy_fee":296310,"energy_usage":0,"energy_usage_total":29631,"internal_transactions":[],"net_fee":3460,"net_usage":0,"raw_data":{"contract":[{"parameter":{"type_url":"type.googleapis.com/protocol.TriggerSmartContract","value":{"call_value":0,"contract_address":"41a614f803b6fd780986a42c78ec9c7f77e6ded13c","data":"a9059cbb000000000000000000000041c80ab7aac02a3d4b3d89ee781cddce55286bcf2d000000000000000000000000000000000000000000000000000000000bebc200","owner_address":"4179309abcff2cf531070ca9222a1f72c4a5136874"}},"type":"TriggerSmartContract"}],"expiration":1592758830000,"fee_limit":1000000000,"ref_block_bytes":"d61a","ref_block_hash":"b1015d64daa873a3","timestamp":1592755172703},"raw_data_hex":"0a02d61a2208b1015d64daa873a340b087ccbead2e5aae01081f12a9010a31747970652e676f6f676c65617069732e636f6d2f70726f746f636f6c2e54726967676572536d617274436f6e747261637412740a154179309abcff2cf531070ca9222a1f72c4a5136874121541a614f803b6fd780986a42c78ec9c7f77e6ded13c2244a9059cbb000000000000000000000041c80ab7aac02a3d4b3d89ee781cddce55286bcf2d000000000000000000000000000000000000000000000000000000000bebc20070dfeaecbcad2e90018094ebdc03","ret":[{"code":"SUCESS","contractRet":"SUCCESS","fee":299770}],"signature":["a7583c4e402eff463b083de5cfcbaadc46ed8601e2346f20d01eb0ec7a6824d869be27371f8c0e5a38a708df724be60a818b9647757bdde73ed743ff9324115c01"],"txID":"ad631a0e55bd2bb64747bf388dc92084c32506843c19a0a2b69234b4d4e56a6b"},{"blockNumber":20829732,"block_timestamp":1592755146000,"energy_fee":231500,"energy_usage":0,"energy_usage_total":29631,"internal_transactions":[],"net_fee":3460,"net_usage":0,"raw_data":{"contract":[{"parameter":{"type_url":"type.googleapis.com/protocol.TriggerSmartContract","value":{"call_value":0,"contract_address":"41a614f803b6fd780986a42c78ec9c7f77e6ded13c","data":"a9059cbb0000000000000000000000410d4fd52433f30edd0b512f59fa021527bbd7de610000000000000000000000000000000000000000000000000000000001c9c380","owner_address":"4179309abcff2cf531070ca9222a1f72c4a5136874"}},"type":"TriggerSmartContract"}],"expiration":1592758800000,"fee_limit":1000000000,"ref_block_bytes":"d610","ref_block_hash":"2a14293035535e85","timestamp":1592755142312},"raw_data_hex":"0a02d61022082a14293035535e8540809dcabead2e5aae01081f12a9010a31747970652e676f6f676c65617069732e636f6d2f70726f746f636f6c2e54726967676572536d617274436f6e747261637412740a154179309abcff2cf531070ca9222a1f72c4a5136874121541a614f803b6fd780986a42c78ec9c7f77e6ded13c2244a9059cbb0000000000000000000000410d4fd52433f30edd0b512f59fa021527bbd7de610000000000000000000000000000000000000000000000000000000001c9c38070a8fdeabcad2e90018094ebdc03","ret":[{"code":"SUCESS","contractRet":"SUCCESS","fee":234960}],"signature":["3095c2130ee5d4da72246a17098b587c25108e1c1884f9128911e079997dd25c45e0b0acfc99e3ee4367c4670e2117dd24884c32ae0ea15ec9f9368910e4c42801"],"txID":"f1920eefa4de8370bc349fbd6ca73e24d9000d9d8fe5c71260a2902d3b49b02a"},{"blockNumber":20829718,"block_timestamp":1592755104000,"energy_fee":166720,"energy_usage":0,"energy_usage_total":29631,"internal_transactions":[],"net_fee":3460,"net_usage":0,"raw_data":{"contract":[{"parameter":{"type_url":"type.googleapis.com/protocol.TriggerSmartContract","value":{"call_value":0,"contract_address":"41a614f803b6fd780986a42c78ec9c7f77e6ded13c","data":"a9059cbb00000000000000000000004135c4d4a5544d25a2f25a7cda73d57c45a36578bc0000000000000000000000000000000000000000000000000000000010089d40","owner_address":"4179309abcff2cf531070ca9222a1f72c4a5136874"}},"type":"TriggerSmartContract"}],"expiration":1592758761000,"fee_limit":1000000000,"ref_block_bytes":"d603","ref_block_hash":"f84579e34d118430","timestamp":1592755101713},"raw_data_hex":"0a02d6032208f84579e34d11843040a8ecc7bead2e5aae01081f12a9010a31747970652e676f6f676c65617069732e636f6d2f70726f746f636f6c2e54726967676572536d617274436f6e747261637412740a154179309abcff2cf531070ca9222a1f72c4a5136874121541a614f803b6fd780986a42c78ec9c7f77e6ded13c2244a9059cbb00000000000000000000004135c4d4a5544d25a2f25a7cda73d57c45a36578bc0000000000000000000000000000000000000000000000000000000010089d407091c0e8bcad2e90018094ebdc03","ret":[{"code":"SUCESS","contractRet":"SUCCESS","fee":170180}],"signature":["816b2747c6c1f6be139d233118b4b1e3c3942d62f56d1b0c8a496851ea233c5c1b6e0e0a13e22c3a4c1bd106eb6c0e987d5c84f9fcc29ee7b86bd4d1874ade9601"],"txID":"cec1061166e4924123356b8066872b641956691d1b1f11a12f293c54e7178362"},{"blockNumber":20829716,"block_timestamp":1592755098000,"energy_fee":0,"energy_usage":0,"energy_usage_total":0,"internal_transactions":[],"net_fee":2690,"net_usage":0,"raw_data":{"contract":[{"parameter":{"type_url":"type.googleapis.com/protocol.TransferContract","value":{"amount":13195916000,"owner_address":"4179309abcff2cf531070ca9222a1f72c4a5136874","to_address":"41d9378a9849912a41ec1f0e4677c074edf0516241"}},"type":"TransferContract"}],"expiration":1592758749000,"fee_limit":0,"ref_block_bytes":"d5ff","ref_block_hash":"c753125289c79c7c","timestamp":1592755089996},"raw_data_hex":"0a02d5ff2208c753125289c79c7c40c88ec7bead2e5a69080112650a2d747970652e676f6f676c65617069732e636f6d2f70726f746f636f6c2e5472616e73666572436f6e747261637412340a154179309abcff2cf531070ca9222a1f72c4a5136874121541d9378a9849912a41ec1f0e4677c074edf051624118e0e5a6943170cce4e7bcad2e","ret":[{"code":"SUCESS","contractRet":"SUCCESS","fee":2690}],"signature":["bae63e4214b0ab611079beabca020c82fbcada902f1f0c13106e7c4ba463efb25610d13b00b28cd19b54f648b88a4b05a08583b44b4f4179c2c605b42b22ad4b00"],"txID":"3fca53c08ccb48bb625439a58998713d8ecc3dc1348cc3cfab912e0815b62b1a"},{"blockNumber":20829708,"block_timestamp":1592755074000,"energy_fee":146310,"energy_usage":0,"energy_usage_total":14631,"internal_transactions":[],"net_fee":3460,"net_usage":0,"raw_data":{"contract":[{"parameter":{"type_url":"type.googleapis.com/protocol.TriggerSmartContract","value":{"call_value":0,"contract_address":"41a614f803b6fd780986a42c78ec9c7f77e6ded13c","data":"a9059cbb000000000000000000000041dd61209cd00224690ace233bb7257b054a49015a0000000000000000000000000000000000000000000000000000000005fc2678","owner_address":"4179309abcff2cf531070ca9222a1f72c4a5136874"}},"type":"TriggerSmartContract"}],"expiration":1592758719000,"fee_limit":1000000000,"ref_block_bytes":"d5f5","ref_block_hash":"84843b5d1de30802","timestamp":1592755061404},"raw_data_hex":"0a02d5f5220884843b5d1de308024098a4c5bead2e5aae01081f12a9010a31747970652e676f6f676c65617069732e636f6d2f70726f746f636f6c2e54726967676572536d617274436f6e747261637412740a154179309abcff2cf531070ca9222a1f72c4a5136874121541a614f803b6fd780986a42c78ec9c7f77e6ded13c2244a9059cbb000000000000000000000041dd61209cd00224690ace233bb7257b054a49015a0000000000000000000000000000000000000000000000000000000005fc2678709c85e6bcad2e90018094ebdc03","ret":[{"code":"SUCESS","contractRet":"SUCCESS","fee":149770}],"signature":["6dd6709cee109df62c3a7f196f45d3efa16c25738c1c4ea371cce18443016c8911a2d65fd4f2d7b4932aed34634169adc981db081522b094e63d9528882b3de801"],"txID":"8e886732999efe30e0d7c93eee40c41f058f33c82194141317768810a5a84b82"},{"blockNumber":20829681,"block_timestamp":1592754993000,"energy_fee":231500,"energy_usage":0,"energy_usage_total":29631,"internal_transactions":[],"net_fee":3460,"net_usage":0,"raw_data":{"contract":[{"parameter":{"type_url":"type.googleapis.com/protocol.TriggerSmartContract","value":{"call_value":0,"contract_address":"41a614f803b6fd780986a42c78ec9c7f77e6ded13c","data":"a9059cbb000000000000000000000041dd61209cd00224690ace233bb7257b054a49015a0000000000000000000000000000000000000000000000000000000005e5eb10","owner_address":"4179309abcff2cf531070ca9222a1f72c4a5136874"}},"type":"TriggerSmartContract"}],"expiration":1592758638000,"fee_limit":1000000000,"ref_block_bytes":"d5da","ref_block_hash":"3234615516f16ee9","timestamp":1592754980996},"raw_data_hex":"0a02d5da22083234615516f16ee940b0abc0bead2e5aae01081f12a9010a31747970652e676f6f676c65617069732e636f6d2f70726f746f636f6c2e54726967676572536d617274436f6e747261637412740a154179309abcff2cf531070ca9222a1f72c4a5136874121541a614f803b6fd780986a42c78ec9c7f77e6ded13c2244a9059cbb000000000000000000000041dd61209cd00224690ace233bb7257b054a49015a0000000000000000000000000000000000000000000000000000000005e5eb10708491e1bcad2e90018094ebdc03","ret":[{"code":"SUCESS","contractRet":"SUCCESS","fee":234960}],"signature":["896243c9d9c8ba595deafb81b7c4fc283271e0f46aa7031f270d91a383ce997a09f4a3aa6fb0478a7dac9b7df295dcf232f8bf4941583848f45bd8e258f9482e01"],"txID":"8b7c9f9f29cbf9ced22761f918d19471b3bb638438e6cc23e8104fed7dda1ef3"},{"blockNumber":20829627,"block_timestamp":1592754831000,"energy_fee":0,"energy_usage":0,"energy_usage_total":0,"internal_transactions":[],"net_fee":2850,"net_usage":0,"raw_data":{"contract":[{"parameter":{"type_url":"type.googleapis.com/protocol.TransferAssetContract","value":{"amount":7639170000000,"asset_name":"1002000","owner_address":"4179309abcff2cf531070ca9222a1f72c4a5136874","to_address":"410a60e164aa897ef76779164dff6e36161980c6fb"}},"type":"TransferAssetContract"}],"expiration":1592758479000,"fee_limit":0,"ref_block_bytes":"d5a5","ref_block_hash":"462e1cfdbe99a85b","timestamp":1592754820511},"raw_data_hex":"0a02d5a52208462e1cfdbe99a85b4098d1b6bead2e5a79080212750a32747970652e676f6f676c65617069732e636f6d2f70726f746f636f6c2e5472616e736665724173736574436f6e7472616374123f0a073130303230303012154179309abcff2cf531070ca9222a1f72c4a51368741a15410a60e164aa897ef76779164dff6e36161980c6fb2080c98e90aade01709fabd7bcad2e","ret":[{"code":"SUCESS","contractRet":"SUCCESS","fee":2850}],"signature":["b49c878a8e85339fc4917e7f20625b38b941871c86572d2c01322ec26575c7024c34b498e464109a03f8e42df24cc0868910a0e7b1f7c174f5005a483a93dac600"],"txID":"79010512f8e58574cbd066d1a1bd1c7f46f65e59e3b7733010047ff8350f15f1"},{"blockNumber":20829617,"block_timestamp":1592754801000,"energy_fee":296310,"energy_usage":0,"energy_usage_total":29631,"internal_transactions":[],"net_fee":3460,"net_usage":0,"raw_data":{"contract":[{"parameter":{"type_url":"type.googleapis.com/protocol.TriggerSmartContract","value":{"call_value":0,"contract_address":"41a614f803b6fd780986a42c78ec9c7f77e6ded13c","data":"a9059cbb0000000000000000000000412b764790f38a7373d56dfdf4f866fa027e28c8af0000000000000000000000000000000000000000000000000000000071006010","owner_address":"4179309abcff2cf531070ca9222a1f72c4a5136874"}},"type":"TriggerSmartContract"}],"expiration":1592758449000,"fee_limit":1000000000,"ref_block_bytes":"d59b","ref_block_hash":"beab372f7f7d493b","timestamp":1592754790236},"raw_data_hex":"0a02d59b2208beab372f7f7d493b40e8e6b4bead2e5aae01081f12a9010a31747970652e676f6f676c65617069732e636f6d2f70726f746f636f6c2e54726967676572536d617274436f6e747261637412740a154179309abcff2cf531070ca9222a1f72c4a5136874121541a614f803b6fd780986a42c78ec9c7f77e6ded13c2244a9059cbb0000000000000000000000412b764790f38a7373d56dfdf4f866fa027e28c8af000000000000000000000000000000000000000000000000000000007100601070dcbed5bcad2e90018094ebdc03","ret":[{"code":"SUCESS","contractRet":"SUCCESS","fee":299770}],"signature":["52b662780f176048c4fd9e8db15756d0ef397cb60a8be6ea3421993ec2c6e1636d9aaf8a596f9255c182284e1efbd5410e2a11d10b82b4e4fec5a43ffea357cc01"],"txID":"809ec9beb99cf756bb02155199a35b766f3ec18dd6bea6b3d69dd38f6b51138f"},{"blockNumber":20829617,"block_timestamp":1592754801000,"energy_fee":166700,"energy_usage":0,"energy_usage_total":29631,"internal_transactions":[],"net_fee":3460,"net_usage":0,"raw_data":{"contract":[{"parameter":{"type_url":"type.googleapis.com/protocol.TriggerSmartContract","value":{"call_value":0,"contract_address":"41a614f803b6fd780986a42c78ec9c7f77e6ded13c","data":"a9059cbb000000000000000000000041d8692da59c130875e13587a82bc93b917c49526a0000000000000000000000000000000000000000000000000000000054c92b70","owner_address":"4179309abcff2cf531070ca9222a1f72c4a5136874"}},"type":"TriggerSmartContract"}],"expiration":1592758449000,"fee_limit":1000000000,"ref_block_bytes":"d59b","ref_block_hash":"beab372f7f7d493b","timestamp":1592754789857},"raw_data_hex":"0a02d59b2208beab372f7f7d493b40e8e6b4bead2e5aae01081f12a9010a31747970652e676f6f676c65617069732e636f6d2f70726f746f636f6c2e54726967676572536d617274436f6e747261637412740a154179309abcff2cf531070ca9222a1f72c4a5136874121541a614f803b6fd780986a42c78ec9c7f77e6ded13c2244a9059cbb000000000000000000000041d8692da59c130875e13587a82bc93b917c49526a0000000000000000000000000000000000000000000000000000000054c92b7070e1bbd5bcad2e90018094ebdc03","ret":[{"code":"SUCESS","contractRet":"SUCCESS","fee":170160}],"signature":["fe96d2be46a37f89531d10cdca823ec82c603a3bb9f858aa76db20468e8d9d6058de643460e11b50e0982fa6ab6b81439cee6c9286b5d6bb7c18206e2ab066fb01"],"txID":"bc0c429e33d3c668e5e5a55831efb3aba7e917c52cd3892aeb252f1a7b2ddb41"},{"blockNumber":20829596,"block_timestamp":1592754738000,"energy_fee":166700,"energy_usage":0,"energy_usage_total":29631,"internal_transactions":[],"net_fee":3460,"net_usage":0,"raw_data":{"contract":[{"parameter":{"type_url":"type.googleapis.com/protocol.TriggerSmartContract","value":{"call_value":0,"contract_address":"41a614f803b6fd780986a42c78ec9c7f77e6ded13c","data":"a9059cbb000000000000000000000041ec853dc8fe0dab78d3234ba356ebae7984da322c00000000000000000000000000000000000000000000000000000004a817c800","owner_address":"4179309abcff2cf531070ca9222a1f72c4a5136874"}},"type":"TriggerSmartContract"}],"expiration":1592758386000,"fee_limit":1000000000,"ref_block_bytes":"d586","ref_block_hash":"4007c65312ba945c","timestamp":1592754729408},"raw_data_hex":"0a02d58622084007c65312ba945c40d0fab0bead2e5aae01081f12a9010a31747970652e676f6f676c65617069732e636f6d2f70726f746f636f6c2e54726967676572536d617274436f6e747261637412740a154179309abcff2cf531070ca9222a1f72c4a5136874121541a614f803b6fd780986a42c78ec9c7f77e6ded13c2244a9059cbb000000000000000000000041ec853dc8fe0dab78d3234ba356ebae7984da322c00000000000000000000000000000000000000000000000000000004a817c80070c0e3d1bcad2e90018094ebdc03","ret":[{"code":"SUCESS","contractRet":"SUCCESS","fee":170160}],"signature":["93119466b23346e095d256537f2bf8c639dd157f896eaaff972f0be83663bca34a21df4e25fa61ba071588a58f98874a58705844a8cc36a321bf30e722028c8201"],"txID":"3bcd581a833abb16529e1f5187615866ba72f2e61c590c993f5b461ba5073d45"},{"blockNumber":20829592,"block_timestamp":1592754726000,"energy_fee":296310,"energy_usage":0,"energy_usage_total":29631,"internal_transactions":[],"net_fee":3460,"net_usage":0,"raw_data":{"contract":[{"parameter":{"type_url":"type.googleapis.com/protocol.TriggerSmartContract","value":{"call_value":0,"contract_address":"41a614f803b6fd780986a42c78ec9c7f77e6ded13c","data":"a9059cbb0000000000000000000000413c51c36069e0a1fdf3278907ecd5a05e90a3ac8400000000000000000000000000000000000000000000000000000000001e8480","owner_address":"4179309abcff2cf531070ca9222a1f72c4a5136874"}},"type":"TriggerSmartContract"}],"expiration":1592758377000,"fee_limit":1000000000,"ref_block_bytes":"d583","ref_block_hash":"0bc07e9ae4eb32b0","timestamp":1592754719032},"raw_data_hex":"0a02d58322080bc07e9ae4eb32b040a8b4b0bead2e5aae01081f12a9010a31747970652e676f6f676c65617069732e636f6d2f70726f746f636f6c2e54726967676572536d617274436f6e747261637412740a154179309abcff2cf531070ca9222a1f72c4a5136874121541a614f803b6fd780986a42c78ec9c7f77e6ded13c2244a9059cbb0000000000000000000000413c51c36069e0a1fdf3278907ecd5a05e90a3ac8400000000000000000000000000000000000000000000000000000000001e848070b892d1bcad2e90018094ebdc03","ret":[{"code":"SUCESS","contractRet":"SUCCESS","fee":299770}],"signature":["80fe656c430afb348327f279a2d454d277bf64564111e49118ed85f1021528920ba5be044956084f543a087a61aa14b595a4fc2cc6aff2ad2ac5d7533a6b122f01"],"txID":"3baff897a2b39720727549216ea6f4bc580eed2f239967e158e9e7ea74146822"},{"blockNumber":20829589,"block_timestamp":1592754717000,"energy_fee":0,"energy_usage":0,"energy_usage_total":0,"internal_transactions":[],"net_fee":2690,"net_usage":0,"raw_data":{"contract":[{"parameter":{"type_url":"type.googleapis.com/protocol.TransferContract","value":{"amount":8737000000,"owner_address":"4179309abcff2cf531070ca9222a1f72c4a5136874","to_address":"412886fdc89587dbe8a57d0b9589581bd084384d5f"}},"type":"TransferContract"}],"expiration":1592758368000,"fee_limit":0,"ref_block_bytes":"d580","ref_block_hash":"ebf8d3b3837d87a8","timestamp":1592754708731},"raw_data_hex":"0a02d5802208ebf8d3b3837d87a84080eeafbead2e5a69080112650a2d747970652e676f6f676c65617069732e636f6d2f70726f746f636f6c2e5472616e73666572436f6e747261637412340a154179309abcff2cf531070ca9222a1f72c4a51368741215412886fdc89587dbe8a57d0b9589581bd084384d5f18c09490c62070fbc1d0bcad2e","ret":[{"code":"SUCESS","contractRet":"SUCCESS","fee":2690}],"signature":["b92bdde424aee97b4e7a63716056daa963afce89701bf6d8c8b1b6221f65afb94b8ff3865650aff83d590cad87359ae5f272ed732738093a0a9aa587cc3503aa01"],"txID":"b38fb6328e1fa622b7762eed856778551845c33723491e36baf357f00cc48002"},{"blockNumber":20829585,"block_timestamp":1592754705000,"energy_fee":43900,"energy_usage":0,"energy_usage_total":14631,"internal_transactions":[],"net_fee":3460,"net_usage":0,"raw_data":{"contract":[{"parameter":{"type_url":"type.googleapis.com/protocol.TriggerSmartContract","value":{"call_value":0,"contract_address":"41a614f803b6fd780986a42c78ec9c7f77e6ded13c","data":"a9059cbb0000000000000000000000416128e41b6aa8c531b05999c2861f846459fb10e60000000000000000000000000000000000000000000000000000000005f5e100","owner_address":"4179309abcff2cf531070ca9222a1f72c4a5136874"}},"type":"TriggerSmartContract"}],"expiration":1592758356000,"fee_limit":1000000000,"ref_block_bytes":"d57c","ref_block_hash":"c7c6e5795625dc5b","timestamp":1592754698724},"raw_data_hex":"0a02d57c2208c7c6e5795625dc5b40a090afbead2e5aae01081f12a9010a31747970652e676f6f676c65617069732e636f6d2f70726f746f636f6c2e54726967676572536d617274436f6e747261637412740a154179309abcff2cf531070ca9222a1f72c4a5136874121541a614f803b6fd780986a42c78ec9c7f77e6ded13c2244a9059cbb0000000000000000000000416128e41b6aa8c531b05999c2861f846459fb10e60000000000000000000000000000000000000000000000000000000005f5e10070e4f3cfbcad2e90018094ebdc03","ret":[{"code":"SUCESS","contractRet":"SUCCESS","fee":47360}],"signature":["b90e38665957e47ba8f7731e3b8c943471cd6ef9a95efcd25ad880323f2e397b56927e943c7e605a1996900fe269db6edbc7d7ff094f23393c6546ef0927bae300"],"txID":"d8d53a627fa9f885ad77dcc2f3d3a5eceece36d1ef0f54990dff900484550304"},{"blockNumber":20829577,"block_timestamp":1592754681000,"energy_fee":296310,"energy_usage":0,"energy_usage_total":29631,"internal_transactions":[],"net_fee":3460,"net_usage":0,"raw_data":{"contract":[{"parameter":{"type_url":"type.googleapis.com/protocol.TriggerSmartContract","value":{"call_value":0,"contract_address":"41a614f803b6fd780986a42c78ec9c7f77e6ded13c","data":"a9059cbb000000000000000000000041dd81641cca9a855b7a657153fdda9b3f469693660000000000000000000000000000000000000000000000000000000217a31ba0","owner_address":"4179309abcff2cf531070ca9222a1f72c4a5136874"}},"type":"TriggerSmartContract"}],"expiration":1592758335000,"fee_limit":1000000000,"ref_block_bytes":"d575","ref_block_hash":"003bba00242a2488","timestamp":1592754678392},"raw_data_hex":"0a02d5752208003bba00242a24884098ecadbead2e5aae01081f12a9010a31747970652e676f6f676c65617069732e636f6d2f70726f746f636f6c2e54726967676572536d617274436f6e747261637412740a154179309abcff2cf531070ca9222a1f72c4a5136874121541a614f803b6fd780986a42c78ec9c7f77e6ded13c2244a9059cbb000000000000000000000041dd81641cca9a855b7a657153fdda9b3f469693660000000000000000000000000000000000000000000000000000000217a31ba070f8d4cebcad2e90018094ebdc03","ret":[{"code":"SUCESS","contractRet":"SUCCESS","fee":299770}],"signature":["0abe6787b18631ae746b4a9c9669e3e878b88c3628a3656e3709b4036b14414525bdb9cdb3c97fce48c9d21f2afab9492a436861e2e85ec1f68bab078859eb1d01"],"txID":"b419c05c877e0176619ec3659470c71822a7840a91a940169eaaf1abb9c38fea"},{"blockNumber":20829564,"block_timestamp":1592754642000,"energy_fee":43900,"energy_usage":0,"energy_usage_total":14631,"internal_transactions":[],"net_fee":3460,"net_usage":0,"raw_data":{"contract":[{"parameter":{"type_url":"type.googleapis.com/protocol.TriggerSmartContract","value":{"call_value":0,"contract_address":"41a614f803b6fd780986a42c78ec9c7f77e6ded13c","data":"a9059cbb000000000000000000000041a3af64559a63856c625b02e9def8a4dc0f63f38b0000000000000000000000000000000000000000000000000000000010c18918","owner_address":"4179309abcff2cf531070ca9222a1f72c4a5136874"}},"type":"TriggerSmartContract"}],"expiration":1592758287000,"fee_limit":1000000000,"ref_block_bytes":"d565","ref_block_hash":"afd9deb62b6fa5e0","timestamp":1592754628020},"raw_data_hex":"0a02d5652208afd9deb62b6fa5e04098f5aabead2e5aae01081f12a9010a31747970652e676f6f676c65617069732e636f6d2f70726f746f636f6c2e54726967676572536d617274436f6e747261637412740a154179309abcff2cf531070ca9222a1f72c4a5136874121541a614f803b6fd780986a42c78ec9c7f77e6ded13c2244a9059cbb000000000000000000000041a3af64559a63856c625b02e9def8a4dc0f63f38b0000000000000000000000000000000000000000000000000000000010c1891870b4cbcbbcad2e90018094ebdc03","ret":[{"code":"SUCESS","contractRet":"SUCCESS","fee":47360}],"signature":["070c1a53f2fc6b12825b99c9179899e1effbbdf2fad17d273b64bc47f16ee53a0f56096d4ef6ce58aeee65083dcdef8f3c808d6889a990c23a8d45a84cd69bf101"],"txID":"abb6c40f8f8afcc69fb5b549ffb17bd779fa6588dbbbd5e4ee8568839462b37a"},{"blockNumber":20829535,"block_timestamp":1592754555000,"energy_fee":296310,"energy_usage":0,"energy_usage_total":29631,"internal_transactions":[],"net_fee":3460,"net_usage":0,"raw_data":{"contract":[{"parameter":{"type_url":"type.googleapis.com/protocol.TriggerSmartContract","value":{"call_value":0,"contract_address":"41a614f803b6fd780986a42c78ec9c7f77e6ded13c","data":"a9059cbb0000000000000000000000410ae0647bbaa1aebafcc9a360d0e22a791a215c930000000000000000000000000000000000000000000000000000000011e1a300","owner_address":"4179309abcff2cf531070ca9222a1f72c4a5136874"}},"type":"TriggerSmartContract"}],"expiration":1592758206000,"fee_limit":1000000000,"ref_block_bytes":"d54a","ref_block_hash":"d27814b2e9763d5d","timestamp":1592754547598},"raw_data_hex":"0a02d54a2208d27814b2e9763d5d40b0fca5bead2e5aae01081f12a9010a31747970652e676f6f676c65617069732e636f6d2f70726f746f636f6c2e54726967676572536d617274436f6e747261637412740a154179309abcff2cf531070ca9222a1f72c4a5136874121541a614f803b6fd780986a42c78ec9c7f77e6ded13c2244a9059cbb0000000000000000000000410ae0647bbaa1aebafcc9a360d0e22a791a215c930000000000000000000000000000000000000000000000000000000011e1a300708ed7c6bcad2e90018094ebdc03","ret":[{"code":"SUCESS","contractRet":"SUCCESS","fee":299770}],"signature":["6a0f4d4d5021c46d522f45552b20218ea16c437e6e87130339c90752f63f7a805763699bad3b22fb3199efdce75f1929ac94482be8551107b051ae4b9ef532bb01"],"txID":"7da3a7819e4de9311464963f829e3ceeff0a045bbd587030deba863a04d250db"},{"blockNumber":20829504,"block_timestamp":1592754462000,"energy_fee":166700,"energy_usage":0,"energy_usage_total":29631,"internal_transactions":[],"net_fee":3460,"net_usage":0,"raw_data":{"contract":[{"parameter":{"type_url":"type.googleapis.com/protocol.TriggerSmartContract","value":{"call_value":0,"contract_address":"41a614f803b6fd780986a42c78ec9c7f77e6ded13c","data":"a9059cbb000000000000000000000041042b5bc43cf6aabae0533f4f671eb810615c32be0000000000000000000000000000000000000000000000000000000054c92b70","owner_address":"4179309abcff2cf531070ca9222a1f72c4a5136874"}},"type":"TriggerSmartContract"}],"expiration":1592758116000,"fee_limit":1000000000,"ref_block_bytes":"d52c","ref_block_hash":"9486bdd9554ef09e","timestamp":1592754457197},"raw_data_hex":"0a02d52c22089486bdd9554ef09e40a0bda0bead2e5aae01081f12a9010a31747970652e676f6f676c65617069732e636f6d2f70726f746f636f6c2e54726967676572536d617274436f6e747261637412740a154179309abcff2cf531070ca9222a1f72c4a5136874121541a614f803b6fd780986a42c78ec9c7f77e6ded13c2244a9059cbb000000000000000000000041042b5bc43cf6aabae0533f4f671eb810615c32be0000000000000000000000000000000000000000000000000000000054c92b7070ed94c1bcad2e90018094ebdc03","ret":[{"code":"SUCESS","contractRet":"SUCCESS","fee":170160}],"signature":["2bfe810fa90d3aee965ff990fd68490ce9c8421844c1e792a57faeb556e5c9b004499016ace19afdb49ba65531c2d829890b4c6a14a7e58c6b71bfdacc7709e201"],"txID":"4d5e74b87f782060e0657a48898626a51a1bf2dcccfc2083955fa4f43e4516b0"},{"blockNumber":20829499,"block_timestamp":1592754447000,"energy_fee":0,"energy_usage":0,"energy_usage_total":0,"internal_transactions":[],"net_fee":0,"net_usage":268,"raw_data":{"contract":[{"parameter":{"type_url":"type.googleapis.com/protocol.TransferContract","value":{"amount":2538461,"owner_address":"41da03247c21301eaf0538c1b9f79e5c8ea7cbb386","to_address":"4179309abcff2cf531070ca9222a1f72c4a5136874"}},"type":"TransferContract"}],"expiration":1592758089000,"fee_limit":0,"ref_block_bytes":"d523","ref_block_hash":"dc512cab1e07f960","timestamp":1592754430099},"raw_data_hex":"0a02d5232208dc512cab1e07f96040a8ea9ebead2e5a68080112640a2d747970652e676f6f676c65617069732e636f6d2f70726f746f636f6c2e5472616e73666572436f6e747261637412330a1541da03247c21301eaf0538c1b9f79e5c8ea7cbb38612154179309abcff2cf531070ca9222a1f72c4a513687418ddf79a017093c1bfbcad2e","ret":[{"code":"SUCESS","contractRet":"SUCCESS","fee":0}],"signature":["0b542abf1657965deeb06123636f6e4ccaea5f4ab0a14f81f3164b286cb6ede37c62d701c796ae86cbd5c908009e5ac6db73d4532a9976ce5b30df47460957d601"],"txID":"82efc8456a3c38a0919af416a53363405ced78db7c13e1b94a79ebcea98f9909"},{"blockNumber":20829498,"block_timestamp":1592754444000,"energy_fee":0,"energy_usage":0,"energy_usage_total":0,"internal_transactions":[],"net_fee":0,"net_usage":268,"raw_data":{"contract":[{"parameter":{"type_url":"type.googleapis.com/protocol.TransferContract","value":{"amount":30000000,"owner_address":"41f3eb90cf03d6301e1d10b6095113494bc704992c","to_address":"4179309abcff2cf531070ca9222a1f72c4a5136874"}},"type":"TransferContract"}],"expiration":1592758089000,"fee_limit":0,"ref_block_bytes":"d523","ref_block_hash":"dc512cab1e07f960","timestamp":1592754429791},"raw_data_hex":"0a02d5232208dc512cab1e07f96040a8ea9ebead2e5a68080112640a2d747970652e676f6f676c65617069732e636f6d2f70726f746f636f6c2e5472616e73666572436f6e747261637412330a1541f3eb90cf03d6301e1d10b6095113494bc704992c12154179309abcff2cf531070ca9222a1f72c4a5136874188087a70e70dfbebfbcad2e","ret":[{"code":"SUCESS","contractRet":"SUCCESS","fee":0}],"signature":["d44a181a6ff560bbcd8a89f9b14247f3d3c781020404eb6462926f3e60dfe32c38ee17f0e752346229de30db033352240152891a168285581558f80af90f83fd00"],"txID":"a336bd174c127d38bf2325bc9c927059af099e8cfb91159750a1b1be16dd0bd4"},{"blockNumber":20829498,"block_timestamp":1592754444000,"energy_fee":0,"energy_usage":0,"energy_usage_total":0,"internal_transactions":[],"net_fee":0,"net_usage":268,"raw_data":{"contract":[{"parameter":{"type_url":"type.googleapis.com/protocol.TransferContract","value":{"amount":111337320,"owner_address":"41b4fd934c73429b27c1e9180e04ccfc44c14f15a9","to_address":"4179309abcff2cf531070ca9222a1f72c4a5136874"}},"type":"TransferContract"}],"expiration":1592758086000,"fee_limit":0,"ref_block_bytes":"d522","ref_block_hash":"9ecd3926187cf28e","timestamp":1592754429463},"raw_data_hex":"0a02d52222089ecd3926187cf28e40f0d29ebead2e5a68080112640a2d747970652e676f6f676c65617069732e636f6d2f70726f746f636f6c2e5472616e73666572436f6e747261637412330a1541b4fd934c73429b27c1e9180e04ccfc44c14f15a912154179309abcff2cf531070ca9222a1f72c4a513687418e8be8b357097bcbfbcad2e","ret":[{"code":"SUCESS","contractRet":"SUCCESS","fee":0}],"signature":["a40ce5f8ab4d9283fd9982eb38aa2a8b8ad9aeaa9bfc8acc220673a367fd420c034f89110e74a99745a96e103b883a85036c64e1c992a7a12c594f11954bacca01"],"txID":"007bbcc3855f4bf51bd76e63d7776160c115c803e227f7c44c7d1fd1bd587611"},{"blockNumber":20829498,"block_timestamp":1592754444000,"energy_fee":0,"energy_usage":0,"energy_usage_total":0,"internal_transactions":[],"net_fee":0,"net_usage":268,"raw_data":{"contract":[{"parameter":{"type_url":"type.googleapis.com/protocol.TransferContract","value":{"amount":200000000,"owner_address":"413c5d20a6b1747c65903e2874614d6b8a038b818c","to_address":"4179309abcff2cf531070ca9222a1f72c4a5136874"}},"type":"TransferContract"}],"expiration":1592758086000,"fee_limit":0,"ref_block_bytes":"d522","ref_block_hash":"9ecd3926187cf28e","timestamp":1592754429137},"raw_data_hex":"0a02d52222089ecd3926187cf28e40f0d29ebead2e5a68080112640a2d747970652e676f6f676c65617069732e636f6d2f70726f746f636f6c2e5472616e73666572436f6e747261637412330a15413c5d20a6b1747c65903e2874614d6b8a038b818c12154179309abcff2cf531070ca9222a1f72c4a5136874188084af5f70d1b9bfbcad2e","ret":[{"code":"SUCESS","contractRet":"SUCCESS","fee":0}],"signature":["9192ee355f2b8c4b21cb68d5b5b2647a4ccb3a00c2bdaeb65cddef4785e7a31e364e21ef3c8b78628c8d342d6f7727ab391b064c1f0b02105e300108ca9cf88800"],"txID":"9351e87b129142844f000a52911daf36fc95677dfe2846abcd28ea0d8fe2e2ea"},{"blockNumber":20829498,"block_timestamp":1592754444000,"energy_fee":0,"energy_usage":0,"energy_usage_total":0,"internal_transactions":[],"net_fee":0,"net_usage":269,"raw_data":{"contract":[{"parameter":{"type_url":"type.googleapis.com/protocol.TransferContract","value":{"amount":511000000,"owner_address":"414a5a0f19fd4b1c85208764a7a8cdcdb88171fc71","to_address":"4179309abcff2cf531070ca9222a1f72c4a5136874"}},"type":"TransferContract"}],"expiration":1592758086000,"fee_limit":0,"ref_block_bytes":"d522","ref_block_hash":"9ecd3926187cf28e","timestamp":1592754428706},"raw_data_hex":"0a02d52222089ecd3926187cf28e40f0d29ebead2e5a69080112650a2d747970652e676f6f676c65617069732e636f6d2f70726f746f636f6c2e5472616e73666572436f6e747261637412340a15414a5a0f19fd4b1c85208764a7a8cdcdb88171fc7112154179309abcff2cf531070ca9222a1f72c4a513687418c0fbd4f30170a2b6bfbcad2e","ret":[{"code":"SUCESS","contractRet":"SUCCESS","fee":0}],"signature":["fac73d7f6540a63c27717cbe04197d8ae89bd906f6c59eba71cc3a2630e29d9b6e0e4400b5e316289e5b6608d84a1a47673674605e48776f8d97aa3dedcfc60301"],"txID":"008ebda5749c38e26a69717faa66e6f4fd8a0d358c9b947192765cc9843cff5a"}]}`
+	mockedTrc20Response                                   = `{"trc20token_balances":[{"name":"BeeHive","symbol":"Bee","decimals":8,"contract_address":"TG7Z1ptC7nRkaniDVRhHSyLycaroaS5PdK","balance":"100000000000000"},{"name":"NoleCoin","symbol":"NOLE","decimals":6,"contract_address":"TPt8DTDBZYfJ9fuyRjdWJr4PP68tRfptLG","balance":"20000","priceInTrx":20.000000},{"name":"Enme Token","symbol":"EME","decimals":6,"contract_address":"TCRhVHPv6efvXgogNMhiunAMXFKcMmv2pF","balance":"175798"},{"name":"PYRO Network","symbol":"PYRO","decimals":6,"contract_address":"TMCMPzmosnQ8UAYW1zcBwjLTxDq8ce4Y5e","balance":"5000000000","priceInTrx":0.005821},{"name":"Wuhan Fried Bats","symbol":"WUHAN","decimals":4,"contract_address":"TSzjFRf8bQ46kRndWaHYKSq1P5HzRJfPvr","balance":"690000"},{"name":"WINK","symbol":"WIN","decimals":6,"contract_address":"TLa2f6VPqDgRE67v1736s7bJ8Ray5wYjU7","balance":"191543058623486","priceInTrx":0.004665},{"name":"Mono Token","symbol":"MONO","decimals":18,"contract_address":"TLKyLt4MXuvvdFvUUc3Zma4rZyj2t87Mak","balance":"1"},{"name":"HelGro","symbol":"HGRO","decimals":6,"contract_address":"TTvVC9jv5AfDdHuGeCMcQg6QftmNnfQiVm","balance":"20000000"},{"name":"JUST GOV","symbol":"JST","decimals":18,"contract_address":"TCFLL5dx5ZJdKnWuesXxi1VPwjLVmWZZy9","balance":"955973733483987848990056","priceInTrx":0.313300},{"name":"Tether USD","symbol":"USDT","decimals":6,"contract_address":"TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t","balance":"6781725898163","priceInTrx":64.102564}],"allowExchange":[],"address":"TM1zzNDZD2DPASbKcgdVoTYhfmYgtfwx9R","frozen_supply":[],"bandwidth":{"energyRemaining":0,"totalEnergyLimit":90000000000,"totalEnergyWeight":1446707995,"netUsed":0,"storageLimit":0,"storagePercentage":0.0,"assets":{"1000542":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1002446":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1002721":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1001510":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1002962":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1001479":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1002288":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1001594":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1002683":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1000541":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1001079":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1000145":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1002608":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1000821":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1002845":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1001759":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1002726":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1001230":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1001467":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1002798":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1000894":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1000532":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1002830":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1000017":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1000494":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1002398":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1002552":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1002551":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1002672":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1002037":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1002950":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1000935":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1000938":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1002438":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1000491":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1000096":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1002671":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1000493":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1001064":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1001581":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1002270":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1000322":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1002589":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1001411":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1002467":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1002742":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1001414":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1001535":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1000567":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1000165":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1001011":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1002342":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1001132":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1000562":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1000287":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1001815":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1002907":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1002746":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1002748":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1001090":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1000278":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1000157":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1002578":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1002577":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1002852":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1002459":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1000396":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1002573":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1002454":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1000959":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1002736":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1002858":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1003022":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1001038":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1000983":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1001433":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1000743":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1001953":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1002646":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1000985":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1002524":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1002001":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1002881":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1002488":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1002521":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1002762":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1002927":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1002926":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1000745":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1000744":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1000746":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1002000":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1000181":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1002116":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1001301":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1001425":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1002876":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1000176":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1000451":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1003049":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1002597":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1002918":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1002636":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1002999":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1001825":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1000856":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1002517":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1002230":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1002071":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1003041":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1002072":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1000003":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1000520":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1000884":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1002544":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1001854":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1002822":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1000006":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1002662":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1002669":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1002384":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1002263":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1001203":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1002897":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1001565":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1002775":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1002657":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1001204":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1001446":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1002892":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1002939":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1002814":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1002250":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1002099":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0},"1000190":{"netPercentage":0.0,"netLimit":0,"netRemaining":0,"netUsed":0}},"netPercentage":0.0,"storageUsed":0,"storageRemaining":0,"freeNetLimit":5000,"energyUsed":0,"freeNetRemaining":211,"netLimit":0,"netRemaining":0,"energyLimit":0,"freeNetUsed":4789,"totalNetWeight":26789943446,"freeNetPercentage":0.9578,"energyPercentage":0.0,"totalNetLimit":43200000000},"accountType":0,"exchanges":[],"frozen":{"total":0,"balances":[]},"accountResource":{"frozen_balance_for_energy":{}},"tokenBalances":[{"balance":346976329314696,"name":"_"},{"balance":1273,"name":"1000003"},{"balance":113,"name":"1000006"},{"balance":145,"name":"1000165"},{"balance":416,"name":"1000520"},{"balance":596,"name":"1000491"},{"balance":242,"name":"1000176","owner_address":"THG48yHsR6inxrCJk2hhxZPsFLq1ehP88V"},{"balance":62,"name":"1000542"},{"balance":53,"name":"1000494","owner_address":"TXJnVqqwLSNmdXDLWn1Yfjhe8aZH2oaAuq"},{"balance":56,"name":"1000493"},{"balance":599,"name":"1000744"},{"balance":628,"name":"1000746"},{"balance":234,"name":"1000743"},{"balance":113,"name":"1000396"},{"balance":206,"name":"1000745","owner_address":"TPCEi45wZQ1PPChUg5uqoK1D5kKnjCR8Li"},{"balance":61,"name":"1000821","owner_address":"TBm3Peu51gYwn2iPwNEDxc9vBMc3eRGUGu"},{"balance":25,"name":"1000541"},{"balance":7,"name":"1000278","owner_address":"TRMUimDekf9nDLuVMp6TKzcw4axNnajGJr"},{"balance":1,"name":"1000567","owner_address":"TFXJMhB4ZKBfcQWfCLbSyQGhonHXABaWku"},{"balance":1,"name":"1000856","owner_address":"TXf3X8YMdDho2xwA6QDbFZiTGPnk8ghfLm"},{"balance":30,"name":"1000884"},{"balance":1,"name":"1000894"},{"balance":200,"name":"1000181","owner_address":"TEmTbbvH5ZPJPZ8CbffjqonFRiAAFgfc9o"},{"balance":7,"name":"1000935","owner_address":"TPVkcFYTEi9Dia45AveiTcaYoaU9ux7xC7"},{"balance":1000,"name":"1000938","owner_address":"TNgkWTabK1rMWwgLjmLdsZbzYfGTx5Tpe9"},{"balance":10,"name":"1000017","owner_address":"TV6qcwSp38uESiDczxxb7zbJX1h2LfDs78"},{"balance":10,"name":"1001011","owner_address":"TNUbeTQXPtRXtBX3dJboVkhdhaiws29Aky"},{"balance":2,"name":"1001038","owner_address":"TFujVDp8U578L2AtsorYN3pwdXmH2HxbQv"},{"balance":100,"name":"1000983","owner_address":"TYmiZ7xCeqboiizb2jsjVQuRABXzVSjKFR"},{"balance":1,"name":"1001203","owner_address":"TBmaT8mcrdkrRL2Q6ur7grMYAcaGtfxsz7"},{"balance":1,"name":"1000190","owner_address":"TNXjXURue38Wa641pmqMH4vbJN1WZLKMnr"},{"balance":100,"name":"1001204"},{"balance":1000,"name":"1001230"},{"balance":1300000,"name":"1001301","owner_address":"TVgJEbc9NEYxVr1h6rJQiMqySePsJQDCA7"},{"balance":11,"name":"1000959"},{"balance":10,"name":"1001425"},{"balance":17,"name":"1001433","owner_address":"TWPMz6FPEAV6qP4VRMG3Y69ftEov1R7YWT"},{"balance":100,"name":"1001446"},{"balance":12,"name":"1001411","owner_address":"TPL6zNujtEQ8kp213n58UxAhGRCU3aozkc"},{"balance":12,"name":"1001467"},{"balance":100,"name":"1001414","owner_address":"TT43DgfxgMdR4BVZNua4YCwG34AgfGN6Uu"},{"balance":100,"name":"1001510","owner_address":"TPKq9bVZyM2sZ8XersMmXhy1NbjhdxRwwj"},{"balance":50,"name":"1001565","owner_address":"TKY7Vmq78b2c83fLXrPijkhQkk4EJtfViD"},{"balance":5,"name":"1001535"},{"balance":10,"name":"1000532","owner_address":"TGQwBNht8h3zev4gBtDMoQjWE2WJm1Zr9B"},{"balance":3,"name":"1001479","owner_address":"TC9FtB1EoiV3jfXgZvmqUmfeCmdWNmCxdY"},{"balance":13,"name":"1001090","owner_address":"TU1LUTYDMG6iihimUpAmdnnBthawPKh1cm","priceInTrx":0.004360},{"balance":200,"name":"1001759","owner_address":"TWKWWJAFBYyjvLtfqKCSeMyUW7TjWhkY4e"},{"balance":12,"name":"1000096","owner_address":"TSfjkVSKJGW4aybDQcxi4bpythU7WCXV3v"},{"balance":15,"name":"1001594"},{"balance":10,"name":"1001815","owner_address":"TB3iM1RsKXagV7hdz2QpWnaChptwrU3tCL"},{"balance":10,"name":"1001064","owner_address":"THnWV416C9mfJ1LFwopUjGXZEr1xFtAdrD"},{"balance":5192508733304578,"name":"1002000","owner_address":"TF5Bn4cJCT6GVeUgyCN4rBhDg42KBrpAjg","priceInTrx":0.018900},{"balance":7742069,"name":"1002037","owner_address":"TBekuTCZwPG2o88SmiS58VALkxBemoX4yS"},{"balance":585,"name":"1002001"},{"balance":5441,"name":"1002071","owner_address":"TS79aik831csqUnQgnqrKG6hov2iL8yPbD"},{"balance":80312957663126,"name":"1002072","owner_address":"TP6PtaBSMM6sfWtWWD9k77YHWGmh7K3Lae"},{"balance":520,"name":"1000451","owner_address":"THPXuypwcnWo4wi5KqFfuRjgjeT5khUDKF"},{"balance":10011237,"name":"1001953","owner_address":"TSyG9BdjsGE2GoHG9eeYKMns6zMQFDmbvS"},{"balance":5,"name":"1000562","owner_address":"TWqKTJ5JhyD7rsbbWzEvS5ZZD9Q5QPPvSH"},{"balance":50000000,"name":"1002099","owner_address":"TYWmiPERm9kWUcnduqaE5jxT7eeZxfn5SQ"},{"balance":625100,"name":"1001581","owner_address":"TNkRSKWP7VvdrisTwC8iNzUV6MRoEJh6xx"},{"balance":11000000,"name":"1002342","owner_address":"TUCd8NiBUuxrjz1kSrUbAg2JXu6o27Ukrq"},{"balance":7,"name":"1000322","owner_address":"TDGy2M9qWBepSHDEutWWxWd1JZfmAed3BP","priceInTrx":0.000422},{"balance":12,"name":"1001825","owner_address":"TPcUbNeYwwYqbX23w3sVf1X61cwpAfPK2T"},{"balance":1000,"name":"1002384","owner_address":"TFYuPxyjDTvH1TLm2phpzJFw7AhjCgu8xP"},{"balance":44444,"name":"1001132","owner_address":"TWDUanVdxEShjpbiX57ExztMCDy8vCFcHh"},{"balance":30000000,"name":"1002398","owner_address":"TUXSuMg41nJXm9TuDgF6EZWjEbP2vx1Hd4"},{"balance":10000060,"name":"1002116","owner_address":"TAEvo6MgLgV3A75L3cr3BAsLDJikWcAt3j"},{"balance":50000000,"name":"1002446","owner_address":"TJKf72NjL1cR49SHfDnPTXTFjRwjgr7v8Z"},{"balance":10000000,"name":"1002459","owner_address":"TNWy3mX85JsX2mPLgLc4cKJiWtJahhz3t3"},{"balance":1,"name":"1001079","owner_address":"TLQfc5EwZQqZc6jMNkMpxyJy5wucA6UX24"},{"balance":12345,"name":"1002467","owner_address":"TP429SKrsp4BoTiEFXHj4TNSJwqDFsygnr"},{"balance":1234,"name":"1002230","owner_address":"TWB9Q1JoB3fSLsahNq31gydRxYyWxDhSyk"},{"balance":10000000,"name":"1002288","owner_address":"TPzfpaaKUPgJPZ39YeyvBaTYNXBYpnhxDg"},{"balance":5,"name":"1002488","owner_address":"TMeAzhdgzu1sFMTsP75BffJ2tEzuGsYqR6"},{"balance":666,"name":"1002438","owner_address":"TMqNJwD3qVmuRxzzP3Q4A24fuByVBKQ39E"},{"balance":10000000,"name":"1002517","owner_address":"TP9m11ERHhE1qgDtL83c2AHHNkWvdUfKTz"},{"balance":10000000000,"name":"1002521","owner_address":"TJUwM4qk1et2nNKuESQ7UVHPjAHoRqAz3T"},{"balance":13699,"name":"1000157","owner_address":"TUahmv54ZiDnjQWG2VAeyMphebXQ4m6Hb5"},{"balance":65895,"name":"1002524","owner_address":"TRzZeBPt69utiWx1po5ghLH8uSP8uJGsa5"},{"balance":16,"name":"1000287","owner_address":"TFZCyZ18XNzMfEr6W5kLkGrs4HVmou9H3y"},{"balance":10000000,"name":"1002544","owner_address":"TQHBbjES5DNjDfDHBbpnh9qcDM7mVjSVcL"},{"balance":10000000000,"name":"1002551","owner_address":"TVrGxBCQkWjQ52D7S67UgFsUzcX4E8EsNB"},{"balance":10000000,"name":"1002573","owner_address":"TBfmGqmZtdEQNuYCz8s1izBUDxZbkPmMcj"},{"balance":10000000,"name":"1002552","owner_address":"TCxeAH2ajBqoWzqV9m5YiFTyeQ5FvzVqSH"},{"balance":1000000,"name":"1002578","owner_address":"TUjBG7C1CU7X75UmacnyrRTYLmbSeX7iDa"},{"balance":2555000,"name":"1002270","owner_address":"TMSpdYHCgZuxM7AjqKsjGMM1cpxraFuZGp"},{"balance":10000000,"name":"1002597","owner_address":"TDEBhgsdGTSzrgMsPDUQ1pt59fR6wWR7Rq"},{"balance":10000000,"name":"1002636","owner_address":"TKL54NcGXvBckkGbPjYzAmdwFs3usv8VY9"},{"balance":100000000,"name":"1002250","owner_address":"THUHfNqiYo4KS3GLM8MUU4x3wek9uPD47d"},{"balance":1000000,"name":"1002662","owner_address":"TEV5PJWga6crSeNLHmHaaco8fon6nm74wJ"},{"balance":10000000,"name":"1002672","owner_address":"TBHJCf3nymJPt1hVPjSJfH5ssJLdNMPepe"},{"balance":24120,"name":"1002657","owner_address":"TCKiVea721ycNAWonb2dpwr65AJkMiGSFb"},{"balance":1000000,"name":"1002683","owner_address":"TL6YggMQQ3YFEc41wesBMHZjDxcGpX3y5q"},{"balance":3000000,"name":"1002671","owner_address":"TDQ5q4Hf6UqR43Smp67sndMQfdTcGgP88s"},{"balance":20,"name":"1002577","owner_address":"TGZzci6a9wtcSiNekqYLP84ECRoaJ6pBwY"},{"balance":10000000,"name":"1002721","owner_address":"TUkUgsTTo74B9XG9da4d2NsaZqCKLNFwNS"},{"balance":10000,"name":"1002726","owner_address":"TRXw3Ggt3xs3fHbcoark1aeKwUZFKTYcsS"},{"balance":21092024781,"name":"1002263","owner_address":"TD5AwyiTNbKN9jQqyMzwQ6NLrWGbtAcotK"},{"balance":10000000,"name":"1002736","owner_address":"TBB19fMCf19wuiu5omtA1nAqALPpo4oa32"},{"balance":10000000,"name":"1002646","owner_address":"TRUnzvtzT6o35M4XHUvKr48yCZjw4dQyvp"},{"balance":7392000000,"name":"1002589","owner_address":"TUL9NhGQkRFLTRcHGkdoSniAeVaNPZGgot"},{"balance":10000000,"name":"1002742","owner_address":"TWfrNPVGDh1tyPVM79bfEASb7jw2bLbZPJ"},{"balance":8822711275000000,"name":"1002762","owner_address":"TRChSJM8TjQj7vvJCN9W8WBcfkJq2eBxgv"},{"balance":10000000,"name":"1002775"},{"balance":10000000,"name":"1002798","owner_address":"TBitZMK7YSUb2Q1Cm537D5iAZSJkaPdN9c"},{"balance":95,"name":"1001854","owner_address":"TSMeDkfmX6m1NZmDBrVtGPnACJCUWVkx4p"},{"balance":10000000,"name":"1002746","owner_address":"TQbbAyfcrKERXjUDf8TZfcdtjFQbCSgEfc"},{"balance":2000000,"name":"1002669","owner_address":"THhgpkHBdJDDWBPnZKRgzdvRr3qCtAa2cv"},{"balance":10000000,"name":"1002814","owner_address":"TNvq4y2A2beBENtcGknwhX6XHgk8hqgnVh"},{"balance":10000000,"name":"1002830","owner_address":"THLLMnsEKEci5e5dJHnW28QQU8AujGhSoK"},{"balance":10000000,"name":"1002845","owner_address":"TUzpDkzjWkZasA6Dx7nx5PPskMkCcNxVyQ"},{"balance":10000000,"name":"1002858","owner_address":"TRKJcugHJeffVpCAFGapZMwuH8HaTWjbof"},{"balance":200,"name":"1002454","owner_address":"TDCGkNf3XB3jRGg7bhFkNynkGw7q4kV3z9"},{"balance":10000000,"name":"1002876","owner_address":"TGqiinRV6nn8GbF5LX7zue4fpjstG1gVvu"},{"balance":20000000,"name":"1002881","owner_address":"TWpKN6y3NVXm5mMjGmPEtLpS6boGM4q8T4"},{"balance":350,"name":"1000145","owner_address":"TNFcvwJgvBRg2Dq5Qyx1gxcvqU3dwPyVNc"},{"balance":10000000,"name":"1002892","owner_address":"TECsVV1kTtx48sbdjvptq544h4H3Qqr24c"},{"balance":10000000,"name":"1002897","owner_address":"TPKqse19ALipJ1uBZHGWHzuTrQqZa4HtaM"},{"balance":2055000000,"name":"1002822","owner_address":"TURy9pFLskqTWgkZqUCUdPXkezZfYL76YQ"},{"balance":1000000,"name":"1002852","owner_address":"TUmad3hCqxu78n8GuULrdJMUB4qmTUYgv3"},{"balance":10000000,"name":"1002907","owner_address":"TKC9HMUXx3qLE7d19KWzWVjFxEcWQdSYK9"},{"balance":10000000,"name":"1002927","owner_address":"TAwRvFAqfB4bbzVCVPgGATZV5uMVs9UyVL"},{"balance":10000000,"name":"1002926","owner_address":"TF5jfDiQ3d7T5ihcBxeWS9S8xSR5tS738x"},{"balance":1000000,"name":"1002748","owner_address":"TTUAmhh9k2Yegf3TxZc86vG5E9kT24vgcw"},{"balance":189990000000,"name":"1002950","owner_address":"TNCZCGDPQ69ieJFsY1jZUohXmR46A4kM24"},{"balance":10,"name":"1000985","owner_address":"TRH5jmPx77UnMvfdvfo2m3FCkZVcBiFvqP"},{"balance":10000000,"name":"1002962","owner_address":"TFDwGwod9qopreRiirsFMwPzX4v2r662P4"},{"balance":10000000,"name":"1002918","owner_address":"TKGpTks1myPrJ9ZtEdLgpjvg1RMR2wGAFz"},{"balance":1000,"name":"1002608","owner_address":"TDPsSgBQznKEffdTMq3aspsvrmFfhL7ZcP"},{"balance":10000000,"name":"1002999","owner_address":"TTL52uBzTG7qorL7BQYdjGUY3HWWr9Kvao"},{"balance":100000000000,"name":"1003022","owner_address":"TAAJiJ1NgkEkE3w1PQk4dA8XH9rpfk5eVE"},{"balance":1000000000,"name":"1003041","owner_address":"TQADZoww5HstdsJM1GXwstqsRRnmrkThzY"},{"balance":10000000,"name":"1003049","owner_address":"THFJwSN5Z3zTc5TvkSiVh8m4kQMZaTMaqk"},{"balance":1,"name":"1002939","owner_address":"TAsSw8hUddYi8AN8EkDuAMS9r8pkriyUxs"}],"balances":[{"balance":346976329314696,"name":"_"},{"balance":1273,"name":"1000003"},{"balance":113,"name":"1000006"},{"balance":145,"name":"1000165"},{"balance":416,"name":"1000520"},{"balance":596,"name":"1000491"},{"balance":242,"name":"1000176","owner_address":"THG48yHsR6inxrCJk2hhxZPsFLq1ehP88V"},{"balance":62,"name":"1000542"},{"balance":53,"name":"1000494","owner_address":"TXJnVqqwLSNmdXDLWn1Yfjhe8aZH2oaAuq"},{"balance":56,"name":"1000493"},{"balance":599,"name":"1000744"},{"balance":628,"name":"1000746"},{"balance":234,"name":"1000743"},{"balance":113,"name":"1000396"},{"balance":206,"name":"1000745","owner_address":"TPCEi45wZQ1PPChUg5uqoK1D5kKnjCR8Li"},{"balance":61,"name":"1000821","owner_address":"TBm3Peu51gYwn2iPwNEDxc9vBMc3eRGUGu"},{"balance":25,"name":"1000541"},{"balance":7,"name":"1000278","owner_address":"TRMUimDekf9nDLuVMp6TKzcw4axNnajGJr"},{"balance":1,"name":"1000567","owner_address":"TFXJMhB4ZKBfcQWfCLbSyQGhonHXABaWku"},{"balance":1,"name":"1000856","owner_address":"TXf3X8YMdDho2xwA6QDbFZiTGPnk8ghfLm"},{"balance":30,"name":"1000884"},{"balance":1,"name":"1000894"},{"balance":200,"name":"1000181","owner_address":"TEmTbbvH5ZPJPZ8CbffjqonFRiAAFgfc9o"},{"balance":7,"name":"1000935","owner_address":"TPVkcFYTEi9Dia45AveiTcaYoaU9ux7xC7"},{"balance":1000,"name":"1000938","owner_address":"TNgkWTabK1rMWwgLjmLdsZbzYfGTx5Tpe9"},{"balance":10,"name":"1000017","owner_address":"TV6qcwSp38uESiDczxxb7zbJX1h2LfDs78"},{"balance":10,"name":"1001011","owner_address":"TNUbeTQXPtRXtBX3dJboVkhdhaiws29Aky"},{"balance":2,"name":"1001038","owner_address":"TFujVDp8U578L2AtsorYN3pwdXmH2HxbQv"},{"balance":100,"name":"1000983","owner_address":"TYmiZ7xCeqboiizb2jsjVQuRABXzVSjKFR"},{"balance":1,"name":"1001203","owner_address":"TBmaT8mcrdkrRL2Q6ur7grMYAcaGtfxsz7"},{"balance":1,"name":"1000190","owner_address":"TNXjXURue38Wa641pmqMH4vbJN1WZLKMnr"},{"balance":100,"name":"1001204"},{"balance":1000,"name":"1001230"},{"balance":1300000,"name":"1001301","owner_address":"TVgJEbc9NEYxVr1h6rJQiMqySePsJQDCA7"},{"balance":11,"name":"1000959"},{"balance":10,"name":"1001425"},{"balance":17,"name":"1001433","owner_address":"TWPMz6FPEAV6qP4VRMG3Y69ftEov1R7YWT"},{"balance":100,"name":"1001446"},{"balance":12,"name":"1001411","owner_address":"TPL6zNujtEQ8kp213n58UxAhGRCU3aozkc"},{"balance":12,"name":"1001467"},{"balance":100,"name":"1001414","owner_address":"TT43DgfxgMdR4BVZNua4YCwG34AgfGN6Uu"},{"balance":100,"name":"1001510","owner_address":"TPKq9bVZyM2sZ8XersMmXhy1NbjhdxRwwj"},{"balance":50,"name":"1001565","owner_address":"TKY7Vmq78b2c83fLXrPijkhQkk4EJtfViD"},{"balance":5,"name":"1001535"},{"balance":10,"name":"1000532","owner_address":"TGQwBNht8h3zev4gBtDMoQjWE2WJm1Zr9B"},{"balance":3,"name":"1001479","owner_address":"TC9FtB1EoiV3jfXgZvmqUmfeCmdWNmCxdY"},{"balance":13,"name":"1001090","owner_address":"TU1LUTYDMG6iihimUpAmdnnBthawPKh1cm","priceInTrx":0.004360},{"balance":200,"name":"1001759","owner_address":"TWKWWJAFBYyjvLtfqKCSeMyUW7TjWhkY4e"},{"balance":12,"name":"1000096","owner_address":"TSfjkVSKJGW4aybDQcxi4bpythU7WCXV3v"},{"balance":15,"name":"1001594"},{"balance":10,"name":"1001815","owner_address":"TB3iM1RsKXagV7hdz2QpWnaChptwrU3tCL"},{"balance":10,"name":"1001064","owner_address":"THnWV416C9mfJ1LFwopUjGXZEr1xFtAdrD"},{"balance":5192508733304578,"name":"1002000","owner_address":"TF5Bn4cJCT6GVeUgyCN4rBhDg42KBrpAjg","priceInTrx":0.018900},{"balance":7742069,"name":"1002037","owner_address":"TBekuTCZwPG2o88SmiS58VALkxBemoX4yS"},{"balance":585,"name":"1002001"},{"balance":5441,"name":"1002071","owner_address":"TS79aik831csqUnQgnqrKG6hov2iL8yPbD"},{"balance":80312957663126,"name":"1002072","owner_address":"TP6PtaBSMM6sfWtWWD9k77YHWGmh7K3Lae"},{"balance":520,"name":"1000451","owner_address":"THPXuypwcnWo4wi5KqFfuRjgjeT5khUDKF"},{"balance":10011237,"name":"1001953","owner_address":"TSyG9BdjsGE2GoHG9eeYKMns6zMQFDmbvS"},{"balance":5,"name":"1000562","owner_address":"TWqKTJ5JhyD7rsbbWzEvS5ZZD9Q5QPPvSH"},{"balance":50000000,"name":"1002099","owner_address":"TYWmiPERm9kWUcnduqaE5jxT7eeZxfn5SQ"},{"balance":625100,"name":"1001581","owner_address":"TNkRSKWP7VvdrisTwC8iNzUV6MRoEJh6xx"},{"balance":11000000,"name":"1002342","owner_address":"TUCd8NiBUuxrjz1kSrUbAg2JXu6o27Ukrq"},{"balance":7,"name":"1000322","owner_address":"TDGy2M9qWBepSHDEutWWxWd1JZfmAed3BP","priceInTrx":0.000422},{"balance":12,"name":"1001825","owner_address":"TPcUbNeYwwYqbX23w3sVf1X61cwpAfPK2T"},{"balance":1000,"name":"1002384","owner_address":"TFYuPxyjDTvH1TLm2phpzJFw7AhjCgu8xP"},{"balance":44444,"name":"1001132","owner_address":"TWDUanVdxEShjpbiX57ExztMCDy8vCFcHh"},{"balance":30000000,"name":"1002398","owner_address":"TUXSuMg41nJXm9TuDgF6EZWjEbP2vx1Hd4"},{"balance":10000060,"name":"1002116","owner_address":"TAEvo6MgLgV3A75L3cr3BAsLDJikWcAt3j"},{"balance":50000000,"name":"1002446","owner_address":"TJKf72NjL1cR49SHfDnPTXTFjRwjgr7v8Z"},{"balance":10000000,"name":"1002459","owner_address":"TNWy3mX85JsX2mPLgLc4cKJiWtJahhz3t3"},{"balance":1,"name":"1001079","owner_address":"TLQfc5EwZQqZc6jMNkMpxyJy5wucA6UX24"},{"balance":12345,"name":"1002467","owner_address":"TP429SKrsp4BoTiEFXHj4TNSJwqDFsygnr"},{"balance":1234,"name":"1002230","owner_address":"TWB9Q1JoB3fSLsahNq31gydRxYyWxDhSyk"},{"balance":10000000,"name":"1002288","owner_address":"TPzfpaaKUPgJPZ39YeyvBaTYNXBYpnhxDg"},{"balance":5,"name":"1002488","owner_address":"TMeAzhdgzu1sFMTsP75BffJ2tEzuGsYqR6"},{"balance":666,"name":"1002438","owner_address":"TMqNJwD3qVmuRxzzP3Q4A24fuByVBKQ39E"},{"balance":10000000,"name":"1002517","owner_address":"TP9m11ERHhE1qgDtL83c2AHHNkWvdUfKTz"},{"balance":10000000000,"name":"1002521","owner_address":"TJUwM4qk1et2nNKuESQ7UVHPjAHoRqAz3T"},{"balance":13699,"name":"1000157","owner_address":"TUahmv54ZiDnjQWG2VAeyMphebXQ4m6Hb5"},{"balance":65895,"name":"1002524","owner_address":"TRzZeBPt69utiWx1po5ghLH8uSP8uJGsa5"},{"balance":16,"name":"1000287","owner_address":"TFZCyZ18XNzMfEr6W5kLkGrs4HVmou9H3y"},{"balance":10000000,"name":"1002544","owner_address":"TQHBbjES5DNjDfDHBbpnh9qcDM7mVjSVcL"},{"balance":10000000000,"name":"1002551","owner_address":"TVrGxBCQkWjQ52D7S67UgFsUzcX4E8EsNB"},{"balance":10000000,"name":"1002573","owner_address":"TBfmGqmZtdEQNuYCz8s1izBUDxZbkPmMcj"},{"balance":10000000,"name":"1002552","owner_address":"TCxeAH2ajBqoWzqV9m5YiFTyeQ5FvzVqSH"},{"balance":1000000,"name":"1002578","owner_address":"TUjBG7C1CU7X75UmacnyrRTYLmbSeX7iDa"},{"balance":2555000,"name":"1002270","owner_address":"TMSpdYHCgZuxM7AjqKsjGMM1cpxraFuZGp"},{"balance":10000000,"name":"1002597","owner_address":"TDEBhgsdGTSzrgMsPDUQ1pt59fR6wWR7Rq"},{"balance":10000000,"name":"1002636","owner_address":"TKL54NcGXvBckkGbPjYzAmdwFs3usv8VY9"},{"balance":100000000,"name":"1002250","owner_address":"THUHfNqiYo4KS3GLM8MUU4x3wek9uPD47d"},{"balance":1000000,"name":"1002662","owner_address":"TEV5PJWga6crSeNLHmHaaco8fon6nm74wJ"},{"balance":10000000,"name":"1002672","owner_address":"TBHJCf3nymJPt1hVPjSJfH5ssJLdNMPepe"},{"balance":24120,"name":"1002657","owner_address":"TCKiVea721ycNAWonb2dpwr65AJkMiGSFb"},{"balance":1000000,"name":"1002683","owner_address":"TL6YggMQQ3YFEc41wesBMHZjDxcGpX3y5q"},{"balance":3000000,"name":"1002671","owner_address":"TDQ5q4Hf6UqR43Smp67sndMQfdTcGgP88s"},{"balance":20,"name":"1002577","owner_address":"TGZzci6a9wtcSiNekqYLP84ECRoaJ6pBwY"},{"balance":10000000,"name":"1002721","owner_address":"TUkUgsTTo74B9XG9da4d2NsaZqCKLNFwNS"},{"balance":10000,"name":"1002726","owner_address":"TRXw3Ggt3xs3fHbcoark1aeKwUZFKTYcsS"},{"balance":21092024781,"name":"1002263","owner_address":"TD5AwyiTNbKN9jQqyMzwQ6NLrWGbtAcotK"},{"balance":10000000,"name":"1002736","owner_address":"TBB19fMCf19wuiu5omtA1nAqALPpo4oa32"},{"balance":10000000,"name":"1002646","owner_address":"TRUnzvtzT6o35M4XHUvKr48yCZjw4dQyvp"},{"balance":7392000000,"name":"1002589","owner_address":"TUL9NhGQkRFLTRcHGkdoSniAeVaNPZGgot"},{"balance":10000000,"name":"1002742","owner_address":"TWfrNPVGDh1tyPVM79bfEASb7jw2bLbZPJ"},{"balance":8822711275000000,"name":"1002762","owner_address":"TRChSJM8TjQj7vvJCN9W8WBcfkJq2eBxgv"},{"balance":10000000,"name":"1002775"},{"balance":10000000,"name":"1002798","owner_address":"TBitZMK7YSUb2Q1Cm537D5iAZSJkaPdN9c"},{"balance":95,"name":"1001854","owner_address":"TSMeDkfmX6m1NZmDBrVtGPnACJCUWVkx4p"},{"balance":10000000,"name":"1002746","owner_address":"TQbbAyfcrKERXjUDf8TZfcdtjFQbCSgEfc"},{"balance":2000000,"name":"1002669","owner_address":"THhgpkHBdJDDWBPnZKRgzdvRr3qCtAa2cv"},{"balance":10000000,"name":"1002814","owner_address":"TNvq4y2A2beBENtcGknwhX6XHgk8hqgnVh"},{"balance":10000000,"name":"1002830","owner_address":"THLLMnsEKEci5e5dJHnW28QQU8AujGhSoK"},{"balance":10000000,"name":"1002845","owner_address":"TUzpDkzjWkZasA6Dx7nx5PPskMkCcNxVyQ"},{"balance":10000000,"name":"1002858","owner_address":"TRKJcugHJeffVpCAFGapZMwuH8HaTWjbof"},{"balance":200,"name":"1002454","owner_address":"TDCGkNf3XB3jRGg7bhFkNynkGw7q4kV3z9"},{"balance":10000000,"name":"1002876","owner_address":"TGqiinRV6nn8GbF5LX7zue4fpjstG1gVvu"},{"balance":20000000,"name":"1002881","owner_address":"TWpKN6y3NVXm5mMjGmPEtLpS6boGM4q8T4"},{"balance":350,"name":"1000145","owner_address":"TNFcvwJgvBRg2Dq5Qyx1gxcvqU3dwPyVNc"},{"balance":10000000,"name":"1002892","owner_address":"TECsVV1kTtx48sbdjvptq544h4H3Qqr24c"},{"balance":10000000,"name":"1002897","owner_address":"TPKqse19ALipJ1uBZHGWHzuTrQqZa4HtaM"},{"balance":2055000000,"name":"1002822","owner_address":"TURy9pFLskqTWgkZqUCUdPXkezZfYL76YQ"},{"balance":1000000,"name":"1002852","owner_address":"TUmad3hCqxu78n8GuULrdJMUB4qmTUYgv3"},{"balance":10000000,"name":"1002907","owner_address":"TKC9HMUXx3qLE7d19KWzWVjFxEcWQdSYK9"},{"balance":10000000,"name":"1002927","owner_address":"TAwRvFAqfB4bbzVCVPgGATZV5uMVs9UyVL"},{"balance":10000000,"name":"1002926","owner_address":"TF5jfDiQ3d7T5ihcBxeWS9S8xSR5tS738x"},{"balance":1000000,"name":"1002748","owner_address":"TTUAmhh9k2Yegf3TxZc86vG5E9kT24vgcw"},{"balance":189990000000,"name":"1002950","owner_address":"TNCZCGDPQ69ieJFsY1jZUohXmR46A4kM24"},{"balance":10,"name":"1000985","owner_address":"TRH5jmPx77UnMvfdvfo2m3FCkZVcBiFvqP"},{"balance":10000000,"name":"1002962","owner_address":"TFDwGwod9qopreRiirsFMwPzX4v2r662P4"},{"balance":10000000,"name":"1002918","owner_address":"TKGpTks1myPrJ9ZtEdLgpjvg1RMR2wGAFz"},{"balance":1000,"name":"1002608","owner_address":"TDPsSgBQznKEffdTMq3aspsvrmFfhL7ZcP"},{"balance":10000000,"name":"1002999","owner_address":"TTL52uBzTG7qorL7BQYdjGUY3HWWr9Kvao"},{"balance":100000000000,"name":"1003022","owner_address":"TAAJiJ1NgkEkE3w1PQk4dA8XH9rpfk5eVE"},{"balance":1000000000,"name":"1003041","owner_address":"TQADZoww5HstdsJM1GXwstqsRRnmrkThzY"},{"balance":10000000,"name":"1003049","owner_address":"THFJwSN5Z3zTc5TvkSiVh8m4kQMZaTMaqk"},{"balance":1,"name":"1002939","owner_address":"TAsSw8hUddYi8AN8EkDuAMS9r8pkriyUxs"}],"balance":346976329314696,"voteTotal":0,"name":"","delegated":{"sentDelegatedBandwidth":[],"sentDelegatedResource":[],"receivedDelegatedResource":[],"receivedDelegatedBandwidth":[]},"totalTransactionCount":508552,"representative":{"lastWithDrawTime":0,"allowance":0,"enabled":false,"url":""},"activePermissions":[]}`
+	mockedTransactionsTrc20Response                       = `{"success":true,"meta":{"at":1592757126588,"page_size":20,"fingerprint":"2tmLC90HQEnpnJ02w3n","links":{"next":"https://api.trongrid.io:443/v1/accounts/TM1zzNDZD2DPASbKcgdVoTYhfmYgtfwx9D/transactions/trc20?fingerprint=2tmLC90HQEnpnJ02w3n"}},"data":[{"block_timestamp":1592757117000,"value":"500000000","type":"Transfer","transaction_id":"fb078403adfee637608c3906d9d21dd158611aba149b9993f43d0f292ce543a0","from":"TM1zzNDZD2DPASbKcgdVoTYhfmYgtfwx9D","to":"TGg7zHY9qd36aN3jLVDDRuiFeJjaaAtx8A","token_info":{"address":"TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t","name":"Tether USD","symbol":"USDT","decimals":6},"_unconfirmed":true},{"block_timestamp":1592757066000,"value":"50000000","type":"Transfer","transaction_id":"c4052b526e5cd21e1f023c31cce6b6a13eb9d8aeae3ae80fcefe6038dfbeb022","from":"TM1zzNDZD2DPASbKcgdVoTYhfmYgtfwx9D","to":"TXJTFuXzfoPbWKCnw47AYxMzgVPUyhJGRd","token_info":{"address":"TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t","name":"Tether USD","symbol":"USDT","decimals":6},"_unconfirmed":true},{"from":"TM1zzNDZD2DPASbKcgdVoTYhfmYgtfwx9D","to":"TXJTFuXzfoPbWKCnw47AYxMzgVPUyhJGRd","block_timestamp":1592757066000,"value":"50000000","type":"Transfer","transaction_id":"c4052b526e5cd21e1f023c31cce6b6a13eb9d8aeae3ae80fcefe6038dfbeb022","token_info":{"name":"Tether USD","symbol":"USDT","decimals":6,"address":"TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t"}},{"from":"TM1zzNDZD2DPASbKcgdVoTYhfmYgtfwx9D","to":"TFNEJYAKBVgc17X6fPppZ8ayaf9yswmMYV","block_timestamp":1592756784000,"value":"3988000000","type":"Transfer","transaction_id":"0b52a4ef9fb8c13fbfae2b8c3506333ec1d718f307062a15f170562818a01d0a","token_info":{"name":"Tether USD","symbol":"USDT","decimals":6,"address":"TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t"}},{"from":"TM1zzNDZD2DPASbKcgdVoTYhfmYgtfwx9D","to":"TGYETHZr2MTkFDe8GqwdVFPfadofTVk4am","block_timestamp":1592756763000,"value":"640990000","type":"Transfer","transaction_id":"19d2ec6174bf64beb1061475f6429cba03b64944a763686cc3551447d0e8d9d5","token_info":{"name":"Tether USD","symbol":"USDT","decimals":6,"address":"TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t"}},{"from":"TAxbLztoanFhYu4TuS5RabaJYGnUkfzNKG","to":"TM1zzNDZD2DPASbKcgdVoTYhfmYgtfwx9D","block_timestamp":1592756631000,"value":"1062000000","type":"Transfer","transaction_id":"efb7d44305759cfb189c9fd22720609a2ddeb7fbd7c8afe1dd8851342471da8d","token_info":{"name":"Tether USD","symbol":"USDT","decimals":6,"address":"TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t"}},{"from":"TM1zzNDZD2DPASbKcgdVoTYhfmYgtfwx9D","to":"TGg7zHY9qd36aN3jLVDDRuiFeJjaaAtx8A","block_timestamp":1592756610000,"value":"2000000","type":"Transfer","transaction_id":"48bd90dc3f12086178e65b9389caa8b3c74683937b86d4d61cdec77f0095994a","token_info":{"name":"Tether USD","symbol":"USDT","decimals":6,"address":"TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t"}},{"from":"TM1zzNDZD2DPASbKcgdVoTYhfmYgtfwx9D","to":"TN6Wy4j37wn3vxynynrKemWhDsUBHYje3R","block_timestamp":1592756589000,"value":"1000000000","type":"Transfer","transaction_id":"afd5ae7e2462c9cc899c7f730b90fd2a5e4c1315e836c92468b504ed85f0b798","token_info":{"name":"Tether USD","symbol":"USDT","decimals":6,"address":"TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t"}},{"from":"TM1zzNDZD2DPASbKcgdVoTYhfmYgtfwx9D","to":"TXP7prwMqugLFWZRwcJAWuKZ4UN4wz3ifq","block_timestamp":1592756583000,"value":"21200000","type":"Transfer","transaction_id":"3d613031f4b2a0e19deeea030d1d18599b6d9799d2dd530005ead9712c6d219d","token_info":{"name":"Tether USD","symbol":"USDT","decimals":6,"address":"TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t"}},{"from":"TM1zzNDZD2DPASbKcgdVoTYhfmYgtfwx9D","to":"TBStJt5wDtLqeUvGEasqd55uo1CbDTCsf5","block_timestamp":1592756583000,"value":"125000000","type":"Transfer","transaction_id":"cbe359c2574efbdc8fc6a892ffc54812837295067c9816d41734126c82d0c141","token_info":{"name":"Tether USD","symbol":"USDT","decimals":6,"address":"TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t"}},{"from":"TM1zzNDZD2DPASbKcgdVoTYhfmYgtfwx9D","to":"TJ2qhZSQ9g5YqEAJgYfPZZxn1djbf5ogkC","block_timestamp":1592756583000,"value":"5277600000","type":"Transfer","transaction_id":"c87248b02a4caaa6f443c1b8c4d4588c8dd281a4687b73e6afecfba6741b50d8","token_info":{"name":"Tether USD","symbol":"USDT","decimals":6,"address":"TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t"}},{"from":"TM1zzNDZD2DPASbKcgdVoTYhfmYgtfwx9D","to":"TRqyhrttStrn1o7gS3mmgKrmkVw6qyw23W","block_timestamp":1592756583000,"value":"485342000","type":"Transfer","transaction_id":"8584f1b6a70ead8232fed19bd653ba13e4c2a8befd070f4a9a06eca3a2e3e548","token_info":{"name":"Tether USD","symbol":"USDT","decimals":6,"address":"TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t"}},{"from":"TM1zzNDZD2DPASbKcgdVoTYhfmYgtfwx9D","to":"TLdYhJeKCLKxVm33JL8GAyi6i6zrSz8VFr","block_timestamp":1592756583000,"value":"1000000000","type":"Transfer","transaction_id":"2b28b69e6747db68647acc3a62c45da5355b97acd8d2c260ee752aa9bd63a624","token_info":{"name":"Tether USD","symbol":"USDT","decimals":6,"address":"TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t"}},{"from":"TM1zzNDZD2DPASbKcgdVoTYhfmYgtfwx9D","to":"TDpRQi5HguNpasa9Cn7AJyrn646nRDAH6x","block_timestamp":1592756583000,"value":"2000000000","type":"Transfer","transaction_id":"1da6576dec0bd303f56cbfb5712f782e0a56a8713cb661f8afd2f2533e5c6209","token_info":{"name":"Tether USD","symbol":"USDT","decimals":6,"address":"TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t"}},{"from":"TM1zzNDZD2DPASbKcgdVoTYhfmYgtfwx9D","to":"TGy3K5iDbxm8SM34UTWWniNsS13FtLnHkK","block_timestamp":1592756583000,"value":"24216600000","type":"Transfer","transaction_id":"f9c86cce1873cb816d6cd8718e76df8839172add293bbc8d11a5f98c80f9e322","token_info":{"name":"Tether USD","symbol":"USDT","decimals":6,"address":"TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t"}},{"from":"TGMTZMty79L9psKi5b4vwXZPJaiCb9k6mV","to":"TM1zzNDZD2DPASbKcgdVoTYhfmYgtfwx9D","block_timestamp":1592756541000,"value":"8241997837","type":"Transfer","transaction_id":"75eb35734857daa79c38ef923a7e7eb2e3dfb23d2722762fd2b180651021643f","token_info":{"name":"Tether USD","symbol":"USDT","decimals":6,"address":"TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t"}},{"from":"TUwgGpDrVBc3uDZg3Tj9BZZN8xkLK29yzH","to":"TM1zzNDZD2DPASbKcgdVoTYhfmYgtfwx9D","block_timestamp":1592756220000,"value":"18000000000","type":"Transfer","transaction_id":"adee73dadce006ff848ff30d8c5c41f033be2e5e1a8b875f6dbbaab524177d08","token_info":{"name":"Tether USD","symbol":"USDT","decimals":6,"address":"TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t"}},{"from":"TMaDtMFGJ8BBiNXchGBQmRBWi2mpfi2kdV","to":"TM1zzNDZD2DPASbKcgdVoTYhfmYgtfwx9D","block_timestamp":1592755962000,"value":"863399098","type":"Transfer","transaction_id":"3655a1156c9adcb876c6c9c9e0f5f1f39704ac4c7296fea05fedf5ca8f6b1a19","token_info":{"name":"Tether USD","symbol":"USDT","decimals":6,"address":"TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t"}},{"from":"TM1zzNDZD2DPASbKcgdVoTYhfmYgtfwx9D","to":"TH7AaBSjS4NYuF3r8vXQcuwVXmGrv9iwYQ","block_timestamp":1592755740000,"value":"20000000","type":"Transfer","transaction_id":"03574741eb0016050a19f181e4acc4b20b70f41e11e63140c9556c31eae09fba","token_info":{"name":"Tether USD","symbol":"USDT","decimals":6,"address":"TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t"}},{"from":"TM1zzNDZD2DPASbKcgdVoTYhfmYgtfwx9D","to":"TA1VFEzYiU8oB9P1xdhMaFJ7BZ6FvUTyug","block_timestamp":1592755722000,"value":"21161340000","type":"Transfer","transaction_id":"f3aa00595996e31dbe9528a3cb21bff987f333bf1f675420ba4fa2ad43c8205f","token_info":{"name":"Tether USD","symbol":"USDT","decimals":6,"address":"TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t"}}]}`
+	mockedTransactionsEmptyResponse                       = `{"success":true,"meta":{"at":1592757318961,"page_size":20,"fingerprint":"AYa6eBNpCs5E2DnumiJJJWJ3n2PYMBRFvU7BLjXD49Jm779DJ1C1hUgjwJAmQx5Y2BnkStKMjzQvcALKeQJYfW51m6sY7YEWW","links":{"next":"https://api.trongrid.io:443/v1/accounts/TM1zzNDZD2DPASbKcgdVoTYhfmYgtfwx9R/transactions?fingerprint=AYa6eBNpCs5E2DnumiJJJWJ3n2PYMBRFvU7BLjXD49Jm779DJ1C1hUgjwJAmQx5Y2BnkStKMjzQvcALKeQJYfW51m6sY7YEWW"}},"data":[]}`
+	mockedAsset1000542Response                            = `{"success":true,"meta":{"at":1592754266101,"page_size":1},"data":[{"id":"1000542","abbr":"FOM","description":"Fomo3D is a decentralized, trustless blockchain game.","name":"FomoThreeD","num":1,"total_supply":80000000000,"trx_num":1000000,"url":"https://fomo3d.games/","owner_address":"4134f1b9c19cf40f565661697eb47b0090ac779507","start_time":1534348821000,"end_time":1924876800000}]}`
+	mockedAsset1000567Response                            = `{"success":true,"meta":{"at":1592754347268,"page_size":1},"data":[{"id":"1000567","abbr":"os","description":"Open Decentralized Search Engine","frozen_supply":[{"frozen_amount":74000000000,"frozen_days":3652}],"name":"OtonamiS","num":100,"total_supply":99000000000,"trx_num":1000000,"url":"https://OtonamiS.com","owner_address":"413cea69143b5a5b1ff15d847a7e30e3bffa6a2247","start_time":1534773969000,"end_time":1566280800000}]}`
+	mockedAssetTR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6tResponse = `{"success":true,"meta":{"at":1592754347268,"page_size":1},"data":[]}`
+	mockedAccountsResponse                                = `{"success":true,"meta":{"at":1592753781505,"page_size":1},"data":[{"account_resource":{"latest_consume_time_for_energy":1592753721000},"address":"4179309abcff2cf531070ca9222a1f72c4a5136874","asset":[{"key":"IPFS","value":1273},{"key":"TRXTestCoin","value":113},{"key":"Skypeople","value":145},{"key":"binance","value":416},{"key":"BitTorrent","value":596},{"key":"ofoBike","value":242},{"key":"FomoThreeD","value":62},{"key":"Durex","value":53},{"key":"Pornhub","value":56},{"key":"NBACoin","value":599},{"key":"HuobiToken","value":628},{"key":"MacCoin","value":234},{"key":"Messenger","value":113},{"key":"Bithumb","value":206},{"key":"James","value":61},{"key":"RingCoin","value":25},{"key":"DACC","value":7},{"key":"OtonamiS","value":1},{"key":"intrxChain","value":1},{"key":"TRONEX","value":30},{"key":"Petro","value":1},{"key":"KrMaToken","value":200},{"key":"KsumNole","value":7},{"key":"eFilingPlus","value":1000},{"key":"Tarquin","value":10},{"key":"KiloReX","value":10},{"key":"BESTCOIN","value":2},{"key":"Makememillionaire","value":100},{"key":"MedicCoin","value":1},{"key":"DMT","value":1},{"key":"MedIBlock","value":100},{"key":"ethereum","value":1000},{"key":"COLORBIKE","value":1300000},{"key":"WatsonAI","value":11},{"key":"Litcoin","value":10},{"key":"TronMatrixAI","value":17},{"key":"GoodKarma","value":100},{"key":"CryptoBankCoin","value":12},{"key":"EXODUS","value":12},{"key":"TRONO","value":100},{"key":"NMIToken","value":100},{"key":"Ton","value":50},{"key":"Twx","value":5},{"key":"TronLottery","value":10},{"key":"TronTokensGuardian","value":3},{"key":"TRONONE","value":13},{"key":"ELVIS","value":200},{"key":"URUNIT","value":12},{"key":"CRYPTYK","value":15},{"key":"TronRoyal","value":10}],"assetV2":[{"key":"1000542","value":62},{"key":"1000567","value":0}],"balance":346991703615806,"create_time":1535532969000,"free_asset_net_usageV2":[{"key":"1000542","value":0},{"key":"1000567","value":0}],"free_net_usage":4828,"latest_consume_free_time":1592751174000,"latest_opration_time":1592753721000,"trc20":[{"TCFLL5dx5ZJdKnWuesXxi1VPwjLVmWZZy9":"955973733483987848990056"},{"TLa2f6VPqDgRE67v1736s7bJ8Ray5wYjU7":"191543058623486"},{"TG7Z1ptC7nRkaniDVRhHSyLycaroaS5PdK":"100000000000000"},{"TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t":"6849738905400"},{"TMCMPzmosnQ8UAYW1zcBwjLTxDq8ce4Y5e":"5000000000"},{"TJSF4iVkzkRkYwEVNkqJkeGDaZpnFbGy9x":"500000000"},{"TTvVC9jv5AfDdHuGeCMcQg6QftmNnfQiVm":"20000000"},{"TCRhVHPv6efvXgogNMhiunAMXFKcMmv2pF":"175798"},{"TPt8DTDBZYfJ9fuyRjdWJr4PP68tRfptLG":"20000"},{"TLKyLt4MXuvvdFvUUc3Zma4rZyj2t87Mak":"1"}]}]}`
+)
diff --git a/platform/tron/transaction_test.go b/platform/tron/transaction_test.go
index 6a619e9..e3da6d2 100644
--- a/platform/tron/transaction_test.go
+++ b/platform/tron/transaction_test.go
@@ -5,6 +5,7 @@ import (
 	"github.com/stretchr/testify/assert"
 	"github.com/trustwallet/blockatlas/coin"
 	"github.com/trustwallet/blockatlas/pkg/blockatlas"
+	"net/http/httptest"
 	"testing"
 )
 
@@ -108,10 +109,10 @@ func testNormalizeTokenTransfer(t *testing.T, _test *test) {
 	err := json.Unmarshal([]byte(_test.apiResponse), &srcTx)
 	assert.NoError(t, err)
 	assert.NotNil(t, srcTx)
-	res, err := Normalize(srcTx)
+	res, err := normalize(srcTx)
 	assert.NoError(t, err)
 	assert.NotNil(t, res)
-	setTokenMeta(res, srcTx, assetInfo)
+	addTokenMeta(res, srcTx, assetInfo)
 	assert.Equal(t, _test.expected, res)
 }
 
@@ -128,8 +129,55 @@ func testNormalize(t *testing.T, _test *test) {
 	err := json.Unmarshal([]byte(_test.apiResponse), &srcTx)
 	assert.NoError(t, err)
 	assert.NotNil(t, srcTx)
-	res, err := Normalize(srcTx)
+	res, err := normalize(srcTx)
 	assert.NoError(t, err)
 	assert.NotNil(t, res)
 	assert.Equal(t, _test.expected, res)
 }
+
+func TestPlatform_GetTxsByAddress(t *testing.T) {
+	server := httptest.NewServer(createMockedAPI())
+	defer server.Close()
+
+	p := Init(server.URL, server.URL)
+	res, err := p.GetTxsByAddress("TM1zzNDZD2DPASbKcgdVoTYhfmYgtfwx9R")
+	assert.Nil(t, err)
+
+	rawRes, err := json.Marshal(res)
+	assert.Nil(t, err)
+	assert.Equal(t, wantedTransactionsOnly, string(rawRes))
+}
+
+func TestPlatform_GetTokenTxsByAddress(t *testing.T) {
+	server := httptest.NewServer(createMockedAPI())
+	defer server.Close()
+
+	p := Init(server.URL, server.URL)
+	res, err := p.GetTokenTxsByAddress("TM1zzNDZD2DPASbKcgdVoTYhfmYgtfwx9D", "TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t")
+	assert.Nil(t, err)
+
+	rawRes, err := json.Marshal(res)
+	assert.Nil(t, err)
+	assert.Equal(t, wantedTransactionsWithToken, string(rawRes))
+}
+
+func Test_getTokenType(t *testing.T) {
+	tests := []struct {
+		name  string
+		token string
+		want  blockatlas.TokenType
+	}{
+		{"default trc20", "TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t", blockatlas.TokenTypeTRC20},
+		{"default trc10", "1002001", blockatlas.TokenTypeTRC10},
+	}
+	for _, tt := range tests {
+		t.Run(tt.name, func(t *testing.T) {
+			assert.Equal(t, tt.want, getTokenType(tt.token))
+		})
+	}
+}
+
+var (
+	wantedTransactionsWithToken = `[{"id":"fb078403adfee637608c3906d9d21dd158611aba149b9993f43d0f292ce543a0","coin":195,"from":"TM1zzNDZD2DPASbKcgdVoTYhfmYgtfwx9D","to":"TGg7zHY9qd36aN3jLVDDRuiFeJjaaAtx8A","fee":"0","date":1592757117,"block":0,"status":"completed","sequence":0,"type":"token_transfer","memo":"","metadata":{"name":"Tether USD","symbol":"USDT","token_id":"TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t","decimals":6,"value":"500000000","from":"TM1zzNDZD2DPASbKcgdVoTYhfmYgtfwx9D","to":"TGg7zHY9qd36aN3jLVDDRuiFeJjaaAtx8A"}},{"id":"c4052b526e5cd21e1f023c31cce6b6a13eb9d8aeae3ae80fcefe6038dfbeb022","coin":195,"from":"TM1zzNDZD2DPASbKcgdVoTYhfmYgtfwx9D","to":"TXJTFuXzfoPbWKCnw47AYxMzgVPUyhJGRd","fee":"0","date":1592757066,"block":0,"status":"completed","sequence":0,"type":"token_transfer","memo":"","metadata":{"name":"Tether USD","symbol":"USDT","token_id":"TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t","decimals":6,"value":"50000000","from":"TM1zzNDZD2DPASbKcgdVoTYhfmYgtfwx9D","to":"TXJTFuXzfoPbWKCnw47AYxMzgVPUyhJGRd"}},{"id":"c4052b526e5cd21e1f023c31cce6b6a13eb9d8aeae3ae80fcefe6038dfbeb022","coin":195,"from":"TM1zzNDZD2DPASbKcgdVoTYhfmYgtfwx9D","to":"TXJTFuXzfoPbWKCnw47AYxMzgVPUyhJGRd","fee":"0","date":1592757066,"block":0,"status":"completed","sequence":0,"type":"token_transfer","memo":"","metadata":{"name":"Tether USD","symbol":"USDT","token_id":"TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t","decimals":6,"value":"50000000","from":"TM1zzNDZD2DPASbKcgdVoTYhfmYgtfwx9D","to":"TXJTFuXzfoPbWKCnw47AYxMzgVPUyhJGRd"}},{"id":"0b52a4ef9fb8c13fbfae2b8c3506333ec1d718f307062a15f170562818a01d0a","coin":195,"from":"TM1zzNDZD2DPASbKcgdVoTYhfmYgtfwx9D","to":"TFNEJYAKBVgc17X6fPppZ8ayaf9yswmMYV","fee":"0","date":1592756784,"block":0,"status":"completed","sequence":0,"type":"token_transfer","memo":"","metadata":{"name":"Tether USD","symbol":"USDT","token_id":"TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t","decimals":6,"value":"3988000000","from":"TM1zzNDZD2DPASbKcgdVoTYhfmYgtfwx9D","to":"TFNEJYAKBVgc17X6fPppZ8ayaf9yswmMYV"}},{"id":"19d2ec6174bf64beb1061475f6429cba03b64944a763686cc3551447d0e8d9d5","coin":195,"from":"TM1zzNDZD2DPASbKcgdVoTYhfmYgtfwx9D","to":"TGYETHZr2MTkFDe8GqwdVFPfadofTVk4am","fee":"0","date":1592756763,"block":0,"status":"completed","sequence":0,"type":"token_transfer","memo":"","metadata":{"name":"Tether USD","symbol":"USDT","token_id":"TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t","decimals":6,"value":"640990000","from":"TM1zzNDZD2DPASbKcgdVoTYhfmYgtfwx9D","to":"TGYETHZr2MTkFDe8GqwdVFPfadofTVk4am"}},{"id":"efb7d44305759cfb189c9fd22720609a2ddeb7fbd7c8afe1dd8851342471da8d","coin":195,"from":"TAxbLztoanFhYu4TuS5RabaJYGnUkfzNKG","to":"TM1zzNDZD2DPASbKcgdVoTYhfmYgtfwx9D","fee":"0","date":1592756631,"block":0,"status":"completed","sequence":0,"type":"token_transfer","memo":"","metadata":{"name":"Tether USD","symbol":"USDT","token_id":"TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t","decimals":6,"value":"1062000000","from":"TAxbLztoanFhYu4TuS5RabaJYGnUkfzNKG","to":"TM1zzNDZD2DPASbKcgdVoTYhfmYgtfwx9D"}},{"id":"48bd90dc3f12086178e65b9389caa8b3c74683937b86d4d61cdec77f0095994a","coin":195,"from":"TM1zzNDZD2DPASbKcgdVoTYhfmYgtfwx9D","to":"TGg7zHY9qd36aN3jLVDDRuiFeJjaaAtx8A","fee":"0","date":1592756610,"block":0,"status":"completed","sequence":0,"type":"token_transfer","memo":"","metadata":{"name":"Tether USD","symbol":"USDT","token_id":"TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t","decimals":6,"value":"2000000","from":"TM1zzNDZD2DPASbKcgdVoTYhfmYgtfwx9D","to":"TGg7zHY9qd36aN3jLVDDRuiFeJjaaAtx8A"}},{"id":"afd5ae7e2462c9cc899c7f730b90fd2a5e4c1315e836c92468b504ed85f0b798","coin":195,"from":"TM1zzNDZD2DPASbKcgdVoTYhfmYgtfwx9D","to":"TN6Wy4j37wn3vxynynrKemWhDsUBHYje3R","fee":"0","date":1592756589,"block":0,"status":"completed","sequence":0,"type":"token_transfer","memo":"","metadata":{"name":"Tether USD","symbol":"USDT","token_id":"TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t","decimals":6,"value":"1000000000","from":"TM1zzNDZD2DPASbKcgdVoTYhfmYgtfwx9D","to":"TN6Wy4j37wn3vxynynrKemWhDsUBHYje3R"}},{"id":"3d613031f4b2a0e19deeea030d1d18599b6d9799d2dd530005ead9712c6d219d","coin":195,"from":"TM1zzNDZD2DPASbKcgdVoTYhfmYgtfwx9D","to":"TXP7prwMqugLFWZRwcJAWuKZ4UN4wz3ifq","fee":"0","date":1592756583,"block":0,"status":"completed","sequence":0,"type":"token_transfer","memo":"","metadata":{"name":"Tether USD","symbol":"USDT","token_id":"TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t","decimals":6,"value":"21200000","from":"TM1zzNDZD2DPASbKcgdVoTYhfmYgtfwx9D","to":"TXP7prwMqugLFWZRwcJAWuKZ4UN4wz3ifq"}},{"id":"cbe359c2574efbdc8fc6a892ffc54812837295067c9816d41734126c82d0c141","coin":195,"from":"TM1zzNDZD2DPASbKcgdVoTYhfmYgtfwx9D","to":"TBStJt5wDtLqeUvGEasqd55uo1CbDTCsf5","fee":"0","date":1592756583,"block":0,"status":"completed","sequence":0,"type":"token_transfer","memo":"","metadata":{"name":"Tether USD","symbol":"USDT","token_id":"TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t","decimals":6,"value":"125000000","from":"TM1zzNDZD2DPASbKcgdVoTYhfmYgtfwx9D","to":"TBStJt5wDtLqeUvGEasqd55uo1CbDTCsf5"}},{"id":"c87248b02a4caaa6f443c1b8c4d4588c8dd281a4687b73e6afecfba6741b50d8","coin":195,"from":"TM1zzNDZD2DPASbKcgdVoTYhfmYgtfwx9D","to":"TJ2qhZSQ9g5YqEAJgYfPZZxn1djbf5ogkC","fee":"0","date":1592756583,"block":0,"status":"completed","sequence":0,"type":"token_transfer","memo":"","metadata":{"name":"Tether USD","symbol":"USDT","token_id":"TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t","decimals":6,"value":"5277600000","from":"TM1zzNDZD2DPASbKcgdVoTYhfmYgtfwx9D","to":"TJ2qhZSQ9g5YqEAJgYfPZZxn1djbf5ogkC"}},{"id":"8584f1b6a70ead8232fed19bd653ba13e4c2a8befd070f4a9a06eca3a2e3e548","coin":195,"from":"TM1zzNDZD2DPASbKcgdVoTYhfmYgtfwx9D","to":"TRqyhrttStrn1o7gS3mmgKrmkVw6qyw23W","fee":"0","date":1592756583,"block":0,"status":"completed","sequence":0,"type":"token_transfer","memo":"","metadata":{"name":"Tether USD","symbol":"USDT","token_id":"TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t","decimals":6,"value":"485342000","from":"TM1zzNDZD2DPASbKcgdVoTYhfmYgtfwx9D","to":"TRqyhrttStrn1o7gS3mmgKrmkVw6qyw23W"}},{"id":"2b28b69e6747db68647acc3a62c45da5355b97acd8d2c260ee752aa9bd63a624","coin":195,"from":"TM1zzNDZD2DPASbKcgdVoTYhfmYgtfwx9D","to":"TLdYhJeKCLKxVm33JL8GAyi6i6zrSz8VFr","fee":"0","date":1592756583,"block":0,"status":"completed","sequence":0,"type":"token_transfer","memo":"","metadata":{"name":"Tether USD","symbol":"USDT","token_id":"TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t","decimals":6,"value":"1000000000","from":"TM1zzNDZD2DPASbKcgdVoTYhfmYgtfwx9D","to":"TLdYhJeKCLKxVm33JL8GAyi6i6zrSz8VFr"}},{"id":"1da6576dec0bd303f56cbfb5712f782e0a56a8713cb661f8afd2f2533e5c6209","coin":195,"from":"TM1zzNDZD2DPASbKcgdVoTYhfmYgtfwx9D","to":"TDpRQi5HguNpasa9Cn7AJyrn646nRDAH6x","fee":"0","date":1592756583,"block":0,"status":"completed","sequence":0,"type":"token_transfer","memo":"","metadata":{"name":"Tether USD","symbol":"USDT","token_id":"TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t","decimals":6,"value":"2000000000","from":"TM1zzNDZD2DPASbKcgdVoTYhfmYgtfwx9D","to":"TDpRQi5HguNpasa9Cn7AJyrn646nRDAH6x"}},{"id":"f9c86cce1873cb816d6cd8718e76df8839172add293bbc8d11a5f98c80f9e322","coin":195,"from":"TM1zzNDZD2DPASbKcgdVoTYhfmYgtfwx9D","to":"TGy3K5iDbxm8SM34UTWWniNsS13FtLnHkK","fee":"0","date":1592756583,"block":0,"status":"completed","sequence":0,"type":"token_transfer","memo":"","metadata":{"name":"Tether USD","symbol":"USDT","token_id":"TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t","decimals":6,"value":"24216600000","from":"TM1zzNDZD2DPASbKcgdVoTYhfmYgtfwx9D","to":"TGy3K5iDbxm8SM34UTWWniNsS13FtLnHkK"}},{"id":"75eb35734857daa79c38ef923a7e7eb2e3dfb23d2722762fd2b180651021643f","coin":195,"from":"TGMTZMty79L9psKi5b4vwXZPJaiCb9k6mV","to":"TM1zzNDZD2DPASbKcgdVoTYhfmYgtfwx9D","fee":"0","date":1592756541,"block":0,"status":"completed","sequence":0,"type":"token_transfer","memo":"","metadata":{"name":"Tether USD","symbol":"USDT","token_id":"TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t","decimals":6,"value":"8241997837","from":"TGMTZMty79L9psKi5b4vwXZPJaiCb9k6mV","to":"TM1zzNDZD2DPASbKcgdVoTYhfmYgtfwx9D"}},{"id":"adee73dadce006ff848ff30d8c5c41f033be2e5e1a8b875f6dbbaab524177d08","coin":195,"from":"TUwgGpDrVBc3uDZg3Tj9BZZN8xkLK29yzH","to":"TM1zzNDZD2DPASbKcgdVoTYhfmYgtfwx9D","fee":"0","date":1592756220,"block":0,"status":"completed","sequence":0,"type":"token_transfer","memo":"","metadata":{"name":"Tether USD","symbol":"USDT","token_id":"TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t","decimals":6,"value":"18000000000","from":"TUwgGpDrVBc3uDZg3Tj9BZZN8xkLK29yzH","to":"TM1zzNDZD2DPASbKcgdVoTYhfmYgtfwx9D"}},{"id":"3655a1156c9adcb876c6c9c9e0f5f1f39704ac4c7296fea05fedf5ca8f6b1a19","coin":195,"from":"TMaDtMFGJ8BBiNXchGBQmRBWi2mpfi2kdV","to":"TM1zzNDZD2DPASbKcgdVoTYhfmYgtfwx9D","fee":"0","date":1592755962,"block":0,"status":"completed","sequence":0,"type":"token_transfer","memo":"","metadata":{"name":"Tether USD","symbol":"USDT","token_id":"TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t","decimals":6,"value":"863399098","from":"TMaDtMFGJ8BBiNXchGBQmRBWi2mpfi2kdV","to":"TM1zzNDZD2DPASbKcgdVoTYhfmYgtfwx9D"}},{"id":"03574741eb0016050a19f181e4acc4b20b70f41e11e63140c9556c31eae09fba","coin":195,"from":"TM1zzNDZD2DPASbKcgdVoTYhfmYgtfwx9D","to":"TH7AaBSjS4NYuF3r8vXQcuwVXmGrv9iwYQ","fee":"0","date":1592755740,"block":0,"status":"completed","sequence":0,"type":"token_transfer","memo":"","metadata":{"name":"Tether USD","symbol":"USDT","token_id":"TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t","decimals":6,"value":"20000000","from":"TM1zzNDZD2DPASbKcgdVoTYhfmYgtfwx9D","to":"TH7AaBSjS4NYuF3r8vXQcuwVXmGrv9iwYQ"}},{"id":"f3aa00595996e31dbe9528a3cb21bff987f333bf1f675420ba4fa2ad43c8205f","coin":195,"from":"TM1zzNDZD2DPASbKcgdVoTYhfmYgtfwx9D","to":"TA1VFEzYiU8oB9P1xdhMaFJ7BZ6FvUTyug","fee":"0","date":1592755722,"block":0,"status":"completed","sequence":0,"type":"token_transfer","memo":"","metadata":{"name":"Tether USD","symbol":"USDT","token_id":"TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t","decimals":6,"value":"21161340000","from":"TM1zzNDZD2DPASbKcgdVoTYhfmYgtfwx9D","to":"TA1VFEzYiU8oB9P1xdhMaFJ7BZ6FvUTyug"}}]`
+	wantedTransactionsOnly      = `[{"id":"3fca53c08ccb48bb625439a58998713d8ecc3dc1348cc3cfab912e0815b62b1a","coin":195,"from":"TM1zzNDZD2DPASbKcgdVoTYhfmYgtfwx9R","to":"TVmkAmaQrY6raatYozLtcQCGqWP6VaPnHU","fee":"0","date":1592755098,"block":0,"status":"completed","sequence":0,"type":"transfer","memo":"","metadata":{"value":"13195916000","symbol":"TRX","decimals":6}},{"id":"b38fb6328e1fa622b7762eed856778551845c33723491e36baf357f00cc48002","coin":195,"from":"TM1zzNDZD2DPASbKcgdVoTYhfmYgtfwx9R","to":"TDfVk6U7i6m82ZCRprbrfz7QE3sTEnN1Xs","fee":"0","date":1592754717,"block":0,"status":"completed","sequence":0,"type":"transfer","memo":"","metadata":{"value":"8737000000","symbol":"TRX","decimals":6}},{"id":"82efc8456a3c38a0919af416a53363405ced78db7c13e1b94a79ebcea98f9909","coin":195,"from":"TVqx5Dx54HgBQFfpN7KN4MWiHEnRXbch7a","to":"TM1zzNDZD2DPASbKcgdVoTYhfmYgtfwx9R","fee":"0","date":1592754447,"block":0,"status":"completed","sequence":0,"type":"transfer","memo":"","metadata":{"value":"2538461","symbol":"TRX","decimals":6}},{"id":"a336bd174c127d38bf2325bc9c927059af099e8cfb91159750a1b1be16dd0bd4","coin":195,"from":"TYCwQ4bC1mHR6heAe1qgHrktFtyJ8mKkC3","to":"TM1zzNDZD2DPASbKcgdVoTYhfmYgtfwx9R","fee":"0","date":1592754444,"block":0,"status":"completed","sequence":0,"type":"transfer","memo":"","metadata":{"value":"30000000","symbol":"TRX","decimals":6}},{"id":"007bbcc3855f4bf51bd76e63d7776160c115c803e227f7c44c7d1fd1bd587611","coin":195,"from":"TSUCQKEKhXREEaod5WgSKETKjYUhL2TUV7","to":"TM1zzNDZD2DPASbKcgdVoTYhfmYgtfwx9R","fee":"0","date":1592754444,"block":0,"status":"completed","sequence":0,"type":"transfer","memo":"","metadata":{"value":"111337320","symbol":"TRX","decimals":6}},{"id":"9351e87b129142844f000a52911daf36fc95677dfe2846abcd28ea0d8fe2e2ea","coin":195,"from":"TFUP7BdBj61oyTHt52McZC5Q1w6CKzyNCN","to":"TM1zzNDZD2DPASbKcgdVoTYhfmYgtfwx9R","fee":"0","date":1592754444,"block":0,"status":"completed","sequence":0,"type":"transfer","memo":"","metadata":{"value":"200000000","symbol":"TRX","decimals":6}},{"id":"008ebda5749c38e26a69717faa66e6f4fd8a0d358c9b947192765cc9843cff5a","coin":195,"from":"TGkLtfPuPhkG4RzewwkgNHfPxTwb5YRq6b","to":"TM1zzNDZD2DPASbKcgdVoTYhfmYgtfwx9R","fee":"0","date":1592754444,"block":0,"status":"completed","sequence":0,"type":"transfer","memo":"","metadata":{"value":"511000000","symbol":"TRX","decimals":6}}]`
+)