get_contract_decimals¶
async get_contract_decimals(contract_address: str) -> int
Retrieves the number of decimals for a given contract address.
Parameters:
contract_address (str): The address of the contract.
Returns:
int: The number of decimals for the contract.
Example usage:
contract_address = "TXLAQ63Xg1NAzckPwKHvzw7CSEmLMEqcdj"
decimals = await tron_client.get_contract_decimals(contract_address)
print(f"The contract {contract_address} has {decimals} decimals.")
Under the hood, this method works by encoding the decimals() function signature and hashing it using the keccak hash function. The first 8 characters of the hash result are used as the method ID. The method then makes an RPC call to the Ethereum node using the eth_call method, passing the contract address and the method ID as parameters. The result is returned as a hexadecimal string, which is converted to an integer representing the number of decimals for the contract. If the result is “0x”, the method returns 0 as the number of decimals.