def get_constructor_arguments(contract: Contract, args: Optional[list] = None, kwargs: Optional[dict] = None): """Get constructor arguments for Etherscan verify. https://etherscanio.freshdesk.com/support/solutions/articles/16000053599-contract-verification-constructor-arguments """ # return contract._encode_constructor_data(args=args, kwargs=kwargs) constructor_abi = get_constructor_abi(contract.abi) if args is not None: return contract._encode_constructor_data(args=args, kwargs=kwargs) else: constructor_abi = get_constructor_abi(contract.abi) kwargs = kwargs or {} arguments = merge_args_and_kwargs(constructor_abi, [], kwargs) # deploy_data = add_0x_prefix( # contract._encode_abi(constructor_abi, arguments) #) # TODO: Looks like recent Web3.py ABI change deploy_data = encode_abi(contract.web3, constructor_abi, arguments) return deploy_data
def get_constructor_arguments(contract: Contract, args: Optional[list] = None, kwargs: Optional[dict] = None): """Get constructor arguments for Etherscan verify. https://etherscanio.freshdesk.com/support/solutions/articles/16000053599-contract-verification-constructor-arguments """ return contract._encode_constructor_data(args=args, kwargs=kwargs)