good morning!!!!

Skip to content
Snippets Groups Projects
Commit 25314313 authored by Viktor Trón's avatar Viktor Trón
Browse files

added Mnemonic() and AsStrings() methods, added memoization for address

parent a8be0d9f
No related branches found
No related tags found
No related merge requests found
...@@ -3,12 +3,14 @@ package ethcrypto ...@@ -3,12 +3,14 @@ package ethcrypto
import ( import (
"github.com/ethereum/eth-go/ethutil" "github.com/ethereum/eth-go/ethutil"
"github.com/obscuren/secp256k1-go" "github.com/obscuren/secp256k1-go"
"strings"
) )
type KeyPair struct { type KeyPair struct {
PrivateKey []byte PrivateKey []byte
PublicKey []byte PublicKey []byte
address []byte
mnemonic string
// The associated account // The associated account
// account *StateObject // account *StateObject
} }
...@@ -29,7 +31,21 @@ func NewKeyPairFromSec(seckey []byte) (*KeyPair, error) { ...@@ -29,7 +31,21 @@ func NewKeyPairFromSec(seckey []byte) (*KeyPair, error) {
} }
func (k *KeyPair) Address() []byte { func (k *KeyPair) Address() []byte {
return Sha3Bin(k.PublicKey[1:])[12:] if k.address == nil {
k.address = Sha3Bin(k.PublicKey[1:])[12:]
}
return k.address
}
func (k *KeyPair) Mnemonic() string {
if k.mnemonic == "" {
k.mnemonic = strings.Join(MnemonicEncode(ethutil.Bytes2Hex(k.PrivateKey)), " ")
}
return k.mnemonic
}
func (k *KeyPair) AsStrings() (string, string, string, string) {
return k.Mnemonic(), ethutil.Bytes2Hex(k.Address()), ethutil.Bytes2Hex(k.PrivateKey), ethutil.Bytes2Hex(k.PublicKey)
} }
func (k *KeyPair) RlpEncode() []byte { func (k *KeyPair) RlpEncode() []byte {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment