Skip to content

sniperem/namebase

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Namebase Exchange API client in Go

Go client for interacting with Namebase Exchange API.

Usage

Some requests require an API key. You can generate a key from https://www.namebase.io/pro.

See the original API documentation: https://github.com/namebasehq/exchange-api-documentation/

Installation

Requirements

  • go 1.10 or greater

Install

go get github.com/sniperem/namebase

Usage

Query order book:

pair := namebase.NewCurrencyPair("hns", "btc")
if d, err := nb.GetDepth(pair, 0); err != nil {
    log.Fatal(err)
} else {
    log.Printf("ask 1: %+v, bid 1: %+v", d.Asks[0], d.Bids[0])
}

Place order

if o, err := nb.LimitBuy(decimal.NewFromFloat(100), decimal.NewFromFloat(0.00009),pair); err != nil {
    log.Print("failed to buy: ", err)
}

Query account info

if acct, err := nb.GetAccount(); err != nil {
    log.Print("failed to get account info: ", err)
} else {
    log.Printf("%+v", acct)
}

Withdraw assets (change deposit address before testing, or it would deposit to my wallet) 😛

tokenAmount := decimal.NewFromFloat(2000)
if err := nb.Withdraw("HNS", tokenAmount,
    "hs1qc7kmegpjkn4qrhuactul9feu69nvsqnjpkk6sy", ""); err != nil {
    t.Error(err)
	}

Maintain a local order book:

if chDepth, err := nb.SubDepth(pair); err != nil {
    log.Print("failed to subscribe order book")
} else {
    go func() {
        for d := range chDepth {
            log.Printf("ask 1: %+v, bid 1: %+v", d.Asks[0], d.Bids[0])
        }
    }()
}

Subscribe trade info of pair:

if chTrade, err := nb.SubTrades(pair); err != nil {
    log.Print("failed to subscribe trade info")
} else {
    go func() {
        for t := range chTrade {
            log.Printf("latest trade: %+v",t)
        }
    }()
}