Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/bchainhub/go-core-hdwallet


https://github.com/bchainhub/go-core-hdwallet

Last synced: about 11 hours ago
JSON representation

Awesome Lists containing this project

README

        




logo






# go-core-hdwallet

> Ethereum HD Wallet derivations from [mnemonic] seed in Go (golang). Implements the [go-core](https://github.com/core-coin/go-core) [`accounts.Wallet`](https://github.com/core-coin/go-core/blob/master/accounts/accounts.go) interface.

[![License](http://img.shields.io/badge/license-MIT-blue.svg)](https://raw.githubusercontent.com/miguelmota/go-core-hdwallet/master/LICENSE) [![Build Status](https://travis-ci.org/miguelmota/go-core-hdwallet.svg?branch=master)](https://travis-ci.org/miguelmota/go-core-hdwallet) [![Go Report Card](https://goreportcard.com/badge/github.com/cryptohub-digital/go-core-hdwallet?)](https://goreportcard.com/report/github.com/cryptohub-digital/go-core-hdwallet) [![GoDoc](https://godoc.org/github.com/cryptohub-digital/go-core-hdwallet?status.svg)](https://godoc.org/github.com/cryptohub-digital/go-core-hdwallet)

## Install

```bash
go get -u github.com/cryptohub-digital/go-core-hdwallet
```

## Documenation

[https://godoc.org/github.com/cryptohub-digital/go-core-hdwallet](https://godoc.org/github.com/cryptohub-digital/go-core-hdwallet)

## Getting started

```go
package main

import (
"fmt"
"log"

"github.com/cryptohub-digital/go-core-hdwallet"
)

func main() {
mnemonic := "tag volcano eight thank tide danger coast health above argue embrace heavy"
wallet, err := hdwallet.NewFromMnemonic(mnemonic)
if err != nil {
log.Fatal(err)
}

path := hdwallet.MustParseDerivationPath("m/44'/60'/0'/0/0")
account, err := wallet.Derive(path, false)
if err != nil {
log.Fatal(err)
}

fmt.Println(account.Address.Hex()) // 0xC49926C4124cEe1cbA0Ea94Ea31a6c12318df947

path = hdwallet.MustParseDerivationPath("m/44'/60'/0'/0/1")
account, err = wallet.Derive(path, false)
if err != nil {
log.Fatal(err)
}

fmt.Println(account.Address.Hex()) // 0x8230645aC28A4EdD1b0B53E7Cd8019744E9dD559
}
```

### Signing transaction

```go
package main

import (
"log"
"math/big"

"github.com/davecgh/go-spew/spew"
"github.com/core-coin/go-core/common"
"github.com/core-coin/go-core/core/types"
"github.com/cryptohub-digital/go-core-hdwallet"
)

func main() {
mnemonic := "tag volcano eight thank tide danger coast health above argue embrace heavy"
wallet, err := hdwallet.NewFromMnemonic(mnemonic)
if err != nil {
log.Fatal(err)
}

path := hdwallet.MustParseDerivationPath("m/44'/60'/0'/0/0")
account, err := wallet.Derive(path, true)
if err != nil {
log.Fatal(err)
}

nonce := uint64(0)
value := big.NewInt(1000000000000000000)
toAddress := common.HexToAddress("0x0")
gasLimit := uint64(21000)
gasPrice := big.NewInt(21000000000)
var data []byte

tx := types.NewTransaction(nonce, toAddress, value, gasLimit, gasPrice, data)
signedTx, err := wallet.SignTx(account, tx, nil)
if err != nil {
log.Fatal(err)
}

spew.Dump(signedTx)
}
```

## Test

```bash
make test
```

## License

[MIT](LICENSE)