tokenBalance method Null safety

Future<EtherScanTokenBalanceModel> tokenBalance (
  1. {required String? address,
  2. required String? contractAddress,
  3. String? tokenName}
)

Returns the amount of Tokens a specific account owns.

address - Contract address

tokenName - Name of the token

contractAddress - Contract address

Example

    final data = await eth.tokenBalance(
      address: '0x4366ddc115d8cf213c564da36e64c8ebaa30cdbd',
      contractAddress: '0xe0b7927c4af23765cb51314a0e0521a9645f0e2a' // DGD contract address
      tokenname: '',
);

Implementation

Future<EtherScanTokenBalanceModel> tokenBalance({
  required String? address,
  required String? contractAddress,
  String? tokenName,
}) async {
  const module = 'account';
  const action = 'tokenbalance';
  const tag = 'latest';

  Map<String, dynamic>? query = {
    'module': module,
    'action': action,
    'apiKey': apiKey,
    'tag': tag,
  };

  if (contractAddress != null) {
    query.putIfAbsent('contractaddress', () => contractAddress);
  }

  if (tokenName != null) {
    query.putIfAbsent('tokenname', () => tokenName);
  }

  if (address != null) {
    query.putIfAbsent('address', () => address);
  }
  return (await get(query)).fold(
    (l) => EtherScanTokenBalanceModel.empty(),
    (r) => EtherScanTokenBalanceModel.fromJson(r),
  );
}