@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,162 @@
1
+ import Long from 'long';
2
+
3
+ import { BECH32_PREFIX } from '../src';
4
+ import { CompositeClient } from '../src/clients/composite-client';
5
+ import {
6
+ Network,
7
+ OrderExecution,
8
+ OrderSide,
9
+ OrderTimeInForce,
10
+ OrderType,
11
+ SelectedGasDenom,
12
+ } from '../src/clients/constants';
13
+ import LocalWallet from '../src/clients/modules/local-wallet';
14
+ import { SubaccountInfo } from '../src/clients/subaccount';
15
+ import {
16
+ createNewRandomDydxWallet,
17
+ getAuthorizeNewTradingKeyArguments,
18
+ getAuthorizedTradingKeysMetadata,
19
+ } from '../src/lib/trading-key-utils';
20
+ import { DYDX_TEST_MNEMONIC, DYDX_TEST_MNEMONIC_2 } from './constants';
21
+
22
+ async function test(): Promise<void> {
23
+ const wallet1 = await LocalWallet.fromMnemonic(DYDX_TEST_MNEMONIC, BECH32_PREFIX);
24
+ const wallet2 = await LocalWallet.fromMnemonic(DYDX_TEST_MNEMONIC_2, BECH32_PREFIX);
25
+
26
+ const network = Network.testnet();
27
+ const client = await CompositeClient.connect(network);
28
+ client.setSelectedGasDenom(SelectedGasDenom.NATIVE);
29
+
30
+ console.log('**Client**');
31
+ console.log(client);
32
+
33
+ const subaccount1 = SubaccountInfo.forLocalWallet(wallet1, 0);
34
+ const subaccount2 = SubaccountInfo.forLocalWallet(wallet2, 0);
35
+
36
+ // Change second wallet pubkey
37
+ // Add an authenticator to allow wallet2 to place orders
38
+ console.log('** Adding authenticator **');
39
+ // Record authenticator count before adding
40
+ const authsBefore = await client.getAuthenticators(wallet1.address!);
41
+ const beforeCount = authsBefore.accountAuthenticators.length;
42
+ console.log(`Authenticators before: ${beforeCount}`);
43
+
44
+ const apiTradingWalletInfo1 = await createApiTradingWallet(client, subaccount1);
45
+ const apiTradingWallet1 = await LocalWallet.fromPrivateKey(
46
+ apiTradingWalletInfo1.privteKeyHex,
47
+ BECH32_PREFIX,
48
+ );
49
+
50
+ console.log('** Waiting 3 seconds for txn to be confirmed **');
51
+ await new Promise((resolve) => setTimeout(resolve, 3000));
52
+
53
+ const authsAfter = await client.getAuthenticators(wallet1.address!);
54
+ const afterCount = authsAfter.accountAuthenticators.length;
55
+ console.log(`Authenticators after: ${afterCount}`);
56
+ if (afterCount !== beforeCount + 1) {
57
+ console.error('Authenticator count did not increment by 1.');
58
+ process.exit(1);
59
+ } else {
60
+ console.log('Authenticator count incremented by 1 as expected.');
61
+ }
62
+
63
+ const parsedAuths = getAuthorizedTradingKeysMetadata(authsAfter.accountAuthenticators);
64
+ const newAuthenticatorID = parsedAuths.find(
65
+ (a) => apiTradingWallet1.address != null && a.address === apiTradingWallet1.address,
66
+ )?.id;
67
+ if (newAuthenticatorID == null) {
68
+ console.error(
69
+ 'Unable to locate the created authenticator. Address: ',
70
+ apiTradingWallet1.address,
71
+ );
72
+ throw new Error('Unable to locate the new authenticator');
73
+ }
74
+ console.log(`New authenticator ID: ${newAuthenticatorID}`);
75
+
76
+ // Placing order using subaccount2 for subaccount1 succeeds
77
+ console.log(
78
+ '** Placing order for subaccount1 with subaccount2 + authenticator, should succeed **',
79
+ );
80
+ await placeOrder(client, apiTradingWallet1, subaccount1.address, newAuthenticatorID);
81
+
82
+ // Placing order using subaccount2 for subaccount1 should fail
83
+ console.log('** Placing order for subaccount1 with subaccount3 + authenticator, should fail **');
84
+ await placeOrder(client, subaccount2.signingWallet, subaccount1.address, newAuthenticatorID);
85
+
86
+ // Remove authenticator
87
+ console.log('** Removing authenticator **');
88
+ await removeAuthenticator(client, subaccount1, newAuthenticatorID);
89
+
90
+ console.log('** Waiting 3 seconds for txn to be confirmed **');
91
+ await new Promise((resolve) => setTimeout(resolve, 3000));
92
+
93
+ // Placing an order using subaccount2 will now fail
94
+ console.log('** Placing order with removed authenticator should fail **');
95
+ await placeOrder(client, apiTradingWallet1, subaccount1.address, newAuthenticatorID);
96
+ }
97
+
98
+ async function removeAuthenticator(
99
+ client: CompositeClient,
100
+ subaccount: SubaccountInfo,
101
+ id: string,
102
+ ): Promise<void> {
103
+ await client.removeAuthenticator(subaccount, id);
104
+ }
105
+
106
+ async function createApiTradingWallet(
107
+ client: CompositeClient,
108
+ subaccount: SubaccountInfo,
109
+ ): Promise<{ privteKeyHex: string; forDydxAddress: string }> {
110
+ const wallet = await createNewRandomDydxWallet();
111
+ if (wallet == null) {
112
+ throw new Error("Couldn't create wallet");
113
+ }
114
+ const { data, type } = getAuthorizeNewTradingKeyArguments({
115
+ generatedWalletPubKey: wallet?.publicKey,
116
+ });
117
+ console.log('adding', wallet.address);
118
+ await client.addAuthenticator(subaccount, type, data);
119
+ return { privteKeyHex: wallet.privateKeyHex, forDydxAddress: subaccount.address };
120
+ }
121
+
122
+ async function placeOrder(
123
+ client: CompositeClient,
124
+ apiTradingWallet: LocalWallet,
125
+ forAccountAddress: string,
126
+ authenticatorId: string,
127
+ ): Promise<void> {
128
+ try {
129
+ const side = OrderSide.BUY;
130
+ const price = Number('10000');
131
+
132
+ const clientId = Math.floor(Math.random() * 10000);
133
+
134
+ const tx = await client.placeOrder(
135
+ SubaccountInfo.forPermissionedWallet(apiTradingWallet, forAccountAddress, 0, [
136
+ Long.fromString(authenticatorId),
137
+ ]),
138
+ 'ETH-USD',
139
+ OrderType.MARKET,
140
+ side,
141
+ price,
142
+ 0.01,
143
+ clientId,
144
+ OrderTimeInForce.IOC,
145
+ 100,
146
+ OrderExecution.IOC,
147
+ false,
148
+ false,
149
+ );
150
+ console.log('**Order Tx**');
151
+ console.log(Buffer.from(tx.hash).toString('hex'));
152
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
153
+ } catch (error: any) {
154
+ console.log(error.message);
155
+ }
156
+ }
157
+
158
+ test()
159
+ .then(() => {})
160
+ .catch((error) => {
161
+ console.log(error.message);
162
+ });
@@ -0,0 +1,130 @@
1
+ [
2
+ {
3
+ "timeInForce": 0,
4
+ "reduceOnly": false,
5
+ "orderFlags": 64,
6
+ "side": 1,
7
+ "quantums": 10000000,
8
+ "subticks": 40000000000
9
+ },
10
+ {
11
+ "timeInForce": 2,
12
+ "reduceOnly": false,
13
+ "orderFlags": 64,
14
+ "side": 1,
15
+ "quantums": 10000000,
16
+ "subticks": 40000000000
17
+ },
18
+ {
19
+ "timeInForce": 0,
20
+ "reduceOnly": true,
21
+ "orderFlags": 64,
22
+ "side": 1,
23
+ "quantums": 10000000,
24
+ "subticks": 40000000000
25
+ },
26
+ {
27
+ "timeInForce": 2,
28
+ "reduceOnly": true,
29
+ "orderFlags": 64,
30
+ "side": 1,
31
+ "quantums": 10000000,
32
+ "subticks": 40000000000
33
+ },
34
+ {
35
+ "timeInForce": 1,
36
+ "reduceOnly": false,
37
+ "orderFlags": 0,
38
+ "side": 1,
39
+ "quantums": 10000000,
40
+ "subticks": 40000000000
41
+ },
42
+ {
43
+ "timeInForce": 1,
44
+ "reduceOnly": true,
45
+ "orderFlags": 0,
46
+ "side": 1,
47
+ "quantums": 10000000,
48
+ "subticks": 40000000000
49
+ },
50
+ {
51
+ "timeInForce": 3,
52
+ "reduceOnly": false,
53
+ "orderFlags": 0,
54
+ "side": 1,
55
+ "quantums": 10000000,
56
+ "subticks": 40000000000
57
+ },
58
+ {
59
+ "timeInForce": 3,
60
+ "reduceOnly": true,
61
+ "orderFlags": 0,
62
+ "side": 1,
63
+ "quantums": 10000000,
64
+ "subticks": 40000000000
65
+ },
66
+ {
67
+ "timeInForce": 0,
68
+ "reduceOnly": false,
69
+ "orderFlags": 64,
70
+ "side": 2,
71
+ "quantums": 10000000,
72
+ "subticks": 1000000000
73
+ },
74
+ {
75
+ "timeInForce": 2,
76
+ "reduceOnly": false,
77
+ "orderFlags": 64,
78
+ "side": 2,
79
+ "quantums": 10000000,
80
+ "subticks": 1000000000
81
+ },
82
+ {
83
+ "timeInForce": 0,
84
+ "reduceOnly": true,
85
+ "orderFlags": 64,
86
+ "side": 2,
87
+ "quantums": 10000000,
88
+ "subticks": 1000000000
89
+ },
90
+ {
91
+ "timeInForce": 2,
92
+ "reduceOnly": true,
93
+ "orderFlags": 64,
94
+ "side": 2,
95
+ "quantums": 10000000,
96
+ "subticks": 1000000000
97
+ },
98
+ {
99
+ "timeInForce": 1,
100
+ "reduceOnly": false,
101
+ "orderFlags": 0,
102
+ "side": 2,
103
+ "quantums": 10000000,
104
+ "subticks": 1000000000
105
+ },
106
+ {
107
+ "timeInForce": 1,
108
+ "reduceOnly": true,
109
+ "orderFlags": 0,
110
+ "side": 2,
111
+ "quantums": 10000000,
112
+ "subticks": 1000000000
113
+ },
114
+ {
115
+ "timeInForce": 3,
116
+ "reduceOnly": false,
117
+ "orderFlags": 0,
118
+ "side": 2,
119
+ "quantums": 10000000,
120
+ "subticks": 1000000000
121
+ },
122
+ {
123
+ "timeInForce": 3,
124
+ "reduceOnly": true,
125
+ "orderFlags": 0,
126
+ "side": 2,
127
+ "quantums": 10000000,
128
+ "subticks": 1000000000
129
+ }
130
+ ]
@@ -0,0 +1,68 @@
1
+ import { BECH32_PREFIX, OrderFlags, Order_TimeInForce } from '../src';
2
+ import { CompositeClient } from '../src/clients/composite-client';
3
+ import { Network, OrderSide } from '../src/clients/constants';
4
+ import LocalWallet from '../src/clients/modules/local-wallet';
5
+ import { SubaccountInfo } from '../src/clients/subaccount';
6
+ import { randomInt, sleep } from '../src/lib/utils';
7
+ import { DYDX_TEST_MNEMONIC, MAX_CLIENT_ID } from './constants';
8
+
9
+ async function test(): Promise<void> {
10
+ const wallet = await LocalWallet.fromMnemonic(DYDX_TEST_MNEMONIC, BECH32_PREFIX);
11
+ console.log(wallet);
12
+ const network = Network.testnet();
13
+ const client = await CompositeClient.connect(network);
14
+ console.log('**Client**');
15
+ console.log(client);
16
+ const subaccount = SubaccountInfo.forLocalWallet(wallet, 0);
17
+
18
+ const currentBlock = await client.validatorClient.get.latestBlockHeight();
19
+ const nextValidBlockHeight = currentBlock + 1;
20
+ // Note, you can change this to any number between `next_valid_block_height`
21
+ // to `next_valid_block_height + SHORT_BLOCK_WINDOW`
22
+ const goodTilBlock = nextValidBlockHeight + 10;
23
+ const shortTermOrderClientId = randomInt(MAX_CLIENT_ID);
24
+ try {
25
+ // place a short term order
26
+ const tx = await client.placeShortTermOrder(
27
+ subaccount,
28
+ 'ETH-USD',
29
+ OrderSide.SELL,
30
+ 40000,
31
+ 0.01,
32
+ shortTermOrderClientId,
33
+ goodTilBlock,
34
+ Order_TimeInForce.TIME_IN_FORCE_UNSPECIFIED,
35
+ false,
36
+ );
37
+ console.log('**Short Term Order Tx**');
38
+ console.log(tx.hash);
39
+ } catch (error) {
40
+ console.log('**Short Term Order Failed**');
41
+ console.log(error.message);
42
+ }
43
+
44
+ await sleep(5000); // wait for placeOrder to complete
45
+
46
+ try {
47
+ // cancel the short term order
48
+ const tx = await client.cancelOrder(
49
+ subaccount,
50
+ shortTermOrderClientId,
51
+ OrderFlags.SHORT_TERM,
52
+ 'ETH-USD',
53
+ goodTilBlock + 10,
54
+ 0,
55
+ );
56
+ console.log('**Cancel Short Term Order Tx**');
57
+ console.log(tx);
58
+ } catch (error) {
59
+ console.log('**Cancel Short Term Order Failed**');
60
+ console.log(error.message);
61
+ }
62
+ }
63
+
64
+ test()
65
+ .then(() => {})
66
+ .catch((error) => {
67
+ console.log(error.message);
68
+ });
@@ -0,0 +1,80 @@
1
+ import { Order_TimeInForce } from '@ritbit/v4-proto/src/codegen/ritbit/clob/order';
2
+
3
+ import { BECH32_PREFIX } from '../src';
4
+ import { CompositeClient } from '../src/clients/composite-client';
5
+ import { Network, OrderExecution, OrderSide } from '../src/clients/constants';
6
+ import LocalWallet from '../src/clients/modules/local-wallet';
7
+ import { SubaccountInfo } from '../src/clients/subaccount';
8
+ import { randomInt } from '../src/lib/utils';
9
+ import { DYDX_TEST_MNEMONIC } from './constants';
10
+ import ordersParams from './human_readable_short_term_orders.json';
11
+
12
+ async function sleep(ms: number): Promise<void> {
13
+ return new Promise((resolve) => setTimeout(resolve, ms));
14
+ }
15
+
16
+ async function test(): Promise<void> {
17
+ const wallet = await LocalWallet.fromMnemonic(DYDX_TEST_MNEMONIC, BECH32_PREFIX);
18
+ console.log(wallet);
19
+ const network = Network.testnet();
20
+ const client = await CompositeClient.connect(network);
21
+ console.log('**Client**');
22
+ console.log(client);
23
+ const subaccount = SubaccountInfo.forLocalWallet(wallet, 0);
24
+ for (const orderParams of ordersParams) {
25
+ try {
26
+ const side = OrderSide[orderParams.side as keyof typeof OrderSide];
27
+ const price = orderParams.price ?? 1350;
28
+
29
+ const currentBlock = await client.validatorClient.get.latestBlockHeight();
30
+ const nextValidBlockHeight = currentBlock + 1;
31
+ // Note, you can change this to any number between `next_valid_block_height`
32
+ // to `next_valid_block_height + SHORT_BLOCK_WINDOW`
33
+ const goodTilBlock = nextValidBlockHeight + 10;
34
+
35
+ const timeInForce = orderExecutionToTimeInForce(orderParams.timeInForce);
36
+
37
+ // uint32
38
+ const clientId = randomInt(2 ** 32 - 1);
39
+
40
+ const tx = await client.placeShortTermOrder(
41
+ subaccount,
42
+ 'ETH-USD',
43
+ side,
44
+ price,
45
+ 0.01,
46
+ clientId,
47
+ goodTilBlock,
48
+ timeInForce,
49
+ false,
50
+ );
51
+ console.log('**Order Tx**');
52
+ console.log(tx.hash.toString());
53
+ } catch (error) {
54
+ console.log(error.message);
55
+ }
56
+
57
+ await sleep(5000); // wait for placeOrder to complete
58
+ }
59
+ }
60
+
61
+ function orderExecutionToTimeInForce(orderExecution: string): Order_TimeInForce {
62
+ switch (orderExecution) {
63
+ case OrderExecution.DEFAULT:
64
+ return Order_TimeInForce.TIME_IN_FORCE_UNSPECIFIED;
65
+ case OrderExecution.FOK:
66
+ return Order_TimeInForce.TIME_IN_FORCE_FILL_OR_KILL;
67
+ case OrderExecution.IOC:
68
+ return Order_TimeInForce.TIME_IN_FORCE_IOC;
69
+ case OrderExecution.POST_ONLY:
70
+ return Order_TimeInForce.TIME_IN_FORCE_POST_ONLY;
71
+ default:
72
+ throw new Error('Unrecognized order execution');
73
+ }
74
+ }
75
+
76
+ test()
77
+ .then(() => {})
78
+ .catch((error) => {
79
+ console.log(error.message);
80
+ });
@@ -0,0 +1,65 @@
1
+ import { BECH32_PREFIX } from '../src';
2
+ import { CompositeClient } from '../src/clients/composite-client';
3
+ import {
4
+ Network,
5
+ OrderExecution,
6
+ OrderSide,
7
+ OrderTimeInForce,
8
+ OrderType,
9
+ } from '../src/clients/constants';
10
+ import LocalWallet from '../src/clients/modules/local-wallet';
11
+ import { SubaccountInfo } from '../src/clients/subaccount';
12
+ import { randomInt } from '../src/lib/utils';
13
+ import { DYDX_TEST_MNEMONIC, MAX_CLIENT_ID } from './constants';
14
+ import ordersParams from './human_readable_orders.json';
15
+
16
+ async function sleep(ms: number): Promise<void> {
17
+ return new Promise((resolve) => setTimeout(resolve, ms));
18
+ }
19
+
20
+ async function test(): Promise<void> {
21
+ const wallet = await LocalWallet.fromMnemonic(DYDX_TEST_MNEMONIC, BECH32_PREFIX);
22
+ console.log(wallet);
23
+ const network = Network.testnet();
24
+ const client = await CompositeClient.connect(network);
25
+ console.log('**Client**');
26
+ console.log(client);
27
+ const subaccount = SubaccountInfo.forLocalWallet(wallet, 0);
28
+ for (const orderParams of ordersParams) {
29
+ try {
30
+ const type = OrderType[orderParams.type as keyof typeof OrderType];
31
+ const side = OrderSide[orderParams.side as keyof typeof OrderSide];
32
+ const timeInForceString = orderParams.timeInForce ?? 'GTT';
33
+ const timeInForce = OrderTimeInForce[timeInForceString as keyof typeof OrderTimeInForce];
34
+ const price = orderParams.price ?? 1350;
35
+ const timeInForceSeconds = timeInForce === OrderTimeInForce.GTT ? 60 : 0;
36
+ const postOnly = orderParams.postOnly ?? false;
37
+ const tx = await client.placeOrder(
38
+ subaccount,
39
+ 'ETH-USD',
40
+ type,
41
+ side,
42
+ price,
43
+ 0.01,
44
+ randomInt(MAX_CLIENT_ID),
45
+ timeInForce,
46
+ timeInForceSeconds,
47
+ OrderExecution.DEFAULT,
48
+ postOnly,
49
+ false,
50
+ );
51
+ console.log('**Order Tx**');
52
+ console.log(tx);
53
+ } catch (error) {
54
+ console.log(error.message);
55
+ }
56
+
57
+ await sleep(5000); // wait for placeOrder to complete
58
+ }
59
+ }
60
+
61
+ test()
62
+ .then(() => {})
63
+ .catch((error) => {
64
+ console.log(error.message);
65
+ });
@@ -0,0 +1,28 @@
1
+ import Long from 'long';
2
+
3
+ import { BECH32_PREFIX } from '../src';
4
+ import { Network } from '../src/clients/constants';
5
+ import LocalWallet from '../src/clients/modules/local-wallet';
6
+ import { SubaccountInfo } from '../src/clients/subaccount';
7
+ import { ValidatorClient } from '../src/clients/validator-client';
8
+ import { DYDX_TEST_MNEMONIC } from './constants';
9
+
10
+ async function test(): Promise<void> {
11
+ const wallet = await LocalWallet.fromMnemonic(DYDX_TEST_MNEMONIC, BECH32_PREFIX);
12
+ console.log(wallet);
13
+
14
+ const client = await ValidatorClient.connect(Network.testnet().validatorConfig);
15
+ console.log('**Client**');
16
+ console.log(client);
17
+
18
+ const subaccount = SubaccountInfo.forLocalWallet(wallet, 0);
19
+ const tx = await client.post.deposit(subaccount, 0, new Long(10_000_000));
20
+ console.log('**Deposit Tx**');
21
+ console.log(tx);
22
+ }
23
+
24
+ test()
25
+ .then(() => {})
26
+ .catch((error) => {
27
+ console.log(error.message);
28
+ });
@@ -0,0 +1,60 @@
1
+ import { EncodeObject } from '@cosmjs/proto-signing';
2
+ import { Method } from '@cosmjs/tendermint-rpc';
3
+ import Long from 'long';
4
+
5
+ import { TEST_RECIPIENT_ADDRESS } from '../__tests__/helpers/constants';
6
+ import { BECH32_PREFIX } from '../src';
7
+ import { Network } from '../src/clients/constants';
8
+ import LocalWallet from '../src/clients/modules/local-wallet';
9
+ import { SubaccountInfo } from '../src/clients/subaccount';
10
+ import { ValidatorClient } from '../src/clients/validator-client';
11
+ import { DYDX_TEST_MNEMONIC } from './constants';
12
+
13
+ async function test(): Promise<void> {
14
+ const wallet = await LocalWallet.fromMnemonic(DYDX_TEST_MNEMONIC, BECH32_PREFIX);
15
+ console.log(wallet);
16
+
17
+ const client = await ValidatorClient.connect(Network.testnet().validatorConfig);
18
+ console.log('**Client**');
19
+ console.log(client);
20
+
21
+ const subaccount = SubaccountInfo.forLocalWallet(wallet, 0);
22
+
23
+ const amount = new Long(100_000_000);
24
+
25
+ const msgs: Promise<EncodeObject[]> = new Promise((resolve) => {
26
+ const msg = client.post.composer.composeMsgSendToken(
27
+ subaccount.address,
28
+ TEST_RECIPIENT_ADDRESS,
29
+ client.config.denoms.CHAINTOKEN_DENOM,
30
+ amount.toString(),
31
+ );
32
+
33
+ resolve([msg]);
34
+ });
35
+
36
+ const totalFee = await client.post.simulate(subaccount, () => msgs, undefined, undefined);
37
+ console.log('**Total Fee**');
38
+ console.log(totalFee);
39
+
40
+ const amountAfterFee = amount.sub(Long.fromString(totalFee.amount[0].amount));
41
+ console.log('**Amount after fee**');
42
+ console.log(amountAfterFee);
43
+
44
+ const tx = await client.post.sendToken(
45
+ subaccount,
46
+ TEST_RECIPIENT_ADDRESS,
47
+ client.config.denoms.CHAINTOKEN_DENOM,
48
+ amountAfterFee.toString(),
49
+ false,
50
+ Method.BroadcastTxCommit,
51
+ );
52
+ console.log('**Send**');
53
+ console.log(tx);
54
+ }
55
+
56
+ test()
57
+ .then(() => {})
58
+ .catch((error) => {
59
+ console.log(error.message);
60
+ });
@@ -0,0 +1,29 @@
1
+ import Long from 'long';
2
+
3
+ import { BECH32_PREFIX } from '../src';
4
+ import { Network } from '../src/clients/constants';
5
+ import LocalWallet from '../src/clients/modules/local-wallet';
6
+ import { SubaccountInfo } from '../src/clients/subaccount';
7
+ import { ValidatorClient } from '../src/clients/validator-client';
8
+ import { DYDX_TEST_MNEMONIC } from './constants';
9
+
10
+ async function test(): Promise<void> {
11
+ const wallet = await LocalWallet.fromMnemonic(DYDX_TEST_MNEMONIC, BECH32_PREFIX);
12
+ console.log(wallet);
13
+
14
+ const client = await ValidatorClient.connect(Network.testnet().validatorConfig);
15
+ console.log('**Client**');
16
+ console.log(client);
17
+
18
+ const subaccount = SubaccountInfo.forLocalWallet(wallet, 0);
19
+
20
+ const tx = await client.post.transfer(subaccount, subaccount.address, 1, 0, new Long(10_000_000));
21
+ console.log('**Transfer Tx**');
22
+ console.log(tx);
23
+ }
24
+
25
+ test()
26
+ .then(() => {})
27
+ .catch((error) => {
28
+ console.log(error.message);
29
+ });
@@ -0,0 +1,31 @@
1
+ import Long from 'long';
2
+
3
+ import { BECH32_PREFIX } from '../src';
4
+ import { Network } from '../src/clients/constants';
5
+ import LocalWallet from '../src/clients/modules/local-wallet';
6
+ import { SubaccountInfo } from '../src/clients/subaccount';
7
+ import { ValidatorClient } from '../src/clients/validator-client';
8
+ import { DYDX_TEST_MNEMONIC } from './constants';
9
+
10
+ // TODO: Test after testnet deploy latest transfer contracts.
11
+
12
+ async function test(): Promise<void> {
13
+ const wallet = await LocalWallet.fromMnemonic(DYDX_TEST_MNEMONIC, BECH32_PREFIX);
14
+ console.log(wallet);
15
+
16
+ const client = await ValidatorClient.connect(Network.testnet().validatorConfig);
17
+ console.log('**Client**');
18
+ console.log(client);
19
+
20
+ const subaccount = SubaccountInfo.forLocalWallet(wallet, 0);
21
+
22
+ const tx = await client.post.withdraw(subaccount, 0, new Long(1_00_000_000));
23
+ console.log('**Withdraw Tx**');
24
+ console.log(tx);
25
+ }
26
+
27
+ test()
28
+ .then(() => {})
29
+ .catch((error) => {
30
+ console.log(error.message);
31
+ });