@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,30 @@
1
+ export * as GovV1Module from '@perpx/proto/src/codegen/cosmos/gov/v1/query';
2
+ export * as StatsModule from '@perpx/proto/src/codegen/perpx/stats/query';
3
+ export * as ClobModule from '@perpx/proto/src/codegen/perpx/clob/query';
4
+ export * as PerpetualsModule from '@perpx/proto/src/codegen/perpx/perpetuals/query';
5
+ export * as PricesModule from '@perpx/proto/src/codegen/perpx/prices/query';
6
+ export * as SubaccountsModule from '@perpx/proto/src/codegen/perpx/subaccounts/query';
7
+ export * as FeeTierModule from '@perpx/proto/src/codegen/perpx/feetiers/query';
8
+ export * as RateLimitModule from '@perpx/proto/src/codegen/perpx/ratelimit/query';
9
+ export * as RewardsModule from '@perpx/proto/src/codegen/perpx/rewards/query';
10
+ export * as StakingModule from '@perpx/proto/src/codegen/cosmos/staking/v1beta1/query';
11
+ export * as BridgeModule from '@perpx/proto/src/codegen/perpx/bridge/query';
12
+ export * as DistributionModule from '@perpx/proto/src/codegen/cosmos/distribution/v1beta1/query';
13
+ export * as AffiliateModule from '@perpx/proto/src/codegen/perpx/affiliates/query';
14
+ export * as VaultModule from '@perpx/proto/src/codegen/perpx/vault/query';
15
+ export * as ListingModule from '@perpx/proto/src/codegen/perpx/listing/query';
16
+ export * from '@perpx/proto/src/codegen/cosmos/base/abci/v1beta1/abci';
17
+ export * from '@perpx/proto/src/codegen/cosmos/gov/v1/gov';
18
+ export * from '@perpx/proto/src/codegen/perpx/clob/order';
19
+ export * from '@perpx/proto/src/codegen/perpx/clob/tx';
20
+ export * from '@perpx/proto/src/codegen/perpx/delaymsg/tx';
21
+ export * from '@perpx/proto/src/codegen/perpx/perpetuals/tx';
22
+ export * from '@perpx/proto/src/codegen/perpx/prices/tx';
23
+ export * from '@perpx/proto/src/codegen/google/protobuf/any';
24
+ export * from '@perpx/proto/src/codegen/perpx/subaccounts/subaccount';
25
+ export * from '@perpx/proto/src/codegen/perpx/sending/tx';
26
+ export * from '@perpx/proto/src/codegen/perpx/sending/transfer';
27
+ export * from '@perpx/proto/src/codegen/perpx/assets/genesis';
28
+ export * from '@perpx/proto/src/codegen/perpx/assets/asset';
29
+ export * from '@perpx/proto/src/codegen/perpx/listing/tx';
30
+ //# sourceMappingURL=proto-includes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proto-includes.d.ts","sourceRoot":"","sources":["../../../../../src/clients/modules/proto-includes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,WAAW,MAAM,8CAA8C,CAAC;AAC5E,OAAO,KAAK,WAAW,MAAM,4CAA4C,CAAC;AAE1E,OAAO,KAAK,UAAU,MAAM,2CAA2C,CAAC;AACxE,OAAO,KAAK,gBAAgB,MAAM,iDAAiD,CAAC;AACpF,OAAO,KAAK,YAAY,MAAM,6CAA6C,CAAC;AAC5E,OAAO,KAAK,iBAAiB,MAAM,kDAAkD,CAAC;AACtF,OAAO,KAAK,aAAa,MAAM,+CAA+C,CAAC;AAC/E,OAAO,KAAK,eAAe,MAAM,gDAAgD,CAAC;AAClF,OAAO,KAAK,aAAa,MAAM,8CAA8C,CAAC;AAC9E,OAAO,KAAK,aAAa,MAAM,uDAAuD,CAAC;AACvF,OAAO,KAAK,YAAY,MAAM,6CAA6C,CAAC;AAC5E,OAAO,KAAK,kBAAkB,MAAM,4DAA4D,CAAC;AACjG,OAAO,KAAK,eAAe,MAAM,iDAAiD,CAAC;AACnF,OAAO,KAAK,WAAW,MAAM,4CAA4C,CAAC;AAC1E,OAAO,KAAK,aAAa,MAAM,8CAA8C,CAAC;AAE9E,cAAc,wDAAwD,CAAC;AACvE,cAAc,4CAA4C,CAAC;AAC3D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,wCAAwC,CAAC;AACvD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,0CAA0C,CAAC;AACzD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,uDAAuD,CAAC;AACtE,cAAc,2CAA2C,CAAC;AAC1D,cAAc,iDAAiD,CAAC;AAChE,cAAc,+CAA+C,CAAC;AAC9D,cAAc,6CAA6C,CAAC;AAC5D,cAAc,2CAA2C,CAAC"}
@@ -0,0 +1,30 @@
1
+ export * as GovV1Module from '@perpx/proto/src/codegen/cosmos/gov/v1/query';
2
+ export * as StatsModule from '@perpx/proto/src/codegen/perpx/stats/query';
3
+ export * as ClobModule from '@perpx/proto/src/codegen/perpx/clob/query';
4
+ export * as PerpetualsModule from '@perpx/proto/src/codegen/perpx/perpetuals/query';
5
+ export * as PricesModule from '@perpx/proto/src/codegen/perpx/prices/query';
6
+ export * as SubaccountsModule from '@perpx/proto/src/codegen/perpx/subaccounts/query';
7
+ export * as FeeTierModule from '@perpx/proto/src/codegen/perpx/feetiers/query';
8
+ export * as RateLimitModule from '@perpx/proto/src/codegen/perpx/ratelimit/query';
9
+ export * as RewardsModule from '@perpx/proto/src/codegen/perpx/rewards/query';
10
+ export * as StakingModule from '@perpx/proto/src/codegen/cosmos/staking/v1beta1/query';
11
+ export * as BridgeModule from '@perpx/proto/src/codegen/perpx/bridge/query';
12
+ export * as DistributionModule from '@perpx/proto/src/codegen/cosmos/distribution/v1beta1/query';
13
+ export * as AffiliateModule from '@perpx/proto/src/codegen/perpx/affiliates/query';
14
+ export * as VaultModule from '@perpx/proto/src/codegen/perpx/vault/query';
15
+ export * as ListingModule from '@perpx/proto/src/codegen/perpx/listing/query';
16
+ export * from '@perpx/proto/src/codegen/cosmos/base/abci/v1beta1/abci';
17
+ export * from '@perpx/proto/src/codegen/cosmos/gov/v1/gov';
18
+ export * from '@perpx/proto/src/codegen/perpx/clob/order';
19
+ export * from '@perpx/proto/src/codegen/perpx/clob/tx';
20
+ export * from '@perpx/proto/src/codegen/perpx/delaymsg/tx';
21
+ export * from '@perpx/proto/src/codegen/perpx/perpetuals/tx';
22
+ export * from '@perpx/proto/src/codegen/perpx/prices/tx';
23
+ export * from '@perpx/proto/src/codegen/google/protobuf/any';
24
+ export * from '@perpx/proto/src/codegen/perpx/subaccounts/subaccount';
25
+ export * from '@perpx/proto/src/codegen/perpx/sending/tx';
26
+ export * from '@perpx/proto/src/codegen/perpx/sending/transfer';
27
+ export * from '@perpx/proto/src/codegen/perpx/assets/genesis';
28
+ export * from '@perpx/proto/src/codegen/perpx/assets/asset';
29
+ export * from '@perpx/proto/src/codegen/perpx/listing/tx';
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdG8taW5jbHVkZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY2xpZW50cy9tb2R1bGVzL3Byb3RvLWluY2x1ZGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxXQUFXLE1BQU0sOENBQThDLENBQUM7QUFDNUUsT0FBTyxLQUFLLFdBQVcsTUFBTSw0Q0FBNEMsQ0FBQztBQUUxRSxPQUFPLEtBQUssVUFBVSxNQUFNLDJDQUEyQyxDQUFDO0FBQ3hFLE9BQU8sS0FBSyxnQkFBZ0IsTUFBTSxpREFBaUQsQ0FBQztBQUNwRixPQUFPLEtBQUssWUFBWSxNQUFNLDZDQUE2QyxDQUFDO0FBQzVFLE9BQU8sS0FBSyxpQkFBaUIsTUFBTSxrREFBa0QsQ0FBQztBQUN0RixPQUFPLEtBQUssYUFBYSxNQUFNLCtDQUErQyxDQUFDO0FBQy9FLE9BQU8sS0FBSyxlQUFlLE1BQU0sZ0RBQWdELENBQUM7QUFDbEYsT0FBTyxLQUFLLGFBQWEsTUFBTSw4Q0FBOEMsQ0FBQztBQUM5RSxPQUFPLEtBQUssYUFBYSxNQUFNLHVEQUF1RCxDQUFDO0FBQ3ZGLE9BQU8sS0FBSyxZQUFZLE1BQU0sNkNBQTZDLENBQUM7QUFDNUUsT0FBTyxLQUFLLGtCQUFrQixNQUFNLDREQUE0RCxDQUFDO0FBQ2pHLE9BQU8sS0FBSyxlQUFlLE1BQU0saURBQWlELENBQUM7QUFDbkYsT0FBTyxLQUFLLFdBQVcsTUFBTSw0Q0FBNEMsQ0FBQztBQUMxRSxPQUFPLEtBQUssYUFBYSxNQUFNLDhDQUE4QyxDQUFDO0FBRTlFLGNBQWMsd0RBQXdELENBQUM7QUFDdkUsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLHVEQUF1RCxDQUFDO0FBQ3RFLGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYywyQ0FBMkMsQ0FBQyJ9
@@ -0,0 +1,13 @@
1
+ import { AxiosInstance, AxiosProxyConfig } from 'axios';
2
+ import { Response } from '../lib/axios';
3
+ import { Data } from '../types';
4
+ export default class RestClient {
5
+ readonly host: string;
6
+ readonly apiTimeout: Number;
7
+ readonly axiosInstance: AxiosInstance;
8
+ constructor(host: string, apiTimeout?: Number | null, proxy?: AxiosProxyConfig);
9
+ get(requestPath: string, params?: {}): Promise<Data>;
10
+ getWithResponseHeaders(requestPath: string, params?: {}): Promise<Data>;
11
+ post(requestPath: string, params?: {}, body?: unknown | null, headers?: {}): Promise<Response>;
12
+ }
13
+ //# sourceMappingURL=rest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rest.d.ts","sourceRoot":"","sources":["../../../../../src/clients/modules/rest.ts"],"names":[],"mappings":"AAAA,OAAc,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAC;AAI/D,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAEhC,MAAM,CAAC,OAAO,OAAO,UAAU;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;gBAE1B,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,KAAK,CAAC,EAAE,gBAAgB;IAYxE,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,GAAE,EAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAMxD,sBAAsB,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,GAAE,EAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAU3E,IAAI,CACR,WAAW,EAAE,MAAM,EACnB,MAAM,GAAE,EAAO,EACf,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,EACrB,OAAO,GAAE,EAAO,GACf,OAAO,CAAC,QAAQ,CAAC;CAIrB"}
@@ -0,0 +1,35 @@
1
+ import axios from 'axios';
2
+ import { DEFAULT_API_TIMEOUT } from '../constants';
3
+ import { generateQueryPath } from '../helpers/request-helpers';
4
+ export default class RestClient {
5
+ constructor(host, apiTimeout, proxy) {
6
+ if (host.endsWith('/')) {
7
+ this.host = host.slice(0, -1);
8
+ }
9
+ else {
10
+ this.host = host;
11
+ }
12
+ this.apiTimeout = apiTimeout || DEFAULT_API_TIMEOUT;
13
+ this.axiosInstance = axios.create({
14
+ proxy,
15
+ });
16
+ }
17
+ async get(requestPath, params = {}) {
18
+ const url = `${this.host}${generateQueryPath(requestPath, params)}`;
19
+ const response = await this.axiosInstance.get(url);
20
+ return response.data;
21
+ }
22
+ async getWithResponseHeaders(requestPath, params = {}) {
23
+ const url = `${this.host}${generateQueryPath(requestPath, params)}`;
24
+ const response = await this.axiosInstance.get(url);
25
+ return {
26
+ data: response.data,
27
+ headers: response.headers,
28
+ };
29
+ }
30
+ async post(requestPath, params = {}, body, headers = {}) {
31
+ const url = `${this.host}${generateQueryPath(requestPath, params)}`;
32
+ return this.axiosInstance.post(url, body, { headers });
33
+ }
34
+ }
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jbGllbnRzL21vZHVsZXMvcmVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQTBDLE1BQU0sT0FBTyxDQUFDO0FBRS9ELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNuRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUkvRCxNQUFNLENBQUMsT0FBTyxPQUFPLFVBQVU7SUFLN0IsWUFBWSxJQUFZLEVBQUUsVUFBMEIsRUFBRSxLQUF3QjtRQUM1RSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEMsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNuQixDQUFDO1FBQ0QsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLElBQUksbUJBQW1CLENBQUM7UUFDcEQsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO1lBQ2hDLEtBQUs7U0FDTixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsS0FBSyxDQUFDLEdBQUcsQ0FBQyxXQUFtQixFQUFFLFNBQWEsRUFBRTtRQUM1QyxNQUFNLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLEdBQUcsaUJBQWlCLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDcEUsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNuRCxPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUM7SUFDdkIsQ0FBQztJQUVELEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxXQUFtQixFQUFFLFNBQWEsRUFBRTtRQUMvRCxNQUFNLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLEdBQUcsaUJBQWlCLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDcEUsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUVuRCxPQUFPO1lBQ0wsSUFBSSxFQUFFLFFBQVEsQ0FBQyxJQUFJO1lBQ25CLE9BQU8sRUFBRSxRQUFRLENBQUMsT0FBTztTQUMxQixDQUFDO0lBQ0osQ0FBQztJQUVELEtBQUssQ0FBQyxJQUFJLENBQ1IsV0FBbUIsRUFDbkIsU0FBYSxFQUFFLEVBQ2YsSUFBcUIsRUFDckIsVUFBYyxFQUFFO1FBRWhCLE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksR0FBRyxpQkFBaUIsQ0FBQyxXQUFXLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUNwRSxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ3pELENBQUM7Q0FDRiJ9
@@ -0,0 +1,19 @@
1
+ import { Secp256k1Pubkey } from '@cosmjs/amino';
2
+ import { EncodeObject, OfflineSigner } from '@cosmjs/proto-signing';
3
+ import { SigningStargateClient, StdFee } from '@cosmjs/stargate';
4
+ import { TransactionOptions } from '../types';
5
+ export declare class TransactionSigner {
6
+ readonly address: string;
7
+ readonly stargateSigningClient: SigningStargateClient;
8
+ readonly offlineSigner: OfflineSigner;
9
+ constructor(address: string, stargateSigningClient: SigningStargateClient, offlineSigner: OfflineSigner);
10
+ /**
11
+ * @description Get the encoded signed transaction or the promise is rejected if
12
+ * no fee can be set for the transaction.
13
+ *
14
+ * @throws UserError if the fee is undefined.
15
+ * @returns The signed and encoded transaction.
16
+ */
17
+ signTransaction(messages: EncodeObject[], transactionOptions: TransactionOptions, fee?: StdFee, memo?: string, publicKey?: Secp256k1Pubkey): Promise<Uint8Array>;
18
+ }
19
+ //# sourceMappingURL=signer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../../../../../src/clients/modules/signer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAGhD,OAAO,EACL,YAAY,EAKZ,aAAa,EACd,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,qBAAqB,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAQjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAS9C,qBAAa,iBAAiB;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,qBAAqB,EAAE,qBAAqB,CAAC;IACtD,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;gBAGpC,OAAO,EAAE,MAAM,EACf,qBAAqB,EAAE,qBAAqB,EAC5C,aAAa,EAAE,aAAa;IAO9B;;;;;;OAMG;IACG,eAAe,CACnB,QAAQ,EAAE,YAAY,EAAE,EACxB,kBAAkB,EAAE,kBAAkB,EACtC,GAAG,CAAC,EAAE,MAAM,EACZ,IAAI,GAAE,MAAW,EACjB,SAAS,CAAC,EAAE,eAAe,GAC1B,OAAO,CAAC,UAAU,CAAC;CAkFvB"}
@@ -0,0 +1,86 @@
1
+ import { fromBase64 } from '@cosmjs/encoding';
2
+ import { Int53 } from '@cosmjs/math';
3
+ import { encodePubkey, isOfflineDirectSigner, makeAuthInfoBytes, makeSignDoc, } from '@cosmjs/proto-signing';
4
+ import { TxExtension } from '@perpx/proto/src/codegen/perpx/accountplus/tx';
5
+ import { TxBody, TxRaw } from 'cosmjs-types/cosmos/tx/v1beta1/tx';
6
+ import { Any } from 'cosmjs-types/google/protobuf/any';
7
+ import Long from 'long';
8
+ import protobuf from 'protobufjs';
9
+ import { generateRegistry } from '../lib/registry';
10
+ // Required for encoding and decoding queries that are of type Long.
11
+ // Must be done once but since the individal modules should be usable
12
+ // - must be set in each module that encounters encoding/decoding Longs.
13
+ // Reference: https://github.com/protobufjs/protobuf.js/issues/921
14
+ protobuf.util.Long = Long;
15
+ protobuf.configure();
16
+ export class TransactionSigner {
17
+ constructor(address, stargateSigningClient, offlineSigner) {
18
+ this.address = address;
19
+ this.stargateSigningClient = stargateSigningClient;
20
+ this.offlineSigner = offlineSigner;
21
+ }
22
+ /**
23
+ * @description Get the encoded signed transaction or the promise is rejected if
24
+ * no fee can be set for the transaction.
25
+ *
26
+ * @throws UserError if the fee is undefined.
27
+ * @returns The signed and encoded transaction.
28
+ */
29
+ async signTransaction(messages, transactionOptions, fee, memo = '', publicKey) {
30
+ var _a;
31
+ if (!fee) {
32
+ throw new Error('Fee cannot be undefined');
33
+ }
34
+ const registry = generateRegistry();
35
+ // Encode the messages
36
+ const encodedMessages = messages.map((msg) => registry.encodeAsAny(msg));
37
+ // Encode the TxExtension message
38
+ const txExtension = TxExtension.encode({
39
+ selectedAuthenticators: (_a = transactionOptions.authenticators) !== null && _a !== void 0 ? _a : [],
40
+ }).finish();
41
+ // Create the non-critical extension message
42
+ const nonCriticalExtensionOptions = [
43
+ Any.fromPartial({
44
+ typeUrl: '/perpx.accountplus.TxExtension',
45
+ value: txExtension,
46
+ }),
47
+ ];
48
+ // Construct the TxBody
49
+ const txBody = TxBody.fromPartial({
50
+ messages: encodedMessages,
51
+ memo,
52
+ extensionOptions: [],
53
+ nonCriticalExtensionOptions,
54
+ });
55
+ // Encode the TxBody
56
+ const txBodyBytes = TxBody.encode(txBody).finish();
57
+ if (!publicKey) {
58
+ throw new Error('Public key cannot be undefined');
59
+ }
60
+ const pubkey = encodePubkey(publicKey); // Use the public key of the signer
61
+ const gasLimit = Int53.fromString(String(fee.gas)).toNumber();
62
+ const authInfoBytes = makeAuthInfoBytes([{ pubkey, sequence: transactionOptions.sequence }], fee.amount, gasLimit, undefined, undefined);
63
+ // Create the SignDoc
64
+ const signDoc = makeSignDoc(txBodyBytes, authInfoBytes, transactionOptions.chainId, transactionOptions.accountNumber);
65
+ // Use OfflineSigner to sign the transaction
66
+ const signerAddress = this.address;
67
+ if (isOfflineDirectSigner(this.offlineSigner)) {
68
+ const { signed, signature } = await this.offlineSigner.signDirect(signerAddress, signDoc);
69
+ const txRaw = TxRaw.fromPartial({
70
+ bodyBytes: signed.bodyBytes,
71
+ authInfoBytes: signed.authInfoBytes,
72
+ signatures: [fromBase64(signature.signature)],
73
+ });
74
+ return Uint8Array.from(TxRaw.encode(txRaw).finish());
75
+ }
76
+ else {
77
+ const rawTx = await this.stargateSigningClient.sign(this.address, messages, fee, memo, {
78
+ accountNumber: transactionOptions.accountNumber,
79
+ sequence: transactionOptions.sequence,
80
+ chainId: transactionOptions.chainId,
81
+ });
82
+ return Uint8Array.from(TxRaw.encode(rawTx).finish());
83
+ }
84
+ }
85
+ }
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NsaWVudHMvbW9kdWxlcy9zaWduZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDckMsT0FBTyxFQUVMLFlBQVksRUFDWixxQkFBcUIsRUFDckIsaUJBQWlCLEVBQ2pCLFdBQVcsR0FFWixNQUFNLHVCQUF1QixDQUFDO0FBRS9CLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN2RCxPQUFPLElBQUksTUFBTSxNQUFNLENBQUM7QUFDeEIsT0FBTyxRQUFRLE1BQU0sWUFBWSxDQUFDO0FBRWxDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBR25ELG9FQUFvRTtBQUNwRSxxRUFBcUU7QUFDckUsd0VBQXdFO0FBQ3hFLGtFQUFrRTtBQUNsRSxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7QUFDMUIsUUFBUSxDQUFDLFNBQVMsRUFBRSxDQUFDO0FBRXJCLE1BQU0sT0FBTyxpQkFBaUI7SUFLNUIsWUFDRSxPQUFlLEVBQ2YscUJBQTRDLEVBQzVDLGFBQTRCO1FBRTVCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxxQkFBcUIsQ0FBQztRQUNuRCxJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztJQUNyQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsS0FBSyxDQUFDLGVBQWUsQ0FDbkIsUUFBd0Is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
@@ -0,0 +1,52 @@
1
+ import { Block, IndexedTx } from '@cosmjs/stargate';
2
+ import { Tendermint37Client } from '@cosmjs/tendermint-rpc';
3
+ import { BroadcastTxAsyncResponse, BroadcastTxSyncResponse } from '@cosmjs/tendermint-rpc/build/tendermint37';
4
+ import { BroadcastMode, BroadcastOptions } from '../types';
5
+ export declare class TendermintClient {
6
+ readonly baseClient: Tendermint37Client;
7
+ broadcastOptions: BroadcastOptions;
8
+ constructor(baseClient: Tendermint37Client, broadcastOptions: BroadcastOptions);
9
+ /**
10
+ * @description Get a specific block if height is specified. Otherwise, get the most recent block.
11
+ *
12
+ * @returns Information about the block queried.
13
+ */
14
+ getBlock(height?: number): Promise<Block>;
15
+ /**
16
+ * @description Broadcast a signed transaction with a specific mode.
17
+ * @throws BroadcastErrorObject when result code is not zero. TypeError when mode is invalid.
18
+ * @returns Differs depending on the BroadcastMode used.
19
+ * See https://docs.cosmos.network/master/run-node/txs.html for more information.
20
+ */
21
+ broadcastTransaction(tx: Uint8Array, mode: BroadcastMode): Promise<BroadcastTxAsyncResponse | BroadcastTxSyncResponse | IndexedTx>;
22
+ /**
23
+ * @description Broadcast a signed transaction.
24
+ * @returns The transaction hash.
25
+ */
26
+ broadcastTransactionAsync(tx: Uint8Array): Promise<BroadcastTxAsyncResponse>;
27
+ /**
28
+ * @description Broadcast a signed transaction and await the response.
29
+ * @throws BroadcastErrorObject when result code is not zero.
30
+ * @returns The response from the node once the transaction is processed by `CheckTx`.
31
+ */
32
+ broadcastTransactionSync(tx: Uint8Array): Promise<BroadcastTxSyncResponse>;
33
+ /**
34
+ * @description Broadcast a signed transaction and await for it to be included in the blockchain.
35
+ * @throws BroadcastErrorObject when result code is not zero.
36
+ * @returns The result of the transaction once included in the blockchain.
37
+ */
38
+ broadcastTransactionCommit(tx: Uint8Array): Promise<IndexedTx>;
39
+ /**
40
+ * @description Using tx method, query for a transaction on-chain with retries specified by
41
+ * the client BroadcastOptions.
42
+ *
43
+ * @throws TimeoutError if the transaction is not committed on-chain within the timeout limit.
44
+ * @returns An indexed transaction containing information about the transaction when committed.
45
+ */
46
+ queryHash(hash: Uint8Array, time?: number): Promise<IndexedTx>;
47
+ /**
48
+ * @description Set the broadcast options for this module.
49
+ */
50
+ setBroadcastOptions(broadcastOptions: BroadcastOptions): void;
51
+ }
52
+ //# sourceMappingURL=tendermintClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tendermintClient.d.ts","sourceRoot":"","sources":["../../../../../src/clients/modules/tendermintClient.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAgB,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAU,kBAAkB,EAA4B,MAAM,wBAAwB,CAAC;AAC9F,OAAO,EAGL,wBAAwB,EACxB,uBAAuB,EAGxB,MAAM,2CAA2C,CAAC;AAInD,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE3D,qBAAa,gBAAgB;IAC3B,QAAQ,CAAC,UAAU,EAAE,kBAAkB,CAAC;IACxC,gBAAgB,EAAE,gBAAgB,CAAC;gBAEvB,UAAU,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,gBAAgB;IAK9E;;;;OAIG;IACG,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAiB/C;;;;;OAKG;IACG,oBAAoB,CACxB,EAAE,EAAE,UAAU,EACd,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,wBAAwB,GAAG,uBAAuB,GAAG,SAAS,CAAC;IAa1E;;;OAGG;IACH,yBAAyB,CAAC,EAAE,EAAE,UAAU,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAI5E;;;;OAIG;IACG,wBAAwB,CAAC,EAAE,EAAE,UAAU,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAQhF;;;;OAIG;IACG,0BAA0B,CAAC,EAAE,EAAE,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC;IAKpE;;;;;;OAMG;IACG,SAAS,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,GAAE,MAAU,GAAG,OAAO,CAAC,SAAS,CAAC;IAiDvE;;OAEG;IACH,mBAAmB,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,IAAI;CAG9D"}
@@ -0,0 +1,133 @@
1
+ import { toHex } from '@cosmjs/encoding';
2
+ import { Uint53 } from '@cosmjs/math';
3
+ import { TimeoutError } from '@cosmjs/stargate';
4
+ import { Method, toRfc3339WithNanoseconds } from '@cosmjs/tendermint-rpc';
5
+ import { sleep } from '@cosmjs/utils';
6
+ import { BroadcastErrorObject } from '../lib/errors';
7
+ export class TendermintClient {
8
+ constructor(baseClient, broadcastOptions) {
9
+ this.baseClient = baseClient;
10
+ this.broadcastOptions = broadcastOptions;
11
+ }
12
+ /**
13
+ * @description Get a specific block if height is specified. Otherwise, get the most recent block.
14
+ *
15
+ * @returns Information about the block queried.
16
+ */
17
+ async getBlock(height) {
18
+ const response = await this.baseClient.block(height);
19
+ return {
20
+ id: toHex(response.blockId.hash).toUpperCase(),
21
+ header: {
22
+ version: {
23
+ block: new Uint53(response.block.header.version.block).toString(),
24
+ app: new Uint53(response.block.header.version.app).toString(),
25
+ },
26
+ height: response.block.header.height,
27
+ chainId: response.block.header.chainId,
28
+ time: toRfc3339WithNanoseconds(response.block.header.time),
29
+ },
30
+ txs: response.block.txs,
31
+ };
32
+ }
33
+ /**
34
+ * @description Broadcast a signed transaction with a specific mode.
35
+ * @throws BroadcastErrorObject when result code is not zero. TypeError when mode is invalid.
36
+ * @returns Differs depending on the BroadcastMode used.
37
+ * See https://docs.cosmos.network/master/run-node/txs.html for more information.
38
+ */
39
+ async broadcastTransaction(tx, mode) {
40
+ switch (mode) {
41
+ case Method.BroadcastTxAsync:
42
+ return this.broadcastTransactionAsync(tx);
43
+ case Method.BroadcastTxSync:
44
+ return this.broadcastTransactionSync(tx);
45
+ case Method.BroadcastTxCommit:
46
+ return this.broadcastTransactionCommit(tx);
47
+ default:
48
+ throw new TypeError('broadcastTransaction: invalid BroadcastMode');
49
+ }
50
+ }
51
+ /**
52
+ * @description Broadcast a signed transaction.
53
+ * @returns The transaction hash.
54
+ */
55
+ broadcastTransactionAsync(tx) {
56
+ return this.baseClient.broadcastTxAsync({ tx });
57
+ }
58
+ /**
59
+ * @description Broadcast a signed transaction and await the response.
60
+ * @throws BroadcastErrorObject when result code is not zero.
61
+ * @returns The response from the node once the transaction is processed by `CheckTx`.
62
+ */
63
+ async broadcastTransactionSync(tx) {
64
+ const result = await this.baseClient.broadcastTxSync({ tx });
65
+ if (result.code !== 0) {
66
+ throw new BroadcastErrorObject(`Broadcasting transaction failed: ${result.log}`, result);
67
+ }
68
+ return result;
69
+ }
70
+ /**
71
+ * @description Broadcast a signed transaction and await for it to be included in the blockchain.
72
+ * @throws BroadcastErrorObject when result code is not zero.
73
+ * @returns The result of the transaction once included in the blockchain.
74
+ */
75
+ async broadcastTransactionCommit(tx) {
76
+ const result = await this.broadcastTransactionSync(tx);
77
+ return this.queryHash(result.hash);
78
+ }
79
+ /**
80
+ * @description Using tx method, query for a transaction on-chain with retries specified by
81
+ * the client BroadcastOptions.
82
+ *
83
+ * @throws TimeoutError if the transaction is not committed on-chain within the timeout limit.
84
+ * @returns An indexed transaction containing information about the transaction when committed.
85
+ */
86
+ async queryHash(hash, time = 0) {
87
+ const now = Date.now();
88
+ const transactionId = toHex(hash).toUpperCase();
89
+ if (time >= this.broadcastOptions.broadcastTimeoutMs) {
90
+ throw new TimeoutError(`Transaction with hash [${hash}] was submitted but was not yet found on the chain. You might want to check later. Query timed out after ${this.broadcastOptions.broadcastTimeoutMs / 1000} seconds.`, transactionId);
91
+ }
92
+ await sleep(this.broadcastOptions.broadcastPollIntervalMs);
93
+ // If the transaction is not found, the tx method will throw an Internal Error.
94
+ try {
95
+ const tx = await this.baseClient.tx({ hash });
96
+ return {
97
+ height: tx.height,
98
+ hash: toHex(tx.hash).toUpperCase(),
99
+ code: tx.result.code,
100
+ rawLog: tx.result.log !== undefined ? tx.result.log : '',
101
+ tx: tx.tx,
102
+ txIndex: tx.index,
103
+ gasUsed: tx.result.gasUsed,
104
+ gasWanted: tx.result.gasWanted,
105
+ // Convert stargate events to tendermint events.
106
+ events: tx.result.events.map((event) => {
107
+ return {
108
+ ...event,
109
+ attributes: event.attributes.map((attr) => {
110
+ return {
111
+ ...attr,
112
+ key: Buffer.from(attr.key).toString(),
113
+ value: Buffer.from(attr.value).toString(),
114
+ };
115
+ }),
116
+ };
117
+ }),
118
+ // @ts-ignore
119
+ msgResponses: [],
120
+ };
121
+ }
122
+ catch (error) {
123
+ return this.queryHash(hash, time + Date.now() - now);
124
+ }
125
+ }
126
+ /**
127
+ * @description Set the broadcast options for this module.
128
+ */
129
+ setBroadcastOptions(broadcastOptions) {
130
+ this.broadcastOptions = broadcastOptions;
131
+ }
132
+ }
133
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuZGVybWludENsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jbGllbnRzL21vZHVsZXMvdGVuZGVybWludENsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDekMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN0QyxPQUFPLEVBQVMsWUFBWSxFQUFhLE1BQU0sa0JBQWtCLENBQUM7QUFDbEUsT0FBTyxFQUFFLE1BQU0sRUFBc0Isd0JBQXdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQVM5RixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXRDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUdyRCxNQUFNLE9BQU8sZ0JBQWdCO0lBSTNCLFlBQVksVUFBOEIsRUFBRSxnQkFBa0M7UUFDNUUsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDN0IsSUFBSSxDQUFDLGdCQUFnQixHQUFHLGdCQUFnQixDQUFDO0lBQzNDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFlO1FBQzVCLE1BQU0sUUFBUSxHQUFrQixNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3BFLE9BQU87WUFDTCxFQUFFLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsV0FBVyxFQUFFO1lBQzlDLE1BQU0sRUFBRTtnQkFDTixPQUFPLEVBQUU7b0JBQ1AsS0FBSyxFQUFFLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLEVBQUU7b0JBQ2pFLEdBQUcsRUFBRSxJQUFJ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
@@ -0,0 +1,32 @@
1
+ import type { ComplianceResponse, ComplianceV2Response, HeightResponse, HeightResponseWithHeaders, TimeResponse } from '../types';
2
+ import RestClient from './rest';
3
+ export default class UtilityClient extends RestClient {
4
+ /**
5
+ * @description Get the current time of the Indexer
6
+ * @returns {TimeResponse} isoString and epoch
7
+ */
8
+ getTime(): Promise<TimeResponse>;
9
+ /**
10
+ * @description Get the block height of the most recent block processed by the Indexer
11
+ * @returns {HeightResponse} block height and time
12
+ */
13
+ getHeight(): Promise<HeightResponse>;
14
+ /**
15
+ * @description Get the block height of the most recent block processed by the Indexer
16
+ * @returns {HeightResponse} block height and time
17
+ */
18
+ getHeightWithHeaders(): Promise<HeightResponseWithHeaders>;
19
+ /**
20
+ * @description Screen an address to see if it is restricted
21
+ * @param {string} address evm or perpx address
22
+ * @returns {ComplianceResponse} whether the specified address is restricted
23
+ */
24
+ screen(address: string): Promise<ComplianceResponse>;
25
+ /**
26
+ * @description Screen an address to see if it is restricted
27
+ * @param {string} address evm or perpx address
28
+ * @returns {ComplianceResponse} whether the specified address is restricted
29
+ */
30
+ complianceScreen(address: string): Promise<ComplianceV2Response>;
31
+ }
32
+ //# sourceMappingURL=utility.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utility.d.ts","sourceRoot":"","sources":["../../../../../src/clients/modules/utility.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,oBAAoB,EACpB,cAAc,EACd,yBAAyB,EACzB,YAAY,EACb,MAAM,UAAU,CAAC;AAClB,OAAO,UAAU,MAAM,QAAQ,CAAC;AAEhC,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,UAAU;IACnD;;;OAGG;IACG,OAAO,IAAI,OAAO,CAAC,YAAY,CAAC;IAKtC;;;OAGG;IACG,SAAS,IAAI,OAAO,CAAC,cAAc,CAAC;IAK1C;;;OAGG;IACG,oBAAoB,IAAI,OAAO,CAAC,yBAAyB,CAAC;IAKhE;;;;OAIG;IACG,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAK1D;;;;OAIG;IACG,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;CAIvE"}
@@ -0,0 +1,46 @@
1
+ import RestClient from './rest';
2
+ export default class UtilityClient extends RestClient {
3
+ /**
4
+ * @description Get the current time of the Indexer
5
+ * @returns {TimeResponse} isoString and epoch
6
+ */
7
+ async getTime() {
8
+ const uri = '/v4/time';
9
+ return this.get(uri);
10
+ }
11
+ /**
12
+ * @description Get the block height of the most recent block processed by the Indexer
13
+ * @returns {HeightResponse} block height and time
14
+ */
15
+ async getHeight() {
16
+ const uri = '/v4/height';
17
+ return this.get(uri);
18
+ }
19
+ /**
20
+ * @description Get the block height of the most recent block processed by the Indexer
21
+ * @returns {HeightResponse} block height and time
22
+ */
23
+ async getHeightWithHeaders() {
24
+ const uri = '/v4/height';
25
+ return this.getWithResponseHeaders(uri);
26
+ }
27
+ /**
28
+ * @description Screen an address to see if it is restricted
29
+ * @param {string} address evm or perpx address
30
+ * @returns {ComplianceResponse} whether the specified address is restricted
31
+ */
32
+ async screen(address) {
33
+ const uri = '/v4/screen';
34
+ return this.get(uri, { address });
35
+ }
36
+ /**
37
+ * @description Screen an address to see if it is restricted
38
+ * @param {string} address evm or perpx address
39
+ * @returns {ComplianceResponse} whether the specified address is restricted
40
+ */
41
+ async complianceScreen(address) {
42
+ const uri = `/v4/compliance/screen/${address}`;
43
+ return this.get(uri);
44
+ }
45
+ }
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbGl0eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jbGllbnRzL21vZHVsZXMvdXRpbGl0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPQSxPQUFPLFVBQVUsTUFBTSxRQUFRLENBQUM7QUFFaEMsTUFBTSxDQUFDLE9BQU8sT0FBTyxhQUFjLFNBQVEsVUFBVTtJQUNuRDs7O09BR0c7SUFDSCxLQUFLLENBQUMsT0FBTztRQUNYLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQztRQUN2QixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUssQ0FBQyxTQUFTO1FBQ2IsTUFBTSxHQUFHLEdBQUcsWUFBWSxDQUFDO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN2QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLG9CQUFvQjtRQUN4QixNQUFNLEdBQUcsR0FBRyxZQUFZLENBQUM7UUFDekIsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQWU7UUFDMUIsTUFBTSxHQUFHLEdBQUcsWUFBWSxDQUFDO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLGdCQUFnQixDQUFDLE9BQWU7UUFDcEMsTUFBTSxHQUFHLEdBQUcseUJBQXlCLE9BQU8sRUFBRSxDQUFDO1FBQy9DLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN2QixDQUFDO0NBQ0YifQ==
@@ -0,0 +1,12 @@
1
+ import { PnlTickInterval } from '../constants';
2
+ import { Data } from '../types';
3
+ import RestClient from './rest';
4
+ /**
5
+ * @description REST endpoints for data unrelated to a particular address.
6
+ */
7
+ export default class VaultClient extends RestClient {
8
+ getMegavaultHistoricalPnl(resolution?: PnlTickInterval | null): Promise<Data>;
9
+ getVaultsHistoricalPnl(resolution?: PnlTickInterval | null): Promise<Data>;
10
+ getMegavaultPositions(): Promise<Data>;
11
+ }
12
+ //# sourceMappingURL=vault.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vault.d.ts","sourceRoot":"","sources":["../../../../../src/clients/modules/vault.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAChC,OAAO,UAAU,MAAM,QAAQ,CAAC;AAEhC;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,UAAU;IAC3C,yBAAyB,CAAC,UAAU,CAAC,EAAE,eAAe,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAK7E,sBAAsB,CAAC,UAAU,CAAC,EAAE,eAAe,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAK1E,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC;CAI7C"}
@@ -0,0 +1,19 @@
1
+ import RestClient from './rest';
2
+ /**
3
+ * @description REST endpoints for data unrelated to a particular address.
4
+ */
5
+ export default class VaultClient extends RestClient {
6
+ async getMegavaultHistoricalPnl(resolution) {
7
+ const uri = '/v4/vault/v1/megavault/historicalPnl';
8
+ return this.get(uri, { resolution });
9
+ }
10
+ async getVaultsHistoricalPnl(resolution) {
11
+ const uri = '/v4/vault/v1/vaults/historicalPnl';
12
+ return this.get(uri, { resolution });
13
+ }
14
+ async getMegavaultPositions() {
15
+ const uri = '/v4/vault/v1/megavault/positions';
16
+ return this.get(uri);
17
+ }
18
+ }
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmF1bHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY2xpZW50cy9tb2R1bGVzL3ZhdWx0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sVUFBVSxNQUFNLFFBQVEsQ0FBQztBQUVoQzs7R0FFRztBQUNILE1BQU0sQ0FBQyxPQUFPLE9BQU8sV0FBWSxTQUFRLFVBQVU7SUFDakQsS0FBSyxDQUFDLHlCQUF5QixDQUFDLFVBQW1DO1FBQ2pFLE1BQU0sR0FBRyxHQUFHLHNDQUFzQyxDQUFDO1FBQ25ELE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxLQUFLLENBQUMsc0JBQXNCLENBQUMsVUFBbUM7UUFDOUQsTUFBTSxHQUFHLEdBQUcsbUNBQW1DLENBQUM7UUFDaEQsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELEtBQUssQ0FBQyxxQkFBcUI7UUFDekIsTUFBTSxHQUFHLEdBQUcsa0NBQWtDLENBQUM7UUFDL0MsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7Q0FDRiJ9