fix wallet delete address where address is default
This commit is contained in:
parent
2304ea0077
commit
fad250058d
@ -306,23 +306,27 @@ func (w *LocalWallet) walletDelete(ctx context.Context, addr address.Address) er
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (w *LocalWallet) deleteDefault() error {
|
||||||
|
w.lk.Lock()
|
||||||
|
defer w.lk.Unlock()
|
||||||
|
if err := w.keystore.Delete(KDefault); err != nil {
|
||||||
|
if !xerrors.Is(err, types.ErrKeyInfoNotFound) {
|
||||||
|
log.Warnf("failed to unregister current default key: %s", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
func (w *LocalWallet) WalletDelete(ctx context.Context, addr address.Address) error {
|
func (w *LocalWallet) WalletDelete(ctx context.Context, addr address.Address) error {
|
||||||
if err := w.walletDelete(ctx, addr); err != nil {
|
if err := w.walletDelete(ctx, addr); err != nil {
|
||||||
return xerrors.Errorf("wallet delete: %w", err)
|
return xerrors.Errorf("wallet delete: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
def, err := w.GetDefault()
|
if def, err := w.GetDefault(); err == nil {
|
||||||
if err != nil {
|
if def == addr {
|
||||||
return xerrors.Errorf("getting default address: %w", err)
|
w.deleteDefault()
|
||||||
}
|
|
||||||
|
|
||||||
if def == addr {
|
|
||||||
err = w.SetDefault(address.Undef)
|
|
||||||
if err != nil {
|
|
||||||
return xerrors.Errorf("unsetting default address: %w", err)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user