@h2protocol/v4-client-js 1.3.17-h2.1

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 (456) 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 +235529 -0
  14. package/__tests__/clients/composite-client.test.ts +140 -0
  15. package/__tests__/helpers/baseClients.ts +23 -0
  16. package/__tests__/helpers/constants.ts +130 -0
  17. package/__tests__/lib/helpers.test.ts +53 -0
  18. package/__tests__/lib/util.test.ts +77 -0
  19. package/__tests__/lib/validation.test.ts +289 -0
  20. package/__tests__/modules/client/AccountEndpoints.test.ts +236 -0
  21. package/__tests__/modules/client/FaucetEndpoint.test.ts +14 -0
  22. package/__tests__/modules/client/MarketsEndpoints.test.ts +84 -0
  23. package/__tests__/modules/client/Transfers.test.ts +44 -0
  24. package/__tests__/modules/client/UtilityEndpoints.test.ts +29 -0
  25. package/__tests__/modules/client/ValidatorGetEndpoints.test.ts +50 -0
  26. package/__tests__/modules/client/ValidatorPostEndpoints.test.ts +52 -0
  27. package/__tests__/modules/client/constants.ts +5 -0
  28. package/__tests__/modules/onboarding.test.ts +66 -0
  29. package/build/cjs/__tests__/clients/composite-client.test.js +130 -0
  30. package/build/cjs/__tests__/helpers/baseClients.js +29 -0
  31. package/build/cjs/__tests__/helpers/constants.js +110 -0
  32. package/build/cjs/__tests__/lib/helpers.test.js +45 -0
  33. package/build/cjs/__tests__/lib/util.test.js +67 -0
  34. package/build/cjs/__tests__/lib/validation.test.js +254 -0
  35. package/build/cjs/__tests__/modules/client/AccountEndpoints.test.js +171 -0
  36. package/build/cjs/__tests__/modules/client/FaucetEndpoint.test.js +15 -0
  37. package/build/cjs/__tests__/modules/client/MarketsEndpoints.test.js +69 -0
  38. package/build/cjs/__tests__/modules/client/Transfers.test.js +44 -0
  39. package/build/cjs/__tests__/modules/client/UtilityEndpoints.test.js +28 -0
  40. package/build/cjs/__tests__/modules/client/ValidatorGetEndpoints.test.js +46 -0
  41. package/build/cjs/__tests__/modules/client/ValidatorPostEndpoints.test.js +53 -0
  42. package/build/cjs/__tests__/modules/client/constants.js +7 -0
  43. package/build/cjs/__tests__/modules/onboarding.test.js +50 -0
  44. package/build/cjs/examples/account_endpoints.js +129 -0
  45. package/build/cjs/examples/batch_cancel_orders_example.js +93 -0
  46. package/build/cjs/examples/composite_example.js +50 -0
  47. package/build/cjs/examples/constants.js +35 -0
  48. package/build/cjs/examples/faucet_endpoint.js +23 -0
  49. package/build/cjs/examples/gov_add_new_market.js +77 -0
  50. package/build/cjs/examples/human_readable_orders.json +86 -0
  51. package/build/cjs/examples/human_readable_short_term_orders.json +42 -0
  52. package/build/cjs/examples/json-encoding.js +32 -0
  53. package/build/cjs/examples/long_term_order_cancel_example.js +63 -0
  54. package/build/cjs/examples/markets_endpoints.js +134 -0
  55. package/build/cjs/examples/native_examples.js +112 -0
  56. package/build/cjs/examples/noble_example.js +88 -0
  57. package/build/cjs/examples/optimal_node.js +70 -0
  58. package/build/cjs/examples/permissioned_keys_example.js +104 -0
  59. package/build/cjs/examples/raw_orders.json +130 -0
  60. package/build/cjs/examples/short_term_order_cancel_example.js +54 -0
  61. package/build/cjs/examples/short_term_order_composite_example.js +68 -0
  62. package/build/cjs/examples/test.js +50 -0
  63. package/build/cjs/examples/transfer_example_deposit.js +29 -0
  64. package/build/cjs/examples/transfer_example_send.js +42 -0
  65. package/build/cjs/examples/transfer_example_subaccount_transfer.js +29 -0
  66. package/build/cjs/examples/transfer_example_withdraw.js +30 -0
  67. package/build/cjs/examples/transfer_example_withdraw_other.js +42 -0
  68. package/build/cjs/examples/utility_endpoints.js +42 -0
  69. package/build/cjs/examples/validator_get_example.js +158 -0
  70. package/build/cjs/examples/validator_post_example.js +76 -0
  71. package/build/cjs/examples/wallet_address.js +22 -0
  72. package/build/cjs/examples/websocket_example.js +36 -0
  73. package/build/cjs/examples/websocket_orderbook_example.js +196 -0
  74. package/build/cjs/package.json +1 -0
  75. package/build/cjs/src/clients/composite-client.js +788 -0
  76. package/build/cjs/src/clients/constants.js +303 -0
  77. package/build/cjs/src/clients/faucet-client.js +36 -0
  78. package/build/cjs/src/clients/helpers/chain-helpers.js +178 -0
  79. package/build/cjs/src/clients/helpers/request-helpers.js +65 -0
  80. package/build/cjs/src/clients/indexer-client.js +56 -0
  81. package/build/cjs/src/clients/lib/axios/axiosRequest.js +34 -0
  82. package/build/cjs/src/clients/lib/axios/errors.js +28 -0
  83. package/build/cjs/src/clients/lib/axios/index.js +23 -0
  84. package/build/cjs/src/clients/lib/axios/types.js +11 -0
  85. package/build/cjs/src/clients/lib/cctpProto.js +3242 -0
  86. package/build/cjs/src/clients/lib/errors.js +58 -0
  87. package/build/cjs/src/clients/lib/registry.js +51 -0
  88. package/build/cjs/src/clients/modules/account.js +223 -0
  89. package/build/cjs/src/clients/modules/composer.js +405 -0
  90. package/build/cjs/src/clients/modules/get.js +403 -0
  91. package/build/cjs/src/clients/modules/local-wallet.js +59 -0
  92. package/build/cjs/src/clients/modules/markets.js +54 -0
  93. package/build/cjs/src/clients/modules/post.js +391 -0
  94. package/build/cjs/src/clients/modules/proto-includes.js +69 -0
  95. package/build/cjs/src/clients/modules/rest.js +33 -0
  96. package/build/cjs/src/clients/modules/signer.js +93 -0
  97. package/build/cjs/src/clients/modules/tendermintClient.js +137 -0
  98. package/build/cjs/src/clients/modules/utility.js +44 -0
  99. package/build/cjs/src/clients/modules/vault.js +25 -0
  100. package/build/cjs/src/clients/native.js +1280 -0
  101. package/build/cjs/src/clients/noble-client.js +75 -0
  102. package/build/cjs/src/clients/socket-client.js +301 -0
  103. package/build/cjs/src/clients/subaccount.js +33 -0
  104. package/build/cjs/src/clients/types.js +43 -0
  105. package/build/cjs/src/clients/validator-client.js +81 -0
  106. package/build/cjs/src/index.js +73 -0
  107. package/build/cjs/src/lib/constants.js +23 -0
  108. package/build/cjs/src/lib/errors.js +37 -0
  109. package/build/cjs/src/lib/helpers.js +98 -0
  110. package/build/cjs/src/lib/onboarding.js +75 -0
  111. package/build/cjs/src/lib/trading-key-utils.js +108 -0
  112. package/build/cjs/src/lib/utils.js +79 -0
  113. package/build/cjs/src/lib/validation.js +150 -0
  114. package/build/cjs/src/network_optimizer.js +96 -0
  115. package/build/cjs/src/types.js +25 -0
  116. package/build/cjs/tsconfig.cjs.tsbuildinfo +1 -0
  117. package/build/esm/__tests__/clients/composite-client.test.d.ts +2 -0
  118. package/build/esm/__tests__/clients/composite-client.test.d.ts.map +1 -0
  119. package/build/esm/__tests__/clients/composite-client.test.js +128 -0
  120. package/build/esm/__tests__/helpers/baseClients.d.ts +19 -0
  121. package/build/esm/__tests__/helpers/baseClients.d.ts.map +1 -0
  122. package/build/esm/__tests__/helpers/baseClients.js +22 -0
  123. package/build/esm/__tests__/helpers/constants.d.ts +19 -0
  124. package/build/esm/__tests__/helpers/constants.d.ts.map +1 -0
  125. package/build/esm/__tests__/helpers/constants.js +104 -0
  126. package/build/esm/__tests__/lib/helpers.test.d.ts +2 -0
  127. package/build/esm/__tests__/lib/helpers.test.d.ts.map +1 -0
  128. package/build/esm/__tests__/lib/helpers.test.js +40 -0
  129. package/build/esm/__tests__/lib/util.test.d.ts +2 -0
  130. package/build/esm/__tests__/lib/util.test.d.ts.map +1 -0
  131. package/build/esm/__tests__/lib/util.test.js +65 -0
  132. package/build/esm/__tests__/lib/validation.test.d.ts +2 -0
  133. package/build/esm/__tests__/lib/validation.test.d.ts.map +1 -0
  134. package/build/esm/__tests__/lib/validation.test.js +249 -0
  135. package/build/esm/__tests__/modules/client/AccountEndpoints.test.d.ts +2 -0
  136. package/build/esm/__tests__/modules/client/AccountEndpoints.test.d.ts.map +1 -0
  137. package/build/esm/__tests__/modules/client/AccountEndpoints.test.js +169 -0
  138. package/build/esm/__tests__/modules/client/FaucetEndpoint.test.d.ts +2 -0
  139. package/build/esm/__tests__/modules/client/FaucetEndpoint.test.d.ts.map +1 -0
  140. package/build/esm/__tests__/modules/client/FaucetEndpoint.test.js +13 -0
  141. package/build/esm/__tests__/modules/client/MarketsEndpoints.test.d.ts +2 -0
  142. package/build/esm/__tests__/modules/client/MarketsEndpoints.test.d.ts.map +1 -0
  143. package/build/esm/__tests__/modules/client/MarketsEndpoints.test.js +66 -0
  144. package/build/esm/__tests__/modules/client/Transfers.test.d.ts +2 -0
  145. package/build/esm/__tests__/modules/client/Transfers.test.d.ts.map +1 -0
  146. package/build/esm/__tests__/modules/client/Transfers.test.js +39 -0
  147. package/build/esm/__tests__/modules/client/UtilityEndpoints.test.d.ts +2 -0
  148. package/build/esm/__tests__/modules/client/UtilityEndpoints.test.d.ts.map +1 -0
  149. package/build/esm/__tests__/modules/client/UtilityEndpoints.test.js +26 -0
  150. package/build/esm/__tests__/modules/client/ValidatorGetEndpoints.test.d.ts +2 -0
  151. package/build/esm/__tests__/modules/client/ValidatorGetEndpoints.test.d.ts.map +1 -0
  152. package/build/esm/__tests__/modules/client/ValidatorGetEndpoints.test.js +44 -0
  153. package/build/esm/__tests__/modules/client/ValidatorPostEndpoints.test.d.ts +2 -0
  154. package/build/esm/__tests__/modules/client/ValidatorPostEndpoints.test.d.ts.map +1 -0
  155. package/build/esm/__tests__/modules/client/ValidatorPostEndpoints.test.js +48 -0
  156. package/build/esm/__tests__/modules/client/constants.d.ts +4 -0
  157. package/build/esm/__tests__/modules/client/constants.d.ts.map +1 -0
  158. package/build/esm/__tests__/modules/client/constants.js +4 -0
  159. package/build/esm/__tests__/modules/onboarding.test.d.ts +2 -0
  160. package/build/esm/__tests__/modules/onboarding.test.d.ts.map +1 -0
  161. package/build/esm/__tests__/modules/onboarding.test.js +48 -0
  162. package/build/esm/examples/account_endpoints.d.ts +5 -0
  163. package/build/esm/examples/account_endpoints.d.ts.map +1 -0
  164. package/build/esm/examples/account_endpoints.js +127 -0
  165. package/build/esm/examples/batch_cancel_orders_example.d.ts +2 -0
  166. package/build/esm/examples/batch_cancel_orders_example.d.ts.map +1 -0
  167. package/build/esm/examples/batch_cancel_orders_example.js +88 -0
  168. package/build/esm/examples/composite_example.d.ts +2 -0
  169. package/build/esm/examples/composite_example.d.ts.map +1 -0
  170. package/build/esm/examples/composite_example.js +45 -0
  171. package/build/esm/examples/constants.d.ts +13 -0
  172. package/build/esm/examples/constants.d.ts.map +1 -0
  173. package/build/esm/examples/constants.js +29 -0
  174. package/build/esm/examples/faucet_endpoint.d.ts +5 -0
  175. package/build/esm/examples/faucet_endpoint.d.ts.map +1 -0
  176. package/build/esm/examples/faucet_endpoint.js +21 -0
  177. package/build/esm/examples/gov_add_new_market.d.ts +2 -0
  178. package/build/esm/examples/gov_add_new_market.d.ts.map +1 -0
  179. package/build/esm/examples/gov_add_new_market.js +72 -0
  180. package/build/esm/examples/human_readable_orders.json +86 -0
  181. package/build/esm/examples/human_readable_short_term_orders.json +42 -0
  182. package/build/esm/examples/json-encoding.d.ts +2 -0
  183. package/build/esm/examples/json-encoding.d.ts.map +1 -0
  184. package/build/esm/examples/json-encoding.js +27 -0
  185. package/build/esm/examples/long_term_order_cancel_example.d.ts +2 -0
  186. package/build/esm/examples/long_term_order_cancel_example.d.ts.map +1 -0
  187. package/build/esm/examples/long_term_order_cancel_example.js +58 -0
  188. package/build/esm/examples/markets_endpoints.d.ts +5 -0
  189. package/build/esm/examples/markets_endpoints.d.ts.map +1 -0
  190. package/build/esm/examples/markets_endpoints.js +131 -0
  191. package/build/esm/examples/native_examples.d.ts +2 -0
  192. package/build/esm/examples/native_examples.d.ts.map +1 -0
  193. package/build/esm/examples/native_examples.js +110 -0
  194. package/build/esm/examples/noble_example.d.ts +2 -0
  195. package/build/esm/examples/noble_example.d.ts.map +1 -0
  196. package/build/esm/examples/noble_example.js +83 -0
  197. package/build/esm/examples/optimal_node.d.ts +2 -0
  198. package/build/esm/examples/optimal_node.d.ts.map +1 -0
  199. package/build/esm/examples/optimal_node.js +68 -0
  200. package/build/esm/examples/permissioned_keys_example.d.ts +2 -0
  201. package/build/esm/examples/permissioned_keys_example.d.ts.map +1 -0
  202. package/build/esm/examples/permissioned_keys_example.js +99 -0
  203. package/build/esm/examples/raw_orders.json +130 -0
  204. package/build/esm/examples/short_term_order_cancel_example.d.ts +2 -0
  205. package/build/esm/examples/short_term_order_cancel_example.d.ts.map +1 -0
  206. package/build/esm/examples/short_term_order_cancel_example.js +49 -0
  207. package/build/esm/examples/short_term_order_composite_example.d.ts +2 -0
  208. package/build/esm/examples/short_term_order_composite_example.d.ts.map +1 -0
  209. package/build/esm/examples/short_term_order_composite_example.js +63 -0
  210. package/build/esm/examples/test.d.ts +2 -0
  211. package/build/esm/examples/test.d.ts.map +1 -0
  212. package/build/esm/examples/test.js +45 -0
  213. package/build/esm/examples/transfer_example_deposit.d.ts +2 -0
  214. package/build/esm/examples/transfer_example_deposit.d.ts.map +1 -0
  215. package/build/esm/examples/transfer_example_deposit.js +24 -0
  216. package/build/esm/examples/transfer_example_send.d.ts +2 -0
  217. package/build/esm/examples/transfer_example_send.d.ts.map +1 -0
  218. package/build/esm/examples/transfer_example_send.js +37 -0
  219. package/build/esm/examples/transfer_example_subaccount_transfer.d.ts +2 -0
  220. package/build/esm/examples/transfer_example_subaccount_transfer.d.ts.map +1 -0
  221. package/build/esm/examples/transfer_example_subaccount_transfer.js +24 -0
  222. package/build/esm/examples/transfer_example_withdraw.d.ts +2 -0
  223. package/build/esm/examples/transfer_example_withdraw.d.ts.map +1 -0
  224. package/build/esm/examples/transfer_example_withdraw.js +25 -0
  225. package/build/esm/examples/transfer_example_withdraw_other.d.ts +2 -0
  226. package/build/esm/examples/transfer_example_withdraw_other.d.ts.map +1 -0
  227. package/build/esm/examples/transfer_example_withdraw_other.js +37 -0
  228. package/build/esm/examples/utility_endpoints.d.ts +5 -0
  229. package/build/esm/examples/utility_endpoints.d.ts.map +1 -0
  230. package/build/esm/examples/utility_endpoints.js +40 -0
  231. package/build/esm/examples/validator_get_example.d.ts +2 -0
  232. package/build/esm/examples/validator_get_example.d.ts.map +1 -0
  233. package/build/esm/examples/validator_get_example.js +156 -0
  234. package/build/esm/examples/validator_post_example.d.ts +2 -0
  235. package/build/esm/examples/validator_post_example.d.ts.map +1 -0
  236. package/build/esm/examples/validator_post_example.js +71 -0
  237. package/build/esm/examples/wallet_address.d.ts +2 -0
  238. package/build/esm/examples/wallet_address.d.ts.map +1 -0
  239. package/build/esm/examples/wallet_address.js +17 -0
  240. package/build/esm/examples/websocket_example.d.ts +2 -0
  241. package/build/esm/examples/websocket_example.d.ts.map +1 -0
  242. package/build/esm/examples/websocket_example.js +34 -0
  243. package/build/esm/examples/websocket_orderbook_example.d.ts +2 -0
  244. package/build/esm/examples/websocket_orderbook_example.d.ts.map +1 -0
  245. package/build/esm/examples/websocket_orderbook_example.js +194 -0
  246. package/build/esm/src/clients/composite-client.d.ts +403 -0
  247. package/build/esm/src/clients/composite-client.d.ts.map +1 -0
  248. package/build/esm/src/clients/composite-client.js +781 -0
  249. package/build/esm/src/clients/constants.d.ts +172 -0
  250. package/build/esm/src/clients/constants.d.ts.map +1 -0
  251. package/build/esm/src/clients/constants.js +279 -0
  252. package/build/esm/src/clients/faucet-client.d.ts +18 -0
  253. package/build/esm/src/clients/faucet-client.d.ts.map +1 -0
  254. package/build/esm/src/clients/faucet-client.js +29 -0
  255. package/build/esm/src/clients/helpers/chain-helpers.d.ts +15 -0
  256. package/build/esm/src/clients/helpers/chain-helpers.d.ts.map +1 -0
  257. package/build/esm/src/clients/helpers/chain-helpers.js +163 -0
  258. package/build/esm/src/clients/helpers/request-helpers.d.ts +3 -0
  259. package/build/esm/src/clients/helpers/request-helpers.d.ts.map +1 -0
  260. package/build/esm/src/clients/helpers/request-helpers.js +58 -0
  261. package/build/esm/src/clients/indexer-client.d.ts +40 -0
  262. package/build/esm/src/clients/indexer-client.d.ts.map +1 -0
  263. package/build/esm/src/clients/indexer-client.js +49 -0
  264. package/build/esm/src/clients/lib/axios/axiosRequest.d.ts +9 -0
  265. package/build/esm/src/clients/lib/axios/axiosRequest.d.ts.map +1 -0
  266. package/build/esm/src/clients/lib/axios/axiosRequest.js +28 -0
  267. package/build/esm/src/clients/lib/axios/errors.d.ts +31 -0
  268. package/build/esm/src/clients/lib/axios/errors.d.ts.map +1 -0
  269. package/build/esm/src/clients/lib/axios/errors.js +23 -0
  270. package/build/esm/src/clients/lib/axios/index.d.ts +7 -0
  271. package/build/esm/src/clients/lib/axios/index.d.ts.map +1 -0
  272. package/build/esm/src/clients/lib/axios/index.js +7 -0
  273. package/build/esm/src/clients/lib/axios/types.d.ts +7 -0
  274. package/build/esm/src/clients/lib/axios/types.d.ts.map +1 -0
  275. package/build/esm/src/clients/lib/axios/types.js +8 -0
  276. package/build/esm/src/clients/lib/cctpProto.d.ts +670 -0
  277. package/build/esm/src/clients/lib/cctpProto.d.ts.map +1 -0
  278. package/build/esm/src/clients/lib/cctpProto.js +3234 -0
  279. package/build/esm/src/clients/lib/errors.d.ts +36 -0
  280. package/build/esm/src/clients/lib/errors.d.ts.map +1 -0
  281. package/build/esm/src/clients/lib/errors.js +50 -0
  282. package/build/esm/src/clients/lib/registry.d.ts +4 -0
  283. package/build/esm/src/clients/lib/registry.d.ts.map +1 -0
  284. package/build/esm/src/clients/lib/registry.js +47 -0
  285. package/build/esm/src/clients/modules/account.d.ts +30 -0
  286. package/build/esm/src/clients/modules/account.d.ts.map +1 -0
  287. package/build/esm/src/clients/modules/account.js +217 -0
  288. package/build/esm/src/clients/modules/composer.d.ts +37 -0
  289. package/build/esm/src/clients/modules/composer.d.ts.map +1 -0
  290. package/build/esm/src/clients/modules/composer.js +398 -0
  291. package/build/esm/src/clients/modules/get.d.ts +178 -0
  292. package/build/esm/src/clients/modules/get.d.ts.map +1 -0
  293. package/build/esm/src/clients/modules/get.js +363 -0
  294. package/build/esm/src/clients/modules/local-wallet.d.ts +19 -0
  295. package/build/esm/src/clients/modules/local-wallet.d.ts.map +1 -0
  296. package/build/esm/src/clients/modules/local-wallet.js +53 -0
  297. package/build/esm/src/clients/modules/markets.d.ts +14 -0
  298. package/build/esm/src/clients/modules/markets.d.ts.map +1 -0
  299. package/build/esm/src/clients/modules/markets.js +48 -0
  300. package/build/esm/src/clients/modules/post.d.ts +130 -0
  301. package/build/esm/src/clients/modules/post.d.ts.map +1 -0
  302. package/build/esm/src/clients/modules/post.js +384 -0
  303. package/build/esm/src/clients/modules/proto-includes.d.ts +30 -0
  304. package/build/esm/src/clients/modules/proto-includes.d.ts.map +1 -0
  305. package/build/esm/src/clients/modules/proto-includes.js +30 -0
  306. package/build/esm/src/clients/modules/rest.d.ts +12 -0
  307. package/build/esm/src/clients/modules/rest.d.ts.map +1 -0
  308. package/build/esm/src/clients/modules/rest.js +27 -0
  309. package/build/esm/src/clients/modules/signer.d.ts +19 -0
  310. package/build/esm/src/clients/modules/signer.d.ts.map +1 -0
  311. package/build/esm/src/clients/modules/signer.js +86 -0
  312. package/build/esm/src/clients/modules/tendermintClient.d.ts +52 -0
  313. package/build/esm/src/clients/modules/tendermintClient.d.ts.map +1 -0
  314. package/build/esm/src/clients/modules/tendermintClient.js +133 -0
  315. package/build/esm/src/clients/modules/utility.d.ts +27 -0
  316. package/build/esm/src/clients/modules/utility.d.ts.map +1 -0
  317. package/build/esm/src/clients/modules/utility.js +38 -0
  318. package/build/esm/src/clients/modules/vault.d.ts +12 -0
  319. package/build/esm/src/clients/modules/vault.d.ts.map +1 -0
  320. package/build/esm/src/clients/modules/vault.js +19 -0
  321. package/build/esm/src/clients/native.d.ts +72 -0
  322. package/build/esm/src/clients/native.d.ts.map +1 -0
  323. package/build/esm/src/clients/native.js +1190 -0
  324. package/build/esm/src/clients/noble-client.d.ts +18 -0
  325. package/build/esm/src/clients/noble-client.d.ts.map +1 -0
  326. package/build/esm/src/clients/noble-client.js +71 -0
  327. package/build/esm/src/clients/socket-client.d.ts +146 -0
  328. package/build/esm/src/clients/socket-client.d.ts.map +1 -0
  329. package/build/esm/src/clients/socket-client.js +294 -0
  330. package/build/esm/src/clients/subaccount.d.ts +14 -0
  331. package/build/esm/src/clients/subaccount.d.ts.map +1 -0
  332. package/build/esm/src/clients/subaccount.js +29 -0
  333. package/build/esm/src/clients/types.d.ts +137 -0
  334. package/build/esm/src/clients/types.d.ts.map +1 -0
  335. package/build/esm/src/clients/types.js +26 -0
  336. package/build/esm/src/clients/validator-client.d.ts +35 -0
  337. package/build/esm/src/clients/validator-client.d.ts.map +1 -0
  338. package/build/esm/src/clients/validator-client.js +74 -0
  339. package/build/esm/src/index.d.ts +17 -0
  340. package/build/esm/src/index.d.ts.map +1 -0
  341. package/build/esm/src/index.js +19 -0
  342. package/build/esm/src/lib/constants.d.ts +13 -0
  343. package/build/esm/src/lib/constants.d.ts.map +1 -0
  344. package/build/esm/src/lib/constants.js +20 -0
  345. package/build/esm/src/lib/errors.d.ts +23 -0
  346. package/build/esm/src/lib/errors.d.ts.map +1 -0
  347. package/build/esm/src/lib/errors.js +31 -0
  348. package/build/esm/src/lib/helpers.d.ts +22 -0
  349. package/build/esm/src/lib/helpers.d.ts.map +1 -0
  350. package/build/esm/src/lib/helpers.js +88 -0
  351. package/build/esm/src/lib/onboarding.d.ts +46 -0
  352. package/build/esm/src/lib/onboarding.d.ts.map +1 -0
  353. package/build/esm/src/lib/onboarding.js +69 -0
  354. package/build/esm/src/lib/trading-key-utils.d.ts +22 -0
  355. package/build/esm/src/lib/trading-key-utils.d.ts.map +1 -0
  356. package/build/esm/src/lib/trading-key-utils.js +99 -0
  357. package/build/esm/src/lib/utils.d.ts +39 -0
  358. package/build/esm/src/lib/utils.d.ts.map +1 -0
  359. package/build/esm/src/lib/utils.js +69 -0
  360. package/build/esm/src/lib/validation.d.ts +26 -0
  361. package/build/esm/src/lib/validation.d.ts.map +1 -0
  362. package/build/esm/src/lib/validation.js +138 -0
  363. package/build/esm/src/network_optimizer.d.ts +8 -0
  364. package/build/esm/src/network_optimizer.d.ts.map +1 -0
  365. package/build/esm/src/network_optimizer.js +91 -0
  366. package/build/esm/src/types.d.ts +26 -0
  367. package/build/esm/src/types.d.ts.map +1 -0
  368. package/build/esm/src/types.js +8 -0
  369. package/build/esm/tsconfig.esm.tsbuildinfo +1 -0
  370. package/commitlint.config.js +8 -0
  371. package/examples/account_endpoints.ts +129 -0
  372. package/examples/batch_cancel_orders_example.ts +130 -0
  373. package/examples/composite_example.ts +65 -0
  374. package/examples/constants.ts +42 -0
  375. package/examples/faucet_endpoint.ts +24 -0
  376. package/examples/gov_add_new_market.json +64 -0
  377. package/examples/gov_add_new_market.ts +95 -0
  378. package/examples/human_readable_orders.json +86 -0
  379. package/examples/human_readable_short_term_orders.json +42 -0
  380. package/examples/json-encoding.ts +33 -0
  381. package/examples/long_term_order_cancel_example.ts +87 -0
  382. package/examples/markets_endpoints.ts +134 -0
  383. package/examples/native_examples.ts +151 -0
  384. package/examples/noble_example.ts +107 -0
  385. package/examples/optimal_node.ts +70 -0
  386. package/examples/permissioned_keys_example.ts +162 -0
  387. package/examples/raw_orders.json +130 -0
  388. package/examples/short_term_order_cancel_example.ts +68 -0
  389. package/examples/short_term_order_composite_example.ts +80 -0
  390. package/examples/test.ts +65 -0
  391. package/examples/transfer_example_deposit.ts +28 -0
  392. package/examples/transfer_example_send.ts +60 -0
  393. package/examples/transfer_example_subaccount_transfer.ts +29 -0
  394. package/examples/transfer_example_withdraw.ts +31 -0
  395. package/examples/transfer_example_withdraw_other.ts +60 -0
  396. package/examples/utility_endpoints.ts +42 -0
  397. package/examples/validator_get_example.ts +160 -0
  398. package/examples/validator_post_example.ts +81 -0
  399. package/examples/wallet_address.ts +18 -0
  400. package/examples/websocket_example.ts +44 -0
  401. package/examples/websocket_orderbook_example.ts +239 -0
  402. package/jest.config.js +12 -0
  403. package/jest.globalSetup.js +5 -0
  404. package/jest.setup.js +1 -0
  405. package/package.json +108 -0
  406. package/scripts/bump_version.sh +16 -0
  407. package/scripts/generate-cctp-protos.sh +41 -0
  408. package/scripts/mobile_build_pack.sh +5 -0
  409. package/scripts/publish-if-not-exists.sh +21 -0
  410. package/src/clients/composite-client.ts +1432 -0
  411. package/src/clients/constants.ts +368 -0
  412. package/src/clients/faucet-client.ts +48 -0
  413. package/src/clients/helpers/chain-helpers.ts +231 -0
  414. package/src/clients/helpers/request-helpers.ts +71 -0
  415. package/src/clients/indexer-client.ts +61 -0
  416. package/src/clients/lib/axios/axiosRequest.ts +41 -0
  417. package/src/clients/lib/axios/errors.ts +41 -0
  418. package/src/clients/lib/axios/index.ts +7 -0
  419. package/src/clients/lib/axios/types.ts +6 -0
  420. package/src/clients/lib/cctpProto.ts +4197 -0
  421. package/src/clients/lib/errors.ts +61 -0
  422. package/src/clients/lib/registry.ts +88 -0
  423. package/src/clients/modules/account.ts +388 -0
  424. package/src/clients/modules/composer.ts +646 -0
  425. package/src/clients/modules/get.ts +637 -0
  426. package/src/clients/modules/local-wallet.ts +79 -0
  427. package/src/clients/modules/markets.ts +71 -0
  428. package/src/clients/modules/post.ts +1017 -0
  429. package/src/clients/modules/proto-includes.ts +31 -0
  430. package/src/clients/modules/rest.ts +40 -0
  431. package/src/clients/modules/signer.ts +139 -0
  432. package/src/clients/modules/tendermintClient.ts +164 -0
  433. package/src/clients/modules/utility.ts +47 -0
  434. package/src/clients/modules/vault.ts +23 -0
  435. package/src/clients/native.ts +1464 -0
  436. package/src/clients/noble-client.ts +108 -0
  437. package/src/clients/socket-client.ts +331 -0
  438. package/src/clients/subaccount.ts +57 -0
  439. package/src/clients/types.ts +191 -0
  440. package/src/clients/validator-client.ts +103 -0
  441. package/src/index.ts +20 -0
  442. package/src/lib/constants.ts +28 -0
  443. package/src/lib/errors.ts +38 -0
  444. package/src/lib/helpers.ts +99 -0
  445. package/src/lib/onboarding.ts +96 -0
  446. package/src/lib/trading-key-utils.ts +136 -0
  447. package/src/lib/utils.ts +84 -0
  448. package/src/lib/validation.ts +197 -0
  449. package/src/network_optimizer.ts +132 -0
  450. package/src/types.ts +44 -0
  451. package/tasks.json +16 -0
  452. package/tsconfig.base.json +16 -0
  453. package/tsconfig.cjs.json +9 -0
  454. package/tsconfig.eslint.json +14 -0
  455. package/tsconfig.esm.json +10 -0
  456. package/webpack.config.js +56 -0
@@ -0,0 +1,646 @@
1
+ /* eslint-disable comma-dangle */
2
+ /* eslint-disable @typescript-eslint/quotes */
3
+ import { EncodeObject, Registry } from '@cosmjs/proto-signing';
4
+ import { MsgWithdrawDelegatorReward } from '@dydxprotocol/v4-proto/src/codegen/cosmos/distribution/v1beta1/tx';
5
+ import { MsgSubmitProposal } from '@dydxprotocol/v4-proto/src/codegen/cosmos/gov/v1/tx';
6
+ import {
7
+ MsgDelegate,
8
+ MsgUndelegate,
9
+ } from '@dydxprotocol/v4-proto/src/codegen/cosmos/staking/v1beta1/tx';
10
+ import { MsgAddAuthenticator, MsgRemoveAuthenticator } from '@dydxprotocol/v4-proto/src/codegen/dydxprotocol/accountplus/tx';
11
+ import { MsgRegisterAffiliate } from '@dydxprotocol/v4-proto/src/codegen/dydxprotocol/affiliates/tx';
12
+ import { ClobPair_Status } from '@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/clob_pair';
13
+ import {
14
+ MsgBatchCancel,
15
+ MsgCreateClobPair,
16
+ MsgUpdateClobPair,
17
+ OrderBatch,
18
+ } from '@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/tx';
19
+ import { MsgDelayMessage } from '@dydxprotocol/v4-proto/src/codegen/dydxprotocol/delaymsg/tx';
20
+ import { PerpetualMarketType } from '@dydxprotocol/v4-proto/src/codegen/dydxprotocol/perpetuals/perpetual';
21
+ import { MsgCreatePerpetual } from '@dydxprotocol/v4-proto/src/codegen/dydxprotocol/perpetuals/tx';
22
+ import { MsgCreateOracleMarket } from '@dydxprotocol/v4-proto/src/codegen/dydxprotocol/prices/tx';
23
+ import {
24
+ MsgDepositToMegavault,
25
+ MsgWithdrawFromMegavault,
26
+ } from '@dydxprotocol/v4-proto/src/codegen/dydxprotocol/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
+ expedited,
461
+ };
462
+
463
+ return {
464
+ typeUrl: TYPE_URL_MSG_SUBMIT_PROPOSAL,
465
+ value: msg,
466
+ };
467
+ }
468
+
469
+ // ------------ x/vault ------------
470
+ public composeMsgDepositToMegavault(
471
+ address: string,
472
+ subaccountNumber: number,
473
+ quoteQuantums: Uint8Array,
474
+ ): EncodeObject {
475
+ const subaccountId: SubaccountId = {
476
+ owner: address,
477
+ number: subaccountNumber,
478
+ };
479
+
480
+ const msg: MsgDepositToMegavault = {
481
+ quoteQuantums,
482
+ subaccountId,
483
+ };
484
+
485
+ return {
486
+ typeUrl: TYPE_URL_MSG_DEPOSIT_TO_MEGAVAULT,
487
+ value: msg,
488
+ };
489
+ }
490
+
491
+ public composeMsgWithdrawFromMegavault(
492
+ address: string,
493
+ subaccountNumber: number,
494
+ shares: Uint8Array,
495
+ minQuoteQuantums: Uint8Array,
496
+ ): EncodeObject {
497
+ const subaccountId: SubaccountId = {
498
+ owner: address,
499
+ number: subaccountNumber,
500
+ };
501
+
502
+ const msg: MsgWithdrawFromMegavault = {
503
+ minQuoteQuantums,
504
+ shares: { numShares: shares },
505
+ subaccountId,
506
+ };
507
+
508
+ return {
509
+ typeUrl: TYPE_URL_MSG_WITHDRAW_FROM_MEGAVAULT,
510
+ value: msg,
511
+ };
512
+ }
513
+
514
+ // ------------ x/staking ------------
515
+ public composeMsgDelegate(delegator: string, validator: string, amount: Coin): EncodeObject {
516
+ const msg: MsgDelegate = {
517
+ delegatorAddress: delegator,
518
+ validatorAddress: validator,
519
+ amount,
520
+ };
521
+
522
+ return {
523
+ typeUrl: TYPE_URL_MSG_DELEGATE,
524
+ value: msg,
525
+ };
526
+ }
527
+
528
+ public composeMsgUndelegate(delegator: string, validator: string, amount: Coin): EncodeObject {
529
+ const msg: MsgUndelegate = {
530
+ delegatorAddress: delegator,
531
+ validatorAddress: validator,
532
+ amount,
533
+ };
534
+
535
+ return {
536
+ typeUrl: TYPE_URL_MSG_UNDELEGATE,
537
+ value: msg,
538
+ };
539
+ }
540
+
541
+ // ------------ x/distribution ------------
542
+ public composeMsgWithdrawDelegatorReward(delegator: string, validator: string): EncodeObject {
543
+ const msg: MsgWithdrawDelegatorReward = {
544
+ delegatorAddress: delegator,
545
+ validatorAddress: validator,
546
+ };
547
+
548
+ return {
549
+ typeUrl: TYPE_URL_MSG_WITHDRAW_DELEGATOR_REWARD,
550
+ value: msg,
551
+ };
552
+ }
553
+
554
+ // ------------ x/affiliates ------------
555
+ public composeMsgRegisterAffiliate(referee: string, affiliate: string): EncodeObject {
556
+ const msg: MsgRegisterAffiliate = {
557
+ referee,
558
+ affiliate,
559
+ };
560
+
561
+ return {
562
+ typeUrl: TYPE_URL_MSG_REGISTER_AFFILIATE,
563
+ value: msg,
564
+ };
565
+ }
566
+
567
+ // ------------ x/listing ------------
568
+ public composeMsgCreateMarketPermissionless(
569
+ address: string,
570
+ ticker: string,
571
+ subaccountNumber: number,
572
+ ): EncodeObject {
573
+ const subaccountId: SubaccountId = {
574
+ owner: address,
575
+ number: subaccountNumber,
576
+ };
577
+
578
+ const msg: MsgCreateMarketPermissionless = {
579
+ ticker,
580
+ subaccountId
581
+ };
582
+
583
+ return {
584
+ typeUrl: TYPE_URL_MSG_CREATE_MARKET_PERMISSIONLESS,
585
+ value: msg,
586
+ }
587
+ }
588
+
589
+ // ----------- x/accountplus --------
590
+
591
+ public composeMsgAddAuthenticator(
592
+ address: string,
593
+ authenticatorType: AuthenticatorType,
594
+ data: Uint8Array,
595
+ ): EncodeObject {
596
+ const msg: MsgAddAuthenticator = {
597
+ sender: address,
598
+ authenticatorType,
599
+ data,
600
+ }
601
+
602
+ return {
603
+ typeUrl: TYPE_URL_MSG_ADD_AUTHENTICATOR,
604
+ value: msg,
605
+ }
606
+ }
607
+
608
+ public composeMsgRemoveAuthenticator(
609
+ address: string,
610
+ id: Long,
611
+ ): EncodeObject {
612
+ const msg: MsgRemoveAuthenticator = {
613
+ sender: address,
614
+ id,
615
+ }
616
+
617
+ return {
618
+ typeUrl: TYPE_URL_MSG_REMOVE_AUTHENTICATOR,
619
+ value: msg,
620
+ }
621
+ }
622
+
623
+ // ------------ util ------------
624
+ public validateGoodTilBlockAndTime(
625
+ orderFlags: number,
626
+ goodTilBlock: number,
627
+ goodTilBlockTime: number,
628
+ ): void {
629
+ if (orderFlags === 0 && goodTilBlock === 0) {
630
+ throw new Error('goodTilBlock must be set if orderFlags is 0');
631
+ } else if (orderFlags !== 0 && goodTilBlockTime === 0) {
632
+ throw new Error('goodTilBlockTime must be set if orderFlags is not 0');
633
+ }
634
+ }
635
+
636
+ public wrapMessageAsAny(registry: Registry, message: EncodeObject): Any {
637
+ return registry.encodeAsAny(message);
638
+ }
639
+
640
+ public wrapMessageArrAsAny(registry: Registry, messages: EncodeObject[]): Any[] {
641
+ const encodedMessages: Any[] = messages.map((message: EncodeObject) =>
642
+ this.wrapMessageAsAny(registry, message),
643
+ );
644
+ return encodedMessages;
645
+ }
646
+ }