@@ -55,21 +55,27 @@ func (c *Client) SetShortConnUrl(url string) {
55
55
}
56
56
57
57
func (c * Client ) GetInfo () (info * types.NetworkInfo , err error ) {
58
- body , _ , err := c .httpGet ("info" )
58
+ body , code , err := c .httpGet ("info" )
59
59
if err != nil {
60
60
return nil , ErrBadGateway
61
61
}
62
+ if code != 200 {
63
+ return nil , fmt .Errorf ("get info error: %s" , string (body ))
64
+ }
62
65
63
66
info = & types.NetworkInfo {}
64
67
err = json .Unmarshal (body , info )
65
68
return
66
69
}
67
70
68
71
func (c * Client ) GetPeers () ([]string , error ) {
69
- body , _ , err := c .httpGet ("peers" )
72
+ body , code , err := c .httpGet ("peers" )
70
73
if err != nil {
71
74
return nil , ErrBadGateway
72
75
}
76
+ if code != 200 {
77
+ return nil , fmt .Errorf ("get peers error: %s" , string (body ))
78
+ }
73
79
74
80
peers := make ([]string , 0 )
75
81
err = json .Unmarshal (body , & peers )
@@ -226,19 +232,34 @@ func (c *Client) GetTransactionPrice(data []byte, target *string) (reward int64,
226
232
url = fmt .Sprintf ("%v/%v" , url , * target )
227
233
}
228
234
229
- body , _ , err := c .httpGet (url )
235
+ body , code , err := c .httpGet (url )
236
+ if err != nil {
237
+ return
238
+ }
239
+ if code != 200 {
240
+ return 0 , fmt .Errorf ("get reward error: %s" , string (body ))
241
+ }
242
+
243
+ reward , err = strconv .ParseInt (string (body ), 10 , 64 )
230
244
if err != nil {
231
245
return
232
246
}
233
247
234
- return strconv .ParseInt (string (body ), 10 , 64 )
248
+ // reward can not be 0
249
+ if reward <= 0 {
250
+ err = errors .New ("reward must more than 0" )
251
+ }
252
+ return
235
253
}
236
254
237
255
func (c * Client ) GetTransactionAnchor () (anchor string , err error ) {
238
- body , _ , err := c .httpGet ("tx_anchor" )
256
+ body , code , err := c .httpGet ("tx_anchor" )
239
257
if err != nil {
240
258
return
241
259
}
260
+ if code != 200 {
261
+ return "" , fmt .Errorf ("get tx anchor err: %s" , string (body ))
262
+ }
242
263
243
264
anchor = string (body )
244
265
return
@@ -308,10 +329,13 @@ func (c *Client) GraphQL(query string) ([]byte, error) {
308
329
309
330
// Wallet
310
331
func (c * Client ) GetWalletBalance (address string ) (arAmount * big.Float , err error ) {
311
- body , _ , err := c .httpGet (fmt .Sprintf ("wallet/%s/balance" , address ))
332
+ body , code , err := c .httpGet (fmt .Sprintf ("wallet/%s/balance" , address ))
312
333
if err != nil {
313
334
return
314
335
}
336
+ if code != 200 {
337
+ return nil , fmt .Errorf ("get balance error: %s" , string (body ))
338
+ }
315
339
316
340
winstomStr := string (body )
317
341
winstom , ok := new (big.Int ).SetString (winstomStr , 10 )
@@ -325,33 +349,42 @@ func (c *Client) GetWalletBalance(address string) (arAmount *big.Float, err erro
325
349
}
326
350
327
351
func (c * Client ) GetLastTransactionID (address string ) (id string , err error ) {
328
- body , _ , err := c .httpGet (fmt .Sprintf ("wallet/%s/last_tx" , address ))
352
+ body , code , err := c .httpGet (fmt .Sprintf ("wallet/%s/last_tx" , address ))
329
353
if err != nil {
330
354
return
331
355
}
356
+ if code != 200 {
357
+ return "" , fmt .Errorf ("get last id error: %s" , string (body ))
358
+ }
332
359
333
360
id = string (body )
334
361
return
335
362
}
336
363
337
364
// Block
338
365
func (c * Client ) GetBlockByID (id string ) (block * types.Block , err error ) {
339
- body , _ , err := c .httpGet (fmt .Sprintf ("block/hash/%s" , id ))
366
+ body , code , err := c .httpGet (fmt .Sprintf ("block/hash/%s" , id ))
340
367
if err != nil {
341
368
return
342
369
}
343
370
371
+ if code != 200 {
372
+ return nil , fmt .Errorf ("get block by id error: %s" , string (body ))
373
+ }
344
374
block = & types.Block {}
345
375
err = json .Unmarshal (body , block )
346
376
return
347
377
}
348
378
349
379
func (c * Client ) GetBlockByHeight (height int64 ) (block * types.Block , err error ) {
350
- body , _ , err := c .httpGet (fmt .Sprintf ("block/height/%d" , height ))
380
+ body , code , err := c .httpGet (fmt .Sprintf ("block/height/%d" , height ))
351
381
if err != nil {
352
382
return
353
383
}
354
384
385
+ if code != 200 {
386
+ return nil , fmt .Errorf ("get block by height error: %s" , string (body ))
387
+ }
355
388
block = & types.Block {}
356
389
err = json .Unmarshal (body , block )
357
390
return
0 commit comments