@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,33 @@
1
+ export * as GovV1Module from 'cosmjs-types/cosmos/gov/v1/query';
2
+ export * as StatsModule from '@ritbit/v4-proto/src/codegen/ritbit/stats/query';
3
+
4
+ export * as ClobModule from '@ritbit/v4-proto/src/codegen/ritbit/clob/query';
5
+ export * as PerpetualsModule from '@ritbit/v4-proto/src/codegen/ritbit/perpetuals/query';
6
+ export * as PricesModule from '@ritbit/v4-proto/src/codegen/ritbit/prices/query';
7
+ export * as SubaccountsModule from '@ritbit/v4-proto/src/codegen/ritbit/subaccounts/query';
8
+ export * as FeeTierModule from '@ritbit/v4-proto/src/codegen/ritbit/feetiers/query';
9
+ export * as RateLimitModule from '@ritbit/v4-proto/src/codegen/ritbit/ratelimit/query';
10
+ export * as RewardsModule from '@ritbit/v4-proto/src/codegen/ritbit/rewards/query';
11
+ export * as StakingModule from 'cosmjs-types/cosmos/staking/v1beta1/query';
12
+ export * as BridgeModule from '@ritbit/v4-proto/src/codegen/ritbit/bridge/query';
13
+ export * as DistributionModule from 'cosmjs-types/cosmos/distribution/v1beta1/query';
14
+ export * as AffiliateModule from '@ritbit/v4-proto/src/codegen/ritbit/affiliates/query';
15
+ export * as VaultModule from '@ritbit/v4-proto/src/codegen/ritbit/vault/query';
16
+ export * as ListingModule from '@ritbit/v4-proto/src/codegen/ritbit/listing/query';
17
+
18
+ // Note: cosmos/base/abci is not available in cosmjs-types, keeping from v4-proto
19
+ // export * from '@ritbit/v4-proto/src/codegen/cosmos/base/abci/v1beta1/abci';
20
+ export { ProposalStatus } from 'cosmjs-types/cosmos/gov/v1/gov';
21
+ export * from 'cosmjs-types/cosmos/gov/v1/gov';
22
+ export * from '@ritbit/v4-proto/src/codegen/ritbit/clob/order';
23
+ export * from '@ritbit/v4-proto/src/codegen/ritbit/clob/tx';
24
+ export * from '@ritbit/v4-proto/src/codegen/ritbit/delaymsg/tx';
25
+ export * from '@ritbit/v4-proto/src/codegen/ritbit/perpetuals/tx';
26
+ export * from '@ritbit/v4-proto/src/codegen/ritbit/prices/tx';
27
+ export * from '@ritbit/v4-proto/src/codegen/google/protobuf/any';
28
+ export * from '@ritbit/v4-proto/src/codegen/ritbit/subaccounts/subaccount';
29
+ export * from '@ritbit/v4-proto/src/codegen/ritbit/sending/tx';
30
+ export * from '@ritbit/v4-proto/src/codegen/ritbit/sending/transfer';
31
+ export * from '@ritbit/v4-proto/src/codegen/ritbit/assets/genesis';
32
+ export * from '@ritbit/v4-proto/src/codegen/ritbit/assets/asset';
33
+ export * from '@ritbit/v4-proto/src/codegen/ritbit/listing/tx';
@@ -0,0 +1,40 @@
1
+ import axios, { AxiosInstance, AxiosProxyConfig } from 'axios';
2
+
3
+ import { DEFAULT_API_TIMEOUT } from '../constants';
4
+ import { generateQueryPath } from '../helpers/request-helpers';
5
+ import { Response } from '../lib/axios';
6
+ import { Data } from '../types';
7
+
8
+ export default class RestClient {
9
+ readonly host: string;
10
+ readonly apiTimeout: Number;
11
+ readonly axiosInstance: AxiosInstance;
12
+
13
+ constructor(host: string, apiTimeout?: Number | null, proxy?: AxiosProxyConfig) {
14
+ if (host.endsWith('/')) {
15
+ this.host = host.slice(0, -1);
16
+ } else {
17
+ this.host = host;
18
+ }
19
+ this.apiTimeout = apiTimeout || DEFAULT_API_TIMEOUT;
20
+ this.axiosInstance = axios.create({
21
+ proxy,
22
+ });
23
+ }
24
+
25
+ async get(requestPath: string, params: {} = {}): Promise<Data> {
26
+ const url = `${this.host}${generateQueryPath(requestPath, params)}`;
27
+ const response = await this.axiosInstance.get(url);
28
+ return response.data;
29
+ }
30
+
31
+ async post(
32
+ requestPath: string,
33
+ params: {} = {},
34
+ body?: unknown | null,
35
+ headers: {} = {},
36
+ ): Promise<Response> {
37
+ const url = `${this.host}${generateQueryPath(requestPath, params)}`;
38
+ return this.axiosInstance.post(url, body, { headers });
39
+ }
40
+ }
@@ -0,0 +1,139 @@
1
+ import { Secp256k1Pubkey } from '@cosmjs/amino';
2
+ import { fromBase64 } from '@cosmjs/encoding';
3
+ import { Int53 } from '@cosmjs/math';
4
+ import {
5
+ EncodeObject,
6
+ encodePubkey,
7
+ isOfflineDirectSigner,
8
+ makeAuthInfoBytes,
9
+ makeSignDoc,
10
+ OfflineSigner,
11
+ } from '@cosmjs/proto-signing';
12
+ import { SigningStargateClient, StdFee } from '@cosmjs/stargate';
13
+ import { TxExtension } from '@ritbit/v4-proto/src/codegen/ritbit/accountplus/tx';
14
+ import { TxBody, TxRaw } from 'cosmjs-types/cosmos/tx/v1beta1/tx';
15
+ import { Any } from 'cosmjs-types/google/protobuf/any';
16
+ import Long from 'long';
17
+ import protobuf from 'protobufjs';
18
+
19
+ import { generateRegistry } from '../lib/registry';
20
+ import { TransactionOptions } from '../types';
21
+
22
+ // Required for encoding and decoding queries that are of type Long.
23
+ // Must be done once but since the individal modules should be usable
24
+ // - must be set in each module that encounters encoding/decoding Longs.
25
+ // Reference: https://github.com/protobufjs/protobuf.js/issues/921
26
+ protobuf.util.Long = Long;
27
+ protobuf.configure();
28
+
29
+ export class TransactionSigner {
30
+ readonly address: string;
31
+ readonly stargateSigningClient: SigningStargateClient;
32
+ readonly offlineSigner: OfflineSigner;
33
+
34
+ constructor(
35
+ address: string,
36
+ stargateSigningClient: SigningStargateClient,
37
+ offlineSigner: OfflineSigner,
38
+ ) {
39
+ this.address = address;
40
+ this.stargateSigningClient = stargateSigningClient;
41
+ this.offlineSigner = offlineSigner;
42
+ }
43
+
44
+ /**
45
+ * @description Get the encoded signed transaction or the promise is rejected if
46
+ * no fee can be set for the transaction.
47
+ *
48
+ * @throws UserError if the fee is undefined.
49
+ * @returns The signed and encoded transaction.
50
+ */
51
+ async signTransaction(
52
+ messages: EncodeObject[],
53
+ transactionOptions: TransactionOptions,
54
+ fee?: StdFee,
55
+ memo: string = '',
56
+ publicKey?: Secp256k1Pubkey,
57
+ ): Promise<Uint8Array> {
58
+ if (!fee) {
59
+ throw new Error('Fee cannot be undefined');
60
+ }
61
+
62
+ const registry = generateRegistry();
63
+
64
+ // Encode the messages
65
+ const encodedMessages = messages.map((msg) => registry.encodeAsAny(msg));
66
+
67
+ // Encode the TxExtension message
68
+ const txExtension = TxExtension.encode({
69
+ selectedAuthenticators: transactionOptions.authenticators ?? [],
70
+ }).finish();
71
+
72
+ // Create the non-critical extension message
73
+ const nonCriticalExtensionOptions: Any[] = [
74
+ Any.fromPartial({
75
+ typeUrl: '/ritbit.accountplus.TxExtension',
76
+ value: txExtension,
77
+ }),
78
+ ];
79
+
80
+ // Construct the TxBody
81
+ const txBody: TxBody = TxBody.fromPartial({
82
+ messages: encodedMessages,
83
+ memo,
84
+ extensionOptions: [],
85
+ nonCriticalExtensionOptions,
86
+ });
87
+
88
+ // Encode the TxBody
89
+ const txBodyBytes = TxBody.encode(txBody).finish();
90
+
91
+ if (!publicKey) {
92
+ throw new Error('Public key cannot be undefined');
93
+ }
94
+ const pubkey = encodePubkey(publicKey); // Use the public key of the signer
95
+
96
+ const gasLimit = Int53.fromString(String(fee.gas)).toNumber();
97
+ const authInfoBytes = makeAuthInfoBytes(
98
+ [{ pubkey, sequence: transactionOptions.sequence }],
99
+ fee.amount,
100
+ gasLimit,
101
+ undefined,
102
+ undefined,
103
+ );
104
+
105
+ // Create the SignDoc
106
+ const signDoc = makeSignDoc(
107
+ txBodyBytes,
108
+ authInfoBytes,
109
+ transactionOptions.chainId,
110
+ transactionOptions.accountNumber,
111
+ );
112
+
113
+ // Use OfflineSigner to sign the transaction
114
+ const signerAddress = this.address;
115
+ if (isOfflineDirectSigner(this.offlineSigner)) {
116
+ const { signed, signature } = await this.offlineSigner.signDirect(signerAddress, signDoc);
117
+
118
+ const txRaw = TxRaw.fromPartial({
119
+ bodyBytes: signed.bodyBytes,
120
+ authInfoBytes: signed.authInfoBytes,
121
+ signatures: [fromBase64(signature.signature)],
122
+ });
123
+ return Uint8Array.from(TxRaw.encode(txRaw).finish());
124
+ } else {
125
+ const rawTx: TxRaw = await this.stargateSigningClient.sign(
126
+ this.address,
127
+ messages,
128
+ fee,
129
+ memo,
130
+ {
131
+ accountNumber: transactionOptions.accountNumber,
132
+ sequence: transactionOptions.sequence,
133
+ chainId: transactionOptions.chainId,
134
+ },
135
+ );
136
+ return Uint8Array.from(TxRaw.encode(rawTx).finish());
137
+ }
138
+ }
139
+ }
@@ -0,0 +1,168 @@
1
+ import { toHex } from '@cosmjs/encoding';
2
+ import { Uint53 } from '@cosmjs/math';
3
+ import { Block, TimeoutError, IndexedTx } from '@cosmjs/stargate';
4
+ import {
5
+ Method,
6
+ Tendermint37Client,
7
+ toRfc3339WithNanoseconds,
8
+ tendermint37,
9
+ } from '@cosmjs/tendermint-rpc';
10
+ import { sleep } from '@cosmjs/utils';
11
+
12
+ type Attribute = tendermint37.Attribute;
13
+ type BlockResponse = tendermint37.BlockResponse;
14
+ type BroadcastTxAsyncResponse = tendermint37.BroadcastTxAsyncResponse;
15
+ type BroadcastTxSyncResponse = tendermint37.BroadcastTxSyncResponse;
16
+ type TxResponse = tendermint37.TxResponse;
17
+ type Event = tendermint37.Event;
18
+
19
+ import { BroadcastErrorObject } from '../lib/errors';
20
+ import { BroadcastMode, BroadcastOptions } from '../types';
21
+
22
+ export class TendermintClient {
23
+ readonly baseClient: Tendermint37Client;
24
+ broadcastOptions: BroadcastOptions;
25
+
26
+ constructor(baseClient: Tendermint37Client, broadcastOptions: BroadcastOptions) {
27
+ this.baseClient = baseClient;
28
+ this.broadcastOptions = broadcastOptions;
29
+ }
30
+
31
+ /**
32
+ * @description Get a specific block if height is specified. Otherwise, get the most recent block.
33
+ *
34
+ * @returns Information about the block queried.
35
+ */
36
+ async getBlock(height?: number): Promise<Block> {
37
+ const response: BlockResponse = await this.baseClient.block(height);
38
+ return {
39
+ id: toHex(response.blockId.hash).toUpperCase(),
40
+ header: {
41
+ version: {
42
+ block: new Uint53(response.block.header.version.block).toString(),
43
+ app: new Uint53(response.block.header.version.app).toString(),
44
+ },
45
+ height: response.block.header.height,
46
+ chainId: response.block.header.chainId,
47
+ time: toRfc3339WithNanoseconds(response.block.header.time),
48
+ },
49
+ txs: response.block.txs,
50
+ };
51
+ }
52
+
53
+ /**
54
+ * @description Broadcast a signed transaction with a specific mode.
55
+ * @throws BroadcastErrorObject when result code is not zero. TypeError when mode is invalid.
56
+ * @returns Differs depending on the BroadcastMode used.
57
+ * See https://docs.cosmos.network/master/run-node/txs.html for more information.
58
+ */
59
+ async broadcastTransaction(
60
+ tx: Uint8Array,
61
+ mode: BroadcastMode,
62
+ ): Promise<BroadcastTxAsyncResponse | BroadcastTxSyncResponse | IndexedTx> {
63
+ switch (mode) {
64
+ case Method.BroadcastTxAsync:
65
+ return this.broadcastTransactionAsync(tx);
66
+ case Method.BroadcastTxSync:
67
+ return this.broadcastTransactionSync(tx);
68
+ case Method.BroadcastTxCommit:
69
+ return this.broadcastTransactionCommit(tx);
70
+ default:
71
+ throw new TypeError('broadcastTransaction: invalid BroadcastMode');
72
+ }
73
+ }
74
+
75
+ /**
76
+ * @description Broadcast a signed transaction.
77
+ * @returns The transaction hash.
78
+ */
79
+ broadcastTransactionAsync(tx: Uint8Array): Promise<BroadcastTxAsyncResponse> {
80
+ return this.baseClient.broadcastTxAsync({ tx });
81
+ }
82
+
83
+ /**
84
+ * @description Broadcast a signed transaction and await the response.
85
+ * @throws BroadcastErrorObject when result code is not zero.
86
+ * @returns The response from the node once the transaction is processed by `CheckTx`.
87
+ */
88
+ async broadcastTransactionSync(tx: Uint8Array): Promise<BroadcastTxSyncResponse> {
89
+ const result: BroadcastTxSyncResponse = await this.baseClient.broadcastTxSync({ tx });
90
+ if (result.code !== 0) {
91
+ throw new BroadcastErrorObject(`Broadcasting transaction failed: ${result.log}`, result);
92
+ }
93
+ return result;
94
+ }
95
+
96
+ /**
97
+ * @description Broadcast a signed transaction and await for it to be included in the blockchain.
98
+ * @throws BroadcastErrorObject when result code is not zero.
99
+ * @returns The result of the transaction once included in the blockchain.
100
+ */
101
+ async broadcastTransactionCommit(tx: Uint8Array): Promise<IndexedTx> {
102
+ const result: BroadcastTxSyncResponse = await this.broadcastTransactionSync(tx);
103
+ return this.queryHash(result.hash);
104
+ }
105
+
106
+ /**
107
+ * @description Using tx method, query for a transaction on-chain with retries specified by
108
+ * the client BroadcastOptions.
109
+ *
110
+ * @throws TimeoutError if the transaction is not committed on-chain within the timeout limit.
111
+ * @returns An indexed transaction containing information about the transaction when committed.
112
+ */
113
+ async queryHash(hash: Uint8Array, time: number = 0): Promise<IndexedTx> {
114
+ const now: number = Date.now();
115
+ const transactionId: string = toHex(hash).toUpperCase();
116
+
117
+ if (time >= this.broadcastOptions.broadcastTimeoutMs) {
118
+ throw new TimeoutError(
119
+ `Transaction with hash [${hash}] was submitted but was not yet found on the chain. You might want to check later. Query timed out after ${
120
+ this.broadcastOptions.broadcastTimeoutMs / 1000
121
+ } seconds.`,
122
+ transactionId,
123
+ );
124
+ }
125
+
126
+ await sleep(this.broadcastOptions.broadcastPollIntervalMs);
127
+
128
+ // If the transaction is not found, the tx method will throw an Internal Error.
129
+ try {
130
+ const tx: TxResponse = await this.baseClient.tx({ hash });
131
+
132
+ return {
133
+ height: tx.height,
134
+ hash: toHex(tx.hash).toUpperCase(),
135
+ code: tx.result.code,
136
+ rawLog: tx.result.log !== undefined ? tx.result.log : '',
137
+ tx: tx.tx,
138
+ txIndex: tx.index,
139
+ gasUsed: tx.result.gasUsed,
140
+ gasWanted: tx.result.gasWanted,
141
+ // Convert stargate events to tendermint events.
142
+ events: tx.result.events.map((event: Event) => {
143
+ return {
144
+ ...event,
145
+ attributes: event.attributes.map((attr: Attribute) => {
146
+ return {
147
+ ...attr,
148
+ key: Buffer.from(attr.key).toString(),
149
+ value: Buffer.from(attr.value).toString(),
150
+ };
151
+ }),
152
+ };
153
+ }),
154
+ // @ts-ignore
155
+ msgResponses: [],
156
+ };
157
+ } catch (error) {
158
+ return this.queryHash(hash, time + Date.now() - now);
159
+ }
160
+ }
161
+
162
+ /**
163
+ * @description Set the broadcast options for this module.
164
+ */
165
+ setBroadcastOptions(broadcastOptions: BroadcastOptions): void {
166
+ this.broadcastOptions = broadcastOptions;
167
+ }
168
+ }
@@ -0,0 +1,47 @@
1
+ import type {
2
+ ComplianceResponse,
3
+ ComplianceV2Response,
4
+ HeightResponse,
5
+ TimeResponse,
6
+ } from '../types';
7
+ import RestClient from './rest';
8
+
9
+ export default class UtilityClient extends RestClient {
10
+ /**
11
+ * @description Get the current time of the Indexer
12
+ * @returns {TimeResponse} isoString and epoch
13
+ */
14
+ async getTime(): Promise<TimeResponse> {
15
+ const uri = '/v4/time';
16
+ return this.get(uri);
17
+ }
18
+
19
+ /**
20
+ * @description Get the block height of the most recent block processed by the Indexer
21
+ * @returns {HeightResponse} block height and time
22
+ */
23
+ async getHeight(): Promise<HeightResponse> {
24
+ const uri = '/v4/height';
25
+ return this.get(uri);
26
+ }
27
+
28
+ /**
29
+ * @description Screen an address to see if it is restricted
30
+ * @param {string} address evm or dydx address
31
+ * @returns {ComplianceResponse} whether the specified address is restricted
32
+ */
33
+ async screen(address: string): Promise<ComplianceResponse> {
34
+ const uri = '/v4/screen';
35
+ return this.get(uri, { address });
36
+ }
37
+
38
+ /**
39
+ * @description Screen an address to see if it is restricted
40
+ * @param {string} address evm or dydx address
41
+ * @returns {ComplianceResponse} whether the specified address is restricted
42
+ */
43
+ async complianceScreen(address: string): Promise<ComplianceV2Response> {
44
+ const uri = `/v4/compliance/screen/${address}`;
45
+ return this.get(uri);
46
+ }
47
+ }
@@ -0,0 +1,23 @@
1
+ import { PnlTickInterval } from '../constants';
2
+ import { Data } from '../types';
3
+ import RestClient from './rest';
4
+
5
+ /**
6
+ * @description REST endpoints for data unrelated to a particular address.
7
+ */
8
+ export default class VaultClient extends RestClient {
9
+ async getMegavaultHistoricalPnl(resolution?: PnlTickInterval | null): Promise<Data> {
10
+ const uri = '/v4/vault/v1/megavault/historicalPnl';
11
+ return this.get(uri, { resolution });
12
+ }
13
+
14
+ async getVaultsHistoricalPnl(resolution?: PnlTickInterval | null): Promise<Data> {
15
+ const uri = '/v4/vault/v1/vaults/historicalPnl';
16
+ return this.get(uri, { resolution });
17
+ }
18
+
19
+ async getMegavaultPositions(): Promise<Data> {
20
+ const uri = '/v4/vault/v1/megavault/positions';
21
+ return this.get(uri);
22
+ }
23
+ }