mirror of
https://github.com/Qortal/altcoinj.git
synced 2025-01-31 23:32:16 +00:00
WalletProtobufSerializer: throw IllegalArgumentException if tx cannot be connected.
This commit is contained in:
parent
9201cba0cc
commit
11b5ea11b8
@ -314,8 +314,8 @@ public class WalletProtobufSerializer {
|
|||||||
* Parses a wallet from the given stream. The stream is expected to contain a binary serialization of a
|
* Parses a wallet from the given stream. The stream is expected to contain a binary serialization of a
|
||||||
* {@link Protos.Wallet} object.<p>
|
* {@link Protos.Wallet} object.<p>
|
||||||
*
|
*
|
||||||
* If the stream is invalid or the serialized wallet contains unsupported features,
|
* @throws IOException if there is a problem reading the stream.
|
||||||
* {@link IllegalArgumentException} is thrown.
|
* @throws IllegalArgumentException if the wallet is corrupt.
|
||||||
*/
|
*/
|
||||||
public Wallet readWallet(InputStream input) throws IOException {
|
public Wallet readWallet(InputStream input) throws IOException {
|
||||||
// TODO: This method should throw more specific exception types than IllegalArgumentException.
|
// TODO: This method should throw more specific exception types than IllegalArgumentException.
|
||||||
@ -461,8 +461,11 @@ public class WalletProtobufSerializer {
|
|||||||
TransactionOutput output = tx.getOutputs().get(i);
|
TransactionOutput output = tx.getOutputs().get(i);
|
||||||
final Protos.TransactionOutput transactionOutput = txProto.getTransactionOutput(i);
|
final Protos.TransactionOutput transactionOutput = txProto.getTransactionOutput(i);
|
||||||
if (transactionOutput.hasSpentByTransactionHash()) {
|
if (transactionOutput.hasSpentByTransactionHash()) {
|
||||||
Transaction spendingTx = txMap.get(transactionOutput.getSpentByTransactionHash());
|
final ByteString spentByTransactionHash = transactionOutput.getSpentByTransactionHash();
|
||||||
checkNotNull(spendingTx);
|
Transaction spendingTx = txMap.get(spentByTransactionHash);
|
||||||
|
if (spendingTx == null)
|
||||||
|
throw new IllegalArgumentException(String.format("Could not connect %s to %s",
|
||||||
|
tx.getHashAsString(), byteStringToHash(spentByTransactionHash)));
|
||||||
final int spendingIndex = transactionOutput.getSpentByTransactionIndex();
|
final int spendingIndex = transactionOutput.getSpentByTransactionIndex();
|
||||||
TransactionInput input = checkNotNull(spendingTx.getInput(spendingIndex));
|
TransactionInput input = checkNotNull(spendingTx.getInput(spendingIndex));
|
||||||
input.connect(output);
|
input.connect(output);
|
||||||
|
Loading…
Reference in New Issue
Block a user