Merge branch 'develop' of github.com-obscure:ethereum/eth-go into develop
This commit is contained in:
		@@ -2,37 +2,9 @@ package ethcrypto
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"io/ioutil"
 | 
			
		||||
	"os"
 | 
			
		||||
	"path"
 | 
			
		||||
	"path/filepath"
 | 
			
		||||
	"strconv"
 | 
			
		||||
	"strings"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func InitWords(wordsPath string) {
 | 
			
		||||
	filename := path.Join(wordsPath, "mnemonic.words.lst")
 | 
			
		||||
	if _, err := os.Stat(filename); os.IsNotExist(err) {
 | 
			
		||||
		dir := path.Join(os.Getenv("GOPATH"), "src", "github.com", "ethereum", "eth-go", "ethcrypto")
 | 
			
		||||
		filename = path.Join(dir, "mnemonic.words.lst")
 | 
			
		||||
		if _, err := os.Stat(filename); os.IsNotExist(err) {
 | 
			
		||||
			dir, err := filepath.Abs(filepath.Dir(os.Args[0]))
 | 
			
		||||
			if err != nil {
 | 
			
		||||
				panic(fmt.Errorf("problem getting current folder: ", err))
 | 
			
		||||
			}
 | 
			
		||||
			filename = path.Join(dir, "mnemonic.words.lst")
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	content, err := ioutil.ReadFile(filename)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		panic(fmt.Errorf("All options for finding the mnemonic word list file 'mnemonic.words.lst' failed: ", err))
 | 
			
		||||
	}
 | 
			
		||||
	words = strings.Split(string(content), "\n")
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var words []string
 | 
			
		||||
 | 
			
		||||
// TODO: See if we can refactor this into a shared util lib if we need it multiple times
 | 
			
		||||
func IndexOf(slice []string, value string) int64 {
 | 
			
		||||
	for p, v := range slice {
 | 
			
		||||
@@ -45,7 +17,7 @@ func IndexOf(slice []string, value string) int64 {
 | 
			
		||||
 | 
			
		||||
func MnemonicEncode(message string) []string {
 | 
			
		||||
	var out []string
 | 
			
		||||
	n := int64(len(words))
 | 
			
		||||
	n := int64(len(MnemonicWords))
 | 
			
		||||
 | 
			
		||||
	for i := 0; i < len(message); i += (len(message) / 8) {
 | 
			
		||||
		x := message[i : i+8]
 | 
			
		||||
@@ -53,22 +25,22 @@ func MnemonicEncode(message string) []string {
 | 
			
		||||
		w1 := (bit % n)
 | 
			
		||||
		w2 := ((bit / n) + w1) % n
 | 
			
		||||
		w3 := ((bit / n / n) + w2) % n
 | 
			
		||||
		out = append(out, words[w1], words[w2], words[w3])
 | 
			
		||||
		out = append(out, MnemonicWords[w1], MnemonicWords[w2], MnemonicWords[w3])
 | 
			
		||||
	}
 | 
			
		||||
	return out
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func MnemonicDecode(wordsar []string) string {
 | 
			
		||||
	var out string
 | 
			
		||||
	n := int64(len(words))
 | 
			
		||||
	n := int64(len(MnemonicWords))
 | 
			
		||||
 | 
			
		||||
	for i := 0; i < len(wordsar); i += 3 {
 | 
			
		||||
		word1 := wordsar[i]
 | 
			
		||||
		word2 := wordsar[i+1]
 | 
			
		||||
		word3 := wordsar[i+2]
 | 
			
		||||
		w1 := IndexOf(words, word1)
 | 
			
		||||
		w2 := IndexOf(words, word2)
 | 
			
		||||
		w3 := IndexOf(words, word3)
 | 
			
		||||
		w1 := IndexOf(MnemonicWords, word1)
 | 
			
		||||
		w2 := IndexOf(MnemonicWords, word2)
 | 
			
		||||
		w3 := IndexOf(MnemonicWords, word3)
 | 
			
		||||
 | 
			
		||||
		y := (w2 - w1) % n
 | 
			
		||||
		z := (w3 - w2) % n
 | 
			
		||||
 
 | 
			
		||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										1630
									
								
								ethcrypto/mnemonic_words.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1630
									
								
								ethcrypto/mnemonic_words.go
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
		Reference in New Issue
	
	Block a user