amir-the-h / okex Goto Github PK
View Code? Open in Web Editor NEWGolang API wrapper of OkEX
License: Apache License 2.0
Golang API wrapper of OkEX
License: Apache License 2.0
Line 140 in 4b18bcd
应该传入 requests.OrderDetails
而不是 requests.OrderList
method /api/v5/public/time
and and others public methods return empty response and nil err on version v1.0.30-alpha, but v1.0.29-alpha is OK.
from v1.0.7-alpha version stopped receiving orderBook via web socket
up to v1.0.6-alpha version inclusive method client.Ws.Public.OrderBook(reqWS, obCh) returns data to the channel
so far I haven't looked deeper, maybe I'm doing something wrong
@amir-the-h i am unable to place the order.
in response of Place order function i found below error with status 50101
Msg:Broker id of APIKey does not match current environment.
check API key and secret the value of Key and secret is correct.
Important Point
I am using testmod of API.
run with a --race flag gives warnings on given functions (api.ws.sender and api.ws.receiver) running in goroutines
Describe the bug
fatal error: concurrent map read and map write
goroutine 28 [running]:
runtime.throw({0x75b602, 0x6edb80})
/usr/local/go/src/runtime/panic.go:1198 +0x71 fp=0xc00015ae10 sp=0xc00015ade0 pc=0x434991
runtime.mapaccess1(0x6fee40, 0xc000179170, 0xa3a700)
/usr/local/go/src/runtime/map.go:411 +0x1f7 fp=0xc00015ae50 sp=0xc00015ae10 pc=0x40f737
github.com/amir-the-h/okex/api/ws.(*ClientWs).sender(0xc00032c000, 0x0)
/go/pkg/mod/github.com/amir-the-h/[email protected]/api/ws/client.go:282 +0x212 fp=0xc00015af88 sp=0xc00015ae50 pc=0x6bf992
github.com/amir-the-h/okex/api/ws.(*ClientWs).dial.func2()
/go/pkg/mod/github.com/amir-the-h/[email protected]/api/ws/client.go:245 +0x25 fp=0xc00015afe0 sp=0xc00015af88 pc=0x6bf645
runtime.goexit()
/usr/local/go/src/runtime/asm_amd64.s:1581 +0x1 fp=0xc00015afe8 sp=0xc00015afe0 pc=0x463ee1
created by github.com/amir-the-h/okex/api/ws.(*ClientWs).dial
/go/pkg/mod/github.com/amir-the-h/[email protected]/api/ws/client.go:244 +0x29f
To Reproduce
cli := ws.NewClient()
ch := make(chan *pub.MarkPrice)
// subscribe mark price channel
cli.Public.MarkPrice(req, ch)
for {
select {
case mark:= <- ch:
//
handlePrice(mark)
ticker.Reset(time.Minute)
case <-ticker.C:
// ticker triggered, the websocket may be broken, try reconnect
cli.Cancel()
cli = ws.NewClient()
// resubscribe
cli.Public.MarkPrice(req, ch)
}
}
Expected behavior
no panic
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):
happened in macos and ubuntu
Golang (please complete the following information):
Additional context
Add any other context about the problem here.
Hello @amir-the-h!
/github.com/amir-the-h/[email protected]/api/ws/client.go:238
conn, res, err := websocket.DefaultDialer.Dial(string(c.url[p]), nil)
defer res.Body.Close()
panic: runtime error: invalid memory address or nil pointer dereference
Can this problem be caused due to res nil?
Thanks!
Describe the bug
I can't fetch tickers because of wrong JSON field declaration
To Reproduce
Steps to reproduce the behavior:
client.Rest.Market = rest.NewMarket(client.Rest)
getSwapTickers := market.GetTickers{
InstType: okex.SwapInstrument,
}
swapTickers, err := client.Rest.Market.GetTickers(getSwapTickers)
if err != nil {
log.Fatalln(err)
}
json: invalid use of ,string struct tag, trying to unmarshal "SWAP" into okex.InstrumentType
Additional information
Actually I have fixed it already, so it's just representative issue to make a PR
If it is an array, this can only go back to the first data(https://github.com/amir-the-h/okex/blob/eb593335af79923723db716bf2d76b92ba4fdcf6/api/rest/client.go#L81)
If it is an array, okex.S2M(req) will also be empty when parsing
Describe the bug
not consume any data in StructuredEventChan.is this channel is necessary?
Hi,
How to subscribe with websocket to many symbols at same time? For example, BTCUSD, ETHUSD, ....
err = client.Ws.Public.OrderBook(ws_public_requests.OrderBook{
InstID: "BTC-USD-SWAP",
Channel: "books",
}, obCh)
Thanks
Missing maxLmtSz、maxMktSz......
I use the Withdrawal method to extract eth, Received the following return
{"code":"58207","data":[],"msg":"Withdrawal address is not whitelisted for verification exemption"}
How can I automatically add addresses to the white list?
Hi, why we need two mutex mu
and rmu
? if mu
stand for write lock and rmu
stand for read lock, why don't we simply use one single sync.RWMutex
instead?
Describe the bug
go channel reception has never been processed, resulting in continuous goroutine leaks
case "mark-price":
e := public.MarkPrice{}
err := json.Unmarshal(data, &e)
if err != nil {
return false
}
go func() {
if c.mpCh != nil {
c.mpCh <- &e
}
//goroutine stuck here
c.StructuredEventChan <- e
}()
return true
To Reproduce
invoke websokcet subscribe api and receive websocket events with my own channels.
Expected behavior
goroutine exit properly
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):
Golang (please complete the following information):
Additional context
version = v1.1.4-alpha
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.