github.com/kotalco/kotal@v0.3.0/controllers/ethereum/keystore.go (about) 1 package controllers 2 3 import ( 4 "io/ioutil" 5 "os" 6 7 "github.com/ethereum/go-ethereum/accounts/keystore" 8 "github.com/ethereum/go-ethereum/crypto" 9 ) 10 11 // KeyStoreFromPrivateKey generates key store from private key (hex without 0x) 12 func KeyStoreFromPrivateKey(key, password string) (content []byte, err error) { 13 dir, err := ioutil.TempDir(os.TempDir(), "tmp") 14 if err != nil { 15 return 16 } 17 defer os.RemoveAll(dir) 18 19 ks := keystore.NewKeyStore(dir, keystore.StandardScryptN, keystore.StandardScryptP) 20 privateKey, err := crypto.HexToECDSA(key) 21 if err != nil { 22 return 23 } 24 25 acc, err := ks.ImportECDSA(privateKey, password) 26 if err != nil { 27 return 28 } 29 30 content, err = ks.Export(acc, password, password) 31 32 return 33 }