Changeset View
Changeset View
Standalone View
Standalone View
src/test/transaction_tests.cpp
// Copyright (c) 2011-2016 The Bitcoin Core developers | // Copyright (c) 2011-2016 The Bitcoin Core developers | ||||
Lint: Code style violation: '/Users/shammah/repos/bitcoin-abc/src/test/transaction_tests.cpp' has code style errors. | |||||
// Distributed under the MIT software license, see the accompanying | // Distributed under the MIT software license, see the accompanying | ||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php. | // file COPYING or http://www.opensource.org/licenses/mit-license.php. | ||||
#include "data/tx_invalid.json.h" | #include "data/tx_invalid.json.h" | ||||
#include "data/tx_valid.json.h" | #include "data/tx_valid.json.h" | ||||
#include "test/test_bitcoin.h" | #include "test/test_bitcoin.h" | ||||
#include "clientversion.h" | #include "clientversion.h" | ||||
▲ Show 20 Lines • Show All 255 Lines • ▼ Show 20 Lines | SetupDummyInputs(CBasicKeyStore &keystoreRet, CCoinsViewCache &coinsRet) { | ||||
CKey key[4]; | CKey key[4]; | ||||
for (int i = 0; i < 4; i++) { | for (int i = 0; i < 4; i++) { | ||||
key[i].MakeNewKey(i % 2); | key[i].MakeNewKey(i % 2); | ||||
keystoreRet.AddKey(key[i]); | keystoreRet.AddKey(key[i]); | ||||
} | } | ||||
// Create some dummy input transactions | // Create some dummy input transactions | ||||
dummyTransactions[0].vout.resize(2); | dummyTransactions[0].vout.resize(2); | ||||
dummyTransactions[0].vout[0].nValue = 11 * CENT; | dummyTransactions[0].vout[0].nValue = 11 * CENT.GetSatoshis(); | ||||
dummyTransactions[0].vout[0].scriptPubKey | dummyTransactions[0].vout[0].scriptPubKey | ||||
<< ToByteVector(key[0].GetPubKey()) << OP_CHECKSIG; | << ToByteVector(key[0].GetPubKey()) << OP_CHECKSIG; | ||||
dummyTransactions[0].vout[1].nValue = 50 * CENT; | dummyTransactions[0].vout[1].nValue = 50 * CENT.GetSatoshis(); | ||||
dummyTransactions[0].vout[1].scriptPubKey | dummyTransactions[0].vout[1].scriptPubKey | ||||
<< ToByteVector(key[1].GetPubKey()) << OP_CHECKSIG; | << ToByteVector(key[1].GetPubKey()) << OP_CHECKSIG; | ||||
AddCoins(coinsRet, dummyTransactions[0], 0); | AddCoins(coinsRet, 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.GetSatoshis(); | ||||
dummyTransactions[1].vout[0].scriptPubKey = | dummyTransactions[1].vout[0].scriptPubKey = | ||||
GetScriptForDestination(key[2].GetPubKey().GetID()); | GetScriptForDestination(key[2].GetPubKey().GetID()); | ||||
dummyTransactions[1].vout[1].nValue = 22 * CENT; | dummyTransactions[1].vout[1].nValue = 22 * CENT.GetSatoshis(); | ||||
dummyTransactions[1].vout[1].scriptPubKey = | dummyTransactions[1].vout[1].scriptPubKey = | ||||
GetScriptForDestination(key[3].GetPubKey().GetID()); | GetScriptForDestination(key[3].GetPubKey().GetID()); | ||||
AddCoins(coinsRet, dummyTransactions[1], 0); | AddCoins(coinsRet, dummyTransactions[1], 0); | ||||
return dummyTransactions; | return dummyTransactions; | ||||
} | } | ||||
BOOST_AUTO_TEST_CASE(test_Get) { | BOOST_AUTO_TEST_CASE(test_Get) { | ||||
Show All 12 Lines | BOOST_AUTO_TEST_CASE(test_Get) { | ||||
t1.vin[1].prevout.n = 0; | t1.vin[1].prevout.n = 0; | ||||
t1.vin[1].scriptSig << std::vector<uint8_t>(65, 0) | t1.vin[1].scriptSig << std::vector<uint8_t>(65, 0) | ||||
<< std::vector<uint8_t>(33, 4); | << std::vector<uint8_t>(33, 4); | ||||
t1.vin[2].prevout.hash = dummyTransactions[1].GetId(); | t1.vin[2].prevout.hash = dummyTransactions[1].GetId(); | ||||
t1.vin[2].prevout.n = 1; | t1.vin[2].prevout.n = 1; | ||||
t1.vin[2].scriptSig << std::vector<uint8_t>(65, 0) | t1.vin[2].scriptSig << std::vector<uint8_t>(65, 0) | ||||
<< std::vector<uint8_t>(33, 4); | << std::vector<uint8_t>(33, 4); | ||||
t1.vout.resize(2); | t1.vout.resize(2); | ||||
t1.vout[0].nValue = 90 * CENT; | t1.vout[0].nValue = 90 * CENT.GetSatoshis(); | ||||
t1.vout[0].scriptPubKey << OP_1; | t1.vout[0].scriptPubKey << OP_1; | ||||
BOOST_CHECK(AreInputsStandard(t1, coins)); | BOOST_CHECK(AreInputsStandard(t1, coins)); | ||||
BOOST_CHECK_EQUAL(coins.GetValueIn(t1), (50 + 21 + 22) * CENT); | BOOST_CHECK_EQUAL(coins.GetValueIn(t1), (50 + 21 + 22) * CENT.GetSatoshis()); | ||||
} | } | ||||
void CreateCreditAndSpend(const CKeyStore &keystore, const CScript &outscript, | void CreateCreditAndSpend(const CKeyStore &keystore, const CScript &outscript, | ||||
CTransactionRef &output, CMutableTransaction &input, | CTransactionRef &output, CMutableTransaction &input, | ||||
bool success = true) { | bool success = true) { | ||||
CMutableTransaction outputm; | CMutableTransaction outputm; | ||||
outputm.nVersion = 1; | outputm.nVersion = 1; | ||||
outputm.vin.resize(1); | outputm.vin.resize(1); | ||||
▲ Show 20 Lines • Show All 200 Lines • ▼ Show 20 Lines | std::vector<CMutableTransaction> dummyTransactions = | ||||
SetupDummyInputs(keystore, coins); | SetupDummyInputs(keystore, coins); | ||||
CMutableTransaction t; | CMutableTransaction t; | ||||
t.vin.resize(1); | t.vin.resize(1); | ||||
t.vin[0].prevout.hash = dummyTransactions[0].GetId(); | t.vin[0].prevout.hash = dummyTransactions[0].GetId(); | ||||
t.vin[0].prevout.n = 1; | t.vin[0].prevout.n = 1; | ||||
t.vin[0].scriptSig << std::vector<uint8_t>(65, 0); | t.vin[0].scriptSig << std::vector<uint8_t>(65, 0); | ||||
t.vout.resize(1); | t.vout.resize(1); | ||||
t.vout[0].nValue = 90 * CENT; | t.vout[0].nValue = 90 * CENT.GetSatoshis(); | ||||
CKey key; | CKey key; | ||||
key.MakeNewKey(true); | key.MakeNewKey(true); | ||||
t.vout[0].scriptPubKey = GetScriptForDestination(key.GetPubKey().GetID()); | t.vout[0].scriptPubKey = GetScriptForDestination(key.GetPubKey().GetID()); | ||||
std::string reason; | std::string reason; | ||||
BOOST_CHECK(IsStandardTx(t, reason)); | BOOST_CHECK(IsStandardTx(t, reason)); | ||||
// Check dust with default relay fee: | // Check dust with default relay fee: | ||||
▲ Show 20 Lines • Show All 95 Lines • Show Last 20 Lines |
'/Users/shammah/repos/bitcoin-abc/src/test/transaction_tests.cpp' has code style errors.