@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,108 @@
1
+ import { EncodeObject, Registry, Coin } from '@cosmjs/proto-signing';
2
+ import {
3
+ calculateFee,
4
+ DeliverTxResponse,
5
+ GasPrice,
6
+ StdFee,
7
+ defaultRegistryTypes,
8
+ SigningStargateClient,
9
+ MsgTransferEncodeObject,
10
+ } from '@cosmjs/stargate';
11
+
12
+ import { GAS_MULTIPLIER } from './constants';
13
+ import { MsgDepositForBurn, MsgDepositForBurnWithCaller } from './lib/cctpProto';
14
+ import LocalWallet from './modules/local-wallet';
15
+
16
+ export class NobleClient {
17
+ private wallet?: LocalWallet;
18
+ private restEndpoint: string;
19
+ private stargateClient?: SigningStargateClient;
20
+ private defaultClientMemo?: string;
21
+
22
+ constructor(restEndpoint: string, defaultClientMemo?: string) {
23
+ this.restEndpoint = restEndpoint;
24
+ this.defaultClientMemo = defaultClientMemo;
25
+ }
26
+
27
+ get isConnected(): boolean {
28
+ return Boolean(this.stargateClient);
29
+ }
30
+
31
+ async connect(wallet: LocalWallet): Promise<void> {
32
+ if (wallet?.offlineSigner === undefined) {
33
+ throw new Error('Wallet signer not found');
34
+ }
35
+ this.wallet = wallet;
36
+ this.stargateClient = await SigningStargateClient.connectWithSigner(
37
+ this.restEndpoint,
38
+ wallet.offlineSigner,
39
+ {
40
+ registry: new Registry([
41
+ ['/circle.cctp.v1.MsgDepositForBurn', MsgDepositForBurn],
42
+ ['/circle.cctp.v1.MsgDepositForBurnWithCaller', MsgDepositForBurnWithCaller],
43
+ ...defaultRegistryTypes,
44
+ ]),
45
+ },
46
+ );
47
+ }
48
+
49
+ getAccountBalances(): Promise<readonly Coin[]> {
50
+ if (!this.stargateClient || this.wallet?.address === undefined) {
51
+ throw new Error('stargateClient not initialized');
52
+ }
53
+ return this.stargateClient.getAllBalances(this.wallet.address);
54
+ }
55
+
56
+ getAccountBalance(denom: string): Promise<Coin> {
57
+ if (!this.stargateClient || this.wallet?.address === undefined) {
58
+ throw new Error('stargateClient not initialized');
59
+ }
60
+ return this.stargateClient.getBalance(this.wallet.address, denom);
61
+ }
62
+
63
+ async IBCTransfer(message: MsgTransferEncodeObject): Promise<DeliverTxResponse> {
64
+ const tx = await this.send([message]);
65
+ return tx;
66
+ }
67
+
68
+ async send(
69
+ messages: EncodeObject[],
70
+ gasPrice: GasPrice = GasPrice.fromString('0.1uusdc'),
71
+ memo?: string,
72
+ ): Promise<DeliverTxResponse> {
73
+ if (!this.stargateClient) {
74
+ throw new Error('NobleClient stargateClient not initialized');
75
+ }
76
+ if (this.wallet?.address === undefined) {
77
+ throw new Error('NobleClient wallet not initialized');
78
+ }
79
+ // Simulate to get the gas estimate
80
+ const fee = await this.simulateTransaction(messages, gasPrice, memo ?? this.defaultClientMemo);
81
+
82
+ // Sign and broadcast the transaction
83
+ return this.stargateClient.signAndBroadcast(
84
+ this.wallet.address,
85
+ messages,
86
+ fee,
87
+ memo ?? this.defaultClientMemo,
88
+ );
89
+ }
90
+
91
+ async simulateTransaction(
92
+ messages: readonly EncodeObject[],
93
+ gasPrice: GasPrice = GasPrice.fromString('0.1uusdc'),
94
+ memo?: string,
95
+ ): Promise<StdFee> {
96
+ if (!this.stargateClient) {
97
+ throw new Error('NobleClient stargateClient not initialized');
98
+ }
99
+ if (this.wallet?.address === undefined) {
100
+ throw new Error('NobleClient wallet not initialized');
101
+ }
102
+ // Get simulated response
103
+ const gasEstimate = await this.stargateClient.simulate(this.wallet?.address, messages, memo);
104
+
105
+ // Calculate and return the fee
106
+ return calculateFee(Math.floor(gasEstimate * GAS_MULTIPLIER), gasPrice);
107
+ }
108
+ }
@@ -0,0 +1,331 @@
1
+ import { HttpsProxyAgent } from 'https-proxy-agent';
2
+ import WebSocket, { ErrorEvent, MessageEvent } from 'ws';
3
+
4
+ import { getProxyAgent } from '../lib/utils';
5
+ import { IndexerConfig } from './constants';
6
+
7
+ enum OutgoingMessageTypes {
8
+ SUBSCRIBE = 'subscribe',
9
+ UNSUBSCRIBE = 'unsubscribe',
10
+ }
11
+
12
+ enum SocketChannels {
13
+ SUBACCOUNTS = 'v4_subaccounts',
14
+ ORDERBOOK = 'v4_orderbook',
15
+ TRADES = 'v4_trades',
16
+ MARKETS = 'v4_markets',
17
+ CANDLES = 'v4_candles',
18
+ }
19
+
20
+ export enum IncomingMessageTypes {
21
+ CONNECTED = 'connected',
22
+ SUBSCRIBED = 'subscribed',
23
+ ERROR = 'error',
24
+ CHANNEL_DATA = 'channel_data',
25
+ CHANNEL_BATCH_DATA = 'channel_batch_data',
26
+ PONG = 'pong',
27
+ }
28
+
29
+ export enum CandlesResolution {
30
+ ONE_MINUTE = '1MIN',
31
+ FIVE_MINUTES = '5MINS',
32
+ FIFTEEN_MINUTES = '15MINS',
33
+ THIRTY_MINUTES = '30MINS',
34
+ ONE_HOUR = '1HOUR',
35
+ FOUR_HOURS = '4HOURS',
36
+ ONE_DAY = '1DAY',
37
+ }
38
+
39
+ export class SocketClient {
40
+ private url: string;
41
+ private ws?: WebSocket;
42
+ private proxyAgent?: HttpsProxyAgent<string>;
43
+ private onOpenCallback?: () => void;
44
+ private onCloseCallback?: () => void;
45
+ private onMessageCallback?: (event: MessageEvent) => void;
46
+ private onErrorCallback?: (event: ErrorEvent) => void;
47
+ private lastMessageTime: number = Date.now();
48
+
49
+ constructor(
50
+ config: IndexerConfig,
51
+ onOpenCallback: () => void,
52
+ onCloseCallback: () => void,
53
+ onMessageCallback: (event: MessageEvent) => void,
54
+ onErrorCallback: (event: ErrorEvent) => void,
55
+ ) {
56
+ this.url = config.websocketEndpoint;
57
+ this.proxyAgent = config.proxy ? getProxyAgent(config.proxy) : undefined;
58
+ this.onOpenCallback = onOpenCallback;
59
+ this.onCloseCallback = onCloseCallback;
60
+ this.onMessageCallback = onMessageCallback;
61
+ this.onErrorCallback = onErrorCallback;
62
+ }
63
+
64
+ connect(): void {
65
+ this.ws = new WebSocket(this.url, {
66
+ agent: this.proxyAgent,
67
+ });
68
+ this.ws.addEventListener('open', this.handleOpen.bind(this));
69
+ this.ws.addEventListener('close', this.handleClose.bind(this));
70
+ this.ws.addEventListener('message', this.handleMessage.bind(this));
71
+ this.ws.addEventListener('error', this.handleError.bind(this));
72
+ }
73
+
74
+ /**
75
+ * @description Close the websocket connection.
76
+ *
77
+ */
78
+ close(): void {
79
+ this.ws?.close();
80
+ this.ws = undefined;
81
+ }
82
+
83
+ /**
84
+ * @description Check is the websocket connection connecting
85
+ */
86
+ isConnecting(): boolean {
87
+ return this.ws?.readyState === WebSocket.CONNECTING;
88
+ }
89
+
90
+ /**
91
+ * @description Check is the websocket connection open
92
+ */
93
+ isOpen(): boolean {
94
+ return this.ws?.readyState === WebSocket.OPEN;
95
+ }
96
+
97
+ /**
98
+ * @description Check is the websocket connection closing
99
+ */
100
+ isClosing(): boolean {
101
+ return this.ws?.readyState === WebSocket.CLOSING;
102
+ }
103
+
104
+ /**
105
+ * @description Check is the websocket connection closed
106
+ */
107
+ isClosed(): boolean {
108
+ return this.ws?.readyState === WebSocket.CLOSED;
109
+ }
110
+
111
+ /**
112
+ * @description Send data to the websocket connection.
113
+ *
114
+ */
115
+ send(data: string): void {
116
+ this.ws?.send(data);
117
+ }
118
+
119
+ private handleOpen(): void {
120
+ if (this.onOpenCallback) {
121
+ this.onOpenCallback();
122
+ }
123
+ }
124
+
125
+ private handleClose(): void {
126
+ if (this.onCloseCallback) {
127
+ this.onCloseCallback();
128
+ }
129
+ }
130
+
131
+ private handleMessage(event: MessageEvent): void {
132
+ if (event.data === 'PING') {
133
+ this.send('PONG');
134
+ } else {
135
+ this.lastMessageTime = Date.now();
136
+ if (this.onMessageCallback) {
137
+ this.onMessageCallback(event);
138
+ }
139
+ }
140
+ }
141
+
142
+ private handleError(event: ErrorEvent): void {
143
+ if (this.onErrorCallback) {
144
+ this.onErrorCallback(event);
145
+ }
146
+ }
147
+
148
+ /**
149
+ * @description Set callback when the socket is opened.
150
+ *
151
+ */
152
+ set onOpen(callback: () => void) {
153
+ this.onOpenCallback = callback;
154
+ }
155
+
156
+ /**
157
+ * @description Set callback when the socket is closed.
158
+ *
159
+ */
160
+ set onClose(callback: () => void) {
161
+ this.onCloseCallback = callback;
162
+ }
163
+
164
+ /**
165
+ * @description Set callback when the socket receives a message.
166
+ *
167
+ */
168
+ set onMessage(callback: (event: MessageEvent) => void) {
169
+ this.onMessageCallback = callback;
170
+ }
171
+
172
+ /**
173
+ * @description Set callback when the socket encounters an error.
174
+ */
175
+ set onError(callback: (event: ErrorEvent) => void) {
176
+ this.onErrorCallback = callback;
177
+ }
178
+
179
+ /**
180
+ * @description Send a subscribe message to the websocket connection.
181
+ *
182
+ */
183
+ subscribe(channel: string, params?: object): void {
184
+ const message = {
185
+ type: OutgoingMessageTypes.SUBSCRIBE,
186
+ channel,
187
+ ...params,
188
+ };
189
+ this.send(JSON.stringify(message));
190
+ }
191
+
192
+ /**
193
+ * @description Send an unsubscribe message to the websocket connection.
194
+ *
195
+ */
196
+ unsubscribe(channel: string, params?: object): void {
197
+ const message = {
198
+ type: OutgoingMessageTypes.UNSUBSCRIBE,
199
+ channel,
200
+ ...params,
201
+ };
202
+ this.send(JSON.stringify(message));
203
+ }
204
+
205
+ /**
206
+ * @description Subscribe to markets channel.
207
+ *
208
+ */
209
+ subscribeToMarkets(): void {
210
+ const channel = SocketChannels.MARKETS;
211
+ const params = {
212
+ batched: true,
213
+ };
214
+ this.subscribe(channel, params);
215
+ }
216
+
217
+ /**
218
+ * @description Unsubscribe from markets channel
219
+ *
220
+ */
221
+ unsubscribeFromMarkets(): void {
222
+ const channel = SocketChannels.MARKETS;
223
+ this.unsubscribe(channel);
224
+ }
225
+
226
+ /**
227
+ * @description Subscribe to trade channel
228
+ * for a specific market.
229
+ *
230
+ */
231
+ subscribeToTrades(market: string): void {
232
+ const channel = SocketChannels.TRADES;
233
+ const params = {
234
+ id: market,
235
+ batched: true,
236
+ };
237
+ this.subscribe(channel, params);
238
+ }
239
+
240
+ /**
241
+ * @description Unscribed from trade channel
242
+ * for a specific market.
243
+ *
244
+ */
245
+ unsubscribeFromTrades(market: string): void {
246
+ const channel = SocketChannels.TRADES;
247
+ const params = {
248
+ id: market,
249
+ };
250
+ this.unsubscribe(channel, params);
251
+ }
252
+
253
+ /**
254
+ * @description Subscribe to orderbook channel
255
+ * for a specific market.
256
+ *
257
+ */
258
+ subscribeToOrderbook(market: string): void {
259
+ const channel = SocketChannels.ORDERBOOK;
260
+ const params = {
261
+ id: market,
262
+ batched: true,
263
+ };
264
+ this.subscribe(channel, params);
265
+ }
266
+
267
+ /**
268
+ * @description Unsubscribe from orderbook channel
269
+ * for a specific market.
270
+ */
271
+ unsubscribeFromOrderbook(market: string): void {
272
+ const channel = SocketChannels.ORDERBOOK;
273
+ const params = {
274
+ id: market,
275
+ };
276
+ this.unsubscribe(channel, params);
277
+ }
278
+
279
+ /**
280
+ * @description Subscribe to candles channel
281
+ * for a specific market and resolution.
282
+ *
283
+ */
284
+ subscribeToCandles(market: string, resolution: CandlesResolution): void {
285
+ const channel = SocketChannels.CANDLES;
286
+ const params = {
287
+ id: `${market}/${resolution}`,
288
+ batched: true,
289
+ };
290
+ this.subscribe(channel, params);
291
+ }
292
+
293
+ /**
294
+ * @description Unsubscribe from candles channel
295
+ * for a specific market and resolution.
296
+ */
297
+ unsubscribeFromCandles(market: string, resolution: CandlesResolution): void {
298
+ const channel = SocketChannels.CANDLES;
299
+ const params = {
300
+ id: `${market}/${resolution}`,
301
+ };
302
+ this.unsubscribe(channel, params);
303
+ }
304
+
305
+ /**
306
+ * @description Subscribe to subaccount channel
307
+ * for a specific address and subaccount number.
308
+ */
309
+ subscribeToSubaccount(address: string, subaccountNumber: number): void {
310
+ const channel = SocketChannels.SUBACCOUNTS;
311
+ const subaccountId = `${address}/${subaccountNumber}`;
312
+ const params = {
313
+ id: subaccountId,
314
+ };
315
+ this.subscribe(channel, params);
316
+ }
317
+
318
+ /**
319
+ * @description Unsubscribe from subaccount channel
320
+ * for a specific address and subaccount number.
321
+ *
322
+ */
323
+ unsubscribeFromSubaccount(address: string, subaccountNumber: number): void {
324
+ const channel = SocketChannels.SUBACCOUNTS;
325
+ const subaccountId = `${address}/${subaccountNumber}`;
326
+ const params = {
327
+ id: subaccountId,
328
+ };
329
+ this.unsubscribe(channel, params);
330
+ }
331
+ }
@@ -0,0 +1,57 @@
1
+ import Long from 'long';
2
+
3
+ import { MAX_SUBACCOUNT_NUMBER } from './constants';
4
+ import LocalWallet from './modules/local-wallet';
5
+
6
+ export class SubaccountInfo {
7
+ readonly address: string;
8
+ readonly subaccountNumber: number;
9
+ readonly signingWallet: LocalWallet;
10
+ readonly authenticators?: Long[];
11
+
12
+ private constructor(
13
+ signingWallet: LocalWallet,
14
+ address: string,
15
+ subaccountNumber: number = 0,
16
+ authenticators?: Long[],
17
+ ) {
18
+ if (subaccountNumber < 0 || subaccountNumber > MAX_SUBACCOUNT_NUMBER) {
19
+ throw new Error(`Subaccount number must be between 0 and ${MAX_SUBACCOUNT_NUMBER}`);
20
+ }
21
+
22
+ this.address = address;
23
+ this.subaccountNumber = subaccountNumber;
24
+ this.signingWallet = signingWallet;
25
+ this.authenticators = authenticators;
26
+ }
27
+
28
+ static forLocalWallet(wallet: LocalWallet, subaccountNumber: number = 0): SubaccountInfo {
29
+ const address = wallet.address;
30
+ if (address === undefined) {
31
+ throw new Error('Address not available from wallet');
32
+ }
33
+ return new SubaccountInfo(wallet, address, subaccountNumber);
34
+ }
35
+
36
+ static forPermissionedWallet(
37
+ signingWallet: LocalWallet,
38
+ accountAddress: string,
39
+ subaccountNumber: number = 0,
40
+ authenticators: Long[],
41
+ ): SubaccountInfo {
42
+ return new SubaccountInfo(signingWallet, accountAddress, subaccountNumber, authenticators);
43
+ }
44
+
45
+ get isPermissionedWallet(): boolean {
46
+ return this.address !== this.signingWallet.address;
47
+ }
48
+
49
+ cloneWithSubaccount(subaccountNumber: number): SubaccountInfo {
50
+ return new SubaccountInfo(
51
+ this.signingWallet,
52
+ this.address,
53
+ subaccountNumber,
54
+ this.authenticators,
55
+ );
56
+ }
57
+ }
@@ -0,0 +1,191 @@
1
+ import { Coin } from '@cosmjs/proto-signing';
2
+ import { Method } from '@cosmjs/tendermint-rpc';
3
+ import {
4
+ Order_ConditionType,
5
+ Order_Side,
6
+ Order_TimeInForce,
7
+ } from '@ritbit/v4-proto/src/codegen/ritbit/clob/order';
8
+ import { PerpetualMarketType } from '@ritbit/v4-proto/src/codegen/ritbit/perpetuals/perpetual';
9
+ import BigNumber from 'bignumber.js';
10
+ import Long from 'long';
11
+
12
+ export type Integer = BigNumber;
13
+
14
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
15
+ export type GenericParams = { [name: string]: any };
16
+
17
+ // TODO: Find a better way.
18
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
19
+ export type Data = any;
20
+
21
+ export type PartialBy<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;
22
+
23
+ // Information for signing a transaction while offline - without sequence.
24
+ export interface PartialTransactionOptions {
25
+ accountNumber: number;
26
+ chainId: string;
27
+ }
28
+
29
+ // Information for signing a transaction while offline.
30
+ export interface TransactionOptions extends PartialTransactionOptions {
31
+ sequence: number;
32
+ authenticators?: Long[];
33
+ }
34
+
35
+ // OrderFlags, just a number in proto, defined as enum for convenience
36
+ export enum OrderFlags {
37
+ SHORT_TERM = 0,
38
+ LONG_TERM = 64,
39
+ CONDITIONAL = 32,
40
+ }
41
+
42
+ // TWAP order parameters
43
+ export interface ITwapParameters {
44
+ duration: number; // Duration in seconds [300, 86400]
45
+ interval: number; // Interval in seconds [30, 3600]
46
+ priceTolerance: number; // Price tolerance in ppm [0, 1_000_000)
47
+ }
48
+
49
+ // Builder code parameters for partner/builder fees
50
+ export interface IBuilderCodeParameters {
51
+ builderAddress: string; // Address to receive the fee
52
+ feePpm: number; // Fee in parts per million
53
+ }
54
+
55
+ export interface IBasicOrder {
56
+ clientId: number;
57
+ orderFlags: OrderFlags;
58
+ clobPairId: number;
59
+ goodTilBlock?: number;
60
+ goodTilBlockTime?: number;
61
+ }
62
+
63
+ export interface IPlaceOrder extends IBasicOrder {
64
+ side: Order_Side;
65
+ quantums: Long;
66
+ subticks: Long;
67
+ timeInForce: Order_TimeInForce;
68
+ reduceOnly: boolean;
69
+ clientMetadata: number;
70
+ conditionType?: Order_ConditionType;
71
+ conditionalOrderTriggerSubticks?: Long;
72
+ twapParameters?: ITwapParameters;
73
+ builderCodeParameters?: IBuilderCodeParameters;
74
+ orderRouterAddress?: string;
75
+ }
76
+
77
+ export interface ICancelOrder extends IBasicOrder {}
78
+
79
+ export interface IBatchCancelOrder {
80
+ shortTermOrders: { clobPairId: number; clientIds: number[] }[];
81
+ goodTilBlock: number;
82
+ }
83
+
84
+ // How long to wait and how often to check when calling Broadcast with
85
+ // Method.BroadcastTxCommit
86
+ export interface BroadcastOptions {
87
+ broadcastPollIntervalMs: number;
88
+ broadcastTimeoutMs: number;
89
+ }
90
+
91
+ export interface DenomConfig {
92
+ USDC_DENOM: string;
93
+ USDC_DECIMALS: number;
94
+ USDC_GAS_DENOM?: string;
95
+
96
+ CHAINTOKEN_DENOM: string;
97
+ CHAINTOKEN_DECIMALS: number;
98
+ CHAINTOKEN_GAS_DENOM?: string;
99
+ }
100
+
101
+ // Specify when a broadcast should return:
102
+ // 1. Immediately
103
+ // 2. Once the transaction is added to the memPool
104
+ // 3. Once the transaction is committed to a block
105
+ // See https://docs.cosmos.network/master/run-node/txs.html for more information
106
+ export type BroadcastMode =
107
+ | Method.BroadcastTxAsync
108
+ | Method.BroadcastTxSync
109
+ | Method.BroadcastTxCommit;
110
+
111
+ // ------ Utility Endpoint Responses ------ //
112
+ export interface TimeResponse {
113
+ iso: string;
114
+ epoch: number;
115
+ }
116
+
117
+ export interface HeightResponse {
118
+ height: number;
119
+ time: string;
120
+ }
121
+
122
+ export interface ComplianceResponse {
123
+ restricted: boolean;
124
+ reason?: string;
125
+ }
126
+
127
+ export enum ComplianceReason {
128
+ MANUAL = 'MANUAL',
129
+ US_GEO = 'US_GEO',
130
+ CA_GEO = 'CA_GEO',
131
+ GB_GEO = 'GB_GEO',
132
+ SANCTIONED_GEO = 'SANCTIONED_GEO',
133
+ COMPLIANCE_PROVIDER = 'COMPLIANCE_PROVIDER',
134
+ }
135
+
136
+ export enum ComplianceStatus {
137
+ COMPLIANT = 'COMPLIANT',
138
+ FIRST_STRIKE_CLOSE_ONLY = 'FIRST_STRIKE_CLOSE_ONLY',
139
+ FIRST_STRIKE = 'FIRST_STRIKE',
140
+ CLOSE_ONLY = 'CLOSE_ONLY',
141
+ BLOCKED = 'BLOCKED',
142
+ }
143
+
144
+ export interface ComplianceV2Response {
145
+ status: ComplianceStatus;
146
+ reason?: ComplianceReason;
147
+ updatedAt?: string;
148
+ }
149
+
150
+ // ------------ Squid ------------ //
151
+ export type SquidIBCPayload = {
152
+ msgTypeUrl: '/ibc.applications.transfer.v1.MsgTransfer';
153
+ msg: Partial<{
154
+ sourcePort: string;
155
+ sourceChannel: string;
156
+ token: Coin;
157
+ sender: string;
158
+ receiver: string;
159
+ timeoutTimestamp: Long;
160
+ memo: string;
161
+ }>;
162
+ };
163
+
164
+ // ------------ x/gov: Add New Market ------------ //
165
+
166
+ export type GovAddNewMarketParams = {
167
+ // common
168
+ id: number;
169
+ ticker: string;
170
+
171
+ // x/prices
172
+ priceExponent: number;
173
+ minPriceChange: number;
174
+ minExchanges: number;
175
+ exchangeConfigJson: string;
176
+
177
+ // x/perpetuals
178
+ liquidityTier: number;
179
+ atomicResolution: number;
180
+ marketType: PerpetualMarketType;
181
+
182
+ // x/clob
183
+ quantumConversionExponent: number;
184
+ stepBaseQuantums: Long;
185
+ subticksPerTick: number;
186
+
187
+ // x/delaymsg
188
+ delayBlocks: number;
189
+ };
190
+
191
+ export * from './modules/proto-includes';