Merge pull request #743 from wpaulino/simnet-account-import
waddrmgr+wallet: allow account import for simnet wallets
This commit is contained in:
commit
50978fcf79
3 changed files with 33 additions and 2 deletions
2
Makefile
2
Makefile
|
@ -9,7 +9,7 @@ LINT_BIN := $(GO_BIN)/golangci-lint
|
||||||
GOACC_BIN := $(GO_BIN)/go-acc
|
GOACC_BIN := $(GO_BIN)/go-acc
|
||||||
|
|
||||||
LINT_COMMIT := v1.18.0
|
LINT_COMMIT := v1.18.0
|
||||||
GOACC_COMMIT := ddc355013f90fea78d83d3a6c71f1d37ac07ecd5
|
GOACC_COMMIT := 80342ae2e0fcf265e99e76bcc4efd022c7c3811b
|
||||||
|
|
||||||
DEPGET := cd /tmp && GO111MODULE=on go get -v
|
DEPGET := cd /tmp && GO111MODULE=on go get -v
|
||||||
GOBUILD := GO111MODULE=on go build -v
|
GOBUILD := GO111MODULE=on go build -v
|
||||||
|
|
|
@ -43,6 +43,11 @@ const (
|
||||||
// HDVersionTestNetBIP0084 is the HDVersion for BIP-0084 on the test
|
// HDVersionTestNetBIP0084 is the HDVersion for BIP-0084 on the test
|
||||||
// network.
|
// network.
|
||||||
HDVersionTestNetBIP0084 HDVersion = 0x045f1cf6 // vpub
|
HDVersionTestNetBIP0084 HDVersion = 0x045f1cf6 // vpub
|
||||||
|
|
||||||
|
// HDVersionSimNetBIP0044 is the HDVersion for BIP-0044 on the
|
||||||
|
// simulation test network. There aren't any other versions defined for
|
||||||
|
// the simulation test network.
|
||||||
|
HDVersionSimNetBIP0044 HDVersion = 0x0420bd3a // spub
|
||||||
)
|
)
|
||||||
|
|
||||||
// DerivationPath represents a derivation path from a particular key manager's
|
// DerivationPath represents a derivation path from a particular key manager's
|
||||||
|
@ -2238,6 +2243,21 @@ func (s *ScopedKeyManager) cloneKeyWithVersion(key *hdkeychain.ExtendedKey) (
|
||||||
return nil, fmt.Errorf("unsupported scope %v", s.scope)
|
return nil, fmt.Errorf("unsupported scope %v", s.scope)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case wire.SimNet:
|
||||||
|
switch s.scope {
|
||||||
|
case KeyScopeBIP0044:
|
||||||
|
version = HDVersionSimNetBIP0044
|
||||||
|
// We use the mainnet versions for simnet keys when the keys
|
||||||
|
// belong to a key scope which simnet doesn't have a defined
|
||||||
|
// version for.
|
||||||
|
case KeyScopeBIP0049Plus:
|
||||||
|
version = HDVersionMainNetBIP0049
|
||||||
|
case KeyScopeBIP0084:
|
||||||
|
version = HDVersionMainNetBIP0084
|
||||||
|
default:
|
||||||
|
return nil, fmt.Errorf("unsupported scope %v", s.scope)
|
||||||
|
}
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return nil, fmt.Errorf("unsupported net %v", net)
|
return nil, fmt.Errorf("unsupported net %v", net)
|
||||||
}
|
}
|
||||||
|
|
|
@ -37,7 +37,9 @@ func keyScopeFromPubKey(pubKey *hdkeychain.ExtendedKey,
|
||||||
// force the standard BIP-0049 derivation scheme (nested witness pubkeys
|
// force the standard BIP-0049 derivation scheme (nested witness pubkeys
|
||||||
// everywhere), while a witness address type will force the standard
|
// everywhere), while a witness address type will force the standard
|
||||||
// BIP-0084 derivation scheme.
|
// BIP-0084 derivation scheme.
|
||||||
case waddrmgr.HDVersionMainNetBIP0044, waddrmgr.HDVersionTestNetBIP0044:
|
case waddrmgr.HDVersionMainNetBIP0044, waddrmgr.HDVersionTestNetBIP0044,
|
||||||
|
waddrmgr.HDVersionSimNetBIP0044:
|
||||||
|
|
||||||
if addrType == nil {
|
if addrType == nil {
|
||||||
return waddrmgr.KeyScope{}, nil, errors.New("address " +
|
return waddrmgr.KeyScope{}, nil, errors.New("address " +
|
||||||
"type must be specified for account public " +
|
"type must be specified for account public " +
|
||||||
|
@ -111,6 +113,15 @@ func (w *Wallet) isPubKeyForNet(pubKey *hdkeychain.ExtendedKey) bool {
|
||||||
version == waddrmgr.HDVersionTestNetBIP0049 ||
|
version == waddrmgr.HDVersionTestNetBIP0049 ||
|
||||||
version == waddrmgr.HDVersionTestNetBIP0084
|
version == waddrmgr.HDVersionTestNetBIP0084
|
||||||
|
|
||||||
|
// For simnet, we'll also allow the mainnet versions since simnet
|
||||||
|
// doesn't have defined versions for some of our key scopes, and the
|
||||||
|
// mainnet versions are usually used as the default regardless of the
|
||||||
|
// network/key scope.
|
||||||
|
case wire.SimNet:
|
||||||
|
return version == waddrmgr.HDVersionSimNetBIP0044 ||
|
||||||
|
version == waddrmgr.HDVersionMainNetBIP0049 ||
|
||||||
|
version == waddrmgr.HDVersionMainNetBIP0084
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue