Merge pull request #419 from filecoin-project/fix/change-default
handle changing default address
This commit is contained in:
commit
b877d41c09
@ -4,7 +4,10 @@ import (
|
||||
"fmt"
|
||||
)
|
||||
|
||||
var ErrKeyInfoNotFound = fmt.Errorf("key info not found")
|
||||
var (
|
||||
ErrKeyInfoNotFound = fmt.Errorf("key info not found")
|
||||
ErrKeyExists = fmt.Errorf("key already exists")
|
||||
)
|
||||
|
||||
// KeyInfo is used for storing keys in KeyStore
|
||||
type KeyInfo struct {
|
||||
|
@ -3,7 +3,6 @@ package vm
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
blockstore "github.com/ipfs/go-ipfs-blockstore"
|
||||
"math/big"
|
||||
|
||||
"github.com/filecoin-project/lotus/build"
|
||||
@ -13,6 +12,7 @@ import (
|
||||
"github.com/filecoin-project/lotus/chain/state"
|
||||
"github.com/filecoin-project/lotus/chain/types"
|
||||
"github.com/filecoin-project/lotus/lib/bufbstore"
|
||||
|
||||
cbg "github.com/whyrusleeping/cbor-gen"
|
||||
"go.opencensus.io/trace"
|
||||
|
||||
@ -20,6 +20,7 @@ import (
|
||||
bserv "github.com/ipfs/go-blockservice"
|
||||
cid "github.com/ipfs/go-cid"
|
||||
hamt "github.com/ipfs/go-hamt-ipld"
|
||||
blockstore "github.com/ipfs/go-ipfs-blockstore"
|
||||
ipld "github.com/ipfs/go-ipld-format"
|
||||
logging "github.com/ipfs/go-log"
|
||||
dag "github.com/ipfs/go-merkledag"
|
||||
@ -460,7 +461,7 @@ func (vm *VM) ApplyMessage(ctx context.Context, msg *types.Message) (*ApplyRet,
|
||||
return nil, xerrors.Errorf("fatal error: %w", actorErr)
|
||||
}
|
||||
if actorErr != nil {
|
||||
log.Warnf("[%d] Send actor error: %+v", vm.blockHeight, actorErr)
|
||||
log.Warnf("[from=%s,n=%d,h=%d] Send actor error: %+v", msg.From, msg.Nonce, vm.blockHeight, actorErr)
|
||||
}
|
||||
|
||||
var errcode uint8
|
||||
|
@ -8,6 +8,7 @@ import (
|
||||
|
||||
"github.com/filecoin-project/go-bls-sigs"
|
||||
|
||||
logging "github.com/ipfs/go-log"
|
||||
"github.com/minio/blake2b-simd"
|
||||
"golang.org/x/xerrors"
|
||||
|
||||
@ -16,6 +17,8 @@ import (
|
||||
"github.com/filecoin-project/lotus/lib/crypto"
|
||||
)
|
||||
|
||||
var log = logging.Logger("wallet")
|
||||
|
||||
const (
|
||||
KNamePrefix = "wallet-"
|
||||
KDefault = "default"
|
||||
@ -170,6 +173,12 @@ func (w *Wallet) SetDefault(a address.Address) error {
|
||||
return err
|
||||
}
|
||||
|
||||
if err := w.keystore.Delete(KDefault); err != nil {
|
||||
if !xerrors.Is(err, types.ErrKeyInfoNotFound) {
|
||||
log.Warnf("failed to unregister current default key: %s", err)
|
||||
}
|
||||
}
|
||||
|
||||
if err := w.keystore.Put(KDefault, ki); err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -327,7 +327,7 @@ func (fsr *fsLockedRepo) Put(name string, info types.KeyInfo) error {
|
||||
|
||||
_, err := os.Stat(keyPath)
|
||||
if err == nil {
|
||||
return xerrors.Errorf("checking key before put '%s': %w", name, ErrKeyExists)
|
||||
return xerrors.Errorf("checking key before put '%s': %w", name, types.ErrKeyExists)
|
||||
} else if !os.IsNotExist(err) {
|
||||
return xerrors.Errorf("checking key before put '%s': %w", name, err)
|
||||
}
|
||||
|
@ -15,8 +15,6 @@ var (
|
||||
ErrNoAPIToken = errors.New("API token not set")
|
||||
ErrRepoAlreadyLocked = errors.New("repo is already locked")
|
||||
ErrClosedRepo = errors.New("repo is no longer open")
|
||||
|
||||
ErrKeyExists = errors.New("key already exists")
|
||||
)
|
||||
|
||||
type Repo interface {
|
||||
|
@ -219,7 +219,7 @@ func (lmem *lockedMemRepo) Put(name string, key types.KeyInfo) error {
|
||||
|
||||
_, isThere := lmem.mem.keystore[name]
|
||||
if isThere {
|
||||
return xerrors.Errorf("putting key '%s': %w", name, ErrKeyExists)
|
||||
return xerrors.Errorf("putting key '%s': %w", name, types.ErrKeyExists)
|
||||
}
|
||||
|
||||
lmem.mem.keystore[name] = key
|
||||
|
@ -81,7 +81,7 @@ func basicTest(t *testing.T, repo Repo) {
|
||||
|
||||
err = kstr.Put("k1", k1)
|
||||
if assert.Error(t, err, "putting key under the same name should error") {
|
||||
assert.True(t, xerrors.Is(err, ErrKeyExists), "returned error is ErrKeyExists")
|
||||
assert.True(t, xerrors.Is(err, types.ErrKeyExists), "returned error is ErrKeyExists")
|
||||
}
|
||||
|
||||
k1prim, err := kstr.Get("k1")
|
||||
|
Loading…
Reference in New Issue
Block a user