@perpx/js-sdk 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (344) hide show
  1. package/LICENSE +13 -0
  2. package/README.md +97 -0
  3. package/build/cjs/__tests__/clients/composite-client.test.js +130 -0
  4. package/build/cjs/__tests__/helpers/baseClients.js +29 -0
  5. package/build/cjs/__tests__/helpers/constants.js +110 -0
  6. package/build/cjs/__tests__/lib/helpers.test.js +45 -0
  7. package/build/cjs/__tests__/lib/util.test.js +67 -0
  8. package/build/cjs/__tests__/lib/validation.test.js +254 -0
  9. package/build/cjs/__tests__/modules/client/AccountEndpoints.test.js +186 -0
  10. package/build/cjs/__tests__/modules/client/FaucetEndpoint.test.js +15 -0
  11. package/build/cjs/__tests__/modules/client/MarketsEndpoints.test.js +69 -0
  12. package/build/cjs/__tests__/modules/client/Transfers.test.js +69 -0
  13. package/build/cjs/__tests__/modules/client/UtilityEndpoints.test.js +28 -0
  14. package/build/cjs/__tests__/modules/client/ValidatorGetEndpoints.test.js +46 -0
  15. package/build/cjs/__tests__/modules/client/ValidatorPostEndpoints.test.js +61 -0
  16. package/build/cjs/__tests__/modules/client/constants.js +7 -0
  17. package/build/cjs/__tests__/modules/onboarding.test.js +51 -0
  18. package/build/cjs/examples/account_endpoints.js +129 -0
  19. package/build/cjs/examples/batch_cancel_orders_example.js +93 -0
  20. package/build/cjs/examples/composite_example.js +50 -0
  21. package/build/cjs/examples/constants.js +35 -0
  22. package/build/cjs/examples/faucet_endpoint.js +23 -0
  23. package/build/cjs/examples/gov_add_new_market.js +77 -0
  24. package/build/cjs/examples/human_readable_orders.json +86 -0
  25. package/build/cjs/examples/human_readable_short_term_orders.json +42 -0
  26. package/build/cjs/examples/json-encoding.js +32 -0
  27. package/build/cjs/examples/long_term_order_cancel_example.js +63 -0
  28. package/build/cjs/examples/markets_endpoints.js +134 -0
  29. package/build/cjs/examples/native_examples.js +112 -0
  30. package/build/cjs/examples/noble_example.js +88 -0
  31. package/build/cjs/examples/optimal_node.js +70 -0
  32. package/build/cjs/examples/permissioned_keys_example.js +104 -0
  33. package/build/cjs/examples/raw_orders.json +130 -0
  34. package/build/cjs/examples/short_term_order_cancel_example.js +54 -0
  35. package/build/cjs/examples/short_term_order_composite_example.js +68 -0
  36. package/build/cjs/examples/test.js +50 -0
  37. package/build/cjs/examples/transfer_example_deposit.js +29 -0
  38. package/build/cjs/examples/transfer_example_send.js +42 -0
  39. package/build/cjs/examples/transfer_example_subaccount_transfer.js +29 -0
  40. package/build/cjs/examples/transfer_example_withdraw.js +30 -0
  41. package/build/cjs/examples/transfer_example_withdraw_other.js +42 -0
  42. package/build/cjs/examples/utility_endpoints.js +42 -0
  43. package/build/cjs/examples/validator_get_example.js +158 -0
  44. package/build/cjs/examples/validator_post_example.js +76 -0
  45. package/build/cjs/examples/wallet_address.js +22 -0
  46. package/build/cjs/examples/websocket_example.js +36 -0
  47. package/build/cjs/examples/websocket_orderbook_example.js +196 -0
  48. package/build/cjs/package.json +1 -0
  49. package/build/cjs/src/clients/composite-client.js +839 -0
  50. package/build/cjs/src/clients/constants.js +288 -0
  51. package/build/cjs/src/clients/faucet-client.js +36 -0
  52. package/build/cjs/src/clients/helpers/chain-helpers.js +178 -0
  53. package/build/cjs/src/clients/helpers/request-helpers.js +65 -0
  54. package/build/cjs/src/clients/indexer-client.js +56 -0
  55. package/build/cjs/src/clients/lib/axios/axiosRequest.js +34 -0
  56. package/build/cjs/src/clients/lib/axios/errors.js +28 -0
  57. package/build/cjs/src/clients/lib/axios/index.js +23 -0
  58. package/build/cjs/src/clients/lib/axios/types.js +11 -0
  59. package/build/cjs/src/clients/lib/cctpProto.js +3242 -0
  60. package/build/cjs/src/clients/lib/errors.js +58 -0
  61. package/build/cjs/src/clients/lib/registry.js +52 -0
  62. package/build/cjs/src/clients/modules/account.js +223 -0
  63. package/build/cjs/src/clients/modules/composer.js +419 -0
  64. package/build/cjs/src/clients/modules/get.js +442 -0
  65. package/build/cjs/src/clients/modules/local-wallet.js +82 -0
  66. package/build/cjs/src/clients/modules/markets.js +54 -0
  67. package/build/cjs/src/clients/modules/post.js +412 -0
  68. package/build/cjs/src/clients/modules/proto-includes.js +69 -0
  69. package/build/cjs/src/clients/modules/rest.js +41 -0
  70. package/build/cjs/src/clients/modules/signer.js +93 -0
  71. package/build/cjs/src/clients/modules/tendermintClient.js +137 -0
  72. package/build/cjs/src/clients/modules/utility.js +52 -0
  73. package/build/cjs/src/clients/modules/vault.js +25 -0
  74. package/build/cjs/src/clients/native.js +1330 -0
  75. package/build/cjs/src/clients/noble-client.js +96 -0
  76. package/build/cjs/src/clients/socket-client.js +304 -0
  77. package/build/cjs/src/clients/subaccount.js +45 -0
  78. package/build/cjs/src/clients/types.js +43 -0
  79. package/build/cjs/src/clients/validator-client.js +87 -0
  80. package/build/cjs/src/index.js +73 -0
  81. package/build/cjs/src/lib/constants.js +23 -0
  82. package/build/cjs/src/lib/errors.js +37 -0
  83. package/build/cjs/src/lib/helpers.js +108 -0
  84. package/build/cjs/src/lib/onboarding.js +75 -0
  85. package/build/cjs/src/lib/trading-key-utils.js +120 -0
  86. package/build/cjs/src/lib/utils.js +89 -0
  87. package/build/cjs/src/lib/validation.js +159 -0
  88. package/build/cjs/src/network_optimizer.js +109 -0
  89. package/build/cjs/src/types.js +25 -0
  90. package/build/cjs/tsconfig.cjs.tsbuildinfo +1 -0
  91. package/build/esm/__tests__/clients/composite-client.test.d.ts +2 -0
  92. package/build/esm/__tests__/clients/composite-client.test.d.ts.map +1 -0
  93. package/build/esm/__tests__/clients/composite-client.test.js +128 -0
  94. package/build/esm/__tests__/helpers/baseClients.d.ts +19 -0
  95. package/build/esm/__tests__/helpers/baseClients.d.ts.map +1 -0
  96. package/build/esm/__tests__/helpers/baseClients.js +22 -0
  97. package/build/esm/__tests__/helpers/constants.d.ts +19 -0
  98. package/build/esm/__tests__/helpers/constants.d.ts.map +1 -0
  99. package/build/esm/__tests__/helpers/constants.js +104 -0
  100. package/build/esm/__tests__/lib/helpers.test.d.ts +2 -0
  101. package/build/esm/__tests__/lib/helpers.test.d.ts.map +1 -0
  102. package/build/esm/__tests__/lib/helpers.test.js +40 -0
  103. package/build/esm/__tests__/lib/util.test.d.ts +2 -0
  104. package/build/esm/__tests__/lib/util.test.d.ts.map +1 -0
  105. package/build/esm/__tests__/lib/util.test.js +65 -0
  106. package/build/esm/__tests__/lib/validation.test.d.ts +2 -0
  107. package/build/esm/__tests__/lib/validation.test.d.ts.map +1 -0
  108. package/build/esm/__tests__/lib/validation.test.js +249 -0
  109. package/build/esm/__tests__/modules/client/AccountEndpoints.test.d.ts +2 -0
  110. package/build/esm/__tests__/modules/client/AccountEndpoints.test.d.ts.map +1 -0
  111. package/build/esm/__tests__/modules/client/AccountEndpoints.test.js +181 -0
  112. package/build/esm/__tests__/modules/client/FaucetEndpoint.test.d.ts +2 -0
  113. package/build/esm/__tests__/modules/client/FaucetEndpoint.test.d.ts.map +1 -0
  114. package/build/esm/__tests__/modules/client/FaucetEndpoint.test.js +13 -0
  115. package/build/esm/__tests__/modules/client/MarketsEndpoints.test.d.ts +2 -0
  116. package/build/esm/__tests__/modules/client/MarketsEndpoints.test.d.ts.map +1 -0
  117. package/build/esm/__tests__/modules/client/MarketsEndpoints.test.js +66 -0
  118. package/build/esm/__tests__/modules/client/Transfers.test.d.ts +2 -0
  119. package/build/esm/__tests__/modules/client/Transfers.test.d.ts.map +1 -0
  120. package/build/esm/__tests__/modules/client/Transfers.test.js +64 -0
  121. package/build/esm/__tests__/modules/client/UtilityEndpoints.test.d.ts +2 -0
  122. package/build/esm/__tests__/modules/client/UtilityEndpoints.test.d.ts.map +1 -0
  123. package/build/esm/__tests__/modules/client/UtilityEndpoints.test.js +26 -0
  124. package/build/esm/__tests__/modules/client/ValidatorGetEndpoints.test.d.ts +2 -0
  125. package/build/esm/__tests__/modules/client/ValidatorGetEndpoints.test.d.ts.map +1 -0
  126. package/build/esm/__tests__/modules/client/ValidatorGetEndpoints.test.js +44 -0
  127. package/build/esm/__tests__/modules/client/ValidatorPostEndpoints.test.d.ts +2 -0
  128. package/build/esm/__tests__/modules/client/ValidatorPostEndpoints.test.d.ts.map +1 -0
  129. package/build/esm/__tests__/modules/client/ValidatorPostEndpoints.test.js +56 -0
  130. package/build/esm/__tests__/modules/client/constants.d.ts +4 -0
  131. package/build/esm/__tests__/modules/client/constants.d.ts.map +1 -0
  132. package/build/esm/__tests__/modules/client/constants.js +4 -0
  133. package/build/esm/__tests__/modules/onboarding.test.d.ts +2 -0
  134. package/build/esm/__tests__/modules/onboarding.test.d.ts.map +1 -0
  135. package/build/esm/__tests__/modules/onboarding.test.js +49 -0
  136. package/build/esm/examples/account_endpoints.d.ts +5 -0
  137. package/build/esm/examples/account_endpoints.d.ts.map +1 -0
  138. package/build/esm/examples/account_endpoints.js +127 -0
  139. package/build/esm/examples/batch_cancel_orders_example.d.ts +2 -0
  140. package/build/esm/examples/batch_cancel_orders_example.d.ts.map +1 -0
  141. package/build/esm/examples/batch_cancel_orders_example.js +88 -0
  142. package/build/esm/examples/composite_example.d.ts +2 -0
  143. package/build/esm/examples/composite_example.d.ts.map +1 -0
  144. package/build/esm/examples/composite_example.js +45 -0
  145. package/build/esm/examples/constants.d.ts +13 -0
  146. package/build/esm/examples/constants.d.ts.map +1 -0
  147. package/build/esm/examples/constants.js +29 -0
  148. package/build/esm/examples/faucet_endpoint.d.ts +5 -0
  149. package/build/esm/examples/faucet_endpoint.d.ts.map +1 -0
  150. package/build/esm/examples/faucet_endpoint.js +21 -0
  151. package/build/esm/examples/gov_add_new_market.d.ts +2 -0
  152. package/build/esm/examples/gov_add_new_market.d.ts.map +1 -0
  153. package/build/esm/examples/gov_add_new_market.js +72 -0
  154. package/build/esm/examples/human_readable_orders.json +86 -0
  155. package/build/esm/examples/human_readable_short_term_orders.json +42 -0
  156. package/build/esm/examples/json-encoding.d.ts +2 -0
  157. package/build/esm/examples/json-encoding.d.ts.map +1 -0
  158. package/build/esm/examples/json-encoding.js +27 -0
  159. package/build/esm/examples/long_term_order_cancel_example.d.ts +2 -0
  160. package/build/esm/examples/long_term_order_cancel_example.d.ts.map +1 -0
  161. package/build/esm/examples/long_term_order_cancel_example.js +58 -0
  162. package/build/esm/examples/markets_endpoints.d.ts +5 -0
  163. package/build/esm/examples/markets_endpoints.d.ts.map +1 -0
  164. package/build/esm/examples/markets_endpoints.js +131 -0
  165. package/build/esm/examples/native_examples.d.ts +2 -0
  166. package/build/esm/examples/native_examples.d.ts.map +1 -0
  167. package/build/esm/examples/native_examples.js +110 -0
  168. package/build/esm/examples/noble_example.d.ts +2 -0
  169. package/build/esm/examples/noble_example.d.ts.map +1 -0
  170. package/build/esm/examples/noble_example.js +83 -0
  171. package/build/esm/examples/optimal_node.d.ts +2 -0
  172. package/build/esm/examples/optimal_node.d.ts.map +1 -0
  173. package/build/esm/examples/optimal_node.js +68 -0
  174. package/build/esm/examples/permissioned_keys_example.d.ts +2 -0
  175. package/build/esm/examples/permissioned_keys_example.d.ts.map +1 -0
  176. package/build/esm/examples/permissioned_keys_example.js +99 -0
  177. package/build/esm/examples/raw_orders.json +130 -0
  178. package/build/esm/examples/short_term_order_cancel_example.d.ts +2 -0
  179. package/build/esm/examples/short_term_order_cancel_example.d.ts.map +1 -0
  180. package/build/esm/examples/short_term_order_cancel_example.js +49 -0
  181. package/build/esm/examples/short_term_order_composite_example.d.ts +2 -0
  182. package/build/esm/examples/short_term_order_composite_example.d.ts.map +1 -0
  183. package/build/esm/examples/short_term_order_composite_example.js +63 -0
  184. package/build/esm/examples/test.d.ts +2 -0
  185. package/build/esm/examples/test.d.ts.map +1 -0
  186. package/build/esm/examples/test.js +45 -0
  187. package/build/esm/examples/transfer_example_deposit.d.ts +2 -0
  188. package/build/esm/examples/transfer_example_deposit.d.ts.map +1 -0
  189. package/build/esm/examples/transfer_example_deposit.js +24 -0
  190. package/build/esm/examples/transfer_example_send.d.ts +2 -0
  191. package/build/esm/examples/transfer_example_send.d.ts.map +1 -0
  192. package/build/esm/examples/transfer_example_send.js +37 -0
  193. package/build/esm/examples/transfer_example_subaccount_transfer.d.ts +2 -0
  194. package/build/esm/examples/transfer_example_subaccount_transfer.d.ts.map +1 -0
  195. package/build/esm/examples/transfer_example_subaccount_transfer.js +24 -0
  196. package/build/esm/examples/transfer_example_withdraw.d.ts +2 -0
  197. package/build/esm/examples/transfer_example_withdraw.d.ts.map +1 -0
  198. package/build/esm/examples/transfer_example_withdraw.js +25 -0
  199. package/build/esm/examples/transfer_example_withdraw_other.d.ts +2 -0
  200. package/build/esm/examples/transfer_example_withdraw_other.d.ts.map +1 -0
  201. package/build/esm/examples/transfer_example_withdraw_other.js +37 -0
  202. package/build/esm/examples/utility_endpoints.d.ts +5 -0
  203. package/build/esm/examples/utility_endpoints.d.ts.map +1 -0
  204. package/build/esm/examples/utility_endpoints.js +40 -0
  205. package/build/esm/examples/validator_get_example.d.ts +2 -0
  206. package/build/esm/examples/validator_get_example.d.ts.map +1 -0
  207. package/build/esm/examples/validator_get_example.js +156 -0
  208. package/build/esm/examples/validator_post_example.d.ts +2 -0
  209. package/build/esm/examples/validator_post_example.d.ts.map +1 -0
  210. package/build/esm/examples/validator_post_example.js +71 -0
  211. package/build/esm/examples/wallet_address.d.ts +2 -0
  212. package/build/esm/examples/wallet_address.d.ts.map +1 -0
  213. package/build/esm/examples/wallet_address.js +17 -0
  214. package/build/esm/examples/websocket_example.d.ts +2 -0
  215. package/build/esm/examples/websocket_example.d.ts.map +1 -0
  216. package/build/esm/examples/websocket_example.js +34 -0
  217. package/build/esm/examples/websocket_orderbook_example.d.ts +2 -0
  218. package/build/esm/examples/websocket_orderbook_example.d.ts.map +1 -0
  219. package/build/esm/examples/websocket_orderbook_example.js +194 -0
  220. package/build/esm/src/clients/composite-client.d.ts +457 -0
  221. package/build/esm/src/clients/composite-client.d.ts.map +1 -0
  222. package/build/esm/src/clients/composite-client.js +832 -0
  223. package/build/esm/src/clients/constants.d.ts +173 -0
  224. package/build/esm/src/clients/constants.d.ts.map +1 -0
  225. package/build/esm/src/clients/constants.js +264 -0
  226. package/build/esm/src/clients/faucet-client.d.ts +18 -0
  227. package/build/esm/src/clients/faucet-client.d.ts.map +1 -0
  228. package/build/esm/src/clients/faucet-client.js +29 -0
  229. package/build/esm/src/clients/helpers/chain-helpers.d.ts +15 -0
  230. package/build/esm/src/clients/helpers/chain-helpers.d.ts.map +1 -0
  231. package/build/esm/src/clients/helpers/chain-helpers.js +163 -0
  232. package/build/esm/src/clients/helpers/request-helpers.d.ts +3 -0
  233. package/build/esm/src/clients/helpers/request-helpers.d.ts.map +1 -0
  234. package/build/esm/src/clients/helpers/request-helpers.js +58 -0
  235. package/build/esm/src/clients/indexer-client.d.ts +40 -0
  236. package/build/esm/src/clients/indexer-client.d.ts.map +1 -0
  237. package/build/esm/src/clients/indexer-client.js +49 -0
  238. package/build/esm/src/clients/lib/axios/axiosRequest.d.ts +9 -0
  239. package/build/esm/src/clients/lib/axios/axiosRequest.d.ts.map +1 -0
  240. package/build/esm/src/clients/lib/axios/axiosRequest.js +28 -0
  241. package/build/esm/src/clients/lib/axios/errors.d.ts +31 -0
  242. package/build/esm/src/clients/lib/axios/errors.d.ts.map +1 -0
  243. package/build/esm/src/clients/lib/axios/errors.js +23 -0
  244. package/build/esm/src/clients/lib/axios/index.d.ts +7 -0
  245. package/build/esm/src/clients/lib/axios/index.d.ts.map +1 -0
  246. package/build/esm/src/clients/lib/axios/index.js +7 -0
  247. package/build/esm/src/clients/lib/axios/types.d.ts +12 -0
  248. package/build/esm/src/clients/lib/axios/types.d.ts.map +1 -0
  249. package/build/esm/src/clients/lib/axios/types.js +8 -0
  250. package/build/esm/src/clients/lib/cctpProto.d.ts +670 -0
  251. package/build/esm/src/clients/lib/cctpProto.d.ts.map +1 -0
  252. package/build/esm/src/clients/lib/cctpProto.js +3234 -0
  253. package/build/esm/src/clients/lib/errors.d.ts +36 -0
  254. package/build/esm/src/clients/lib/errors.d.ts.map +1 -0
  255. package/build/esm/src/clients/lib/errors.js +50 -0
  256. package/build/esm/src/clients/lib/registry.d.ts +4 -0
  257. package/build/esm/src/clients/lib/registry.d.ts.map +1 -0
  258. package/build/esm/src/clients/lib/registry.js +48 -0
  259. package/build/esm/src/clients/modules/account.d.ts +30 -0
  260. package/build/esm/src/clients/modules/account.d.ts.map +1 -0
  261. package/build/esm/src/clients/modules/account.js +217 -0
  262. package/build/esm/src/clients/modules/composer.d.ts +38 -0
  263. package/build/esm/src/clients/modules/composer.d.ts.map +1 -0
  264. package/build/esm/src/clients/modules/composer.js +412 -0
  265. package/build/esm/src/clients/modules/get.d.ts +199 -0
  266. package/build/esm/src/clients/modules/get.d.ts.map +1 -0
  267. package/build/esm/src/clients/modules/get.js +402 -0
  268. package/build/esm/src/clients/modules/local-wallet.d.ts +42 -0
  269. package/build/esm/src/clients/modules/local-wallet.d.ts.map +1 -0
  270. package/build/esm/src/clients/modules/local-wallet.js +76 -0
  271. package/build/esm/src/clients/modules/markets.d.ts +14 -0
  272. package/build/esm/src/clients/modules/markets.d.ts.map +1 -0
  273. package/build/esm/src/clients/modules/markets.js +48 -0
  274. package/build/esm/src/clients/modules/post.d.ts +137 -0
  275. package/build/esm/src/clients/modules/post.d.ts.map +1 -0
  276. package/build/esm/src/clients/modules/post.js +405 -0
  277. package/build/esm/src/clients/modules/proto-includes.d.ts +30 -0
  278. package/build/esm/src/clients/modules/proto-includes.d.ts.map +1 -0
  279. package/build/esm/src/clients/modules/proto-includes.js +30 -0
  280. package/build/esm/src/clients/modules/rest.d.ts +13 -0
  281. package/build/esm/src/clients/modules/rest.d.ts.map +1 -0
  282. package/build/esm/src/clients/modules/rest.js +35 -0
  283. package/build/esm/src/clients/modules/signer.d.ts +19 -0
  284. package/build/esm/src/clients/modules/signer.d.ts.map +1 -0
  285. package/build/esm/src/clients/modules/signer.js +86 -0
  286. package/build/esm/src/clients/modules/tendermintClient.d.ts +52 -0
  287. package/build/esm/src/clients/modules/tendermintClient.d.ts.map +1 -0
  288. package/build/esm/src/clients/modules/tendermintClient.js +133 -0
  289. package/build/esm/src/clients/modules/utility.d.ts +32 -0
  290. package/build/esm/src/clients/modules/utility.d.ts.map +1 -0
  291. package/build/esm/src/clients/modules/utility.js +46 -0
  292. package/build/esm/src/clients/modules/vault.d.ts +12 -0
  293. package/build/esm/src/clients/modules/vault.d.ts.map +1 -0
  294. package/build/esm/src/clients/modules/vault.js +19 -0
  295. package/build/esm/src/clients/native.d.ts +75 -0
  296. package/build/esm/src/clients/native.d.ts.map +1 -0
  297. package/build/esm/src/clients/native.js +1237 -0
  298. package/build/esm/src/clients/noble-client.d.ts +39 -0
  299. package/build/esm/src/clients/noble-client.d.ts.map +1 -0
  300. package/build/esm/src/clients/noble-client.js +92 -0
  301. package/build/esm/src/clients/socket-client.d.ts +149 -0
  302. package/build/esm/src/clients/socket-client.d.ts.map +1 -0
  303. package/build/esm/src/clients/socket-client.js +297 -0
  304. package/build/esm/src/clients/subaccount.d.ts +26 -0
  305. package/build/esm/src/clients/subaccount.d.ts.map +1 -0
  306. package/build/esm/src/clients/subaccount.js +41 -0
  307. package/build/esm/src/clients/types.d.ts +139 -0
  308. package/build/esm/src/clients/types.d.ts.map +1 -0
  309. package/build/esm/src/clients/types.js +26 -0
  310. package/build/esm/src/clients/validator-client.d.ts +41 -0
  311. package/build/esm/src/clients/validator-client.d.ts.map +1 -0
  312. package/build/esm/src/clients/validator-client.js +80 -0
  313. package/build/esm/src/index.d.ts +17 -0
  314. package/build/esm/src/index.d.ts.map +1 -0
  315. package/build/esm/src/index.js +19 -0
  316. package/build/esm/src/lib/constants.d.ts +13 -0
  317. package/build/esm/src/lib/constants.d.ts.map +1 -0
  318. package/build/esm/src/lib/constants.js +20 -0
  319. package/build/esm/src/lib/errors.d.ts +23 -0
  320. package/build/esm/src/lib/errors.d.ts.map +1 -0
  321. package/build/esm/src/lib/errors.js +31 -0
  322. package/build/esm/src/lib/helpers.d.ts +32 -0
  323. package/build/esm/src/lib/helpers.d.ts.map +1 -0
  324. package/build/esm/src/lib/helpers.js +98 -0
  325. package/build/esm/src/lib/onboarding.d.ts +46 -0
  326. package/build/esm/src/lib/onboarding.d.ts.map +1 -0
  327. package/build/esm/src/lib/onboarding.js +69 -0
  328. package/build/esm/src/lib/trading-key-utils.d.ts +37 -0
  329. package/build/esm/src/lib/trading-key-utils.d.ts.map +1 -0
  330. package/build/esm/src/lib/trading-key-utils.js +111 -0
  331. package/build/esm/src/lib/utils.d.ts +49 -0
  332. package/build/esm/src/lib/utils.d.ts.map +1 -0
  333. package/build/esm/src/lib/utils.js +79 -0
  334. package/build/esm/src/lib/validation.d.ts +35 -0
  335. package/build/esm/src/lib/validation.d.ts.map +1 -0
  336. package/build/esm/src/lib/validation.js +147 -0
  337. package/build/esm/src/network_optimizer.d.ts +21 -0
  338. package/build/esm/src/network_optimizer.d.ts.map +1 -0
  339. package/build/esm/src/network_optimizer.js +104 -0
  340. package/build/esm/src/types.d.ts +26 -0
  341. package/build/esm/src/types.d.ts.map +1 -0
  342. package/build/esm/src/types.js +8 -0
  343. package/build/esm/tsconfig.esm.tsbuildinfo +1 -0
  344. package/package.json +129 -0
@@ -0,0 +1,194 @@
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
+ /* eslint-disable no-param-reassign */
3
+ import { Network } from '../src/clients/constants';
4
+ import { SocketClient } from '../src/clients/socket-client';
5
+ function test() {
6
+ let orderBookBidList = [];
7
+ let orderBookAskList = [];
8
+ const mySocket = new SocketClient(Network.mainnet().indexerConfig, () => {
9
+ console.log('socket opened');
10
+ mySocket.subscribeToOrderbook('ETH-USD');
11
+ }, () => {
12
+ console.log('socket closed');
13
+ }, (message) => {
14
+ try {
15
+ if (typeof message.data === 'string') {
16
+ const jsonString = message.data;
17
+ const parsingData = JSON.parse(jsonString);
18
+ const messageId = parsingData.message_id;
19
+ const orderBookDataList = parsingData.contents;
20
+ if (orderBookDataList instanceof Array) {
21
+ // common orderBook data;
22
+ [orderBookBidList, orderBookAskList] = updateOrderBook(orderBookDataList, orderBookBidList, orderBookAskList, messageId);
23
+ // sort
24
+ orderBookBidList = sortByNthElementDesc(orderBookBidList, 0);
25
+ orderBookAskList = sortByNthElementAsc(orderBookAskList, 0);
26
+ // resolving crossed orderBook
27
+ if (orderBookBidList.length > 0 &&
28
+ orderBookAskList.length > 0 &&
29
+ orderBookBidList[0][0] >= orderBookAskList[0][0]) {
30
+ [orderBookBidList, orderBookAskList] = resolveCrossedOrderBook(orderBookBidList, orderBookAskList);
31
+ }
32
+ printOrderBook(orderBookBidList, orderBookAskList);
33
+ if (orderBookBidList.length > 300) {
34
+ orderBookBidList.splice(50);
35
+ }
36
+ if (orderBookAskList.length > 300) {
37
+ orderBookAskList.splice(50);
38
+ }
39
+ }
40
+ else if (orderBookDataList !== null && orderBookDataList !== undefined) {
41
+ // initial OrderBook data
42
+ setInitialOrderBook(orderBookDataList, orderBookBidList, orderBookAskList, messageId);
43
+ }
44
+ }
45
+ }
46
+ catch (e) {
47
+ console.error('Error parsing JSON message:', e);
48
+ }
49
+ }, (event) => {
50
+ console.error('Encountered error:', event.message);
51
+ });
52
+ mySocket.connect();
53
+ }
54
+ const sortByNthElementAsc = (arr, n) => {
55
+ return arr.sort((a, b) => {
56
+ if (a[n] < b[n])
57
+ return -1;
58
+ if (a[n] > b[n])
59
+ return 1;
60
+ return 0;
61
+ });
62
+ };
63
+ const sortByNthElementDesc = (arr, n) => {
64
+ return arr.sort((a, b) => {
65
+ if (a[n] > b[n])
66
+ return -1;
67
+ if (a[n] < b[n])
68
+ return 1;
69
+ return 0;
70
+ });
71
+ };
72
+ const printOrderBook = (orderBookBidList, orderBookAskList) => {
73
+ // print
74
+ console.log(`OrderBook for ETH-USD:`);
75
+ console.log(`Price Qty`);
76
+ for (let i = 4; i > -1; i--) {
77
+ const priceStr = String(orderBookAskList[i][0]);
78
+ const spaces = createSpaces(10 - priceStr.length);
79
+ console.log(`${priceStr}${spaces}${orderBookAskList[i][1]}`);
80
+ }
81
+ console.log('---------------------');
82
+ for (let i = 0; i < 5; i++) {
83
+ const priceStr = String(orderBookBidList[i][0]);
84
+ const spaces = createSpaces(10 - priceStr.length);
85
+ console.log(`${priceStr}${spaces}${orderBookBidList[i][1]}`);
86
+ }
87
+ console.log('');
88
+ };
89
+ function createSpaces(count) {
90
+ if (count <= 0) {
91
+ return '';
92
+ }
93
+ let spaces = '';
94
+ for (let i = 0; i < count; i++) {
95
+ spaces += ' ';
96
+ }
97
+ return spaces;
98
+ }
99
+ const resolveCrossedOrderBook = (orderBookBidList, orderBookAskList) => {
100
+ while (orderBookBidList[0][0] >= orderBookAskList[0][0]) {
101
+ if (orderBookBidList[0][2] < orderBookAskList[0][2]) {
102
+ orderBookBidList.shift();
103
+ }
104
+ else if (orderBookBidList[0][2] > orderBookAskList[0][2]) {
105
+ orderBookAskList.shift();
106
+ }
107
+ else {
108
+ if (orderBookBidList[0][1] > orderBookAskList[0][1]) {
109
+ orderBookBidList[0][1] -= orderBookAskList[0][1];
110
+ orderBookAskList.shift();
111
+ }
112
+ else if (orderBookBidList[0][1] < orderBookAskList[0][1]) {
113
+ orderBookAskList[0][1] -= orderBookBidList[0][1];
114
+ orderBookBidList.shift();
115
+ }
116
+ else {
117
+ orderBookAskList.shift();
118
+ orderBookBidList.shift();
119
+ }
120
+ }
121
+ }
122
+ return [orderBookBidList, orderBookAskList];
123
+ };
124
+ const setInitialOrderBook = (orderBookDataList, orderBookBidList, orderBookAskList, messageId) => {
125
+ orderBookDataList.bids.forEach((item) => {
126
+ orderBookBidList.push([Number(item.price), Number(item.size), messageId]);
127
+ });
128
+ orderBookDataList.asks.forEach((item) => {
129
+ orderBookAskList.push([Number(item.price), Number(item.size), messageId]);
130
+ });
131
+ };
132
+ const updateOrderBook = (orderBookDataList, orderBookBidList, orderBookAskList, messageId) => {
133
+ orderBookDataList.forEach((entry) => {
134
+ if (entry.bids !== null && entry.bids !== undefined) {
135
+ const flattened = entry.bids.reduce((acc, val) => acc.concat(val), []);
136
+ const entryBidPrice = Number(flattened[0]);
137
+ const entryBidSize = Number(flattened[1]);
138
+ // remove prices with zero Qty
139
+ if (entryBidSize === 0) {
140
+ for (let i = orderBookBidList.length - 1; i >= 0; i--) {
141
+ if (orderBookBidList[i][0] === entryBidPrice) {
142
+ orderBookBidList.splice(i, 1);
143
+ }
144
+ }
145
+ }
146
+ else {
147
+ // The price that already exists in the order book is modified only Qty
148
+ if (orderBookBidList.some((innerArray) => innerArray[0] === entryBidPrice)) {
149
+ orderBookBidList.forEach((item, index) => {
150
+ if (item[0] === entryBidPrice) {
151
+ orderBookBidList[index][1] = entryBidSize;
152
+ orderBookBidList[index][2] = messageId;
153
+ }
154
+ });
155
+ }
156
+ else {
157
+ // Add new data to order book
158
+ orderBookBidList.push([entryBidPrice, entryBidSize, messageId]);
159
+ }
160
+ }
161
+ }
162
+ if (entry.asks !== null && entry.asks !== undefined) {
163
+ const flattened = entry.asks.reduce((acc, val) => acc.concat(val), []);
164
+ const entryAskPrice = Number(flattened[0]);
165
+ const entryAskSize = Number(flattened[1]);
166
+ if (entryAskSize === 0) {
167
+ // remove prices with zero Qty
168
+ for (let i = orderBookAskList.length - 1; i >= 0; i--) {
169
+ if (orderBookAskList[i][0] === entryAskPrice) {
170
+ orderBookAskList.splice(i, 1);
171
+ }
172
+ }
173
+ }
174
+ else {
175
+ // The price that already exists in the order book is modified only Qty
176
+ if (orderBookAskList.some((innerArray) => innerArray[0] === entryAskPrice)) {
177
+ orderBookAskList.forEach((item, index) => {
178
+ if (item[0] === entryAskPrice) {
179
+ orderBookAskList[index][1] = entryAskSize;
180
+ orderBookAskList[index][2] = messageId;
181
+ }
182
+ });
183
+ }
184
+ else {
185
+ // Add new data to order book
186
+ orderBookAskList.push([entryAskPrice, entryAskSize, messageId]);
187
+ }
188
+ }
189
+ }
190
+ });
191
+ return [orderBookBidList, orderBookAskList];
192
+ };
193
+ test();
194
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vic29ja2V0X29yZGVyYm9va19leGFtcGxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vZXhhbXBsZXMvd2Vic29ja2V0X29yZGVyYm9va19leGFtcGxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUN2RCxzQ0FBc0M7QUFDdEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUU1RCxTQUFTLElBQUk7SUFDWCxJQUFJLGdCQUFnQixHQUErQixFQUFFLENBQUM7SUFDdEQsSUFBSSxnQkFBZ0IsR0FBK0IsRUFBRSxDQUFDO0lBRXRELE1BQU0sUUFBUSxHQUFHLElBQUksWUFBWSxDQUMvQixPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsYUFBYSxFQUMvQixHQUFHLEVBQUU7UUFDSCxPQUFPLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRTdCLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMzQyxDQUFDLEVBQ0QsR0FBRyxFQUFFO1FBQ0gsT0FBTyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUMvQixDQUFDLEVBQ0QsQ0FBQyxPQUFPLEVBQUUsRUFBRTtRQUNWLElBQUksQ0FBQztZQUNILElBQUksT0FBTyxPQUFPLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUNyQyxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDO2dCQUNoQyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUMzQyxNQUFNLFNBQVMsR0FBRyxXQUFXLENBQUMsVUFBVSxDQUFDO2dCQUN6QyxNQUFNLGlCQUFpQixHQUFHLFdBQVcsQ0FBQyxRQUFRLENBQUM7Z0JBRS9DLElBQUksaUJBQWlCLFlBQVksS0FBSyxFQUFF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
@@ -0,0 +1,457 @@
1
+ import { EncodeObject } from '@cosmjs/proto-signing';
2
+ import { Account, GasPrice, IndexedTx, StdFee } from '@cosmjs/stargate';
3
+ import { BroadcastTxAsyncResponse, BroadcastTxSyncResponse } from '@cosmjs/tendermint-rpc/build/tendermint37';
4
+ import { GetAuthenticatorsResponse } from '@perpx/proto/src/codegen/perpx/accountplus/query';
5
+ import { Order_TimeInForce } from '@perpx/proto/src/codegen/perpx/clob/order';
6
+ import { GovAddNewMarketParams, OrderFlags } from '../types';
7
+ import { Authenticator, AuthenticatorType, Network, OrderExecution, OrderSide, OrderTimeInForce, OrderType, SelectedGasDenom } from './constants';
8
+ import { IndexerClient } from './indexer-client';
9
+ import LocalWallet from './modules/local-wallet';
10
+ import { SubaccountInfo } from './subaccount';
11
+ import { BroadcastMode, IBuilderCodeParameters, ITwapParameters, OrderBatch } from './types';
12
+ import { ValidatorClient } from './validator-client';
13
+ export interface MarketInfo {
14
+ clobPairId: number;
15
+ atomicResolution: number;
16
+ stepBaseQuantums: number;
17
+ quantumConversionExponent: number;
18
+ subticksPerTick: number;
19
+ }
20
+ export interface OrderBatchWithMarketId {
21
+ marketId: string;
22
+ clobPairId?: number;
23
+ clientIds: number[];
24
+ }
25
+ export type PlaceOrderPayload = {
26
+ subaccountNumber: number;
27
+ marketId: string;
28
+ type: OrderType;
29
+ side: OrderSide;
30
+ price: number;
31
+ size: number;
32
+ clientId: number;
33
+ timeInForce?: OrderTimeInForce;
34
+ goodTilTimeInSeconds?: number;
35
+ execution?: OrderExecution;
36
+ postOnly?: boolean;
37
+ reduceOnly?: boolean;
38
+ triggerPrice?: number;
39
+ marketInfo?: MarketInfo;
40
+ currentHeight?: number;
41
+ goodTilBlock?: number;
42
+ twapParameters?: ITwapParameters;
43
+ builderCodeParameters?: IBuilderCodeParameters;
44
+ orderRouterAddress?: string;
45
+ };
46
+ export type CancelRawOrderPayload = {
47
+ subaccountNumber: number;
48
+ clientId: number;
49
+ orderFlags: OrderFlags;
50
+ clobPairId: number;
51
+ goodTilBlock?: number;
52
+ goodTilBlockTime?: number;
53
+ };
54
+ export type TransferToSubaccountPayload = {
55
+ sourceSubaccountNumber: number;
56
+ recipientSubaccountNumber: number;
57
+ transferAmount: string;
58
+ };
59
+ export declare class CompositeClient {
60
+ readonly network: Network;
61
+ gasDenom: SelectedGasDenom;
62
+ private _indexerClient;
63
+ private _validatorClient?;
64
+ /**
65
+ * @description Create and initialize a composite client for a network.
66
+ */
67
+ static connect(network: Network): Promise<CompositeClient>;
68
+ private constructor();
69
+ private initialize;
70
+ /**
71
+ * @description Get the underlying indexer client.
72
+ */
73
+ get indexerClient(): IndexerClient;
74
+ /**
75
+ * @description Get the underlying validator client.
76
+ */
77
+ get validatorClient(): ValidatorClient;
78
+ /**
79
+ * @description Get the currently selected gas denom.
80
+ */
81
+ get selectedGasDenom(): SelectedGasDenom | undefined;
82
+ /**
83
+ * @description Set the gas denom used for transaction fees.
84
+ */
85
+ setSelectedGasDenom(gasDenom: SelectedGasDenom): void;
86
+ /**
87
+ * @description Preload account numbers for faster signing.
88
+ */
89
+ populateAccountNumberCache(address: string): Promise<void>;
90
+ /**
91
+ * @description Sign a list of messages with a wallet.
92
+ * the calling function is responsible for creating the messages.
93
+ *
94
+ * @throws UnexpectedClientError if a malformed response is returned with no GRPC error
95
+ * at any point.
96
+ * @returns The Signature.
97
+ */
98
+ sign(subaccount: SubaccountInfo, messaging: () => Promise<EncodeObject[]>, zeroFee: boolean, gasPrice?: GasPrice, memo?: string, account?: () => Promise<Account>): Promise<Uint8Array>;
99
+ /**
100
+ * @description Send a list of messages with a wallet.
101
+ * the calling function is responsible for creating the messages.
102
+ *
103
+ * @throws UnexpectedClientError if a malformed response is returned with no GRPC error
104
+ * at any point.
105
+ * @returns The Transaction Hash.
106
+ */
107
+ send(subaccount: SubaccountInfo, messaging: () => Promise<EncodeObject[]>, zeroFee: boolean, gasPrice?: GasPrice, memo?: string, broadcastMode?: BroadcastMode, account?: () => Promise<Account>): Promise<BroadcastTxAsyncResponse | BroadcastTxSyncResponse | IndexedTx>;
108
+ /**
109
+ * @description Send a signed transaction.
110
+ *
111
+ * @param signedTransaction The signed transaction to send.
112
+ *
113
+ * @throws UnexpectedClientError if a malformed response is returned with no GRPC error
114
+ * at any point.
115
+ * @returns The Transaction Hash.
116
+ */
117
+ sendSignedTransaction(signedTransaction: Uint8Array): Promise<BroadcastTxAsyncResponse | BroadcastTxSyncResponse | IndexedTx>;
118
+ /**
119
+ * @description Simulate a list of messages with a wallet.
120
+ * the calling function is responsible for creating the messages.
121
+ *
122
+ * To send multiple messages with gas estimate:
123
+ * 1. Client is responsible for creating the messages.
124
+ * 2. Call simulate() to get the gas estimate.
125
+ * 3. Call send() to send the messages.
126
+ *
127
+ * @throws UnexpectedClientError if a malformed response is returned with no GRPC error
128
+ * at any point.
129
+ * @returns The gas estimate.
130
+ */
131
+ simulate(subaccount: SubaccountInfo, messaging: () => Promise<EncodeObject[]>, gasPrice?: GasPrice, memo?: string, account?: () => Promise<Account>): Promise<StdFee>;
132
+ /**
133
+ * @description Calculate the goodTilBlock value for a SHORT_TERM order
134
+ *
135
+ * @throws UnexpectedClientError if a malformed response is returned with no GRPC error
136
+ * at any point.
137
+ * @returns The goodTilBlock value
138
+ */
139
+ private calculateGoodTilBlock;
140
+ /**
141
+ * @description Validate the goodTilBlock value for a SHORT_TERM order
142
+ *
143
+ * @param goodTilBlock Number of blocks from the current block height the order will
144
+ * be valid for.
145
+ *
146
+ * @throws UserError if the goodTilBlock value is not valid given latest block height and
147
+ * SHORT_BLOCK_WINDOW.
148
+ */
149
+ private validateGoodTilBlock;
150
+ /**
151
+ * @description Calculate the goodTilBlockTime value for a LONG_TERM order
152
+ * the calling function is responsible for creating the messages.
153
+ *
154
+ * @param goodTilTimeInSeconds The goodTilTimeInSeconds of the order to place.
155
+ *
156
+ * @throws UnexpectedClientError if a malformed response is returned with no GRPC error
157
+ * at any point.
158
+ * @returns The goodTilBlockTime value
159
+ */
160
+ private calculateGoodTilBlockTime;
161
+ /**
162
+ * @description Place a short term order with human readable input.
163
+ *
164
+ * Use human readable form of input, including price and size
165
+ * The quantum and subticks are calculated and submitted
166
+ *
167
+ * @param subaccount The subaccount to place the order under
168
+ * @param marketId The market to place the order on
169
+ * @param side The side of the order to place
170
+ * @param price The price of the order to place
171
+ * @param size The size of the order to place
172
+ * @param clientId The client id of the order to place
173
+ * @param timeInForce The time in force of the order to place
174
+ * @param goodTilBlock The goodTilBlock of the order to place
175
+ * @param reduceOnly The reduceOnly of the order to place
176
+ *
177
+ *
178
+ * @throws UnexpectedClientError if a malformed response is returned with no GRPC error
179
+ * at any point.
180
+ * @returns The transaction hash.
181
+ */
182
+ placeShortTermOrder(subaccount: SubaccountInfo, marketId: string, side: OrderSide, price: number, size: number, clientId: number, goodTilBlock: number, timeInForce: Order_TimeInForce, reduceOnly: boolean, memo?: string): Promise<BroadcastTxAsyncResponse | BroadcastTxSyncResponse | IndexedTx>;
183
+ /**
184
+ * @description Place an order with human readable input.
185
+ *
186
+ * Only MARKET and LIMIT types are supported right now
187
+ * Use human readable form of input, including price and size
188
+ * The quantum and subticks are calculated and submitted
189
+ *
190
+ * @param subaccount The subaccount to place the order on.
191
+ * @param marketId The market to place the order on.
192
+ * @param type The type of order to place.
193
+ * @param side The side of the order to place.
194
+ * @param price The price of the order to place.
195
+ * @param size The size of the order to place.
196
+ * @param clientId The client id of the order to place.
197
+ * @param timeInForce The time in force of the order to place.
198
+ * @param goodTilTimeInSeconds The goodTilTimeInSeconds of the order to place.
199
+ * @param execution The execution of the order to place.
200
+ * @param postOnly The postOnly of the order to place.
201
+ * @param reduceOnly The reduceOnly of the order to place.
202
+ * @param triggerPrice The trigger price of conditional orders.
203
+ * @param marketInfo optional market information for calculating quantums and subticks.
204
+ * This can be constructed from Indexer API. If set to null, additional round
205
+ * trip to Indexer API will be made.
206
+ * @param currentHeight Current block height. This can be obtained from ValidatorClient.
207
+ * If set to null, additional round trip to ValidatorClient will be made.
208
+ *
209
+ *
210
+ * @throws UnexpectedClientError if a malformed response is returned with no GRPC error
211
+ * at any point.
212
+ * @returns The transaction hash.
213
+ */
214
+ placeOrder(subaccount: SubaccountInfo, marketId: string, type: OrderType, side: OrderSide, price: number, size: number, clientId: number, timeInForce?: OrderTimeInForce, goodTilTimeInSeconds?: number, execution?: OrderExecution, postOnly?: boolean, reduceOnly?: boolean, triggerPrice?: number, marketInfo?: MarketInfo, currentHeight?: number, goodTilBlock?: number, memo?: string, broadcastMode?: BroadcastMode, twapParameters?: ITwapParameters, builderCodeParameters?: IBuilderCodeParameters, orderRouterAddress?: string): Promise<BroadcastTxAsyncResponse | BroadcastTxSyncResponse | IndexedTx>;
215
+ /**
216
+ * @description Calculate and create the place order message
217
+ *
218
+ * Only MARKET and LIMIT types are supported right now
219
+ * Use human readable form of input, including price and size
220
+ * The quantum and subticks are calculated and submitted
221
+ *
222
+ * @param subaccount The subaccount to place the order under
223
+ * @param marketId The market to place the order on
224
+ * @param type The type of order to place
225
+ * @param side The side of the order to place
226
+ * @param price The price of the order to place
227
+ * @param size The size of the order to place
228
+ * @param clientId The client id of the order to place
229
+ * @param timeInForce The time in force of the order to place
230
+ * @param goodTilTimeInSeconds The goodTilTimeInSeconds of the order to place
231
+ * @param execution The execution of the order to place
232
+ * @param postOnly The postOnly of the order to place
233
+ * @param reduceOnly The reduceOnly of the order to place
234
+ *
235
+ *
236
+ * @throws UnexpectedClientError if a malformed response is returned with no GRPC error
237
+ * at any point.
238
+ * @returns The message to be passed into the protocol
239
+ */
240
+ private placeOrderMessage;
241
+ private retrieveMarketInfo;
242
+ /**
243
+ * @description Calculate and create the short term place order message
244
+ *
245
+ * Use human readable form of input, including price and size
246
+ * The quantum and subticks are calculated and submitted
247
+ *
248
+ * @param subaccount The subaccount to place the order under
249
+ * @param marketId The market to place the order on
250
+ * @param side The side of the order to place
251
+ * @param price The price of the order to place
252
+ * @param size The size of the order to place
253
+ * @param clientId The client id of the order to place
254
+ * @param timeInForce The time in force of the order to place
255
+ * @param goodTilBlock The goodTilBlock of the order to place
256
+ * @param reduceOnly The reduceOnly of the order to place
257
+ *
258
+ *
259
+ * @throws UnexpectedClientError if a malformed response is returned with no GRPC error
260
+ * at any point.
261
+ * @returns The message to be passed into the protocol
262
+ */
263
+ private placeShortTermOrderMessage;
264
+ /**
265
+ * @description Cancel an order with order information from web socket or REST.
266
+ *
267
+ * @param subaccount The subaccount to cancel the order from
268
+ * @param clientId The client id of the order to cancel
269
+ * @param orderFlags The order flags of the order to cancel
270
+ * @param clobPairId The clob pair id of the order to cancel
271
+ * @param goodTilBlock The goodTilBlock of the order to cancel
272
+ * @param goodTilBlockTime The goodTilBlockTime of the order to cancel
273
+ *
274
+ * @throws UnexpectedClientError if a malformed response is returned with no GRPC error
275
+ * at any point.
276
+ * @returns The transaction hash.
277
+ */
278
+ cancelRawOrder(subaccount: SubaccountInfo, clientId: number, orderFlags: OrderFlags, clobPairId: number, goodTilBlock?: number, goodTilBlockTime?: number): Promise<BroadcastTxAsyncResponse | BroadcastTxSyncResponse | IndexedTx>;
279
+ /**
280
+ * @description Cancel an order with human readable input.
281
+ *
282
+ * @param subaccount The subaccount to cancel the order from
283
+ * @param clientId The client id of the order to cancel
284
+ * @param orderFlags The order flags of the order to cancel
285
+ * @param marketId The market to cancel the order on
286
+ * @param goodTilBlock The goodTilBlock of the order to cancel
287
+ * @param goodTilBlockTime The goodTilBlockTime of the order to cancel
288
+ *
289
+ * @throws UnexpectedClientError if a malformed response is returned with no GRPC error
290
+ * at any point.
291
+ * @returns The transaction hash.
292
+ */
293
+ cancelOrder(subaccount: SubaccountInfo, clientId: number, orderFlags: OrderFlags, marketId: string, goodTilBlock?: number, goodTilTimeInSeconds?: number): Promise<BroadcastTxAsyncResponse | BroadcastTxSyncResponse | IndexedTx>;
294
+ /**
295
+ * @description Batch cancel short term orders using marketId to clobPairId translation.
296
+ *
297
+ * @param subaccount The subaccount to cancel the order from
298
+ * @param shortTermOrders The list of short term order batches to cancel with marketId
299
+ * @param goodTilBlock The goodTilBlock of the order to cancel
300
+ * @returns The transaction hash.
301
+ */
302
+ batchCancelShortTermOrdersWithMarketId(subaccount: SubaccountInfo, shortTermOrders: OrderBatchWithMarketId[], goodTilBlock: number, broadcastMode?: BroadcastMode): Promise<BroadcastTxAsyncResponse | BroadcastTxSyncResponse | IndexedTx>;
303
+ /**
304
+ * @description Batch cancel short term orders using clobPairId.
305
+ *
306
+ * @param subaccount The subaccount to cancel the order from
307
+ * @param shortTermOrders The list of short term order batches to cancel with clobPairId
308
+ * @param goodTilBlock The goodTilBlock of the order to cancel
309
+ * @returns The transaction hash.
310
+ */
311
+ batchCancelShortTermOrdersWithClobPairId(subaccount: SubaccountInfo, shortTermOrders: OrderBatch[], goodTilBlock: number, broadcastMode?: BroadcastMode): Promise<BroadcastTxAsyncResponse | BroadcastTxSyncResponse | IndexedTx>;
312
+ /**
313
+ * @description Transfer from a subaccount to another subaccount
314
+ *
315
+ * @param subaccount The subaccount to transfer from
316
+ * @param recipientAddress The recipient address
317
+ * @param recipientSubaccountNumber The recipient subaccount number
318
+ * @param amount The amount to transfer
319
+ *
320
+ * @throws UnexpectedClientError if a malformed response is returned with no GRPC error
321
+ * at any point.
322
+ * @returns The transaction hash.
323
+ */
324
+ transferToSubaccount(subaccount: SubaccountInfo, recipientAddress: string, recipientSubaccountNumber: number, amount: string, memo?: string, broadcastMode?: BroadcastMode): Promise<BroadcastTxAsyncResponse | BroadcastTxSyncResponse | IndexedTx>;
325
+ /**
326
+ * @description Create message to transfer from a subaccount to another subaccount
327
+ *
328
+ * @param subaccount The subaccount to transfer from
329
+ * @param recipientAddress The recipient address
330
+ * @param recipientSubaccountNumber The recipient subaccount number
331
+ * @param amount The amount to transfer
332
+ *
333
+ *
334
+ * @throws UnexpectedClientError if a malformed response is returned with no GRPC error
335
+ * at any point.
336
+ * @returns The message
337
+ */
338
+ transferToSubaccountMessage(subaccount: SubaccountInfo, recipientAddress: string, recipientSubaccountNumber: number, amount: string): EncodeObject;
339
+ /**
340
+ * @description Deposit from wallet to subaccount
341
+ *
342
+ * @param subaccount The subaccount to deposit to
343
+ * @param amount The amount to deposit
344
+ *
345
+ * @throws UnexpectedClientError if a malformed response is returned with no GRPC error
346
+ * at any point.
347
+ * @returns The transaction hash.
348
+ */
349
+ depositToSubaccount(subaccount: SubaccountInfo, amount: string, memo?: string): Promise<BroadcastTxAsyncResponse | BroadcastTxSyncResponse | IndexedTx>;
350
+ /**
351
+ * @description Create message to deposit from wallet to subaccount
352
+ *
353
+ * @param subaccount The subaccount to deposit to
354
+ * @param amount The amount to deposit
355
+ *
356
+ * @throws UnexpectedClientError if a malformed response is returned with no GRPC error
357
+ * at any point.
358
+ * @returns The message
359
+ */
360
+ depositToSubaccountMessage(subaccount: SubaccountInfo, amount: string): EncodeObject;
361
+ /**
362
+ * @description Withdraw from subaccount to wallet
363
+ *
364
+ * @param subaccount The subaccount to withdraw from
365
+ * @param amount The amount to withdraw
366
+ * @param recipient The recipient address, default to subaccount address
367
+ *
368
+ * @throws UnexpectedClientError if a malformed response is returned with no GRPC error
369
+ * at any point.
370
+ * @returns The transaction hash
371
+ */
372
+ withdrawFromSubaccount(subaccount: SubaccountInfo, amount: string, recipient?: string, memo?: string): Promise<BroadcastTxAsyncResponse | BroadcastTxSyncResponse | IndexedTx>;
373
+ /**
374
+ * @description Create message to withdraw from subaccount to wallet
375
+ * with human readable input.
376
+ *
377
+ * @param subaccount The subaccount to withdraw from
378
+ * @param amount The amount to withdraw
379
+ * @param recipient The recipient address
380
+ *
381
+ * @throws UnexpectedClientError if a malformed response is returned with no GRPC error
382
+ * at any point.
383
+ * @returns The message
384
+ */
385
+ withdrawFromSubaccountMessage(subaccount: SubaccountInfo, amount: string, recipient?: string): EncodeObject;
386
+ /**
387
+ * @description Create message to send chain token from subaccount to wallet
388
+ * with human readable input.
389
+ *
390
+ * @param subaccount The subaccount to withdraw from
391
+ * @param amount The amount to withdraw
392
+ * @param recipient The recipient address
393
+ *
394
+ * @throws UnexpectedClientError if a malformed response is returned with no GRPC error
395
+ * at any point.
396
+ * @returns The message
397
+ */
398
+ sendTokenMessage(wallet: LocalWallet, amount: string, recipient: string): EncodeObject;
399
+ /**
400
+ * @description Sign a place order transaction and return a base64 signature.
401
+ */
402
+ signPlaceOrder(subaccount: SubaccountInfo, marketId: string, type: OrderType, side: OrderSide, price: number, size: number, clientId: number, timeInForce: OrderTimeInForce, goodTilTimeInSeconds: number, execution: OrderExecution, postOnly: boolean, reduceOnly: boolean): Promise<string>;
403
+ /**
404
+ * @description Sign a cancel order transaction and return a base64 signature.
405
+ */
406
+ signCancelOrder(subaccount: SubaccountInfo, clientId: number, orderFlags: OrderFlags, clobPairId: number, goodTilBlock: number, goodTilBlockTime: number): Promise<string>;
407
+ /**
408
+ * @description Batch cancel, transfer, and place stateful orders in one tx.
409
+ */
410
+ bulkCancelAndTransferAndPlaceStatefulOrders(subaccount: SubaccountInfo, cancelOrderPayloads: CancelRawOrderPayload[], transferToSubaccountPayload: TransferToSubaccountPayload | undefined, placeOrderPayloads: PlaceOrderPayload[], memo?: string, broadcastMode?: BroadcastMode): Promise<BroadcastTxAsyncResponse | BroadcastTxSyncResponse | IndexedTx>;
411
+ /**
412
+ * @description Deposit USDC into the megavault.
413
+ */
414
+ depositToMegavault(subaccount: SubaccountInfo, amountUsdc: number, broadcastMode?: BroadcastMode): Promise<BroadcastTxAsyncResponse | BroadcastTxSyncResponse | IndexedTx>;
415
+ /**
416
+ * @description Create a megavault deposit message.
417
+ */
418
+ depositToMegavaultMessage(subaccount: SubaccountInfo, amountUsdc: number): EncodeObject;
419
+ /**
420
+ * @description Withdraw shares from the megavault.
421
+ */
422
+ withdrawFromMegavault(subaccount: SubaccountInfo, shares: number, minAmount: number, broadcastMode?: BroadcastMode): Promise<BroadcastTxAsyncResponse | BroadcastTxSyncResponse | IndexedTx>;
423
+ /**
424
+ * @description Create a megavault withdraw message.
425
+ */
426
+ withdrawFromMegavaultMessage(subaccount: SubaccountInfo, shares: number, minAmount: number): EncodeObject;
427
+ /**
428
+ * @description Submit a governance proposal to add a new market.
429
+ *
430
+ * @param params Parameters neeeded to create a new market.
431
+ * @param title Title of the gov proposal.
432
+ * @param summary Summary of the gov proposal.
433
+ * @param initialDepositAmount Initial deposit amount of the gov proposal.
434
+ * @param proposer proposer of the gov proposal.
435
+ *
436
+ * @returns the transaction hash.
437
+ */
438
+ submitGovAddNewMarketProposal(wallet: LocalWallet, params: GovAddNewMarketParams, title: string, summary: string, initialDepositAmount: string, memo?: string, metadata?: string, expedited?: boolean): Promise<BroadcastTxAsyncResponse | BroadcastTxSyncResponse | IndexedTx>;
439
+ /**
440
+ * @description Create a permissionless market listing transaction.
441
+ */
442
+ createMarketPermissionless(subaccount: SubaccountInfo, ticker: string, broadcastMode?: BroadcastMode, gasAdjustment?: number, memo?: string): Promise<BroadcastTxAsyncResponse | BroadcastTxSyncResponse | IndexedTx>;
443
+ addAuthenticator(subaccount: SubaccountInfo, authenticatorType: AuthenticatorType, data: Uint8Array): Promise<BroadcastTxAsyncResponse | BroadcastTxSyncResponse | IndexedTx>;
444
+ /**
445
+ * @description Remove an authenticator by id.
446
+ */
447
+ removeAuthenticator(subaccount: SubaccountInfo, id: string): Promise<BroadcastTxAsyncResponse | BroadcastTxSyncResponse | IndexedTx>;
448
+ /**
449
+ * @description Fetch authenticators for an account address.
450
+ */
451
+ getAuthenticators(address: string): Promise<GetAuthenticatorsResponse>;
452
+ /**
453
+ * @description Validate that an authenticator config is supported.
454
+ */
455
+ validateAuthenticator(authenticator: Authenticator): boolean;
456
+ }
457
+ //# sourceMappingURL=composite-client.d.ts.map