1
0
Fork 0
mirror of https://github.com/anyproto/any-sync.git synced 2025-06-08 05:57:03 +09:00

code review fixes

This commit is contained in:
Anton Akentev 2024-05-24 17:04:34 +01:00
parent 2b2512c1c2
commit ed568338e2
No known key found for this signature in database
GPG key ID: 766D0B9F1F3225EC
3 changed files with 2 additions and 128 deletions

View file

@ -6,11 +6,12 @@ import (
"errors"
"fmt"
"github.com/anyproto/any-sync/util/go-ethereum/accounts"
"github.com/anyproto/go-slip10"
"github.com/btcsuite/btcd/chaincfg"
"github.com/btcsuite/btcutil/hdkeychain"
"github.com/tyler-smith/go-bip39"
"github.com/anyproto/any-sync/util/ethereum/accounts"
)
var (
@ -186,36 +187,6 @@ func derivePrivateKey(masterKey *hdkeychain.ExtendedKey, path accounts.Derivatio
return privateKeyECDSA, nil
}
/*
// this function was using go-ethereum codebase which is huge
// we got rid of it
//
func (m Mnemonic) ethereumKeyFromMnemonic(index uint32, path string) (pk *ecdsa.PrivateKey, err error) {
wallet, err := hdwallet.NewFromMnemonic(string(m))
if err != nil {
return nil, err
}
// m/44'/60'/0'/0/0 for first account
// m/44'/60'/0'/0/1 for second account, etc
fullPath := fmt.Sprintf("%s/%d", path, index)
p := hdwallet.MustParseDerivationPath(fullPath)
account, err := wallet.Derive(p, false)
if err != nil {
return nil, err
}
//addr = account.Address
pk, err = wallet.PrivateKey(account)
if err != nil {
return nil, err
}
return pk, nil
}*/
func (m Mnemonic) ethereumKeyFromMnemonic(index uint32, path string) (pk *ecdsa.PrivateKey, err error) {
seed, err := m.Seed()
if err != nil {

View file

@ -52,33 +52,4 @@ func TestMnemonic(t *testing.T) {
publicKey := res.EthereumIdentity.Public()
_, ok := publicKey.(*ecdsa.PublicKey)
require.Equal(t, true, ok)
//ethAddress := crypto.PubkeyToAddress(*publicKeyECDSA)
//require.Equal(t, common.HexToAddress("0xC49926C4124cEe1cbA0Ea94Ea31a6c12318df947"), ethAddress)
}
/*
// this test was using go-ethereum codebase which is huge
// we got rid of it
func TestMnemonic_ethereumKeyFromMnemonic(t *testing.T) {
var badPphrase Mnemonic = "tag volcano"
_, err := badPphrase.ethereumKeyFromMnemonic(0, defaultEthereumDerivation)
require.Error(t, err)
// good
var phrase Mnemonic = "tag volcano eight thank tide danger coast health above argue embrace heavy"
pk, err := phrase.ethereumKeyFromMnemonic(0, defaultEthereumDerivation)
require.NoError(t, err)
// what wallet.PrivateKeyHex(account) does
bytes := crypto.FromECDSA(pk)
pkStr := hexutil.Encode(bytes)[2:]
require.Equal(t, "63e21d10fd50155dbba0e7d3f7431a400b84b4c2ac1ee38872f82448fe3ecfb9", pkStr)
pk, err = phrase.ethereumKeyFromMnemonic(1, defaultEthereumDerivation)
require.NoError(t, err)
bytes = crypto.FromECDSA(pk)
pkStr = hexutil.Encode(bytes)[2:]
require.Equal(t, "b31048b0aa87649bdb9016c0ee28c788ddfc45e52cd71cc0da08c47cb4390ae7", pkStr)
}*/

View file

@ -17,7 +17,6 @@
package accounts
import (
"encoding/json"
"errors"
"fmt"
"math"
@ -35,11 +34,6 @@ var DefaultRootDerivationPath = DerivationPath{0x80000000 + 44, 0x80000000 + 60,
// at m/44'/60'/0'/0/1, etc.
var DefaultBaseDerivationPath = DerivationPath{0x80000000 + 44, 0x80000000 + 60, 0x80000000 + 0, 0, 0}
// LegacyLedgerBaseDerivationPath is the legacy base path from which custom derivation
// endpoints are incremented. As such, the first account will be at m/44'/60'/0'/0, the
// second at m/44'/60'/0'/1, etc.
var LegacyLedgerBaseDerivationPath = DerivationPath{0x80000000 + 44, 0x80000000 + 60, 0x80000000 + 0, 0}
// DerivationPath represents the computer friendly version of a hierarchical
// deterministic wallet account derivation path.
//
@ -116,65 +110,3 @@ func ParseDerivationPath(path string) (DerivationPath, error) {
}
return result, nil
}
// String implements the stringer interface, converting a binary derivation path
// to its canonical representation.
func (path DerivationPath) String() string {
result := "m"
for _, component := range path {
var hardened bool
if component >= 0x80000000 {
component -= 0x80000000
hardened = true
}
result = fmt.Sprintf("%s/%d", result, component)
if hardened {
result += "'"
}
}
return result
}
// MarshalJSON turns a derivation path into its json-serialized string
func (path DerivationPath) MarshalJSON() ([]byte, error) {
return json.Marshal(path.String())
}
// UnmarshalJSON a json-serialized string back into a derivation path
func (path *DerivationPath) UnmarshalJSON(b []byte) error {
var dp string
var err error
if err = json.Unmarshal(b, &dp); err != nil {
return err
}
*path, err = ParseDerivationPath(dp)
return err
}
// DefaultIterator creates a BIP-32 path iterator, which progresses by increasing the last component:
// i.e. m/44'/60'/0'/0/0, m/44'/60'/0'/0/1, m/44'/60'/0'/0/2, ... m/44'/60'/0'/0/N.
func DefaultIterator(base DerivationPath) func() DerivationPath {
path := make(DerivationPath, len(base))
copy(path[:], base[:])
// Set it back by one, so the first call gives the first result
path[len(path)-1]--
return func() DerivationPath {
path[len(path)-1]++
return path
}
}
// LedgerLiveIterator creates a bip44 path iterator for Ledger Live.
// Ledger Live increments the third component rather than the fifth component
// i.e. m/44'/60'/0'/0/0, m/44'/60'/1'/0/0, m/44'/60'/2'/0/0, ... m/44'/60'/N'/0/0.
func LedgerLiveIterator(base DerivationPath) func() DerivationPath {
path := make(DerivationPath, len(base))
copy(path[:], base[:])
// Set it back by one, so the first call gives the first result
path[2]--
return func() DerivationPath {
// ledgerLivePathIterator iterates on the third component
path[2]++
return path
}
}