HardWallet is committed to build a straightforward and easy-to-use library. The open source framework displays all functions and methods related to the hardware wallet. Contains related mnemonics, private keys, addresses and related signed transactions. And use a ble middleware to simulate the relevant data compression and transmission under Bluetooth communication.
- Go Installation
git clone https://github.com/hyperpayorg/hardwallet- About the missing librarys, use
go get xxx ..to install them cd hardwallet
For ease of use and understanding, some tests that can be tested directly are written. This can help to quickly understand the relationship between the various components.
Private key, public key and address can be generated by GenerateMnWallet func.
Language supports: english、korean、chinese_simplified ,etc.
Mnemonics supports: 12 words、24 words,etc.
Password supported.
ceateAccount:=&clientwallet.CreateAccount{
Language: "english",
Length: 12,
Password: "123456",
}
fmt.Println(ceateAccount)
isCreated:=clientwallet.GenerateMnWallet(ceateAccount)
fmt.Println(isCreated)SignRawTransation can be generated by func SignRawTransaction(signIn *SignInput) func.
signIn:=&clientwallet.SignInput{
Coin: "btc",
Symbol: "btc",
Amount: 10000,
Change: 25000000-10000-10000,
Fee: 10000,
SrcAddr: "",
DestAddr: "",
Net: "testnet",
Password: "123456",
Inputs: jsonInputs,
}
signResult:=clientwallet.SignRawTransaction(signIn)
fmt.Println(signResult)Data structure returned as follow:
typeWalletAccountstruct {
ResCodeint// 0 fail 1 SuccessAddressstringPublicKeystringPrivateKeystringSeedstring// root seedCoinstringErrMsgstring// fail messagesErrCodeint// err codeParams []byte// reserved fields
}Key information storage supports pwd & udid.
Key:="L1oh9KNH4XpJgqDodxhjPgaEVS1qwXToWvPf2Zyn6bcm7xxxxxxx"pwd:="11111"udid:="AOIJF-QWEQR-VDFBET-YTAWWE"// EncodeenResult:=EnKeystore(Key, pwd, udid)
fmt.Println("Keystore : \n", enResult.Result)The keystore file is decrypted using the KeyStore json, udid and the password.
To decrypt keystore file, use the following methods:
funcDeKeystore(json, password, udidstring)Description: JSON is the KeyStore JSON file
Data structure returned as KeystoreResult。
enResult:="xxxxxxx"pwd:="11111"udid:="AOIJF-QWEQR-VDFBET-YTAWWE"// DecodedeResult:=DeKeystore(enResult, pwd, udid)
fmt.Println("PrivateKey : ", deResult.Result)