Merge pull request #4260 from filecoin-project/asr/wallet-abstract
Fix deletion of addresses from wallet
This commit is contained in:
commit
e1792ffe4d
@ -110,14 +110,12 @@ func (w *Wallet) tryFind(addr address.Address) (types.KeyInfo, error) {
|
|||||||
// We got an ErrKeyInfoNotFound error
|
// We got an ErrKeyInfoNotFound error
|
||||||
// Try again, this time with the testnet prefix
|
// Try again, this time with the testnet prefix
|
||||||
|
|
||||||
aChars := []rune(addr.String())
|
tAddress, err := swapMainnetForTestnetPrefix(addr.String())
|
||||||
prefixRunes := []rune(address.TestnetPrefix)
|
if err != nil {
|
||||||
if len(prefixRunes) != 1 {
|
return types.KeyInfo{}, err
|
||||||
return types.KeyInfo{}, xerrors.Errorf("unexpected prefix length: %d", len(prefixRunes))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
aChars[0] = prefixRunes[0]
|
ki, err = w.keystore.Get(KNamePrefix + tAddress)
|
||||||
ki, err = w.keystore.Get(KNamePrefix + string(aChars))
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return types.KeyInfo{}, err
|
return types.KeyInfo{}, err
|
||||||
}
|
}
|
||||||
@ -291,6 +289,14 @@ func (w *Wallet) DeleteKey(addr address.Address) error {
|
|||||||
return xerrors.Errorf("failed to delete key %s: %w", addr, err)
|
return xerrors.Errorf("failed to delete key %s: %w", addr, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tAddr, err := swapMainnetForTestnetPrefix(addr.String())
|
||||||
|
if err != nil {
|
||||||
|
return xerrors.Errorf("failed to swap prefixes: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO: Does this always error in the not-found case? Just ignoring an error return for now.
|
||||||
|
_ = w.keystore.Delete(KNamePrefix + tAddr)
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -351,3 +357,14 @@ func ActSigType(typ string) crypto.SigType {
|
|||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func swapMainnetForTestnetPrefix(addr string) (string, error) {
|
||||||
|
aChars := []rune(addr)
|
||||||
|
prefixRunes := []rune(address.TestnetPrefix)
|
||||||
|
if len(prefixRunes) != 1 {
|
||||||
|
return "", xerrors.Errorf("unexpected prefix length: %d", len(prefixRunes))
|
||||||
|
}
|
||||||
|
|
||||||
|
aChars[0] = prefixRunes[0]
|
||||||
|
return string(aChars), nil
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user