@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
package/LICENSE ADDED
@@ -0,0 +1,13 @@
1
+ Copyright (C) 2025 PerpX
2
+
3
+ Subject to your compliance with applicable law and the v4 Terms of Use, available at PerpX.exchange/legal, you are granted the right to use the Software (defined below) under the terms of the license as set forth below; provided, however, that if you violate any such applicable law in your use of the Software, all of your rights and licenses to use (including any rights to reproduce, distribute, install or modify) the Software will automatically and immediately terminate.
4
+
5
+ The "Software" shall mean the following: 1119-Labs/perpx-sdk and any PerpX repository reflecting a copy of, or linking to, this license.
6
+
7
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this Software and associated documentation files, to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
8
+ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
9
+
10
+ THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
11
+
12
+ For more information about this software, see https://dydx.exchange.
13
+ Copyright (C) 2025 PerpX
package/README.md ADDED
@@ -0,0 +1,97 @@
1
+ <p align="center"><img src="https://dydx.exchange/icon.svg?" width="256" /></p>
2
+
3
+ <h1 align="center">PerpX Chain Client for Javascript</h1>
4
+
5
+ <div align="center">
6
+ <a href='https://www.npmjs.com/package/@dydxprotocol/v4-client-js'>
7
+ <img src='https://img.shields.io/npm/v/@dydxprotocol/v4-client-js.svg' alt='npm'/>
8
+ </a>
9
+ <a href='https://github.com/1119-Labs/perpx-sdk/blob/main/LICENSE'>
10
+ <img src='https://img.shields.io/badge/License-AGPL_v3-blue.svg' alt='License' />
11
+ </a>
12
+ </div>
13
+
14
+ The v4-Client Typescript client is used for placing transactions and querying the PerpX chain.
15
+
16
+ ## Installation
17
+
18
+ Install the package directly from the GitHub repository:
19
+
20
+ ```bash
21
+ npm install git+https://github.com/1119-Labs/perpx-sdk.git
22
+ ```
23
+
24
+ Or using yarn:
25
+
26
+ ```bash
27
+ yarn add git+https://github.com/1119-Labs/perpx-sdk.git
28
+ ```
29
+
30
+ ## Development
31
+
32
+ `v4-client-js` uses node `v18` for development, see the .nvmrc file [here](https://github.com/1119-Labs/perpx-sdk/blob/main/.nvmrc).
33
+ You can use `nvm` to manage different versions of node.
34
+
35
+ ```
36
+ nvm install
37
+ nvm use
38
+ nvm alias default $(nvm version) # optional
39
+ ```
40
+
41
+ You can run the following commands to ensure that you are running the correct `node` and `npm` versions.
42
+
43
+ ```
44
+ node -v # expected: v20.x.x (should match .nvmrc)
45
+ npm -v # expected: 10.x.x
46
+ ```
47
+
48
+ ### 1. Clone or fork the V4 clients repo
49
+
50
+ ```bash
51
+ git clone git@github.com:1119-Labs/perpx-sdk.git
52
+ ```
53
+
54
+ ### 2. Go to one of the examples
55
+
56
+ - Go to `v4-client-js/examples`
57
+
58
+ ```bash
59
+ cd v4-client-js/examples
60
+ ```
61
+
62
+ These examples by default use a test account with `PERPX_TEST_MNEMONIC` from the TS client library under `v4-client-js/examples/constants`, but you can use any test address that you own.
63
+
64
+ ### 3. Run the scripts with node
65
+
66
+ ```bash
67
+ npm install
68
+ npm run build
69
+ ```
70
+
71
+ You should now see a `/build/examples` dir generated with JS files. We will use node to run these scripts
72
+
73
+ - Open a terminal to run an example, e.g. account_endpoints.
74
+
75
+ ```bash
76
+ node ../build/examples/composite_example.js
77
+
78
+ ```
79
+
80
+ Everytime you change the TS code, you need to run `npm run build` again, before you execute using node.
81
+
82
+ ## Single-JS for mobile apps
83
+
84
+ Mobile apps needs to load JS as a single JS file. To build, run
85
+
86
+ ```
87
+ npm run webpack
88
+ ```
89
+
90
+ The file is generated in **native**/**ios**/v4-native-client.js
91
+ Pending: Different configurations may be needed to generate JS for Android app
92
+
93
+ ## Release
94
+
95
+ Using the `npm version` command will update the appropriate version tags within the package locks and also will add a git tag with the version number..
96
+ For example `npm version minor` will perform the necessary changes for a minor version release. After the change is merged, a GitHub action will
97
+ [publish](https://github.com/1119-Labs/perpx-sdk/blob/main/.github/workflows/js-publish.yml) the new release.
@@ -0,0 +1,130 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const src_1 = require("../../src");
4
+ const composite_client_1 = require("../../src/clients/composite-client");
5
+ describe('CompositeClient', () => {
6
+ describe('validateAuthenticators', () => {
7
+ const network = src_1.Network.testnet();
8
+ it('Validates top level AnyOf authenticators', async () => {
9
+ const client = await composite_client_1.CompositeClient.connect(network);
10
+ const auth = {
11
+ type: src_1.AuthenticatorType.ANY_OF,
12
+ config: [
13
+ { type: src_1.AuthenticatorType.SIGNATURE_VERIFICATION, config: "" },
14
+ { type: src_1.AuthenticatorType.SIGNATURE_VERIFICATION, config: "" },
15
+ ],
16
+ };
17
+ expect(client.validateAuthenticator(auth)).toEqual(true);
18
+ });
19
+ it('Fails top level AnyOf authenticators with non-signature nested authenticator', async () => {
20
+ const client = await composite_client_1.CompositeClient.connect(network);
21
+ const auth = {
22
+ type: src_1.AuthenticatorType.ANY_OF,
23
+ config: [
24
+ { type: src_1.AuthenticatorType.SIGNATURE_VERIFICATION, config: "" },
25
+ { type: src_1.AuthenticatorType.MESSAGE_FILTER, config: "" },
26
+ ],
27
+ };
28
+ expect(client.validateAuthenticator(auth)).toEqual(false);
29
+ });
30
+ it('Validates top level AllOf authenticators', async () => {
31
+ const client = await composite_client_1.CompositeClient.connect(network);
32
+ const auth = {
33
+ type: src_1.AuthenticatorType.ALL_OF,
34
+ config: [
35
+ { type: src_1.AuthenticatorType.SIGNATURE_VERIFICATION, config: "" },
36
+ { type: src_1.AuthenticatorType.MESSAGE_FILTER, config: "" },
37
+ ],
38
+ };
39
+ expect(client.validateAuthenticator(auth)).toEqual(true);
40
+ });
41
+ it('Fails top level AllOf authenticators, without signature verification', async () => {
42
+ const client = await composite_client_1.CompositeClient.connect(network);
43
+ const auth = {
44
+ type: src_1.AuthenticatorType.ALL_OF,
45
+ config: [
46
+ { type: src_1.AuthenticatorType.MESSAGE_FILTER, config: "" },
47
+ { type: src_1.AuthenticatorType.MESSAGE_FILTER, config: "" },
48
+ ],
49
+ };
50
+ expect(client.validateAuthenticator(auth)).toEqual(false);
51
+ });
52
+ it('Validates nested anyOf authenticators', async () => {
53
+ const client = await composite_client_1.CompositeClient.connect(network);
54
+ const nestedAnyOf = {
55
+ type: src_1.AuthenticatorType.ANY_OF,
56
+ config: [
57
+ { type: src_1.AuthenticatorType.MESSAGE_FILTER, config: "" },
58
+ { type: src_1.AuthenticatorType.MESSAGE_FILTER, config: "" },
59
+ ]
60
+ };
61
+ const signatureVerification = {
62
+ type: src_1.AuthenticatorType.SIGNATURE_VERIFICATION,
63
+ config: ""
64
+ };
65
+ const auth = {
66
+ type: src_1.AuthenticatorType.ALL_OF,
67
+ config: [signatureVerification, nestedAnyOf],
68
+ };
69
+ expect(client.validateAuthenticator(auth)).toEqual(true);
70
+ });
71
+ it('Validates nested allOf authenticators', async () => {
72
+ const client = await composite_client_1.CompositeClient.connect(network);
73
+ const nestedAllOf = {
74
+ type: src_1.AuthenticatorType.ALL_OF,
75
+ config: [
76
+ { type: src_1.AuthenticatorType.SIGNATURE_VERIFICATION, config: "" },
77
+ { type: src_1.AuthenticatorType.SIGNATURE_VERIFICATION, config: "" },
78
+ ]
79
+ };
80
+ const messageVerification = {
81
+ type: src_1.AuthenticatorType.MESSAGE_FILTER,
82
+ config: ""
83
+ };
84
+ const auth = {
85
+ type: src_1.AuthenticatorType.ALL_OF,
86
+ config: [messageVerification, nestedAllOf],
87
+ };
88
+ expect(client.validateAuthenticator(auth)).toEqual(true);
89
+ });
90
+ it('Fails nested anyOf signatureVerification authenticators', async () => {
91
+ const client = await composite_client_1.CompositeClient.connect(network);
92
+ const nestedAnyOf = {
93
+ type: src_1.AuthenticatorType.ANY_OF,
94
+ config: [
95
+ { type: src_1.AuthenticatorType.MESSAGE_FILTER, config: "" },
96
+ { type: src_1.AuthenticatorType.SIGNATURE_VERIFICATION, config: "" },
97
+ ]
98
+ };
99
+ const messageVerification = {
100
+ type: src_1.AuthenticatorType.MESSAGE_FILTER,
101
+ config: ""
102
+ };
103
+ const auth = {
104
+ type: src_1.AuthenticatorType.ALL_OF,
105
+ config: [messageVerification, nestedAnyOf],
106
+ };
107
+ expect(client.validateAuthenticator(auth)).toEqual(false);
108
+ });
109
+ it('Fails nested anyOf authenticators', async () => {
110
+ const client = await composite_client_1.CompositeClient.connect(network);
111
+ const nestedAnyOf = {
112
+ type: src_1.AuthenticatorType.ANY_OF,
113
+ config: [
114
+ { type: src_1.AuthenticatorType.MESSAGE_FILTER, config: "" },
115
+ { type: src_1.AuthenticatorType.SIGNATURE_VERIFICATION, config: "" },
116
+ ]
117
+ };
118
+ const messageVerification = {
119
+ type: src_1.AuthenticatorType.MESSAGE_FILTER,
120
+ config: ""
121
+ };
122
+ const auth = {
123
+ type: src_1.AuthenticatorType.ANY_OF,
124
+ config: [messageVerification, nestedAnyOf],
125
+ };
126
+ expect(client.validateAuthenticator(auth)).toEqual(false);
127
+ });
128
+ });
129
+ });
130
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9zaXRlLWNsaWVudC50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vX190ZXN0c19fL2NsaWVudHMvY29tcG9zaXRlLWNsaWVudC50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsbUNBQXNFO0FBQ3RFLHlFQUFvRTtBQUVwRSxRQUFRLENBQUMsaUJBQWlCLEVBQUUsR0FBRyxFQUFFO0lBQy9CLFFBQVEsQ0FBQyx3QkFBd0IsRUFBRSxHQUFHLEVBQUU7UUFDdEMsTUFBTSxPQUFPLEdBQUcsYUFBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBRWxDLEVBQUUsQ0FBQywwQ0FBMEMsRUFBRSxLQUFLLElBQUksRUFBRTtZQUN4RCxNQUFNLE1BQU0sR0FBRyxNQUFNLGtDQUFlLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3RELE1BQU0sSUFBSSxHQUFrQjtnQkFDMUIsSUFBSSxFQUFFLHVCQUFpQixDQUFDLE1BQU07Z0JBQzlCLE1BQU0sRUFBRTtvQkFDTixFQUFFLElBQUksRUFBRSx1QkFBaUIsQ0FBQyxzQkFBc0IsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFO29CQUM5RCxFQUFFLElBQUksRUFBRSx1QkFBaUIsQ0FBQyxzQkFBc0IsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFO2lCQUMvRDthQUNGLENBQUE7WUFDRCxNQUFNLENBQUMsTUFBTSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNELENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLDhFQUE4RSxFQUFFLEtBQUssSUFBSSxFQUFFO1lBQzVGLE1BQU0sTUFBTSxHQUFHLE1BQU0sa0NBQWUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDdEQsTUFBTSxJQUFJLEdBQWtCO2dCQUMxQixJQUFJLEVBQUUsdUJBQWlCLENBQUMsTUFBTTtnQkFDOUIs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
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BaseWallet = exports.BaseStargateSigningClient = exports.BaseQueryClient = exports.BaseTendermintClient = void 0;
4
+ /* eslint-disable @typescript-eslint/no-empty-function */
5
+ class BaseTendermintClient {
6
+ async block() { }
7
+ async broadcastTxSync() { }
8
+ async broadcastTxAsync() { }
9
+ async txSearchAll() { }
10
+ }
11
+ exports.BaseTendermintClient = BaseTendermintClient;
12
+ class BaseQueryClient {
13
+ constructor() {
14
+ this.tx = {
15
+ async simulate() { },
16
+ };
17
+ }
18
+ async queryUnverified() { }
19
+ }
20
+ exports.BaseQueryClient = BaseQueryClient;
21
+ class BaseStargateSigningClient {
22
+ async sign() { }
23
+ }
24
+ exports.BaseStargateSigningClient = BaseStargateSigningClient;
25
+ class BaseWallet {
26
+ async getAccounts() { }
27
+ }
28
+ exports.BaseWallet = BaseWallet;
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZUNsaWVudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9fX3Rlc3RzX18vaGVscGVycy9iYXNlQ2xpZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5REFBeUQ7QUFDekQsTUFBYSxvQkFBb0I7SUFDL0IsS0FBSyxDQUFDLEtBQUssS0FBbUIsQ0FBQztJQUMvQixLQUFLLENBQUMsZUFBZSxLQUFtQixDQUFDO0lBQ3pDLEtBQUssQ0FBQyxnQkFBZ0IsS0FBbUIsQ0FBQztJQUMxQyxLQUFLLENBQUMsV0FBVyxLQUFtQixDQUFDO0NBQ3RDO0FBTEQsb0RBS0M7QUFFRCxNQUFhLGVBQWU7SUFBNUI7UUFDRSxPQUFFLEdBQUc7WUFDSCxLQUFLLENBQUMsUUFBUSxLQUFtQixDQUFDO1NBQ25DLENBQUM7SUFHSixDQUFDO0lBREMsS0FBSyxDQUFDLGVBQWUsS0FBbUIsQ0FBQztDQUMxQztBQU5ELDBDQU1DO0FBRUQsTUFBYSx5QkFBeUI7SUFDcEMsS0FBSyxDQUFDLElBQUksS0FBbUIsQ0FBQztDQUMvQjtBQUZELDhEQUVDO0FBRUQsTUFBYSxVQUFVO0lBQ3JCLEtBQUssQ0FBQyxXQUFXLEtBQW1CLENBQUM7Q0FDdEM7QUFGRCxnQ0FFQyJ9
@@ -0,0 +1,110 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.MNEMONIC_FROM_SIGNATURE_RESULT = exports.PUBLIC_KEY_FROM_SIGNATURE_RESULT = exports.PRIVATE_KEY_FROM_SIGNATURE_RESULT = exports.ENTROPY_FROM_SIGNATURE_RESULT = exports.SIGNATURE_RESULT = exports.defaultTransfer = exports.defaultBatchCancelOrder = exports.defaultCancelOrder = exports.orderRouterOrder = exports.builderOrder = exports.twapOrder = exports.defaultOrder = exports.defaultTransactionOptions = exports.TEST_HOST = exports.TEST_CHAIN_ID = exports.TEST_RECIPIENT_ADDRESS = exports.TEST_ADDRESS = void 0;
7
+ const long_1 = __importDefault(require("long"));
8
+ const utils_1 = require("../../src/lib/utils");
9
+ const types_1 = require("../../src/types");
10
+ exports.TEST_ADDRESS = 'perpx1vl9h9nkmau4e9v7tm30wekespu3d2qhd9a9g90';
11
+ exports.TEST_RECIPIENT_ADDRESS = 'perpx1slanxj8x9ntk9knwa6cvfv2tzlsq5gk3dcax5a';
12
+ exports.TEST_CHAIN_ID = 'localperpxprotocol';
13
+ exports.TEST_HOST = 'http://localhost:26657';
14
+ exports.defaultTransactionOptions = {
15
+ accountNumber: 1,
16
+ sequence: 10,
17
+ chainId: exports.TEST_CHAIN_ID,
18
+ };
19
+ // PlaceOrder variables
20
+ exports.defaultOrder = {
21
+ clientId: 0,
22
+ orderFlags: types_1.OrderFlags.SHORT_TERM,
23
+ clobPairId: types_1.ClobPairId.PERPETUAL_PAIR_BTC_USD,
24
+ side: types_1.Order_Side.SIDE_BUY,
25
+ quantums: long_1.default.fromNumber(10),
26
+ subticks: long_1.default.fromNumber(100),
27
+ goodTilBlock: 10000,
28
+ timeInForce: types_1.Order_TimeInForce.TIME_IN_FORCE_UNSPECIFIED,
29
+ reduceOnly: false,
30
+ clientMetadata: 0,
31
+ // New optional fields
32
+ twapParameters: undefined,
33
+ builderCodeParameters: undefined,
34
+ orderRouterAddress: undefined,
35
+ };
36
+ // PlaceOrder with TWAP parameters for testing
37
+ exports.twapOrder = {
38
+ ...exports.defaultOrder,
39
+ clientId: 1,
40
+ twapParameters: {
41
+ duration: 3600, // 1 hour
42
+ interval: 300, // 5 minutes
43
+ priceTolerance: 50000, // 5% in ppm
44
+ },
45
+ };
46
+ // PlaceOrder with builder code parameters for testing
47
+ exports.builderOrder = {
48
+ ...exports.defaultOrder,
49
+ clientId: 2,
50
+ builderCodeParameters: {
51
+ builderAddress: 'perpx1test_builder_address',
52
+ feePpm: 1000, // 0.1% fee
53
+ }
54
+ };
55
+ exports.orderRouterOrder = {
56
+ ...exports.defaultOrder,
57
+ clientId: 2,
58
+ orderRouterAddress: 'perpx1test_router_address',
59
+ };
60
+ // CancelOrder variables
61
+ exports.defaultCancelOrder = {
62
+ clientId: (0, utils_1.generateRandomClientId)(),
63
+ orderFlags: types_1.OrderFlags.SHORT_TERM,
64
+ clobPairId: types_1.ClobPairId.PERPETUAL_PAIR_BTC_USD,
65
+ goodTilBlock: 4250,
66
+ };
67
+ // BatchCancelOrder variables
68
+ exports.defaultBatchCancelOrder = {
69
+ shortTermOrders: [
70
+ {
71
+ clobPairId: types_1.ClobPairId.PERPETUAL_PAIR_BTC_USD,
72
+ clientIds: [(0, utils_1.generateRandomClientId)(), (0, utils_1.generateRandomClientId)()],
73
+ },
74
+ ],
75
+ goodTilBlock: 4250,
76
+ };
77
+ // Transfer variables
78
+ exports.defaultTransfer = {
79
+ sender: {
80
+ owner: exports.TEST_ADDRESS,
81
+ number: 0,
82
+ },
83
+ recipient: {
84
+ owner: 'perpx14063jves4u9zhm7eja5ltf3t8zspxd92qmuh6e',
85
+ number: 0,
86
+ },
87
+ assetId: 0,
88
+ amount: long_1.default.fromNumber(1000),
89
+ };
90
+ // ------ Onboarding Constants ------ //
91
+ // Base Signature Result
92
+ exports.SIGNATURE_RESULT = '0xf2006b4fc0afa08a6048b40d3d67e437ac2e20e6bacf3f947f9b33aa2756d204287f5fb2155bec067d879a25d7ddac791826cf28e2786919065e19848020f1531b';
93
+ // Derived privateKeyBytes from Base Signature Result
94
+ exports.ENTROPY_FROM_SIGNATURE_RESULT = new Uint8Array([
95
+ 247, 183, 226, 106, 76, 125, 241, 35, 149, 75, 103, 180, 165, 243, 80, 128, 34, 20, 238, 201, 131,
96
+ 180, 61, 76, 223, 179, 37, 211, 144, 197, 171, 251,
97
+ ]);
98
+ // Derived HDKey privateKey from Base Signature Result
99
+ exports.PRIVATE_KEY_FROM_SIGNATURE_RESULT = new Uint8Array([
100
+ 14, 92, 178, 198, 64, 65, 27, 153, 11, 45, 118, 194, 71, 194, 10, 140, 145, 40, 203, 107, 231,
101
+ 191, 138, 220, 168, 104, 28, 69, 58, 193, 203, 213,
102
+ ]);
103
+ // Derived HDKey publicKey from Base Signature Result
104
+ exports.PUBLIC_KEY_FROM_SIGNATURE_RESULT = new Uint8Array([
105
+ 2, 204, 94, 45, 7, 83, 196, 55, 195, 107, 10, 35, 169, 32, 24, 37, 193, 196, 34, 210, 84, 26, 107,
106
+ 89, 119, 240, 211, 63, 187, 34, 162, 197, 36,
107
+ ]);
108
+ // Derived HDKey mnemonic from Base Signature Result
109
+ exports.MNEMONIC_FROM_SIGNATURE_RESULT = 'waste sample once ocean tenant mushroom festival hollow regret convince stage able candy jazz champion isolate diary group under entry decorate glare quiz job';
110
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vX190ZXN0c19fL2hlbHBlcnMvY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLGdEQUF3QjtBQUV4QiwrQ0FBNkQ7QUFDN0QsMkNBVXlCO0FBRVosUUFBQSxZQUFZLEdBQVcsOENBQThDLENBQUM7QUFDdEUsUUFBQSxzQkFBc0IsR0FBVyw4Q0FBOEMsQ0FBQztBQUNoRixRQUFBLGFBQWEsR0FBVyxvQkFBb0IsQ0FBQztBQUM3QyxRQUFBLFNBQVMsR0FBVyx3QkFBd0IsQ0FBQztBQUU3QyxRQUFBLHlCQUF5QixHQUF1QjtJQUMzRCxhQUFhLEVBQUUsQ0FBQztJQUNoQixRQUFRLEVBQUUsRUFBRTtJQUNaLE9BQU8sRUFBRSxxQkFBYTtDQUN2QixDQUFDO0FBRUYsdUJBQXVCO0FBQ1YsUUFBQSxZQUFZLEdBQWdCO0lBQ3ZDLFFBQVEsRUFBRSxDQUFDO0lBQ1gsVUFBVSxFQUFFLGtCQUFVLENBQUMsVUFBVTtJQUNqQyxVQUFVLEVBQUUsa0JBQVUsQ0FBQyxzQkFBc0I7SUFDN0MsSUFBSSxFQUFFLGtCQUFVLENBQUMsUUFBUTtJQUN6QixRQUFRLEVBQUUsY0FBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7SUFDN0IsUUFBUSxFQUFFLGNBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDO0lBQzlCLFlBQVksRUFBRSxLQUFLO0lBQ25CLFdBQVcsRUFBRSx5QkFBaUIsQ0FBQyx5QkFBeUI7SUFDeEQsVUFBVSxFQUFFLEtBQUs7SUFDakIsY0FBYyxFQUFFLENBQUM7SUFDakIsc0JBQXNCO0lBQ3RCLGNBQWMsRUFBRSxTQUFTO0lBQ3pCLHFCQUFxQixFQUFFLFNBQVM7SUFDaEMsa0JBQWtCLEVBQUUsU0FBUztDQUM5QixDQUFDO0FBRUYsOENBQThDO0FBQ2pDLFFBQUEsU0FBUyxHQUFnQjtJQUNwQyxHQUFHLG9CQUFZO0lBQ2YsUUFBUSxF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
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const constants_1 = require("../../src/lib/constants");
7
+ const helpers_1 = require("../../src/lib/helpers");
8
+ const constants_2 = require("../helpers/constants");
9
+ const chain_helpers_1 = require("../../src/clients/helpers/chain-helpers");
10
+ const long_1 = __importDefault(require("long"));
11
+ describe('helpers', () => {
12
+ describe('calculateSubticks', () => {
13
+ it('correctly handles decimals', () => {
14
+ expect((0, chain_helpers_1.calculateSubticks)(8.45, -7, -9, 1000000)).toEqual(new long_1.default(845000000));
15
+ });
16
+ });
17
+ describe('calculateQuantums', () => {
18
+ it('correctly handles decimals', () => {
19
+ expect((0, chain_helpers_1.calculateQuantums)(0.0003, -10, 1000000)).toEqual(new long_1.default(3000000));
20
+ });
21
+ });
22
+ describe('convertPartialTransactionOptionsToFull', () => it.each([
23
+ [
24
+ 'partial transactionOptions',
25
+ {
26
+ accountNumber: constants_2.defaultTransactionOptions.accountNumber,
27
+ chainId: constants_2.defaultTransactionOptions.chainId,
28
+ },
29
+ { ...constants_2.defaultTransactionOptions, sequence: constants_1.DEFAULT_SEQUENCE },
30
+ ],
31
+ ['undefined transactionOptions', undefined, undefined],
32
+ ])('convertPartialTransactionOptionsToFull: %s', (_name, partialTransactionOptions, expectedResult) => {
33
+ const transactionOptions = (0, helpers_1.convertPartialTransactionOptionsToFull)(partialTransactionOptions);
34
+ expect(expectedResult).toEqual(transactionOptions);
35
+ }));
36
+ describe('stripHexPrefix', () => {
37
+ it('strips 0x prefix', () => {
38
+ expect((0, helpers_1.stripHexPrefix)('0x123')).toEqual('123');
39
+ });
40
+ it('returns input if no prefix', () => {
41
+ expect((0, helpers_1.stripHexPrefix)('10x23')).toEqual('10x23');
42
+ });
43
+ });
44
+ });
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vX190ZXN0c19fL2xpYi9oZWxwZXJzLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFDQSx1REFBMkQ7QUFDM0QsbURBQStGO0FBQy9GLG9EQUFpRTtBQUNqRSwyRUFBK0Y7QUFDL0YsZ0RBQXdCO0FBRXhCLFFBQVEsQ0FBQyxTQUFTLEVBQUUsR0FBRyxFQUFFO0lBQ3ZCLFFBQVEsQ0FBQyxtQkFBbUIsRUFBRSxHQUFHLEVBQUU7UUFDakMsRUFBRSxDQUFDLDRCQUE0QixFQUFFLEdBQUcsRUFBRTtZQUNwQyxNQUFNLENBQUMsSUFBQSxpQ0FBaUIsRUFBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxjQUFJLENBQUMsU0FBVyxDQUFDLENBQUMsQ0FBQztRQUNsRixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0lBRUgsUUFBUSxDQUFDLG1CQUFtQixFQUFFLEdBQUcsRUFBRTtRQUNqQyxFQUFFLENBQUMsNEJBQTRCLEVBQUUsR0FBRyxFQUFFO1lBQ3BDLE1BQU0sQ0FBQyxJQUFBLGlDQUFpQixFQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLGNBQUksQ0FBQyxPQUFTLENBQUMsQ0FBQyxDQUFDO1FBQy9FLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCxRQUFRLENBQUMsd0NBQXdDLEVBQUUsR0FBRyxFQUFFLENBQ3RELEVBQUUsQ0FBQyxJQUFJLENBQUM7UUFDTjtZQUNFLDRCQUE0QjtZQUM1QjtnQkFDRSxhQUFhLEVBQUUscUNBQXlCLENBQUMsYUFBYTtnQkFDdEQsT0FBTyxFQUFFLHFDQUF5QixDQUFDLE9BQU87YUFDM0M7WUFDRCxFQUFFLEdBQUcscUNBQXlCLEVBQUUsUUFBUSxFQUFFLDRCQUFnQixFQUFFO1NBQzdEO1FBQ0QsQ0FBQyw4QkFBOEIsRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFDO0tBQ3ZELENBQUMsQ0FDQSw0Q0FBNEMsRUFDNUMsQ0FDRSxLQUFhLEVBQ2IseUJBQWdFLEVBQ2hFLGNBQThDLEVBQzlDLEVBQUU7UUFDRixNQUFNLGtCQUFrQixHQUN0QixJQUFBLGdEQUFzQyxFQUFDLHlCQUF5QixDQUFDLENBQUM7UUFDcEUsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3JELENBQUMsQ0FDRixDQUFDLENBQUM7SUFFTCxRQUFRLENBQUMsZ0JBQWdCLEVBQUUsR0FBRyxFQUFFO1FBQzlCLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxHQUFHLEVBQUU7WUFDMUIsTUFBTSxDQUFDLElBQUEsd0JBQWMsRUFBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqRCxDQUFDLENBQUMsQ0FBQztRQUNILEVBQUUsQ0FBQyw0QkFBNEIsRUFBRSxHQUFHLEVBQUU7WUFDcEMsTUFBTSxDQUFDLElBQUEsd0JBQWMsRUFBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNuRCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMifQ==
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const constants_1 = require("../../src/lib/constants");
4
+ const utils_1 = require("../../src/lib/utils");
5
+ describe('lib/util', () => {
6
+ describe('randomInt', () => {
7
+ it('random values', () => {
8
+ const maxValue = 9999;
9
+ let lastValue = 0;
10
+ for (let i = 0; i < 100; i++) {
11
+ const value = (0, utils_1.randomInt)(maxValue);
12
+ // Within the expected bounds.
13
+ expect(value).toBeGreaterThanOrEqual(0);
14
+ expect(value).toBeLessThanOrEqual(maxValue);
15
+ // No collision.
16
+ expect(value).not.toEqual(lastValue);
17
+ lastValue = value;
18
+ }
19
+ });
20
+ it('zero', () => {
21
+ expect((0, utils_1.randomInt)(0)).toEqual(0);
22
+ });
23
+ });
24
+ describe('generateRandomClientId', () => {
25
+ it('random values', () => {
26
+ let lastValue = 0;
27
+ for (let i = 0; i < 100; i++) {
28
+ const value = (0, utils_1.generateRandomClientId)();
29
+ // Within the expected bounds.
30
+ expect(value).toBeGreaterThanOrEqual(0);
31
+ expect(value).toBeLessThanOrEqual(constants_1.MAX_UINT_32);
32
+ // No collision.
33
+ expect(value).not.toEqual(lastValue);
34
+ lastValue = value;
35
+ }
36
+ });
37
+ });
38
+ describe('clientIdFromString', () => {
39
+ it('hard-coded', () => {
40
+ expect((0, utils_1.clientIdFromString)('test')).toEqual(2151040146);
41
+ });
42
+ it('random values', () => {
43
+ let lastValue = 0;
44
+ let lastInput = 0;
45
+ for (let i = 0; i < 1000; i++) {
46
+ // Prevent input collision.
47
+ let input = (0, utils_1.randomInt)(constants_1.MAX_UINT_32);
48
+ if (input === lastInput) {
49
+ input += 1;
50
+ }
51
+ const value = (0, utils_1.clientIdFromString)(`${input}`);
52
+ const valueAgain = (0, utils_1.clientIdFromString)(`${input}`);
53
+ // Deterministic.
54
+ expect(value).toEqual(valueAgain);
55
+ // Within the expected bounds.
56
+ expect(value).toBeGreaterThanOrEqual(0);
57
+ expect(value).toBeLessThanOrEqual(constants_1.MAX_UINT_32);
58
+ // No collision.
59
+ expect(value).not.toEqual(lastValue);
60
+ expect(value).not.toEqual(input);
61
+ lastValue = value;
62
+ lastInput = input;
63
+ }
64
+ });
65
+ });
66
+ });
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vX190ZXN0c19fL2xpYi91dGlsLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSx1REFBc0Q7QUFDdEQsK0NBQTRGO0FBRTVGLFFBQVEsQ0FBQyxVQUFVLEVBQUUsR0FBRyxFQUFFO0lBQ3hCLFFBQVEsQ0FBQyxXQUFXLEVBQUUsR0FBRyxFQUFFO1FBQ3pCLEVBQUUsQ0FBQyxlQUFlLEVBQUUsR0FBRyxFQUFFO1lBQ3ZCLE1BQU0sUUFBUSxHQUFXLElBQUksQ0FBQztZQUM5QixJQUFJLFNBQVMsR0FBVyxDQUFDLENBQUM7WUFDMUIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO2dCQUM3QixNQUFNLEtBQUssR0FBVyxJQUFBLGlCQUFTLEVBQUMsUUFBUSxDQUFDLENBQUM7Z0JBRTFDLDhCQUE4QjtnQkFDOUIsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN4QyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBRTVDLGdCQUFnQjtnQkFDaEIsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQ3JDLFNBQVMsR0FBRyxLQUFLLENBQUM7WUFDcEIsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUU7WUFDZCxNQUFNLENBQUMsSUFBQSxpQkFBUyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2xDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCxRQUFRLENBQUMsd0JBQXdCLEVB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