Skip to content
View Pratama6's full-sized avatar
Block or Report

Block or report Pratama6

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Please don't include any personal information such as legal names or email addresses. Maximum 100 characters, markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
Pratama6/README.md

Hyperpay Wallet HardWallet

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.

Environment Setup

  • Go Installation
  • git clone https://github.com/hyperpayorg/hardwallet
  • About the missing librarys, use go get xxx .. to install them
  • cd hardwallet

How To Use

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.

Generate Wallet

Private key, public key and address can be generated by GenerateMnWallet func. Language supports: englishkoreanchinese_simplified ,etc. Mnemonics supports: 12 words24 words,etc. Password supported.

ceateAccount := &clientwallet.CreateAccount{
	Language: "english",
	Length:   12,
	Password: "123456",
}
fmt.Println(ceateAccount)
isCreated := clientwallet.GenerateMnWallet(ceateAccount)
fmt.Println(isCreated)

Wallet SignRawTransation

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:

type WalletAccount struct {
	ResCode    int    // 0 fail 1 Success
	Address    string
	PublicKey  string
	PrivateKey string
	Seed       string // root seed
	Coin       string
	ErrMsg     string // fail messages
	ErrCode    int    // err code
	Params     []byte // reserved fields
}

Wallet EnKeystore

Key information storage supports pwd & udid.

Key := "L1oh9KNH4XpJgqDodxhjPgaEVS1qwXToWvPf2Zyn6bcm7xxxxxxx"
pwd := "11111"
udid := "AOIJF-QWEQR-VDFBET-YTAWWE"

// Encode
enResult := EnKeystore(Key, pwd, udid)
fmt.Println("Keystore : \n", enResult.Result)

Wallet KeyStore File Decrypt

The keystore file is decrypted using the KeyStore json, udid and the password.

To decrypt keystore file, use the following methods:

func DeKeystore(json, password, udid string)

Description: JSON is the KeyStore JSON file

Data structure returned as KeystoreResult

Wallet DeKeystore

enResult := "xxxxxxx"
pwd := "11111"
udid := "AOIJF-QWEQR-VDFBET-YTAWWE"
// Decode
deResult := DeKeystore(enResult, pwd, udid)
fmt.Println("PrivateKey : ", deResult.Result)

Popular repositories

  1. hello-wold hello-wold Public

    Melakukan yang terbaik

  2. Pratama6 Pratama6 Public

    Config files for my GitHub profile.

    C

  3. ps-signup-email-airdrop ps-signup-email-airdrop Public

    Forked from Apillon/ps-signup-email-airdrop

    TypeScript