add missing patch file (#1319)
This commit is contained in:
parent
5dbde3a94b
commit
fdcd20e14d
48
vendor/github.com/ethereum/go-ethereum/_assets/patches/0040-import-extended-key-by-purpose.patch
generated
vendored
Normal file
48
vendor/github.com/ethereum/go-ethereum/_assets/patches/0040-import-extended-key-by-purpose.patch
generated
vendored
Normal file
|
@ -0,0 +1,48 @@
|
|||
diff --git a/accounts/keystore/key.go b/accounts/keystore/key.go
|
||||
index f8fbc04..5bb8dc5 100644
|
||||
--- a/accounts/keystore/key.go
|
||||
+++ b/accounts/keystore/key.go
|
||||
@@ -144,7 +144,7 @@ func newKeyFromECDSA(privateKeyECDSA *ecdsa.PrivateKey) *Key {
|
||||
return key
|
||||
}
|
||||
|
||||
-func newKeyFromExtendedKey(extKey *extkeys.ExtendedKey) (*Key, error) {
|
||||
+func newKeyForPurposeFromExtendedKey(keyPurpose extkeys.KeyPurpose, extKey *extkeys.ExtendedKey) (*Key, error) {
|
||||
var (
|
||||
extChild1, extChild2 *extkeys.ExtendedKey
|
||||
err error
|
||||
@@ -152,13 +152,13 @@ func newKeyFromExtendedKey(extKey *extkeys.ExtendedKey) (*Key, error) {
|
||||
|
||||
if extKey.Depth == 0 { // we are dealing with master key
|
||||
// CKD#1 - main account
|
||||
- extChild1, err = extKey.BIP44Child(extkeys.CoinTypeETH, 0)
|
||||
+ extChild1, err = extKey.ChildForPurpose(keyPurpose, 0)
|
||||
if err != nil {
|
||||
return &Key{}, err
|
||||
}
|
||||
|
||||
// CKD#2 - sub-accounts root
|
||||
- extChild2, err = extKey.BIP44Child(extkeys.CoinTypeETH, 1)
|
||||
+ extChild2, err = extKey.ChildForPurpose(keyPurpose, 1)
|
||||
if err != nil {
|
||||
return &Key{}, err
|
||||
}
|
||||
diff --git a/accounts/keystore/keystore.go b/accounts/keystore/keystore.go
|
||||
index 9f27448..2e3a3e9 100644
|
||||
--- a/accounts/keystore/keystore.go
|
||||
+++ b/accounts/keystore/keystore.go
|
||||
@@ -462,7 +462,13 @@ func (ks *KeyStore) ImportECDSA(priv *ecdsa.PrivateKey, passphrase string) (acco
|
||||
// ImportExtendedKey stores ECDSA key (obtained from extended key) along with CKD#2 (root for sub-accounts)
|
||||
// If key file is not found, it is created. Key is encrypted with the given passphrase.
|
||||
func (ks *KeyStore) ImportExtendedKey(extKey *extkeys.ExtendedKey, passphrase string) (accounts.Account, error) {
|
||||
- key, err := newKeyFromExtendedKey(extKey)
|
||||
+ return ks.ImportExtendedKeyForPurpose(extkeys.KeyPurposeWallet, extKey, passphrase)
|
||||
+}
|
||||
+
|
||||
+// ImportExtendedKeyForPurpose stores ECDSA key (obtained from extended key) along with CKD#2 (root for sub-accounts)
|
||||
+// If key file is not found, it is created. Key is encrypted with the given passphrase.
|
||||
+func (ks *KeyStore) ImportExtendedKeyForPurpose(keyPurpose extkeys.KeyPurpose, extKey *extkeys.ExtendedKey, passphrase string) (accounts.Account, error) {
|
||||
+ key, err := newKeyForPurposeFromExtendedKey(keyPurpose, extKey)
|
||||
if err != nil {
|
||||
zeroKey(key.PrivateKey)
|
||||
return accounts.Account{}, err
|
Loading…
Reference in New Issue