mrtnetwork / On_chain

Streamline Ethereum, Solana and Tron operations. Effortlessly create transactions, interact with smart contracts, sign, and send transactions for a seamless blockchain experience.
BSD 3-Clause "New" or "Revised" License
18 stars 11 forks source link

Get balance for TRC20 and TRC10 token #5

Closed Imdavyking closed 2 months ago

Imdavyking commented 3 months ago

please how do i get balance for TRC20 and TRC10 tokens?

mrtnetwork commented 3 months ago

for TRC-20 its like ERC-20

  final tronRpc =
      TronProvider(TronHTTPProvider(url: "https://api.trongrid.io"));
  final solidityRpc = EVMRPC(RPCHttpService("https://api.trongrid.io/jsonrpc"));
  const bool tron = true;
  final trc20Fragmnet = {
    "inputs": [
      {"internalType": "address", "name": "account", "type": "address"}
    ],
    "name": "balanceOf",
    "outputs": [
      {"internalType": "uint256", "name": "", "type": "uint256"}
    ],
    "stateMutability": "view",
    "type": "function"
  };
  final function = AbiFunctionFragment.fromJson(trc20Fragmnet, tron);
  final usdcContractAddress = TronAddress("TEkxiTehnzSmSe2XqrBj4w32RUN966rdz8");
  final accountIwantToGetBalance = TronAddress("TTzCrfBRja3k3......");
  final call1 = await solidityRpc.request(RPCCall.fromMethod(
    contractAddress: usdcContractAddress.toAddress(false),
    function: function,
    params: [accountIwantToGetBalance],
  ));

for TRC-10 tokens data stored to account info

  final trc10 = await tronRpc
      .request(TronRequestGetAccount(address: TronAddress("TK9bNoWKRe......")));
  final trc10Tokens = trc10!.assetV2;
  for (final i in trc10Tokens) {
    final tokenId = i.key;
    final price = i.value;
  }