项目作者: sniperem

项目描述 :
API client of Namebase exchange
高级语言: Go
项目地址: git://github.com/sniperem/namebase.git
创建时间: 2020-02-23T07:25:37Z
项目社区:https://github.com/sniperem/namebase

开源协议:MIT License

下载


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:

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

Place order

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

Query account info

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

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

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

Maintain a local order book:

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

Subscribe trade info of pair:

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