package edu.princeton.bitcointwofactorauth.android;
import java.math.BigInteger;
import com.google.bitcoin.core.Sha256Hash;
import com.google.bitcoin.core.Transaction;
import com.google.bitcoin.core.Transaction.SigHash;
public class TransactionData {
private Transaction mTX;
private int mInputIndex;
private byte[] mConnectedPubKeyScript;
private SigHash mHashType;
private boolean mAnyoneCanPay;
public TransactionData(Transaction tx, int inputIndex, byte[] connectedPubKeyScript,
SigHash hashType, boolean anyoneCanPay) {
mTX = tx;
mInputIndex = inputIndex;
mConnectedPubKeyScript = connectedPubKeyScript;
mHashType = hashType;
mAnyoneCanPay = anyoneCanPay;
}
public boolean isTransaction() {
return mTX != null;
}
public BigInteger getValue() {
if (mTX != null) {
return mTX.getOutput(0).getValue();
} else {
return new BigInteger("0");
}
}
public String getToAddress() {
if (mTX != null) {
return mTX.getOutput(0).getScriptPubKey().getToAddress(mTX.getParams()).toString();
} else {
return "No one";
}
}
public String getFromAddress() {
if (mTX != null) {
return mTX.getInput(mInputIndex).getConnectedOutput().getScriptPubKey().getToAddress(mTX.getParams()).toString();
} else {
return "Me";
}
}
public Sha256Hash getSigningHash() {
if (mTX != null) {
return mTX.hashForSignature(mInputIndex, mConnectedPubKeyScript, mHashType, mAnyoneCanPay);
} else {
return null;
}
}
}