Skip to content

Commit

Permalink
Fixes based on reviews.
Browse files Browse the repository at this point in the history
  • Loading branch information
martonp committed Jun 9, 2022
1 parent 4bed31c commit 1ca7d1b
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 13 deletions.
28 changes: 17 additions & 11 deletions client/asset/eth/eth.go
Original file line number Diff line number Diff line change
Expand Up @@ -120,11 +120,13 @@ var (

findRedemptionCoinID = []byte("FindRedemption Coin")

seedDerivationPath = []uint32{hdkeychain.HardenedKeyStart + 44,
hdkeychain.HardenedKeyStart + 60,
hdkeychain.HardenedKeyStart,
0,
0}
seedDerivationPath = []uint32{
hdkeychain.HardenedKeyStart + 44, // purpose 44' for HD wallets
hdkeychain.HardenedKeyStart + 60, // eth coin type 60'
hdkeychain.HardenedKeyStart, // account 0'
0, // branch 0
0, // index 0
}
)

// WalletConfig are wallet-level configuration settings.
Expand Down Expand Up @@ -342,11 +344,10 @@ func CreateWallet(createWalletParams *asset.CreateWalletParams) error {
}

extKey, err := keygen.GenDeepChild(createWalletParams.Seed, seedDerivationPath)
defer extKey.Zero()
if err != nil {
return err
}

defer extKey.Zero()
privateKey, err := extKey.SerializedPrivKey()
defer encode.ClearBytes(privateKey)
if err != nil {
Expand Down Expand Up @@ -2107,10 +2108,10 @@ func (w *TokenWallet) EstimateRegistrationTxFee(feeRate uint64) uint64 {
// various external wallets.
func (w *assetWallet) RestorationInfo(seed []byte) ([]*asset.WalletRestoration, error) {
extKey, err := keygen.GenDeepChild(seed, seedDerivationPath)
defer extKey.Zero()
if err != nil {
return nil, err
}
defer extKey.Zero()
privateKey, err := extKey.SerializedPrivKey()
defer encode.ClearBytes(privateKey)
if err != nil {
Expand All @@ -2119,9 +2120,14 @@ func (w *assetWallet) RestorationInfo(seed []byte) ([]*asset.WalletRestoration,

return []*asset.WalletRestoration{
&asset.WalletRestoration{
Target: "MetaMask",
Seed: hex.EncodeToString(privateKey),
Instructions: "1. Open the settings menu\n2. Select \"Import Account\"\n3. Make sure \"Private Key\" is selected and paste the seed into the box",
Target: "MetaMask",
Seed: hex.EncodeToString(privateKey),
Instructions: "Accounts can be imported by private key only if MetaMask has already be initialized. " +
"If this is your first time installing MetaMask, create a new wallet and secret recovery phrase. " +
"Then, to import your DEX account into MetaMask, follow the steps below:\n" +
`1. Open the settings menu
2. Select "Import Account"
3. Make sure "Private Key" is selected, and paste the private key above into the box`,
},
}, nil
}
Expand Down
2 changes: 2 additions & 0 deletions client/core/core.go
Original file line number Diff line number Diff line change
Expand Up @@ -7032,11 +7032,13 @@ func (c *Core) WalletRestorationInfo(pw []byte, assetID uint32) ([]*asset.Wallet
if err != nil {
return nil, fmt.Errorf("WalletRestorationInfo password error: %w", err)
}
defer crypter.Close()

seed, _, err := c.assetSeedAndPass(assetID, crypter)
if err != nil {
return nil, fmt.Errorf("assetSeedAndPass error: %w", err)
}
defer encode.ClearBytes(seed)

wallet, found := c.wallet(assetID)
if !found {
Expand Down
2 changes: 1 addition & 1 deletion client/webserver/api.go
Original file line number Diff line number Diff line change
Expand Up @@ -426,6 +426,7 @@ func (s *WebServer) apiRestoreWalletInfo(w http.ResponseWriter, r *http.Request)
AssetID uint32
Pass encode.PassBytes
}{}
defer form.Pass.Clear()
if !readPost(w, r, form) {
return
}
Expand Down Expand Up @@ -456,7 +457,6 @@ func (s *WebServer) apiAccountDisable(w http.ResponseWriter, r *http.Request) {

// Disable account.
err := s.core.AccountDisable(form.Pass, form.Host)
zero(form.Pass)
if err != nil {
s.writeAPIError(w, fmt.Errorf("error disabling account: %w", err))
return
Expand Down
2 changes: 1 addition & 1 deletion dex/keygen/keygen.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,10 @@ func (*RootKeyParams) HDPubKeyVersion() [4]byte {
// GenDeepChild derives the leaf of a path of children from a root extended key.
func GenDeepChild(seed []byte, kids []uint32) (*hdkeychain.ExtendedKey, error) {
root, err := hdkeychain.NewMaster(seed, &RootKeyParams{})
defer root.Zero()
if err != nil {
return nil, err
}
defer root.Zero()
genChild := func(parent *hdkeychain.ExtendedKey, childIdx uint32) (*hdkeychain.ExtendedKey, error) {
err := hdkeychain.ErrInvalidChild
for err == hdkeychain.ErrInvalidChild {
Expand Down

0 comments on commit 1ca7d1b

Please sign in to comment.