Browse Source

Refactor: replace calls to GetTxid() with GetHash()

pull/4/head
Simon 8 years ago
parent
commit
805344dcf4
  1. 2
      src/bitcoin-tx.cpp
  2. 2
      src/bloom.cpp
  3. 2
      src/core_write.cpp
  4. 2
      src/init.cpp
  5. 40
      src/main.cpp
  6. 4
      src/merkleblock.cpp
  7. 6
      src/miner.cpp
  8. 2
      src/net.cpp
  9. 2
      src/policy/fees.cpp
  10. 2
      src/primitives/block.cpp
  11. 4
      src/qt/coincontroldialog.cpp
  12. 2
      src/qt/transactiondesc.cpp
  13. 2
      src/qt/transactionrecord.cpp
  14. 2
      src/rpcblockchain.cpp
  15. 2
      src/rpcmining.cpp
  16. 6
      src/rpcrawtransaction.cpp
  17. 4
      src/test/DoS_tests.cpp
  18. 6
      src/test/accounting_tests.cpp
  19. 2
      src/test/coins_tests.cpp
  20. 16
      src/test/mempool_tests.cpp
  21. 40
      src/test/miner_tests.cpp
  22. 4
      src/test/multisig_tests.cpp
  23. 2
      src/test/pmt_tests.cpp
  24. 6
      src/test/policyestimator_tests.cpp
  25. 14
      src/test/script_P2SH_tests.cpp
  26. 2
      src/test/script_tests.cpp
  27. 12
      src/test/transaction_tests.cpp
  28. 18
      src/txmempool.cpp
  29. 12
      src/wallet/rpcwallet.cpp
  30. 40
      src/wallet/wallet.cpp
  31. 6
      src/wallet/walletdb.cpp
  32. 2
      src/zcbenchmarks.cpp

2
src/bitcoin-tx.cpp

@ -498,7 +498,7 @@ static void OutputTxJSON(const CTransaction& tx)
static void OutputTxHash(const CTransaction& tx) static void OutputTxHash(const CTransaction& tx)
{ {
string strHexHash = tx.GetTxid().GetHex(); // the hex-encoded transaction hash (aka the transaction id) string strHexHash = tx.GetHash().GetHex(); // the hex-encoded transaction hash (aka the transaction id)
fprintf(stdout, "%s\n", strHexHash.c_str()); fprintf(stdout, "%s\n", strHexHash.c_str());
} }

2
src/bloom.cpp

@ -142,7 +142,7 @@ bool CBloomFilter::IsRelevantAndUpdate(const CTransaction& tx)
return true; return true;
if (isEmpty) if (isEmpty)
return false; return false;
const uint256& hash = tx.GetTxid(); const uint256& hash = tx.GetHash();
if (contains(hash)) if (contains(hash))
fFound = true; fFound = true;

2
src/core_write.cpp

@ -88,7 +88,7 @@ void ScriptPubKeyToUniv(const CScript& scriptPubKey,
void TxToUniv(const CTransaction& tx, const uint256& hashBlock, UniValue& entry) void TxToUniv(const CTransaction& tx, const uint256& hashBlock, UniValue& entry)
{ {
entry.pushKV("txid", tx.GetTxid().GetHex()); entry.pushKV("txid", tx.GetHash().GetHex());
entry.pushKV("version", tx.nVersion); entry.pushKV("version", tx.nVersion);
entry.pushKV("locktime", (int64_t)tx.nLockTime); entry.pushKV("locktime", (int64_t)tx.nLockTime);

2
src/init.cpp

@ -1384,7 +1384,7 @@ bool AppInit2(boost::thread_group& threadGroup, CScheduler& scheduler)
BOOST_FOREACH(const CWalletTx& wtxOld, vWtx) BOOST_FOREACH(const CWalletTx& wtxOld, vWtx)
{ {
uint256 hash = wtxOld.GetTxid(); uint256 hash = wtxOld.GetHash();
std::map<uint256, CWalletTx>::iterator mi = pwalletMain->mapWallet.find(hash); std::map<uint256, CWalletTx>::iterator mi = pwalletMain->mapWallet.find(hash);
if (mi != pwalletMain->mapWallet.end()) if (mi != pwalletMain->mapWallet.end())
{ {

40
src/main.cpp

@ -553,7 +553,7 @@ CBlockTreeDB *pblocktree = NULL;
bool AddOrphanTx(const CTransaction& tx, NodeId peer) bool AddOrphanTx(const CTransaction& tx, NodeId peer)
{ {
uint256 hash = tx.GetTxid(); uint256 hash = tx.GetHash();
if (mapOrphanTransactions.count(hash)) if (mapOrphanTransactions.count(hash))
return false; return false;
@ -607,7 +607,7 @@ void EraseOrphansFor(NodeId peer)
map<uint256, COrphanTx>::iterator maybeErase = iter++; // increment to avoid iterator becoming invalid map<uint256, COrphanTx>::iterator maybeErase = iter++; // increment to avoid iterator becoming invalid
if (maybeErase->second.fromPeer == peer) if (maybeErase->second.fromPeer == peer)
{ {
EraseOrphanTx(maybeErase->second.tx.GetTxid()); EraseOrphanTx(maybeErase->second.tx.GetHash());
++nErased; ++nErased;
} }
} }
@ -1018,7 +1018,7 @@ CAmount GetMinRelayFee(const CTransaction& tx, unsigned int nBytes, bool fAllowF
{ {
{ {
LOCK(mempool.cs); LOCK(mempool.cs);
uint256 hash = tx.GetTxid(); uint256 hash = tx.GetHash();
double dPriorityDelta = 0; double dPriorityDelta = 0;
CAmount nFeeDelta = 0; CAmount nFeeDelta = 0;
mempool.ApplyDeltas(hash, dPriorityDelta, nFeeDelta); mempool.ApplyDeltas(hash, dPriorityDelta, nFeeDelta);
@ -1073,7 +1073,7 @@ bool AcceptToMemoryPool(CTxMemPool& pool, CValidationState &state, const CTransa
return state.DoS(0, false, REJECT_NONSTANDARD, "non-final"); return state.DoS(0, false, REJECT_NONSTANDARD, "non-final");
// is it already in the memory pool? // is it already in the memory pool?
uint256 hash = tx.GetTxid(); uint256 hash = tx.GetHash();
if (pool.exists(hash)) if (pool.exists(hash))
return false; return false;
@ -1265,7 +1265,7 @@ bool GetTransaction(const uint256 &hash, CTransaction &txOut, uint256 &hashBlock
return error("%s: Deserialize or I/O error - %s", __func__, e.what()); return error("%s: Deserialize or I/O error - %s", __func__, e.what());
} }
hashBlock = header.GetHash(); hashBlock = header.GetHash();
if (txOut.GetTxid() != hash) if (txOut.GetHash() != hash)
return error("%s: txid mismatch", __func__); return error("%s: txid mismatch", __func__);
return true; return true;
} }
@ -1287,7 +1287,7 @@ bool GetTransaction(const uint256 &hash, CTransaction &txOut, uint256 &hashBlock
CBlock block; CBlock block;
if (ReadBlockFromDisk(block, pindexSlow)) { if (ReadBlockFromDisk(block, pindexSlow)) {
BOOST_FOREACH(const CTransaction &tx, block.vtx) { BOOST_FOREACH(const CTransaction &tx, block.vtx) {
if (tx.GetTxid() == hash) { if (tx.GetHash() == hash) {
txOut = tx; txOut = tx;
hashBlock = pindexSlow->GetBlockHash(); hashBlock = pindexSlow->GetBlockHash();
return true; return true;
@ -1578,7 +1578,7 @@ void UpdateCoins(const CTransaction& tx, CValidationState &state, CCoinsViewCach
} }
// add outputs // add outputs
inputs.ModifyCoins(tx.GetTxid())->FromTx(tx, nHeight); inputs.ModifyCoins(tx.GetHash())->FromTx(tx, nHeight);
} }
void UpdateCoins(const CTransaction& tx, CValidationState &state, CCoinsViewCache &inputs, int nHeight) void UpdateCoins(const CTransaction& tx, CValidationState &state, CCoinsViewCache &inputs, int nHeight)
@ -1590,7 +1590,7 @@ void UpdateCoins(const CTransaction& tx, CValidationState &state, CCoinsViewCach
bool CScriptCheck::operator()() { bool CScriptCheck::operator()() {
const CScript &scriptSig = ptxTo->vin[nIn].scriptSig; const CScript &scriptSig = ptxTo->vin[nIn].scriptSig;
if (!VerifyScript(scriptSig, scriptPubKey, nFlags, CachingTransactionSignatureChecker(ptxTo, nIn, cacheStore), &error)) { if (!VerifyScript(scriptSig, scriptPubKey, nFlags, CachingTransactionSignatureChecker(ptxTo, nIn, cacheStore), &error)) {
return ::error("CScriptCheck(): %s:%d VerifySignature failed: %s", ptxTo->GetTxid().ToString(), nIn, ScriptErrorString(error)); return ::error("CScriptCheck(): %s:%d VerifySignature failed: %s", ptxTo->GetHash().ToString(), nIn, ScriptErrorString(error));
} }
return true; return true;
} }
@ -1605,11 +1605,11 @@ bool NonContextualCheckInputs(const CTransaction& tx, CValidationState &state, c
// This doesn't trigger the DoS code on purpose; if it did, it would make it easier // This doesn't trigger the DoS code on purpose; if it did, it would make it easier
// for an attacker to attempt to split the network. // for an attacker to attempt to split the network.
if (!inputs.HaveInputs(tx)) if (!inputs.HaveInputs(tx))
return state.Invalid(error("CheckInputs(): %s inputs unavailable", tx.GetTxid().ToString())); return state.Invalid(error("CheckInputs(): %s inputs unavailable", tx.GetHash().ToString()));
// are the JoinSplit's requirements met? // are the JoinSplit's requirements met?
if (!inputs.HaveJoinSplitRequirements(tx)) if (!inputs.HaveJoinSplitRequirements(tx))
return state.Invalid(error("CheckInputs(): %s JoinSplit requirements not met", tx.GetTxid().ToString())); return state.Invalid(error("CheckInputs(): %s JoinSplit requirements not met", tx.GetHash().ToString()));
CAmount nValueIn = 0; CAmount nValueIn = 0;
CAmount nFees = 0; CAmount nFees = 0;
@ -1646,13 +1646,13 @@ bool NonContextualCheckInputs(const CTransaction& tx, CValidationState &state, c
if (nValueIn < tx.GetValueOut()) if (nValueIn < tx.GetValueOut())
return state.DoS(100, error("CheckInputs(): %s value in (%s) < value out (%s)", return state.DoS(100, error("CheckInputs(): %s value in (%s) < value out (%s)",
tx.GetTxid().ToString(), FormatMoney(nValueIn), FormatMoney(tx.GetValueOut())), tx.GetHash().ToString(), FormatMoney(nValueIn), FormatMoney(tx.GetValueOut())),
REJECT_INVALID, "bad-txns-in-belowout"); REJECT_INVALID, "bad-txns-in-belowout");
// Tally transaction fees // Tally transaction fees
CAmount nTxFee = nValueIn - tx.GetValueOut(); CAmount nTxFee = nValueIn - tx.GetValueOut();
if (nTxFee < 0) if (nTxFee < 0)
return state.DoS(100, error("CheckInputs(): %s nTxFee < 0", tx.GetTxid().ToString()), return state.DoS(100, error("CheckInputs(): %s nTxFee < 0", tx.GetHash().ToString()),
REJECT_INVALID, "bad-txns-fee-negative"); REJECT_INVALID, "bad-txns-fee-negative");
nFees += nTxFee; nFees += nTxFee;
if (!MoneyRange(nFees)) if (!MoneyRange(nFees))
@ -1871,7 +1871,7 @@ bool DisconnectBlock(CBlock& block, CValidationState& state, CBlockIndex* pindex
// undo transactions in reverse order // undo transactions in reverse order
for (int i = block.vtx.size() - 1; i >= 0; i--) { for (int i = block.vtx.size() - 1; i >= 0; i--) {
const CTransaction &tx = block.vtx[i]; const CTransaction &tx = block.vtx[i];
uint256 hash = tx.GetTxid(); uint256 hash = tx.GetHash();
// Check that all outputs are available and match the outputs in the block itself // Check that all outputs are available and match the outputs in the block itself
// exactly. // exactly.
@ -2052,7 +2052,7 @@ bool ConnectBlock(const CBlock& block, CValidationState& state, CBlockIndex* pin
// Do not allow blocks that contain transactions which 'overwrite' older transactions, // Do not allow blocks that contain transactions which 'overwrite' older transactions,
// unless those are already completely spent. // unless those are already completely spent.
BOOST_FOREACH(const CTransaction& tx, block.vtx) { BOOST_FOREACH(const CTransaction& tx, block.vtx) {
const CCoins* coins = view.AccessCoins(tx.GetTxid()); const CCoins* coins = view.AccessCoins(tx.GetHash());
if (coins && !coins->IsPruned()) if (coins && !coins->IsPruned())
return state.DoS(100, error("ConnectBlock(): tried to overwrite transaction"), return state.DoS(100, error("ConnectBlock(): tried to overwrite transaction"),
REJECT_INVALID, "bad-txns-BIP30"); REJECT_INVALID, "bad-txns-BIP30");
@ -2150,7 +2150,7 @@ bool ConnectBlock(const CBlock& block, CValidationState& state, CBlockIndex* pin
} }
} }
vPos.push_back(std::make_pair(tx.GetTxid(), pos)); vPos.push_back(std::make_pair(tx.GetHash(), pos));
pos.nTxOffset += ::GetSerializeSize(tx, SER_DISK, CLIENT_VERSION); pos.nTxOffset += ::GetSerializeSize(tx, SER_DISK, CLIENT_VERSION);
} }
@ -2207,7 +2207,7 @@ bool ConnectBlock(const CBlock& block, CValidationState& state, CBlockIndex* pin
// Watch for changes to the previous coinbase transaction. // Watch for changes to the previous coinbase transaction.
static uint256 hashPrevBestCoinBase; static uint256 hashPrevBestCoinBase;
GetMainSignals().UpdatedTransaction(hashPrevBestCoinBase); GetMainSignals().UpdatedTransaction(hashPrevBestCoinBase);
hashPrevBestCoinBase = block.vtx[0].GetTxid(); hashPrevBestCoinBase = block.vtx[0].GetHash();
int64_t nTime4 = GetTimeMicros(); nTimeCallbacks += nTime4 - nTime3; int64_t nTime4 = GetTimeMicros(); nTimeCallbacks += nTime4 - nTime3;
LogPrint("bench", " - Callbacks: %.2fms [%.2fs]\n", 0.001 * (nTime4 - nTime3), nTimeCallbacks * 0.000001); LogPrint("bench", " - Callbacks: %.2fms [%.2fs]\n", 0.001 * (nTime4 - nTime3), nTimeCallbacks * 0.000001);
@ -4649,7 +4649,7 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv,
CTransaction tx; CTransaction tx;
vRecv >> tx; vRecv >> tx;
CInv inv(MSG_TX, tx.GetTxid()); CInv inv(MSG_TX, tx.GetHash());
pfrom->AddInventoryKnown(inv); pfrom->AddInventoryKnown(inv);
LOCK(cs_main); LOCK(cs_main);
@ -4671,7 +4671,7 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv,
LogPrint("mempool", "AcceptToMemoryPool: peer=%d %s: accepted %s (poolsz %u)\n", LogPrint("mempool", "AcceptToMemoryPool: peer=%d %s: accepted %s (poolsz %u)\n",
pfrom->id, pfrom->cleanSubVer, pfrom->id, pfrom->cleanSubVer,
tx.GetTxid().ToString(), tx.GetHash().ToString(),
mempool.mapTx.size()); mempool.mapTx.size());
// Recursively process any orphan transactions that depended on this one // Recursively process any orphan transactions that depended on this one
@ -4740,7 +4740,7 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv,
LogPrint("mempool", "mapOrphan overflow, removed %u tx\n", nEvicted); LogPrint("mempool", "mapOrphan overflow, removed %u tx\n", nEvicted);
} else { } else {
assert(recentRejects); assert(recentRejects);
recentRejects->insert(tx.GetTxid()); recentRejects->insert(tx.GetHash());
if (pfrom->fWhitelisted) { if (pfrom->fWhitelisted) {
// Always relay transactions received from whitelisted peers, even // Always relay transactions received from whitelisted peers, even
@ -4756,7 +4756,7 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv,
int nDoS = 0; int nDoS = 0;
if (state.IsInvalid(nDoS)) if (state.IsInvalid(nDoS))
{ {
LogPrint("mempool", "%s from peer=%d %s was not accepted into the memory pool: %s\n", tx.GetTxid().ToString(), LogPrint("mempool", "%s from peer=%d %s was not accepted into the memory pool: %s\n", tx.GetHash().ToString(),
pfrom->id, pfrom->cleanSubVer, pfrom->id, pfrom->cleanSubVer,
state.GetRejectReason()); state.GetRejectReason());
pfrom->PushMessage("reject", strCommand, state.GetRejectCode(), pfrom->PushMessage("reject", strCommand, state.GetRejectCode(),

4
src/merkleblock.cpp

@ -23,7 +23,7 @@ CMerkleBlock::CMerkleBlock(const CBlock& block, CBloomFilter& filter)
for (unsigned int i = 0; i < block.vtx.size(); i++) for (unsigned int i = 0; i < block.vtx.size(); i++)
{ {
const uint256& hash = block.vtx[i].GetTxid(); const uint256& hash = block.vtx[i].GetHash();
if (filter.IsRelevantAndUpdate(block.vtx[i])) if (filter.IsRelevantAndUpdate(block.vtx[i]))
{ {
vMatch.push_back(true); vMatch.push_back(true);
@ -49,7 +49,7 @@ CMerkleBlock::CMerkleBlock(const CBlock& block, const std::set<uint256>& txids)
for (unsigned int i = 0; i < block.vtx.size(); i++) for (unsigned int i = 0; i < block.vtx.size(); i++)
{ {
const uint256& hash = block.vtx[i].GetTxid(); const uint256& hash = block.vtx[i].GetHash();
if (txids.count(hash)) if (txids.count(hash))
vMatch.push_back(true); vMatch.push_back(true);
else else

6
src/miner.cpp

@ -211,7 +211,7 @@ CBlockTemplate* CreateNewBlock(const CScript& scriptPubKeyIn)
unsigned int nTxSize = ::GetSerializeSize(tx, SER_NETWORK, PROTOCOL_VERSION); unsigned int nTxSize = ::GetSerializeSize(tx, SER_NETWORK, PROTOCOL_VERSION);
dPriority = tx.ComputePriority(dPriority, nTxSize); dPriority = tx.ComputePriority(dPriority, nTxSize);
uint256 hash = tx.GetTxid(); uint256 hash = tx.GetHash();
mempool.ApplyDeltas(hash, dPriority, nTotalIn); mempool.ApplyDeltas(hash, dPriority, nTotalIn);
CFeeRate feeRate(nTotalIn-tx.GetValueOut(), nTxSize); CFeeRate feeRate(nTotalIn-tx.GetValueOut(), nTxSize);
@ -255,7 +255,7 @@ CBlockTemplate* CreateNewBlock(const CScript& scriptPubKeyIn)
continue; continue;
// Skip free transactions if we're past the minimum block size: // Skip free transactions if we're past the minimum block size:
const uint256& hash = tx.GetTxid(); const uint256& hash = tx.GetHash();
double dPriorityDelta = 0; double dPriorityDelta = 0;
CAmount nFeeDelta = 0; CAmount nFeeDelta = 0;
mempool.ApplyDeltas(hash, dPriorityDelta, nFeeDelta); mempool.ApplyDeltas(hash, dPriorityDelta, nFeeDelta);
@ -302,7 +302,7 @@ CBlockTemplate* CreateNewBlock(const CScript& scriptPubKeyIn)
if (fPrintPriority) if (fPrintPriority)
{ {
LogPrintf("priority %.1f fee %s txid %s\n", LogPrintf("priority %.1f fee %s txid %s\n",
dPriority, feeRate.ToString(), tx.GetTxid().ToString()); dPriority, feeRate.ToString(), tx.GetHash().ToString());
} }
// Add transactions that depend on this one to the priority queue // Add transactions that depend on this one to the priority queue

2
src/net.cpp

@ -1918,7 +1918,7 @@ void RelayTransaction(const CTransaction& tx)
void RelayTransaction(const CTransaction& tx, const CDataStream& ss) void RelayTransaction(const CTransaction& tx, const CDataStream& ss)
{ {
CInv inv(MSG_TX, tx.GetTxid()); CInv inv(MSG_TX, tx.GetHash());
{ {
LOCK(cs_mapRelay); LOCK(cs_mapRelay);
// Expire old relay messages // Expire old relay messages

2
src/policy/fees.cpp

@ -344,7 +344,7 @@ bool CBlockPolicyEstimator::isPriDataPoint(const CFeeRate &fee, double pri)
void CBlockPolicyEstimator::processTransaction(const CTxMemPoolEntry& entry, bool fCurrentEstimate) void CBlockPolicyEstimator::processTransaction(const CTxMemPoolEntry& entry, bool fCurrentEstimate)
{ {
unsigned int txHeight = entry.GetHeight(); unsigned int txHeight = entry.GetHeight();
uint256 hash = entry.GetTx().GetTxid(); uint256 hash = entry.GetTx().GetHash();
if (mapMemPoolTxs[hash].stats != NULL) { if (mapMemPoolTxs[hash].stats != NULL) {
LogPrint("estimatefee", "Blockpolicy error mempool tx %s already being tracked\n", LogPrint("estimatefee", "Blockpolicy error mempool tx %s already being tracked\n",
hash.ToString().c_str()); hash.ToString().c_str());

2
src/primitives/block.cpp

@ -55,7 +55,7 @@ uint256 CBlock::BuildMerkleTree(bool* fMutated) const
vMerkleTree.clear(); vMerkleTree.clear();
vMerkleTree.reserve(vtx.size() * 2 + 16); // Safe upper bound for the number of total nodes. vMerkleTree.reserve(vtx.size() * 2 + 16); // Safe upper bound for the number of total nodes.
for (std::vector<CTransaction>::const_iterator it(vtx.begin()); it != vtx.end(); ++it) for (std::vector<CTransaction>::const_iterator it(vtx.begin()); it != vtx.end(); ++it)
vMerkleTree.push_back(it->GetTxid()); vMerkleTree.push_back(it->GetHash());
int j = 0; int j = 0;
bool mutated = false; bool mutated = false;
for (int nSize = vtx.size(); nSize > 1; nSize = (nSize + 1) / 2) for (int nSize = vtx.size(); nSize > 1; nSize = (nSize + 1) / 2)

4
src/qt/coincontroldialog.cpp

@ -496,7 +496,7 @@ void CoinControlDialog::updateLabels(WalletModel *model, QDialog* dialog)
{ {
// unselect already spent, very unlikely scenario, this could happen // unselect already spent, very unlikely scenario, this could happen
// when selected are spent elsewhere, like rpc or another computer // when selected are spent elsewhere, like rpc or another computer
uint256 txhash = out.tx->GetTxid(); uint256 txhash = out.tx->GetHash();
COutPoint outpt(txhash, out.i); COutPoint outpt(txhash, out.i);
if (model->isSpent(outpt)) if (model->isSpent(outpt))
{ {
@ -782,7 +782,7 @@ void CoinControlDialog::updateView()
nInputSum += nInputSize; nInputSum += nInputSize;
// transaction hash // transaction hash
uint256 txhash = out.tx->GetTxid(); uint256 txhash = out.tx->GetHash();
itemOutput->setText(COLUMN_TXHASH, QString::fromStdString(txhash.GetHex())); itemOutput->setText(COLUMN_TXHASH, QString::fromStdString(txhash.GetHex()));
// vout index // vout index

2
src/qt/transactiondesc.cpp

@ -240,7 +240,7 @@ QString TransactionDesc::toHTML(CWallet *wallet, CWalletTx &wtx, TransactionReco
if (wtx.mapValue.count("comment") && !wtx.mapValue["comment"].empty()) if (wtx.mapValue.count("comment") && !wtx.mapValue["comment"].empty())
strHTML += "<br><b>" + tr("Comment") + ":</b><br>" + GUIUtil::HtmlEscape(wtx.mapValue["comment"], true) + "<br>"; strHTML += "<br><b>" + tr("Comment") + ":</b><br>" + GUIUtil::HtmlEscape(wtx.mapValue["comment"], true) + "<br>";
strHTML += "<b>" + tr("Transaction ID") + ":</b> " + TransactionRecord::formatSubTxId(wtx.GetTxid(), rec->idx) + "<br>"; strHTML += "<b>" + tr("Transaction ID") + ":</b> " + TransactionRecord::formatSubTxId(wtx.GetHash(), rec->idx) + "<br>";
// Message from normal bitcoin:URI (bitcoin:123...?message=example) // Message from normal bitcoin:URI (bitcoin:123...?message=example)
Q_FOREACH (const PAIRTYPE(string, string)& r, wtx.vOrderForm) Q_FOREACH (const PAIRTYPE(string, string)& r, wtx.vOrderForm)

2
src/qt/transactionrecord.cpp

@ -39,7 +39,7 @@ QList<TransactionRecord> TransactionRecord::decomposeTransaction(const CWallet *
CAmount nCredit = wtx.GetCredit(ISMINE_ALL); CAmount nCredit = wtx.GetCredit(ISMINE_ALL);
CAmount nDebit = wtx.GetDebit(ISMINE_ALL); CAmount nDebit = wtx.GetDebit(ISMINE_ALL);
CAmount nNet = nCredit - nDebit; CAmount nNet = nCredit - nDebit;
uint256 hash = wtx.GetTxid(); uint256 hash = wtx.GetHash();
std::map<std::string, std::string> mapValue = wtx.mapValue; std::map<std::string, std::string> mapValue = wtx.mapValue;
if (nNet > 0 || wtx.IsCoinBase()) if (nNet > 0 || wtx.IsCoinBase())

2
src/rpcblockchain.cpp

@ -105,7 +105,7 @@ Object blockToJSON(const CBlock& block, const CBlockIndex* blockindex, bool txDe
txs.push_back(objTx); txs.push_back(objTx);
} }
else else
txs.push_back(tx.GetTxid().GetHex()); txs.push_back(tx.GetHash().GetHex());
} }
result.push_back(Pair("tx", txs)); result.push_back(Pair("tx", txs));
result.push_back(Pair("time", block.GetBlockTime())); result.push_back(Pair("time", block.GetBlockTime()));

2
src/rpcmining.cpp

@ -561,7 +561,7 @@ Value getblocktemplate(const Array& params, bool fHelp)
int i = 0; int i = 0;
BOOST_FOREACH (CTransaction& tx, pblock->vtx) BOOST_FOREACH (CTransaction& tx, pblock->vtx)
{ {
uint256 txHash = tx.GetTxid(); uint256 txHash = tx.GetHash();
setTxIndex[txHash] = i++; setTxIndex[txHash] = i++;
if (tx.IsCoinBase()) if (tx.IsCoinBase())

6
src/rpcrawtransaction.cpp

@ -57,7 +57,7 @@ void ScriptPubKeyToJSON(const CScript& scriptPubKey, Object& out, bool fIncludeH
void TxToJSON(const CTransaction& tx, const uint256 hashBlock, Object& entry) void TxToJSON(const CTransaction& tx, const uint256 hashBlock, Object& entry)
{ {
entry.push_back(Pair("txid", tx.GetTxid().GetHex())); entry.push_back(Pair("txid", tx.GetHash().GetHex()));
entry.push_back(Pair("version", tx.nVersion)); entry.push_back(Pair("version", tx.nVersion));
entry.push_back(Pair("locktime", (int64_t)tx.nLockTime)); entry.push_back(Pair("locktime", (int64_t)tx.nLockTime));
Array vin; Array vin;
@ -303,7 +303,7 @@ Value gettxoutproof(const Array& params, bool fHelp)
unsigned int ntxFound = 0; unsigned int ntxFound = 0;
BOOST_FOREACH(const CTransaction&tx, block.vtx) BOOST_FOREACH(const CTransaction&tx, block.vtx)
if (setTxids.count(tx.GetTxid())) if (setTxids.count(tx.GetHash()))
ntxFound++; ntxFound++;
if (ntxFound != setTxids.size()) if (ntxFound != setTxids.size())
throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "(Not all) transactions not found in specified block"); throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "(Not all) transactions not found in specified block");
@ -814,7 +814,7 @@ Value sendrawtransaction(const Array& params, bool fHelp)
CTransaction tx; CTransaction tx;
if (!DecodeHexTx(tx, params[0].get_str())) if (!DecodeHexTx(tx, params[0].get_str()))
throw JSONRPCError(RPC_DESERIALIZATION_ERROR, "TX decode failed"); throw JSONRPCError(RPC_DESERIALIZATION_ERROR, "TX decode failed");
uint256 hashTx = tx.GetTxid(); uint256 hashTx = tx.GetHash();
bool fOverrideFees = false; bool fOverrideFees = false;
if (params.size() > 1) if (params.size() > 1)

4
src/test/DoS_tests.cpp

@ -147,7 +147,7 @@ BOOST_AUTO_TEST_CASE(DoS_mapOrphans)
CMutableTransaction tx; CMutableTransaction tx;
tx.vin.resize(1); tx.vin.resize(1);
tx.vin[0].prevout.n = 0; tx.vin[0].prevout.n = 0;
tx.vin[0].prevout.hash = txPrev.GetTxid(); tx.vin[0].prevout.hash = txPrev.GetHash();
tx.vout.resize(1); tx.vout.resize(1);
tx.vout[0].nValue = 1*CENT; tx.vout[0].nValue = 1*CENT;
tx.vout[0].scriptPubKey = GetScriptForDestination(key.GetPubKey().GetID()); tx.vout[0].scriptPubKey = GetScriptForDestination(key.GetPubKey().GetID());
@ -169,7 +169,7 @@ BOOST_AUTO_TEST_CASE(DoS_mapOrphans)
for (unsigned int j = 0; j < tx.vin.size(); j++) for (unsigned int j = 0; j < tx.vin.size(); j++)
{ {
tx.vin[j].prevout.n = j; tx.vin[j].prevout.n = j;
tx.vin[j].prevout.hash = txPrev.GetTxid(); tx.vin[j].prevout.hash = txPrev.GetHash();
} }
SignSignature(keystore, txPrev, tx, 0); SignSignature(keystore, txPrev, tx, 0);
// Re-use same signature for other inputs // Re-use same signature for other inputs

6
src/test/accounting_tests.cpp

@ -49,7 +49,7 @@ BOOST_AUTO_TEST_CASE(acc_orderupgrade)
wtx.mapValue["comment"] = "z"; wtx.mapValue["comment"] = "z";
pwalletMain->AddToWallet(wtx, false, &walletdb); pwalletMain->AddToWallet(wtx, false, &walletdb);
vpwtx.push_back(&pwalletMain->mapWallet[wtx.GetTxid()]); vpwtx.push_back(&pwalletMain->mapWallet[wtx.GetHash()]);
vpwtx[0]->nTimeReceived = (unsigned int)1333333335; vpwtx[0]->nTimeReceived = (unsigned int)1333333335;
vpwtx[0]->nOrderPos = -1; vpwtx[0]->nOrderPos = -1;
@ -91,7 +91,7 @@ BOOST_AUTO_TEST_CASE(acc_orderupgrade)
*static_cast<CTransaction*>(&wtx) = CTransaction(tx); *static_cast<CTransaction*>(&wtx) = CTransaction(tx);
} }
pwalletMain->AddToWallet(wtx, false, &walletdb); pwalletMain->AddToWallet(wtx, false, &walletdb);
vpwtx.push_back(&pwalletMain->mapWallet[wtx.GetTxid()]); vpwtx.push_back(&pwalletMain->mapWallet[wtx.GetHash()]);
vpwtx[1]->nTimeReceived = (unsigned int)1333333336; vpwtx[1]->nTimeReceived = (unsigned int)1333333336;
wtx.mapValue["comment"] = "x"; wtx.mapValue["comment"] = "x";
@ -101,7 +101,7 @@ BOOST_AUTO_TEST_CASE(acc_orderupgrade)
*static_cast<CTransaction*>(&wtx) = CTransaction(tx); *static_cast<CTransaction*>(&wtx) = CTransaction(tx);
} }
pwalletMain->AddToWallet(wtx, false, &walletdb); pwalletMain->AddToWallet(wtx, false, &walletdb);
vpwtx.push_back(&pwalletMain->mapWallet[wtx.GetTxid()]); vpwtx.push_back(&pwalletMain->mapWallet[wtx.GetHash()]);
vpwtx[2]->nTimeReceived = (unsigned int)1333333329; vpwtx[2]->nTimeReceived = (unsigned int)1333333329;
vpwtx[2]->nOrderPos = -1; vpwtx[2]->nOrderPos = -1;

2
src/test/coins_tests.cpp

@ -504,7 +504,7 @@ BOOST_AUTO_TEST_CASE(coins_coinbase_spends)
// Create coinbase spend // Create coinbase spend
CMutableTransaction mtx2; CMutableTransaction mtx2;
mtx2.vin.resize(1); mtx2.vin.resize(1);
mtx2.vin[0].prevout = COutPoint(tx.GetTxid(), 0); mtx2.vin[0].prevout = COutPoint(tx.GetHash(), 0);
mtx2.vin[0].scriptSig = CScript() << OP_1; mtx2.vin[0].scriptSig = CScript() << OP_1;
mtx2.vin[0].nSequence = 0; mtx2.vin[0].nSequence = 0;

16
src/test/mempool_tests.cpp

@ -33,7 +33,7 @@ BOOST_AUTO_TEST_CASE(MempoolRemoveTest)
{ {
txChild[i].vin.resize(1); txChild[i].vin.resize(1);
txChild[i].vin[0].scriptSig = CScript() << OP_11; txChild[i].vin[0].scriptSig = CScript() << OP_11;
txChild[i].vin[0].prevout.hash = txParent.GetTxid(); txChild[i].vin[0].prevout.hash = txParent.GetHash();
txChild[i].vin[0].prevout.n = i; txChild[i].vin[0].prevout.n = i;
txChild[i].vout.resize(1); txChild[i].vout.resize(1);
txChild[i].vout[0].scriptPubKey = CScript() << OP_11 << OP_EQUAL; txChild[i].vout[0].scriptPubKey = CScript() << OP_11 << OP_EQUAL;
@ -44,7 +44,7 @@ BOOST_AUTO_TEST_CASE(MempoolRemoveTest)
{ {
txGrandChild[i].vin.resize(1); txGrandChild[i].vin.resize(1);
txGrandChild[i].vin[0].scriptSig = CScript() << OP_11; txGrandChild[i].vin[0].scriptSig = CScript() << OP_11;
txGrandChild[i].vin[0].prevout.hash = txChild[i].GetTxid(); txGrandChild[i].vin[0].prevout.hash = txChild[i].GetHash();
txGrandChild[i].vin[0].prevout.n = 0; txGrandChild[i].vin[0].prevout.n = 0;
txGrandChild[i].vout.resize(1); txGrandChild[i].vout.resize(1);
txGrandChild[i].vout[0].scriptPubKey = CScript() << OP_11 << OP_EQUAL; txGrandChild[i].vout[0].scriptPubKey = CScript() << OP_11 << OP_EQUAL;
@ -60,17 +60,17 @@ BOOST_AUTO_TEST_CASE(MempoolRemoveTest)
BOOST_CHECK_EQUAL(removed.size(), 0); BOOST_CHECK_EQUAL(removed.size(), 0);
// Just the parent: // Just the parent:
testPool.addUnchecked(txParent.GetTxid(), CTxMemPoolEntry(txParent, 0, 0, 0.0, 1)); testPool.addUnchecked(txParent.GetHash(), CTxMemPoolEntry(txParent, 0, 0, 0.0, 1));
testPool.remove(txParent, removed, true); testPool.remove(txParent, removed, true);
BOOST_CHECK_EQUAL(removed.size(), 1); BOOST_CHECK_EQUAL(removed.size(), 1);
removed.clear(); removed.clear();
// Parent, children, grandchildren: // Parent, children, grandchildren:
testPool.addUnchecked(txParent.GetTxid(), CTxMemPoolEntry(txParent, 0, 0, 0.0, 1)); testPool.addUnchecked(txParent.GetHash(), CTxMemPoolEntry(txParent, 0, 0, 0.0, 1));
for (int i = 0; i < 3; i++) for (int i = 0; i < 3; i++)
{ {
testPool.addUnchecked(txChild[i].GetTxid(), CTxMemPoolEntry(txChild[i], 0, 0, 0.0, 1)); testPool.addUnchecked(txChild[i].GetHash(), CTxMemPoolEntry(txChild[i], 0, 0, 0.0, 1));
testPool.addUnchecked(txGrandChild[i].GetTxid(), CTxMemPoolEntry(txGrandChild[i], 0, 0, 0.0, 1)); testPool.addUnchecked(txGrandChild[i].GetHash(), CTxMemPoolEntry(txGrandChild[i], 0, 0, 0.0, 1));
} }
// Remove Child[0], GrandChild[0] should be removed: // Remove Child[0], GrandChild[0] should be removed:
testPool.remove(txChild[0], removed, true); testPool.remove(txChild[0], removed, true);
@ -90,8 +90,8 @@ BOOST_AUTO_TEST_CASE(MempoolRemoveTest)
// Add children and grandchildren, but NOT the parent (simulate the parent being in a block) // Add children and grandchildren, but NOT the parent (simulate the parent being in a block)
for (int i = 0; i < 3; i++) for (int i = 0; i < 3; i++)
{ {
testPool.addUnchecked(txChild[i].GetTxid(), CTxMemPoolEntry(txChild[i], 0, 0, 0.0, 1)); testPool.addUnchecked(txChild[i].GetHash(), CTxMemPoolEntry(txChild[i], 0, 0, 0.0, 1));
testPool.addUnchecked(txGrandChild[i].GetTxid(), CTxMemPoolEntry(txGrandChild[i], 0, 0, 0.0, 1)); testPool.addUnchecked(txGrandChild[i].GetHash(), CTxMemPoolEntry(txGrandChild[i], 0, 0, 0.0, 1));
} }
// Now remove the parent, as might happen if a block-re-org occurs but the parent cannot be // Now remove the parent, as might happen if a block-re-org occurs but the parent cannot be
// put into the mempool (maybe because it is non-standard): // put into the mempool (maybe because it is non-standard):

40
src/test/miner_tests.cpp

@ -253,14 +253,14 @@ BOOST_AUTO_TEST_CASE(CreateNewBlock_validity)
tx.vin.resize(1); tx.vin.resize(1);
// NOTE: OP_NOP is used to force 20 SigOps for the CHECKMULTISIG // NOTE: OP_NOP is used to force 20 SigOps for the CHECKMULTISIG
tx.vin[0].scriptSig = CScript() << OP_0 << OP_0 << OP_0 << OP_NOP << OP_CHECKMULTISIG << OP_1; tx.vin[0].scriptSig = CScript() << OP_0 << OP_0 << OP_0 << OP_NOP << OP_CHECKMULTISIG << OP_1;
tx.vin[0].prevout.hash = txFirst[0]->GetTxid(); tx.vin[0].prevout.hash = txFirst[0]->GetHash();
tx.vin[0].prevout.n = 0; tx.vin[0].prevout.n = 0;
tx.vout.resize(1); tx.vout.resize(1);
tx.vout[0].nValue = 50000LL; tx.vout[0].nValue = 50000LL;
for (unsigned int i = 0; i < 1001; ++i) for (unsigned int i = 0; i < 1001; ++i)
{ {
tx.vout[0].nValue -= 10; tx.vout[0].nValue -= 10;
hash = tx.GetTxid(); hash = tx.GetHash();
mempool.addUnchecked(hash, CTxMemPoolEntry(tx, 11, GetTime(), 111.0, 11)); mempool.addUnchecked(hash, CTxMemPoolEntry(tx, 11, GetTime(), 111.0, 11));
tx.vin[0].prevout.hash = hash; tx.vin[0].prevout.hash = hash;
} }
@ -275,12 +275,12 @@ BOOST_AUTO_TEST_CASE(CreateNewBlock_validity)
for (unsigned int i = 0; i < 18; ++i) for (unsigned int i = 0; i < 18; ++i)
tx.vin[0].scriptSig << vchData << OP_DROP; tx.vin[0].scriptSig << vchData << OP_DROP;
tx.vin[0].scriptSig << OP_1; tx.vin[0].scriptSig << OP_1;
tx.vin[0].prevout.hash = txFirst[0]->GetTxid(); tx.vin[0].prevout.hash = txFirst[0]->GetHash();
tx.vout[0].nValue = 50000LL; tx.vout[0].nValue = 50000LL;
for (unsigned int i = 0; i < 128; ++i) for (unsigned int i = 0; i < 128; ++i)
{ {
tx.vout[0].nValue -= 350; tx.vout[0].nValue -= 350;
hash = tx.GetTxid(); hash = tx.GetHash();
mempool.addUnchecked(hash, CTxMemPoolEntry(tx, 11, GetTime(), 111.0, 11)); mempool.addUnchecked(hash, CTxMemPoolEntry(tx, 11, GetTime(), 111.0, 11));
tx.vin[0].prevout.hash = hash; tx.vin[0].prevout.hash = hash;
} }
@ -289,7 +289,7 @@ BOOST_AUTO_TEST_CASE(CreateNewBlock_validity)
mempool.clear(); mempool.clear();
// orphan in mempool // orphan in mempool
hash = tx.GetTxid(); hash = tx.GetHash();
mempool.addUnchecked(hash, CTxMemPoolEntry(tx, 11, GetTime(), 111.0, 11)); mempool.addUnchecked(hash, CTxMemPoolEntry(tx, 11, GetTime(), 111.0, 11));
BOOST_CHECK(pblocktemplate = CreateNewBlock(scriptPubKey)); BOOST_CHECK(pblocktemplate = CreateNewBlock(scriptPubKey));
delete pblocktemplate; delete pblocktemplate;
@ -297,17 +297,17 @@ BOOST_AUTO_TEST_CASE(CreateNewBlock_validity)
// child with higher priority than parent // child with higher priority than parent
tx.vin[0].scriptSig = CScript() << OP_1; tx.vin[0].scriptSig = CScript() << OP_1;
tx.vin[0].prevout.hash = txFirst[1]->GetTxid(); tx.vin[0].prevout.hash = txFirst[1]->GetHash();
tx.vout[0].nValue = 39000LL; tx.vout[0].nValue = 39000LL;
hash = tx.GetTxid(); hash = tx.GetHash();
mempool.addUnchecked(hash, CTxMemPoolEntry(tx, 11, GetTime(), 111.0, 11)); mempool.addUnchecked(hash, CTxMemPoolEntry(tx, 11, GetTime(), 111.0, 11));
tx.vin[0].prevout.hash = hash; tx.vin[0].prevout.hash = hash;
tx.vin.resize(2); tx.vin.resize(2);
tx.vin[1].scriptSig = CScript() << OP_1; tx.vin[1].scriptSig = CScript() << OP_1;
tx.vin[1].prevout.hash = txFirst[0]->GetTxid(); tx.vin[1].prevout.hash = txFirst[0]->GetHash();
tx.vin[1].prevout.n = 0; tx.vin[1].prevout.n = 0;
tx.vout[0].nValue = 49000LL; tx.vout[0].nValue = 49000LL;
hash = tx.GetTxid(); hash = tx.GetHash();
mempool.addUnchecked(hash, CTxMemPoolEntry(tx, 11, GetTime(), 111.0, 11)); mempool.addUnchecked(hash, CTxMemPoolEntry(tx, 11, GetTime(), 111.0, 11));
BOOST_CHECK(pblocktemplate = CreateNewBlock(scriptPubKey)); BOOST_CHECK(pblocktemplate = CreateNewBlock(scriptPubKey));
delete pblocktemplate; delete pblocktemplate;
@ -318,39 +318,39 @@ BOOST_AUTO_TEST_CASE(CreateNewBlock_validity)
tx.vin[0].prevout.SetNull(); tx.vin[0].prevout.SetNull();
tx.vin[0].scriptSig = CScript() << OP_0 << OP_1; tx.vin[0].scriptSig = CScript() << OP_0 << OP_1;
tx.vout[0].nValue = 0; tx.vout[0].nValue = 0;
hash = tx.GetTxid(); hash = tx.GetHash();
mempool.addUnchecked(hash, CTxMemPoolEntry(tx, 11, GetTime(), 111.0, 11)); mempool.addUnchecked(hash, CTxMemPoolEntry(tx, 11, GetTime(), 111.0, 11));
BOOST_CHECK(pblocktemplate = CreateNewBlock(scriptPubKey)); BOOST_CHECK(pblocktemplate = CreateNewBlock(scriptPubKey));
delete pblocktemplate; delete pblocktemplate;
mempool.clear(); mempool.clear();
// invalid (pre-p2sh) txn in mempool // invalid (pre-p2sh) txn in mempool
tx.vin[0].prevout.hash = txFirst[0]->GetTxid(); tx.vin[0].prevout.hash = txFirst[0]->GetHash();
tx.vin[0].prevout.n = 0; tx.vin[0].prevout.n = 0;
tx.vin[0].scriptSig = CScript() << OP_1; tx.vin[0].scriptSig = CScript() << OP_1;
tx.vout[0].nValue = 49000LL; tx.vout[0].nValue = 49000LL;
script = CScript() << OP_0; script = CScript() << OP_0;
tx.vout[0].scriptPubKey = GetScriptForDestination(CScriptID(script)); tx.vout[0].scriptPubKey = GetScriptForDestination(CScriptID(script));
hash = tx.GetTxid(); hash = tx.GetHash();
mempool.addUnchecked(hash, CTxMemPoolEntry(tx, 11, GetTime(), 111.0, 11)); mempool.addUnchecked(hash, CTxMemPoolEntry(tx, 11, GetTime(), 111.0, 11));
tx.vin[0].prevout.hash = hash; tx.vin[0].prevout.hash = hash;
tx.vin[0].scriptSig = CScript() << (std::vector<unsigned char>)script; tx.vin[0].scriptSig = CScript() << (std::vector<unsigned char>)script;
tx.vout[0].nValue -= 10000; tx.vout[0].nValue -= 10000;
hash = tx.GetTxid(); hash = tx.GetHash();
mempool.addUnchecked(hash, CTxMemPoolEntry(tx, 11, GetTime(), 111.0, 11)); mempool.addUnchecked(hash, CTxMemPoolEntry(tx, 11, GetTime(), 111.0, 11));
BOOST_CHECK(pblocktemplate = CreateNewBlock(scriptPubKey)); BOOST_CHECK(pblocktemplate = CreateNewBlock(scriptPubKey));
delete pblocktemplate; delete pblocktemplate;
mempool.clear(); mempool.clear();
// double spend txn pair in mempool // double spend txn pair in mempool
tx.vin[0].prevout.hash = txFirst[0]->GetTxid(); tx.vin[0].prevout.hash = txFirst[0]->GetHash();
tx.vin[0].scriptSig = CScript() << OP_1; tx.vin[0].scriptSig = CScript() << OP_1;
tx.vout[0].nValue = 49000LL; tx.vout[0].nValue = 49000LL;
tx.vout[0].scriptPubKey = CScript() << OP_1; tx.vout[0].scriptPubKey = CScript() << OP_1;
hash = tx.GetTxid(); hash = tx.GetHash();
mempool.addUnchecked(hash, CTxMemPoolEntry(tx, 11, GetTime(), 111.0, 11)); mempool.addUnchecked(hash, CTxMemPoolEntry(tx, 11, GetTime(), 111.0, 11));
tx.vout[0].scriptPubKey = CScript() << OP_2; tx.vout[0].scriptPubKey = CScript() << OP_2;
hash = tx.GetTxid(); hash = tx.GetHash();
mempool.addUnchecked(hash, CTxMemPoolEntry(tx, 11, GetTime(), 111.0, 11)); mempool.addUnchecked(hash, CTxMemPoolEntry(tx, 11, GetTime(), 111.0, 11));
BOOST_CHECK(pblocktemplate = CreateNewBlock(scriptPubKey)); BOOST_CHECK(pblocktemplate = CreateNewBlock(scriptPubKey));
delete pblocktemplate; delete pblocktemplate;
@ -370,19 +370,19 @@ BOOST_AUTO_TEST_CASE(CreateNewBlock_validity)
SetMockTime(chainActive.Tip()->GetMedianTimePast()+1); SetMockTime(chainActive.Tip()->GetMedianTimePast()+1);
// height locked // height locked
tx.vin[0].prevout.hash = txFirst[0]->GetTxid(); tx.vin[0].prevout.hash = txFirst[0]->GetHash();
tx.vin[0].scriptSig = CScript() << OP_1; tx.vin[0].scriptSig = CScript() << OP_1;
tx.vin[0].nSequence = 0; tx.vin[0].nSequence = 0;
tx.vout[0].nValue = 49000LL; tx.vout[0].nValue = 49000LL;
tx.vout[0].scriptPubKey = CScript() << OP_1; tx.vout[0].scriptPubKey = CScript() << OP_1;
tx.nLockTime = chainActive.Tip()->nHeight+1; tx.nLockTime = chainActive.Tip()->nHeight+1;
hash = tx.GetTxid(); hash = tx.GetHash();
mempool.addUnchecked(hash, CTxMemPoolEntry(tx, 11, GetTime(), 111.0, 11)); mempool.addUnchecked(hash, CTxMemPoolEntry(tx, 11, GetTime(), 111.0, 11));
BOOST_CHECK(!CheckFinalTx(tx, LOCKTIME_MEDIAN_TIME_PAST)); BOOST_CHECK(!CheckFinalTx(tx, LOCKTIME_MEDIAN_TIME_PAST));
// time locked // time locked
tx2.vin.resize(1); tx2.vin.resize(1);
tx2.vin[0].prevout.hash = txFirst[1]->GetTxid(); tx2.vin[0].prevout.hash = txFirst[1]->GetHash();
tx2.vin[0].prevout.n = 0; tx2.vin[0].prevout.n = 0;
tx2.vin[0].scriptSig = CScript() << OP_1; tx2.vin[0].scriptSig = CScript() << OP_1;
tx2.vin[0].nSequence = 0; tx2.vin[0].nSequence = 0;
@ -390,7 +390,7 @@ BOOST_AUTO_TEST_CASE(CreateNewBlock_validity)
tx2.vout[0].nValue = 79000LL; tx2.vout[0].nValue = 79000LL;
tx2.vout[0].scriptPubKey = CScript() << OP_1; tx2.vout[0].scriptPubKey = CScript() << OP_1;
tx2.nLockTime = chainActive.Tip()->GetMedianTimePast()+1; tx2.nLockTime = chainActive.Tip()->GetMedianTimePast()+1;
hash = tx2.GetTxid(); hash = tx2.GetHash();
mempool.addUnchecked(hash, CTxMemPoolEntry(tx2, 11, GetTime(), 111.0, 11)); mempool.addUnchecked(hash, CTxMemPoolEntry(tx2, 11, GetTime(), 111.0, 11));
BOOST_CHECK(!CheckFinalTx(tx2, LOCKTIME_MEDIAN_TIME_PAST)); BOOST_CHECK(!CheckFinalTx(tx2, LOCKTIME_MEDIAN_TIME_PAST));

4
src/test/multisig_tests.cpp

@ -72,7 +72,7 @@ BOOST_AUTO_TEST_CASE(multisig_verify)
txTo[i].vin.resize(1); txTo[i].vin.resize(1);
txTo[i].vout.resize(1); txTo[i].vout.resize(1);
txTo[i].vin[0].prevout.n = i; txTo[i].vin[0].prevout.n = i;
txTo[i].vin[0].prevout.hash = txFrom.GetTxid(); txTo[i].vin[0].prevout.hash = txFrom.GetHash();
txTo[i].vout[0].nValue = 1; txTo[i].vout[0].nValue = 1;
} }
@ -306,7 +306,7 @@ BOOST_AUTO_TEST_CASE(multisig_Sign)
txTo[i].vin.resize(1); txTo[i].vin.resize(1);
txTo[i].vout.resize(1); txTo[i].vout.resize(1);
txTo[i].vin[0].prevout.n = i; txTo[i].vin[0].prevout.n = i;
txTo[i].vin[0].prevout.hash = txFrom.GetTxid(); txTo[i].vin[0].prevout.hash = txFrom.GetHash();
txTo[i].vout[0].nValue = 1; txTo[i].vout[0].nValue = 1;
} }

2
src/test/pmt_tests.cpp

@ -51,7 +51,7 @@ BOOST_AUTO_TEST_CASE(pmt_test1)
uint256 merkleRoot1 = block.BuildMerkleTree(); uint256 merkleRoot1 = block.BuildMerkleTree();
std::vector<uint256> vTxid(nTx, uint256()); std::vector<uint256> vTxid(nTx, uint256());
for (unsigned int j=0; j<nTx; j++) for (unsigned int j=0; j<nTx; j++)
vTxid[j] = block.vtx[j].GetTxid(); vTxid[j] = block.vtx[j].GetHash();
int nHeight = 1, nTx_ = nTx; int nHeight = 1, nTx_ = nTx;
while (nTx_ > 1) { while (nTx_ > 1) {
nTx_ = (nTx_+1)/2; nTx_ = (nTx_+1)/2;

6
src/test/policyestimator_tests.cpp

@ -62,7 +62,7 @@ BOOST_AUTO_TEST_CASE(BlockPolicyEstimates)
for (int j = 0; j < 10; j++) { // For each fee/pri multiple for (int j = 0; j < 10; j++) { // For each fee/pri multiple
for (int k = 0; k < 5; k++) { // add 4 fee txs for every priority tx for (int k = 0; k < 5; k++) { // add 4 fee txs for every priority tx
tx.vin[0].prevout.n = 10000*blocknum+100*j+k; // make transaction unique tx.vin[0].prevout.n = 10000*blocknum+100*j+k; // make transaction unique
uint256 hash = tx.GetTxid(); uint256 hash = tx.GetHash();
mpool.addUnchecked(hash, CTxMemPoolEntry(tx, feeV[k/4][j], GetTime(), priV[k/4][j], blocknum, mpool.HasNoInputsOf(tx))); mpool.addUnchecked(hash, CTxMemPoolEntry(tx, feeV[k/4][j], GetTime(), priV[k/4][j], blocknum, mpool.HasNoInputsOf(tx)));
txHashes[j].push_back(hash); txHashes[j].push_back(hash);
} }
@ -131,7 +131,7 @@ BOOST_AUTO_TEST_CASE(BlockPolicyEstimates)
for (int j = 0; j < 10; j++) { // For each fee/pri multiple for (int j = 0; j < 10; j++) { // For each fee/pri multiple
for (int k = 0; k < 5; k++) { // add 4 fee txs for every priority tx for (int k = 0; k < 5; k++) { // add 4 fee txs for every priority tx
tx.vin[0].prevout.n = 10000*blocknum+100*j+k; tx.vin[0].prevout.n = 10000*blocknum+100*j+k;
uint256 hash = tx.GetTxid(); uint256 hash = tx.GetHash();
mpool.addUnchecked(hash, CTxMemPoolEntry(tx, feeV[k/4][j], GetTime(), priV[k/4][j], blocknum, mpool.HasNoInputsOf(tx))); mpool.addUnchecked(hash, CTxMemPoolEntry(tx, feeV[k/4][j], GetTime(), priV[k/4][j], blocknum, mpool.HasNoInputsOf(tx)));
txHashes[j].push_back(hash); txHashes[j].push_back(hash);
} }
@ -167,7 +167,7 @@ BOOST_AUTO_TEST_CASE(BlockPolicyEstimates)
for (int j = 0; j < 10; j++) { // For each fee/pri multiple for (int j = 0; j < 10; j++) { // For each fee/pri multiple
for (int k = 0; k < 5; k++) { // add 4 fee txs for every priority tx for (int k = 0; k < 5; k++) { // add 4 fee txs for every priority tx
tx.vin[0].prevout.n = 10000*blocknum+100*j+k; tx.vin[0].prevout.n = 10000*blocknum+100*j+k;
uint256 hash = tx.GetTxid(); uint256 hash = tx.GetHash();
mpool.addUnchecked(hash, CTxMemPoolEntry(tx, feeV[k/4][j], GetTime(), priV[k/4][j], blocknum, mpool.HasNoInputsOf(tx))); mpool.addUnchecked(hash, CTxMemPoolEntry(tx, feeV[k/4][j], GetTime(), priV[k/4][j], blocknum, mpool.HasNoInputsOf(tx)));
CTransaction btx; CTransaction btx;
if (mpool.lookup(hash, btx)) if (mpool.lookup(hash, btx))

14
src/test/script_P2SH_tests.cpp

@ -40,7 +40,7 @@ Verify(const CScript& scriptSig, const CScript& scriptPubKey, bool fStrict, Scri
txTo.vin.resize(1); txTo.vin.resize(1);
txTo.vout.resize(1); txTo.vout.resize(1);
txTo.vin[0].prevout.n = 0; txTo.vin[0].prevout.n = 0;
txTo.vin[0].prevout.hash = txFrom.GetTxid(); txTo.vin[0].prevout.hash = txFrom.GetHash();
txTo.vin[0].scriptSig = scriptSig; txTo.vin[0].scriptSig = scriptSig;
txTo.vout[0].nValue = 1; txTo.vout[0].nValue = 1;
@ -98,7 +98,7 @@ BOOST_AUTO_TEST_CASE(sign)
txTo[i].vin.resize(1); txTo[i].vin.resize(1);
txTo[i].vout.resize(1); txTo[i].vout.resize(1);
txTo[i].vin[0].prevout.n = i; txTo[i].vin[0].prevout.n = i;
txTo[i].vin[0].prevout.hash = txFrom.GetTxid(); txTo[i].vin[0].prevout.hash = txFrom.GetHash();
txTo[i].vout[0].nValue = 1; txTo[i].vout[0].nValue = 1;
#ifdef ENABLE_WALLET #ifdef ENABLE_WALLET
BOOST_CHECK_MESSAGE(IsMine(keystore, txFrom.vout[i].scriptPubKey), strprintf("IsMine %d", i)); BOOST_CHECK_MESSAGE(IsMine(keystore, txFrom.vout[i].scriptPubKey), strprintf("IsMine %d", i));
@ -194,7 +194,7 @@ BOOST_AUTO_TEST_CASE(set)
txTo[i].vin.resize(1); txTo[i].vin.resize(1);
txTo[i].vout.resize(1); txTo[i].vout.resize(1);
txTo[i].vin[0].prevout.n = i; txTo[i].vin[0].prevout.n = i;
txTo[i].vin[0].prevout.hash = txFrom.GetTxid(); txTo[i].vin[0].prevout.hash = txFrom.GetHash();
txTo[i].vout[0].nValue = 1*CENT; txTo[i].vout[0].nValue = 1*CENT;
txTo[i].vout[0].scriptPubKey = inner[i]; txTo[i].vout[0].scriptPubKey = inner[i];
#ifdef ENABLE_WALLET #ifdef ENABLE_WALLET
@ -320,7 +320,7 @@ BOOST_AUTO_TEST_CASE(AreInputsStandard)
txFrom.vout[6].scriptPubKey = GetScriptForDestination(CScriptID(twentySigops)); txFrom.vout[6].scriptPubKey = GetScriptForDestination(CScriptID(twentySigops));
txFrom.vout[6].nValue = 6000; txFrom.vout[6].nValue = 6000;
coins.ModifyCoins(txFrom.GetTxid())->FromTx(txFrom, 0); coins.ModifyCoins(txFrom.GetHash())->FromTx(txFrom, 0);
CMutableTransaction txTo; CMutableTransaction txTo;
txTo.vout.resize(1); txTo.vout.resize(1);
@ -330,7 +330,7 @@ BOOST_AUTO_TEST_CASE(AreInputsStandard)
for (int i = 0; i < 5; i++) for (int i = 0; i < 5; i++)
{ {
txTo.vin[i].prevout.n = i; txTo.vin[i].prevout.n = i;
txTo.vin[i].prevout.hash = txFrom.GetTxid(); txTo.vin[i].prevout.hash = txFrom.GetHash();
} }
BOOST_CHECK(SignSignature(keystore, txFrom, txTo, 0)); BOOST_CHECK(SignSignature(keystore, txFrom, txTo, 0));
BOOST_CHECK(SignSignature(keystore, txFrom, txTo, 1)); BOOST_CHECK(SignSignature(keystore, txFrom, txTo, 1));
@ -360,7 +360,7 @@ BOOST_AUTO_TEST_CASE(AreInputsStandard)
txToNonStd1.vout[0].nValue = 1000; txToNonStd1.vout[0].nValue = 1000;
txToNonStd1.vin.resize(1); txToNonStd1.vin.resize(1);
txToNonStd1.vin[0].prevout.n = 5; txToNonStd1.vin[0].prevout.n = 5;
txToNonStd1.vin[0].prevout.hash = txFrom.GetTxid(); txToNonStd1.vin[0].prevout.hash = txFrom.GetHash();
txToNonStd1.vin[0].scriptSig << static_cast<vector<unsigned char> >(sixteenSigops); txToNonStd1.vin[0].scriptSig << static_cast<vector<unsigned char> >(sixteenSigops);
BOOST_CHECK(!::AreInputsStandard(txToNonStd1, coins)); BOOST_CHECK(!::AreInputsStandard(txToNonStd1, coins));
@ -372,7 +372,7 @@ BOOST_AUTO_TEST_CASE(AreInputsStandard)
txToNonStd2.vout[0].nValue = 1000; txToNonStd2.vout[0].nValue = 1000;
txToNonStd2.vin.resize(1); txToNonStd2.vin.resize(1);
txToNonStd2.vin[0].prevout.n = 6; txToNonStd2.vin[0].prevout.n = 6;
txToNonStd2.vin[0].prevout.hash = txFrom.GetTxid(); txToNonStd2.vin[0].prevout.hash = txFrom.GetHash();
txToNonStd2.vin[0].scriptSig << static_cast<vector<unsigned char> >(twentySigops); txToNonStd2.vin[0].scriptSig << static_cast<vector<unsigned char> >(twentySigops);
BOOST_CHECK(!::AreInputsStandard(txToNonStd2, coins)); BOOST_CHECK(!::AreInputsStandard(txToNonStd2, coins));

2
src/test/script_tests.cpp

@ -79,7 +79,7 @@ CMutableTransaction BuildSpendingTransaction(const CScript& scriptSig, const CMu
txSpend.nLockTime = 0; txSpend.nLockTime = 0;
txSpend.vin.resize(1); txSpend.vin.resize(1);
txSpend.vout.resize(1); txSpend.vout.resize(1);
txSpend.vin[0].prevout.hash = txCredit.GetTxid(); txSpend.vin[0].prevout.hash = txCredit.GetHash();
txSpend.vin[0].prevout.n = 0; txSpend.vin[0].prevout.n = 0;
txSpend.vin[0].scriptSig = scriptSig; txSpend.vin[0].scriptSig = scriptSig;
txSpend.vin[0].nSequence = std::numeric_limits<unsigned int>::max(); txSpend.vin[0].nSequence = std::numeric_limits<unsigned int>::max();

12
src/test/transaction_tests.cpp

@ -279,14 +279,14 @@ SetupDummyInputs(CBasicKeyStore& keystoreRet, CCoinsViewCache& coinsRet)
dummyTransactions[0].vout[0].scriptPubKey << ToByteVector(key[0].GetPubKey()) << OP_CHECKSIG; dummyTransactions[0].vout[0].scriptPubKey << ToByteVector(key[0].GetPubKey()) << OP_CHECKSIG;
dummyTransactions[0].vout[1].nValue = 50*CENT; dummyTransactions[0].vout[1].nValue = 50*CENT;
dummyTransactions[0].vout[1].scriptPubKey << ToByteVector(key[1].GetPubKey()) << OP_CHECKSIG; dummyTransactions[0].vout[1].scriptPubKey << ToByteVector(key[1].GetPubKey()) << OP_CHECKSIG;
coinsRet.ModifyCoins(dummyTransactions[0].GetTxid())->FromTx(dummyTransactions[0], 0); coinsRet.ModifyCoins(dummyTransactions[0].GetHash())->FromTx(dummyTransactions[0], 0);
dummyTransactions[1].vout.resize(2); dummyTransactions[1].vout.resize(2);
dummyTransactions[1].vout[0].nValue = 21*CENT; dummyTransactions[1].vout[0].nValue = 21*CENT;
dummyTransactions[1].vout[0].scriptPubKey = GetScriptForDestination(key[2].GetPubKey().GetID()); dummyTransactions[1].vout[0].scriptPubKey = GetScriptForDestination(key[2].GetPubKey().GetID());
dummyTransactions[1].vout[1].nValue = 22*CENT; dummyTransactions[1].vout[1].nValue = 22*CENT;
dummyTransactions[1].vout[1].scriptPubKey = GetScriptForDestination(key[3].GetPubKey().GetID()); dummyTransactions[1].vout[1].scriptPubKey = GetScriptForDestination(key[3].GetPubKey().GetID());
coinsRet.ModifyCoins(dummyTransactions[1].GetTxid())->FromTx(dummyTransactions[1], 0); coinsRet.ModifyCoins(dummyTransactions[1].GetHash())->FromTx(dummyTransactions[1], 0);
return dummyTransactions; return dummyTransactions;
} }
@ -508,13 +508,13 @@ BOOST_AUTO_TEST_CASE(test_Get)
CMutableTransaction t1; CMutableTransaction t1;
t1.vin.resize(3); t1.vin.resize(3);
t1.vin[0].prevout.hash = dummyTransactions[0].GetTxid(); t1.vin[0].prevout.hash = dummyTransactions[0].GetHash();
t1.vin[0].prevout.n = 1; t1.vin[0].prevout.n = 1;
t1.vin[0].scriptSig << std::vector<unsigned char>(65, 0); t1.vin[0].scriptSig << std::vector<unsigned char>(65, 0);
t1.vin[1].prevout.hash = dummyTransactions[1].GetTxid(); t1.vin[1].prevout.hash = dummyTransactions[1].GetHash();
t1.vin[1].prevout.n = 0; t1.vin[1].prevout.n = 0;
t1.vin[1].scriptSig << std::vector<unsigned char>(65, 0) << std::vector<unsigned char>(33, 4); t1.vin[1].scriptSig << std::vector<unsigned char>(65, 0) << std::vector<unsigned char>(33, 4);
t1.vin[2].prevout.hash = dummyTransactions[1].GetTxid(); t1.vin[2].prevout.hash = dummyTransactions[1].GetHash();
t1.vin[2].prevout.n = 1; t1.vin[2].prevout.n = 1;
t1.vin[2].scriptSig << std::vector<unsigned char>(65, 0) << std::vector<unsigned char>(33, 4); t1.vin[2].scriptSig << std::vector<unsigned char>(65, 0) << std::vector<unsigned char>(33, 4);
t1.vout.resize(2); t1.vout.resize(2);
@ -543,7 +543,7 @@ BOOST_AUTO_TEST_CASE(test_IsStandard)
CMutableTransaction t; CMutableTransaction t;
t.vin.resize(1); t.vin.resize(1);
t.vin[0].prevout.hash = dummyTransactions[0].GetTxid(); t.vin[0].prevout.hash = dummyTransactions[0].GetHash();
t.vin[0].prevout.n = 1; t.vin[0].prevout.n = 1;
t.vin[0].scriptSig << std::vector<unsigned char>(65, 0); t.vin[0].scriptSig << std::vector<unsigned char>(65, 0);
t.vout.resize(1); t.vout.resize(1);

18
src/txmempool.cpp

@ -118,17 +118,17 @@ void CTxMemPool::remove(const CTransaction &origTx, std::list<CTransaction>& rem
{ {
LOCK(cs); LOCK(cs);
std::deque<uint256> txToRemove; std::deque<uint256> txToRemove;
txToRemove.push_back(origTx.GetTxid()); txToRemove.push_back(origTx.GetHash());
if (fRecursive && !mapTx.count(origTx.GetTxid())) { if (fRecursive && !mapTx.count(origTx.GetHash())) {
// If recursively removing but origTx isn't in the mempool // If recursively removing but origTx isn't in the mempool
// be sure to remove any children that are in the pool. This can // be sure to remove any children that are in the pool. This can
// happen during chain re-orgs if origTx isn't re-accepted into // happen during chain re-orgs if origTx isn't re-accepted into
// the mempool for any reason. // the mempool for any reason.
for (unsigned int i = 0; i < origTx.vout.size(); i++) { for (unsigned int i = 0; i < origTx.vout.size(); i++) {
std::map<COutPoint, CInPoint>::iterator it = mapNextTx.find(COutPoint(origTx.GetTxid(), i)); std::map<COutPoint, CInPoint>::iterator it = mapNextTx.find(COutPoint(origTx.GetHash(), i));
if (it == mapNextTx.end()) if (it == mapNextTx.end())
continue; continue;
txToRemove.push_back(it->second.ptx->GetTxid()); txToRemove.push_back(it->second.ptx->GetHash());
} }
} }
while (!txToRemove.empty()) while (!txToRemove.empty())
@ -143,7 +143,7 @@ void CTxMemPool::remove(const CTransaction &origTx, std::list<CTransaction>& rem
std::map<COutPoint, CInPoint>::iterator it = mapNextTx.find(COutPoint(hash, i)); std::map<COutPoint, CInPoint>::iterator it = mapNextTx.find(COutPoint(hash, i));
if (it == mapNextTx.end()) if (it == mapNextTx.end())
continue; continue;
txToRemove.push_back(it->second.ptx->GetTxid()); txToRemove.push_back(it->second.ptx->GetHash());
} }
} }
BOOST_FOREACH(const CTxIn& txin, tx.vin) BOOST_FOREACH(const CTxIn& txin, tx.vin)
@ -254,7 +254,7 @@ void CTxMemPool::removeForBlock(const std::vector<CTransaction>& vtx, unsigned i
std::vector<CTxMemPoolEntry> entries; std::vector<CTxMemPoolEntry> entries;
BOOST_FOREACH(const CTransaction& tx, vtx) BOOST_FOREACH(const CTransaction& tx, vtx)
{ {
uint256 hash = tx.GetTxid(); uint256 hash = tx.GetHash();
if (mapTx.count(hash)) if (mapTx.count(hash))
entries.push_back(mapTx[hash]); entries.push_back(mapTx[hash]);
} }
@ -263,7 +263,7 @@ void CTxMemPool::removeForBlock(const std::vector<CTransaction>& vtx, unsigned i
std::list<CTransaction> dummy; std::list<CTransaction> dummy;
remove(tx, dummy, false); remove(tx, dummy, false);
removeConflicts(tx, conflicts); removeConflicts(tx, conflicts);
ClearPrioritisation(tx.GetTxid()); ClearPrioritisation(tx.GetHash());
} }
// After the txs in the new block have been removed from the mempool, update policy estimates // After the txs in the new block have been removed from the mempool, update policy estimates
minerPolicyEstimator->processBlock(nBlockHeight, entries, fCurrentEstimate); minerPolicyEstimator->processBlock(nBlockHeight, entries, fCurrentEstimate);
@ -361,7 +361,7 @@ void CTxMemPool::check(const CCoinsViewCache *pcoins) const
} }
} }
for (std::map<COutPoint, CInPoint>::const_iterator it = mapNextTx.begin(); it != mapNextTx.end(); it++) { for (std::map<COutPoint, CInPoint>::const_iterator it = mapNextTx.begin(); it != mapNextTx.end(); it++) {
uint256 hash = it->second.ptx->GetTxid(); uint256 hash = it->second.ptx->GetHash();
map<uint256, CTxMemPoolEntry>::const_iterator it2 = mapTx.find(hash); map<uint256, CTxMemPoolEntry>::const_iterator it2 = mapTx.find(hash);
const CTransaction& tx = it2->second.GetTx(); const CTransaction& tx = it2->second.GetTx();
assert(it2 != mapTx.end()); assert(it2 != mapTx.end());
@ -371,7 +371,7 @@ void CTxMemPool::check(const CCoinsViewCache *pcoins) const
} }
for (std::map<uint256, const CTransaction*>::const_iterator it = mapNullifiers.begin(); it != mapNullifiers.end(); it++) { for (std::map<uint256, const CTransaction*>::const_iterator it = mapNullifiers.begin(); it != mapNullifiers.end(); it++) {
uint256 hash = it->second->GetTxid(); uint256 hash = it->second->GetHash();
map<uint256, CTxMemPoolEntry>::const_iterator it2 = mapTx.find(hash); map<uint256, CTxMemPoolEntry>::const_iterator it2 = mapTx.find(hash);
const CTransaction& tx = it2->second.GetTx(); const CTransaction& tx = it2->second.GetTx();
assert(it2 != mapTx.end()); assert(it2 != mapTx.end());

12
src/wallet/rpcwallet.cpp

@ -74,7 +74,7 @@ void WalletTxToJSON(const CWalletTx& wtx, Object& entry)
entry.push_back(Pair("blockindex", wtx.nIndex)); entry.push_back(Pair("blockindex", wtx.nIndex));
entry.push_back(Pair("blocktime", mapBlockIndex[wtx.hashBlock]->GetBlockTime())); entry.push_back(Pair("blocktime", mapBlockIndex[wtx.hashBlock]->GetBlockTime()));
} }
uint256 hash = wtx.GetTxid(); uint256 hash = wtx.GetHash();
entry.push_back(Pair("txid", hash.GetHex())); entry.push_back(Pair("txid", hash.GetHex()));
Array conflicts; Array conflicts;
BOOST_FOREACH(const uint256& conflict, wtx.GetConflicts()) BOOST_FOREACH(const uint256& conflict, wtx.GetConflicts())
@ -439,7 +439,7 @@ Value sendtoaddress(const Array& params, bool fHelp)
SendMoney(address.Get(), nAmount, fSubtractFeeFromAmount, wtx); SendMoney(address.Get(), nAmount, fSubtractFeeFromAmount, wtx);
return wtx.GetTxid().GetHex(); return wtx.GetHash().GetHex();
} }
Value listaddressgroupings(const Array& params, bool fHelp) Value listaddressgroupings(const Array& params, bool fHelp)
@ -916,7 +916,7 @@ Value sendfrom(const Array& params, bool fHelp)
SendMoney(address.Get(), nAmount, false, wtx); SendMoney(address.Get(), nAmount, false, wtx);
return wtx.GetTxid().GetHex(); return wtx.GetHash().GetHex();
} }
@ -1023,7 +1023,7 @@ Value sendmany(const Array& params, bool fHelp)
if (!pwalletMain->CommitTransaction(wtx, keyChange)) if (!pwalletMain->CommitTransaction(wtx, keyChange))
throw JSONRPCError(RPC_WALLET_ERROR, "Transaction commit failed"); throw JSONRPCError(RPC_WALLET_ERROR, "Transaction commit failed");
return wtx.GetTxid().GetHex(); return wtx.GetHash().GetHex();
} }
// Defined in rpcmisc.cpp // Defined in rpcmisc.cpp
@ -1135,7 +1135,7 @@ Value ListReceived(const Array& params, bool fByAccounts)
tallyitem& item = mapTally[address]; tallyitem& item = mapTally[address];
item.nAmount += txout.nValue; item.nAmount += txout.nValue;
item.nConf = min(item.nConf, nDepth); item.nConf = min(item.nConf, nDepth);
item.txids.push_back(wtx.GetTxid()); item.txids.push_back(wtx.GetHash());
if (mine & ISMINE_WATCH_ONLY) if (mine & ISMINE_WATCH_ONLY)
item.fIsWatchonly = true; item.fIsWatchonly = true;
} }
@ -2324,7 +2324,7 @@ Value listunspent(const Array& params, bool fHelp)
CAmount nValue = out.tx->vout[out.i].nValue; CAmount nValue = out.tx->vout[out.i].nValue;
const CScript& pk = out.tx->vout[out.i].scriptPubKey; const CScript& pk = out.tx->vout[out.i].scriptPubKey;
Object entry; Object entry;
entry.push_back(Pair("txid", out.tx->GetTxid().GetHex())); entry.push_back(Pair("txid", out.tx->GetHash().GetHex()));
entry.push_back(Pair("vout", out.i)); entry.push_back(Pair("vout", out.i));
CTxDestination address; CTxDestination address;
if (ExtractDestination(out.tx->vout[out.i].scriptPubKey, address)) { if (ExtractDestination(out.tx->vout[out.i].scriptPubKey, address)) {

40
src/wallet/wallet.cpp

@ -65,7 +65,7 @@ std::string JSOutPoint::ToString() const
std::string COutput::ToString() const std::string COutput::ToString() const
{ {
return strprintf("COutput(%s, %d, %d) [%s]", tx->GetTxid().ToString(), i, nDepth, FormatMoney(tx->vout[i].nValue)); return strprintf("COutput(%s, %d, %d) [%s]", tx->GetHash().ToString(), i, nDepth, FormatMoney(tx->vout[i].nValue));
} }
const CWalletTx* CWallet::GetWalletTx(const uint256& hash) const const CWalletTx* CWallet::GetWalletTx(const uint256& hash) const
@ -831,7 +831,7 @@ void CWallet::UpdateNullifierNoteMap(const CWalletTx& wtx)
bool CWallet::AddToWallet(const CWalletTx& wtxIn, bool fFromLoadWallet, CWalletDB* pwalletdb) bool CWallet::AddToWallet(const CWalletTx& wtxIn, bool fFromLoadWallet, CWalletDB* pwalletdb)
{ {
uint256 hash = wtxIn.GetTxid(); uint256 hash = wtxIn.GetHash();
if (fFromLoadWallet) if (fFromLoadWallet)
{ {
@ -896,7 +896,7 @@ bool CWallet::AddToWallet(const CWalletTx& wtxIn, bool fFromLoadWallet, CWalletD
} }
else else
LogPrintf("AddToWallet(): found %s in block %s not in index\n", LogPrintf("AddToWallet(): found %s in block %s not in index\n",
wtxIn.GetTxid().ToString(), wtxIn.GetHash().ToString(),
wtxIn.hashBlock.ToString()); wtxIn.hashBlock.ToString());
} }
AddToSpends(hash); AddToSpends(hash);
@ -939,7 +939,7 @@ bool CWallet::AddToWallet(const CWalletTx& wtxIn, bool fFromLoadWallet, CWalletD
} }
//// debug print //// debug print
LogPrintf("AddToWallet %s %s%s\n", wtxIn.GetTxid().ToString(), (fInsertedNew ? "new" : ""), (fUpdated ? "update" : "")); LogPrintf("AddToWallet %s %s%s\n", wtxIn.GetHash().ToString(), (fInsertedNew ? "new" : ""), (fUpdated ? "update" : ""));
// Write to disk // Write to disk
if (fInsertedNew || fUpdated) if (fInsertedNew || fUpdated)
@ -957,7 +957,7 @@ bool CWallet::AddToWallet(const CWalletTx& wtxIn, bool fFromLoadWallet, CWalletD
if ( !strCmd.empty()) if ( !strCmd.empty())
{ {
boost::replace_all(strCmd, "%s", wtxIn.GetTxid().GetHex()); boost::replace_all(strCmd, "%s", wtxIn.GetHash().GetHex());
boost::thread t(runCommand, strCmd); // thread runs free boost::thread t(runCommand, strCmd); // thread runs free
} }
@ -974,7 +974,7 @@ bool CWallet::AddToWalletIfInvolvingMe(const CTransaction& tx, const CBlock* pbl
{ {
{ {
AssertLockHeld(cs_wallet); AssertLockHeld(cs_wallet);
bool fExisted = mapWallet.count(tx.GetTxid()) != 0; bool fExisted = mapWallet.count(tx.GetHash()) != 0;
if (fExisted && !fUpdate) return false; if (fExisted && !fUpdate) return false;
auto noteData = FindMyNotes(tx); auto noteData = FindMyNotes(tx);
if (fExisted || IsMine(tx) || IsFromMe(tx) || noteData.size() > 0) if (fExisted || IsMine(tx) || IsFromMe(tx) || noteData.size() > 0)
@ -1288,7 +1288,7 @@ int CWalletTx::GetRequestCount() const
else else
{ {
// Did anyone request this transaction? // Did anyone request this transaction?
map<uint256, int>::const_iterator mi = pwallet->mapRequestCount.find(GetTxid()); map<uint256, int>::const_iterator mi = pwallet->mapRequestCount.find(GetHash());
if (mi != pwallet->mapRequestCount.end()) if (mi != pwallet->mapRequestCount.end())
{ {
nRequests = (*mi).second; nRequests = (*mi).second;
@ -1346,7 +1346,7 @@ void CWalletTx::GetAmounts(list<COutputEntry>& listReceived,
if (!ExtractDestination(txout.scriptPubKey, address)) if (!ExtractDestination(txout.scriptPubKey, address))
{ {
LogPrintf("CWalletTx::GetAmounts: Unknown transaction type found, txid %s\n", LogPrintf("CWalletTx::GetAmounts: Unknown transaction type found, txid %s\n",
this->GetTxid().ToString()); this->GetHash().ToString());
address = CNoDestination(); address = CNoDestination();
} }
@ -1401,7 +1401,7 @@ void CWalletTx::GetAccountAmounts(const string& strAccount, CAmount& nReceived,
bool CWalletTx::WriteToDisk(CWalletDB *pwalletdb) bool CWalletTx::WriteToDisk(CWalletDB *pwalletdb)
{ {
return pwalletdb->WriteTx(GetTxid(), *this); return pwalletdb->WriteTx(GetHash(), *this);
} }
void CWallet::WitnessNoteCommitment(std::vector<uint256> commitments, void CWallet::WitnessNoteCommitment(std::vector<uint256> commitments,
@ -1520,7 +1520,7 @@ void CWallet::ReacceptWalletTransactions()
{ {
const uint256& wtxid = item.first; const uint256& wtxid = item.first;
CWalletTx& wtx = item.second; CWalletTx& wtx = item.second;
assert(wtx.GetTxid() == wtxid); assert(wtx.GetHash() == wtxid);
int nDepth = wtx.GetDepthInMainChain(); int nDepth = wtx.GetDepthInMainChain();
@ -1545,7 +1545,7 @@ bool CWalletTx::RelayWalletTransaction()
if (!IsCoinBase()) if (!IsCoinBase())
{ {
if (GetDepthInMainChain() == 0) { if (GetDepthInMainChain() == 0) {
LogPrintf("Relaying wtx %s\n", GetTxid().ToString()); LogPrintf("Relaying wtx %s\n", GetHash().ToString());
RelayTransaction((CTransaction)*this); RelayTransaction((CTransaction)*this);
return true; return true;
} }
@ -1558,7 +1558,7 @@ set<uint256> CWalletTx::GetConflicts() const
set<uint256> result; set<uint256> result;
if (pwallet != NULL) if (pwallet != NULL)
{ {
uint256 myHash = GetTxid(); uint256 myHash = GetHash();
result = pwallet->GetConflicts(myHash); result = pwallet->GetConflicts(myHash);
result.erase(myHash); result.erase(myHash);
} }
@ -1656,7 +1656,7 @@ CAmount CWalletTx::GetAvailableCredit(bool fUseCache) const
return nAvailableCreditCached; return nAvailableCreditCached;
CAmount nCredit = 0; CAmount nCredit = 0;
uint256 hashTx = GetTxid(); uint256 hashTx = GetHash();
for (unsigned int i = 0; i < vout.size(); i++) for (unsigned int i = 0; i < vout.size(); i++)
{ {
if (!pwallet->IsSpent(hashTx, i)) if (!pwallet->IsSpent(hashTx, i))
@ -1702,7 +1702,7 @@ CAmount CWalletTx::GetAvailableWatchOnlyCredit(const bool& fUseCache) const
CAmount nCredit = 0; CAmount nCredit = 0;
for (unsigned int i = 0; i < vout.size(); i++) for (unsigned int i = 0; i < vout.size(); i++)
{ {
if (!pwallet->IsSpent(GetTxid(), i)) if (!pwallet->IsSpent(GetHash(), i))
{ {
const CTxOut &txout = vout[i]; const CTxOut &txout = vout[i];
nCredit += pwallet->GetCredit(txout, ISMINE_WATCH_ONLY); nCredit += pwallet->GetCredit(txout, ISMINE_WATCH_ONLY);
@ -1771,7 +1771,7 @@ std::vector<uint256> CWallet::ResendWalletTransactionsBefore(int64_t nTime)
{ {
CWalletTx& wtx = *item.second; CWalletTx& wtx = *item.second;
if (wtx.RelayWalletTransaction()) if (wtx.RelayWalletTransaction())
result.push_back(wtx.GetTxid()); result.push_back(wtx.GetHash());
} }
return result; return result;
} }
@ -2307,7 +2307,7 @@ bool CWallet::CreateTransaction(const vector<CRecipient>& vecSend,
// Note how the sequence number is set to max()-1 so that the // Note how the sequence number is set to max()-1 so that the
// nLockTime set above actually works. // nLockTime set above actually works.
BOOST_FOREACH(const PAIRTYPE(const CWalletTx*,unsigned int)& coin, setCoins) BOOST_FOREACH(const PAIRTYPE(const CWalletTx*,unsigned int)& coin, setCoins)
txNew.vin.push_back(CTxIn(coin.first->GetTxid(),coin.second,CScript(), txNew.vin.push_back(CTxIn(coin.first->GetHash(),coin.second,CScript(),
std::numeric_limits<unsigned int>::max()-1)); std::numeric_limits<unsigned int>::max()-1));
// Sign // Sign
@ -2395,7 +2395,7 @@ bool CWallet::CommitTransaction(CWalletTx& wtxNew, CReserveKey& reservekey)
{ {
CWalletTx &coin = mapWallet[txin.prevout.hash]; CWalletTx &coin = mapWallet[txin.prevout.hash];
coin.BindWallet(this); coin.BindWallet(this);
NotifyTransactionChanged(this, coin.GetTxid(), CT_UPDATED); NotifyTransactionChanged(this, coin.GetHash(), CT_UPDATED);
} }
if (fFileBacked) if (fFileBacked)
@ -2403,7 +2403,7 @@ bool CWallet::CommitTransaction(CWalletTx& wtxNew, CReserveKey& reservekey)
} }
// Track how many getdata requests our transaction gets // Track how many getdata requests our transaction gets
mapRequestCount[wtxNew.GetTxid()] = 0; mapRequestCount[wtxNew.GetHash()] = 0;
if (fBroadcastTransactions) if (fBroadcastTransactions)
{ {
@ -3134,7 +3134,7 @@ int CMerkleTx::GetDepthInMainChainINTERNAL(const CBlockIndex* &pindexRet) const
// Make sure the merkle branch connects to this block // Make sure the merkle branch connects to this block
if (!fMerkleVerified) if (!fMerkleVerified)
{ {
if (CBlock::CheckMerkleBranch(GetTxid(), vMerkleBranch, nIndex) != pindex->hashMerkleRoot) if (CBlock::CheckMerkleBranch(GetHash(), vMerkleBranch, nIndex) != pindex->hashMerkleRoot)
return 0; return 0;
fMerkleVerified = true; fMerkleVerified = true;
} }
@ -3147,7 +3147,7 @@ int CMerkleTx::GetDepthInMainChain(const CBlockIndex* &pindexRet) const
{ {
AssertLockHeld(cs_main); AssertLockHeld(cs_main);
int nResult = GetDepthInMainChainINTERNAL(pindexRet); int nResult = GetDepthInMainChainINTERNAL(pindexRet);
if (nResult == 0 && !mempool.exists(GetTxid())) if (nResult == 0 && !mempool.exists(GetHash()))
return -1; // Not in chain, not in mempool return -1; // Not in chain, not in mempool
return nResult; return nResult;

6
src/wallet/walletdb.cpp

@ -305,7 +305,7 @@ DBErrors CWalletDB::ReorderTransactions(CWallet* pwallet)
if (pwtx) if (pwtx)
{ {
if (!WriteTx(pwtx->GetTxid(), *pwtx)) if (!WriteTx(pwtx->GetHash(), *pwtx))
return DB_LOAD_FAIL; return DB_LOAD_FAIL;
} }
else else
@ -329,7 +329,7 @@ DBErrors CWalletDB::ReorderTransactions(CWallet* pwallet)
// Since we're changing the order, write it back // Since we're changing the order, write it back
if (pwtx) if (pwtx)
{ {
if (!WriteTx(pwtx->GetTxid(), *pwtx)) if (!WriteTx(pwtx->GetHash(), *pwtx))
return DB_LOAD_FAIL; return DB_LOAD_FAIL;
} }
else else
@ -390,7 +390,7 @@ ReadKeyValue(CWallet* pwallet, CDataStream& ssKey, CDataStream& ssValue,
CWalletTx wtx; CWalletTx wtx;
ssValue >> wtx; ssValue >> wtx;
CValidationState state; CValidationState state;
if (!(CheckTransaction(wtx, state) && (wtx.GetTxid() == hash) && state.IsValid())) if (!(CheckTransaction(wtx, state) && (wtx.GetHash() == hash) && state.IsValid()))
return false; return false;
// Undo serialize changes in 31600 // Undo serialize changes in 31600

2
src/zcbenchmarks.cpp

@ -171,7 +171,7 @@ double benchmark_large_tx()
auto orig_tx = CTransaction(m_orig_tx); auto orig_tx = CTransaction(m_orig_tx);
CMutableTransaction spending_tx; CMutableTransaction spending_tx;
auto input_hash = orig_tx.GetTxid(); auto input_hash = orig_tx.GetHash();
// Add NUM_INPUTS inputs // Add NUM_INPUTS inputs
for (size_t i = 0; i < NUM_INPUTS; i++) { for (size_t i = 0; i < NUM_INPUTS; i++) {
spending_tx.vin.emplace_back(input_hash, 0); spending_tx.vin.emplace_back(input_hash, 0);

Loading…
Cancel
Save