package wallettemplate;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import network.thunder.core.communication.objects.messages.impl.results.NullResultCommand;
import network.thunder.core.communication.objects.subobjects.PaymentSecret;
import network.thunder.core.etc.Tools;
import org.bitcoinj.core.Wallet;
import org.spongycastle.crypto.params.KeyParameter;
import java.awt.*;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.UnsupportedFlavorException;
import java.io.IOException;
import java.nio.ByteBuffer;
public class SendMoneyController {
public Button sendBtn;
public Button cancelBtn;
public TextField address;
public Label titleLabel;
public TextField amountEdit;
public Label btcLabel;
public Main.OverlayUI overlayUI;
private Wallet.SendResult sendResult;
private KeyParameter aesKey;
long amount;
byte[] hash = new byte[20];
byte[] destination = new byte[33];
// Called by FXMLLoader
@FXML
public void initialize () {
try {
String data = (String) Toolkit.getDefaultToolkit()
.getSystemClipboard().getData(DataFlavor.stringFlavor);
address.setText(data);
} catch (UnsupportedFlavorException | IOException e) {
e.printStackTrace();
}
address.textProperty().addListener((observable, oldValue, newValue) -> {
update();
});
update();
}
private void update () {
try {
ByteBuffer byteBuffer = ByteBuffer.wrap(Tools.hexStringToByteArray(address.getText()));
amount = byteBuffer.getLong();
amountEdit.setText(String.valueOf(amount));
} catch (Exception e) {
e.printStackTrace();
}
}
public void cancel (ActionEvent event) {
overlayUI.done();
}
public void send (ActionEvent event) {
ByteBuffer byteBuffer = ByteBuffer.wrap(Tools.hexStringToByteArray(address.getText()));
amount = byteBuffer.getLong();
byteBuffer.get(hash);
byteBuffer.get(destination);
Main.thunderContext.makePayment(destination, amount, new PaymentSecret(null, hash), new NullResultCommand());
overlayUI.done();
}
}