kopia lustrzana https://github.com/bugout-dev/moonstream
Update contracts building.
rodzic
8222a8852a
commit
a2c4d6ef4c
|
@ -511,15 +511,20 @@ def recursive_unpack(
|
||||||
def build_interfaces(
|
def build_interfaces(
|
||||||
contracts_ABIs: Dict[str, Any], contracts_methods: Dict[str, Any], web3_client: Web3
|
contracts_ABIs: Dict[str, Any], contracts_methods: Dict[str, Any], web3_client: Web3
|
||||||
) -> Dict[str, Any]:
|
) -> Dict[str, Any]:
|
||||||
"""Builds contract interfaces."""
|
"""Builds contract interfaces with deduplication of ABIs."""
|
||||||
interfaces = {}
|
interfaces = {}
|
||||||
for contract_address in contracts_ABIs:
|
for contract_address in contracts_ABIs:
|
||||||
abis = [
|
# Use a dictionary to deduplicate ABIs by function signature
|
||||||
contracts_ABIs[contract_address][method_hash]
|
unique_abis = {}
|
||||||
for method_hash in contracts_methods[contract_address]
|
for method_hash in contracts_methods[contract_address]:
|
||||||
]
|
abi = contracts_ABIs[contract_address][method_hash]
|
||||||
|
# Create a unique key based on name and input types
|
||||||
|
if abi["name"] not in unique_abis:
|
||||||
|
unique_abis[abi["name"]] = abi
|
||||||
|
|
||||||
interfaces[contract_address] = web3_client.eth.contract(
|
interfaces[contract_address] = web3_client.eth.contract(
|
||||||
address=web3_client.toChecksumAddress(contract_address), abi=abis
|
address=web3_client.toChecksumAddress(contract_address),
|
||||||
|
abi=list(unique_abis.values())
|
||||||
)
|
)
|
||||||
return interfaces
|
return interfaces
|
||||||
|
|
||||||
|
@ -651,7 +656,6 @@ def parse_jobs(
|
||||||
customer_id,
|
customer_id,
|
||||||
instance_id,
|
instance_id,
|
||||||
)
|
)
|
||||||
|
|
||||||
interfaces = build_interfaces(contracts_ABIs, contracts_methods, web3_client)
|
interfaces = build_interfaces(contracts_ABIs, contracts_methods, web3_client)
|
||||||
|
|
||||||
call_tree_levels = sorted(calls.keys(), reverse=True)[:-1]
|
call_tree_levels = sorted(calls.keys(), reverse=True)[:-1]
|
||||||
|
|
Ładowanie…
Reference in New Issue