Logging for wallet class
This commit is contained in:
		
					parent
					
						
							
								6bf66e030c
							
						
					
				
			
			
				commit
				
					
						c8eb45808f
					
				
			
		
					 1 changed files with 67 additions and 4 deletions
				
			
		|  | @ -246,6 +246,10 @@ void nano::fan::value_set (nano::raw_key const & value_a) | |||
| 	*(values[0]) ^= value_a; | ||||
| } | ||||
| 
 | ||||
| /*
 | ||||
|  * wallet_store | ||||
|  */ | ||||
| 
 | ||||
| // Wallet version number
 | ||||
| nano::account const nano::wallet_store::version_special{}; | ||||
| // Random number used to salt private key encryption
 | ||||
|  | @ -738,6 +742,9 @@ nano::public_key nano::wallet::deterministic_insert (store::transaction const & | |||
| 	if (store.valid_password (transaction_a)) | ||||
| 	{ | ||||
| 		key = store.deterministic_insert (transaction_a); | ||||
| 
 | ||||
| 		logger.info (nano::log::type::wallet, "Deterministically inserted new account: {}", key.to_account ()); | ||||
| 
 | ||||
| 		if (generate_work_a) | ||||
| 		{ | ||||
| 			work_ensure (key, key); | ||||
|  | @ -745,6 +752,8 @@ nano::public_key nano::wallet::deterministic_insert (store::transaction const & | |||
| 		auto half_principal_weight (wallets.node.minimum_principal_weight () / 2); | ||||
| 		if (wallets.check_rep (key, half_principal_weight)) | ||||
| 		{ | ||||
| 			logger.info (nano::log::type::wallet, "New account qualified as a representative: {}", key.to_account ()); | ||||
| 
 | ||||
| 			nano::lock_guard<nano::mutex> lock{ representatives_mutex }; | ||||
| 			representatives.insert (key); | ||||
| 		} | ||||
|  | @ -759,6 +768,9 @@ nano::public_key nano::wallet::deterministic_insert (uint32_t const index, bool | |||
| 	if (store.valid_password (transaction)) | ||||
| 	{ | ||||
| 		key = store.deterministic_insert (transaction, index); | ||||
| 
 | ||||
| 		logger.info (nano::log::type::wallet, "Deterministically inserted new account: {}", key.to_account ()); | ||||
| 
 | ||||
| 		if (generate_work_a) | ||||
| 		{ | ||||
| 			work_ensure (key, key); | ||||
|  | @ -865,6 +877,11 @@ std::shared_ptr<nano::block> nano::wallet::receive_action (nano::block_hash cons | |||
| 				nano::raw_key prv; | ||||
| 				if (!store.fetch (transaction, account_a, prv)) | ||||
| 				{ | ||||
| 					logger.info (nano::log::type::wallet, "Receiving block {} from account {}, amount: {}", | ||||
| 					send_hash_a.to_string (), | ||||
| 					account_a.to_account (), | ||||
| 					pending_info->amount.number ().convert_to<std::string> ()); | ||||
| 
 | ||||
| 					if (work_a == 0) | ||||
| 					{ | ||||
| 						store.work_get (transaction, account_a, work_a); | ||||
|  | @ -883,17 +900,21 @@ std::shared_ptr<nano::block> nano::wallet::receive_action (nano::block_hash cons | |||
| 				} | ||||
| 				else | ||||
| 				{ | ||||
| 					logger.warn (nano::log::type::wallet, "Unable to receive, wallet locked"); | ||||
| 					logger.warn (nano::log::type::wallet, "Unable to receive, wallet locked, block {} to account: {}", | ||||
| 					send_hash_a.to_string (), | ||||
| 					account_a.to_account ()); | ||||
| 				} | ||||
| 			} | ||||
| 			else | ||||
| 			{ | ||||
| 				// Ledger doesn't have this marked as available to receive anymore
 | ||||
| 				logger.warn (nano::log::type::wallet, "Not receiving block {}, block already received", send_hash_a.to_string ()); | ||||
| 			} | ||||
| 		} | ||||
| 		else | ||||
| 		{ | ||||
| 			// Ledger doesn't have this block anymore.
 | ||||
| 			logger.warn (nano::log::type::wallet, "Not receiving block {}, block no longer exists or pruned", send_hash_a.to_string ()); | ||||
| 		} | ||||
| 	} | ||||
| 	else | ||||
|  | @ -924,6 +945,10 @@ std::shared_ptr<nano::block> nano::wallet::change_action (nano::account const & | |||
| 			auto existing (store.find (transaction, source_a)); | ||||
| 			if (existing != store.end (transaction) && !wallets.node.ledger.any.account_head (block_transaction, source_a).is_zero ()) | ||||
| 			{ | ||||
| 				logger.info (nano::log::type::wallet, "Changing representative for account {} to {}", | ||||
| 				source_a.to_account (), | ||||
| 				representative_a.to_account ()); | ||||
| 
 | ||||
| 				auto info = wallets.node.ledger.any.account_get (block_transaction, source_a); | ||||
| 				debug_assert (info); | ||||
| 				nano::raw_key prv; | ||||
|  | @ -937,6 +962,16 @@ std::shared_ptr<nano::block> nano::wallet::change_action (nano::account const & | |||
| 				block = std::make_shared<nano::state_block> (source_a, info->head, representative_a, info->balance, 0, prv, source_a, work_a); | ||||
| 				details.epoch = info->epoch (); | ||||
| 			} | ||||
| 			else | ||||
| 			{ | ||||
| 				logger.warn (nano::log::type::wallet, "Changing representative for account {} failed, wallet locked or account not found", | ||||
| 				source_a.to_account ()); | ||||
| 			} | ||||
| 		} | ||||
| 		else | ||||
| 		{ | ||||
| 			logger.warn (nano::log::type::wallet, "Changing representative for account {} failed, wallet locked", | ||||
| 			source_a.to_account ()); | ||||
| 		} | ||||
| 	} | ||||
| 	if (block != nullptr) | ||||
|  | @ -958,7 +993,7 @@ std::shared_ptr<nano::block> nano::wallet::send_action (nano::account const & so | |||
| 		id_mdb_val = nano::store::lmdb::db_val (id_a->size (), const_cast<char *> (id_a->data ())); | ||||
| 	} | ||||
| 
 | ||||
| 	auto prepare_send = [&id_mdb_val, &wallets = this->wallets, &store = this->store, &source_a, &amount_a, &work_a, &account_a] (auto const & transaction) { | ||||
| 	auto prepare_send = [this, &id_mdb_val, &wallets = this->wallets, &store = this->store, &source_a, &amount_a, &work_a, &account_a, &id_a] (auto const & transaction) { | ||||
| 		auto block_transaction = wallets.node.ledger.tx_begin_read (); | ||||
| 		auto error (false); | ||||
| 		auto cached_block (false); | ||||
|  | @ -975,9 +1010,19 @@ std::shared_ptr<nano::block> nano::wallet::send_action (nano::account const & so | |||
| 				block = wallets.node.ledger.any.block_get (block_transaction, hash); | ||||
| 				if (block != nullptr) | ||||
| 				{ | ||||
| 					logger.warn (nano::log::type::wallet, "Block already exists for send action with id: {}, existing hash: {}", | ||||
| 					id_a.value (), | ||||
| 					hash.to_string ()); | ||||
| 
 | ||||
| 					cached_block = true; | ||||
| 					wallets.node.network.flood_block (block, nano::transport::traffic_type::block_broadcast_initial); | ||||
| 				} | ||||
| 				else | ||||
| 				{ | ||||
| 					logger.warn (nano::log::type::wallet, "Block was not found in ledger for send action with id: {}, hash: {}", | ||||
| 					id_a.value (), | ||||
| 					hash.to_string ()); | ||||
| 				} | ||||
| 			} | ||||
| 			else if (status != MDB_NOTFOUND) | ||||
| 			{ | ||||
|  | @ -994,6 +1039,11 @@ std::shared_ptr<nano::block> nano::wallet::send_action (nano::account const & so | |||
| 					auto balance (wallets.node.ledger.any.account_balance (block_transaction, source_a)); | ||||
| 					if (balance && balance.value ().number () >= amount_a) | ||||
| 					{ | ||||
| 						logger.info (nano::log::type::wallet, "Sending from account: {} to: {}, amount: {}", | ||||
| 						source_a.to_account (), | ||||
| 						account_a.to_account (), | ||||
| 						amount_a.convert_to<std::string> ()); | ||||
| 
 | ||||
| 						auto info = wallets.node.ledger.any.account_get (block_transaction, source_a); | ||||
| 						debug_assert (info); | ||||
| 						nano::raw_key prv; | ||||
|  | @ -1016,6 +1066,13 @@ std::shared_ptr<nano::block> nano::wallet::send_action (nano::account const & so | |||
| 							} | ||||
| 						} | ||||
| 					} | ||||
| 					else | ||||
| 					{ | ||||
| 						logger.warn (nano::log::type::wallet, "Insufficient balance for send from: {}, required: {} but available: {}", | ||||
| 						account_a.to_account (), | ||||
| 						amount_a.convert_to<std::string> (), | ||||
| 						balance ? balance.value ().number ().convert_to<std::string> () : "unknown"); | ||||
| 					} | ||||
| 				} | ||||
| 			} | ||||
| 		} | ||||
|  | @ -1231,7 +1288,7 @@ bool nano::wallet::search_receivable (store::transaction const & wallet_transact | |||
| 	} | ||||
| 	else | ||||
| 	{ | ||||
| 		logger.warn (nano::log::type::wallet, "Stopping search, wallet is locked"); | ||||
| 		logger.warn (nano::log::type::wallet, "Unable to search receivable blocks, wallet is locked"); | ||||
| 	} | ||||
| 	return result; | ||||
| } | ||||
|  | @ -1277,17 +1334,23 @@ uint32_t nano::wallet::deterministic_check (store::transaction const & transacti | |||
| 
 | ||||
| nano::public_key nano::wallet::change_seed (store::transaction const & transaction_a, nano::raw_key const & prv_a, uint32_t count) | ||||
| { | ||||
| 	logger.info (nano::log::type::wallet, "Changing wallet seed"); | ||||
| 
 | ||||
| 	store.seed_set (transaction_a, prv_a); | ||||
| 	auto account = deterministic_insert (transaction_a); | ||||
| 	if (count == 0) | ||||
| 	{ | ||||
| 		count = deterministic_check (transaction_a, 0); | ||||
| 		logger.info (nano::log::type::wallet, "Auto-detected {} accounts to generate", count); | ||||
| 	} | ||||
| 	for (uint32_t i (0); i < count; ++i) | ||||
| 	{ | ||||
| 		// Disable work generation to prevent weak CPU nodes stuck
 | ||||
| 		account = deterministic_insert (transaction_a, false); | ||||
| 	} | ||||
| 
 | ||||
| 	logger.info (nano::log::type::wallet, "Completed changing wallet seed and generating accounts"); | ||||
| 
 | ||||
| 	return account; | ||||
| } | ||||
| 
 | ||||
|  | @ -1754,7 +1817,7 @@ void nano::wallets::receive_confirmed (nano::block_hash const & hash_a, nano::ac | |||
| 				if (!node.ledger.confirmed.block_exists_or_pruned (node.ledger.tx_begin_read (), hash_a)) | ||||
| 				{ | ||||
| 					logger.warn (nano::log::type::wallet, "Confirmed block is missing: {}", hash_a.to_string ()); | ||||
| 					debug_assert (false, "Confirmed block is missing"); | ||||
| 					debug_assert (false, "confirmed block is missing"); | ||||
| 				} | ||||
| 				else | ||||
| 				{ | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Piotr Wójcik
				Piotr Wójcik