You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

887 lines
24 KiB

  1. // File generated by github.com/ebuchman/rpc-gen
  2. package core_client
  3. import (
  4. "fmt"
  5. "github.com/tendermint/tendermint/account"
  6. "github.com/tendermint/tendermint/binary"
  7. "github.com/tendermint/tendermint/rpc"
  8. ctypes "github.com/tendermint/tendermint/rpc/core/types"
  9. "github.com/tendermint/tendermint/types"
  10. "io/ioutil"
  11. "net/http"
  12. )
  13. type Client interface {
  14. BlockchainInfo(minHeight uint, maxHeight uint) (*ctypes.ResponseBlockchainInfo, error)
  15. BroadcastTx(tx types.Tx) (*ctypes.ResponseBroadcastTx, error)
  16. Call(address []byte, data []byte) (*ctypes.ResponseCall, error)
  17. CallCode(code []byte, data []byte) (*ctypes.ResponseCall, error)
  18. DumpConsensusState() (*ctypes.ResponseDumpConsensusState, error)
  19. DumpStorage(address []byte) (*ctypes.ResponseDumpStorage, error)
  20. GenPrivAccount() (*ctypes.ResponseGenPrivAccount, error)
  21. GetAccount(address []byte) (*ctypes.ResponseGetAccount, error)
  22. GetBlock(height uint) (*ctypes.ResponseGetBlock, error)
  23. GetStorage(address []byte, key []byte) (*ctypes.ResponseGetStorage, error)
  24. ListAccounts() (*ctypes.ResponseListAccounts, error)
  25. ListValidators() (*ctypes.ResponseListValidators, error)
  26. NetInfo() (*ctypes.ResponseNetInfo, error)
  27. SignTx(tx types.Tx, privAccounts []*account.PrivAccount) (*ctypes.ResponseSignTx, error)
  28. Status() (*ctypes.ResponseStatus, error)
  29. }
  30. func (c *ClientHTTP) BlockchainInfo(minHeight uint, maxHeight uint) (*ctypes.ResponseBlockchainInfo, error) {
  31. values, err := argsToURLValues([]string{"minHeight", "maxHeight"}, minHeight, maxHeight)
  32. if err != nil {
  33. return nil, err
  34. }
  35. resp, err := http.PostForm(c.addr+reverseFuncMap["BlockchainInfo"], values)
  36. if err != nil {
  37. return nil, err
  38. }
  39. defer resp.Body.Close()
  40. body, err := ioutil.ReadAll(resp.Body)
  41. if err != nil {
  42. return nil, err
  43. }
  44. var response struct {
  45. Result *ctypes.ResponseBlockchainInfo `json:"result"`
  46. Error string `json:"error"`
  47. Id string `json:"id"`
  48. JSONRPC string `json:"jsonrpc"`
  49. }
  50. binary.ReadJSON(&response, body, &err)
  51. if err != nil {
  52. return nil, err
  53. }
  54. if response.Error != "" {
  55. return nil, fmt.Errorf(response.Error)
  56. }
  57. return response.Result, nil
  58. }
  59. func (c *ClientHTTP) BroadcastTx(tx types.Tx) (*ctypes.ResponseBroadcastTx, error) {
  60. values, err := argsToURLValues([]string{"tx"}, tx)
  61. if err != nil {
  62. return nil, err
  63. }
  64. resp, err := http.PostForm(c.addr+reverseFuncMap["BroadcastTx"], values)
  65. if err != nil {
  66. return nil, err
  67. }
  68. defer resp.Body.Close()
  69. body, err := ioutil.ReadAll(resp.Body)
  70. if err != nil {
  71. return nil, err
  72. }
  73. var response struct {
  74. Result *ctypes.ResponseBroadcastTx `json:"result"`
  75. Error string `json:"error"`
  76. Id string `json:"id"`
  77. JSONRPC string `json:"jsonrpc"`
  78. }
  79. binary.ReadJSON(&response, body, &err)
  80. if err != nil {
  81. return nil, err
  82. }
  83. if response.Error != "" {
  84. return nil, fmt.Errorf(response.Error)
  85. }
  86. return response.Result, nil
  87. }
  88. func (c *ClientHTTP) Call(address []byte, data []byte) (*ctypes.ResponseCall, error) {
  89. values, err := argsToURLValues([]string{"address", "data"}, address, data)
  90. if err != nil {
  91. return nil, err
  92. }
  93. resp, err := http.PostForm(c.addr+reverseFuncMap["Call"], values)
  94. if err != nil {
  95. return nil, err
  96. }
  97. defer resp.Body.Close()
  98. body, err := ioutil.ReadAll(resp.Body)
  99. if err != nil {
  100. return nil, err
  101. }
  102. var response struct {
  103. Result *ctypes.ResponseCall `json:"result"`
  104. Error string `json:"error"`
  105. Id string `json:"id"`
  106. JSONRPC string `json:"jsonrpc"`
  107. }
  108. binary.ReadJSON(&response, body, &err)
  109. if err != nil {
  110. return nil, err
  111. }
  112. if response.Error != "" {
  113. return nil, fmt.Errorf(response.Error)
  114. }
  115. return response.Result, nil
  116. }
  117. func (c *ClientHTTP) CallCode(code []byte, data []byte) (*ctypes.ResponseCall, error) {
  118. values, err := argsToURLValues([]string{"code", "data"}, code, data)
  119. if err != nil {
  120. return nil, err
  121. }
  122. resp, err := http.PostForm(c.addr+reverseFuncMap["CallCode"], values)
  123. if err != nil {
  124. return nil, err
  125. }
  126. defer resp.Body.Close()
  127. body, err := ioutil.ReadAll(resp.Body)
  128. if err != nil {
  129. return nil, err
  130. }
  131. var response struct {
  132. Result *ctypes.ResponseCall `json:"result"`
  133. Error string `json:"error"`
  134. Id string `json:"id"`
  135. JSONRPC string `json:"jsonrpc"`
  136. }
  137. binary.ReadJSON(&response, body, &err)
  138. if err != nil {
  139. return nil, err
  140. }
  141. if response.Error != "" {
  142. return nil, fmt.Errorf(response.Error)
  143. }
  144. return response.Result, nil
  145. }
  146. func (c *ClientHTTP) DumpConsensusState() (*ctypes.ResponseDumpConsensusState, error) {
  147. values, err := argsToURLValues(nil)
  148. if err != nil {
  149. return nil, err
  150. }
  151. resp, err := http.PostForm(c.addr+reverseFuncMap["DumpConsensusState"], values)
  152. if err != nil {
  153. return nil, err
  154. }
  155. defer resp.Body.Close()
  156. body, err := ioutil.ReadAll(resp.Body)
  157. if err != nil {
  158. return nil, err
  159. }
  160. var response struct {
  161. Result *ctypes.ResponseDumpConsensusState `json:"result"`
  162. Error string `json:"error"`
  163. Id string `json:"id"`
  164. JSONRPC string `json:"jsonrpc"`
  165. }
  166. binary.ReadJSON(&response, body, &err)
  167. if err != nil {
  168. return nil, err
  169. }
  170. if response.Error != "" {
  171. return nil, fmt.Errorf(response.Error)
  172. }
  173. return response.Result, nil
  174. }
  175. func (c *ClientHTTP) DumpStorage(address []byte) (*ctypes.ResponseDumpStorage, error) {
  176. values, err := argsToURLValues([]string{"address"}, address)
  177. if err != nil {
  178. return nil, err
  179. }
  180. resp, err := http.PostForm(c.addr+reverseFuncMap["DumpStorage"], values)
  181. if err != nil {
  182. return nil, err
  183. }
  184. defer resp.Body.Close()
  185. body, err := ioutil.ReadAll(resp.Body)
  186. if err != nil {
  187. return nil, err
  188. }
  189. var response struct {
  190. Result *ctypes.ResponseDumpStorage `json:"result"`
  191. Error string `json:"error"`
  192. Id string `json:"id"`
  193. JSONRPC string `json:"jsonrpc"`
  194. }
  195. binary.ReadJSON(&response, body, &err)
  196. if err != nil {
  197. return nil, err
  198. }
  199. if response.Error != "" {
  200. return nil, fmt.Errorf(response.Error)
  201. }
  202. return response.Result, nil
  203. }
  204. func (c *ClientHTTP) GenPrivAccount() (*ctypes.ResponseGenPrivAccount, error) {
  205. values, err := argsToURLValues(nil)
  206. if err != nil {
  207. return nil, err
  208. }
  209. resp, err := http.PostForm(c.addr+reverseFuncMap["GenPrivAccount"], values)
  210. if err != nil {
  211. return nil, err
  212. }
  213. defer resp.Body.Close()
  214. body, err := ioutil.ReadAll(resp.Body)
  215. if err != nil {
  216. return nil, err
  217. }
  218. var response struct {
  219. Result *ctypes.ResponseGenPrivAccount `json:"result"`
  220. Error string `json:"error"`
  221. Id string `json:"id"`
  222. JSONRPC string `json:"jsonrpc"`
  223. }
  224. binary.ReadJSON(&response, body, &err)
  225. if err != nil {
  226. return nil, err
  227. }
  228. if response.Error != "" {
  229. return nil, fmt.Errorf(response.Error)
  230. }
  231. return response.Result, nil
  232. }
  233. func (c *ClientHTTP) GetAccount(address []byte) (*ctypes.ResponseGetAccount, error) {
  234. values, err := argsToURLValues([]string{"address"}, address)
  235. if err != nil {
  236. return nil, err
  237. }
  238. resp, err := http.PostForm(c.addr+reverseFuncMap["GetAccount"], values)
  239. if err != nil {
  240. return nil, err
  241. }
  242. defer resp.Body.Close()
  243. body, err := ioutil.ReadAll(resp.Body)
  244. if err != nil {
  245. return nil, err
  246. }
  247. var response struct {
  248. Result *ctypes.ResponseGetAccount `json:"result"`
  249. Error string `json:"error"`
  250. Id string `json:"id"`
  251. JSONRPC string `json:"jsonrpc"`
  252. }
  253. binary.ReadJSON(&response, body, &err)
  254. if err != nil {
  255. return nil, err
  256. }
  257. if response.Error != "" {
  258. return nil, fmt.Errorf(response.Error)
  259. }
  260. return response.Result, nil
  261. }
  262. func (c *ClientHTTP) GetBlock(height uint) (*ctypes.ResponseGetBlock, error) {
  263. values, err := argsToURLValues([]string{"height"}, height)
  264. if err != nil {
  265. return nil, err
  266. }
  267. resp, err := http.PostForm(c.addr+reverseFuncMap["GetBlock"], values)
  268. if err != nil {
  269. return nil, err
  270. }
  271. defer resp.Body.Close()
  272. body, err := ioutil.ReadAll(resp.Body)
  273. if err != nil {
  274. return nil, err
  275. }
  276. var response struct {
  277. Result *ctypes.ResponseGetBlock `json:"result"`
  278. Error string `json:"error"`
  279. Id string `json:"id"`
  280. JSONRPC string `json:"jsonrpc"`
  281. }
  282. binary.ReadJSON(&response, body, &err)
  283. if err != nil {
  284. return nil, err
  285. }
  286. if response.Error != "" {
  287. return nil, fmt.Errorf(response.Error)
  288. }
  289. return response.Result, nil
  290. }
  291. func (c *ClientHTTP) GetStorage(address []byte, key []byte) (*ctypes.ResponseGetStorage, error) {
  292. values, err := argsToURLValues([]string{"address", "key"}, address, key)
  293. if err != nil {
  294. return nil, err
  295. }
  296. resp, err := http.PostForm(c.addr+reverseFuncMap["GetStorage"], values)
  297. if err != nil {
  298. return nil, err
  299. }
  300. defer resp.Body.Close()
  301. body, err := ioutil.ReadAll(resp.Body)
  302. if err != nil {
  303. return nil, err
  304. }
  305. var response struct {
  306. Result *ctypes.ResponseGetStorage `json:"result"`
  307. Error string `json:"error"`
  308. Id string `json:"id"`
  309. JSONRPC string `json:"jsonrpc"`
  310. }
  311. binary.ReadJSON(&response, body, &err)
  312. if err != nil {
  313. return nil, err
  314. }
  315. if response.Error != "" {
  316. return nil, fmt.Errorf(response.Error)
  317. }
  318. return response.Result, nil
  319. }
  320. func (c *ClientHTTP) ListAccounts() (*ctypes.ResponseListAccounts, error) {
  321. values, err := argsToURLValues(nil)
  322. if err != nil {
  323. return nil, err
  324. }
  325. resp, err := http.PostForm(c.addr+reverseFuncMap["ListAccounts"], values)
  326. if err != nil {
  327. return nil, err
  328. }
  329. defer resp.Body.Close()
  330. body, err := ioutil.ReadAll(resp.Body)
  331. if err != nil {
  332. return nil, err
  333. }
  334. var response struct {
  335. Result *ctypes.ResponseListAccounts `json:"result"`
  336. Error string `json:"error"`
  337. Id string `json:"id"`
  338. JSONRPC string `json:"jsonrpc"`
  339. }
  340. binary.ReadJSON(&response, body, &err)
  341. if err != nil {
  342. return nil, err
  343. }
  344. if response.Error != "" {
  345. return nil, fmt.Errorf(response.Error)
  346. }
  347. return response.Result, nil
  348. }
  349. func (c *ClientHTTP) ListValidators() (*ctypes.ResponseListValidators, error) {
  350. values, err := argsToURLValues(nil)
  351. if err != nil {
  352. return nil, err
  353. }
  354. resp, err := http.PostForm(c.addr+reverseFuncMap["ListValidators"], values)
  355. if err != nil {
  356. return nil, err
  357. }
  358. defer resp.Body.Close()
  359. body, err := ioutil.ReadAll(resp.Body)
  360. if err != nil {
  361. return nil, err
  362. }
  363. var response struct {
  364. Result *ctypes.ResponseListValidators `json:"result"`
  365. Error string `json:"error"`
  366. Id string `json:"id"`
  367. JSONRPC string `json:"jsonrpc"`
  368. }
  369. binary.ReadJSON(&response, body, &err)
  370. if err != nil {
  371. return nil, err
  372. }
  373. if response.Error != "" {
  374. return nil, fmt.Errorf(response.Error)
  375. }
  376. return response.Result, nil
  377. }
  378. func (c *ClientHTTP) NetInfo() (*ctypes.ResponseNetInfo, error) {
  379. values, err := argsToURLValues(nil)
  380. if err != nil {
  381. return nil, err
  382. }
  383. resp, err := http.PostForm(c.addr+reverseFuncMap["NetInfo"], values)
  384. if err != nil {
  385. return nil, err
  386. }
  387. defer resp.Body.Close()
  388. body, err := ioutil.ReadAll(resp.Body)
  389. if err != nil {
  390. return nil, err
  391. }
  392. var response struct {
  393. Result *ctypes.ResponseNetInfo `json:"result"`
  394. Error string `json:"error"`
  395. Id string `json:"id"`
  396. JSONRPC string `json:"jsonrpc"`
  397. }
  398. binary.ReadJSON(&response, body, &err)
  399. if err != nil {
  400. return nil, err
  401. }
  402. if response.Error != "" {
  403. return nil, fmt.Errorf(response.Error)
  404. }
  405. return response.Result, nil
  406. }
  407. func (c *ClientHTTP) SignTx(tx types.Tx, privAccounts []*account.PrivAccount) (*ctypes.ResponseSignTx, error) {
  408. values, err := argsToURLValues([]string{"tx", "privAccounts"}, tx, privAccounts)
  409. if err != nil {
  410. return nil, err
  411. }
  412. resp, err := http.PostForm(c.addr+reverseFuncMap["SignTx"], values)
  413. if err != nil {
  414. return nil, err
  415. }
  416. defer resp.Body.Close()
  417. body, err := ioutil.ReadAll(resp.Body)
  418. if err != nil {
  419. return nil, err
  420. }
  421. var response struct {
  422. Result *ctypes.ResponseSignTx `json:"result"`
  423. Error string `json:"error"`
  424. Id string `json:"id"`
  425. JSONRPC string `json:"jsonrpc"`
  426. }
  427. binary.ReadJSON(&response, body, &err)
  428. if err != nil {
  429. return nil, err
  430. }
  431. if response.Error != "" {
  432. return nil, fmt.Errorf(response.Error)
  433. }
  434. return response.Result, nil
  435. }
  436. func (c *ClientHTTP) Status() (*ctypes.ResponseStatus, error) {
  437. values, err := argsToURLValues(nil)
  438. if err != nil {
  439. return nil, err
  440. }
  441. resp, err := http.PostForm(c.addr+reverseFuncMap["Status"], values)
  442. if err != nil {
  443. return nil, err
  444. }
  445. defer resp.Body.Close()
  446. body, err := ioutil.ReadAll(resp.Body)
  447. if err != nil {
  448. return nil, err
  449. }
  450. var response struct {
  451. Result *ctypes.ResponseStatus `json:"result"`
  452. Error string `json:"error"`
  453. Id string `json:"id"`
  454. JSONRPC string `json:"jsonrpc"`
  455. }
  456. binary.ReadJSON(&response, body, &err)
  457. if err != nil {
  458. return nil, err
  459. }
  460. if response.Error != "" {
  461. return nil, fmt.Errorf(response.Error)
  462. }
  463. return response.Result, nil
  464. }
  465. func (c *ClientJSON) BlockchainInfo(minHeight uint, maxHeight uint) (*ctypes.ResponseBlockchainInfo, error) {
  466. request := rpc.RPCRequest{
  467. JSONRPC: "2.0",
  468. Method: reverseFuncMap["BlockchainInfo"],
  469. Params: []interface{}{minHeight, maxHeight},
  470. Id: 0,
  471. }
  472. body, err := c.RequestResponse(request)
  473. if err != nil {
  474. return nil, err
  475. }
  476. var response struct {
  477. Result *ctypes.ResponseBlockchainInfo `json:"result"`
  478. Error string `json:"error"`
  479. Id string `json:"id"`
  480. JSONRPC string `json:"jsonrpc"`
  481. }
  482. binary.ReadJSON(&response, body, &err)
  483. if err != nil {
  484. return nil, err
  485. }
  486. if response.Error != "" {
  487. return nil, fmt.Errorf(response.Error)
  488. }
  489. return response.Result, nil
  490. }
  491. func (c *ClientJSON) BroadcastTx(tx types.Tx) (*ctypes.ResponseBroadcastTx, error) {
  492. request := rpc.RPCRequest{
  493. JSONRPC: "2.0",
  494. Method: reverseFuncMap["BroadcastTx"],
  495. Params: []interface{}{tx},
  496. Id: 0,
  497. }
  498. body, err := c.RequestResponse(request)
  499. if err != nil {
  500. return nil, err
  501. }
  502. var response struct {
  503. Result *ctypes.ResponseBroadcastTx `json:"result"`
  504. Error string `json:"error"`
  505. Id string `json:"id"`
  506. JSONRPC string `json:"jsonrpc"`
  507. }
  508. binary.ReadJSON(&response, body, &err)
  509. if err != nil {
  510. return nil, err
  511. }
  512. if response.Error != "" {
  513. return nil, fmt.Errorf(response.Error)
  514. }
  515. return response.Result, nil
  516. }
  517. func (c *ClientJSON) Call(address []byte, data []byte) (*ctypes.ResponseCall, error) {
  518. request := rpc.RPCRequest{
  519. JSONRPC: "2.0",
  520. Method: reverseFuncMap["Call"],
  521. Params: []interface{}{address, data},
  522. Id: 0,
  523. }
  524. body, err := c.RequestResponse(request)
  525. if err != nil {
  526. return nil, err
  527. }
  528. var response struct {
  529. Result *ctypes.ResponseCall `json:"result"`
  530. Error string `json:"error"`
  531. Id string `json:"id"`
  532. JSONRPC string `json:"jsonrpc"`
  533. }
  534. binary.ReadJSON(&response, body, &err)
  535. if err != nil {
  536. return nil, err
  537. }
  538. if response.Error != "" {
  539. return nil, fmt.Errorf(response.Error)
  540. }
  541. return response.Result, nil
  542. }
  543. func (c *ClientJSON) CallCode(code []byte, data []byte) (*ctypes.ResponseCall, error) {
  544. request := rpc.RPCRequest{
  545. JSONRPC: "2.0",
  546. Method: reverseFuncMap["CallCode"],
  547. Params: []interface{}{code, data},
  548. Id: 0,
  549. }
  550. body, err := c.RequestResponse(request)
  551. if err != nil {
  552. return nil, err
  553. }
  554. var response struct {
  555. Result *ctypes.ResponseCall `json:"result"`
  556. Error string `json:"error"`
  557. Id string `json:"id"`
  558. JSONRPC string `json:"jsonrpc"`
  559. }
  560. binary.ReadJSON(&response, body, &err)
  561. if err != nil {
  562. return nil, err
  563. }
  564. if response.Error != "" {
  565. return nil, fmt.Errorf(response.Error)
  566. }
  567. return response.Result, nil
  568. }
  569. func (c *ClientJSON) DumpConsensusState() (*ctypes.ResponseDumpConsensusState, error) {
  570. request := rpc.RPCRequest{
  571. JSONRPC: "2.0",
  572. Method: reverseFuncMap["DumpConsensusState"],
  573. Params: []interface{}{},
  574. Id: 0,
  575. }
  576. body, err := c.RequestResponse(request)
  577. if err != nil {
  578. return nil, err
  579. }
  580. var response struct {
  581. Result *ctypes.ResponseDumpConsensusState `json:"result"`
  582. Error string `json:"error"`
  583. Id string `json:"id"`
  584. JSONRPC string `json:"jsonrpc"`
  585. }
  586. binary.ReadJSON(&response, body, &err)
  587. if err != nil {
  588. return nil, err
  589. }
  590. if response.Error != "" {
  591. return nil, fmt.Errorf(response.Error)
  592. }
  593. return response.Result, nil
  594. }
  595. func (c *ClientJSON) DumpStorage(address []byte) (*ctypes.ResponseDumpStorage, error) {
  596. request := rpc.RPCRequest{
  597. JSONRPC: "2.0",
  598. Method: reverseFuncMap["DumpStorage"],
  599. Params: []interface{}{address},
  600. Id: 0,
  601. }
  602. body, err := c.RequestResponse(request)
  603. if err != nil {
  604. return nil, err
  605. }
  606. var response struct {
  607. Result *ctypes.ResponseDumpStorage `json:"result"`
  608. Error string `json:"error"`
  609. Id string `json:"id"`
  610. JSONRPC string `json:"jsonrpc"`
  611. }
  612. binary.ReadJSON(&response, body, &err)
  613. if err != nil {
  614. return nil, err
  615. }
  616. if response.Error != "" {
  617. return nil, fmt.Errorf(response.Error)
  618. }
  619. return response.Result, nil
  620. }
  621. func (c *ClientJSON) GenPrivAccount() (*ctypes.ResponseGenPrivAccount, error) {
  622. request := rpc.RPCRequest{
  623. JSONRPC: "2.0",
  624. Method: reverseFuncMap["GenPrivAccount"],
  625. Params: []interface{}{},
  626. Id: 0,
  627. }
  628. body, err := c.RequestResponse(request)
  629. if err != nil {
  630. return nil, err
  631. }
  632. var response struct {
  633. Result *ctypes.ResponseGenPrivAccount `json:"result"`
  634. Error string `json:"error"`
  635. Id string `json:"id"`
  636. JSONRPC string `json:"jsonrpc"`
  637. }
  638. binary.ReadJSON(&response, body, &err)
  639. if err != nil {
  640. return nil, err
  641. }
  642. if response.Error != "" {
  643. return nil, fmt.Errorf(response.Error)
  644. }
  645. return response.Result, nil
  646. }
  647. func (c *ClientJSON) GetAccount(address []byte) (*ctypes.ResponseGetAccount, error) {
  648. request := rpc.RPCRequest{
  649. JSONRPC: "2.0",
  650. Method: reverseFuncMap["GetAccount"],
  651. Params: []interface{}{address},
  652. Id: 0,
  653. }
  654. body, err := c.RequestResponse(request)
  655. if err != nil {
  656. return nil, err
  657. }
  658. var response struct {
  659. Result *ctypes.ResponseGetAccount `json:"result"`
  660. Error string `json:"error"`
  661. Id string `json:"id"`
  662. JSONRPC string `json:"jsonrpc"`
  663. }
  664. binary.ReadJSON(&response, body, &err)
  665. if err != nil {
  666. return nil, err
  667. }
  668. if response.Error != "" {
  669. return nil, fmt.Errorf(response.Error)
  670. }
  671. return response.Result, nil
  672. }
  673. func (c *ClientJSON) GetBlock(height uint) (*ctypes.ResponseGetBlock, error) {
  674. request := rpc.RPCRequest{
  675. JSONRPC: "2.0",
  676. Method: reverseFuncMap["GetBlock"],
  677. Params: []interface{}{height},
  678. Id: 0,
  679. }
  680. body, err := c.RequestResponse(request)
  681. if err != nil {
  682. return nil, err
  683. }
  684. var response struct {
  685. Result *ctypes.ResponseGetBlock `json:"result"`
  686. Error string `json:"error"`
  687. Id string `json:"id"`
  688. JSONRPC string `json:"jsonrpc"`
  689. }
  690. binary.ReadJSON(&response, body, &err)
  691. if err != nil {
  692. return nil, err
  693. }
  694. if response.Error != "" {
  695. return nil, fmt.Errorf(response.Error)
  696. }
  697. return response.Result, nil
  698. }
  699. func (c *ClientJSON) GetStorage(address []byte, key []byte) (*ctypes.ResponseGetStorage, error) {
  700. request := rpc.RPCRequest{
  701. JSONRPC: "2.0",
  702. Method: reverseFuncMap["GetStorage"],
  703. Params: []interface{}{address, key},
  704. Id: 0,
  705. }
  706. body, err := c.RequestResponse(request)
  707. if err != nil {
  708. return nil, err
  709. }
  710. var response struct {
  711. Result *ctypes.ResponseGetStorage `json:"result"`
  712. Error string `json:"error"`
  713. Id string `json:"id"`
  714. JSONRPC string `json:"jsonrpc"`
  715. }
  716. binary.ReadJSON(&response, body, &err)
  717. if err != nil {
  718. return nil, err
  719. }
  720. if response.Error != "" {
  721. return nil, fmt.Errorf(response.Error)
  722. }
  723. return response.Result, nil
  724. }
  725. func (c *ClientJSON) ListAccounts() (*ctypes.ResponseListAccounts, error) {
  726. request := rpc.RPCRequest{
  727. JSONRPC: "2.0",
  728. Method: reverseFuncMap["ListAccounts"],
  729. Params: []interface{}{},
  730. Id: 0,
  731. }
  732. body, err := c.RequestResponse(request)
  733. if err != nil {
  734. return nil, err
  735. }
  736. var response struct {
  737. Result *ctypes.ResponseListAccounts `json:"result"`
  738. Error string `json:"error"`
  739. Id string `json:"id"`
  740. JSONRPC string `json:"jsonrpc"`
  741. }
  742. binary.ReadJSON(&response, body, &err)
  743. if err != nil {
  744. return nil, err
  745. }
  746. if response.Error != "" {
  747. return nil, fmt.Errorf(response.Error)
  748. }
  749. return response.Result, nil
  750. }
  751. func (c *ClientJSON) ListValidators() (*ctypes.ResponseListValidators, error) {
  752. request := rpc.RPCRequest{
  753. JSONRPC: "2.0",
  754. Method: reverseFuncMap["ListValidators"],
  755. Params: []interface{}{},
  756. Id: 0,
  757. }
  758. body, err := c.RequestResponse(request)
  759. if err != nil {
  760. return nil, err
  761. }
  762. var response struct {
  763. Result *ctypes.ResponseListValidators `json:"result"`
  764. Error string `json:"error"`
  765. Id string `json:"id"`
  766. JSONRPC string `json:"jsonrpc"`
  767. }
  768. binary.ReadJSON(&response, body, &err)
  769. if err != nil {
  770. return nil, err
  771. }
  772. if response.Error != "" {
  773. return nil, fmt.Errorf(response.Error)
  774. }
  775. return response.Result, nil
  776. }
  777. func (c *ClientJSON) NetInfo() (*ctypes.ResponseNetInfo, error) {
  778. request := rpc.RPCRequest{
  779. JSONRPC: "2.0",
  780. Method: reverseFuncMap["NetInfo"],
  781. Params: []interface{}{},
  782. Id: 0,
  783. }
  784. body, err := c.RequestResponse(request)
  785. if err != nil {
  786. return nil, err
  787. }
  788. var response struct {
  789. Result *ctypes.ResponseNetInfo `json:"result"`
  790. Error string `json:"error"`
  791. Id string `json:"id"`
  792. JSONRPC string `json:"jsonrpc"`
  793. }
  794. binary.ReadJSON(&response, body, &err)
  795. if err != nil {
  796. return nil, err
  797. }
  798. if response.Error != "" {
  799. return nil, fmt.Errorf(response.Error)
  800. }
  801. return response.Result, nil
  802. }
  803. func (c *ClientJSON) SignTx(tx types.Tx, privAccounts []*account.PrivAccount) (*ctypes.ResponseSignTx, error) {
  804. request := rpc.RPCRequest{
  805. JSONRPC: "2.0",
  806. Method: reverseFuncMap["SignTx"],
  807. Params: []interface{}{tx, privAccounts},
  808. Id: 0,
  809. }
  810. body, err := c.RequestResponse(request)
  811. if err != nil {
  812. return nil, err
  813. }
  814. var response struct {
  815. Result *ctypes.ResponseSignTx `json:"result"`
  816. Error string `json:"error"`
  817. Id string `json:"id"`
  818. JSONRPC string `json:"jsonrpc"`
  819. }
  820. binary.ReadJSON(&response, body, &err)
  821. if err != nil {
  822. return nil, err
  823. }
  824. if response.Error != "" {
  825. return nil, fmt.Errorf(response.Error)
  826. }
  827. return response.Result, nil
  828. }
  829. func (c *ClientJSON) Status() (*ctypes.ResponseStatus, error) {
  830. request := rpc.RPCRequest{
  831. JSONRPC: "2.0",
  832. Method: reverseFuncMap["Status"],
  833. Params: []interface{}{},
  834. Id: 0,
  835. }
  836. body, err := c.RequestResponse(request)
  837. if err != nil {
  838. return nil, err
  839. }
  840. var response struct {
  841. Result *ctypes.ResponseStatus `json:"result"`
  842. Error string `json:"error"`
  843. Id string `json:"id"`
  844. JSONRPC string `json:"jsonrpc"`
  845. }
  846. binary.ReadJSON(&response, body, &err)
  847. if err != nil {
  848. return nil, err
  849. }
  850. if response.Error != "" {
  851. return nil, fmt.Errorf(response.Error)
  852. }
  853. return response.Result, nil
  854. }