I failed to get DAI balance on the testnet. It works fine on the mainnet, but it doesn’t work on the testnet. Can anyone help?
from web3 import Web3
w3 = Web3(Web3.HTTPProvider("https://kovan.infura.io/v3/<my API>"))
dai_token_addr = "0x4f96fe3b7a6cf9725f59d353f723c1bdb64ca6aa"
acc_address = "0xDef1C0ded9bec7F1a1670819833240f027b25EfF"
simplified_abi = [
{
'inputs': [{'internalType': 'address', 'name': 'account', 'type': 'address'}],
'name': 'balanceOf',
'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}],
'stateMutability': 'view', 'type': 'function', 'constant': True
},
{
'inputs': [],
'name': 'decimals',
'outputs': [{'internalType': 'uint8', 'name': '', 'type': 'uint8'}],
'stateMutability': 'view', 'type': 'function', 'constant': True
},
{
'inputs': [],
'name': 'symbol',
'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}],
'stateMutability': 'view', 'type': 'function', 'constant': True
},
{
'inputs': [],
'name': 'totalSupply',
'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}],
'stateMutability': 'view', 'type': 'function', 'constant': True
}
]
dai_contract = w3.eth.contract(address=w3.toChecksumAddress(dai_token_addr), abi=simplified_abi)
decimals = dai_contract.functions.decimals().call()
addr_balance = dai_contract.functions.balanceOf(acc_address).call() / 10**decimals
print("Addr Balance:", addr_balance)
Output:
Addr Balance: 0.0