@@ -232,37 +232,48 @@ void Balance::refreshWalletStatus() {
232
232
// Check wallet status
233
233
interfaces::Wallet& wallet = walletModel->wallet ();
234
234
std::string strAddress;
235
- std::vector<interfaces::WalletAddress> addresses = wallet.getLabelAddress (" stealth" );
236
- if (!addresses.empty ()) {
237
- interfaces::WalletAddress address = addresses[0 ];
238
- if (address.dest .type () == typeid (CStealthAddress)){
235
+ std::string addressName;
236
+ isminetype* isMine;
237
+ std::string* purpose;
238
+ if (displayAddressSet) {
239
+ strAddress = EncodeDestination (currentDisplayAddress, true );
240
+ bool doesAddyExist = wallet.getAddress (currentDisplayAddress, &addressName, isMine, purpose);
241
+ } else {
242
+ std::vector<interfaces::WalletAddress> addresses = wallet.getLabelAddress (" stealth" );
243
+ if (!addresses.empty ()) {
244
+ interfaces::WalletAddress address = addresses[0 ];
245
+ if (address.dest .type () == typeid (CStealthAddress)){
246
+ bool fBech32 = true ;
247
+ strAddress = EncodeDestination (address.dest ,true );
248
+ addressName = " stealth" ;
249
+ }
250
+ }else {
251
+ ui->copyAddress ->setVisible (true );
252
+ ui->labelReceive ->setAlignment (Qt::AlignLeft);
253
+ ui->labelReceive ->setText (" Receiving address" );
254
+ // Generate a new address to associate with given label
255
+ // TODO: Use only one stealth address here.
256
+ CStealthAddress address;
257
+ if (!walletModel->wallet ().getNewStealthAddress (address)) {
258
+ ui->labelQr ->setText (" " );
259
+ ui->copyAddress ->setVisible (false );
260
+ ui->labelReceive ->setText (" Wallet Locked" );
261
+ ui->labelReceive ->setAlignment (Qt::AlignHCenter | Qt::AlignVCenter);
262
+ ui->labelAddress ->setText (" " );
263
+ return ;
264
+ }
239
265
bool fBech32 = true ;
240
- strAddress = EncodeDestination (address.dest ,true );
266
+ strAddress = address.ToString (fBech32 );
267
+ wallet.setAddressBook (DecodeDestination (strAddress), " stealth" , " receive" , fBech32 );
268
+ addressName = " stealth" ;
241
269
}
242
- }else {
243
- ui->copyAddress ->setVisible (true );
244
- ui->labelReceive ->setAlignment (Qt::AlignLeft);
245
- ui->labelReceive ->setText (" Receiving address" );
246
- // Generate a new address to associate with given label
247
- // TODO: Use only one stealth address here.
248
- CStealthAddress address;
249
- if (!walletModel->wallet ().getNewStealthAddress (address)) {
250
- ui->labelQr ->setText (" " );
251
- ui->copyAddress ->setVisible (false );
252
- ui->labelReceive ->setText (" Wallet Locked" );
253
- ui->labelReceive ->setAlignment (Qt::AlignHCenter | Qt::AlignVCenter);
254
- ui->labelAddress ->setText (" " );
255
- return ;
256
- }
257
- bool fBech32 = true ;
258
- strAddress = address.ToString (fBech32 );
259
- wallet.setAddressBook (DecodeDestination (strAddress), " stealth" , " receive" , fBech32 );
260
270
}
261
271
262
272
qAddress = QString::fromStdString (strAddress);
263
273
264
274
// set address
265
275
ui->labelAddress ->setText (qAddress.left (12 ) + " ..." + qAddress.right (12 ));
276
+ ui->labelAddressName ->setText (QString::fromStdString (addressName));
266
277
267
278
SendCoinsRecipient info;
268
279
info.address = qAddress;
@@ -320,4 +331,7 @@ void Balance::refreshWalletStatus() {
320
331
#endif
321
332
}
322
333
323
-
334
+ void Balance::setDisplayRcvAddress (CTxDestination *displayAddress) {
335
+ displayAddressSet = true ;
336
+ currentDisplayAddress = *displayAddress;
337
+ }
0 commit comments