Code Monkey home page Code Monkey logo

tomox-sdk's People

Contributors

naviat avatar nghiatomo avatar piavgh avatar thanhnguyennguyen avatar thanhson1085 avatar thanhvk avatar tubackkhoa avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

tomox-sdk's Issues

Support order nonce 0

Currently, TomoX-SDK does not support order with nonce 0, but tomox supports it. So we should fix on TomoX-SDK side.

Fix unnittest

Need to make current unittest success, then travis can pass the tests

Remove redundant config params

Remove:

deposit:
  tomochain:
    distribution_public_key: 0x59B8515E7fF389df6926Cd52a086B0f1f46C630A
    issuer_public_key: 0x59B8515E7fF389df6926Cd52a086B0f1f46C630A
    lock_unix_timestamp: 0
    signer_private_key: 0x3411b45169aa5a8312e51357db68621031020dcf46011d7431db1bbb6d3922ce
    starting_balance: 100
    token_asset_code: WETH

Change:

ethereum:

To:

tomochain:

Support Price Alert

As a user, I want to set the price alert so that when the latest price crosses above or below the target price, I will receive an email notification.

Fiat Price (USD)

We need to track the price of coins/tokens by USD in real time

Invalid memory address or nil pointer dereference

tomochainINFO 04:53:14 at ws/connection.go:84 in readHandler():orders/NEW_ORDER
tomochainDEBU 04:53:14 at endpoints/order.go:595 in handleWSNewOrder():Payload: map[amount:10000000000000000 baseToken:0x4d7ea2ce949216d6b120f3aa10164173615a2b6c exchangeAddress:0x0D3ab14BBaD3D99F4203bd7a11aCB94882050E7e hash:0x42673c7ecd1289d9ee022045a8026db2e5e80a3e7017051709c56298ec401e4e makeFee:1 nonce:23 pricepoint:2001000000000000000000 quoteToken:0x0000000000000000000000000000000000000001 side:BUY signature:map[R:0x4ff857e070fe67a315db212d15d37f06cac2f83a59f49ef25ac7521d1cf56327 S:0x0c99fc943ed1f7f62e081bc512c682fe05c64ababa0f8e968cb43eaaf5db5de9 V:28] takeFee:1 userAddress:0x8fB1047e874d2e472cd08980FF8383053dd83102]#
tomochainINFO 04:53:14 at ws/orders.go:52 in RegisterOrderConnection():Registering new order connection
tomochainINFO 04:53:14 at ws/orders.go:59 in RegisterOrderConnection():Registering a new order connection
tomochainINFO 04:53:14 at ws/connection.go:146 in RegisterConnectionUnsubscribeHandler():Registering a new unsubscribe handler
tomochainINFO 04:53:14 at ws/orders.go:62 in RegisterOrderConnection():Number of connections for this address: %v 1
tomochainINFO 04:53:14 at ws/main.go:6 in isClientConnected():Client is connected
tomochainINFO 04:53:14 at services/validator.go:37 in ValidateAvailableBalance():ValidateAvailableBalance start...
tomochainINFO 04:53:14 at ethereum/provider.go:214 in Balance():GetBalanceAt: 904625697166532776746648320380374280103671755200326948049329775061821325312
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0xce41d3]

goroutine 16974 [running]:
github.com/tomochain/tomox-sdk/daos.(*OrderDao).AddNewOrder(0xc00078c1e0, 0xc000870340, 0xc0007ea370, 0xae, 0x0, 0x0)
        /home/ubuntu/tomox-sdk/daos/order.go:1013 +0x3c3
github.com/tomochain/tomox-sdk/engine.(*OrderBook).newOrder(0xc000cf2480, 0xc000870340, 0x0, 0x0)
        /home/ubuntu/tomox-sdk/engine/orderbook.go:71 +0xb0
github.com/tomochain/tomox-sdk/engine.(*Engine).handleNewOrder(0xc00009ab40, 0xc000cd4500, 0x265, 0x267, 0x0, 0x0)
        /home/ubuntu/tomox-sdk/engine/engine.go:130 +0x38d
github.com/tomochain/tomox-sdk/engine.(*Engine).HandleOrders(0xc00009ab40, 0xc001149020, 0x0, 0x0)
        /home/ubuntu/tomox-sdk/engine/engine.go:78 +0x2cc
created by github.com/tomochain/tomox-sdk/rabbitmq.(*Connection).SubscribeOrders.func1.1
        /home/ubuntu/tomox-sdk/rabbitmq/orders.go:32 +0x20e

Close time and open time is not correct

API:
https://dex.devnet.tomochain.com/api/ohlcv?baseToken=0x4d7eA2cE949216D6b120f3AA10164173615A2b6C&quoteToken=0x0000000000000000000000000000000000000001&timeInterval=1m&from=1566752400&to=1566813267

Return:
{"data":[{"close":"2000000000000000000000","closeTime":"2019-08-26T09:47:38.025Z","count":"3","high":"2000000000000000000000","low":"2000000000000000000000","open":"2000000000000000000000","openTime":"2019-08-26T09:47:06.021Z","pair":{"baseToken":"0x4d7eA2cE949216D6b120f3AA10164173615A2b6C","pairName":"BTC/TOMO","quoteToken":"0x0000000000000000000000000000000000000001"},"timestamp":1566812820000,"volume":"30000000000000000"},{"close":"19000000000000000000000","closeTime":"2019-08-26T09:48:40.022Z","count":"1","high":"19000000000000000000000","low":"19000000000000000000000","open":"19000000000000000000000","openTime":"2019-08-26T09:48:40.022Z","pair":{"baseToken":"0x4d7eA2cE949216D6b120f3AA10164173615A2b6C","pairName":"BTC/TOMO","quoteToken":"0x0000000000000000000000000000000000000001"},"timestamp":1566812880000,"volume":"10000000000000000"}]}

Time interval is 1m but close time and open time is equal. If i change time interval is 5m => range of close time and end time do not equal 5m.

Pls check!

closeTime, openTime is not correct for OHLCV api

https://dex.devnet.tomochain.com/api/ohlcv?baseToken=0x4d7eA2cE949216D6b120f3AA10164173615A2b6C&quoteToken=0x0000000000000000000000000000000000000001&timeInterval=5m&from=1566493200&to=1566543600

Return data:

{"close":"20439780000000000000000","closeTime":"0001-01-01T00:00:00Z","count":"10","high":"20492490000000000000000","low":"20418540000000000000000","open":"20418540000000000000000","openTime":"0001-01-01T00:00:00Z","pair":{"baseToken":"0x4d7eA2cE949216D6b120f3AA10164173615A2b6C","pairName":"BTC/TOMO","quoteToken":"0x0000000000000000000000000000000000000001"},"timestamp":1566527100000,"volume":"24441888802147940"},{"close":"20515760000000000000000","closeTime":"0001-01-01T00:00:00Z","count":"5","high":"20515760000000000000000","low":"20515760000000000000000","open":"20515760000000000000000","openTime":"0001-01-01T00:00:00Z","pair":{"baseToken":"0x4d7eA2cE949216D6b120f3AA10164173615A2b6C","pairName":"BTC/TOMO","quoteToken":"0x0000000000000000000000000000000000000001"},"timestamp":1566527400000,"volume":"20000000000000000"},
Allways format:
0001-01-01T00:00:00Z

exception server

tomochainINFO 04:58:55 at ws/connection.go:48 in func1():Closing connection
tomochainINFO 04:58:55 at ws/notification.go:35 in func1():%v connections before unsubscription 2
tomochainINFO 04:58:55 at ws/notification.go:28 in func1():In unsubscription handler
tomochainINFO 04:58:55 at ws/notification.go:35 in func1():%v connections before unsubscription 2
panic: runtime error: slice bounds out of range

goroutine 2959 [running]:
github.com/tomochain/tomox-sdk/ws.NotificationSocketUnsubscribeHandler.func1(0xc0004bd2c0)
/home/ubuntu/tomox-sdk/ws/notification.go:38 +0x763
created by github.com/tomochain/tomox-sdk/ws.(*Client).closeConnection
/home/ubuntu/tomox-sdk/ws/client.go:56 +0x85
panic: runtime error: slice bounds out of range

goroutine 2960 [running]:
github.com/tomochain/tomox-sdk/ws.NotificationSocketUnsubscribeHandler.func1(0xc0004bd2c0)
/home/ubuntu/tomox-sdk/ws/notification.go:38 +0x763
created by github.com/tomochain/tomox-sdk/ws.(*Client).closeConnection
/home/ubuntu/tomox-sdk/ws/client.go:56 +0x85

availableBalance = 0

{"data":{"address":"0x8fb1047e874d2e472cd08980ff8383053dd83102","createdAt":"2019-08-23 08:06:05.169 +0000 UTC","favoriteTokens":{},"id":"5d5f9e6d2d9c190af64c9905","isBlocked":false,"tokenBalances":{"0x0000000000000000000000000000000000000001":{"address":"0x0000000000000000000000000000000000000001","availableBalance":"0","balance":"50000000000000000000000","inOrderBalance":"0","symbol":"TOMO"},"0x4d7eA2cE949216D6b120f3AA10164173615A2b6C":{"address":"0x4d7eA2cE949216D6b120f3AA10164173615A2b6C","availableBalance":"0","balance":"50000000000000000000000","inOrderBalance":"0","symbol":"BTC"},"0xC2fa1BA90b15E3612E0067A0020192938784D9C5":{"address":"0xC2fa1BA90b15E3612E0067A0020192938784D9C5","availableBalance":"0","balance":"50000000000000000000000","inOrderBalance":"0","symbol":"ETH"}},"updatedAt":"2019-08-23 08:06:05.169 +0000 UTC"}}

Allow to swap ETH from Ethereum blockchain

A user can deposit ETH directly into DEX by using Deposit functionality.

Steps:

  • A random address X (that managed by DEX) will be generated
  • User sends native ETH (on Ethereum blockchain) to this address X
  • DEX scans Ethereum blocks
  • DEX processes Ethereum transactions in each block to find the transaction with exact To address (that equals to X) and get the transaction Value
  • DEX send corresponding ETH tokens (on Tomochain) to the wallet that user manages
  • Done

error: concurrent map read and map write

NFO 09:51:15 at daos/order.go:984 in Aggregate():[map[$match:map[side:BUY status:map[$in:[NEW OPEN PARTIAL_FILLED]]]] map[$group:map[_id:map[baseToken:$baseToken pairName:$pairName quoteToken:$quoteToken] bestPrice:map[$max:$price] orderCount:map[$sum:1] orderVolume:map[$sum:map[$subtract:[map[$toDecimal:$quantity] map[$toDecimal:$filledAmount]]]]]]]
INFO 09:51:15 at daos/order.go:984 in Aggregate():[map[$match:map[side:SELL status:map[$in:[NEW OPEN PARTIAL_FILLED]]]] map[$group:map[_id:map[baseToken:$baseToken pairName:$pairName quoteToken:$quoteToken] bestPrice:map[$min:$price] orderCount:map[$sum:1] orderVolume:map[$sum:map[$subtract:[map[$toDecimal:$quantity] map[$toDecimal:$filledAmount]]]]]]]
1568713755000RAW DATA: map[_id:map[baseToken:0x4d7eA2cE949216D6b120f3AA10164173615A2b6C pairName:BTC/TOMO quoteToken:0x0000000000000000000000000000000000000001] close:27927320000000000000000 closeTime:2019-09-17 09:49:15.03 +0000 UTC count:239 high:30000000000000000000000 low:27756030000000000000000 open:29000000000000000000000 openTime:2019-09-17 07:41:04.899 +0000 UTC volume:6788600737812105940]
2019-09-17 07:41:04.899 +0000 UTC
2019-09-17 09:49:15.03 +0000 UTC
INFO 09:51:18 at daos/order.go:984 in Aggregate():[map[$match:map[side:BUY status:map[$in:[NEW OPEN PARTIAL_FILLED]]]] map[$group:map[_id:map[baseToken:$baseToken pairName:$pairName quoteToken:$quoteToken] bestPrice:map[$max:$price] orderCount:map[$sum:1] orderVolume:map[$sum:map[$subtract:[map[$toDecimal:$quantity] map[$toDecimal:$filledAmount]]]]]]]
INFO 09:51:18 at daos/order.go:984 in Aggregate():[map[$match:map[side:SELL status:map[$in:[NEW OPEN PARTIAL_FILLED]]]] map[$group:map[_id:map[baseToken:$baseToken pairName:$pairName quoteToken:$quoteToken] bestPrice:map[$min:$price] orderCount:map[$sum:1] orderVolume:map[$sum:map[$subtract:[map[$toDecimal:$quantity] map[$toDecimal:$filledAmount]]]]]]]
1568713755000fatal error: concurrent map read and map write
INFO 09:51:18 at ws/connection.go:48 in func1():Closing connection

goroutine 26301 [running]:
runtime.throw(0xf5da8b, 0x21)
        /usr/local/go/src/runtime/panic.go:617 +0x72 fp=0xc002328760 sp=0xc002328730 pc=0x433bd2
runtime.mapaccess1_fast64(0xdcd0a0, 0xc000687bc0, 0xc001e284c0, 0x56)
        /usr/local/go/src/runtime/map_fast64.go:21 +0x1b3 fp=0xc002328788 sp=0xc002328760 pc=0x417303
github.com/tomochain/tomox-sdk/ws.(*OrderBookSocket).UnsubscribeChannel(...)
        /home/ubuntu/go/src/github.com/tomochain/tomox-sdk/ws/orderbook.go:71
github.com/tomochain/tomox-sdk/ws.(*OrderBookSocket).UnsubscribeChannelHandler.func1(0xc001e284c0)
        /home/ubuntu/go/src/github.com/tomochain/tomox-sdk/ws/orderbook.go:59 +0x86 fp=0xc0023287d8 sp=0xc002328788 pc=0xb3a056
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1337 +0x1 fp=0xc0023287e0 sp=0xc0023287d8 pc=0x463211
created by github.com/tomochain/tomox-sdk/ws.(*Client).closeConnection
        /home/ubuntu/go/src/github.com/tomochain/tomox-sdk/ws/client.go:56 +0x85

goroutine 1 [IO wait]:
internal/poll.runtime_pollWait(0x7f5f40a98870, 0x72, 0x0)
        /usr/local/go/src/runtime/netpoll.go:182 +0x56
internal/poll.(*pollDesc).wait(0xc000327c18, 0x72, 0x0, 0x0, 0xf16b70)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x9b
internal/poll.(*pollDesc).waitRead(...)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Accept(0xc000327c00, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
        /usr/local/go/src/internal/poll/fd_unix.go:384 +0x1ba
net.(*netFD).accept(0xc000327c00, 0xc000046570, 0xc000046500, 0x411f69)
        /usr/local/go/src/net/fd_unix.go:238 +0x42
net.(*TCPListener).accept(0xc0000d60d8, 0xc000a37d18, 0x91e86e6e, 0xcfc0cc5ad33f55e5)
        /usr/local/go/src/net/tcpsock_posix.go:139 +0x32
net.(*TCPListener).AcceptTCP(0xc0000d60d8, 0xc000a37d40, 0x4c06d6, 0x5d80ac91)
        /usr/local/go/src/net/tcpsock.go:247 +0x48
net/http.tcpKeepAliveListener.Accept(0xc0000d60d8, 0xc000a37d90, 0x18, 0xc000000180, 0x6dd6c4)
        /usr/local/go/src/net/http/server.go:3264 +0x2f
net/http.(*Server).Serve(0xc00036ad00, 0x1204220, 0xc0000d60d8, 0x0, 0x0)
        /usr/local/go/src/net/http/server.go:2859 +0x22d
net/http.(*Server).ListenAndServe(0xc00036ad00, 0xc00036ad00, 0x11efc00)
        /usr/local/go/src/net/http/server.go:2797 +0xe4
net/http.ListenAndServe(...)
        /usr/local/go/src/net/http/server.go:3037
github.com/tomochain/tomox-sdk/server.Start()
        /home/ubuntu/go/src/github.com/tomochain/tomox-sdk/server/server.go:62 +0x498
main.main()
        /home/ubuntu/go/src/github.com/tomochain/tomox-sdk/main.go:6 +0x20

goroutine 20 [chan receive, 130 minutes]:
github.com/rjeczalik/notify.(*nonrecursiveTree).dispatch(0xc0000d8b40, 0xc0000d8a80)
        /root/go/pkg/mod/github.com/rjeczalik/[email protected]/tree_nonrecursive.go:36 +0xb6
created by github.com/rjeczalik/notify.newNonrecursiveTree
        /root/go/pkg/mod/github.com/rjeczalik/[email protected]/tree_nonrecursive.go:29 +0xdd

goroutine 21 [chan receive, 130 minutes]:
github.com/rjeczalik/notify.(*nonrecursiveTree).internal(0xc0000d8b40, 0xc0000d8ae0)
        /root/go/pkg/mod/github.com/rjeczalik/[email protected]/tree_nonrecursive.go:81 +0x58
created by github.com/rjeczalik/notify.newNonrecursiveTree
        /root/go/pkg/mod/github.com/rjeczalik/[email protected]/tree_nonrecursive.go:30 +0x109

goroutine 22 [select]:
github.com/ethereum/go-ethereum/consensus/ethash.(*Ethash).remote(0xc00025e000, 0x0, 0x0, 0x0, 0x7f5f40b00b00)
        /root/go/pkg/mod/github.com/ethereum/[email protected]/consensus/ethash/sealer.go:304 +0x514
created by github.com/ethereum/go-ethereum/consensus/ethash.New
        /root/go/pkg/mod/github.com/ethereum/[email protected]/consensus/ethash/ethash.go:496 +0x35c

goroutine 23 [chan receive, 130 minutes]:
github.com/ethereum/go-ethereum/core.(*txSenderCacher).cache(0xc00025c1c0)
        /root/go/pkg/mod/github.com/ethereum/[email protected]/core/tx_cacher.go:63 +0x97
created by github.com/ethereum/go-ethereum/core.newTxSenderCacher
        /root/go/pkg/mod/github.com/ethereum/[email protected]/core/tx_cacher.go:55 +0x9f

goroutine 24 [chan receive, 130 minutes]:
github.com/ethereum/go-ethereum/core.(*txSenderCacher).cache(0xc00025c1c0)
        /root/go/pkg/mod/github.com/ethereum/[email protected]/core/tx_cacher.go:63 +0x97
created by github.com/ethereum/go-ethereum/core.newTxSenderCacher
        /root/go/pkg/mod/github.com/ethereum/[email protected]/core/tx_cacher.go:55 +0x9f

Real-time Markets Page

At the moment, the prices in Markets page are not updated in real-time because this page calls REST API only.

We will add WebSocket to make it "lives"

Implement Index by USD

In the Markets page, we will have BTC Index, ETH Index, XRP Index, TOMO Index. All index is calculated by USD fiat.

Solution: We have to run cron to periodically fetch USD price for these cryptocurrencies and save in the collection "fiat_price"

Alert and cannot cancel Orders

After makes an order, we cannot cancel it in Orders list. Client response a message informed that No order with corresponding hash

screen shot 2018-12-26 at 10 08 55 am

Error: Order amount too low

This error happens when user submits new order (clicking on Buy/Sell buttons)

Parameters sent from client code:

amount: "5000000000000000000000"
baseToken: "0x7D2d3073EaB94BA50F83A60Cea14020F0C906Da0"
exchangeAddress: "0xc1F424996039cc5B037dfB073bcd6e6915F0dfab"
hash: "0xd403dcc32af59560b96355fbd5170c34e7484275715bc4144e5c160209a655c1"
makeFee: "0"
nonce: "7064685038749838"
pricepoint: "1000000"
quoteToken: "0x53DDd545882dec853226dC8255268C7760276695"
side: "BUY"
signature:
    r: "0x236d83fde81312f5053192b9a660b59ff15e9ad28c59a2684d45a2d0953d872f"
    s: "0x49afa76ed61bd8b9f6d3964bc23d228999a8f274c3e64451d3c01b015cbc5344"
    v: 27
__proto__: Object
status: "NEW"
takeFee: "0"
userAddress: "0x28074f8D0fD78629CD59290Cac185611a8d60109"

Server returns error Error: Order amount too low

Please check to see why server returns this error.

Validate available balance shows panic error

tomochainINFO 09:17:02 at ws/connection.go:84 in readHandler():orders/NEW_ORDER
tomochainDEBU 09:17:02 at endpoints/order.go:595 in handleWSNewOrder():Payload: map[amount:56633254934030750 baseToken:0x4d7ea2ce949216d6b120f3aa10164173615a2b6c exchangeAddress:0x0D3ab14BBaD3D99F4203bd7a11aCB94882050E7e hash:0x1c33e3042d4d9a9709d1ca8d0f974c531a8b1857a1c3711f649fa12eac9c6e09 makeFee:1 nonce:1038 pricepoint:17657460000000000000000 quoteToken:0x0000000000000000000000000000000000000001 side:SELL signature:map[R:0x0ad7987203801f5d013897c1b277ce3dd3967b93408bb4ee792752d47c3c1709 S:0x3413a4077095f164cdc81d9099b82e4b9dab68e53a88a6a12904bc6beb7c26c7 V:28] takeFee:1 userAddress:0x15e08dE16f534c890828F2a0D935433aF5B3CE0C]#
tomochainINFO 09:17:02 at ws/orders.go:59 in RegisterOrderConnection():Registering new order connection
tomochainINFO 09:17:02 at ws/main.go:11 in isClientConnected():Client is not connected
tomochainINFO 09:17:02 at ws/orders.go:75 in RegisterOrderConnection():Registering a new order connection
tomochainINFO 09:17:02 at ws/connection.go:146 in RegisterConnectionUnsubscribeHandler():Registering a new unsubscribe handler
tomochainINFO 09:17:02 at ws/orders.go:80 in RegisterOrderConnection():Number of connections for this address: %v 1
tomochainINFO 09:17:02 at services/validator.go:37 in ValidateAvailableBalance():ValidateAvailableBalance start...
tomochainERRO 09:17:02 at ethereum/provider.go:199 in BalanceOf():write tcp 172.31.2.55:49162->54.169.177.246:9501: use of closed network connection
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x516759]

goroutine 10451 [running]:
math/big.(*Int).Sub(0xc000763440, 0x0, 0xc000763420, 0xc002a839a0)
    /usr/local/go/src/math/big/int.go:138 +0x29
github.com/tomochain/tomox-sdk/utils/math.Sub(0x0, 0xc000763420, 0x3a4335d9a0f22808)
    /home/ubuntu/tomox-sdk/utils/math/big.go:20 +0x67
github.com/tomochain/tomox-sdk/services.(*ValidatorService).ValidateAvailableBalance(0xc0007bcc80, 0xc000862000, 0x0, 0x0)
    /home/ubuntu/tomox-sdk/services/validator.go:65 +0x621
github.com/tomochain/tomox-sdk/services.(*OrderService).NewOrder(0xc0007ca0a0, 0xc000862000, 0x3a4335d9a0f22808, 0xc00cceb3f5)
    /home/ubuntu/tomox-sdk/services/order.go:168 +0x5e4
github.com/tomochain/tomox-sdk/endpoints.(*orderEndpoint).handleWSNewOrder(0xc00078f9c0, 0xc000976390, 0xc003aabf20)
    /home/ubuntu/tomox-sdk/endpoints/order.go:617 +0x6f7
github.com/tomochain/tomox-sdk/endpoints.(*orderEndpoint).ws(0xc00078f9c0, 0xee28c0, 0xc000976360, 0xc003aabf20)
    /home/ubuntu/tomox-sdk/endpoints/order.go:572 +0x302
created by github.com/tomochain/tomox-sdk/ws.readHandler
    /home/ubuntu/tomox-sdk/ws/connection.go:91 +0x19a

Optimize logs

At the moment, there are many unnecessary logs (most of them are for debugging in the development phase)

We need to optimize it so when the server runs in production mode, it doesn't eat up too much space and performance

Backend auto fatal errors: concurrent map writes

2019/08/23 08:25:00 data:  [0 0 0 0 0 0 0 0 0 0 0 0 112 60 75 43 215 12 22 159 87 23 16 28 174 229 67 41 159 201 70 199 0 0 0 0 0 0 0 0 0 0 0 0 0 0
 0 0 0 0 0 0 0 0 5 75 64 177 248 82 189 160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
 0 0 0 0 0 0 0 0 0 0 0 0 0 160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 32 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
 0 0 0 0 0 3 0 0 0 0 0 0 0 0 0 0 0 0 77 126 162 206 148 146 22 214 177 32 243 170 16 22 65 115 97 90 43 108 0 0 0 0 0 0 0 0 0 0 0 0 194 250 27 169
11 21 227 97 46 0 103 160 2 1 146 147 135 132 217 197 0 0 0 0 0 0 0 0 0 0 0 0 77 126 162 206 148 146 22 214 177 32 243 170 16 22 65 115 97 90 43 10
8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 194 250 27 169 11 21 227 97 46 0 103 160 2 1 146 147 135 132 217 197]
2019/08/23 08:25:00 Relayer data: [[77 126 162 206 148 146 22 214 177 32 243 170 16 22 65 115 97 90 43 108] [194 250 27 169 11 21 227 97 46 0 103 1
60 2 1 146 147 135 132 217 197] [77 126 162 206 148 146 22 214 177 32 243 170 16 22 65 115 97 90 43 108]] [[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
] [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1] [194 250 27 169 11 21 227 97 46 0 103 160 2 1 146 147 135 132 217 197]]
2019/08/23 08:25:00 Token data: BTC BTC [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
2019/08/23 08:25:00 Token data: ETH ETH [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
2019/08/23 08:25:00 Token data: BTC BTC [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
tomochainINFO 08:25:10 at ws/connection.go:48 in func1():Closing connection
tomochainINFO 08:25:10 at ws/connection.go:48 in func1():Closing connection
fatal error: concurrent map writes

goroutine 3793 [running]:
runtime.throw(0xfc1914, 0x15)
        /usr/local/go/src/runtime/panic.go:617 +0x72 fp=0xc000832f48 sp=0xc000832f18 pc=0x433bd2
runtime.mapassign_fast64ptr(0xe3c700, 0xc0000b1e60, 0xc001a6c8c0, 0x56)
        /usr/local/go/src/runtime/map_fast64.go:266 +0x35d fp=0xc000832f88 sp=0xc000832f48 pc=0x417bcd
github.com/tomochain/tomox-sdk/ws.(*PriceBoardSocket).UnsubscribeChannel(...)
        /home/ubuntu/tomox-sdk/ws/price_board.go:71
github.com/tomochain/tomox-sdk/ws.(*PriceBoardSocket).UnsubscribeChannelHandler.func1(0xc001a6c8c0)
        /home/ubuntu/tomox-sdk/ws/price_board.go:58 +0xf2 fp=0xc000832fd8 sp=0xc000832f88 pc=0xb55232
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1337 +0x1 fp=0xc000832fe0 sp=0xc000832fd8 pc=0x463211
created by github.com/tomochain/tomox-sdk/ws.(*Client).closeConnection
        /home/ubuntu/tomox-sdk/ws/client.go:56 +0x85

goroutine 1 [IO wait, 1 minutes]:
internal/poll.runtime_pollWait(0x7fac29e15870, 0x72, 0x0)
        /usr/local/go/src/runtime/netpoll.go:182 +0x56
internal/poll.(*pollDesc).wait(0xc00076ee18, 0x72, 0x0, 0x0, 0xf98d96)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x9b
internal/poll.(*pollDesc).waitRead(...)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Accept(0xc00076ee00, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
        /usr/local/go/src/internal/poll/fd_unix.go:384 +0x1ba
net.(*netFD).accept(0xc00076ee00, 0xc000056a70, 0xc000056a00, 0x411f69)
        /usr/local/go/src/net/fd_unix.go:238 +0x42
net.(*TCPListener).accept(0xc0000101c8, 0xc0007b7d18, 0xea07cd37, 0x5f7e3e07e825bd66)
        /usr/local/go/src/net/tcpsock_posix.go:139 +0x32
net.(*TCPListener).AcceptTCP(0xc0000101c8, 0xc0007b7d40, 0x4c08e6, 0x5d5fa2b7)
        /usr/local/go/src/net/tcpsock.go:247 +0x48
net/http.tcpKeepAliveListener.Accept(0xc0000101c8, 0xc0007b7d90, 0x18, 0xc000000180, 0x6dd8d4)
        /usr/local/go/src/net/http/server.go:3264 +0x2f
net/http.(*Server).Serve(0xc00035ca90, 0x1294c20, 0xc0000101c8, 0x0, 0x0)
        /usr/local/go/src/net/http/server.go:2859 +0x22d
net/http.(*Server).ListenAndServe(0xc00035ca90, 0xc00035ca90, 0x1280160)
        /usr/local/go/src/net/http/server.go:2797 +0xe4
net/http.ListenAndServe(...)
        /usr/local/go/src/net/http/server.go:3037
github.com/tomochain/tomox-sdk/server.Start()
        /home/ubuntu/tomox-sdk/server/server.go:64 +0x498
main.main()
        /home/ubuntu/tomox-sdk/main.go:6 +0x20

goroutine 6 [chan receive, 29 minutes]:
github.com/rjeczalik/notify.(*nonrecursiveTree).dispatch(0xc00009cba0, 0xc00009cae0)
        /home/ubuntu/go/pkg/mod/github.com/rjeczalik/[email protected]/tree_nonrecursive.go:36 +0xb6
created by github.com/rjeczalik/notify.newNonrecursiveTree
        /home/ubuntu/go/pkg/mod/github.com/rjeczalik/[email protected]/tree_nonrecursive.go:29 +0xdd

goroutine 7 [chan receive, 29 minutes]:
github.com/rjeczalik/notify.(*nonrecursiveTree).internal(0xc00009cba0, 0xc00009cb40)
        /home/ubuntu/go/pkg/mod/github.com/rjeczalik/[email protected]/tree_nonrecursive.go:81 +0x58
created by github.com/rjeczalik/notify.newNonrecursiveTree
        /home/ubuntu/go/pkg/mod/github.com/rjeczalik/[email protected]/tree_nonrecursive.go:30 +0x109

goroutine 8 [select]:
github.com/ethereum/go-ethereum/consensus/ethash.(*Ethash).remote(0xc000238000, 0x0, 0x0, 0x0, 0x7fac29e7d400)
        /home/ubuntu/go/pkg/mod/github.com/ethereum/[email protected]/consensus/ethash/sealer.go:304 +0x514
created by github.com/ethereum/go-ethereum/consensus/ethash.New
        /home/ubuntu/go/pkg/mod/github.com/ethereum/[email protected]/consensus/ethash/ethash.go:496 +0x35c

goroutine 9 [chan receive, 29 minutes]:
github.com/ethereum/go-ethereum/core.(*txSenderCacher).cache(0xc0002361e0)
        /home/ubuntu/go/pkg/mod/github.com/ethereum/[email protected]/core/tx_cacher.go:63 +0x97
created by github.com/ethereum/go-ethereum/core.newTxSenderCacher
        /home/ubuntu/go/pkg/mod/github.com/ethereum/[email protected]/core/tx_cacher.go:55 +0x9f

goroutine 10 [chan receive, 29 minutes]:
github.com/ethereum/go-ethereum/core.(*txSenderCacher).cache(0xc0002361e0)
        /home/ubuntu/go/pkg/mod/github.com/ethereum/[email protected]/core/tx_cacher.go:63 +0x97
created by github.com/ethereum/go-ethereum/core.newTxSenderCacher
        /home/ubuntu/go/pkg/mod/github.com/ethereum/[email protected]/core/tx_cacher.go:55 +0x9f

goroutine 11 [chan receive, 29 minutes]:
github.com/ethereum/go-ethereum/core.(*txSenderCacher).cache(0xc0002361e0)
        /home/ubuntu/go/pkg/mod/github.com/ethereum/[email protected]/core/tx_cacher.go:63 +0x97
created by github.com/ethereum/go-ethereum/core.newTxSenderCacher
        /home/ubuntu/go/pkg/mod/github.com/ethereum/[email protected]/core/tx_cacher.go:55 +0x9f

goroutine 12 [chan receive, 29 minutes]:
github.com/ethereum/go-ethereum/core.(*txSenderCacher).cache(0xc0002361e0)
        /home/ubuntu/go/pkg/mod/github.com/ethereum/[email protected]/core/tx_cacher.go:63 +0x97
created by github.com/ethereum/go-ethereum/core.newTxSenderCacher
        /home/ubuntu/go/pkg/mod/github.com/ethereum/[email protected]/core/tx_cacher.go:55 +0x9f

goroutine 13 [chan receive, 29 minutes]:
github.com/ethereum/go-ethereum/core.(*txSenderCacher).cache(0xc0002361e0)
        /home/ubuntu/go/pkg/mod/github.com/ethereum/[email protected]/core/tx_cacher.go:63 +0x97
created by github.com/ethereum/go-ethereum/core.newTxSenderCacher
        /home/ubuntu/go/pkg/mod/github.com/ethereum/[email protected]/core/tx_cacher.go:55 +0x9f

goroutine 14 [chan receive, 29 minutes]:
github.com/ethereum/go-ethereum/core.(*txSenderCacher).cache(0xc0002361e0)
        /home/ubuntu/go/pkg/mod/github.com/ethereum/[email protected]/core/tx_cacher.go:63 +0x97
created by github.com/ethereum/go-ethereum/core.newTxSenderCacher
        /home/ubuntu/go/pkg/mod/github.com/ethereum/[email protected]/core/tx_cacher.go:55 +0x9f

goroutine 15 [chan receive, 29 minutes]:
github.com/ethereum/go-ethereum/core.(*txSenderCacher).cache(0xc0002361e0)
        /home/ubuntu/go/pkg/mod/github.com/ethereum/[email protected]/core/tx_cacher.go:63 +0x97
created by github.com/ethereum/go-ethereum/core.newTxSenderCacher
        /home/ubuntu/go/pkg/mod/github.com/ethereum/[email protected]/core/tx_cacher.go:55 +0x9f

goroutine 16 [chan receive, 29 minutes]:
github.com/ethereum/go-ethereum/core.(*txSenderCacher).cache(0xc0002361e0)
        /home/ubuntu/go/pkg/mod/github.com/ethereum/[email protected]/core/tx_cacher.go:63 +0x97
created by github.com/ethereum/go-ethereum/core.newTxSenderCacher
        /home/ubuntu/go/pkg/mod/github.com/ethereum/[email protected]/core/tx_cacher.go:55 +0x9f

goroutine 34 [chan receive, 29 minutes]:
github.com/ethereum/go-ethereum/core.(*txSenderCacher).cache(0xc0002361e0)
        /home/ubuntu/go/pkg/mod/github.com/ethereum/[email protected]/core/tx_cacher.go:63 +0x97
created by github.com/ethereum/go-ethereum/core.newTxSenderCacher
        /home/ubuntu/go/pkg/mod/github.com/ethereum/[email protected]/core/tx_cacher.go:55 +0x9f

goroutine 35 [chan receive, 29 minutes]:
github.com/ethereum/go-ethereum/core.(*txSenderCacher).cache(0xc0002361e0)
        /home/ubuntu/go/pkg/mod/github.com/ethereum/[email protected]/core/tx_cacher.go:63 +0x97
created by github.com/ethereum/go-ethereum/core.newTxSenderCacher
        /home/ubuntu/go/pkg/mod/github.com/ethereum/[email protected]/core/tx_cacher.go:55 +0x9f

goroutine 36 [chan receive, 29 minutes]:
github.com/ethereum/go-ethereum/core.(*txSenderCacher).cache(0xc0002361e0)
        /home/ubuntu/go/pkg/mod/github.com/ethereum/[email protected]/core/tx_cacher.go:63 +0x97
created by github.com/ethereum/go-ethereum/core.newTxSenderCacher
        /home/ubuntu/go/pkg/mod/github.com/ethereum/[email protected]/core/tx_cacher.go:55 +0x9f

goroutine 37 [chan receive, 29 minutes]:
github.com/ethereum/go-ethereum/core.(*txSenderCacher).cache(0xc0002361e0)
        /home/ubuntu/go/pkg/mod/github.com/ethereum/[email protected]/core/tx_cacher.go:63 +0x97
created by github.com/ethereum/go-ethereum/core.newTxSenderCacher
        /home/ubuntu/go/pkg/mod/github.com/ethereum/[email protected]/core/tx_cacher.go:55 +0x9f

goroutine 38 [chan receive, 29 minutes]:
github.com/ethereum/go-ethereum/core.(*txSenderCacher).cache(0xc0002361e0)
        /home/ubuntu/go/pkg/mod/github.com/ethereum/[email protected]/core/tx_cacher.go:63 +0x97
created by github.com/ethereum/go-ethereum/core.newTxSenderCacher
        /home/ubuntu/go/pkg/mod/github.com/ethereum/[email protected]/core/tx_cacher.go:55 +0x9f

goroutine 39 [chan receive, 29 minutes]:
github.com/ethereum/go-ethereum/core.(*txSenderCacher).cache(0xc0002361e0)
        /home/ubuntu/go/pkg/mod/github.com/ethereum/[email protected]/core/tx_cacher.go:63 +0x97
created by github.com/ethereum/go-ethereum/core.newTxSenderCacher
        /home/ubuntu/go/pkg/mod/github.com/ethereum/[email protected]/core/tx_cacher.go:55 +0x9f

goroutine 40 [chan receive, 29 minutes]:
github.com/ethereum/go-ethereum/core.(*txSenderCacher).cache(0xc0002361e0)
        /home/ubuntu/go/pkg/mod/github.com/ethereum/[email protected]/core/tx_cacher.go:63 +0x97
created by github.com/ethereum/go-ethereum/core.newTxSenderCacher
        /home/ubuntu/go/pkg/mod/github.com/ethereum/[email protected]/core/tx_cacher.go:55 +0x9f

goroutine 41 [chan receive, 29 minutes]:
github.com/ethereum/go-ethereum/core.(*txSenderCacher).cache(0xc0002361e0)
        /home/ubuntu/go/pkg/mod/github.com/ethereum/[email protected]/core/tx_cacher.go:63 +0x97
created by github.com/ethereum/go-ethereum/core.newTxSenderCacher
        /home/ubuntu/go/pkg/mod/github.com/ethereum/[email protected]/core/tx_cacher.go:55 +0x9f

goroutine 42 [runnable]:
github.com/globalsign/mgo.newcoarseTimeProvider.func1(0x17d7840, 0xc000193050)
        /home/ubuntu/go/pkg/mod/github.com/globalsign/[email protected]/coarse_time.go:51 +0x129
created by github.com/globalsign/mgo.newcoarseTimeProvider
        /home/ubuntu/go/pkg/mod/github.com/globalsign/[email protected]/coarse_time.go:48 +0x102

goroutine 49 [syscall, 29 minutes]:
os/signal.signal_recv(0x0)
        /usr/local/go/src/runtime/sigqueue.go:139 +0x9c
os/signal.loop()
        /usr/local/go/src/os/signal/signal_unix.go:23 +0x22
created by os/signal.init.0
        /usr/local/go/src/os/signal/signal_unix.go:29 +0x41

goroutine 80 [chan receive, 29 minutes]:
github.com/tomochain/tomox-sdk/rabbitmq.(*Connection).SubscribeEngineResponses.func1(0xc00023cd80, 0xc0002e5f20, 0xc0006e0790)
        /home/ubuntu/tomox-sdk/rabbitmq/engine.go:92 +0x177
created by github.com/tomochain/tomox-sdk/rabbitmq.(*Connection).SubscribeEngineResponses
        /home/ubuntu/tomox-sdk/rabbitmq/engine.go:63 +0xac

goroutine 26 [sleep, 1 minutes]:
runtime.goparkunlock(...)
        /usr/local/go/src/runtime/proc.go:307
time.Sleep(0x37e11d600)
        /usr/local/go/src/runtime/time.go:105 +0x159
github.com/globalsign/mgo.(*mongoServer).pinger(0xc0006b0000, 0x1)
        /home/ubuntu/go/pkg/mod/github.com/globalsign/[email protected]/server.go:399 +0x47c
created by github.com/globalsign/mgo.newServer
        /home/ubuntu/go/pkg/mod/github.com/globalsign/[email protected]/server.go:105 +0x155

goroutine 81 [chan receive, 29 minutes]:
github.com/streadway/amqp.(*consumers).buffer(0xc00066a420, 0xc000776a20, 0xc0007769c0)
        /home/ubuntu/go/pkg/mod/github.com/streadway/[email protected]/consumers.go:61 +0x351
created by github.com/streadway/amqp.(*consumers).add
        /home/ubuntu/go/pkg/mod/github.com/streadway/[email protected]/consumers.go:97 +0x163

goroutine 97 [IO wait, 1 minutes]:
internal/poll.runtime_pollWait(0x7fac29e15d50, 0x72, 0xffffffffffffffff)
        /usr/local/go/src/runtime/netpoll.go:182 +0x56
internal/poll.(*pollDesc).wait(0xc000043098, 0x72, 0x0, 0x24, 0xffffffffffffffff)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x9b
internal/poll.(*pollDesc).waitRead(...)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Read(0xc000043080, 0xc0006429c0, 0x24, 0x24, 0x0, 0x0, 0x0)
        /usr/local/go/src/internal/poll/fd_unix.go:169 +0x19b
net.(*netFD).Read(0xc000043080, 0xc0006429c0, 0x24, 0x24, 0x0, 0x0, 0x0)
        /usr/local/go/src/net/fd_unix.go:202 +0x4f
net.(*conn).Read(0xc000276338, 0xc0006429c0, 0x24, 0x24, 0x0, 0x0, 0x0)
        /usr/local/go/src/net/net.go:177 +0x69
github.com/globalsign/mgo.fill(0x12a0f00, 0xc000276338, 0xc0006429c0, 0x24, 0x24, 0x0, 0x8e)
        /home/ubuntu/go/pkg/mod/github.com/globalsign/[email protected]/socket.go:584 +0x53
github.com/globalsign/mgo.(*mongoSocket).readLoop(0xc00068a240)
        /home/ubuntu/go/pkg/mod/github.com/globalsign/[email protected]/socket.go:600 +0x53d
created by github.com/globalsign/mgo.newSocket
        /home/ubuntu/go/pkg/mod/github.com/globalsign/[email protected]/socket.go:200 +0x1d7

goroutine 85 [select, 1 minutes]:
github.com/globalsign/mgo.(*mongoCluster).syncServersLoop(0xc00012e0f0)
        /home/ubuntu/go/pkg/mod/github.com/globalsign/[email protected]/cluster.go:417 +0x2e8
created by github.com/globalsign/mgo.newCluster
        /home/ubuntu/go/pkg/mod/github.com/globalsign/[email protected]/cluster.go:75 +0x13b

goroutine 95 [sleep, 1 minutes]:
runtime.goparkunlock(...)
        /usr/local/go/src/runtime/proc.go:307
time.Sleep(0x37e11d600)
        /usr/local/go/src/runtime/time.go:105 +0x159
github.com/globalsign/mgo.(*mongoServer).pinger(0xc00012e690, 0x1)
        /home/ubuntu/go/pkg/mod/github.com/globalsign/[email protected]/server.go:399 +0x47c
created by github.com/globalsign/mgo.newServer
        /home/ubuntu/go/pkg/mod/github.com/globalsign/[email protected]/server.go:105 +0x155

goroutine 87 [sleep]:
runtime.goparkunlock(...)
        /usr/local/go/src/runtime/proc.go:307
time.Sleep(0x37e11d600)
        /usr/local/go/src/runtime/time.go:105 +0x159
github.com/globalsign/mgo.(*mongoServer).pinger(0xc00012e2d0, 0x1)
        /home/ubuntu/go/pkg/mod/github.com/globalsign/[email protected]/server.go:399 +0x47c
created by github.com/globalsign/mgo.newServer
        /home/ubuntu/go/pkg/mod/github.com/globalsign/[email protected]/server.go:105 +0x155

goroutine 90 [IO wait, 29 minutes]:
internal/poll.runtime_pollWait(0x7fac29e15fc0, 0x72, 0xffffffffffffffff)
        /usr/local/go/src/runtime/netpoll.go:182 +0x56
internal/poll.(*pollDesc).wait(0xc000359118, 0x72, 0x0, 0x24, 0xffffffffffffffff)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x9b
internal/poll.(*pollDesc).waitRead(...)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Read(0xc000359100, 0xc00063a060, 0x24, 0x24, 0x0, 0x0, 0x0)
        /usr/local/go/src/internal/poll/fd_unix.go:169 +0x19b
net.(*netFD).Read(0xc000359100, 0xc00063a060, 0x24, 0x24, 0x0, 0x0, 0xc00069bd28)
        /usr/local/go/src/net/fd_unix.go:202 +0x4f
net.(*conn).Read(0xc0002762e8, 0xc00063a060, 0x24, 0x24, 0x0, 0x0, 0x0)
        /usr/local/go/src/net/net.go:177 +0x69
github.com/globalsign/mgo.fill(0x12a0f00, 0xc0002762e8, 0xc00063a060, 0x24, 0x24, 0x0, 0x139)
        /home/ubuntu/go/pkg/mod/github.com/globalsign/[email protected]/socket.go:584 +0x53
github.com/globalsign/mgo.(*mongoSocket).readLoop(0xc000369d40)
        /home/ubuntu/go/pkg/mod/github.com/globalsign/[email protected]/socket.go:600 +0x53d
created by github.com/globalsign/mgo.newSocket
        /home/ubuntu/go/pkg/mod/github.com/globalsign/[email protected]/socket.go:200 +0x1d7

goroutine 62 [chan receive, 29 minutes]:
github.com/streadway/amqp.(*consumers).buffer(0xc00066a420, 0xc000362b40, 0xc000362ae0)
        /home/ubuntu/go/pkg/mod/github.com/streadway/[email protected]/consumers.go:61 +0x351
created by github.com/streadway/amqp.(*consumers).add
        /home/ubuntu/go/pkg/mod/github.com/streadway/[email protected]/consumers.go:97 +0x163

goroutine 67 [sleep, 1 minutes]:
runtime.goparkunlock(...)
        /usr/local/go/src/runtime/proc.go:307
time.Sleep(0x37e11d600)
        /usr/local/go/src/runtime/time.go:105 +0x159
github.com/globalsign/mgo.(*mongoServer).pinger(0xc000698000, 0x1)
        /home/ubuntu/go/pkg/mod/github.com/globalsign/[email protected]/server.go:399 +0x47c
created by github.com/globalsign/mgo.newServer
        /home/ubuntu/go/pkg/mod/github.com/globalsign/[email protected]/server.go:105 +0x155

goroutine 130 [chan receive, 29 minutes]:
github.com/tomochain/tomox-sdk/rabbitmq.(*Connection).SubscribeQueue.func1.1(0xc000362ae0, 0xc00067b6c0)
        /home/ubuntu/tomox-sdk/rabbitmq/engine.go:32 +0x7e
created by github.com/tomochain/tomox-sdk/rabbitmq.(*Connection).SubscribeQueue.func1
        /home/ubuntu/tomox-sdk/rabbitmq/engine.go:31 +0x160

goroutine 28 [IO wait, 29 minutes]:
internal/poll.runtime_pollWait(0x7fac29e15e20, 0x72, 0xffffffffffffffff)
        /usr/local/go/src/runtime/netpoll.go:182 +0x56
internal/poll.(*pollDesc).wait(0xc00063c398, 0x72, 0x0, 0x24, 0xffffffffffffffff)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x9b
internal/poll.(*pollDesc).waitRead(...)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Read(0xc00063c380, 0xc000728000, 0x24, 0x24, 0x0, 0x0, 0x0)
        /usr/local/go/src/internal/poll/fd_unix.go:169 +0x19b
net.(*netFD).Read(0xc00063c380, 0xc000728000, 0x24, 0x24, 0x0, 0x0, 0xc000334160)
        /usr/local/go/src/net/fd_unix.go:202 +0x4f
net.(*conn).Read(0xc0000100d8, 0xc000728000, 0x24, 0x24, 0x0, 0x0, 0x0)
        /usr/local/go/src/net/net.go:177 +0x69
github.com/globalsign/mgo.fill(0x12a0f00, 0xc0000100d8, 0xc000728000, 0x24, 0x24, 0x0, 0xce)
        /home/ubuntu/go/pkg/mod/github.com/globalsign/[email protected]/socket.go:584 +0x53
github.com/globalsign/mgo.(*mongoSocket).readLoop(0xc00036e240)
        /home/ubuntu/go/pkg/mod/github.com/globalsign/[email protected]/socket.go:600 +0x53d
created by github.com/globalsign/mgo.newSocket
        /home/ubuntu/go/pkg/mod/github.com/globalsign/[email protected]/socket.go:200 +0x1d7

goroutine 99 [IO wait, 1 minutes]:
internal/poll.runtime_pollWait(0x7fac29e15ef0, 0x72, 0xffffffffffffffff)
        /usr/local/go/src/runtime/netpoll.go:182 +0x56
internal/poll.(*pollDesc).wait(0xc000359218, 0x72, 0x0, 0x24, 0xffffffffffffffff)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x9b
internal/poll.(*pollDesc).waitRead(...)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Read(0xc000359200, 0xc00063a090, 0x24, 0x24, 0x0, 0x0, 0x0)
        /usr/local/go/src/internal/poll/fd_unix.go:169 +0x19b
net.(*netFD).Read(0xc000359200, 0xc00063a090, 0x24, 0x24, 0x0, 0x0, 0x0)
        /usr/local/go/src/net/fd_unix.go:202 +0x4f
net.(*conn).Read(0xc0006dc000, 0xc00063a090, 0x24, 0x24, 0x0, 0x0, 0x0)
        /usr/local/go/src/net/net.go:177 +0x69
github.com/globalsign/mgo.fill(0x12a0f00, 0xc0006dc000, 0xc00063a090, 0x24, 0x24, 0x0, 0x8e)
        /home/ubuntu/go/pkg/mod/github.com/globalsign/[email protected]/socket.go:584 +0x53
github.com/globalsign/mgo.(*mongoSocket).readLoop(0xc0006e6000)
        /home/ubuntu/go/pkg/mod/github.com/globalsign/[email protected]/socket.go:600 +0x53d
created by github.com/globalsign/mgo.newSocket
        /home/ubuntu/go/pkg/mod/github.com/globalsign/[email protected]/socket.go:200 +0x1d7

goroutine 75 [IO wait]:
internal/poll.runtime_pollWait(0x7fac29e15c80, 0x72, 0xffffffffffffffff)
        /usr/local/go/src/runtime/netpoll.go:182 +0x56
internal/poll.(*pollDesc).wait(0xc00076e118, 0x72, 0x1000, 0x1000, 0xffffffffffffffff)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x9b
internal/poll.(*pollDesc).waitRead(...)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Read(0xc00076e100, 0xc00013f000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
        /usr/local/go/src/internal/poll/fd_unix.go:169 +0x19b
net.(*netFD).Read(0xc00076e100, 0xc00013f000, 0x1000, 0x1000, 0x8, 0x0, 0x0)
        /usr/local/go/src/net/fd_unix.go:202 +0x4f
net.(*conn).Read(0xc0006dc040, 0xc00013f000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
        /usr/local/go/src/net/net.go:177 +0x69
bufio.(*Reader).Read(0xc000240ae0, 0xc0003daa02, 0x7, 0x7, 0xc00074ce60, 0x4127f8, 0x7)
        /usr/local/go/src/bufio/bufio.go:223 +0x23e
io.ReadAtLeast(0x127f9a0, 0xc000240ae0, 0xc0003daa02, 0x7, 0x7, 0x7, 0xc00074ced8, 0x40b235, 0xc0006ce2a0)
        /usr/local/go/src/io/io.go:310 +0x88
io.ReadFull(...)
        /usr/local/go/src/io/io.go:329
github.com/streadway/amqp.(*reader).ReadFrame(0xc00074cf40, 0xc00074cf50, 0xc0003daa00, 0x0, 0x0)
        /home/ubuntu/go/pkg/mod/github.com/streadway/[email protected]/read.go:49 +0x76
github.com/streadway/amqp.(*Connection).reader(0xc00066e000, 0x1280960, 0xc0006dc040)
        /home/ubuntu/go/pkg/mod/github.com/streadway/[email protected]/connection.go:516 +0xd6
created by github.com/streadway/amqp.Open
        /home/ubuntu/go/pkg/mod/github.com/streadway/[email protected]/connection.go:230 +0x261

goroutine 79 [chan receive, 29 minutes]:
github.com/streadway/amqp.(*consumers).buffer(0xc000345ec0, 0xc000776960, 0xc000776900)
        /home/ubuntu/go/pkg/mod/github.com/streadway/[email protected]/consumers.go:61 +0x351
created by github.com/streadway/amqp.(*consumers).add
        /home/ubuntu/go/pkg/mod/github.com/streadway/[email protected]/consumers.go:97 +0x163

goroutine 78 [chan receive, 29 minutes]:
github.com/tomochain/tomox-sdk/rabbitmq.(*Connection).SubscribeOrders.func1(0xc000276000, 0xc0000c39e0, 0xc0002e5e60, 0xc00067b680)
        /home/ubuntu/tomox-sdk/rabbitmq/orders.go:36 +0x150
created by github.com/tomochain/tomox-sdk/rabbitmq.(*Connection).SubscribeOrders
        /home/ubuntu/tomox-sdk/rabbitmq/orders.go:15 +0xb6

goroutine 76 [select]:
github.com/streadway/amqp.(*Connection).heartbeater(0xc00066e000, 0x2540be400, 0xc0006ce300)
        /home/ubuntu/go/pkg/mod/github.com/streadway/[email protected]/connection.go:546 +0x187
created by github.com/streadway/amqp.(*Connection).openTune
        /home/ubuntu/go/pkg/mod/github.com/streadway/[email protected]/connection.go:777 +0x482

goroutine 77 [IO wait, 29 minutes]:
internal/poll.runtime_pollWait(0x7fac29e15bb0, 0x72, 0xffffffffffffffff)
        /usr/local/go/src/runtime/netpoll.go:182 +0x56
internal/poll.(*pollDesc).wait(0xc000358418, 0x72, 0x1000, 0x1000, 0xffffffffffffffff)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x9b
internal/poll.(*pollDesc).waitRead(...)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Read(0xc000358400, 0xc00063e000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
        /usr/local/go/src/internal/poll/fd_unix.go:169 +0x19b
net.(*netFD).Read(0xc000358400, 0xc00063e000, 0x1000, 0x1000, 0x7fac272a1700, 0x40, 0x50)
        /usr/local/go/src/net/fd_unix.go:202 +0x4f
net.(*conn).Read(0xc000276028, 0xc00063e000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
        /usr/local/go/src/net/net.go:177 +0x69
bufio.(*Reader).fill(0xc000240b40)
        /usr/local/go/src/bufio/bufio.go:100 +0x10f
bufio.(*Reader).ReadByte(0xc000240b40, 0xc0007701e0, 0xc000016c98, 0x44a766)
        /usr/local/go/src/bufio/bufio.go:249 +0x39
golang.org/x/net/websocket.hybiFrameReaderFactory.NewFrameReader(0xc000240b40, 0x1132fe8, 0xc00075e148, 0xdd51c0, 0x7fac29e15c80)
        /home/ubuntu/go/pkg/mod/golang.org/x/[email protected]/websocket/hybi.go:123 +0x60
golang.org/x/net/websocket.(*Conn).Read(0xc00075e120, 0xc00066c000, 0x200, 0x200, 0x0, 0x0, 0x0)
        /home/ubuntu/go/pkg/mod/golang.org/x/[email protected]/websocket/websocket.go:197 +0x1cc
encoding/json.(*Decoder).refill(0xc000366420, 0x7fac29e18f88, 0x8)
        /usr/local/go/src/encoding/json/stream.go:159 +0xf8
encoding/json.(*Decoder).readValue(0xc000366420, 0x0, 0x0, 0xddac60)
        /usr/local/go/src/encoding/json/stream.go:134 +0x210
encoding/json.(*Decoder).Decode(0xc000366420, 0xe69820, 0xc0002e4440, 0x7fac0c7b9008, 0xc000016f10)
        /usr/local/go/src/encoding/json/stream.go:63 +0x79
github.com/ethereum/go-ethereum/rpc.(*Client).read.func1(0xec8020, 0xc0002e4460, 0xc00075e120, 0x7fac29e1a738, 0xc00075e120)
        /home/ubuntu/go/pkg/mod/github.com/ethereum/[email protected]/rpc/client.go:682 +0x79
github.com/ethereum/go-ethereum/rpc.(*Client).read(0xc00012a000, 0x12a0e40, 0xc00075e120, 0xf94a9c, 0x1)
        /home/ubuntu/go/pkg/mod/github.com/ethereum/[email protected]/rpc/client.go:695 +0x156
created by github.com/ethereum/go-ethereum/rpc.(*Client).dispatch
        /home/ubuntu/go/pkg/mod/github.com/ethereum/[email protected]/rpc/client.go:517 +0x71

goroutine 60 [select, 29 minutes]:
github.com/ethereum/go-ethereum/rpc.(*Client).dispatch(0xc00012a000, 0x12a0e40, 0xc00075e120)
        /home/ubuntu/go/pkg/mod/github.com/ethereum/[email protected]/rpc/client.go:541 +0x280
created by github.com/ethereum/go-ethereum/rpc.newClient
        /home/ubuntu/go/pkg/mod/github.com/ethereum/[email protected]/rpc/client.go:244 +0x299

goroutine 61 [chan receive, 29 minutes]:
github.com/tomochain/tomox-sdk/rabbitmq.(*Connection).SubscribeQueue.func1.1(0xc0000a7440, 0xc0006e07e0)
        /home/ubuntu/tomox-sdk/rabbitmq/engine.go:32 +0x7e
created by github.com/tomochain/tomox-sdk/rabbitmq.(*Connection).SubscribeQueue.func1
        /home/ubuntu/tomox-sdk/rabbitmq/engine.go:31 +0x160

goroutine 29 [chan receive, 29 minutes]:
github.com/tomochain/tomox-sdk/rabbitmq.(*Connection).SubscribeOrders.func1.1(0xc000776900, 0xc00067b680)
        /home/ubuntu/tomox-sdk/rabbitmq/orders.go:24 +0x7e
created by github.com/tomochain/tomox-sdk/rabbitmq.(*Connection).SubscribeOrders.func1
        /home/ubuntu/tomox-sdk/rabbitmq/orders.go:23 +0x139

goroutine 30 [chan receive, 29 minutes]:
github.com/tomochain/tomox-sdk/rabbitmq.(*Connection).SubscribeQueue.func1(0xc00023cd80, 0xc0002e5fc0, 0xc0006e07e0)
        /home/ubuntu/tomox-sdk/rabbitmq/engine.go:43 +0x177
created by github.com/tomochain/tomox-sdk/rabbitmq.(*Connection).SubscribeQueue
        /home/ubuntu/tomox-sdk/rabbitmq/engine.go:14 +0xab

goroutine 31 [chan receive, 29 minutes]:
github.com/streadway/amqp.(*consumers).buffer(0xc00066a420, 0xc0000a74a0, 0xc0000a7440)
        /home/ubuntu/go/pkg/mod/github.com/streadway/[email protected]/consumers.go:61 +0x351
created by github.com/streadway/amqp.(*consumers).add
        /home/ubuntu/go/pkg/mod/github.com/streadway/[email protected]/consumers.go:97 +0x163

goroutine 32 [chan receive, 29 minutes]:
github.com/tomochain/tomox-sdk/rabbitmq.(*Connection).SubscribeEngineResponses.func1.1(0xc0007769c0, 0xc0006e0790)
        /home/ubuntu/tomox-sdk/rabbitmq/engine.go:81 +0x7e
created by github.com/tomochain/tomox-sdk/rabbitmq.(*Connection).SubscribeEngineResponses.func1
        /home/ubuntu/tomox-sdk/rabbitmq/engine.go:80 +0x160

goroutine 33 [chan receive, 29 minutes]:
github.com/tomochain/tomox-sdk/rabbitmq.(*Connection).SubscribeQueue.func1(0xc00023cd80, 0xc0002da160, 0xc00067b6c0)
        /home/ubuntu/tomox-sdk/rabbitmq/engine.go:43 +0x177
created by github.com/tomochain/tomox-sdk/rabbitmq.(*Connection).SubscribeQueue
        /home/ubuntu/tomox-sdk/rabbitmq/engine.go:14 +0xab

goroutine 149 [IO wait, 2 minutes]:
internal/poll.runtime_pollWait(0x7fac29e15a10, 0x72, 0xffffffffffffffff)
        /usr/local/go/src/runtime/netpoll.go:182 +0x56
internal/poll.(*pollDesc).wait(0xc000358518, 0x72, 0x0, 0x24, 0xffffffffffffffff)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x9b
internal/poll.(*pollDesc).waitRead(...)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Read(0xc000358500, 0xc000728f90, 0x24, 0x24, 0x0, 0x0, 0x0)
        /usr/local/go/src/internal/poll/fd_unix.go:169 +0x19b
net.(*netFD).Read(0xc000358500, 0xc000728f90, 0x24, 0x24, 0x0, 0x0, 0x0)
        /usr/local/go/src/net/fd_unix.go:202 +0x4f
net.(*conn).Read(0xc0002de108, 0xc000728f90, 0x24, 0x24, 0x0, 0x0, 0x0)
        /usr/local/go/src/net/net.go:177 +0x69
github.com/globalsign/mgo.fill(0x12a0f00, 0xc0002de108, 0xc000728f90, 0x24, 0x24, 0x0, 0x8e)
        /home/ubuntu/go/pkg/mod/github.com/globalsign/[email protected]/socket.go:584 +0x53
github.com/globalsign/mgo.(*mongoSocket).readLoop(0xc0006e7560)
        /home/ubuntu/go/pkg/mod/github.com/globalsign/[email protected]/socket.go:600 +0x53d
created by github.com/globalsign/mgo.newSocket
        /home/ubuntu/go/pkg/mod/github.com/globalsign/[email protected]/socket.go:200 +0x1d7

goroutine 1612 [select, 1 minutes]:
github.com/tomochain/tomox-sdk/ws.writeHandler(0xc000475020)
        /home/ubuntu/tomox-sdk/ws/connection.go:104 +0x138
created by github.com/tomochain/tomox-sdk/ws.ConnectionEndpoint
        /home/ubuntu/tomox-sdk/ws/connection.go:43 +0x223

goroutine 147 [sync.Cond.Wait]:
runtime.goparkunlock(...)
        /usr/local/go/src/runtime/proc.go:307
sync.runtime_notifyListWait(0xc000820018, 0xc000000419)
        /usr/local/go/src/runtime/sema.go:510 +0xf9
sync.(*Cond).Wait(0xc000820008)
        /usr/local/go/src/sync/cond.go:56 +0x9e
github.com/globalsign/mgo.(*Iter).Next(0xc000820000, 0xe4b860, 0xc0017bece0, 0xf258e0)
        /home/ubuntu/go/pkg/mod/github.com/globalsign/[email protected]/session.go:4343 +0x82
github.com/globalsign/mgo.(*ChangeStream).fetchResultSet(0xc00063c080, 0xdc9180, 0xc001930f00, 0x1132fe8, 0xc0002363e0)
        /home/ubuntu/go/pkg/mod/github.com/globalsign/[email protected]/changestreams.go:313 +0x5d
github.com/globalsign/mgo.(*ChangeStream).Next(0xc00063c080, 0xdc9180, 0xc001930f00, 0xfa2600)
        /home/ubuntu/go/pkg/mod/github.com/globalsign/[email protected]/changestreams.go:133 +0x167
github.com/tomochain/tomox-sdk/services.(*OrderService).WatchChanges(0xc00011e000)
        /home/ubuntu/tomox-sdk/services/order.go:504 +0x275
created by github.com/tomochain/tomox-sdk/server.NewRouter
        /home/ubuntu/tomox-sdk/server/server.go:155 +0x1449

goroutine 148 [sync.Cond.Wait]:
runtime.goparkunlock(...)
        /usr/local/go/src/runtime/proc.go:307
sync.runtime_notifyListWait(0xc00012e1f8, 0xc000000422)
        /usr/local/go/src/runtime/sema.go:510 +0xf9
sync.(*Cond).Wait(0xc00012e1e8)
        /usr/local/go/src/sync/cond.go:56 +0x9e
github.com/globalsign/mgo.(*Iter).Next(0xc00012e1e0, 0xe4b860, 0xc00048bdc0, 0xf259e0)
        /home/ubuntu/go/pkg/mod/github.com/globalsign/[email protected]/session.go:4343 +0x82
github.com/globalsign/mgo.(*ChangeStream).fetchResultSet(0xc00076e000, 0xdc9700, 0xc0009d34a0, 0x1132fe8, 0xc0002363e0)
        /home/ubuntu/go/pkg/mod/github.com/globalsign/[email protected]/changestreams.go:313 +0x5d
github.com/globalsign/mgo.(*ChangeStream).Next(0xc00076e000, 0xdc9700, 0xc0009d34a0, 0xfa2600)
        /home/ubuntu/go/pkg/mod/github.com/globalsign/[email protected]/changestreams.go:133 +0x167
github.com/tomochain/tomox-sdk/services.(*TradeService).WatchChanges(0xc0000ba0f0)
        /home/ubuntu/tomox-sdk/services/trade.go:152 +0x273
created by github.com/tomochain/tomox-sdk/server.NewRouter
        /home/ubuntu/tomox-sdk/server/server.go:156 +0x146e

goroutine 178 [select]:
github.com/robfig/cron.(*Cron).run(0xc0003aa780)
        /home/ubuntu/go/pkg/mod/github.com/robfig/[email protected]/cron.go:191 +0x2ad
created by github.com/robfig/cron.(*Cron).Start
        /home/ubuntu/go/pkg/mod/github.com/robfig/[email protected]/cron.go:144 +0x53

goroutine 121 [IO wait]:
internal/poll.runtime_pollWait(0x7fac29e15940, 0x72, 0xffffffffffffffff)
        /usr/local/go/src/runtime/netpoll.go:182 +0x56
internal/poll.(*pollDesc).wait(0xc00063c518, 0x72, 0xd00, 0xd3a, 0xffffffffffffffff)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x9b
internal/poll.(*pollDesc).waitRead(...)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Read(0xc00063c500, 0xc00072fb00, 0xd3a, 0xd3a, 0x0, 0x0, 0x0)
        /usr/local/go/src/internal/poll/fd_unix.go:169 +0x19b
net.(*netFD).Read(0xc00063c500, 0xc00072fb00, 0xd3a, 0xd3a, 0x203000, 0x0, 0xd2d)
        /usr/local/go/src/net/fd_unix.go:202 +0x4f
net.(*conn).Read(0xc0000100e8, 0xc00072fb00, 0xd3a, 0xd3a, 0x0, 0x0, 0x0)
        /usr/local/go/src/net/net.go:177 +0x69
crypto/tls.(*atLeastReader).Read(0xc0003cac80, 0xc00072fb00, 0xd3a, 0xd3a, 0x26, 0x127fce0, 0xc0000d79e0)
        /usr/local/go/src/crypto/tls/conn.go:761 +0x60
bytes.(*Buffer).ReadFrom(0xc000287e58, 0x127fb00, 0xc0003cac80, 0x410075, 0xe770c0, 0xf5e600)
        /usr/local/go/src/bytes/buffer.go:207 +0xbd
crypto/tls.(*Conn).readFromUntil(0xc000287c00, 0x1280960, 0xc0000100e8, 0x5, 0xc0000100e8, 0x9)
        /usr/local/go/src/crypto/tls/conn.go:783 +0xf8
crypto/tls.(*Conn).readRecordOrCCS(0xc000287c00, 0x1132f00, 0xc000287d38, 0xc0000d7d58)
        /usr/local/go/src/crypto/tls/conn.go:590 +0x125
crypto/tls.(*Conn).readRecord(...)
        /usr/local/go/src/crypto/tls/conn.go:558
crypto/tls.(*Conn).Read(0xc000287c00, 0xc000469000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
        /usr/local/go/src/crypto/tls/conn.go:1236 +0x137
bufio.(*Reader).Read(0xc000241a40, 0xc0003b6818, 0x9, 0x9, 0x40c684, 0xc0009d59e0, 0xc0000d7d58)
        /usr/local/go/src/bufio/bufio.go:223 +0x23e
io.ReadAtLeast(0x127f9a0, 0xc000241a40, 0xc0003b6818, 0x9, 0x9, 0x9, 0x127fce0, 0xc00046e950, 0xc000032070)
        /usr/local/go/src/io/io.go:310 +0x88
io.ReadFull(...)
        /usr/local/go/src/io/io.go:329
net/http.http2readFrameHeader(0xc0003b6818, 0x9, 0x9, 0x127f9a0, 0xc000241a40, 0x0, 0x0, 0xc0006da9f0, 0x0)
        /usr/local/go/src/net/http/h2_bundle.go:1476 +0x88
net/http.(*http2Framer).ReadFrame(0xc0003b67e0, 0xc0006da9f0, 0x0, 0x0, 0x0)
        /usr/local/go/src/net/http/h2_bundle.go:1734 +0xa1
net/http.(*http2clientConnReadLoop).run(0xc0000d7fb8, 0x1132840, 0xc000014fb8)
        /usr/local/go/src/net/http/h2_bundle.go:8102 +0x8f
net/http.(*http2ClientConn).readLoop(0xc0006d3080)
        /usr/local/go/src/net/http/h2_bundle.go:8030 +0x76
created by net/http.(*http2Transport).newClientConn
        /usr/local/go/src/net/http/h2_bundle.go:7093 +0x637

goroutine 262 [IO wait]:
internal/poll.runtime_pollWait(0x7fac29e151f0, 0x72, 0xffffffffffffffff)
        /usr/local/go/src/runtime/netpoll.go:182 +0x56
internal/poll.(*pollDesc).wait(0xc00063c718, 0x72, 0x0, 0x24, 0xffffffffffffffff)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x9b
internal/poll.(*pollDesc).waitRead(...)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Read(0xc00063c700, 0xc0009c12f0, 0x24, 0x24, 0x0, 0x0, 0x0)
        /usr/local/go/src/internal/poll/fd_unix.go:169 +0x19b
net.(*netFD).Read(0xc00063c700, 0xc0009c12f0, 0x24, 0x24, 0x0, 0x0, 0xc0003daa10)
        /usr/local/go/src/net/fd_unix.go:202 +0x4f
net.(*conn).Read(0xc0006dc1c0, 0xc0009c12f0, 0x24, 0x24, 0x0, 0x0, 0x0)
        /usr/local/go/src/net/net.go:177 +0x69
github.com/globalsign/mgo.fill(0x12a0f00, 0xc0006dc1c0, 0xc0009c12f0, 0x24, 0x24, 0x0, 0x139)
        /home/ubuntu/go/pkg/mod/github.com/globalsign/[email protected]/socket.go:584 +0x53
github.com/globalsign/mgo.(*mongoSocket).readLoop(0xc0008bf440)
        /home/ubuntu/go/pkg/mod/github.com/globalsign/[email protected]/socket.go:600 +0x53d
created by github.com/globalsign/mgo.newSocket
        /home/ubuntu/go/pkg/mod/github.com/globalsign/[email protected]/socket.go:200 +0x1d7

goroutine 200 [IO wait, 1 minutes]:
internal/poll.runtime_pollWait(0x7fac29e15600, 0x72, 0xffffffffffffffff)
        /usr/local/go/src/runtime/netpoll.go:182 +0x56
internal/poll.(*pollDesc).wait(0xc000358c98, 0x72, 0x400, 0x400, 0xffffffffffffffff)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x9b
internal/poll.(*pollDesc).waitRead(...)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Read(0xc000358c80, 0xc000437000, 0x400, 0x400, 0x0, 0x0, 0x0)
        /usr/local/go/src/internal/poll/fd_unix.go:169 +0x19b
net.(*netFD).Read(0xc000358c80, 0xc000437000, 0x400, 0x400, 0x4c8add, 0xc000358c80, 0xc0000ba700)
        /usr/local/go/src/net/fd_unix.go:202 +0x4f
net.(*conn).Read(0xc0002de278, 0xc000437000, 0x400, 0x400, 0x0, 0x0, 0x0)
        /usr/local/go/src/net/net.go:177 +0x69
bufio.(*Reader).fill(0xc000240d80)
        /usr/local/go/src/bufio/bufio.go:100 +0x10f
bufio.(*Reader).Peek(0xc000240d80, 0x2, 0xc0004b3d10, 0xb53447, 0xc0002de278, 0xbf5006a136b51b8d, 0x1a245dbc3f9)
        /usr/local/go/src/bufio/bufio.go:138 +0x4f
github.com/gorilla/websocket.(*Conn).read(0xc00081bb80, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0)
        /home/ubuntu/go/pkg/mod/github.com/gorilla/[email protected]/conn.go:357 +0x40
github.com/gorilla/websocket.(*Conn).advanceFrame(0xc00081bb80, 0xa, 0x0, 0x0)
        /home/ubuntu/go/pkg/mod/github.com/gorilla/[email protected]/conn.go:787 +0x5c
github.com/gorilla/websocket.(*Conn).NextReader(0xc00081bb80, 0x43d04f, 0xc0004b3ea8, 0x460400, 0xc0004b3ef0, 0xc0004b3ef8)
        /home/ubuntu/go/pkg/mod/github.com/gorilla/[email protected]/conn.go:947 +0xa0
github.com/gorilla/websocket.(*Conn).ReadMessage(0xc00081bb80, 0xc00067aca0, 0xedecc0, 0xc0006da2d0, 0xc000443240, 0x1, 0x0)
        /home/ubuntu/go/pkg/mod/github.com/gorilla/[email protected]/conn.go:1028 +0x2f
github.com/tomochain/tomox-sdk/ws.readHandler(0xc000443240)
        /home/ubuntu/tomox-sdk/ws/connection.go:59 +0x1ae
created by github.com/tomochain/tomox-sdk/ws.ConnectionEndpoint
        /home/ubuntu/tomox-sdk/ws/connection.go:42 +0x201

goroutine 203 [IO wait, 10 minutes]:
internal/poll.runtime_pollWait(0x7fac29e15530, 0x72, 0xffffffffffffffff)
        /usr/local/go/src/runtime/netpoll.go:182 +0x56
internal/poll.(*pollDesc).wait(0xc000359098, 0x72, 0x0, 0x24, 0xffffffffffffffff)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x9b
internal/poll.(*pollDesc).waitRead(...)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Read(0xc000359080, 0xc0009bc300, 0x24, 0x24, 0x0, 0x0, 0x0)
        /usr/local/go/src/internal/poll/fd_unix.go:169 +0x19b
net.(*netFD).Read(0xc000359080, 0xc0009bc300, 0x24, 0x24, 0x0, 0x0, 0x0)
        /usr/local/go/src/net/fd_unix.go:202 +0x4f
net.(*conn).Read(0xc0002de318, 0xc0009bc300, 0x24, 0x24, 0x0, 0x0, 0x0)
        /usr/local/go/src/net/net.go:177 +0x69
github.com/globalsign/mgo.fill(0x12a0f00, 0xc0002de318, 0xc0009bc300, 0x24, 0x24, 0x0, 0xcf)
        /home/ubuntu/go/pkg/mod/github.com/globalsign/[email protected]/socket.go:584 +0x53
github.com/globalsign/mgo.(*mongoSocket).readLoop(0xc000902000)
        /home/ubuntu/go/pkg/mod/github.com/globalsign/[email protected]/socket.go:600 +0x53d
created by github.com/globalsign/mgo.newSocket
        /home/ubuntu/go/pkg/mod/github.com/globalsign/[email protected]/socket.go:200 +0x1d7

goroutine 1755 [select, 1 minutes]:
github.com/tomochain/tomox-sdk/ws.writeHandler(0xc001c4d380)
        /home/ubuntu/tomox-sdk/ws/connection.go:104 +0x138
created by github.com/tomochain/tomox-sdk/ws.ConnectionEndpoint
        /home/ubuntu/tomox-sdk/ws/connection.go:43 +0x223

goroutine 201 [select, 1 minutes]:
github.com/tomochain/tomox-sdk/ws.writeHandler(0xc000443240)
        /home/ubuntu/tomox-sdk/ws/connection.go:104 +0x138
created by github.com/tomochain/tomox-sdk/ws.ConnectionEndpoint
        /home/ubuntu/tomox-sdk/ws/connection.go:43 +0x223

goroutine 204 [IO wait]:
internal/poll.runtime_pollWait(0x7fac29e15390, 0x72, 0xffffffffffffffff)
        /usr/local/go/src/runtime/netpoll.go:182 +0x56
internal/poll.(*pollDesc).wait(0xc000906118, 0x72, 0x0, 0x24, 0xffffffffffffffff)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x9b
internal/poll.(*pollDesc).waitRead(...)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Read(0xc000906100, 0xc00063a3c0, 0x24, 0x24, 0x0, 0x0, 0x0)
        /usr/local/go/src/internal/poll/fd_unix.go:169 +0x19b
net.(*netFD).Read(0xc000906100, 0xc00063a3c0, 0x24, 0x24, 0x0, 0x0, 0xc0004a2f68)
        /usr/local/go/src/net/fd_unix.go:202 +0x4f
net.(*conn).Read(0xc000276140, 0xc00063a3c0, 0x24, 0x24, 0x0, 0x0, 0x0)
        /usr/local/go/src/net/net.go:177 +0x69
github.com/globalsign/mgo.fill(0x12a0f00, 0xc000276140, 0xc00063a3c0, 0x24, 0x24, 0x0, 0x139)
        /home/ubuntu/go/pkg/mod/github.com/globalsign/[email protected]/socket.go:584 +0x53
github.com/globalsign/mgo.(*mongoSocket).readLoop(0xc000272120)
        /home/ubuntu/go/pkg/mod/github.com/globalsign/[email protected]/socket.go:600 +0x53d
created by github.com/globalsign/mgo.newSocket
        /home/ubuntu/go/pkg/mod/github.com/globalsign/[email protected]/socket.go:200 +0x1d7

goroutine 267 [select, 1 minutes]:
github.com/tomochain/tomox-sdk/ws.writeHandler(0xc000333740)
        /home/ubuntu/tomox-sdk/ws/connection.go:104 +0x138
created by github.com/tomochain/tomox-sdk/ws.ConnectionEndpoint
        /home/ubuntu/tomox-sdk/ws/connection.go:43 +0x223

goroutine 183 [IO wait]:
internal/poll.runtime_pollWait(0x7fac29e15460, 0x72, 0xffffffffffffffff)
        /usr/local/go/src/runtime/netpoll.go:182 +0x56
internal/poll.(*pollDesc).wait(0xc000042818, 0x72, 0x0, 0x24, 0xffffffffffffffff)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x9b
internal/poll.(*pollDesc).waitRead(...)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Read(0xc000042800, 0xc0009bc2d0, 0x24, 0x24, 0x0, 0x0, 0x0)
        /usr/local/go/src/internal/poll/fd_unix.go:169 +0x19b
net.(*netFD).Read(0xc000042800, 0xc0009bc2d0, 0x24, 0x24, 0x0, 0x0, 0x0)
        /usr/local/go/src/net/fd_unix.go:202 +0x4f
net.(*conn).Read(0xc000010218, 0xc0009bc2d0, 0x24, 0x24, 0x0, 0x0, 0x0)
        /usr/local/go/src/net/net.go:177 +0x69
github.com/globalsign/mgo.fill(0x12a0f00, 0xc000010218, 0xc0009bc2d0, 0x24, 0x24, 0x0, 0xcf)
        /home/ubuntu/go/pkg/mod/github.com/globalsign/[email protected]/socket.go:584 +0x53
github.com/globalsign/mgo.(*mongoSocket).readLoop(0xc00036ec60)
        /home/ubuntu/go/pkg/mod/github.com/globalsign/[email protected]/socket.go:600 +0x53d
created by github.com/globalsign/mgo.newSocket
        /home/ubuntu/go/pkg/mod/github.com/globalsign/[email protected]/socket.go:200 +0x1d7

goroutine 266 [IO wait, 1 minutes]:
internal/poll.runtime_pollWait(0x7fac29e2aba8, 0x72, 0xffffffffffffffff)
        /usr/local/go/src/runtime/netpoll.go:182 +0x56
internal/poll.(*pollDesc).wait(0xc00076f818, 0x72, 0x400, 0x400, 0xffffffffffffffff)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x9b
internal/poll.(*pollDesc).waitRead(...)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Read(0xc00076f800, 0xc00094b000, 0x400, 0x400, 0x0, 0x0, 0x0)
        /usr/local/go/src/internal/poll/fd_unix.go:169 +0x19b
net.(*netFD).Read(0xc00076f800, 0xc00094b000, 0x400, 0x400, 0x4c8add, 0xc00076f800, 0xc0008fa000)
        /usr/local/go/src/net/fd_unix.go:202 +0x4f
net.(*conn).Read(0xc0006dc310, 0xc00094b000, 0x400, 0x400, 0x0, 0x0, 0x0)
        /usr/local/go/src/net/net.go:177 +0x69
bufio.(*Reader).fill(0xc0009d4f60)
        /usr/local/go/src/bufio/bufio.go:100 +0x10f
bufio.(*Reader).Peek(0xc0009d4f60, 0x2, 0xc0004a9d10, 0xb53447, 0xc0006dc310, 0xbf5006a243fe0662, 0x1a33d2aa0d5)
        /usr/local/go/src/bufio/bufio.go:138 +0x4f
github.com/gorilla/websocket.(*Conn).read(0xc000366dc0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0)
        /home/ubuntu/go/pkg/mod/github.com/gorilla/[email protected]/conn.go:357 +0x40
github.com/gorilla/websocket.(*Conn).advanceFrame(0xc000366dc0, 0xa, 0x0, 0x0)
        /home/ubuntu/go/pkg/mod/github.com/gorilla/[email protected]/conn.go:787 +0x5c
github.com/gorilla/websocket.(*Conn).NextReader(0xc000366dc0, 0x43d04f, 0xc0004a9ea8, 0x460400, 0xc0004a9ef0, 0xc0004a9ef8)
        /home/ubuntu/go/pkg/mod/github.com/gorilla/[email protected]/conn.go:947 +0xa0
github.com/gorilla/websocket.(*Conn).ReadMessage(0xc000366dc0, 0xc00067aca0, 0xedecc0, 0xc0006daae0, 0xc000333740, 0x1, 0x0)
        /home/ubuntu/go/pkg/mod/github.com/gorilla/[email protected]/conn.go:1028 +0x2f
github.com/tomochain/tomox-sdk/ws.readHandler(0xc000333740)
        /home/ubuntu/tomox-sdk/ws/connection.go:59 +0x1ae
created by github.com/tomochain/tomox-sdk/ws.ConnectionEndpoint
        /home/ubuntu/tomox-sdk/ws/connection.go:42 +0x201

goroutine 209 [IO wait, 1 minutes]:
internal/poll.runtime_pollWait(0x7fac29e2afb8, 0x72, 0xffffffffffffffff)
        /usr/local/go/src/runtime/netpoll.go:182 +0x56
internal/poll.(*pollDesc).wait(0xc00063c998, 0x72, 0x400, 0x400, 0xffffffffffffffff)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x9b
internal/poll.(*pollDesc).waitRead(...)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Read(0xc00063c980, 0xc000436400, 0x400, 0x400, 0x0, 0x0, 0x0)
        /usr/local/go/src/internal/poll/fd_unix.go:169 +0x19b
net.(*netFD).Read(0xc00063c980, 0xc000436400, 0x400, 0x400, 0x4c8add, 0xc00063c980, 0xc0000ba700)
        /usr/local/go/src/net/fd_unix.go:202 +0x4f
net.(*conn).Read(0xc000276190, 0xc000436400, 0x400, 0x400, 0x0, 0x0, 0x0)
        /usr/local/go/src/net/net.go:177 +0x69
bufio.(*Reader).fill(0xc0001999e0)
        /usr/local/go/src/bufio/bufio.go:100 +0x10f
bufio.(*Reader).Peek(0xc0001999e0, 0x2, 0xc0004efd10, 0xb53447, 0xc000276190, 0xbf5006a21e7f39e7, 0x1a31c110a48)
        /usr/local/go/src/bufio/bufio.go:138 +0x4f
github.com/gorilla/websocket.(*Conn).read(0xc0000f6c60, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0)
        /home/ubuntu/go/pkg/mod/github.com/gorilla/[email protected]/conn.go:357 +0x40
github.com/gorilla/websocket.(*Conn).advanceFrame(0xc0000f6c60, 0xa, 0x0, 0x0)
        /home/ubuntu/go/pkg/mod/github.com/gorilla/[email protected]/conn.go:787 +0x5c
github.com/gorilla/websocket.(*Conn).NextReader(0xc0000f6c60, 0x43d04f, 0xc0004efea8, 0x460400, 0xc0004efef0, 0xc0004efef8)
        /home/ubuntu/go/pkg/mod/github.com/gorilla/[email protected]/conn.go:947 +0xa0
github.com/gorilla/websocket.(*Conn).ReadMessage(0xc0000f6c60, 0xc00067aca0, 0xedecc0, 0xc0008d07b0, 0xc0006d1260, 0x1, 0x0)
        /home/ubuntu/go/pkg/mod/github.com/gorilla/[email protected]/conn.go:1028 +0x2f
github.com/tomochain/tomox-sdk/ws.readHandler(0xc0006d1260)
        /home/ubuntu/tomox-sdk/ws/connection.go:59 +0x1ae
created by github.com/tomochain/tomox-sdk/ws.ConnectionEndpoint
        /home/ubuntu/tomox-sdk/ws/connection.go:42 +0x201

goroutine 274 [select, 1 minutes]:
github.com/tomochain/tomox-sdk/ws.writeHandler(0xc0006d1260)
        /home/ubuntu/tomox-sdk/ws/connection.go:104 +0x138
created by github.com/tomochain/tomox-sdk/ws.ConnectionEndpoint
        /home/ubuntu/tomox-sdk/ws/connection.go:43 +0x223

goroutine 3450 [IO wait, 1 minutes]:
internal/poll.runtime_pollWait(0x7fac29e2a868, 0x72, 0xffffffffffffffff)
        /usr/local/go/src/runtime/netpoll.go:182 +0x56
internal/poll.(*pollDesc).wait(0xc00063dd18, 0x72, 0x400, 0x400, 0xffffffffffffffff)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x9b
internal/poll.(*pollDesc).waitRead(...)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Read(0xc00063dd00, 0xc001bcd800, 0x400, 0x400, 0x0, 0x0, 0x0)
        /usr/local/go/src/internal/poll/fd_unix.go:169 +0x19b
net.(*netFD).Read(0xc00063dd00, 0xc001bcd800, 0x400, 0x400, 0x4c8add, 0xc00063dd00, 0xc0002dc100)
        /usr/local/go/src/net/fd_unix.go:202 +0x4f
net.(*conn).Read(0xc0002de5a8, 0xc001bcd800, 0x400, 0x400, 0x0, 0x0, 0x0)
        /usr/local/go/src/net/net.go:177 +0x69
bufio.(*Reader).fill(0xc0009429c0)
        /usr/local/go/src/bufio/bufio.go:100 +0x10f
bufio.(*Reader).Peek(0xc0009429c0, 0x2, 0xc0000dbd10, 0xb53447, 0xc0002de5a8, 0xbf5006a31bb35c7d, 0x1a407b054de)
        /usr/local/go/src/bufio/bufio.go:138 +0x4f
github.com/gorilla/websocket.(*Conn).read(0xc001ad6c60, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0)
        /home/ubuntu/go/pkg/mod/github.com/gorilla/[email protected]/conn.go:357 +0x40
github.com/gorilla/websocket.(*Conn).advanceFrame(0xc001ad6c60, 0xa, 0x0, 0x0)
        /home/ubuntu/go/pkg/mod/github.com/gorilla/[email protected]/conn.go:787 +0x5c
github.com/gorilla/websocket.(*Conn).NextReader(0xc001ad6c60, 0x43d04f, 0xc0000dbea8, 0x460400, 0xc0000dbef0, 0xc0000dbef8)
        /home/ubuntu/go/pkg/mod/github.com/gorilla/[email protected]/conn.go:947 +0xa0
github.com/gorilla/websocket.(*Conn).ReadMessage(0xc001ad6c60, 0xc00067b310, 0xedecc0, 0xc000a72fc0, 0xc001c4cbe0, 0x1, 0x0)
        /home/ubuntu/go/pkg/mod/github.com/gorilla/[email protected]/conn.go:1028 +0x2f
github.com/tomochain/tomox-sdk/ws.readHandler(0xc001c4cbe0)
        /home/ubuntu/tomox-sdk/ws/connection.go:59 +0x1ae
created by github.com/tomochain/tomox-sdk/ws.ConnectionEndpoint
        /home/ubuntu/tomox-sdk/ws/connection.go:42 +0x201

goroutine 655 [select, 1 minutes]:
github.com/tomochain/tomox-sdk/ws.writeHandler(0xc0003a95c0)
        /home/ubuntu/tomox-sdk/ws/connection.go:104 +0x138
created by github.com/tomochain/tomox-sdk/ws.ConnectionEndpoint
        /home/ubuntu/tomox-sdk/ws/connection.go:43 +0x223

goroutine 1139 [IO wait, 1 minutes]:
internal/poll.runtime_pollWait(0x7fac29e2a798, 0x72, 0xffffffffffffffff)
        /usr/local/go/src/runtime/netpoll.go:182 +0x56
internal/poll.(*pollDesc).wait(0xc00076e718, 0x72, 0x400, 0x400, 0xffffffffffffffff)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x9b
internal/poll.(*pollDesc).waitRead(...)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Read(0xc00076e700, 0xc001b38c00, 0x400, 0x400, 0x0, 0x0, 0x0)
        /usr/local/go/src/internal/poll/fd_unix.go:169 +0x19b
net.(*netFD).Read(0xc00076e700, 0xc001b38c00, 0x400, 0x400, 0x4c8add, 0xc00076e700, 0xc0000ba700)
        /usr/local/go/src/net/fd_unix.go:202 +0x4f
net.(*conn).Read(0xc0007ec158, 0xc001b38c00, 0x400, 0x400, 0x0, 0x0, 0x0)
        /usr/local/go/src/net/net.go:177 +0x69
bufio.(*Reader).fill(0xc001bc7860)
        /usr/local/go/src/bufio/bufio.go:100 +0x10f
bufio.(*Reader).Peek(0xc001bc7860, 0x2, 0xc000691d10, 0xb53447, 0xc0007ec158, 0xbf50069e86b8e1ab, 0x19fc1d3a630)
        /usr/local/go/src/bufio/bufio.go:138 +0x4f
github.com/gorilla/websocket.(*Conn).read(0xc0019506e0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0)
        /home/ubuntu/go/pkg/mod/github.com/gorilla/[email protected]/conn.go:357 +0x40
github.com/gorilla/websocket.(*Conn).advanceFrame(0xc0019506e0, 0xa, 0x0, 0x0)
        /home/ubuntu/go/pkg/mod/github.com/gorilla/[email protected]/conn.go:787 +0x5c
github.com/gorilla/websocket.(*Conn).NextReader(0xc0019506e0, 0x43d04f, 0xc000691ea8, 0x460400, 0xc000691ef0, 0xc000691ef8)
        /home/ubuntu/go/pkg/mod/github.com/gorilla/[email protected]/conn.go:947 +0xa0
github.com/gorilla/websocket.(*Conn).ReadMessage(0xc0019506e0, 0xc00067aca0, 0xedecc0, 0xc00093c270, 0xc0003f3320, 0x1, 0x0)
        /home/ubuntu/go/pkg/mod/github.com/gorilla/[email protected]/conn.go:1028 +0x2f
github.com/tomochain/tomox-sdk/ws.readHandler(0xc0003f3320)
        /home/ubuntu/tomox-sdk/ws/connection.go:59 +0x1ae
created by github.com/tomochain/tomox-sdk/ws.ConnectionEndpoint
        /home/ubuntu/tomox-sdk/ws/connection.go:42 +0x201

goroutine 2332 [IO wait, 1 minutes]:
internal/poll.runtime_pollWait(0x7fac29e2aee8, 0x72, 0xffffffffffffffff)
        /usr/local/go/src/runtime/netpoll.go:182 +0x56
internal/poll.(*pollDesc).wait(0xc000986198, 0x72, 0x400, 0x400, 0xffffffffffffffff)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x9b
internal/poll.(*pollDesc).waitRead(...)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Read(0xc000986180, 0xc0007f1400, 0x400, 0x400, 0x0, 0x0, 0x0)
        /usr/local/go/src/internal/poll/fd_unix.go:169 +0x19b
net.(*netFD).Read(0xc000986180, 0xc0007f1400, 0x400, 0x400, 0x4c8add, 0xc000986180, 0xc0000ba700)
        /usr/local/go/src/net/fd_unix.go:202 +0x4f
net.(*conn).Read(0xc0002de498, 0xc0007f1400, 0x400, 0x400, 0x0, 0x0, 0x0)
        /usr/local/go/src/net/net.go:177 +0x69
bufio.(*Reader).fill(0xc0019381e0)
        /usr/local/go/src/bufio/bufio.go:100 +0x10f
bufio.(*Reader).Peek(0xc0019381e0, 0x2, 0xc0007bbd10, 0xb53447, 0xc0002de498, 0xbf5006a5d0150b9b, 0x1a68bb8b1e9)
        /usr/local/go/src/bufio/bufio.go:138 +0x4f
github.com/gorilla/websocket.(*Conn).read(0xc0004dd1e0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0)
        /home/ubuntu/go/pkg/mod/github.com/gorilla/[email protected]/conn.go:357 +0x40
github.com/gorilla/websocket.(*Conn).advanceFrame(0xc0004dd1e0, 0xa, 0x0, 0x0)
        /home/ubuntu/go/pkg/mod/github.com/gorilla/[email protected]/conn.go:787 +0x5c
github.com/gorilla/websocket.(*Conn).NextReader(0xc0004dd1e0, 0x43d04f, 0xc0007bbea8, 0x460400, 0xc0007bbef0, 0xc0007bbef8)
        /home/ubuntu/go/pkg/mod/github.com/gorilla/[email protected]/conn.go:947 +0xa0
github.com/gorilla/websocket.(*Conn).ReadMessage(0xc0004dd1e0, 0xc00067aca0, 0xedecc0, 0xc001b2aa80, 0xc0006c8520, 0x1, 0x0)
        /home/ubuntu/go/pkg/mod/github.com/gorilla/[email protected]/conn.go:1028 +0x2f
github.com/tomochain/tomox-sdk/ws.readHandler(0xc0006c8520)
        /home/ubuntu/tomox-sdk/ws/connection.go:59 +0x1ae
created by github.com/tomochain/tomox-sdk/ws.ConnectionEndpoint
        /home/ubuntu/tomox-sdk/ws/connection.go:42 +0x201

goroutine 1140 [select, 1 minutes]:
github.com/tomochain/tomox-sdk/ws.writeHandler(0xc0003f3320)
        /home/ubuntu/tomox-sdk/ws/connection.go:104 +0x138
created by github.com/tomochain/tomox-sdk/ws.ConnectionEndpoint
        /home/ubuntu/tomox-sdk/ws/connection.go:43 +0x223

goroutine 651 [IO wait]:
internal/poll.runtime_pollWait(0x7fac29e15ae0, 0x72, 0xffffffffffffffff)
        /usr/local/go/src/runtime/netpoll.go:182 +0x56
internal/poll.(*pollDesc).wait(0xc00063ce18, 0x72, 0x0, 0x24, 0xffffffffffffffff)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x9b
internal/poll.(*pollDesc).waitRead(...)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Read(0xc00063ce00, 0xc000789200, 0x24, 0x24, 0x0, 0x0, 0x0)
        /usr/local/go/src/internal/poll/fd_unix.go:169 +0x19b
net.(*netFD).Read(0xc00063ce00, 0xc000789200, 0x24, 0x24, 0x0, 0x0, 0x0)
        /usr/local/go/src/net/fd_unix.go:202 +0x4f
net.(*conn).Read(0xc00092c098, 0xc000789200, 0x24, 0x24, 0x0, 0x0, 0x0)
        /usr/local/go/src/net/net.go:177 +0x69
github.com/globalsign/mgo.fill(0x12a0f00, 0xc00092c098, 0xc000789200, 0x24, 0x24, 0x0, 0xcf)
        /home/ubuntu/go/pkg/mod/github.com/globalsign/[email protected]/socket.go:584 +0x53
github.com/globalsign/mgo.(*mongoSocket).readLoop(0xc000272a20)
        /home/ubuntu/go/pkg/mod/github.com/globalsign/[email protected]/socket.go:600 +0x53d
created by github.com/globalsign/mgo.newSocket
        /home/ubuntu/go/pkg/mod/github.com/globalsign/[email protected]/socket.go:200 +0x1d7

goroutine 2499 [IO wait]:
internal/poll.runtime_pollWait(0x7fac29e15120, 0x72, 0xffffffffffffffff)
        /usr/local/go/src/runtime/netpoll.go:182 +0x56
internal/poll.(*pollDesc).wait(0xc001ae6b18, 0x72, 0x400, 0x400, 0xffffffffffffffff)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x9b
internal/poll.(*pollDesc).waitRead(...)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Read(0xc001ae6b00, 0xc001bcc000, 0x400, 0x400, 0x0, 0x0, 0x0)
        /usr/local/go/src/internal/poll/fd_unix.go:169 +0x19b
net.(*netFD).Read(0xc001ae6b00, 0xc001bcc000, 0x400, 0x400, 0x4c8add, 0xc001ae6b00, 0xc0000ba700)
        /usr/local/go/src/net/fd_unix.go:202 +0x4f
net.(*conn).Read(0xc000a643b8, 0xc001bcc000, 0x400, 0x400, 0x0, 0x0, 0x0)
        /usr/local/go/src/net/net.go:177 +0x69
bufio.(*Reader).fill(0xc0018d9c20)
        /usr/local/go/src/bufio/bufio.go:100 +0x10f
bufio.(*Reader).Peek(0xc0018d9c20, 0x2, 0xc001c13d10, 0xb53447, 0xc000a643b8, 0xbf5006a8502b914c, 0x1a8dfdb1b9f)
        /usr/local/go/src/bufio/bufio.go:138 +0x4f
github.com/gorilla/websocket.(*Conn).read(0xc000b04000, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0)
        /home/ubuntu/go/pkg/mod/github.com/gorilla/[email protected]/conn.go:357 +0x40
github.com/gorilla/websocket.(*Conn).advanceFrame(0xc000b04000, 0xa, 0x0, 0x0)
        /home/ubuntu/go/pkg/mod/github.com/gorilla/[email protected]/conn.go:787 +0x5c
github.com/gorilla/websocket.(*Conn).NextReader(0xc000b04000, 0x43d04f, 0xc001c13ea8, 0x460400, 0xc001c13ef0, 0xc001c13ef8)
        /home/ubuntu/go/pkg/mod/github.com/gorilla/[email protected]/conn.go:947 +0xa0
github.com/gorilla/websocket.(*Conn).ReadMessage(0xc000b04000, 0xc00067b5b0, 0xedecc0, 0xc0019811d0, 0xc001c4a8c0, 0x1, 0x0)
        /home/ubuntu/go/pkg/mod/github.com/gorilla/[email protected]/conn.go:1028 +0x2f
github.com/tomochain/tomox-sdk/ws.readHandler(0xc001c4a8c0)
        /home/ubuntu/tomox-sdk/ws/connection.go:59 +0x1ae
created by github.com/tomochain/tomox-sdk/ws.ConnectionEndpoint
        /home/ubuntu/tomox-sdk/ws/connection.go:42 +0x201

goroutine 706 [IO wait, 25 minutes]:
internal/poll.runtime_pollWait(0x7fac29e2ac78, 0x72, 0xffffffffffffffff)
        /usr/local/go/src/runtime/netpoll.go:182 +0x56
internal/poll.(*pollDesc).wait(0xc000359a18, 0x72, 0x0, 0x24, 0xffffffffffffffff)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x9b
internal/poll.(*pollDesc).waitRead(...)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Read(0xc000359a00, 0xc0009c0690, 0x24, 0x24, 0x0, 0x0, 0x0)
        /usr/local/go/src/internal/poll/fd_unix.go:169 +0x19b
net.(*netFD).Read(0xc000359a00, 0xc0009c0690, 0x24, 0x24, 0x0, 0x0, 0x0)
        /usr/local/go/src/net/fd_unix.go:202 +0x4f
net.(*conn).Read(0xc0007ec128, 0xc0009c0690, 0x24, 0x24, 0x0, 0x0, 0x0)
        /usr/local/go/src/net/net.go:177 +0x69
github.com/globalsign/mgo.fill(0x12a0f00, 0xc0007ec128, 0xc0009c0690, 0x24, 0x24, 0x0, 0xcf)
        /home/ubuntu/go/pkg/mod/github.com/globalsign/[email protected]/socket.go:584 +0x53
github.com/globalsign/mgo.(*mongoSocket).readLoop(0xc0009985a0)
        /home/ubuntu/go/pkg/mod/github.com/globalsign/[email protected]/socket.go:600 +0x53d
created by github.com/globalsign/mgo.newSocket
        /home/ubuntu/go/pkg/mod/github.com/globalsign/[email protected]/socket.go:200 +0x1d7

goroutine 654 [IO wait, 1 minutes]:
internal/poll.runtime_pollWait(0x7fac29e152c0, 0x72, 0xffffffffffffffff)
        /usr/local/go/src/runtime/netpoll.go:182 +0x56
internal/poll.(*pollDesc).wait(0xc00063d098, 0x72, 0x400, 0x400, 0xffffffffffffffff)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x9b
internal/poll.(*pollDesc).waitRead(...)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Read(0xc00063d080, 0xc000437800, 0x400, 0x400, 0x0, 0x0, 0x0)
        /usr/local/go/src/internal/poll/fd_unix.go:169 +0x19b
net.(*netFD).Read(0xc00063d080, 0xc000437800, 0x400, 0x400, 0x4c8add, 0xc00063d080, 0xc0000ba700)
        /usr/local/go/src/net/fd_unix.go:202 +0x4f
net.(*conn).Read(0xc00092c0b0, 0xc000437800, 0x400, 0x400, 0x0, 0x0, 0x0)
        /usr/local/go/src/net/net.go:177 +0x69
bufio.(*Reader).fill(0xc000805c80)
        /usr/local/go/src/bufio/bufio.go:100 +0x10f
bufio.(*Reader).Peek(0xc000805c80, 0x2, 0xc0008e3d10, 0xb53447, 0xc00092c0b0, 0xbf5006a00698491d, 0x1a12753c976)
        /usr/local/go/src/bufio/bufio.go:138 +0x4f
github.com/gorilla/websocket.(*Conn).read(0xc0000f7080, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0)
        /home/ubuntu/go/pkg/mod/github.com/gorilla/[email protected]/conn.go:357 +0x40
github.com/gorilla/websocket.(*Conn).advanceFrame(0xc0000f7080, 0xa, 0x0, 0x0)
        /home/ubuntu/go/pkg/mod/github.com/gorilla/[email protected]/conn.go:787 +0x5c
github.com/gorilla/websocket.(*Conn).NextReader(0xc0000f7080, 0x43d04f, 0xc0008e3ea8, 0x460400, 0xc0008e3ef0, 0xc0008e3ef8)
        /home/ubuntu/go/pkg/mod/github.com/gorilla/[email protected]/conn.go:947 +0xa0
github.com/gorilla/websocket.(*Conn).ReadMessage(0xc0000f7080, 0xc00067b310, 0xedecc0, 0xc00066b1d0, 0xc0003a95c0, 0x1, 0x0)
        /home/ubuntu/go/pkg/mod/github.com/gorilla/[email protected]/conn.go:1028 +0x2f
github.com/tomochain/tomox-sdk/ws.readHandler(0xc0003a95c0)
        /home/ubuntu/tomox-sdk/ws/connection.go:59 +0x1ae
created by github.com/tomochain/tomox-sdk/ws.ConnectionEndpoint
        /home/ubuntu/tomox-sdk/ws/connection.go:42 +0x201

goroutine 465 [IO wait]:
internal/poll.runtime_pollWait(0x7fac29e2ae18, 0x72, 0xffffffffffffffff)
        /usr/local/go/src/runtime/netpoll.go:182 +0x56
internal/poll.(*pollDesc).wait(0xc000790098, 0x72, 0x0, 0x24, 0xffffffffffffffff)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x9b
internal/poll.(*pollDesc).waitRead(...)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Read(0xc000790080, 0xc0009bc540, 0x24, 0x24, 0x0, 0x0, 0x0)
        /usr/local/go/src/internal/poll/fd_unix.go:169 +0x19b
net.(*netFD).Read(0xc000790080, 0xc0009bc540, 0x24, 0x24, 0x0, 0x0, 0xc000476e48)
        /usr/local/go/src/net/fd_unix.go:202 +0x4f
net.(*conn).Read(0xc000ac4000, 0xc0009bc540, 0x24, 0x24, 0x0, 0x0, 0x0)
        /usr/local/go/src/net/net.go:177 +0x69
github.com/globalsign/mgo.fill(0x12a0f00, 0xc000ac4000, 0xc0009bc540, 0x24, 0x24, 0x0, 0xe01)
        /home/ubuntu/go/pkg/mod/github.com/globalsign/[email protected]/socket.go:584 +0x53
github.com/globalsign/mgo.(*mongoSocket).readLoop(0xc00094c120)
        /home/ubuntu/go/pkg/mod/github.com/globalsign/[email protected]/socket.go:600 +0x53d
created by github.com/globalsign/mgo.newSocket
        /home/ubuntu/go/pkg/mod/github.com/globalsign/[email protected]/socket.go:200 +0x1d7

goroutine 960 [select]:
github.com/tomochain/tomox-sdk/ws.writeHandler(0xc001a6c8c0)
        /home/ubuntu/tomox-sdk/ws/connection.go:104 +0x138
created by github.com/tomochain/tomox-sdk/ws.ConnectionEndpoint
        /home/ubuntu/tomox-sdk/ws/connection.go:43 +0x223

goroutine 1611 [IO wait, 1 minutes]:
internal/poll.runtime_pollWait(0x7fac29e156d0, 0x72, 0xffffffffffffffff)
        /usr/local/go/src/runtime/netpoll.go:182 +0x56
internal/poll.(*pollDesc).wait(0xc00063da18, 0x72, 0x400, 0x400, 0xffffffffffffffff)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x9b
internal/poll.(*pollDesc).waitRead(...)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Read(0xc00063da00, 0xc00191c000, 0x400, 0x400, 0x0, 0x0, 0x0)
        /usr/local/go/src/internal/poll/fd_unix.go:169 +0x19b
net.(*netFD).Read(0xc00063da00, 0xc00191c000, 0x400, 0x400, 0x4c8add, 0xc00063da00, 0xc0002dc100)
        /usr/local/go/src/net/fd_unix.go:202 +0x4f
net.(*conn).Read(0xc0007ec370, 0xc00191c000, 0x400, 0x400, 0x0, 0x0, 0x0)
        /usr/local/go/src/net/net.go:177 +0x69
bufio.(*Reader).fill(0xc000ac8f00)
        /usr/local/go/src/bufio/bufio.go:100 +0x10f
bufio.(*Reader).Peek(0xc000ac8f00, 0x2, 0xc0008e5d10, 0xb53447, 0xc0007ec370, 0xbf5006a27b0744ec, 0x1a37433df46)
        /usr/local/go/src/bufio/bufio.go:138 +0x4f
github.com/gorilla/websocket.(*Conn).read(0xc001892840, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0)
        /home/ubuntu/go/pkg/mod/github.com/gorilla/[email protected]/conn.go:357 +0x40
github.com/gorilla/websocket.(*Conn).advanceFrame(0xc001892840, 0xa, 0x0, 0x0)
        /home/ubuntu/go/pkg/mod/github.com/gorilla/[email protected]/conn.go:787 +0x5c
github.com/gorilla/websocket.(*Conn).NextReader(0xc001892840, 0x43d04f, 0xc0008e5ea8, 0x460400, 0xc0008e5ef0, 0xc0008e5ef8)
        /home/ubuntu/go/pkg/mod/github.com/gorilla/[email protected]/conn.go:947 +0xa0
github.com/gorilla/websocket.(*Conn).ReadMessage(0xc001892840, 0xc00067aca0, 0xedecc0, 0xc001615b00, 0xc000475020, 0x1, 0x0)
        /home/ubuntu/go/pkg/mod/github.com/gorilla/[email protected]/conn.go:1028 +0x2f
github.com/tomochain/tomox-sdk/ws.readHandler(0xc000475020)
        /home/ubuntu/tomox-sdk/ws/connection.go:59 +0x1ae
created by github.com/tomochain/tomox-sdk/ws.ConnectionEndpoint
        /home/ubuntu/tomox-sdk/ws/connection.go:42 +0x201

goroutine 2500 [select]:
github.com/tomochain/tomox-sdk/ws.writeHandler(0xc001c4a8c0)
        /home/ubuntu/tomox-sdk/ws/connection.go:104 +0x138
created by github.com/tomochain/tomox-sdk/ws.ConnectionEndpoint
        /home/ubuntu/tomox-sdk/ws/connection.go:43 +0x223

goroutine 2333 [select, 1 minutes]:
github.com/tomochain/tomox-sdk/ws.writeHandler(0xc0006c8520)
        /home/ubuntu/tomox-sdk/ws/connection.go:104 +0x138
created by github.com/tomochain/tomox-sdk/ws.ConnectionEndpoint
        /home/ubuntu/tomox-sdk/ws/connection.go:43 +0x223

goroutine 1754 [IO wait, 1 minutes]:
internal/poll.runtime_pollWait(0x7fac29e2a938, 0x72, 0xffffffffffffffff)
        /usr/local/go/src/runtime/netpoll.go:182 +0x56
internal/poll.(*pollDesc).wait(0xc0019f2d18, 0x72, 0x400, 0x400, 0xffffffffffffffff)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x9b
internal/poll.(*pollDesc).waitRead(...)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Read(0xc0019f2d00, 0xc001946400, 0x400, 0x400, 0x0, 0x0, 0x0)
        /usr/local/go/src/internal/poll/fd_unix.go:169 +0x19b
net.(*netFD).Read(0xc0019f2d00, 0xc001946400, 0x400, 0x400, 0x4c8add, 0xc0019f2d00, 0xc0000ba700)
        /usr/local/go/src/net/fd_unix.go:202 +0x4f
net.(*conn).Read(0xc0002deb70, 0xc001946400, 0x400, 0x400, 0x0, 0x0, 0x0)
        /usr/local/go/src/net/net.go:177 +0x69
bufio.(*Reader).fill(0xc001938660)
        /usr/local/go/src/bufio/bufio.go:100 +0x10f
bufio.(*Reader).Peek(0xc001938660, 0x2, 0xc0004e9d10, 0xb53447, 0xc0002deb70, 0xbf5006a38fd736fe, 0x1a47309c35e)
        /usr/local/go/src/bufio/bufio.go:138 +0x4f
github.com/gorilla/websocket.(*Conn).read(0xc000a7b1e0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0)
        /home/ubuntu/go/pkg/mod/github.com/gorilla/[email protected]/conn.go:357 +0x40
github.com/gorilla/websocket.(*Conn).advanceFrame(0xc000a7b1e0, 0xa, 0x0, 0x0)
        /home/ubuntu/go/pkg/mod/github.com/gorilla/[email protected]/conn.go:787 +0x5c
github.com/gorilla/websocket.(*Conn).NextReader(0xc000a7b1e0, 0x43d04f, 0xc0004e9ea8, 0x460400, 0xc0004e9ef0, 0xc0004e9ef8)
        /home/ubuntu/go/pkg/mod/github.com/gorilla/[email protected]/conn.go:947 +0xa0
github.com/gorilla/websocket.(*Conn).ReadMessage(0xc000a7b1e0, 0xc00067b310, 0xedecc0, 0xc00066b9b0, 0xc001c4d380, 0x1, 0x0)
        /home/ubuntu/go/pkg/mod/github.com/gorilla/[email protected]/conn.go:1028 +0x2f
github.com/tomochain/tomox-sdk/ws.readHandler(0xc001c4d380)
        /home/ubuntu/tomox-sdk/ws/connection.go:59 +0x1ae
created by github.com/tomochain/tomox-sdk/ws.ConnectionEndpoint
        /home/ubuntu/tomox-sdk/ws/connection.go:42 +0x201

goroutine 3451 [select, 1 minutes]:
github.com/tomochain/tomox-sdk/ws.writeHandler(0xc001c4cbe0)
        /home/ubuntu/tomox-sdk/ws/connection.go:104 +0x138
created by github.com/tomochain/tomox-sdk/ws.ConnectionEndpoint
        /home/ubuntu/tomox-sdk/ws/connection.go:43 +0x223

goroutine 2842 [select, 1 minutes]:
github.com/tomochain/tomox-sdk/ws.writeHandler(0xc001c4acc0)
        /home/ubuntu/tomox-sdk/ws/connection.go:104 +0x138
created by github.com/tomochain/tomox-sdk/ws.ConnectionEndpoint
        /home/ubuntu/tomox-sdk/ws/connection.go:43 +0x223

goroutine 2841 [IO wait, 1 minutes]:
internal/poll.runtime_pollWait(0x7fac29e2aad8, 0x72, 0xffffffffffffffff)
        /usr/local/go/src/runtime/netpoll.go:182 +0x56
internal/poll.(*pollDesc).wait(0xc00063c618, 0x72, 0x400, 0x400, 0xffffffffffffffff)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x9b
internal/poll.(*pollDesc).waitRead(...)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Read(0xc00063c600, 0xc001923400, 0x400, 0x400, 0x0, 0x0, 0x0)
        /usr/local/go/src/internal/poll/fd_unix.go:169 +0x19b
net.(*netFD).Read(0xc00063c600, 0xc001923400, 0x400, 0x400, 0x4c8add, 0xc00063c600, 0xc0008fa000)
        /usr/local/go/src/net/fd_unix.go:202 +0x4f
net.(*conn).Read(0xc000276868, 0xc001923400, 0x400, 0x400, 0x0, 0x0, 0x0)
        /usr/local/go/src/net/net.go:177 +0x69
bufio.(*Reader).fill(0xc001bc7da0)
        /usr/local/go/src/bufio/bufio.go:100 +0x10f
bufio.(*Reader).Peek(0xc001bc7da0, 0x2, 0xc0007b9d10, 0xb53447, 0xc000276868, 0xbf50069e007afc9b, 0x19f44602d02)
        /usr/local/go/src/bufio/bufio.go:138 +0x4f
github.com/gorilla/websocket.(*Conn).read(0xc001892420, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0)
        /home/ubuntu/go/pkg/mod/github.com/gorilla/[email protected]/conn.go:357 +0x40
github.com/gorilla/websocket.(*Conn).advanceFrame(0xc001892420, 0xa, 0x0, 0x0)
        /home/ubuntu/go/pkg/mod/github.com/gorilla/[email protected]/conn.go:787 +0x5c
github.com/gorilla/websocket.(*Conn).NextReader(0xc001892420, 0x43d04f, 0xc0007b9ea8, 0x460400, 0xc0007b9ef0, 0xc0007b9ef8)
        /home/ubuntu/go/pkg/mod/github.com/gorilla/[email protected]/conn.go:947 +0xa0
github.com/gorilla/websocket.(*Conn).ReadMessage(0xc001892420, 0xc00067b330, 0xedecc0, 0xc0019e0f60, 0xc001c4acc0, 0x1, 0x0)
        /home/ubuntu/go/pkg/mod/github.com/gorilla/[email protected]/conn.go:1028 +0x2f
github.com/tomochain/tomox-sdk/ws.readHandler(0xc001c4acc0)
        /home/ubuntu/tomox-sdk/ws/connection.go:59 +0x1ae
created by github.com/tomochain/tomox-sdk/ws.ConnectionEndpoint
        /home/ubuntu/tomox-sdk/ws/connection.go:42 +0x201

OHLCV api: Range of candle is not correct

url for candle 7m:
https://dex.devnet.tomochain.com/api/ohlcv?baseToken=0x4d7eA2cE949216D6b120f3AA10164173615A2b6C&quoteToken=0x0000000000000000000000000000000000000001&timeInterval=7m&from=1566493200&to=1566543600

Data Return:
{"close":"20515640000000000000000","closeTime":"0001-01-01T00:00:00Z","count":"23","high":"20515900000000000000000","low":"20515640000000000000000","open":"20515800000000000000000","openTime":"0001-01-01T00:00:00Z","pair":{"baseToken":"0x4d7eA2cE949216D6b120f3AA10164173615A2b6C","pairName":"BTC/TOMO","quoteToken":"0x0000000000000000000000000000000000000001"},"timestamp":1566536400000,"volume":"58491708435300106"}]}

open: 20515800000000000000000
close: 20515640000000000000000

But in market trade history of dex as bellow:
image
Range of time is not correct. Pls check!

Add new APIs for price board menu

We need new websocket APIs for the price board top menu:

  • Lowest price in 24h
  • Highest price in 24h
  • Volume in 24h
  • 24h change (percent, $ value)
  • Latest trade price

screenshot 2019-03-01 11 06 52

Implement Stop Order (Stop Limit / Stop Market)

Stop order will be implemented at TomoDEX level (not TomoX level)

When an order is sent from TomoDEX to TomoX, it should has type "Limit" or "Market".
TomoX should not handle stop order.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.