From 8d2fa3863ee3eaa65b96ad8ef7cd825d62da0d5d Mon Sep 17 00:00:00 2001 From: Peter Conrad Date: Sun, 7 Feb 2016 16:58:29 +0100 Subject: [PATCH] Fix for #557: check BTC/PTS addresses on balance import including compressed/uncompressed versions --- libraries/wallet/wallet.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/libraries/wallet/wallet.cpp b/libraries/wallet/wallet.cpp index 3858f4c1..7e441e1a 100644 --- a/libraries/wallet/wallet.cpp +++ b/libraries/wallet/wallet.cpp @@ -3356,7 +3356,17 @@ vector< signed_transaction > wallet_api_impl::import_balance( string name_or_id, { optional< private_key_type > key = wif_to_key( wif_key ); FC_ASSERT( key.valid(), "Invalid private key" ); - addrs.push_back( key->get_public_key() ); + fc::ecc::public_key pk = key->get_public_key(); + addrs.push_back( pk ); + keys[addrs.back()] = *key; + // see chain/balance_evaluator.cpp + addrs.push_back( pts_address( pk, false, 56 ) ); + keys[addrs.back()] = *key; + addrs.push_back( pts_address( pk, true, 56 ) ); + keys[addrs.back()] = *key; + addrs.push_back( pts_address( pk, false, 0 ) ); + keys[addrs.back()] = *key; + addrs.push_back( pts_address( pk, true, 0 ) ); keys[addrs.back()] = *key; } }