// Path: wallet_lib/src/main/java/de/uni_bonn/bit/wallet_protocol/IWalletProtocol.java
// public interface IWalletProtocol {
// 
//     public TransactionInfo fetchTransactionInfo();
// 
//     public SignatureParts[] getSignatureParts();
// 
//     public EphemeralPublicValueWithProof[] getEphemeralPublicValuesWithProof(EphemeralValueShare[] ephemeralValueShares);
// 
//     public boolean sendEncryptedSignatures(EncryptedSignatureWithProof[] encryptedSignatures);
// }


import ca.odell.glazedlists.BasicEventList;
import ca.odell.glazedlists.EventList;
import ca.odell.glazedlists.swing.GlazedListsSwing;
import org.bitcoinj.core.*;
import org.bitcoinj.params.RegTestParams;
import com.google.zxing.WriterException;
import com.intellij.uiDesigner.core.GridConstraints;
import com.intellij.uiDesigner.core.GridLayoutManager;
import com.intellij.uiDesigner.core.Spacer;
import de.uni_bonn.bit.wallet_protocol.IWalletProtocol;
import javax.swing.*;
import javax.swing.text.DefaultFormatterFactory;
import javax.swing.text.NumberFormatter;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.IOException;
import java.net.UnknownHostException;
import java.security.NoSuchAlgorithmException;
import java.security.spec.InvalidKeySpecException;
import java.text.DecimalFormat;
import java.util.List;
import org.apache.log4j.Logger;
            infoTextPane.setText("Something went wrong when creating the transaction:\n" + iae.getMessage());
        } catch (InsufficientMoneyException ime) {
            qrCodeLabel.setIcon(null);
            infoTextPane.setText("Insufficient funds to complete this transaction:\n" + ime.getMessage());
        } catch (UnknownHostException e1) {
            e1.printStackTrace();
        } catch (NoSuchAlgorithmException e1) {
            e1.printStackTrace();
        } catch (IOException e1) {
            e1.printStackTrace();
        } catch (InvalidKeySpecException e1) {
            e1.printStackTrace();
        }
    }

    {
// GUI initializer generated by IntelliJ IDEA GUI Designer
// >>> IMPORTANT!! <<<
// DO NOT EDIT OR ADD ANY CODE HERE!
        $$$setupUI$$$();
    }

    /**
     * Method generated by IntelliJ IDEA GUI Designer
     * >>> IMPORTANT!! <<<
     * DO NOT edit this method OR call it in your code!
     *
     * @noinspection ALL
     */
    private void $$$setupUI$$$() {
// Path: wallet_lib/src/main/java/de/uni_bonn/bit/wallet_protocol/IWalletProtocol.java
// public interface IWalletProtocol {
// 
//     public TransactionInfo fetchTransactionInfo();
// 
//     public SignatureParts[] getSignatureParts();
// 
//     public EphemeralPublicValueWithProof[] getEphemeralPublicValuesWithProof(EphemeralValueShare[] ephemeralValueShares);
// 
//     public boolean sendEncryptedSignatures(EncryptedSignatureWithProof[] encryptedSignatures);
// }


// Path: desktop_wallet/src/main/java/de/uni_bonn/bit/TransactionDialog.java
import ca.odell.glazedlists.BasicEventList;
import ca.odell.glazedlists.EventList;
import ca.odell.glazedlists.swing.GlazedListsSwing;
import org.bitcoinj.core.*;
import org.bitcoinj.params.RegTestParams;
import com.google.zxing.WriterException;
import com.intellij.uiDesigner.core.GridConstraints;
import com.intellij.uiDesigner.core.GridLayoutManager;
import com.intellij.uiDesigner.core.Spacer;
import de.uni_bonn.bit.wallet_protocol.IWalletProtocol;
import javax.swing.*;
import javax.swing.text.DefaultFormatterFactory;
import javax.swing.text.NumberFormatter;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.IOException;
import java.net.UnknownHostException;
import java.security.NoSuchAlgorithmException;
import java.security.spec.InvalidKeySpecException;
import java.text.DecimalFormat;
import java.util.List;
import org.apache.log4j.Logger;

            infoTextPane.setText("Something went wrong when creating the transaction:\n" + iae.getMessage());
        } catch (InsufficientMoneyException ime) {
            qrCodeLabel.setIcon(null);
            infoTextPane.setText("Insufficient funds to complete this transaction:\n" + ime.getMessage());
        } catch (UnknownHostException e1) {
            e1.printStackTrace();
        } catch (NoSuchAlgorithmException e1) {
            e1.printStackTrace();
        } catch (IOException e1) {
            e1.printStackTrace();
        } catch (InvalidKeySpecException e1) {
            e1.printStackTrace();
        }
    }

    {
// GUI initializer generated by IntelliJ IDEA GUI Designer
// >>> IMPORTANT!! <<<
// DO NOT EDIT OR ADD ANY CODE HERE!
        $$$setupUI$$$();
    }

    /**
     * Method generated by IntelliJ IDEA GUI Designer
     * >>> IMPORTANT!! <<<
     * DO NOT edit this method OR call it in your code!
     *
     * @noinspection ALL
     */
    private void $$$setupUI$$$() {
        contentPane = new JPanel();