@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,18 @@
1
+ import { EncodeObject, Coin } from '@cosmjs/proto-signing';
2
+ import { DeliverTxResponse, GasPrice, StdFee, MsgTransferEncodeObject } from '@cosmjs/stargate';
3
+ import LocalWallet from './modules/local-wallet';
4
+ export declare class NobleClient {
5
+ private wallet?;
6
+ private restEndpoint;
7
+ private stargateClient?;
8
+ private defaultClientMemo?;
9
+ constructor(restEndpoint: string, defaultClientMemo?: string);
10
+ get isConnected(): boolean;
11
+ connect(wallet: LocalWallet): Promise<void>;
12
+ getAccountBalances(): Promise<readonly Coin[]>;
13
+ getAccountBalance(denom: string): Promise<Coin>;
14
+ IBCTransfer(message: MsgTransferEncodeObject): Promise<DeliverTxResponse>;
15
+ send(messages: EncodeObject[], gasPrice?: GasPrice, memo?: string): Promise<DeliverTxResponse>;
16
+ simulateTransaction(messages: readonly EncodeObject[], gasPrice?: GasPrice, memo?: string): Promise<StdFee>;
17
+ }
18
+ //# sourceMappingURL=noble-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"noble-client.d.ts","sourceRoot":"","sources":["../../../../src/clients/noble-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAY,IAAI,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAEL,iBAAiB,EACjB,QAAQ,EACR,MAAM,EAGN,uBAAuB,EACxB,MAAM,kBAAkB,CAAC;AAI1B,OAAO,WAAW,MAAM,wBAAwB,CAAC;AAEjD,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAC,CAAc;IAC7B,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,cAAc,CAAC,CAAwB;IAC/C,OAAO,CAAC,iBAAiB,CAAC,CAAS;gBAEvB,YAAY,EAAE,MAAM,EAAE,iBAAiB,CAAC,EAAE,MAAM;IAK5D,IAAI,WAAW,IAAI,OAAO,CAEzB;IAEK,OAAO,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBjD,kBAAkB,IAAI,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC;IAO9C,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOzC,WAAW,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAKzE,IAAI,CACR,QAAQ,EAAE,YAAY,EAAE,EACxB,QAAQ,GAAE,QAA0C,EACpD,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,iBAAiB,CAAC;IAmBvB,mBAAmB,CACvB,QAAQ,EAAE,SAAS,YAAY,EAAE,EACjC,QAAQ,GAAE,QAA0C,EACpD,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,MAAM,CAAC;CAanB"}
@@ -0,0 +1,71 @@
1
+ import { Registry } from '@cosmjs/proto-signing';
2
+ import { calculateFee, GasPrice, defaultRegistryTypes, SigningStargateClient, } from '@cosmjs/stargate';
3
+ import { GAS_MULTIPLIER } from './constants';
4
+ import { MsgDepositForBurn, MsgDepositForBurnWithCaller } from './lib/cctpProto';
5
+ export class NobleClient {
6
+ constructor(restEndpoint, defaultClientMemo) {
7
+ this.restEndpoint = restEndpoint;
8
+ this.defaultClientMemo = defaultClientMemo;
9
+ }
10
+ get isConnected() {
11
+ return Boolean(this.stargateClient);
12
+ }
13
+ async connect(wallet) {
14
+ if ((wallet === null || wallet === void 0 ? void 0 : wallet.offlineSigner) === undefined) {
15
+ throw new Error('Wallet signer not found');
16
+ }
17
+ this.wallet = wallet;
18
+ this.stargateClient = await SigningStargateClient.connectWithSigner(this.restEndpoint, wallet.offlineSigner, {
19
+ registry: new Registry([
20
+ ['/circle.cctp.v1.MsgDepositForBurn', MsgDepositForBurn],
21
+ ['/circle.cctp.v1.MsgDepositForBurnWithCaller', MsgDepositForBurnWithCaller],
22
+ ...defaultRegistryTypes,
23
+ ]),
24
+ });
25
+ }
26
+ getAccountBalances() {
27
+ var _a;
28
+ if (!this.stargateClient || ((_a = this.wallet) === null || _a === void 0 ? void 0 : _a.address) === undefined) {
29
+ throw new Error('stargateClient not initialized');
30
+ }
31
+ return this.stargateClient.getAllBalances(this.wallet.address);
32
+ }
33
+ getAccountBalance(denom) {
34
+ var _a;
35
+ if (!this.stargateClient || ((_a = this.wallet) === null || _a === void 0 ? void 0 : _a.address) === undefined) {
36
+ throw new Error('stargateClient not initialized');
37
+ }
38
+ return this.stargateClient.getBalance(this.wallet.address, denom);
39
+ }
40
+ async IBCTransfer(message) {
41
+ const tx = await this.send([message]);
42
+ return tx;
43
+ }
44
+ async send(messages, gasPrice = GasPrice.fromString('0.1uusdc'), memo) {
45
+ var _a;
46
+ if (!this.stargateClient) {
47
+ throw new Error('NobleClient stargateClient not initialized');
48
+ }
49
+ if (((_a = this.wallet) === null || _a === void 0 ? void 0 : _a.address) === undefined) {
50
+ throw new Error('NobleClient wallet not initialized');
51
+ }
52
+ // Simulate to get the gas estimate
53
+ const fee = await this.simulateTransaction(messages, gasPrice, memo !== null && memo !== void 0 ? memo : this.defaultClientMemo);
54
+ // Sign and broadcast the transaction
55
+ return this.stargateClient.signAndBroadcast(this.wallet.address, messages, fee, memo !== null && memo !== void 0 ? memo : this.defaultClientMemo);
56
+ }
57
+ async simulateTransaction(messages, gasPrice = GasPrice.fromString('0.1uusdc'), memo) {
58
+ var _a, _b;
59
+ if (!this.stargateClient) {
60
+ throw new Error('NobleClient stargateClient not initialized');
61
+ }
62
+ if (((_a = this.wallet) === null || _a === void 0 ? void 0 : _a.address) === undefined) {
63
+ throw new Error('NobleClient wallet not initialized');
64
+ }
65
+ // Get simulated response
66
+ const gasEstimate = await this.stargateClient.simulate((_b = this.wallet) === null || _b === void 0 ? void 0 : _b.address, messages, memo);
67
+ // Calculate and return the fee
68
+ return calculateFee(Math.floor(gasEstimate * GAS_MULTIPLIER), gasPrice);
69
+ }
70
+ }
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9ibGUtY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NsaWVudHMvbm9ibGUtY2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsUUFBUSxFQUFRLE1BQU0sdUJBQXVCLENBQUM7QUFDckUsT0FBTyxFQUNMLFlBQVksRUFFWixRQUFRLEVBRVIsb0JBQW9CLEVBQ3BCLHFCQUFxQixHQUV0QixNQUFNLGtCQUFrQixDQUFDO0FBRTFCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDN0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLDJCQUEyQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFHakYsTUFBTSxPQUFPLFdBQVc7SUFNdEIsWUFBWSxZQUFvQixFQUFFLGlCQUEwQjtRQUMxRCxJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztRQUNqQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsaUJBQWlCLENBQUM7SUFDN0MsQ0FBQztJQUVELElBQUksV0FBVztRQUNiLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFtQjtRQUMvQixJQUFJLENBQUEsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLGFBQWEsTUFBSyxTQUFTLEVBQUUsQ0FBQztZQUN4QyxNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFDN0MsQ0FBQztRQUNELElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxjQUFjLEdBQUcsTUFBTSxxQkFBcUIsQ0FBQyxpQkFBaUIsQ0FDakUsSUFBSSxDQUFDLFlBQVksRUFDakIsTUFBTSxDQUFDLGFBQWEsRUFDcEI7WUFDRSxRQUFRLEVBQUUsSUFBSSxRQUFRLENBQUM7Z0JBQ3JCLENBQUMsbUNBQW1DLEVBQUUsaUJBQWlCLENBQUM7Z0JBQ3hELENBQUMsNkNBQTZDLEVBQUUsMkJBQTJCLENBQUM7Z0JBQzVFLEdBQUcsb0JBQW9CO2FBQ3hCLENBQUM7U0FDSCxDQUNGLENBQUM7SUFDSixDQUFDO0lBRUQsa0JBQWtCOztRQUNoQixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsSUFBSSxDQUFBLE1BQUEsSUFBSSxDQUFDLE1BQU0sMENBQUUsT0FBTyxNQUFLLFNBQVMsRUFBRSxDQUFDO1lBQy9ELE1BQU0sSUFBSSxLQUFLLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztRQUNwRCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxLQUFhOztRQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsSUFBSSxDQUFBLE1BQUEsSUFBSSxDQUFDLE1BQU0sMENBQUUsT0FBTyxNQUFLLFNBQVMsRUFBRSxDQUFDO1lBQy9ELE1BQU0sSUFBSSxLQUFLLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztRQUNwRCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRUQsS0FBSyxDQUFDLFdBQVcsQ0FBQyxPQUFnQztRQUNoRCxNQUFNLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQ3RDLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELEtBQUssQ0FBQyxJQUFJLENBQ1IsUUFBd0IsRUFDeEIsV0FBcUIsUUFBUSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsRUFDcEQsSUFBYTs7UUFFYixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3pCLE1BQU0sSUFBSSxLQUFLLENBQUMsNENBQTRDLENBQUMsQ0FBQztRQUNoRSxDQUFDO1FBQ0QsSUFBSSxDQUFBLE1BQUEsSUFBSSxDQUFDLE1BQU0sMENBQUUsT0FBTyxNQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3ZDLE1BQU0sSUFBSSxLQUFLLENBQUMsb0NBQW9DLENBQUMsQ0FBQztRQUN4RCxDQUFDO1FBQ0QsbUNBQW1DO1FBQ25DLE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsSUFBSSxhQUFKLElBQUksY0FBSixJQUFJLEdBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFFL0YscUNBQXFDO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FDekMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQ25CLFFBQVEsRUFDUixHQUFHLEVBQ0gsSUFBSSxhQUFKLElBQUksY0FBSixJQUFJLEdBQUksSUFBSSxDQUFDLGlCQUFpQixDQUMvQixDQUFDO0lBQ0osQ0FBQztJQUVELEtBQUssQ0FBQyxtQkFBbUIsQ0FDdkIsUUFBaUMsRUFDakMsV0FBcUIsUUFBUSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsRUFDcEQsSUFBYTs7UUFFYixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3pCLE1BQU0sSUFBSSxLQUFLLENBQUMsNENBQTRDLENBQUMsQ0FBQztRQUNoRSxDQUFDO1FBQ0QsSUFBSSxDQUFBLE1BQUEsSUFBSSxDQUFDLE1BQU0sMENBQUUsT0FBTyxNQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3ZDLE1BQU0sSUFBSSxLQUFLLENBQUMsb0NBQW9DLENBQUMsQ0FBQztRQUN4RCxDQUFDO1FBQ0QseUJBQXlCO1FBQ3pCLE1BQU0sV0FBVyxHQUFHLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsTUFBQSxJQUFJLENBQUMsTUFBTSwwQ0FBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRTdGLCtCQUErQjtRQUMvQixPQUFPLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsR0FBRyxjQUFjLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUMxRSxDQUFDO0NBQ0YifQ==
@@ -0,0 +1,146 @@
1
+ import { ErrorEvent, MessageEvent } from 'ws';
2
+ import { IndexerConfig } from './constants';
3
+ export declare enum IncomingMessageTypes {
4
+ CONNECTED = "connected",
5
+ SUBSCRIBED = "subscribed",
6
+ ERROR = "error",
7
+ CHANNEL_DATA = "channel_data",
8
+ CHANNEL_BATCH_DATA = "channel_batch_data",
9
+ PONG = "pong"
10
+ }
11
+ export declare enum CandlesResolution {
12
+ ONE_MINUTE = "1MIN",
13
+ FIVE_MINUTES = "5MINS",
14
+ FIFTEEN_MINUTES = "15MINS",
15
+ THIRTY_MINUTES = "30MINS",
16
+ ONE_HOUR = "1HOUR",
17
+ FOUR_HOURS = "4HOURS",
18
+ ONE_DAY = "1DAY"
19
+ }
20
+ export declare class SocketClient {
21
+ private url;
22
+ private ws?;
23
+ private proxyAgent?;
24
+ private onOpenCallback?;
25
+ private onCloseCallback?;
26
+ private onMessageCallback?;
27
+ private onErrorCallback?;
28
+ private lastMessageTime;
29
+ constructor(config: IndexerConfig, onOpenCallback: () => void, onCloseCallback: () => void, onMessageCallback: (event: MessageEvent) => void, onErrorCallback: (event: ErrorEvent) => void);
30
+ connect(): void;
31
+ /**
32
+ * @description Close the websocket connection.
33
+ *
34
+ */
35
+ close(): void;
36
+ /**
37
+ * @description Check is the websocket connection connecting
38
+ */
39
+ isConnecting(): boolean;
40
+ /**
41
+ * @description Check is the websocket connection open
42
+ */
43
+ isOpen(): boolean;
44
+ /**
45
+ * @description Check is the websocket connection closing
46
+ */
47
+ isClosing(): boolean;
48
+ /**
49
+ * @description Check is the websocket connection closed
50
+ */
51
+ isClosed(): boolean;
52
+ /**
53
+ * @description Send data to the websocket connection.
54
+ *
55
+ */
56
+ send(data: string): void;
57
+ private handleOpen;
58
+ private handleClose;
59
+ private handleMessage;
60
+ private handleError;
61
+ /**
62
+ * @description Set callback when the socket is opened.
63
+ *
64
+ */
65
+ set onOpen(callback: () => void);
66
+ /**
67
+ * @description Set callback when the socket is closed.
68
+ *
69
+ */
70
+ set onClose(callback: () => void);
71
+ /**
72
+ * @description Set callback when the socket receives a message.
73
+ *
74
+ */
75
+ set onMessage(callback: (event: MessageEvent) => void);
76
+ /**
77
+ * @description Set callback when the socket encounters an error.
78
+ */
79
+ set onError(callback: (event: ErrorEvent) => void);
80
+ /**
81
+ * @description Send a subscribe message to the websocket connection.
82
+ *
83
+ */
84
+ subscribe(channel: string, params?: object): void;
85
+ /**
86
+ * @description Send an unsubscribe message to the websocket connection.
87
+ *
88
+ */
89
+ unsubscribe(channel: string, params?: object): void;
90
+ /**
91
+ * @description Subscribe to markets channel.
92
+ *
93
+ */
94
+ subscribeToMarkets(): void;
95
+ /**
96
+ * @description Unsubscribe from markets channel
97
+ *
98
+ */
99
+ unsubscribeFromMarkets(): void;
100
+ /**
101
+ * @description Subscribe to trade channel
102
+ * for a specific market.
103
+ *
104
+ */
105
+ subscribeToTrades(market: string): void;
106
+ /**
107
+ * @description Unscribed from trade channel
108
+ * for a specific market.
109
+ *
110
+ */
111
+ unsubscribeFromTrades(market: string): void;
112
+ /**
113
+ * @description Subscribe to orderbook channel
114
+ * for a specific market.
115
+ *
116
+ */
117
+ subscribeToOrderbook(market: string): void;
118
+ /**
119
+ * @description Unsubscribe from orderbook channel
120
+ * for a specific market.
121
+ */
122
+ unsubscribeFromOrderbook(market: string): void;
123
+ /**
124
+ * @description Subscribe to candles channel
125
+ * for a specific market and resolution.
126
+ *
127
+ */
128
+ subscribeToCandles(market: string, resolution: CandlesResolution): void;
129
+ /**
130
+ * @description Unsubscribe from candles channel
131
+ * for a specific market and resolution.
132
+ */
133
+ unsubscribeFromCandles(market: string, resolution: CandlesResolution): void;
134
+ /**
135
+ * @description Subscribe to subaccount channel
136
+ * for a specific address and subaccount number.
137
+ */
138
+ subscribeToSubaccount(address: string, subaccountNumber: number): void;
139
+ /**
140
+ * @description Unsubscribe from subaccount channel
141
+ * for a specific address and subaccount number.
142
+ *
143
+ */
144
+ unsubscribeFromSubaccount(address: string, subaccountNumber: number): void;
145
+ }
146
+ //# sourceMappingURL=socket-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"socket-client.d.ts","sourceRoot":"","sources":["../../../../src/clients/socket-client.ts"],"names":[],"mappings":"AACA,OAAkB,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAGzD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAe5C,oBAAY,oBAAoB;IAC9B,SAAS,cAAc;IACvB,UAAU,eAAe;IACzB,KAAK,UAAU;IACf,YAAY,iBAAiB;IAC7B,kBAAkB,uBAAuB;IACzC,IAAI,SAAS;CACd;AAED,oBAAY,iBAAiB;IAC3B,UAAU,SAAS;IACnB,YAAY,UAAU;IACtB,eAAe,WAAW;IAC1B,cAAc,WAAW;IACzB,QAAQ,UAAU;IAClB,UAAU,WAAW;IACrB,OAAO,SAAS;CACjB;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,EAAE,CAAC,CAAY;IACvB,OAAO,CAAC,UAAU,CAAC,CAA0B;IAC7C,OAAO,CAAC,cAAc,CAAC,CAAa;IACpC,OAAO,CAAC,eAAe,CAAC,CAAa;IACrC,OAAO,CAAC,iBAAiB,CAAC,CAAgC;IAC1D,OAAO,CAAC,eAAe,CAAC,CAA8B;IACtD,OAAO,CAAC,eAAe,CAAsB;gBAG3C,MAAM,EAAE,aAAa,EACrB,cAAc,EAAE,MAAM,IAAI,EAC1B,eAAe,EAAE,MAAM,IAAI,EAC3B,iBAAiB,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,EAChD,eAAe,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI;IAU9C,OAAO,IAAI,IAAI;IAUf;;;OAGG;IACH,KAAK,IAAI,IAAI;IAKb;;OAEG;IACH,YAAY,IAAI,OAAO;IAIvB;;OAEG;IACH,MAAM,IAAI,OAAO;IAIjB;;OAEG;IACH,SAAS,IAAI,OAAO;IAIpB;;OAEG;IACH,QAAQ,IAAI,OAAO;IAInB;;;OAGG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIxB,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,aAAa;IAWrB,OAAO,CAAC,WAAW;IAMnB;;;OAGG;IACH,IAAI,MAAM,CAAC,QAAQ,EAAE,MAAM,IAAI,EAE9B;IAED;;;OAGG;IACH,IAAI,OAAO,CAAC,QAAQ,EAAE,MAAM,IAAI,EAE/B;IAED;;;OAGG;IACH,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,EAEpD;IAED;;OAEG;IACH,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,EAEhD;IAED;;;OAGG;IACH,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IASjD;;;OAGG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IASnD;;;OAGG;IACH,kBAAkB,IAAI,IAAI;IAQ1B;;;OAGG;IACH,sBAAsB,IAAI,IAAI;IAK9B;;;;OAIG;IACH,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IASvC;;;;OAIG;IACH,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAQ3C;;;;OAIG;IACH,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAS1C;;;OAGG;IACH,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAQ9C;;;;OAIG;IACH,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,iBAAiB,GAAG,IAAI;IASvE;;;OAGG;IACH,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,iBAAiB,GAAG,IAAI;IAQ3E;;;OAGG;IACH,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,IAAI;IAStE;;;;OAIG;IACH,yBAAyB,CAAC,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,IAAI;CAQ3E"}
@@ -0,0 +1,294 @@
1
+ import WebSocket from 'ws';
2
+ import { getProxyAgent } from '../lib/utils';
3
+ var OutgoingMessageTypes;
4
+ (function (OutgoingMessageTypes) {
5
+ OutgoingMessageTypes["SUBSCRIBE"] = "subscribe";
6
+ OutgoingMessageTypes["UNSUBSCRIBE"] = "unsubscribe";
7
+ })(OutgoingMessageTypes || (OutgoingMessageTypes = {}));
8
+ var SocketChannels;
9
+ (function (SocketChannels) {
10
+ SocketChannels["SUBACCOUNTS"] = "v4_subaccounts";
11
+ SocketChannels["ORDERBOOK"] = "v4_orderbook";
12
+ SocketChannels["TRADES"] = "v4_trades";
13
+ SocketChannels["MARKETS"] = "v4_markets";
14
+ SocketChannels["CANDLES"] = "v4_candles";
15
+ })(SocketChannels || (SocketChannels = {}));
16
+ export var IncomingMessageTypes;
17
+ (function (IncomingMessageTypes) {
18
+ IncomingMessageTypes["CONNECTED"] = "connected";
19
+ IncomingMessageTypes["SUBSCRIBED"] = "subscribed";
20
+ IncomingMessageTypes["ERROR"] = "error";
21
+ IncomingMessageTypes["CHANNEL_DATA"] = "channel_data";
22
+ IncomingMessageTypes["CHANNEL_BATCH_DATA"] = "channel_batch_data";
23
+ IncomingMessageTypes["PONG"] = "pong";
24
+ })(IncomingMessageTypes || (IncomingMessageTypes = {}));
25
+ export var CandlesResolution;
26
+ (function (CandlesResolution) {
27
+ CandlesResolution["ONE_MINUTE"] = "1MIN";
28
+ CandlesResolution["FIVE_MINUTES"] = "5MINS";
29
+ CandlesResolution["FIFTEEN_MINUTES"] = "15MINS";
30
+ CandlesResolution["THIRTY_MINUTES"] = "30MINS";
31
+ CandlesResolution["ONE_HOUR"] = "1HOUR";
32
+ CandlesResolution["FOUR_HOURS"] = "4HOURS";
33
+ CandlesResolution["ONE_DAY"] = "1DAY";
34
+ })(CandlesResolution || (CandlesResolution = {}));
35
+ export class SocketClient {
36
+ constructor(config, onOpenCallback, onCloseCallback, onMessageCallback, onErrorCallback) {
37
+ this.lastMessageTime = Date.now();
38
+ this.url = config.websocketEndpoint;
39
+ this.proxyAgent = config.proxy ? getProxyAgent(config.proxy) : undefined;
40
+ this.onOpenCallback = onOpenCallback;
41
+ this.onCloseCallback = onCloseCallback;
42
+ this.onMessageCallback = onMessageCallback;
43
+ this.onErrorCallback = onErrorCallback;
44
+ }
45
+ connect() {
46
+ this.ws = new WebSocket(this.url, {
47
+ agent: this.proxyAgent,
48
+ });
49
+ this.ws.addEventListener('open', this.handleOpen.bind(this));
50
+ this.ws.addEventListener('close', this.handleClose.bind(this));
51
+ this.ws.addEventListener('message', this.handleMessage.bind(this));
52
+ this.ws.addEventListener('error', this.handleError.bind(this));
53
+ }
54
+ /**
55
+ * @description Close the websocket connection.
56
+ *
57
+ */
58
+ close() {
59
+ var _a;
60
+ (_a = this.ws) === null || _a === void 0 ? void 0 : _a.close();
61
+ this.ws = undefined;
62
+ }
63
+ /**
64
+ * @description Check is the websocket connection connecting
65
+ */
66
+ isConnecting() {
67
+ var _a;
68
+ return ((_a = this.ws) === null || _a === void 0 ? void 0 : _a.readyState) === WebSocket.CONNECTING;
69
+ }
70
+ /**
71
+ * @description Check is the websocket connection open
72
+ */
73
+ isOpen() {
74
+ var _a;
75
+ return ((_a = this.ws) === null || _a === void 0 ? void 0 : _a.readyState) === WebSocket.OPEN;
76
+ }
77
+ /**
78
+ * @description Check is the websocket connection closing
79
+ */
80
+ isClosing() {
81
+ var _a;
82
+ return ((_a = this.ws) === null || _a === void 0 ? void 0 : _a.readyState) === WebSocket.CLOSING;
83
+ }
84
+ /**
85
+ * @description Check is the websocket connection closed
86
+ */
87
+ isClosed() {
88
+ var _a;
89
+ return ((_a = this.ws) === null || _a === void 0 ? void 0 : _a.readyState) === WebSocket.CLOSED;
90
+ }
91
+ /**
92
+ * @description Send data to the websocket connection.
93
+ *
94
+ */
95
+ send(data) {
96
+ var _a;
97
+ (_a = this.ws) === null || _a === void 0 ? void 0 : _a.send(data);
98
+ }
99
+ handleOpen() {
100
+ if (this.onOpenCallback) {
101
+ this.onOpenCallback();
102
+ }
103
+ }
104
+ handleClose() {
105
+ if (this.onCloseCallback) {
106
+ this.onCloseCallback();
107
+ }
108
+ }
109
+ handleMessage(event) {
110
+ if (event.data === 'PING') {
111
+ this.send('PONG');
112
+ }
113
+ else {
114
+ this.lastMessageTime = Date.now();
115
+ if (this.onMessageCallback) {
116
+ this.onMessageCallback(event);
117
+ }
118
+ }
119
+ }
120
+ handleError(event) {
121
+ if (this.onErrorCallback) {
122
+ this.onErrorCallback(event);
123
+ }
124
+ }
125
+ /**
126
+ * @description Set callback when the socket is opened.
127
+ *
128
+ */
129
+ set onOpen(callback) {
130
+ this.onOpenCallback = callback;
131
+ }
132
+ /**
133
+ * @description Set callback when the socket is closed.
134
+ *
135
+ */
136
+ set onClose(callback) {
137
+ this.onCloseCallback = callback;
138
+ }
139
+ /**
140
+ * @description Set callback when the socket receives a message.
141
+ *
142
+ */
143
+ set onMessage(callback) {
144
+ this.onMessageCallback = callback;
145
+ }
146
+ /**
147
+ * @description Set callback when the socket encounters an error.
148
+ */
149
+ set onError(callback) {
150
+ this.onErrorCallback = callback;
151
+ }
152
+ /**
153
+ * @description Send a subscribe message to the websocket connection.
154
+ *
155
+ */
156
+ subscribe(channel, params) {
157
+ const message = {
158
+ type: OutgoingMessageTypes.SUBSCRIBE,
159
+ channel,
160
+ ...params,
161
+ };
162
+ this.send(JSON.stringify(message));
163
+ }
164
+ /**
165
+ * @description Send an unsubscribe message to the websocket connection.
166
+ *
167
+ */
168
+ unsubscribe(channel, params) {
169
+ const message = {
170
+ type: OutgoingMessageTypes.UNSUBSCRIBE,
171
+ channel,
172
+ ...params,
173
+ };
174
+ this.send(JSON.stringify(message));
175
+ }
176
+ /**
177
+ * @description Subscribe to markets channel.
178
+ *
179
+ */
180
+ subscribeToMarkets() {
181
+ const channel = SocketChannels.MARKETS;
182
+ const params = {
183
+ batched: true,
184
+ };
185
+ this.subscribe(channel, params);
186
+ }
187
+ /**
188
+ * @description Unsubscribe from markets channel
189
+ *
190
+ */
191
+ unsubscribeFromMarkets() {
192
+ const channel = SocketChannels.MARKETS;
193
+ this.unsubscribe(channel);
194
+ }
195
+ /**
196
+ * @description Subscribe to trade channel
197
+ * for a specific market.
198
+ *
199
+ */
200
+ subscribeToTrades(market) {
201
+ const channel = SocketChannels.TRADES;
202
+ const params = {
203
+ id: market,
204
+ batched: true,
205
+ };
206
+ this.subscribe(channel, params);
207
+ }
208
+ /**
209
+ * @description Unscribed from trade channel
210
+ * for a specific market.
211
+ *
212
+ */
213
+ unsubscribeFromTrades(market) {
214
+ const channel = SocketChannels.TRADES;
215
+ const params = {
216
+ id: market,
217
+ };
218
+ this.unsubscribe(channel, params);
219
+ }
220
+ /**
221
+ * @description Subscribe to orderbook channel
222
+ * for a specific market.
223
+ *
224
+ */
225
+ subscribeToOrderbook(market) {
226
+ const channel = SocketChannels.ORDERBOOK;
227
+ const params = {
228
+ id: market,
229
+ batched: true,
230
+ };
231
+ this.subscribe(channel, params);
232
+ }
233
+ /**
234
+ * @description Unsubscribe from orderbook channel
235
+ * for a specific market.
236
+ */
237
+ unsubscribeFromOrderbook(market) {
238
+ const channel = SocketChannels.ORDERBOOK;
239
+ const params = {
240
+ id: market,
241
+ };
242
+ this.unsubscribe(channel, params);
243
+ }
244
+ /**
245
+ * @description Subscribe to candles channel
246
+ * for a specific market and resolution.
247
+ *
248
+ */
249
+ subscribeToCandles(market, resolution) {
250
+ const channel = SocketChannels.CANDLES;
251
+ const params = {
252
+ id: `${market}/${resolution}`,
253
+ batched: true,
254
+ };
255
+ this.subscribe(channel, params);
256
+ }
257
+ /**
258
+ * @description Unsubscribe from candles channel
259
+ * for a specific market and resolution.
260
+ */
261
+ unsubscribeFromCandles(market, resolution) {
262
+ const channel = SocketChannels.CANDLES;
263
+ const params = {
264
+ id: `${market}/${resolution}`,
265
+ };
266
+ this.unsubscribe(channel, params);
267
+ }
268
+ /**
269
+ * @description Subscribe to subaccount channel
270
+ * for a specific address and subaccount number.
271
+ */
272
+ subscribeToSubaccount(address, subaccountNumber) {
273
+ const channel = SocketChannels.SUBACCOUNTS;
274
+ const subaccountId = `${address}/${subaccountNumber}`;
275
+ const params = {
276
+ id: subaccountId,
277
+ };
278
+ this.subscribe(channel, params);
279
+ }
280
+ /**
281
+ * @description Unsubscribe from subaccount channel
282
+ * for a specific address and subaccount number.
283
+ *
284
+ */
285
+ unsubscribeFromSubaccount(address, subaccountNumber) {
286
+ const channel = SocketChannels.SUBACCOUNTS;
287
+ const subaccountId = `${address}/${subaccountNumber}`;
288
+ const params = {
289
+ id: subaccountId,
290
+ };
291
+ this.unsubscribe(channel, params);
292
+ }
293
+ }
294
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ja2V0LWNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jbGllbnRzL3NvY2tldC1jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxTQUF1QyxNQUFNLElBQUksQ0FBQztBQUV6RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRzdDLElBQUssb0JBR0o7QUFIRCxXQUFLLG9CQUFvQjtJQUN2QiwrQ0FBdUIsQ0FBQTtJQUN2QixtREFBMkIsQ0FBQTtBQUM3QixDQUFDLEVBSEksb0JBQW9CLEtBQXBCLG9CQUFvQixRQUd4QjtBQUVELElBQUssY0FNSjtBQU5ELFdBQUssY0FBYztJQUNqQixnREFBOEIsQ0FBQTtJQUM5Qiw0Q0FBMEIsQ0FBQTtJQUMxQixzQ0FBb0IsQ0FBQTtJQUNwQix3Q0FBc0IsQ0FBQTtJQUN0Qix3Q0FBc0IsQ0FBQTtBQUN4QixDQUFDLEVBTkksY0FBYyxLQUFkLGNBQWMsUUFNbEI7QUFFRCxNQUFNLENBQU4sSUFBWSxvQkFPWDtBQVBELFdBQVksb0JBQW9CO0lBQzlCLCtDQUF1QixDQUFBO0lBQ3ZCLGlEQUF5QixDQUFBO0lBQ3pCLHVDQUFlLENBQUE7SUFDZixxREFBNkIsQ0FBQTtJQUM3QixpRUFBeUMsQ0FBQTtJQUN6QyxxQ0FBYSxDQUFBO0FBQ2YsQ0FBQyxFQVBXLG9CQUFvQixLQUFwQixvQkFBb0IsUUFPL0I7QUFFRCxNQUFNLENBQU4sSUFBWSxpQkFRWDtBQVJELFdBQVksaUJBQWlCO0lBQzNCLHdDQUFtQixDQUFBO0lBQ25CLDJDQUFzQixDQUFBO0lBQ3RCLCtDQUEwQixDQUFBO0lBQzFCLDhDQUF5QixDQUFBO0lBQ3pCLHVDQUFrQixDQUFBO0lBQ2xCLDBDQUFxQixDQUFBO0lBQ3JCLHFDQUFnQixDQUFBO0FBQ2xCLENBQUMsRUFSVyxpQkFBaUIsS0FBakIsaUJBQWlCLFFBUTVCO0FBRUQsTUFBTSxPQUFPLFlBQVk7SUFVdkIs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
@@ -0,0 +1,14 @@
1
+ import Long from 'long';
2
+ import LocalWallet from './modules/local-wallet';
3
+ export declare class SubaccountInfo {
4
+ readonly address: string;
5
+ readonly subaccountNumber: number;
6
+ readonly signingWallet: LocalWallet;
7
+ readonly authenticators?: Long[];
8
+ private constructor();
9
+ static forLocalWallet(wallet: LocalWallet, subaccountNumber?: number): SubaccountInfo;
10
+ static forPermissionedWallet(signingWallet: LocalWallet, accountAddress: string, subaccountNumber: number | undefined, authenticators: Long[]): SubaccountInfo;
11
+ get isPermissionedWallet(): boolean;
12
+ cloneWithSubaccount(subaccountNumber: number): SubaccountInfo;
13
+ }
14
+ //# sourceMappingURL=subaccount.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subaccount.d.ts","sourceRoot":"","sources":["../../../../src/clients/subaccount.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAGxB,OAAO,WAAW,MAAM,wBAAwB,CAAC;AAEjD,qBAAa,cAAc;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,aAAa,EAAE,WAAW,CAAC;IACpC,QAAQ,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,CAAC;IAEjC,OAAO;IAgBP,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,gBAAgB,GAAE,MAAU,GAAG,cAAc;IAQxF,MAAM,CAAC,qBAAqB,CAC1B,aAAa,EAAE,WAAW,EAC1B,cAAc,EAAE,MAAM,EACtB,gBAAgB,EAAE,MAAM,YAAI,EAC5B,cAAc,EAAE,IAAI,EAAE,GACrB,cAAc;IAIjB,IAAI,oBAAoB,IAAI,OAAO,CAElC;IAED,mBAAmB,CAAC,gBAAgB,EAAE,MAAM,GAAG,cAAc;CAQ9D"}
@@ -0,0 +1,29 @@
1
+ import { MAX_SUBACCOUNT_NUMBER } from './constants';
2
+ export class SubaccountInfo {
3
+ constructor(signingWallet, address, subaccountNumber = 0, authenticators) {
4
+ if (subaccountNumber < 0 || subaccountNumber > MAX_SUBACCOUNT_NUMBER) {
5
+ throw new Error(`Subaccount number must be between 0 and ${MAX_SUBACCOUNT_NUMBER}`);
6
+ }
7
+ this.address = address;
8
+ this.subaccountNumber = subaccountNumber;
9
+ this.signingWallet = signingWallet;
10
+ this.authenticators = authenticators;
11
+ }
12
+ static forLocalWallet(wallet, subaccountNumber = 0) {
13
+ const address = wallet.address;
14
+ if (address === undefined) {
15
+ throw new Error('Address not available from wallet');
16
+ }
17
+ return new SubaccountInfo(wallet, address, subaccountNumber);
18
+ }
19
+ static forPermissionedWallet(signingWallet, accountAddress, subaccountNumber = 0, authenticators) {
20
+ return new SubaccountInfo(signingWallet, accountAddress, subaccountNumber, authenticators);
21
+ }
22
+ get isPermissionedWallet() {
23
+ return this.address !== this.signingWallet.address;
24
+ }
25
+ cloneWithSubaccount(subaccountNumber) {
26
+ return new SubaccountInfo(this.signingWallet, this.address, subaccountNumber, this.authenticators);
27
+ }
28
+ }
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ViYWNjb3VudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jbGllbnRzL3N1YmFjY291bnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBR3BELE1BQU0sT0FBTyxjQUFjO0lBTXpCLFlBQ0UsYUFBMEIsRUFDMUIsT0FBZSxFQUNmLG1CQUEyQixDQUFDLEVBQzVCLGNBQXVCO1FBRXZCLElBQUksZ0JBQWdCLEdBQUcsQ0FBQyxJQUFJLGdCQUFnQixHQUFHLHFCQUFxQixFQUFFLENBQUM7WUFDckUsTUFBTSxJQUFJLEtBQUssQ0FBQywyQ0FBMkMscUJBQXFCLEVBQUUsQ0FBQyxDQUFDO1FBQ3RGLENBQUM7UUFFRCxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsZ0JBQWdCLENBQUM7UUFDekMsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7UUFDbkMsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUM7SUFDdkMsQ0FBQztJQUVELE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBbUIsRUFBRSxtQkFBMkIsQ0FBQztRQUNyRSxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDO1FBQy9CLElBQUksT0FBTyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzFCLE1BQU0sSUFBSSxLQUFLLENBQUMsbUNBQW1DLENBQUMsQ0FBQztRQUN2RCxDQUFDO1FBQ0QsT0FBTyxJQUFJLGNBQWMsQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVELE1BQU0sQ0FBQyxxQkFBcUIsQ0FDMUIsYUFBMEIsRUFDMUIsY0FBc0IsRUFDdEIsbUJBQTJCLENBQUMsRUFDNUIsY0FBc0I7UUFFdEIsT0FBTyxJQUFJLGNBQWMsQ0FBQyxhQUFhLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQzdGLENBQUM7SUFFRCxJQUFJLG9CQUFvQjtRQUN0QixPQUFPLElBQUksQ0FBQyxPQUFPLEtBQUssSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUM7SUFDckQsQ0FBQztJQUVELG1CQUFtQixDQUFDLGdCQUF3QjtRQUMxQyxPQUFPLElBQUksY0FBYyxDQUN2QixJQUFJLENBQUMsYUFBYSxFQUNsQixJQUFJLENBQUMsT0FBTyxFQUNaLGdCQUFnQixFQUNoQixJQUFJLENBQUMsY0FBYyxDQUNwQixDQUFDO0lBQ0osQ0FBQztDQUNGIn0=