mirror of https://github.com/nucypher/nucypher.git
modifies ape -> nucypher registry adapter function to handle both local and dependency contract ABI entries.
parent
fe75f75998
commit
0e96f5c76c
|
@ -171,7 +171,12 @@ def deploy_contracts(
|
||||||
contract = getattr(nucypher_contracts, name)
|
contract = getattr(nucypher_contracts, name)
|
||||||
except AttributeError:
|
except AttributeError:
|
||||||
# this contract is local to this project
|
# this contract is local to this project
|
||||||
contract = getattr(project, name)
|
try:
|
||||||
|
contract = getattr(project, name)
|
||||||
|
except AttributeError:
|
||||||
|
raise ValueError(
|
||||||
|
f"Contract {name} not found in project or in dependencies."
|
||||||
|
)
|
||||||
deployed_contract = deployer_account.deploy(contract, *params.values())
|
deployed_contract = deployer_account.deploy(contract, *params.values())
|
||||||
deployments[name] = deployed_contract
|
deployments[name] = deployed_contract
|
||||||
return deployments
|
return deployments
|
||||||
|
@ -182,13 +187,21 @@ def registry_from_ape_deployments(
|
||||||
) -> InMemoryContractRegistry:
|
) -> InMemoryContractRegistry:
|
||||||
"""Creates a registry from ape deployments."""
|
"""Creates a registry from ape deployments."""
|
||||||
|
|
||||||
# Get the raw abi from the cached manifest
|
local_contracts = project.contracts
|
||||||
manifest = json.loads(nucypher_contracts.cached_manifest.json())
|
|
||||||
contract_data = manifest['contractTypes']
|
# Get the raw abi from the cached dependency manifest
|
||||||
|
dependency_manifest = json.loads(nucypher_contracts.cached_manifest.json())
|
||||||
|
combined_contract_data = dependency_manifest["contractTypes"]
|
||||||
|
|
||||||
|
# Add the local contract ABIs to the data
|
||||||
|
for contract_name, local_contract_data in local_contracts.items():
|
||||||
|
contract_manifest = json.loads(local_contract_data.json())
|
||||||
|
contract_abi = contract_manifest["abi"]
|
||||||
|
combined_contract_data[contract_name] = {"abi": contract_abi}
|
||||||
|
|
||||||
data = list()
|
data = list()
|
||||||
for contract_name, deployment in deployments.items():
|
for contract_name, deployment in deployments.items():
|
||||||
abi = contract_data[contract_name]['abi']
|
abi = combined_contract_data[contract_name]["abi"]
|
||||||
entry = [
|
entry = [
|
||||||
contract_name,
|
contract_name,
|
||||||
'v0.0.0', # TODO: get version from contract
|
'v0.0.0', # TODO: get version from contract
|
||||||
|
|
Loading…
Reference in New Issue