ContractApiImpl implements ContractApi<ContractT>, PreparedContractApi<ContractT> { @Override public String toString() { return String.format("ContractApiImpl(contractAddress=%s)", contractAddress); }  @Override PreparedContractApi<ContractT> with(final AergoClient aergoClient); @Override ContractT execution(final Signer signer); @Override ContractT query(); @Override String toString();  }
@Test public void testToString() throws InterruptedException { final ContractAddress contractAddress = new AergoKeyGenerator().create().getAddress() .adapt(ContractAddress.class); final TxRequester txRequester = new NonceRefreshingTxRequester(TryCountAndInterval.of(3, Time.of(1000L)), new SimpleNonceProvider()); final ContractInvocationHandler invocationHandler = new ContractInvocationHandler( contractAddress, txRequester); final ContractTest contractTest = (ContractTest) Proxy .newProxyInstance(getClass().getClassLoader(), new Class[]{ContractTest.class}, invocationHandler); final ContractApi<ContractTest> contractApi = new ContractApiImpl<>(contractAddress, contractTest, invocationHandler); assertTrue(contractApi.toString().contains(contractAddress.toString())); }