### Question:
LndWallet extends AbstractLightningWallet { @Override public String sendCoins(String destinationAddress, BigDecimal amount, String cryptoCurrency, String description) { PaymentRequest paymentRequest = callChecked(cryptoCurrency, () -> api.decodePaymentRequest(destinationAddress)); log.info("Paying {} to invoice {}", amount, paymentRequest); if (paymentRequest.num_satoshis != null) { log.info("Invoices with amount not supported"); return null; } Payment payment = new Payment(); payment.amt = bitcoinToSat(amount).toString(); payment.payment_request = destinationAddress; SendPaymentResponse paymentResponse = callChecked(() -> api.sendPayment(payment)); if (paymentResponse == null) { log.warn("SendPayment failed"); return null; } if (paymentResponse.payment_error != null) { log.warn("SendPayment failed: {}", paymentResponse.payment_error); return null; } return paymentResponse.payment_hash; } LndWallet(String url, String macaroon, String certHexString); @Override String sendCoins(String destinationAddress, BigDecimal amount, String cryptoCurrency, String description); @Override String getInvoice(BigDecimal cryptoAmount, String cryptoCurrency, Long paymentValidityInSec, String description); @Override BigDecimal getCryptoBalance(String cryptoCurrency); @Override String getPubKey(); @Override BigDecimal getReceivedAmount(String destinationAddress, String cryptoCurrency); @Override List<? extends ILightningChannel> getChannels(); void setAliases(List<Channel> channels); @Override boolean canSend(String invoice, BigDecimal amount, String cryptoCurrency);  }### Answer:
@Ignore @Test public void sendCoins() { IWalletInformation i = w.getWalletInformation(); String paymentHash = w.sendCoins("LNBC1U1PWJMJJNPP5YRDV8EPPK74UZ69QVHK940EHE9469H8GHXE626MZGCLZ202REZKQDPY2PKXZ7FQVYSXWCTDV5SX7E3QWD3HYCT5VD5QCQZPGQNL8L0227LDNLEJA3HQWUFHF788ADMD640YKFZ8A9FAGYG4RQE7XGC4CXFMTVU8SAWPE3WVU8WNUHW52R6LSD4797RZ0DPMPTHH3K0CQ378HK2", new BigDecimal("0.000001"), CryptoCurrency.LBTC.getCode(), ""); System.out.println(paymentHash); }