@ -370,8 +370,6 @@ static void AddKey(CWallet& wallet, const CKey& key)
BOOST_FIXTURE_TEST_CASE ( rescan , TestChain100Setup )
BOOST_FIXTURE_TEST_CASE ( rescan , TestChain100Setup )
{
{
LOCK ( cs_main ) ;
// Cap last block file size, and mine new block in a new block file.
// Cap last block file size, and mine new block in a new block file.
CBlockIndex * const nullBlock = nullptr ;
CBlockIndex * const nullBlock = nullptr ;
CBlockIndex * oldTip = chainActive . Tip ( ) ;
CBlockIndex * oldTip = chainActive . Tip ( ) ;
@ -379,6 +377,8 @@ BOOST_FIXTURE_TEST_CASE(rescan, TestChain100Setup)
CreateAndProcessBlock ( { } , GetScriptForRawPubKey ( coinbaseKey . GetPubKey ( ) ) ) ;
CreateAndProcessBlock ( { } , GetScriptForRawPubKey ( coinbaseKey . GetPubKey ( ) ) ) ;
CBlockIndex * newTip = chainActive . Tip ( ) ;
CBlockIndex * newTip = chainActive . Tip ( ) ;
LOCK ( cs_main ) ;
// Verify ScanForWalletTransactions picks up transactions in both the old
// Verify ScanForWalletTransactions picks up transactions in both the old
// and new block files.
// and new block files.
{
{
@ -447,8 +447,6 @@ BOOST_FIXTURE_TEST_CASE(rescan, TestChain100Setup)
// than or equal to key birthday.
// than or equal to key birthday.
BOOST_FIXTURE_TEST_CASE ( importwallet_rescan , TestChain100Setup )
BOOST_FIXTURE_TEST_CASE ( importwallet_rescan , TestChain100Setup )
{
{
LOCK ( cs_main ) ;
// Create two blocks with same timestamp to verify that importwallet rescan
// Create two blocks with same timestamp to verify that importwallet rescan
// will pick up both blocks, not just the first.
// will pick up both blocks, not just the first.
const int64_t BLOCK_TIME = chainActive . Tip ( ) - > GetBlockTimeMax ( ) + 5 ;
const int64_t BLOCK_TIME = chainActive . Tip ( ) - > GetBlockTimeMax ( ) + 5 ;
@ -462,6 +460,8 @@ BOOST_FIXTURE_TEST_CASE(importwallet_rescan, TestChain100Setup)
SetMockTime ( KEY_TIME ) ;
SetMockTime ( KEY_TIME ) ;
coinbaseTxns . emplace_back ( * CreateAndProcessBlock ( { } , GetScriptForRawPubKey ( coinbaseKey . GetPubKey ( ) ) ) . vtx [ 0 ] ) ;
coinbaseTxns . emplace_back ( * CreateAndProcessBlock ( { } , GetScriptForRawPubKey ( coinbaseKey . GetPubKey ( ) ) ) . vtx [ 0 ] ) ;
LOCK ( cs_main ) ;
// Import key into wallet and call dumpwallet to create backup file.
// Import key into wallet and call dumpwallet to create backup file.
{
{
CWallet wallet ;
CWallet wallet ;
@ -627,10 +627,15 @@ public:
BOOST_CHECK ( wallet - > CreateTransaction ( { recipient } , wtx , reservekey , fee , changePos , error , dummy ) ) ;
BOOST_CHECK ( wallet - > CreateTransaction ( { recipient } , wtx , reservekey , fee , changePos , error , dummy ) ) ;
CValidationState state ;
CValidationState state ;
BOOST_CHECK ( wallet - > CommitTransaction ( wtx , reservekey , nullptr , state ) ) ;
BOOST_CHECK ( wallet - > CommitTransaction ( wtx , reservekey , nullptr , state ) ) ;
CMutableTransaction blocktx ;
{
LOCK ( wallet - > cs_wallet ) ;
blocktx = CMutableTransaction ( * wallet - > mapWallet . at ( wtx . GetHash ( ) ) . tx ) ;
}
CreateAndProcessBlock ( { CMutableTransaction ( blocktx ) } , GetScriptForRawPubKey ( coinbaseKey . GetPubKey ( ) ) ) ;
LOCK ( wallet - > cs_wallet ) ;
LOCK ( wallet - > cs_wallet ) ;
auto it = wallet - > mapWallet . find ( wtx . GetHash ( ) ) ;
auto it = wallet - > mapWallet . find ( wtx . GetHash ( ) ) ;
BOOST_CHECK ( it ! = wallet - > mapWallet . end ( ) ) ;
BOOST_CHECK ( it ! = wallet - > mapWallet . end ( ) ) ;
CreateAndProcessBlock ( { CMutableTransaction ( * it - > second . tx ) } , GetScriptForRawPubKey ( coinbaseKey . GetPubKey ( ) ) ) ;
it - > second . SetMerkleBranch ( chainActive . Tip ( ) , 1 ) ;
it - > second . SetMerkleBranch ( chainActive . Tip ( ) , 1 ) ;
return it - > second ;
return it - > second ;
}
}
@ -641,7 +646,6 @@ public:
BOOST_FIXTURE_TEST_CASE ( ListCoins , ListCoinsTestingSetup )
BOOST_FIXTURE_TEST_CASE ( ListCoins , ListCoinsTestingSetup )
{
{
std : : string coinbaseAddress = coinbaseKey . GetPubKey ( ) . GetID ( ) . ToString ( ) ;
std : : string coinbaseAddress = coinbaseKey . GetPubKey ( ) . GetID ( ) . ToString ( ) ;
LOCK2 ( cs_main , wallet - > cs_wallet ) ;
// Confirm ListCoins initially returns 1 coin grouped under coinbaseKey
// Confirm ListCoins initially returns 1 coin grouped under coinbaseKey
// address.
// address.
@ -669,6 +673,7 @@ BOOST_FIXTURE_TEST_CASE(ListCoins, ListCoinsTestingSetup)
BOOST_CHECK_EQUAL ( available . size ( ) , 2 ) ;
BOOST_CHECK_EQUAL ( available . size ( ) , 2 ) ;
for ( const auto & group : list ) {
for ( const auto & group : list ) {
for ( const auto & coin : group . second ) {
for ( const auto & coin : group . second ) {
LOCK ( wallet - > cs_wallet ) ;
wallet - > LockCoin ( COutPoint ( coin . tx - > GetHash ( ) , coin . i ) ) ;
wallet - > LockCoin ( COutPoint ( coin . tx - > GetHash ( ) , coin . i ) ) ;
}
}
}
}