class Transfer extends ManagedTransaction {

    public static RemoteCall<TransactionReceipt> sendFunds(
            Web3j web3j, Credentials credentials,
            String toAddress, BigDecimal value, Convert.Unit unit) throws InterruptedException,
            IOException, TransactionException {

        TransactionManager transactionManager = new RawTransactionManager(web3j, credentials);

        return new RemoteCall<>(() ->
                new Transfer(web3j, transactionManager).send(toAddress, value, unit));
    }

    public  Transfer(Web3j web3j, TransactionManager transactionManager);

}