Open Ophiase opened 2 weeks ago
I'm going to replace every occurrences of i128 in the ABI with u128 and see what happens.
contract = Contract(address=DEPLOYED_CONTRACT, abi=abi, provider=account)
def replace_i128_with_u128(data):
if isinstance(data, dict):
return {key: replace_i128_with_u128(value) for key, value in data.items()}
elif isinstance(data, list):
return [replace_i128_with_u128(item) for item in data]
elif isinstance(data, str):
return data.replace('i128', 'u128')
else:
return data
abi_as_u128 = replace_i128_with_u128(abi)
contract = Contract(address=DEPLOYED_CONTRACT, abi=abi_as_u128, provider=accounts)
Result :
ValueError: Make sure valid ABI is used to create a Contract instance
Hi @Ophiase, replacing i128
with u128
in contract ABI may lead to potential issues. Could you please provide us with your contract address? This way we can help you and indicate source of the problem.
Feature Request
This type is properly defined in Cairo. I have a contract that use it, but its not recognized by starknet.py.