@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,645 @@
1
+ /* eslint-disable comma-dangle */
2
+ /* eslint-disable @typescript-eslint/quotes */
3
+ import { EncodeObject, Registry } from '@cosmjs/proto-signing';
4
+ import { MsgWithdrawDelegatorReward } from 'cosmjs-types/cosmos/distribution/v1beta1/tx';
5
+ import { MsgSubmitProposal } from 'cosmjs-types/cosmos/gov/v1/tx';
6
+ import {
7
+ MsgDelegate,
8
+ MsgUndelegate,
9
+ } from 'cosmjs-types/cosmos/staking/v1beta1/tx';
10
+ import { MsgAddAuthenticator, MsgRemoveAuthenticator } from '@ritbit/v4-proto/src/codegen/ritbit/accountplus/tx';
11
+ import { MsgRegisterAffiliate } from '@ritbit/v4-proto/src/codegen/ritbit/affiliates/tx';
12
+ import { ClobPair_Status } from '@ritbit/v4-proto/src/codegen/ritbit/clob/clob_pair';
13
+ import {
14
+ MsgBatchCancel,
15
+ MsgCreateClobPair,
16
+ MsgUpdateClobPair,
17
+ OrderBatch,
18
+ } from '@ritbit/v4-proto/src/codegen/ritbit/clob/tx';
19
+ import { MsgDelayMessage } from '@ritbit/v4-proto/src/codegen/ritbit/delaymsg/tx';
20
+ import { PerpetualMarketType } from '@ritbit/v4-proto/src/codegen/ritbit/perpetuals/perpetual';
21
+ import { MsgCreatePerpetual } from '@ritbit/v4-proto/src/codegen/ritbit/perpetuals/tx';
22
+ import { MsgCreateOracleMarket } from '@ritbit/v4-proto/src/codegen/ritbit/prices/tx';
23
+ import {
24
+ MsgDepositToMegavault,
25
+ MsgWithdrawFromMegavault,
26
+ } from '@ritbit/v4-proto/src/codegen/ritbit/vault/tx';
27
+ import { MsgSend } from 'cosmjs-types/cosmos/bank/v1beta1/tx';
28
+ import { Coin } from 'cosmjs-types/cosmos/base/v1beta1/coin';
29
+ import { Any } from 'cosmjs-types/google/protobuf/any';
30
+ import Long from 'long';
31
+ import protobuf from 'protobufjs';
32
+
33
+ import {
34
+ GOV_MODULE_ADDRESS,
35
+ DELAYMSG_MODULE_ADDRESS,
36
+ TYPE_URL_MSG_SEND,
37
+ TYPE_URL_MSG_SUBMIT_PROPOSAL,
38
+ TYPE_URL_MSG_PLACE_ORDER,
39
+ TYPE_URL_MSG_CANCEL_ORDER,
40
+ TYPE_URL_MSG_CREATE_CLOB_PAIR,
41
+ TYPE_URL_MSG_UPDATE_CLOB_PAIR,
42
+ TYPE_URL_MSG_DELAY_MESSAGE,
43
+ TYPE_URL_MSG_CREATE_PERPETUAL,
44
+ TYPE_URL_MSG_CREATE_ORACLE_MARKET,
45
+ TYPE_URL_MSG_CREATE_TRANSFER,
46
+ TYPE_URL_MSG_WITHDRAW_FROM_SUBACCOUNT,
47
+ TYPE_URL_MSG_DEPOSIT_TO_SUBACCOUNT,
48
+ TYPE_URL_MSG_DELEGATE,
49
+ TYPE_URL_MSG_UNDELEGATE,
50
+ TYPE_URL_MSG_WITHDRAW_DELEGATOR_REWARD,
51
+ TYPE_URL_BATCH_CANCEL,
52
+ TYPE_URL_MSG_REGISTER_AFFILIATE,
53
+ TYPE_URL_MSG_DEPOSIT_TO_MEGAVAULT,
54
+ TYPE_URL_MSG_WITHDRAW_FROM_MEGAVAULT,
55
+ TYPE_URL_MSG_CREATE_MARKET_PERMISSIONLESS,
56
+ TYPE_URL_MSG_ADD_AUTHENTICATOR,
57
+ TYPE_URL_MSG_REMOVE_AUTHENTICATOR,
58
+ AuthenticatorType,
59
+ } from '../constants';
60
+ import { DenomConfig, ITwapParameters, IBuilderCodeParameters } from '../types';
61
+ import {
62
+ OrderId,
63
+ Order,
64
+ Order_ConditionType,
65
+ Order_Side,
66
+ Order_TimeInForce,
67
+ MsgPlaceOrder,
68
+ MsgCancelOrder,
69
+ SubaccountId,
70
+ MsgCreateMarketPermissionless,
71
+ MsgCreateTransfer,
72
+ Transfer,
73
+ MsgDepositToSubaccount,
74
+ MsgWithdrawFromSubaccount,
75
+ } from './proto-includes';
76
+
77
+ protobuf.util.Long = Long;
78
+ protobuf.configure();
79
+
80
+ export class Composer {
81
+ // ------------ x/clob ------------
82
+ public composeMsgPlaceOrder(
83
+ address: string,
84
+ subaccountNumber: number,
85
+ clientId: number,
86
+ clobPairId: number,
87
+ orderFlags: number,
88
+ goodTilBlock: number,
89
+ goodTilBlockTime: number,
90
+ side: Order_Side,
91
+ quantums: Long,
92
+ subticks: Long,
93
+ timeInForce: Order_TimeInForce,
94
+ reduceOnly: boolean,
95
+ clientMetadata: number,
96
+ conditionType: Order_ConditionType = Order_ConditionType.CONDITION_TYPE_UNSPECIFIED,
97
+ conditionalOrderTriggerSubticks: Long = Long.fromInt(0),
98
+ twapParameters?: ITwapParameters,
99
+ builderCodeParameters?: IBuilderCodeParameters,
100
+ orderRouterAddress: string = "",
101
+ ): EncodeObject {
102
+ this.validateGoodTilBlockAndTime(orderFlags, goodTilBlock, goodTilBlockTime);
103
+
104
+ const subaccountId: SubaccountId = {
105
+ owner: address,
106
+ number: subaccountNumber,
107
+ };
108
+
109
+ const orderId: OrderId = {
110
+ subaccountId,
111
+ clientId,
112
+ orderFlags,
113
+ clobPairId,
114
+ };
115
+
116
+ const order: Order = {
117
+ orderId,
118
+ side,
119
+ quantums,
120
+ subticks,
121
+ goodTilBlock: goodTilBlock === 0 ? undefined : goodTilBlock,
122
+ goodTilBlockTime: goodTilBlock === 0 ? goodTilBlockTime : undefined,
123
+ timeInForce,
124
+ reduceOnly,
125
+ clientMetadata: clientMetadata ?? 0,
126
+ conditionType,
127
+ conditionalOrderTriggerSubticks,
128
+ twapParameters,
129
+ builderCodeParameters,
130
+ orderRouterAddress,
131
+ };
132
+ const msg: MsgPlaceOrder = {
133
+ order,
134
+ };
135
+ return {
136
+ typeUrl: TYPE_URL_MSG_PLACE_ORDER,
137
+ value: msg,
138
+ };
139
+ }
140
+
141
+ public composeMsgCancelOrder(
142
+ address: string,
143
+ subaccountNumber: number,
144
+ clientId: number,
145
+ clobPairId: number,
146
+ orderFlags: number,
147
+ goodTilBlock: number,
148
+ goodTilBlockTime: number,
149
+ ): EncodeObject {
150
+ this.validateGoodTilBlockAndTime(orderFlags, goodTilBlock, goodTilBlockTime);
151
+
152
+ const subaccountId: SubaccountId = {
153
+ owner: address,
154
+ number: subaccountNumber,
155
+ };
156
+
157
+ const orderId: OrderId = {
158
+ subaccountId,
159
+ clientId,
160
+ orderFlags,
161
+ clobPairId,
162
+ };
163
+
164
+ const msg: MsgCancelOrder = {
165
+ orderId,
166
+ goodTilBlock: goodTilBlock === 0 ? undefined : goodTilBlock,
167
+ goodTilBlockTime: goodTilBlock === 0 ? goodTilBlockTime : undefined,
168
+ };
169
+
170
+ return {
171
+ typeUrl: TYPE_URL_MSG_CANCEL_ORDER,
172
+ value: msg,
173
+ };
174
+ }
175
+
176
+ public composeMsgBatchCancelShortTermOrders(
177
+ address: string,
178
+ subaccountNumber: number,
179
+ shortTermCancels: OrderBatch[],
180
+ goodTilBlock: number,
181
+ ): EncodeObject {
182
+ const subaccountId: SubaccountId = {
183
+ owner: address,
184
+ number: subaccountNumber,
185
+ };
186
+
187
+ const msg: MsgBatchCancel = {
188
+ subaccountId,
189
+ shortTermCancels,
190
+ goodTilBlock,
191
+ };
192
+
193
+ return {
194
+ typeUrl: TYPE_URL_BATCH_CANCEL,
195
+ value: msg,
196
+ };
197
+ }
198
+
199
+ public composeMsgCreateClobPair(
200
+ clobId: number,
201
+ perpetualId: number,
202
+ quantumConversionExponent: number,
203
+ stepBaseQuantums: Long,
204
+ subticksPerTick: number,
205
+ ): EncodeObject {
206
+ const msg: MsgCreateClobPair = {
207
+ // uses x/gov module account since creating the clob pair is a governance action.
208
+ authority: GOV_MODULE_ADDRESS,
209
+ clobPair: {
210
+ id: clobId,
211
+ perpetualClobMetadata: {
212
+ perpetualId,
213
+ },
214
+ quantumConversionExponent,
215
+ stepBaseQuantums,
216
+ subticksPerTick,
217
+ status: ClobPair_Status.STATUS_INITIALIZING,
218
+ },
219
+ };
220
+
221
+ return {
222
+ typeUrl: TYPE_URL_MSG_CREATE_CLOB_PAIR,
223
+ value: msg,
224
+ };
225
+ }
226
+
227
+ public composeMsgUpdateClobPair(
228
+ clobId: number,
229
+ perpetualId: number,
230
+ quantumConversionExponent: number,
231
+ stepBaseQuantums: Long,
232
+ subticksPerTick: number,
233
+ ): EncodeObject {
234
+ const msg: MsgUpdateClobPair = {
235
+ // uses x/delaymsg module account since updating the clob pair is a delayedmsg action.
236
+ authority: DELAYMSG_MODULE_ADDRESS,
237
+ clobPair: {
238
+ id: clobId,
239
+ perpetualClobMetadata: {
240
+ perpetualId,
241
+ },
242
+ quantumConversionExponent,
243
+ stepBaseQuantums,
244
+ subticksPerTick,
245
+ status: ClobPair_Status.STATUS_ACTIVE,
246
+ },
247
+ };
248
+
249
+ return {
250
+ typeUrl: TYPE_URL_MSG_UPDATE_CLOB_PAIR,
251
+ value: msg,
252
+ };
253
+ }
254
+
255
+ // ------------ x/sending ------------
256
+ public composeMsgTransfer(
257
+ address: string,
258
+ subaccountNumber: number,
259
+ recipientAddress: string,
260
+ recipientSubaccountNumber: number,
261
+ assetId: number,
262
+ amount: Long,
263
+ ): EncodeObject {
264
+ const sender: SubaccountId = {
265
+ owner: address,
266
+ number: subaccountNumber,
267
+ };
268
+ const recipient: SubaccountId = {
269
+ owner: recipientAddress,
270
+ number: recipientSubaccountNumber,
271
+ };
272
+
273
+ const transfer: Transfer = {
274
+ sender,
275
+ recipient,
276
+ assetId,
277
+ amount,
278
+ };
279
+
280
+ const msg: MsgCreateTransfer = {
281
+ transfer,
282
+ };
283
+
284
+ return {
285
+ typeUrl: TYPE_URL_MSG_CREATE_TRANSFER,
286
+ value: msg,
287
+ };
288
+ }
289
+
290
+ public composeMsgDepositToSubaccount(
291
+ address: string,
292
+ subaccountNumber: number,
293
+ assetId: number,
294
+ quantums: Long,
295
+ ): EncodeObject {
296
+ const recipient: SubaccountId = {
297
+ owner: address,
298
+ number: subaccountNumber,
299
+ };
300
+
301
+ const msg: MsgDepositToSubaccount = {
302
+ sender: address,
303
+ recipient,
304
+ assetId,
305
+ quantums,
306
+ };
307
+
308
+ return {
309
+ typeUrl: TYPE_URL_MSG_DEPOSIT_TO_SUBACCOUNT,
310
+ value: msg,
311
+ };
312
+ }
313
+
314
+ public composeMsgWithdrawFromSubaccount(
315
+ address: string,
316
+ subaccountNumber: number,
317
+ assetId: number,
318
+ quantums: Long,
319
+ recipient: string = address,
320
+ ): EncodeObject {
321
+ const sender: SubaccountId = {
322
+ owner: address,
323
+ number: subaccountNumber,
324
+ };
325
+
326
+ const msg: MsgWithdrawFromSubaccount = {
327
+ sender,
328
+ recipient,
329
+ assetId,
330
+ quantums,
331
+ };
332
+
333
+ return {
334
+ typeUrl: TYPE_URL_MSG_WITHDRAW_FROM_SUBACCOUNT,
335
+ value: msg,
336
+ };
337
+ }
338
+
339
+ // ------------ x/bank ------------
340
+ public composeMsgSendToken(
341
+ address: string,
342
+ recipient: string,
343
+ coinDenom: string,
344
+ quantums: string,
345
+ ): EncodeObject {
346
+ const coin: Coin = {
347
+ denom: coinDenom,
348
+ amount: quantums,
349
+ };
350
+
351
+ const msg: MsgSend = {
352
+ fromAddress: address,
353
+ toAddress: recipient,
354
+ amount: [coin],
355
+ };
356
+
357
+ return {
358
+ typeUrl: TYPE_URL_MSG_SEND,
359
+ value: msg,
360
+ };
361
+ }
362
+
363
+ // ------------ x/prices ------------
364
+ public composeMsgCreateOracleMarket(
365
+ marketId: number,
366
+ pair: string,
367
+ exponent: number,
368
+ minExchanges: number,
369
+ minPriceChangePpm: number,
370
+ exchangeConfigJson: string,
371
+ ): EncodeObject {
372
+ const msg: MsgCreateOracleMarket = {
373
+ // uses x/gov module account since creating the oracle market is a governance action.
374
+ authority: GOV_MODULE_ADDRESS,
375
+ params: {
376
+ id: marketId,
377
+ pair,
378
+ exponent,
379
+ minExchanges,
380
+ minPriceChangePpm,
381
+ exchangeConfigJson,
382
+ },
383
+ };
384
+
385
+ return {
386
+ typeUrl: TYPE_URL_MSG_CREATE_ORACLE_MARKET,
387
+ value: msg,
388
+ };
389
+ }
390
+
391
+ // ------------ x/perpetuals ------------
392
+ public composeMsgCreatePerpetual(
393
+ perpetualId: number,
394
+ marketId: number,
395
+ ticker: string,
396
+ atomicResolution: number,
397
+ liquidityTier: number,
398
+ marketType: PerpetualMarketType,
399
+ ): EncodeObject {
400
+ const msg: MsgCreatePerpetual = {
401
+ // uses x/gov module account since creating the perpetual is a governance action.
402
+ authority: GOV_MODULE_ADDRESS,
403
+ params: {
404
+ id: perpetualId,
405
+ marketId,
406
+ ticker,
407
+ atomicResolution,
408
+ defaultFundingPpm: 0, // default funding should be 0 to start.
409
+ liquidityTier,
410
+ marketType,
411
+ },
412
+ };
413
+
414
+ return {
415
+ typeUrl: TYPE_URL_MSG_CREATE_PERPETUAL,
416
+ value: msg,
417
+ };
418
+ }
419
+
420
+ // ------------ x/delaymsg ------------
421
+ public composeMsgDelayMessage(embeddedMsg: EncodeObject, delayBlocks: number): EncodeObject {
422
+ const msg: MsgDelayMessage = {
423
+ // all msgs sent to x/delay must be from x/gov module account.
424
+ authority: GOV_MODULE_ADDRESS,
425
+ msg: embeddedMsg,
426
+ delayBlocks,
427
+ };
428
+
429
+ return {
430
+ typeUrl: TYPE_URL_MSG_DELAY_MESSAGE,
431
+ value: msg,
432
+ };
433
+ }
434
+
435
+ // ------------ x/gov ------------
436
+ public composeMsgSubmitProposal(
437
+ title: string,
438
+ initialDepositAmount: string,
439
+ initialDepositDenomConfig: DenomConfig,
440
+ summary: string,
441
+ messages: EncodeObject[],
442
+ proposer: string,
443
+ metadata: string = '',
444
+ expedited: boolean = false,
445
+ ): EncodeObject {
446
+ const initialDeposit: Coin[] = [
447
+ {
448
+ amount: initialDepositAmount,
449
+ denom: initialDepositDenomConfig.CHAINTOKEN_DENOM,
450
+ },
451
+ ];
452
+
453
+ const msg: MsgSubmitProposal = {
454
+ title,
455
+ initialDeposit,
456
+ summary,
457
+ messages,
458
+ proposer,
459
+ metadata,
460
+ };
461
+
462
+ return {
463
+ typeUrl: TYPE_URL_MSG_SUBMIT_PROPOSAL,
464
+ value: msg,
465
+ };
466
+ }
467
+
468
+ // ------------ x/vault ------------
469
+ public composeMsgDepositToMegavault(
470
+ address: string,
471
+ subaccountNumber: number,
472
+ quoteQuantums: Uint8Array,
473
+ ): EncodeObject {
474
+ const subaccountId: SubaccountId = {
475
+ owner: address,
476
+ number: subaccountNumber,
477
+ };
478
+
479
+ const msg: MsgDepositToMegavault = {
480
+ quoteQuantums,
481
+ subaccountId,
482
+ };
483
+
484
+ return {
485
+ typeUrl: TYPE_URL_MSG_DEPOSIT_TO_MEGAVAULT,
486
+ value: msg,
487
+ };
488
+ }
489
+
490
+ public composeMsgWithdrawFromMegavault(
491
+ address: string,
492
+ subaccountNumber: number,
493
+ shares: Uint8Array,
494
+ minQuoteQuantums: Uint8Array,
495
+ ): EncodeObject {
496
+ const subaccountId: SubaccountId = {
497
+ owner: address,
498
+ number: subaccountNumber,
499
+ };
500
+
501
+ const msg: MsgWithdrawFromMegavault = {
502
+ minQuoteQuantums,
503
+ shares: { numShares: shares },
504
+ subaccountId,
505
+ };
506
+
507
+ return {
508
+ typeUrl: TYPE_URL_MSG_WITHDRAW_FROM_MEGAVAULT,
509
+ value: msg,
510
+ };
511
+ }
512
+
513
+ // ------------ x/staking ------------
514
+ public composeMsgDelegate(delegator: string, validator: string, amount: Coin): EncodeObject {
515
+ const msg: MsgDelegate = {
516
+ delegatorAddress: delegator,
517
+ validatorAddress: validator,
518
+ amount,
519
+ };
520
+
521
+ return {
522
+ typeUrl: TYPE_URL_MSG_DELEGATE,
523
+ value: msg,
524
+ };
525
+ }
526
+
527
+ public composeMsgUndelegate(delegator: string, validator: string, amount: Coin): EncodeObject {
528
+ const msg: MsgUndelegate = {
529
+ delegatorAddress: delegator,
530
+ validatorAddress: validator,
531
+ amount,
532
+ };
533
+
534
+ return {
535
+ typeUrl: TYPE_URL_MSG_UNDELEGATE,
536
+ value: msg,
537
+ };
538
+ }
539
+
540
+ // ------------ x/distribution ------------
541
+ public composeMsgWithdrawDelegatorReward(delegator: string, validator: string): EncodeObject {
542
+ const msg: MsgWithdrawDelegatorReward = {
543
+ delegatorAddress: delegator,
544
+ validatorAddress: validator,
545
+ };
546
+
547
+ return {
548
+ typeUrl: TYPE_URL_MSG_WITHDRAW_DELEGATOR_REWARD,
549
+ value: msg,
550
+ };
551
+ }
552
+
553
+ // ------------ x/affiliates ------------
554
+ public composeMsgRegisterAffiliate(referee: string, affiliate: string): EncodeObject {
555
+ const msg: MsgRegisterAffiliate = {
556
+ referee,
557
+ affiliate,
558
+ };
559
+
560
+ return {
561
+ typeUrl: TYPE_URL_MSG_REGISTER_AFFILIATE,
562
+ value: msg,
563
+ };
564
+ }
565
+
566
+ // ------------ x/listing ------------
567
+ public composeMsgCreateMarketPermissionless(
568
+ address: string,
569
+ ticker: string,
570
+ subaccountNumber: number,
571
+ ): EncodeObject {
572
+ const subaccountId: SubaccountId = {
573
+ owner: address,
574
+ number: subaccountNumber,
575
+ };
576
+
577
+ const msg: MsgCreateMarketPermissionless = {
578
+ ticker,
579
+ subaccountId
580
+ };
581
+
582
+ return {
583
+ typeUrl: TYPE_URL_MSG_CREATE_MARKET_PERMISSIONLESS,
584
+ value: msg,
585
+ }
586
+ }
587
+
588
+ // ----------- x/accountplus --------
589
+
590
+ public composeMsgAddAuthenticator(
591
+ address: string,
592
+ authenticatorType: AuthenticatorType,
593
+ data: Uint8Array,
594
+ ): EncodeObject {
595
+ const msg: MsgAddAuthenticator = {
596
+ sender: address,
597
+ authenticatorType,
598
+ data,
599
+ }
600
+
601
+ return {
602
+ typeUrl: TYPE_URL_MSG_ADD_AUTHENTICATOR,
603
+ value: msg,
604
+ }
605
+ }
606
+
607
+ public composeMsgRemoveAuthenticator(
608
+ address: string,
609
+ id: Long,
610
+ ): EncodeObject {
611
+ const msg: MsgRemoveAuthenticator = {
612
+ sender: address,
613
+ id,
614
+ }
615
+
616
+ return {
617
+ typeUrl: TYPE_URL_MSG_REMOVE_AUTHENTICATOR,
618
+ value: msg,
619
+ }
620
+ }
621
+
622
+ // ------------ util ------------
623
+ public validateGoodTilBlockAndTime(
624
+ orderFlags: number,
625
+ goodTilBlock: number,
626
+ goodTilBlockTime: number,
627
+ ): void {
628
+ if (orderFlags === 0 && goodTilBlock === 0) {
629
+ throw new Error('goodTilBlock must be set if orderFlags is 0');
630
+ } else if (orderFlags !== 0 && goodTilBlockTime === 0) {
631
+ throw new Error('goodTilBlockTime must be set if orderFlags is not 0');
632
+ }
633
+ }
634
+
635
+ public wrapMessageAsAny(registry: Registry, message: EncodeObject): Any {
636
+ return registry.encodeAsAny(message);
637
+ }
638
+
639
+ public wrapMessageArrAsAny(registry: Registry, messages: EncodeObject[]): Any[] {
640
+ const encodedMessages: Any[] = messages.map((message: EncodeObject) =>
641
+ this.wrapMessageAsAny(registry, message),
642
+ );
643
+ return encodedMessages;
644
+ }
645
+ }