fix no constructor

pull/14/head
yhtiyar 2021-11-09 12:37:50 +03:00
rodzic c4758f2eac
commit d8322c2a39
2 zmienionych plików z 18 dodań i 3 usunięć

Wyświetl plik

@ -23,7 +23,8 @@ for abi_item in CONTRACT_ABI:
CONTRACT_FUNCTIONS[abi_item["name"]] = abi_item
if abi_item["type"] == "constructor":
CONTRACT_FUNCTIONS["constructor"] = abi_item
if CONTRACT_FUNCTIONS["constructor"] is None:
CONTRACT_FUNCTIONS["constructor"] = {{"inputs" : []}}
def init_web3(ipc_path: str) -> Web3:
return Web3(web3.HTTPProvider(ipc_path))

Wyświetl plik

@ -96,7 +96,14 @@ def generate_contract_class(
]
),
)
contract_constructor = [c for c in abi if c["type"] == "constructor"][0]
contract_constructor = [c for c in abi if c["type"] == "constructor"]
if len(contract_constructor) == 1:
contract_constructor = contract_constructor[0]
elif len(contract_constructor) == 0:
contract_constructor = {"inputs": []}
else:
raise ValueError("Multiple constructors found in ABI")
contract_constructor["name"] = "constructor"
class_functions = (
[class_constructor]
@ -261,7 +268,14 @@ def generate_argument_parser_function(abi: List[Dict[str, Any]]) -> cst.Function
subparsers.extend(generate_function_subparser(function_abi, "description"))
# Deploy argparser:
contract_constructor = [item for item in abi if item["type"] == "constructor"][0]
contract_constructor = [item for item in abi if item["type"] == "constructor"]
if len(contract_constructor) == 1:
contract_constructor = contract_constructor[0]
elif len(contract_constructor) == 0:
contract_constructor = {"inputs": []}
else:
raise Exception("Multiple constructors found")
deploy_argument_parsers = []
default_arg_counter = 1
for arg in contract_constructor["inputs"]: