cryptocurrency

package module
v1.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 14, 2020 License: MIT Imports: 4 Imported by: 1

README

Cryptocurrency API

Stateless cryptocurrency API.

Requirements:

  • Bitcoin: electrum wallet in $PATH
  • Ethereum: export INFURA_API_KEY=... from infura.io (it's free). It'll work even without, but there are some limits on queries.

Start:

go get -u code.dumpstack.io/lib/cryptocurrency
go test -v code.dumpstack.io/lib/cryptocurrency/...

Usage:

package main

import (
    "log"

    "code.dumpstack.io/lib/cryptocurrency"
)

func main() {
    c := cryptocurrency.Bitcoin
    dest := "mk84dHbQoUHWaWGuYspx6GXWgcjB9CuQqw"
    // c := cryptocurrency.Ethereum
    // dest := "0xD98660C76443A8A043a19499048EeC4FB06f2581"

    err := c.Testnet(true)
    if err != nil {
            log.Fatal(err)
    }

    seed, address, err := c.GenWallet()
    if err != nil {
            log.Fatal(err)
    }
    log.Println(seed, address)

    balance, err := c.Balance(seed)
    log.Println(balance)
    if err != nil {
            log.Fatal(err)
    }

    valid, err := c.Validate(dest)
    if err != nil {
            log.Fatal(err)
    }
    if valid {
            log.Println("address", dest, "is valid")
    } else {
            log.Fatal("address", dest, "is invalid")
    }

    amount := float64(0.1)
    tx, err := c.Send(seed, dest, amount)
    // tx, err := c.SendUnits(seed, dest, wei) // precise version
    if err != nil {
            log.Println("here it'll exit because there's no money inside new wallet")
            log.Fatal(err)
    }
    log.Println(tx)
}

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Cryptocurrency

type Cryptocurrency int
const (
	Bitcoin Cryptocurrency = iota
	Ethereum
	Monero
	Cardano
)

func (Cryptocurrency) Balance

func (t Cryptocurrency) Balance(seed string) (amount float64, err error)

func (Cryptocurrency) BalanceUnits

func (t Cryptocurrency) BalanceUnits(seed string) (units *big.Int, err error)

BalanceUnits returns the balance of the wallet (not address!) in Satoshi/Wei/etc.

func (Cryptocurrency) GenWallet

func (t Cryptocurrency) GenWallet() (seed, address string, err error)

func (Cryptocurrency) Send

func (t Cryptocurrency) Send(seed, dest string, amount float64) (tx string, err error)

func (Cryptocurrency) SendAll

func (t Cryptocurrency) SendAll(seed, dest string) (tx string, err error)

func (Cryptocurrency) SendUnits

func (t Cryptocurrency) SendUnits(seed, dest string, units *big.Int) (tx string, err error)

SendUnits send units amount of Satoshi/Wei/etc. to the address dest

func (Cryptocurrency) Testnet

func (t Cryptocurrency) Testnet(state bool) (err error)

func (Cryptocurrency) Validate

func (t Cryptocurrency) Validate(address string) (valid bool, err error)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL