def signed_contract_transaction(account: Account, contract: Contract, func_sig: str, args: List[Any], value: int = 0): web3 = contract.web3 tx_data = contract.get_function_by_signature(func_sig)( *args).buildTransaction({ 'from': account.address, 'nonce': web3.eth.getTransactionCount(account.address), 'gasPrice': web3.eth.gasPrice, 'value': value }) return account.signTransaction(tx_data)