@ritbit/v4-client-js 1.3.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (412) hide show
  1. package/.env +1 -0
  2. package/.eslintignore +2 -0
  3. package/.eslintrc.js +15 -0
  4. package/.gitleaks.toml +24 -0
  5. package/.gitleaksignore +1 -0
  6. package/.nvmrc +1 -0
  7. package/.prettierignore +3 -0
  8. package/.prettierrc.json +6 -0
  9. package/.releaserc +10 -0
  10. package/.vscode/launch.json +11 -0
  11. package/LICENSE +13 -0
  12. package/README.md +83 -0
  13. package/__native__/__ios__/v4-native-client.js +209891 -0
  14. package/__native__/__ios__/v4-native-client.js.map +1 -0
  15. package/__tests__/clients/composite-client.test.ts +140 -0
  16. package/__tests__/helpers/baseClients.ts +23 -0
  17. package/__tests__/helpers/constants.ts +130 -0
  18. package/__tests__/lib/helpers.test.ts +53 -0
  19. package/__tests__/lib/util.test.ts +77 -0
  20. package/__tests__/lib/validation.test.ts +289 -0
  21. package/__tests__/modules/client/AccountEndpoints.test.ts +236 -0
  22. package/__tests__/modules/client/FaucetEndpoint.test.ts +14 -0
  23. package/__tests__/modules/client/MarketsEndpoints.test.ts +84 -0
  24. package/__tests__/modules/client/Transfers.test.ts +44 -0
  25. package/__tests__/modules/client/UtilityEndpoints.test.ts +29 -0
  26. package/__tests__/modules/client/ValidatorGetEndpoints.test.ts +50 -0
  27. package/__tests__/modules/client/ValidatorPostEndpoints.test.ts +52 -0
  28. package/__tests__/modules/client/constants.ts +5 -0
  29. package/__tests__/modules/onboarding.test.ts +66 -0
  30. package/build/cjs/clients/composite-client.js +788 -0
  31. package/build/cjs/clients/constants.js +293 -0
  32. package/build/cjs/clients/faucet-client.js +36 -0
  33. package/build/cjs/clients/helpers/chain-helpers.js +178 -0
  34. package/build/cjs/clients/helpers/request-helpers.js +65 -0
  35. package/build/cjs/clients/indexer-client.js +56 -0
  36. package/build/cjs/clients/lib/axios/axiosRequest.js +34 -0
  37. package/build/cjs/clients/lib/axios/errors.js +28 -0
  38. package/build/cjs/clients/lib/axios/index.js +23 -0
  39. package/build/cjs/clients/lib/axios/types.js +11 -0
  40. package/build/cjs/clients/lib/cctpProto.js +3242 -0
  41. package/build/cjs/clients/lib/errors.js +58 -0
  42. package/build/cjs/clients/lib/registry.js +51 -0
  43. package/build/cjs/clients/modules/account.js +223 -0
  44. package/build/cjs/clients/modules/composer.js +404 -0
  45. package/build/cjs/clients/modules/get.js +469 -0
  46. package/build/cjs/clients/modules/local-wallet.js +59 -0
  47. package/build/cjs/clients/modules/markets.js +54 -0
  48. package/build/cjs/clients/modules/post.js +391 -0
  49. package/build/cjs/clients/modules/proto-includes.js +72 -0
  50. package/build/cjs/clients/modules/rest.js +33 -0
  51. package/build/cjs/clients/modules/signer.js +93 -0
  52. package/build/cjs/clients/modules/tendermintClient.js +137 -0
  53. package/build/cjs/clients/modules/utility.js +44 -0
  54. package/build/cjs/clients/modules/vault.js +25 -0
  55. package/build/cjs/clients/noble-client.js +75 -0
  56. package/build/cjs/clients/socket-client.js +301 -0
  57. package/build/cjs/clients/subaccount.js +33 -0
  58. package/build/cjs/clients/types.js +43 -0
  59. package/build/cjs/clients/validator-client.js +81 -0
  60. package/build/cjs/index.js +73 -0
  61. package/build/cjs/lib/constants.js +23 -0
  62. package/build/cjs/lib/errors.js +37 -0
  63. package/build/cjs/lib/helpers.js +98 -0
  64. package/build/cjs/lib/onboarding.js +75 -0
  65. package/build/cjs/lib/trading-key-utils.js +108 -0
  66. package/build/cjs/lib/utils.js +79 -0
  67. package/build/cjs/lib/validation.js +150 -0
  68. package/build/cjs/network_optimizer.js +96 -0
  69. package/build/cjs/package.json +1 -0
  70. package/build/cjs/tsconfig.cjs.tsbuildinfo +1 -0
  71. package/build/cjs/types.js +25 -0
  72. package/build/esm/__tests__/clients/composite-client.test.d.ts +2 -0
  73. package/build/esm/__tests__/clients/composite-client.test.d.ts.map +1 -0
  74. package/build/esm/__tests__/clients/composite-client.test.js +128 -0
  75. package/build/esm/__tests__/helpers/baseClients.d.ts +19 -0
  76. package/build/esm/__tests__/helpers/baseClients.d.ts.map +1 -0
  77. package/build/esm/__tests__/helpers/baseClients.js +22 -0
  78. package/build/esm/__tests__/helpers/constants.d.ts +19 -0
  79. package/build/esm/__tests__/helpers/constants.d.ts.map +1 -0
  80. package/build/esm/__tests__/helpers/constants.js +104 -0
  81. package/build/esm/__tests__/lib/helpers.test.d.ts +2 -0
  82. package/build/esm/__tests__/lib/helpers.test.d.ts.map +1 -0
  83. package/build/esm/__tests__/lib/helpers.test.js +40 -0
  84. package/build/esm/__tests__/lib/util.test.d.ts +2 -0
  85. package/build/esm/__tests__/lib/util.test.d.ts.map +1 -0
  86. package/build/esm/__tests__/lib/util.test.js +65 -0
  87. package/build/esm/__tests__/lib/validation.test.d.ts +2 -0
  88. package/build/esm/__tests__/lib/validation.test.d.ts.map +1 -0
  89. package/build/esm/__tests__/lib/validation.test.js +249 -0
  90. package/build/esm/__tests__/modules/client/AccountEndpoints.test.d.ts +2 -0
  91. package/build/esm/__tests__/modules/client/AccountEndpoints.test.d.ts.map +1 -0
  92. package/build/esm/__tests__/modules/client/AccountEndpoints.test.js +169 -0
  93. package/build/esm/__tests__/modules/client/FaucetEndpoint.test.d.ts +2 -0
  94. package/build/esm/__tests__/modules/client/FaucetEndpoint.test.d.ts.map +1 -0
  95. package/build/esm/__tests__/modules/client/FaucetEndpoint.test.js +13 -0
  96. package/build/esm/__tests__/modules/client/MarketsEndpoints.test.d.ts +2 -0
  97. package/build/esm/__tests__/modules/client/MarketsEndpoints.test.d.ts.map +1 -0
  98. package/build/esm/__tests__/modules/client/MarketsEndpoints.test.js +66 -0
  99. package/build/esm/__tests__/modules/client/Transfers.test.d.ts +2 -0
  100. package/build/esm/__tests__/modules/client/Transfers.test.d.ts.map +1 -0
  101. package/build/esm/__tests__/modules/client/Transfers.test.js +39 -0
  102. package/build/esm/__tests__/modules/client/UtilityEndpoints.test.d.ts +2 -0
  103. package/build/esm/__tests__/modules/client/UtilityEndpoints.test.d.ts.map +1 -0
  104. package/build/esm/__tests__/modules/client/UtilityEndpoints.test.js +26 -0
  105. package/build/esm/__tests__/modules/client/ValidatorGetEndpoints.test.d.ts +2 -0
  106. package/build/esm/__tests__/modules/client/ValidatorGetEndpoints.test.d.ts.map +1 -0
  107. package/build/esm/__tests__/modules/client/ValidatorGetEndpoints.test.js +44 -0
  108. package/build/esm/__tests__/modules/client/ValidatorPostEndpoints.test.d.ts +2 -0
  109. package/build/esm/__tests__/modules/client/ValidatorPostEndpoints.test.d.ts.map +1 -0
  110. package/build/esm/__tests__/modules/client/ValidatorPostEndpoints.test.js +48 -0
  111. package/build/esm/__tests__/modules/client/constants.d.ts +4 -0
  112. package/build/esm/__tests__/modules/client/constants.d.ts.map +1 -0
  113. package/build/esm/__tests__/modules/client/constants.js +4 -0
  114. package/build/esm/__tests__/modules/onboarding.test.d.ts +2 -0
  115. package/build/esm/__tests__/modules/onboarding.test.d.ts.map +1 -0
  116. package/build/esm/__tests__/modules/onboarding.test.js +48 -0
  117. package/build/esm/examples/account_endpoints.d.ts +5 -0
  118. package/build/esm/examples/account_endpoints.d.ts.map +1 -0
  119. package/build/esm/examples/account_endpoints.js +127 -0
  120. package/build/esm/examples/batch_cancel_orders_example.d.ts +2 -0
  121. package/build/esm/examples/batch_cancel_orders_example.d.ts.map +1 -0
  122. package/build/esm/examples/batch_cancel_orders_example.js +88 -0
  123. package/build/esm/examples/composite_example.d.ts +2 -0
  124. package/build/esm/examples/composite_example.d.ts.map +1 -0
  125. package/build/esm/examples/composite_example.js +45 -0
  126. package/build/esm/examples/constants.d.ts +13 -0
  127. package/build/esm/examples/constants.d.ts.map +1 -0
  128. package/build/esm/examples/constants.js +29 -0
  129. package/build/esm/examples/faucet_endpoint.d.ts +5 -0
  130. package/build/esm/examples/faucet_endpoint.d.ts.map +1 -0
  131. package/build/esm/examples/faucet_endpoint.js +21 -0
  132. package/build/esm/examples/gov_add_new_market.d.ts +2 -0
  133. package/build/esm/examples/gov_add_new_market.d.ts.map +1 -0
  134. package/build/esm/examples/gov_add_new_market.js +72 -0
  135. package/build/esm/examples/human_readable_orders.json +86 -0
  136. package/build/esm/examples/human_readable_short_term_orders.json +42 -0
  137. package/build/esm/examples/json-encoding.d.ts +2 -0
  138. package/build/esm/examples/json-encoding.d.ts.map +1 -0
  139. package/build/esm/examples/json-encoding.js +27 -0
  140. package/build/esm/examples/long_term_order_cancel_example.d.ts +2 -0
  141. package/build/esm/examples/long_term_order_cancel_example.d.ts.map +1 -0
  142. package/build/esm/examples/long_term_order_cancel_example.js +58 -0
  143. package/build/esm/examples/markets_endpoints.d.ts +5 -0
  144. package/build/esm/examples/markets_endpoints.d.ts.map +1 -0
  145. package/build/esm/examples/markets_endpoints.js +131 -0
  146. package/build/esm/examples/native_examples.d.ts +2 -0
  147. package/build/esm/examples/native_examples.d.ts.map +1 -0
  148. package/build/esm/examples/native_examples.js +110 -0
  149. package/build/esm/examples/noble_example.d.ts +2 -0
  150. package/build/esm/examples/noble_example.d.ts.map +1 -0
  151. package/build/esm/examples/noble_example.js +83 -0
  152. package/build/esm/examples/optimal_node.d.ts +2 -0
  153. package/build/esm/examples/optimal_node.d.ts.map +1 -0
  154. package/build/esm/examples/optimal_node.js +68 -0
  155. package/build/esm/examples/permissioned_keys_example.d.ts +2 -0
  156. package/build/esm/examples/permissioned_keys_example.d.ts.map +1 -0
  157. package/build/esm/examples/permissioned_keys_example.js +99 -0
  158. package/build/esm/examples/raw_orders.json +130 -0
  159. package/build/esm/examples/short_term_order_cancel_example.d.ts +2 -0
  160. package/build/esm/examples/short_term_order_cancel_example.d.ts.map +1 -0
  161. package/build/esm/examples/short_term_order_cancel_example.js +49 -0
  162. package/build/esm/examples/short_term_order_composite_example.d.ts +2 -0
  163. package/build/esm/examples/short_term_order_composite_example.d.ts.map +1 -0
  164. package/build/esm/examples/short_term_order_composite_example.js +63 -0
  165. package/build/esm/examples/test.d.ts +2 -0
  166. package/build/esm/examples/test.d.ts.map +1 -0
  167. package/build/esm/examples/test.js +45 -0
  168. package/build/esm/examples/transfer_example_deposit.d.ts +2 -0
  169. package/build/esm/examples/transfer_example_deposit.d.ts.map +1 -0
  170. package/build/esm/examples/transfer_example_deposit.js +24 -0
  171. package/build/esm/examples/transfer_example_send.d.ts +2 -0
  172. package/build/esm/examples/transfer_example_send.d.ts.map +1 -0
  173. package/build/esm/examples/transfer_example_send.js +37 -0
  174. package/build/esm/examples/transfer_example_subaccount_transfer.d.ts +2 -0
  175. package/build/esm/examples/transfer_example_subaccount_transfer.d.ts.map +1 -0
  176. package/build/esm/examples/transfer_example_subaccount_transfer.js +24 -0
  177. package/build/esm/examples/transfer_example_withdraw.d.ts +2 -0
  178. package/build/esm/examples/transfer_example_withdraw.d.ts.map +1 -0
  179. package/build/esm/examples/transfer_example_withdraw.js +25 -0
  180. package/build/esm/examples/transfer_example_withdraw_other.d.ts +2 -0
  181. package/build/esm/examples/transfer_example_withdraw_other.d.ts.map +1 -0
  182. package/build/esm/examples/transfer_example_withdraw_other.js +37 -0
  183. package/build/esm/examples/utility_endpoints.d.ts +5 -0
  184. package/build/esm/examples/utility_endpoints.d.ts.map +1 -0
  185. package/build/esm/examples/utility_endpoints.js +40 -0
  186. package/build/esm/examples/validator_get_example.d.ts +2 -0
  187. package/build/esm/examples/validator_get_example.d.ts.map +1 -0
  188. package/build/esm/examples/validator_get_example.js +156 -0
  189. package/build/esm/examples/validator_post_example.d.ts +2 -0
  190. package/build/esm/examples/validator_post_example.d.ts.map +1 -0
  191. package/build/esm/examples/validator_post_example.js +71 -0
  192. package/build/esm/examples/wallet_address.d.ts +2 -0
  193. package/build/esm/examples/wallet_address.d.ts.map +1 -0
  194. package/build/esm/examples/wallet_address.js +17 -0
  195. package/build/esm/examples/websocket_example.d.ts +2 -0
  196. package/build/esm/examples/websocket_example.d.ts.map +1 -0
  197. package/build/esm/examples/websocket_example.js +34 -0
  198. package/build/esm/examples/websocket_orderbook_example.d.ts +2 -0
  199. package/build/esm/examples/websocket_orderbook_example.d.ts.map +1 -0
  200. package/build/esm/examples/websocket_orderbook_example.js +194 -0
  201. package/build/esm/src/clients/composite-client.d.ts +406 -0
  202. package/build/esm/src/clients/composite-client.d.ts.map +1 -0
  203. package/build/esm/src/clients/composite-client.js +781 -0
  204. package/build/esm/src/clients/constants.d.ts +170 -0
  205. package/build/esm/src/clients/constants.d.ts.map +1 -0
  206. package/build/esm/src/clients/constants.js +269 -0
  207. package/build/esm/src/clients/faucet-client.d.ts +18 -0
  208. package/build/esm/src/clients/faucet-client.d.ts.map +1 -0
  209. package/build/esm/src/clients/faucet-client.js +29 -0
  210. package/build/esm/src/clients/helpers/chain-helpers.d.ts +15 -0
  211. package/build/esm/src/clients/helpers/chain-helpers.d.ts.map +1 -0
  212. package/build/esm/src/clients/helpers/chain-helpers.js +163 -0
  213. package/build/esm/src/clients/helpers/request-helpers.d.ts +3 -0
  214. package/build/esm/src/clients/helpers/request-helpers.d.ts.map +1 -0
  215. package/build/esm/src/clients/helpers/request-helpers.js +58 -0
  216. package/build/esm/src/clients/indexer-client.d.ts +40 -0
  217. package/build/esm/src/clients/indexer-client.d.ts.map +1 -0
  218. package/build/esm/src/clients/indexer-client.js +49 -0
  219. package/build/esm/src/clients/lib/axios/axiosRequest.d.ts +9 -0
  220. package/build/esm/src/clients/lib/axios/axiosRequest.d.ts.map +1 -0
  221. package/build/esm/src/clients/lib/axios/axiosRequest.js +28 -0
  222. package/build/esm/src/clients/lib/axios/errors.d.ts +31 -0
  223. package/build/esm/src/clients/lib/axios/errors.d.ts.map +1 -0
  224. package/build/esm/src/clients/lib/axios/errors.js +23 -0
  225. package/build/esm/src/clients/lib/axios/index.d.ts +7 -0
  226. package/build/esm/src/clients/lib/axios/index.d.ts.map +1 -0
  227. package/build/esm/src/clients/lib/axios/index.js +7 -0
  228. package/build/esm/src/clients/lib/axios/types.d.ts +7 -0
  229. package/build/esm/src/clients/lib/axios/types.d.ts.map +1 -0
  230. package/build/esm/src/clients/lib/axios/types.js +8 -0
  231. package/build/esm/src/clients/lib/cctpProto.d.ts +670 -0
  232. package/build/esm/src/clients/lib/cctpProto.d.ts.map +1 -0
  233. package/build/esm/src/clients/lib/cctpProto.js +3234 -0
  234. package/build/esm/src/clients/lib/errors.d.ts +38 -0
  235. package/build/esm/src/clients/lib/errors.d.ts.map +1 -0
  236. package/build/esm/src/clients/lib/errors.js +50 -0
  237. package/build/esm/src/clients/lib/registry.d.ts +4 -0
  238. package/build/esm/src/clients/lib/registry.d.ts.map +1 -0
  239. package/build/esm/src/clients/lib/registry.js +47 -0
  240. package/build/esm/src/clients/modules/account.d.ts +30 -0
  241. package/build/esm/src/clients/modules/account.d.ts.map +1 -0
  242. package/build/esm/src/clients/modules/account.js +217 -0
  243. package/build/esm/src/clients/modules/composer.d.ts +37 -0
  244. package/build/esm/src/clients/modules/composer.d.ts.map +1 -0
  245. package/build/esm/src/clients/modules/composer.js +397 -0
  246. package/build/esm/src/clients/modules/get.d.ts +193 -0
  247. package/build/esm/src/clients/modules/get.d.ts.map +1 -0
  248. package/build/esm/src/clients/modules/get.js +429 -0
  249. package/build/esm/src/clients/modules/local-wallet.d.ts +19 -0
  250. package/build/esm/src/clients/modules/local-wallet.d.ts.map +1 -0
  251. package/build/esm/src/clients/modules/local-wallet.js +53 -0
  252. package/build/esm/src/clients/modules/markets.d.ts +14 -0
  253. package/build/esm/src/clients/modules/markets.d.ts.map +1 -0
  254. package/build/esm/src/clients/modules/markets.js +48 -0
  255. package/build/esm/src/clients/modules/post.d.ts +133 -0
  256. package/build/esm/src/clients/modules/post.d.ts.map +1 -0
  257. package/build/esm/src/clients/modules/post.js +384 -0
  258. package/build/esm/src/clients/modules/proto-includes.d.ts +30 -0
  259. package/build/esm/src/clients/modules/proto-includes.d.ts.map +1 -0
  260. package/build/esm/src/clients/modules/proto-includes.js +32 -0
  261. package/build/esm/src/clients/modules/rest.d.ts +12 -0
  262. package/build/esm/src/clients/modules/rest.d.ts.map +1 -0
  263. package/build/esm/src/clients/modules/rest.js +27 -0
  264. package/build/esm/src/clients/modules/signer.d.ts +19 -0
  265. package/build/esm/src/clients/modules/signer.d.ts.map +1 -0
  266. package/build/esm/src/clients/modules/signer.js +86 -0
  267. package/build/esm/src/clients/modules/tendermintClient.d.ts +54 -0
  268. package/build/esm/src/clients/modules/tendermintClient.d.ts.map +1 -0
  269. package/build/esm/src/clients/modules/tendermintClient.js +133 -0
  270. package/build/esm/src/clients/modules/utility.d.ts +27 -0
  271. package/build/esm/src/clients/modules/utility.d.ts.map +1 -0
  272. package/build/esm/src/clients/modules/utility.js +38 -0
  273. package/build/esm/src/clients/modules/vault.d.ts +12 -0
  274. package/build/esm/src/clients/modules/vault.d.ts.map +1 -0
  275. package/build/esm/src/clients/modules/vault.js +19 -0
  276. package/build/esm/src/clients/native.d.ts +75 -0
  277. package/build/esm/src/clients/native.d.ts.map +1 -0
  278. package/build/esm/src/clients/native.js +1237 -0
  279. package/build/esm/src/clients/noble-client.d.ts +18 -0
  280. package/build/esm/src/clients/noble-client.d.ts.map +1 -0
  281. package/build/esm/src/clients/noble-client.js +71 -0
  282. package/build/esm/src/clients/socket-client.d.ts +146 -0
  283. package/build/esm/src/clients/socket-client.d.ts.map +1 -0
  284. package/build/esm/src/clients/socket-client.js +294 -0
  285. package/build/esm/src/clients/subaccount.d.ts +14 -0
  286. package/build/esm/src/clients/subaccount.d.ts.map +1 -0
  287. package/build/esm/src/clients/subaccount.js +29 -0
  288. package/build/esm/src/clients/types.d.ts +137 -0
  289. package/build/esm/src/clients/types.d.ts.map +1 -0
  290. package/build/esm/src/clients/types.js +26 -0
  291. package/build/esm/src/clients/validator-client.d.ts +35 -0
  292. package/build/esm/src/clients/validator-client.d.ts.map +1 -0
  293. package/build/esm/src/clients/validator-client.js +74 -0
  294. package/build/esm/src/index.d.ts +17 -0
  295. package/build/esm/src/index.d.ts.map +1 -0
  296. package/build/esm/src/index.js +19 -0
  297. package/build/esm/src/lib/constants.d.ts +13 -0
  298. package/build/esm/src/lib/constants.d.ts.map +1 -0
  299. package/build/esm/src/lib/constants.js +20 -0
  300. package/build/esm/src/lib/errors.d.ts +23 -0
  301. package/build/esm/src/lib/errors.d.ts.map +1 -0
  302. package/build/esm/src/lib/errors.js +31 -0
  303. package/build/esm/src/lib/helpers.d.ts +22 -0
  304. package/build/esm/src/lib/helpers.d.ts.map +1 -0
  305. package/build/esm/src/lib/helpers.js +88 -0
  306. package/build/esm/src/lib/onboarding.d.ts +46 -0
  307. package/build/esm/src/lib/onboarding.d.ts.map +1 -0
  308. package/build/esm/src/lib/onboarding.js +69 -0
  309. package/build/esm/src/lib/trading-key-utils.d.ts +22 -0
  310. package/build/esm/src/lib/trading-key-utils.d.ts.map +1 -0
  311. package/build/esm/src/lib/trading-key-utils.js +99 -0
  312. package/build/esm/src/lib/utils.d.ts +39 -0
  313. package/build/esm/src/lib/utils.d.ts.map +1 -0
  314. package/build/esm/src/lib/utils.js +69 -0
  315. package/build/esm/src/lib/validation.d.ts +26 -0
  316. package/build/esm/src/lib/validation.d.ts.map +1 -0
  317. package/build/esm/src/lib/validation.js +138 -0
  318. package/build/esm/src/network_optimizer.d.ts +8 -0
  319. package/build/esm/src/network_optimizer.d.ts.map +1 -0
  320. package/build/esm/src/network_optimizer.js +91 -0
  321. package/build/esm/src/types.d.ts +26 -0
  322. package/build/esm/src/types.d.ts.map +1 -0
  323. package/build/esm/src/types.js +8 -0
  324. package/build/esm/tsconfig.esm.tsbuildinfo +1 -0
  325. package/commitlint.config.js +8 -0
  326. package/examples/account_endpoints.ts +129 -0
  327. package/examples/batch_cancel_orders_example.ts +130 -0
  328. package/examples/composite_example.ts +65 -0
  329. package/examples/constants.ts +42 -0
  330. package/examples/faucet_endpoint.ts +24 -0
  331. package/examples/gov_add_new_market.json +64 -0
  332. package/examples/gov_add_new_market.ts +95 -0
  333. package/examples/human_readable_orders.json +86 -0
  334. package/examples/human_readable_short_term_orders.json +42 -0
  335. package/examples/json-encoding.ts +33 -0
  336. package/examples/long_term_order_cancel_example.ts +87 -0
  337. package/examples/markets_endpoints.ts +134 -0
  338. package/examples/native_examples.ts +151 -0
  339. package/examples/noble_example.ts +107 -0
  340. package/examples/optimal_node.ts +70 -0
  341. package/examples/permissioned_keys_example.ts +162 -0
  342. package/examples/raw_orders.json +130 -0
  343. package/examples/short_term_order_cancel_example.ts +68 -0
  344. package/examples/short_term_order_composite_example.ts +80 -0
  345. package/examples/test.ts +65 -0
  346. package/examples/transfer_example_deposit.ts +28 -0
  347. package/examples/transfer_example_send.ts +60 -0
  348. package/examples/transfer_example_subaccount_transfer.ts +29 -0
  349. package/examples/transfer_example_withdraw.ts +31 -0
  350. package/examples/transfer_example_withdraw_other.ts +60 -0
  351. package/examples/utility_endpoints.ts +42 -0
  352. package/examples/validator_get_example.ts +160 -0
  353. package/examples/validator_post_example.ts +81 -0
  354. package/examples/wallet_address.ts +18 -0
  355. package/examples/websocket_example.ts +44 -0
  356. package/examples/websocket_orderbook_example.ts +239 -0
  357. package/jest.config.js +12 -0
  358. package/jest.globalSetup.js +5 -0
  359. package/jest.setup.js +1 -0
  360. package/package.json +113 -0
  361. package/ritbit-v4-client-js-1.3.17.tgz +0 -0
  362. package/scripts/bump_version.sh +16 -0
  363. package/scripts/generate-cctp-protos.sh +41 -0
  364. package/scripts/mobile_build_pack.sh +5 -0
  365. package/scripts/publish-if-not-exists.sh +21 -0
  366. package/src/clients/composite-client.ts +1431 -0
  367. package/src/clients/constants.ts +358 -0
  368. package/src/clients/faucet-client.ts +48 -0
  369. package/src/clients/helpers/chain-helpers.ts +231 -0
  370. package/src/clients/helpers/request-helpers.ts +71 -0
  371. package/src/clients/indexer-client.ts +61 -0
  372. package/src/clients/lib/axios/axiosRequest.ts +41 -0
  373. package/src/clients/lib/axios/errors.ts +41 -0
  374. package/src/clients/lib/axios/index.ts +7 -0
  375. package/src/clients/lib/axios/types.ts +6 -0
  376. package/src/clients/lib/cctpProto.ts +4197 -0
  377. package/src/clients/lib/errors.ts +63 -0
  378. package/src/clients/lib/registry.ts +88 -0
  379. package/src/clients/modules/account.ts +388 -0
  380. package/src/clients/modules/composer.ts +645 -0
  381. package/src/clients/modules/get.ts +740 -0
  382. package/src/clients/modules/local-wallet.ts +79 -0
  383. package/src/clients/modules/markets.ts +71 -0
  384. package/src/clients/modules/post.ts +1016 -0
  385. package/src/clients/modules/proto-includes.ts +33 -0
  386. package/src/clients/modules/rest.ts +40 -0
  387. package/src/clients/modules/signer.ts +139 -0
  388. package/src/clients/modules/tendermintClient.ts +168 -0
  389. package/src/clients/modules/utility.ts +47 -0
  390. package/src/clients/modules/vault.ts +23 -0
  391. package/src/clients/native.ts +1508 -0
  392. package/src/clients/noble-client.ts +108 -0
  393. package/src/clients/socket-client.ts +331 -0
  394. package/src/clients/subaccount.ts +57 -0
  395. package/src/clients/types.ts +191 -0
  396. package/src/clients/validator-client.ts +103 -0
  397. package/src/index.ts +20 -0
  398. package/src/lib/constants.ts +28 -0
  399. package/src/lib/errors.ts +38 -0
  400. package/src/lib/helpers.ts +99 -0
  401. package/src/lib/onboarding.ts +96 -0
  402. package/src/lib/trading-key-utils.ts +136 -0
  403. package/src/lib/utils.ts +84 -0
  404. package/src/lib/validation.ts +197 -0
  405. package/src/network_optimizer.ts +132 -0
  406. package/src/types.ts +44 -0
  407. package/tasks.json +16 -0
  408. package/tsconfig.base.json +15 -0
  409. package/tsconfig.cjs.json +20 -0
  410. package/tsconfig.eslint.json +14 -0
  411. package/tsconfig.esm.json +11 -0
  412. package/webpack.config.js +56 -0
@@ -0,0 +1,740 @@
1
+ import { Coin } from '@cosmjs/proto-signing';
2
+ import {
3
+ Account,
4
+ accountFromAny,
5
+ Block,
6
+ QueryClient as StargateQueryClient,
7
+ TxExtension,
8
+ QueryAbciResponse,
9
+ } from '@cosmjs/stargate';
10
+ import {
11
+ GetAuthenticatorsRequest,
12
+ GetAuthenticatorsResponse,
13
+ } from '@ritbit/v4-proto/src/codegen/ritbit/accountplus/query';
14
+ import { UserStats } from '@ritbit/v4-proto/src/codegen/ritbit/stats/stats';
15
+ import * as AuthModule from 'cosmjs-types/cosmos/auth/v1beta1/query';
16
+ import * as BankModule from 'cosmjs-types/cosmos/bank/v1beta1/query';
17
+ import { Any } from 'cosmjs-types/google/protobuf/any';
18
+ import Long from 'long';
19
+ import protobuf from 'protobufjs';
20
+
21
+ import { bigIntToBytes } from '../../lib/helpers';
22
+ import { PAGE_REQUEST } from '../constants';
23
+ import { UnexpectedClientError } from '../lib/errors';
24
+ import {
25
+ AffiliateModule,
26
+ BridgeModule,
27
+ ClobModule,
28
+ DistributionModule,
29
+ FeeTierModule,
30
+ GovV1Module,
31
+ PerpetualsModule,
32
+ PricesModule,
33
+ ProposalStatus,
34
+ RateLimitModule,
35
+ RewardsModule,
36
+ StakingModule,
37
+ StatsModule,
38
+ SubaccountsModule,
39
+ VaultModule,
40
+ } from './proto-includes';
41
+ import { TendermintClient } from './tendermintClient';
42
+
43
+ // Required for encoding and decoding queries that are of type Long.
44
+ // Must be done once but since the individal modules should be usable without
45
+ // dYdXClient - must be set in each module that encounters encoding/decoding Longs.
46
+ // Reference: https://github.com/protobufjs/protobuf.js/issues/921
47
+ protobuf.util.Long = Long;
48
+ protobuf.configure();
49
+
50
+ export class Get {
51
+ readonly tendermintClient: TendermintClient;
52
+ readonly stargateQueryClient: StargateQueryClient & TxExtension;
53
+
54
+ constructor(
55
+ tendermintClient: TendermintClient,
56
+ stargateQueryClient: StargateQueryClient & TxExtension,
57
+ ) {
58
+ this.tendermintClient = tendermintClient;
59
+ this.stargateQueryClient = stargateQueryClient;
60
+ }
61
+
62
+ /**
63
+ * @description Get latest block
64
+ *
65
+ * @returns last block structure
66
+ */
67
+ async latestBlock(): Promise<Block> {
68
+ return this.tendermintClient.getBlock();
69
+ }
70
+
71
+ /**
72
+ * @description Get latest block height
73
+ *
74
+ * @returns last height
75
+ */
76
+ async latestBlockHeight(): Promise<number> {
77
+ const block = await this.latestBlock();
78
+ return block.header.height;
79
+ }
80
+
81
+ /**
82
+ * @description Get all fee tier params.
83
+ *
84
+ * @returns All fee tier params.
85
+ */
86
+ async getFeeTiers(): Promise<FeeTierModule.QueryPerpetualFeeParamsResponse> {
87
+ const requestData = Uint8Array.from(
88
+ FeeTierModule.QueryPerpetualFeeParamsRequest.encode({}).finish(),
89
+ );
90
+
91
+ const data: Uint8Array = await this.sendQuery(
92
+ '/ritbit.feetiers.Query/PerpetualFeeParams',
93
+ requestData,
94
+ );
95
+ return FeeTierModule.QueryPerpetualFeeParamsResponse.decode(data);
96
+ }
97
+
98
+ /**
99
+ * @description Get fee tier the user belongs to
100
+ *
101
+ * @returns the fee tier user belongs to.
102
+ */
103
+ async getUserFeeTier(address: string): Promise<FeeTierModule.QueryUserFeeTierResponse> {
104
+ const requestData = Uint8Array.from(
105
+ FeeTierModule.QueryUserFeeTierRequest.encode({ user: address }).finish(),
106
+ );
107
+
108
+ const data: Uint8Array = await this.sendQuery(
109
+ '/ritbit.feetiers.Query/UserFeeTier',
110
+ requestData,
111
+ );
112
+ return FeeTierModule.QueryUserFeeTierResponse.decode(data);
113
+ }
114
+
115
+ /**
116
+ * @description Get get trading stats
117
+ *
118
+ * @returns return the user's taker and maker volume
119
+ */
120
+ async getUserStats(
121
+ address: string,
122
+ ): Promise<UserStats | undefined> {
123
+ const requestData = Uint8Array.from(
124
+ StatsModule.QueryUserStatsRequest.encode({ user: address }).finish(),
125
+ );
126
+
127
+ const data: Uint8Array = await this.sendQuery(
128
+ '/ritbit.stats.Query/UserStats',
129
+ requestData,
130
+ );
131
+ return StatsModule.QueryUserStatsResponse.decode(data).stats;
132
+ }
133
+
134
+ /**
135
+ * @description Get all balances for an account.
136
+ *
137
+ * @returns Array of Coin balances for all tokens held by an account.
138
+ */
139
+ async getAccountBalances(address: string): Promise<Coin[]> {
140
+ const requestData: Uint8Array = Uint8Array.from(
141
+ BankModule.QueryAllBalancesRequest.encode({ address }).finish(),
142
+ );
143
+
144
+ const data: Uint8Array = await this.sendQuery(
145
+ '/cosmos.bank.v1beta1.Query/AllBalances',
146
+ requestData,
147
+ );
148
+ return BankModule.QueryAllBalancesResponse.decode(data).balances;
149
+ }
150
+
151
+ /**
152
+ * @description Get balances of one denom for an account.
153
+ *
154
+ * @returns Coin balance for denom tokens held by an account.
155
+ */
156
+ async getAccountBalance(address: string, denom: string): Promise<Coin | undefined> {
157
+ const requestData: Uint8Array = Uint8Array.from(
158
+ BankModule.QueryBalanceRequest.encode({
159
+ address,
160
+ denom,
161
+ }).finish(),
162
+ );
163
+
164
+ const data: Uint8Array = await this.sendQuery(
165
+ '/cosmos.bank.v1beta1.Query/Balance',
166
+ requestData,
167
+ );
168
+ const coin = BankModule.QueryBalanceResponse.decode(data).balance;
169
+ return coin;
170
+ }
171
+
172
+ /**
173
+ * @description Get all subaccounts
174
+ *
175
+ * @returns All subaccounts
176
+ */
177
+ async getSubaccounts(): Promise<SubaccountsModule.QuerySubaccountAllResponse> {
178
+ const requestData: Uint8Array = Uint8Array.from(
179
+ SubaccountsModule.QueryAllSubaccountRequest.encode({}).finish(),
180
+ );
181
+
182
+ const data: Uint8Array = await this.sendQuery(
183
+ '/ritbit.subaccounts.Query/SubaccountAll',
184
+ requestData,
185
+ );
186
+ return SubaccountsModule.QuerySubaccountAllResponse.decode(data);
187
+ }
188
+
189
+ /**
190
+ * @description Get a specific subaccount for an account.
191
+ *
192
+ * @returns Subaccount for account with given accountNumber or default subaccount if none exists.
193
+ */
194
+ async getSubaccount(
195
+ address: string,
196
+ accountNumber: number,
197
+ ): Promise<SubaccountsModule.QuerySubaccountResponse> {
198
+ const requestData: Uint8Array = Uint8Array.from(
199
+ SubaccountsModule.QueryGetSubaccountRequest.encode({
200
+ owner: address,
201
+ number: accountNumber,
202
+ }).finish(),
203
+ );
204
+
205
+ const data: Uint8Array = await this.sendQuery(
206
+ '/ritbit.subaccounts.Query/Subaccount',
207
+ requestData,
208
+ );
209
+ return SubaccountsModule.QuerySubaccountResponse.decode(data);
210
+ }
211
+
212
+ /**
213
+ * @description Get the params for the rewards module.
214
+ *
215
+ * @returns Params for the rewards module.
216
+ */
217
+ async getRewardsParams(): Promise<RewardsModule.QueryParamsResponse> {
218
+ const requestData = Uint8Array.from(RewardsModule.QueryParamsRequest.encode({}).finish());
219
+
220
+ const data: Uint8Array = await this.sendQuery(
221
+ '/ritbit.rewards.Query/Params',
222
+ requestData,
223
+ );
224
+ return RewardsModule.QueryParamsResponse.decode(data);
225
+ }
226
+
227
+ /**
228
+ * @description Get all Clob Pairs.
229
+ *
230
+ * @returns Information on all Clob Pairs.
231
+ */
232
+ async getAllClobPairs(): Promise<ClobModule.QueryClobPairAllResponse> {
233
+ const requestData: Uint8Array = Uint8Array.from(
234
+ ClobModule.QueryAllClobPairRequest.encode({ pagination: PAGE_REQUEST }).finish(),
235
+ );
236
+
237
+ const data: Uint8Array = await this.sendQuery(
238
+ '/ritbit.clob.Query/ClobPairAll',
239
+ requestData,
240
+ );
241
+ return ClobModule.QueryClobPairAllResponse.decode(data);
242
+ }
243
+
244
+ /**
245
+ * @description Get Clob Pair for an Id or the promise is rejected if no pair exists.
246
+ *
247
+ * @returns Clob Pair for a given Clob Pair Id.
248
+ */
249
+ async getClobPair(pairId: number): Promise<ClobModule.QueryClobPairResponse> {
250
+ const requestData: Uint8Array = Uint8Array.from(
251
+ ClobModule.QueryGetClobPairRequest.encode({ id: pairId }).finish(),
252
+ );
253
+
254
+ const data: Uint8Array = await this.sendQuery('/ritbit.clob.Query/ClobPair', requestData);
255
+ return ClobModule.QueryClobPairResponse.decode(data);
256
+ }
257
+
258
+ /**
259
+ * @description Get all Prices across markets.
260
+ *
261
+ * @returns Prices across all markets.
262
+ */
263
+ async getAllPrices(): Promise<PricesModule.QueryAllMarketPricesResponse> {
264
+ const requestData: Uint8Array = Uint8Array.from(
265
+ PricesModule.QueryAllMarketPricesRequest.encode({ pagination: PAGE_REQUEST }).finish(),
266
+ );
267
+
268
+ const data: Uint8Array = await this.sendQuery(
269
+ '/ritbit.prices.Query/AllMarketPrices',
270
+ requestData,
271
+ );
272
+ return PricesModule.QueryAllMarketPricesResponse.decode(data);
273
+ }
274
+
275
+ /**
276
+ * @description Get Price for a clob Id or the promise is rejected if none exists.
277
+ *
278
+ * @returns Price for a given Market Id.
279
+ */
280
+ async getPrice(marketId: number): Promise<PricesModule.QueryMarketPriceResponse> {
281
+ const requestData: Uint8Array = Uint8Array.from(
282
+ PricesModule.QueryMarketPriceRequest.encode({ id: marketId }).finish(),
283
+ );
284
+
285
+ const data: Uint8Array = await this.sendQuery(
286
+ '/ritbit.prices.Query/MarketPrice',
287
+ requestData,
288
+ );
289
+ return PricesModule.QueryMarketPriceResponse.decode(data);
290
+ }
291
+
292
+ /**
293
+ * @description Get all Perpetuals.
294
+ *
295
+ * @returns Information on all Perpetual pairs.
296
+ */
297
+ async getAllPerpetuals(): Promise<PerpetualsModule.QueryAllPerpetualsResponse> {
298
+ const requestData: Uint8Array = Uint8Array.from(
299
+ PerpetualsModule.QueryAllPerpetualsRequest.encode({ pagination: PAGE_REQUEST }).finish(),
300
+ );
301
+
302
+ const data: Uint8Array = await this.sendQuery(
303
+ '/ritbit.perpetuals.Query/AllPerpetuals',
304
+ requestData,
305
+ );
306
+ return PerpetualsModule.QueryAllPerpetualsResponse.decode(data);
307
+ }
308
+
309
+ /**
310
+ * @description Get Perpetual for an Id or the promise is rejected if none exists.
311
+ *
312
+ * @returns The Perpetual for a given Perpetual Id.
313
+ */
314
+ async getPerpetual(perpetualId: number): Promise<PerpetualsModule.QueryPerpetualResponse> {
315
+ const requestData: Uint8Array = Uint8Array.from(
316
+ PerpetualsModule.QueryPerpetualRequest.encode({ id: perpetualId }).finish(),
317
+ );
318
+
319
+ const data: Uint8Array = await this.sendQuery(
320
+ '/ritbit.perpetuals.Query/Perpetual',
321
+ requestData,
322
+ );
323
+ return PerpetualsModule.QueryPerpetualResponse.decode(data);
324
+ }
325
+
326
+ /**
327
+ * @description Get Account for an address or the promise is rejected if the account
328
+ * does not exist on-chain.
329
+ *
330
+ * @throws UnexpectedClientError if a malformed response is returned with no GRPC error.
331
+ * @returns An account for a given address.
332
+ */
333
+ async getAccount(address: string): Promise<Account> {
334
+ const requestData: Uint8Array = Uint8Array.from(
335
+ AuthModule.QueryAccountRequest.encode({ address }).finish(),
336
+ );
337
+
338
+ const data: Uint8Array = await this.sendQuery(
339
+ '/cosmos.auth.v1beta1.Query/Account',
340
+ requestData,
341
+ );
342
+ const rawAccount: Any | undefined = AuthModule.QueryAccountResponse.decode(data).account;
343
+
344
+ // The promise should have been rejected if the rawAccount was undefined.
345
+ if (rawAccount === undefined) {
346
+ throw new UnexpectedClientError();
347
+ }
348
+ return accountFromAny(rawAccount);
349
+ }
350
+
351
+ /**
352
+ * @description Get equity tier limit configuration.
353
+ *
354
+ * @returns Information on all equity tiers that are configured.
355
+ */
356
+ async getEquityTierLimitConfiguration(): Promise<ClobModule.QueryEquityTierLimitConfigurationResponse> {
357
+ const requestData: Uint8Array = Uint8Array.from(
358
+ ClobModule.QueryEquityTierLimitConfigurationRequest.encode({}).finish(),
359
+ );
360
+
361
+ const data: Uint8Array = await this.sendQuery(
362
+ '/ritbit.clob.Query/EquityTierLimitConfiguration',
363
+ requestData,
364
+ );
365
+ return ClobModule.QueryEquityTierLimitConfigurationResponse.decode(data);
366
+ }
367
+
368
+ /**
369
+ *
370
+ * @description Get all delegations from a delegator.
371
+ *
372
+ * @returns All delegations from a delegator.
373
+ */
374
+ async getDelegatorDelegations(
375
+ delegatorAddr: string,
376
+ ): Promise<StakingModule.QueryDelegatorDelegationsResponse> {
377
+ const requestData = Uint8Array.from(
378
+ StakingModule.QueryDelegatorDelegationsRequest.encode({
379
+ delegatorAddr,
380
+ pagination: {
381
+ key: PAGE_REQUEST.key,
382
+ offset: BigInt(PAGE_REQUEST.offset.toString()),
383
+ limit: BigInt(PAGE_REQUEST.limit.toString()),
384
+ countTotal: PAGE_REQUEST.countTotal,
385
+ reverse: PAGE_REQUEST.reverse,
386
+ },
387
+ }).finish(),
388
+ );
389
+
390
+ const data: Uint8Array = await this.sendQuery(
391
+ '/cosmos.staking.v1beta1.Query/DelegatorDelegations',
392
+ requestData,
393
+ );
394
+ return StakingModule.QueryDelegatorDelegationsResponse.decode(data);
395
+ }
396
+
397
+ /**
398
+ *
399
+ * @description Get all unbonding delegations from a delegator.
400
+ *
401
+ * @returns All unbonding delegations from a delegator.
402
+ */
403
+ async getDelegatorUnbondingDelegations(
404
+ delegatorAddr: string,
405
+ ): Promise<StakingModule.QueryDelegatorUnbondingDelegationsResponse> {
406
+ const requestData = Uint8Array.from(
407
+ StakingModule.QueryDelegatorUnbondingDelegationsRequest.encode({
408
+ delegatorAddr,
409
+ pagination: {
410
+ key: PAGE_REQUEST.key,
411
+ offset: BigInt(PAGE_REQUEST.offset.toString()),
412
+ limit: BigInt(PAGE_REQUEST.limit.toString()),
413
+ countTotal: PAGE_REQUEST.countTotal,
414
+ reverse: PAGE_REQUEST.reverse,
415
+ },
416
+ }).finish(),
417
+ );
418
+
419
+ const data: Uint8Array = await this.sendQuery(
420
+ '/cosmos.staking.v1beta1.Query/DelegatorUnbondingDelegations',
421
+ requestData,
422
+ );
423
+ return StakingModule.QueryDelegatorUnbondingDelegationsResponse.decode(data);
424
+ }
425
+
426
+ /**
427
+ *
428
+ * @description Get all unbonding delegations from a delegator.
429
+ *
430
+ * @returns All unbonding delegations from a delegator.
431
+ */
432
+ async getDelegationTotalRewards(
433
+ delegatorAddress: string,
434
+ ): Promise<DistributionModule.QueryDelegationTotalRewardsResponse> {
435
+ const requestData = Uint8Array.from(
436
+ DistributionModule.QueryDelegationTotalRewardsRequest.encode({
437
+ delegatorAddress,
438
+ }).finish(),
439
+ );
440
+
441
+ const data: Uint8Array = await this.sendQuery(
442
+ '/cosmos.distribution.v1beta1.Query/DelegationTotalRewards',
443
+ requestData,
444
+ );
445
+ return DistributionModule.QueryDelegationTotalRewardsResponse.decode(data);
446
+ }
447
+
448
+ /**
449
+ * @description Get all delayed complete bridge messages, optionally filtered by address.
450
+ *
451
+ * @returns Information on all delayed complete bridge messages.
452
+ */
453
+ async getDelayedCompleteBridgeMessages(
454
+ address: string = '',
455
+ ): Promise<BridgeModule.QueryDelayedCompleteBridgeMessagesResponse> {
456
+ const requestData: Uint8Array = Uint8Array.from(
457
+ BridgeModule.QueryDelayedCompleteBridgeMessagesRequest.encode({ address }).finish(),
458
+ );
459
+
460
+ const data: Uint8Array = await this.sendQuery(
461
+ '/ritbit.bridge.Query/DelayedCompleteBridgeMessages',
462
+ requestData,
463
+ );
464
+ return BridgeModule.QueryDelayedCompleteBridgeMessagesResponse.decode(data);
465
+ }
466
+
467
+ /**
468
+ * @description Get all validators of a status.
469
+ *
470
+ * @returns all validators of a status.
471
+ */
472
+ async getAllValidators(status: string = ''): Promise<StakingModule.QueryValidatorsResponse> {
473
+ const requestData = Uint8Array.from(
474
+ StakingModule.QueryValidatorsRequest.encode({
475
+ status,
476
+ pagination: {
477
+ key: PAGE_REQUEST.key,
478
+ offset: BigInt(PAGE_REQUEST.offset.toString()),
479
+ limit: BigInt(PAGE_REQUEST.limit.toString()),
480
+ countTotal: PAGE_REQUEST.countTotal,
481
+ reverse: PAGE_REQUEST.reverse,
482
+ },
483
+ }).finish(),
484
+ );
485
+
486
+ const data: Uint8Array = await this.sendQuery(
487
+ '/cosmos.staking.v1beta1.Query/Validators',
488
+ requestData,
489
+ );
490
+ return StakingModule.QueryValidatorsResponse.decode(data);
491
+ }
492
+
493
+ /**
494
+ * @description Get all gov proposals.
495
+ *
496
+ * @param proposalStatus Status of the proposal to filter by.
497
+ * @param voter Voter to filter by.
498
+ * @param depositor Depositor to filter by.
499
+ *
500
+ * @returns All gov proposals that match the filters above.
501
+ */
502
+ async getAllGovProposals(
503
+ proposalStatus: ProposalStatus = ProposalStatus.PROPOSAL_STATUS_VOTING_PERIOD,
504
+ voter: string = '',
505
+ depositor: string = '',
506
+ ): Promise<GovV1Module.QueryProposalsResponse> {
507
+ const requestData = Uint8Array.from(
508
+ GovV1Module.QueryProposalsRequest.encode({
509
+ proposalStatus,
510
+ voter,
511
+ depositor,
512
+ pagination: {
513
+ key: PAGE_REQUEST.key,
514
+ offset: BigInt(PAGE_REQUEST.offset.toString()),
515
+ limit: BigInt(PAGE_REQUEST.limit.toString()),
516
+ countTotal: PAGE_REQUEST.countTotal,
517
+ reverse: PAGE_REQUEST.reverse,
518
+ },
519
+ }).finish(),
520
+ );
521
+ const data: Uint8Array = await this.sendQuery('/cosmos.gov.v1.Query/Proposals', requestData);
522
+ return GovV1Module.QueryProposalsResponse.decode(data);
523
+ }
524
+
525
+ async getWithdrawalAndTransferGatingStatus(
526
+ perpetualId: number,
527
+ ): Promise<SubaccountsModule.QueryGetWithdrawalAndTransfersBlockedInfoResponse> {
528
+ const requestData = Uint8Array.from(
529
+ SubaccountsModule.QueryGetWithdrawalAndTransfersBlockedInfoRequest.encode({
530
+ perpetualId,
531
+ }).finish(),
532
+ );
533
+
534
+ const data = await this.sendQuery(
535
+ '/ritbit.subaccounts.Query/GetWithdrawalAndTransfersBlockedInfo',
536
+ requestData,
537
+ );
538
+
539
+ return SubaccountsModule.QueryGetWithdrawalAndTransfersBlockedInfoResponse.decode(data);
540
+ }
541
+
542
+ async getWithdrawalCapacityByDenom(
543
+ denom: string,
544
+ ): Promise<RateLimitModule.QueryCapacityByDenomResponse> {
545
+ const requestData = Uint8Array.from(
546
+ RateLimitModule.QueryCapacityByDenomRequest.encode({
547
+ denom,
548
+ }).finish(),
549
+ );
550
+
551
+ const data = await this.sendQuery('/ritbit.ratelimit.Query/CapacityByDenom', requestData);
552
+
553
+ return RateLimitModule.QueryCapacityByDenomResponse.decode(data);
554
+ }
555
+
556
+ async getMegavaultOwnerShares(
557
+ address: string,
558
+ ): Promise<VaultModule.QueryMegavaultOwnerSharesResponse> {
559
+ const requestData: Uint8Array = Uint8Array.from(
560
+ VaultModule.QueryMegavaultOwnerSharesRequest.encode({
561
+ address,
562
+ }).finish(),
563
+ );
564
+
565
+ const data: Uint8Array = await this.sendQuery(
566
+ '/ritbit.vault.Query/MegavaultOwnerShares',
567
+ requestData,
568
+ );
569
+
570
+ return VaultModule.QueryMegavaultOwnerSharesResponse.decode(data);
571
+ }
572
+
573
+ async getMegavaultWithdrawalInfo(
574
+ sharesToWithdraw: bigint,
575
+ ): Promise<VaultModule.QueryMegavaultWithdrawalInfoResponse> {
576
+ const requestData: Uint8Array = Uint8Array.from(
577
+ VaultModule.QueryMegavaultWithdrawalInfoRequest.encode({
578
+ sharesToWithdraw: {
579
+ numShares: bigIntToBytes(sharesToWithdraw),
580
+ },
581
+ }).finish(),
582
+ );
583
+
584
+ const data: Uint8Array = await this.sendQuery(
585
+ '/ritbit.vault.Query/MegavaultWithdrawalInfo',
586
+ requestData,
587
+ );
588
+
589
+ return VaultModule.QueryMegavaultWithdrawalInfoResponse.decode(data);
590
+ }
591
+
592
+ async getMegavaultAllOwnerShares(): Promise<VaultModule.QueryMegavaultAllOwnerSharesResponse> {
593
+ const requestData: Uint8Array = Uint8Array.from(
594
+ VaultModule.QueryMegavaultAllOwnerSharesRequest.encode({
595
+ pagination: PAGE_REQUEST,
596
+ }).finish(),
597
+ );
598
+
599
+ const data: Uint8Array = await this.sendQuery(
600
+ '/ritbit.vault.Query/MegavaultAllOwnerShares',
601
+ requestData,
602
+ );
603
+
604
+ return VaultModule.QueryMegavaultAllOwnerSharesResponse.decode(data);
605
+ }
606
+
607
+ async getMegavaultTotalShares(): Promise<VaultModule.QueryMegavaultTotalSharesResponse> {
608
+ const requestData: Uint8Array = Uint8Array.from(
609
+ VaultModule.QueryMegavaultTotalSharesRequest.encode({}).finish(),
610
+ );
611
+
612
+ const data: Uint8Array = await this.sendQuery(
613
+ '/ritbit.vault.Query/MegavaultTotalShares',
614
+ requestData,
615
+ );
616
+
617
+ return VaultModule.QueryMegavaultTotalSharesResponse.decode(data);
618
+ }
619
+
620
+
621
+ async getAffiliateInfo(address: string): Promise<AffiliateModule.AffiliateInfoResponse> {
622
+ const requestData = Uint8Array.from(
623
+ AffiliateModule.AffiliateInfoRequest.encode({
624
+ address,
625
+ }).finish(),
626
+ );
627
+
628
+ const data = await this.sendQuery('/ritbit.affiliates.Query/AffiliateInfo', requestData);
629
+
630
+ return AffiliateModule.AffiliateInfoResponse.decode(data);
631
+ }
632
+
633
+ async getReferredBy(address: string): Promise<AffiliateModule.ReferredByResponse> {
634
+ const requestData = Uint8Array.from(
635
+ AffiliateModule.ReferredByRequest.encode({
636
+ address,
637
+ }).finish(),
638
+ );
639
+
640
+ const data = await this.sendQuery('/ritbit.affiliates.Query/ReferredBy', requestData);
641
+
642
+ return AffiliateModule.ReferredByResponse.decode(data);
643
+ }
644
+
645
+ async getAllAffiliateTiers(): Promise<AffiliateModule.AllAffiliateTiersResponse> {
646
+ const requestData = Uint8Array.from(
647
+ AffiliateModule.AllAffiliateTiersRequest.encode({}).finish(),
648
+ );
649
+
650
+ const data = await this.sendQuery(
651
+ '/ritbit.affiliates.Query/AllAffiliateTiers',
652
+ requestData,
653
+ );
654
+
655
+ return AffiliateModule.AllAffiliateTiersResponse.decode(data);
656
+ }
657
+
658
+ async getAffiliateWhitelist(): Promise<AffiliateModule.AffiliateWhitelistResponse> {
659
+ const requestData = Uint8Array.from(
660
+ AffiliateModule.AffiliateWhitelistRequest.encode({}).finish(),
661
+ );
662
+
663
+ const data = await this.sendQuery(
664
+ '/ritbit.affiliates.Query/AffiliateWhitelist',
665
+ requestData,
666
+ );
667
+
668
+ return AffiliateModule.AffiliateWhitelistResponse.decode(data);
669
+ }
670
+
671
+ async getAuthenticators(address: string): Promise<GetAuthenticatorsResponse> {
672
+ const requestData = Uint8Array.from(
673
+ GetAuthenticatorsRequest.encode({
674
+ account: address,
675
+ }).finish(),
676
+ );
677
+
678
+ const data = await this.sendQuery(
679
+ '/ritbit.accountplus.Query/GetAuthenticators',
680
+ requestData,
681
+ );
682
+
683
+ return GetAuthenticatorsResponse.decode(data);
684
+ }
685
+
686
+ /**
687
+ * @description Get fee discounts for all perp markets.
688
+ * @returns All markets' fee discounts.
689
+ */
690
+ async getAllPerpMarketFeeDiscounts(): Promise<FeeTierModule.QueryAllMarketFeeDiscountParamsResponse> {
691
+ const requestData = Uint8Array.from(
692
+ FeeTierModule.QueryAllMarketFeeDiscountParamsRequest.encode({}).finish(),
693
+ );
694
+
695
+ const data = await this.sendQuery(
696
+ '/ritbit.feetiers.Query/AllMarketFeeDiscountParams',
697
+ requestData,
698
+ );
699
+
700
+ return FeeTierModule.QueryAllMarketFeeDiscountParamsResponse.decode(data);
701
+ }
702
+
703
+ /**
704
+ *
705
+ * @param address The address of the user to get the staking tier for.
706
+ * @returns The staking tier for the user.
707
+ */
708
+ async getUserStakingTier(address: string): Promise<FeeTierModule.QueryUserStakingTierResponse> {
709
+ const requestData = Uint8Array.from(
710
+ FeeTierModule.QueryUserStakingTierRequest.encode({
711
+ address,
712
+ }).finish(),
713
+ );
714
+
715
+ const data = await this.sendQuery('/ritbit.feetiers.Query/UserStakingTier', requestData);
716
+
717
+ return FeeTierModule.QueryUserStakingTierResponse.decode(data);
718
+ }
719
+
720
+ /**
721
+ * @description Get all staking tiers.
722
+ * @returns All staking tiers.
723
+ */
724
+ async getAllStakingTiers(): Promise<FeeTierModule.QueryStakingTiersResponse> {
725
+ const requestData = Uint8Array.from(FeeTierModule.QueryStakingTiersRequest.encode({}).finish());
726
+
727
+ const data = await this.sendQuery('/ritbit.feetiers.Query/StakingTiers', requestData);
728
+
729
+ return FeeTierModule.QueryStakingTiersResponse.decode(data);
730
+ }
731
+
732
+ private async sendQuery(requestUrl: string, requestData: Uint8Array): Promise<Uint8Array> {
733
+ // eslint-disable-next-line max-len
734
+ const resp: QueryAbciResponse = await this.stargateQueryClient.queryAbci(
735
+ requestUrl,
736
+ requestData,
737
+ );
738
+ return resp.value;
739
+ }
740
+ }