SmartContract { public NeoInvokeFunction callInvokeFunction(String function, Signer... signers) throws IOException { return callInvokeFunction(function, new ArrayList<>(), signers); } SmartContract(ScriptHash scriptHash, Neow3j neow);  SmartContract(File nef, File manifestFile, Neow3j neow);  SmartContract(NefFile nefFile, ContractManifest manifest, Neow3j neow); TransactionBuilder invokeFunction(String function,
            ContractParameter... contractParameters); String callFuncReturningString(String function, ContractParameter... params); BigInteger callFuncReturningInt(String function, ContractParameter... params); NeoInvokeFunction callInvokeFunction(String function, Signer... signers); NeoInvokeFunction callInvokeFunction(String function, List<ContractParameter> params,
            Signer... signers); ScriptHash getScriptHash(); NefFile getNefFile(); ContractManifest getManifest(); TransactionBuilder deploy();  }
@Test public void invokingFunctionPerformsCorrectCall_WithoutParameters() throws IOException { setUpWireMockForCall("invokefunction", "invokefunction_name.json", NeoToken.SCRIPT_HASH.toString(), "name", "[\"721e1376b75fe93889023d47832c160fcc5d4a06\"]" ); Wallet w = Wallet.withAccounts(account1); NeoInvokeFunction i = new NeoToken(neow) .callInvokeFunction("name"); assertThat(i.getResult().getStack().get(0).asByteString().getAsString(), Matchers.is("NEO")); assertThat(i.getResult().getScript(), Matchers.is(SCRIPT_NEO_INVOKEFUNCTION_NAME)); }
@Test(expected = IllegalArgumentException.class) public void callInvokeFunctionWithoutParameters_missingFunction() throws IOException { new SmartContract(NEO_SCRIPT_HASH, neow).callInvokeFunction(""); }