@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.
- package/LICENSE +13 -0
- package/README.md +97 -0
- package/build/cjs/__tests__/clients/composite-client.test.js +130 -0
- package/build/cjs/__tests__/helpers/baseClients.js +29 -0
- package/build/cjs/__tests__/helpers/constants.js +110 -0
- package/build/cjs/__tests__/lib/helpers.test.js +45 -0
- package/build/cjs/__tests__/lib/util.test.js +67 -0
- package/build/cjs/__tests__/lib/validation.test.js +254 -0
- package/build/cjs/__tests__/modules/client/AccountEndpoints.test.js +186 -0
- package/build/cjs/__tests__/modules/client/FaucetEndpoint.test.js +15 -0
- package/build/cjs/__tests__/modules/client/MarketsEndpoints.test.js +69 -0
- package/build/cjs/__tests__/modules/client/Transfers.test.js +69 -0
- package/build/cjs/__tests__/modules/client/UtilityEndpoints.test.js +28 -0
- package/build/cjs/__tests__/modules/client/ValidatorGetEndpoints.test.js +46 -0
- package/build/cjs/__tests__/modules/client/ValidatorPostEndpoints.test.js +61 -0
- package/build/cjs/__tests__/modules/client/constants.js +7 -0
- package/build/cjs/__tests__/modules/onboarding.test.js +51 -0
- package/build/cjs/examples/account_endpoints.js +129 -0
- package/build/cjs/examples/batch_cancel_orders_example.js +93 -0
- package/build/cjs/examples/composite_example.js +50 -0
- package/build/cjs/examples/constants.js +35 -0
- package/build/cjs/examples/faucet_endpoint.js +23 -0
- package/build/cjs/examples/gov_add_new_market.js +77 -0
- package/build/cjs/examples/human_readable_orders.json +86 -0
- package/build/cjs/examples/human_readable_short_term_orders.json +42 -0
- package/build/cjs/examples/json-encoding.js +32 -0
- package/build/cjs/examples/long_term_order_cancel_example.js +63 -0
- package/build/cjs/examples/markets_endpoints.js +134 -0
- package/build/cjs/examples/native_examples.js +112 -0
- package/build/cjs/examples/noble_example.js +88 -0
- package/build/cjs/examples/optimal_node.js +70 -0
- package/build/cjs/examples/permissioned_keys_example.js +104 -0
- package/build/cjs/examples/raw_orders.json +130 -0
- package/build/cjs/examples/short_term_order_cancel_example.js +54 -0
- package/build/cjs/examples/short_term_order_composite_example.js +68 -0
- package/build/cjs/examples/test.js +50 -0
- package/build/cjs/examples/transfer_example_deposit.js +29 -0
- package/build/cjs/examples/transfer_example_send.js +42 -0
- package/build/cjs/examples/transfer_example_subaccount_transfer.js +29 -0
- package/build/cjs/examples/transfer_example_withdraw.js +30 -0
- package/build/cjs/examples/transfer_example_withdraw_other.js +42 -0
- package/build/cjs/examples/utility_endpoints.js +42 -0
- package/build/cjs/examples/validator_get_example.js +158 -0
- package/build/cjs/examples/validator_post_example.js +76 -0
- package/build/cjs/examples/wallet_address.js +22 -0
- package/build/cjs/examples/websocket_example.js +36 -0
- package/build/cjs/examples/websocket_orderbook_example.js +196 -0
- package/build/cjs/package.json +1 -0
- package/build/cjs/src/clients/composite-client.js +839 -0
- package/build/cjs/src/clients/constants.js +288 -0
- package/build/cjs/src/clients/faucet-client.js +36 -0
- package/build/cjs/src/clients/helpers/chain-helpers.js +178 -0
- package/build/cjs/src/clients/helpers/request-helpers.js +65 -0
- package/build/cjs/src/clients/indexer-client.js +56 -0
- package/build/cjs/src/clients/lib/axios/axiosRequest.js +34 -0
- package/build/cjs/src/clients/lib/axios/errors.js +28 -0
- package/build/cjs/src/clients/lib/axios/index.js +23 -0
- package/build/cjs/src/clients/lib/axios/types.js +11 -0
- package/build/cjs/src/clients/lib/cctpProto.js +3242 -0
- package/build/cjs/src/clients/lib/errors.js +58 -0
- package/build/cjs/src/clients/lib/registry.js +52 -0
- package/build/cjs/src/clients/modules/account.js +223 -0
- package/build/cjs/src/clients/modules/composer.js +419 -0
- package/build/cjs/src/clients/modules/get.js +442 -0
- package/build/cjs/src/clients/modules/local-wallet.js +82 -0
- package/build/cjs/src/clients/modules/markets.js +54 -0
- package/build/cjs/src/clients/modules/post.js +412 -0
- package/build/cjs/src/clients/modules/proto-includes.js +69 -0
- package/build/cjs/src/clients/modules/rest.js +41 -0
- package/build/cjs/src/clients/modules/signer.js +93 -0
- package/build/cjs/src/clients/modules/tendermintClient.js +137 -0
- package/build/cjs/src/clients/modules/utility.js +52 -0
- package/build/cjs/src/clients/modules/vault.js +25 -0
- package/build/cjs/src/clients/native.js +1330 -0
- package/build/cjs/src/clients/noble-client.js +96 -0
- package/build/cjs/src/clients/socket-client.js +304 -0
- package/build/cjs/src/clients/subaccount.js +45 -0
- package/build/cjs/src/clients/types.js +43 -0
- package/build/cjs/src/clients/validator-client.js +87 -0
- package/build/cjs/src/index.js +73 -0
- package/build/cjs/src/lib/constants.js +23 -0
- package/build/cjs/src/lib/errors.js +37 -0
- package/build/cjs/src/lib/helpers.js +108 -0
- package/build/cjs/src/lib/onboarding.js +75 -0
- package/build/cjs/src/lib/trading-key-utils.js +120 -0
- package/build/cjs/src/lib/utils.js +89 -0
- package/build/cjs/src/lib/validation.js +159 -0
- package/build/cjs/src/network_optimizer.js +109 -0
- package/build/cjs/src/types.js +25 -0
- package/build/cjs/tsconfig.cjs.tsbuildinfo +1 -0
- package/build/esm/__tests__/clients/composite-client.test.d.ts +2 -0
- package/build/esm/__tests__/clients/composite-client.test.d.ts.map +1 -0
- package/build/esm/__tests__/clients/composite-client.test.js +128 -0
- package/build/esm/__tests__/helpers/baseClients.d.ts +19 -0
- package/build/esm/__tests__/helpers/baseClients.d.ts.map +1 -0
- package/build/esm/__tests__/helpers/baseClients.js +22 -0
- package/build/esm/__tests__/helpers/constants.d.ts +19 -0
- package/build/esm/__tests__/helpers/constants.d.ts.map +1 -0
- package/build/esm/__tests__/helpers/constants.js +104 -0
- package/build/esm/__tests__/lib/helpers.test.d.ts +2 -0
- package/build/esm/__tests__/lib/helpers.test.d.ts.map +1 -0
- package/build/esm/__tests__/lib/helpers.test.js +40 -0
- package/build/esm/__tests__/lib/util.test.d.ts +2 -0
- package/build/esm/__tests__/lib/util.test.d.ts.map +1 -0
- package/build/esm/__tests__/lib/util.test.js +65 -0
- package/build/esm/__tests__/lib/validation.test.d.ts +2 -0
- package/build/esm/__tests__/lib/validation.test.d.ts.map +1 -0
- package/build/esm/__tests__/lib/validation.test.js +249 -0
- package/build/esm/__tests__/modules/client/AccountEndpoints.test.d.ts +2 -0
- package/build/esm/__tests__/modules/client/AccountEndpoints.test.d.ts.map +1 -0
- package/build/esm/__tests__/modules/client/AccountEndpoints.test.js +181 -0
- package/build/esm/__tests__/modules/client/FaucetEndpoint.test.d.ts +2 -0
- package/build/esm/__tests__/modules/client/FaucetEndpoint.test.d.ts.map +1 -0
- package/build/esm/__tests__/modules/client/FaucetEndpoint.test.js +13 -0
- package/build/esm/__tests__/modules/client/MarketsEndpoints.test.d.ts +2 -0
- package/build/esm/__tests__/modules/client/MarketsEndpoints.test.d.ts.map +1 -0
- package/build/esm/__tests__/modules/client/MarketsEndpoints.test.js +66 -0
- package/build/esm/__tests__/modules/client/Transfers.test.d.ts +2 -0
- package/build/esm/__tests__/modules/client/Transfers.test.d.ts.map +1 -0
- package/build/esm/__tests__/modules/client/Transfers.test.js +64 -0
- package/build/esm/__tests__/modules/client/UtilityEndpoints.test.d.ts +2 -0
- package/build/esm/__tests__/modules/client/UtilityEndpoints.test.d.ts.map +1 -0
- package/build/esm/__tests__/modules/client/UtilityEndpoints.test.js +26 -0
- package/build/esm/__tests__/modules/client/ValidatorGetEndpoints.test.d.ts +2 -0
- package/build/esm/__tests__/modules/client/ValidatorGetEndpoints.test.d.ts.map +1 -0
- package/build/esm/__tests__/modules/client/ValidatorGetEndpoints.test.js +44 -0
- package/build/esm/__tests__/modules/client/ValidatorPostEndpoints.test.d.ts +2 -0
- package/build/esm/__tests__/modules/client/ValidatorPostEndpoints.test.d.ts.map +1 -0
- package/build/esm/__tests__/modules/client/ValidatorPostEndpoints.test.js +56 -0
- package/build/esm/__tests__/modules/client/constants.d.ts +4 -0
- package/build/esm/__tests__/modules/client/constants.d.ts.map +1 -0
- package/build/esm/__tests__/modules/client/constants.js +4 -0
- package/build/esm/__tests__/modules/onboarding.test.d.ts +2 -0
- package/build/esm/__tests__/modules/onboarding.test.d.ts.map +1 -0
- package/build/esm/__tests__/modules/onboarding.test.js +49 -0
- package/build/esm/examples/account_endpoints.d.ts +5 -0
- package/build/esm/examples/account_endpoints.d.ts.map +1 -0
- package/build/esm/examples/account_endpoints.js +127 -0
- package/build/esm/examples/batch_cancel_orders_example.d.ts +2 -0
- package/build/esm/examples/batch_cancel_orders_example.d.ts.map +1 -0
- package/build/esm/examples/batch_cancel_orders_example.js +88 -0
- package/build/esm/examples/composite_example.d.ts +2 -0
- package/build/esm/examples/composite_example.d.ts.map +1 -0
- package/build/esm/examples/composite_example.js +45 -0
- package/build/esm/examples/constants.d.ts +13 -0
- package/build/esm/examples/constants.d.ts.map +1 -0
- package/build/esm/examples/constants.js +29 -0
- package/build/esm/examples/faucet_endpoint.d.ts +5 -0
- package/build/esm/examples/faucet_endpoint.d.ts.map +1 -0
- package/build/esm/examples/faucet_endpoint.js +21 -0
- package/build/esm/examples/gov_add_new_market.d.ts +2 -0
- package/build/esm/examples/gov_add_new_market.d.ts.map +1 -0
- package/build/esm/examples/gov_add_new_market.js +72 -0
- package/build/esm/examples/human_readable_orders.json +86 -0
- package/build/esm/examples/human_readable_short_term_orders.json +42 -0
- package/build/esm/examples/json-encoding.d.ts +2 -0
- package/build/esm/examples/json-encoding.d.ts.map +1 -0
- package/build/esm/examples/json-encoding.js +27 -0
- package/build/esm/examples/long_term_order_cancel_example.d.ts +2 -0
- package/build/esm/examples/long_term_order_cancel_example.d.ts.map +1 -0
- package/build/esm/examples/long_term_order_cancel_example.js +58 -0
- package/build/esm/examples/markets_endpoints.d.ts +5 -0
- package/build/esm/examples/markets_endpoints.d.ts.map +1 -0
- package/build/esm/examples/markets_endpoints.js +131 -0
- package/build/esm/examples/native_examples.d.ts +2 -0
- package/build/esm/examples/native_examples.d.ts.map +1 -0
- package/build/esm/examples/native_examples.js +110 -0
- package/build/esm/examples/noble_example.d.ts +2 -0
- package/build/esm/examples/noble_example.d.ts.map +1 -0
- package/build/esm/examples/noble_example.js +83 -0
- package/build/esm/examples/optimal_node.d.ts +2 -0
- package/build/esm/examples/optimal_node.d.ts.map +1 -0
- package/build/esm/examples/optimal_node.js +68 -0
- package/build/esm/examples/permissioned_keys_example.d.ts +2 -0
- package/build/esm/examples/permissioned_keys_example.d.ts.map +1 -0
- package/build/esm/examples/permissioned_keys_example.js +99 -0
- package/build/esm/examples/raw_orders.json +130 -0
- package/build/esm/examples/short_term_order_cancel_example.d.ts +2 -0
- package/build/esm/examples/short_term_order_cancel_example.d.ts.map +1 -0
- package/build/esm/examples/short_term_order_cancel_example.js +49 -0
- package/build/esm/examples/short_term_order_composite_example.d.ts +2 -0
- package/build/esm/examples/short_term_order_composite_example.d.ts.map +1 -0
- package/build/esm/examples/short_term_order_composite_example.js +63 -0
- package/build/esm/examples/test.d.ts +2 -0
- package/build/esm/examples/test.d.ts.map +1 -0
- package/build/esm/examples/test.js +45 -0
- package/build/esm/examples/transfer_example_deposit.d.ts +2 -0
- package/build/esm/examples/transfer_example_deposit.d.ts.map +1 -0
- package/build/esm/examples/transfer_example_deposit.js +24 -0
- package/build/esm/examples/transfer_example_send.d.ts +2 -0
- package/build/esm/examples/transfer_example_send.d.ts.map +1 -0
- package/build/esm/examples/transfer_example_send.js +37 -0
- package/build/esm/examples/transfer_example_subaccount_transfer.d.ts +2 -0
- package/build/esm/examples/transfer_example_subaccount_transfer.d.ts.map +1 -0
- package/build/esm/examples/transfer_example_subaccount_transfer.js +24 -0
- package/build/esm/examples/transfer_example_withdraw.d.ts +2 -0
- package/build/esm/examples/transfer_example_withdraw.d.ts.map +1 -0
- package/build/esm/examples/transfer_example_withdraw.js +25 -0
- package/build/esm/examples/transfer_example_withdraw_other.d.ts +2 -0
- package/build/esm/examples/transfer_example_withdraw_other.d.ts.map +1 -0
- package/build/esm/examples/transfer_example_withdraw_other.js +37 -0
- package/build/esm/examples/utility_endpoints.d.ts +5 -0
- package/build/esm/examples/utility_endpoints.d.ts.map +1 -0
- package/build/esm/examples/utility_endpoints.js +40 -0
- package/build/esm/examples/validator_get_example.d.ts +2 -0
- package/build/esm/examples/validator_get_example.d.ts.map +1 -0
- package/build/esm/examples/validator_get_example.js +156 -0
- package/build/esm/examples/validator_post_example.d.ts +2 -0
- package/build/esm/examples/validator_post_example.d.ts.map +1 -0
- package/build/esm/examples/validator_post_example.js +71 -0
- package/build/esm/examples/wallet_address.d.ts +2 -0
- package/build/esm/examples/wallet_address.d.ts.map +1 -0
- package/build/esm/examples/wallet_address.js +17 -0
- package/build/esm/examples/websocket_example.d.ts +2 -0
- package/build/esm/examples/websocket_example.d.ts.map +1 -0
- package/build/esm/examples/websocket_example.js +34 -0
- package/build/esm/examples/websocket_orderbook_example.d.ts +2 -0
- package/build/esm/examples/websocket_orderbook_example.d.ts.map +1 -0
- package/build/esm/examples/websocket_orderbook_example.js +194 -0
- package/build/esm/src/clients/composite-client.d.ts +457 -0
- package/build/esm/src/clients/composite-client.d.ts.map +1 -0
- package/build/esm/src/clients/composite-client.js +832 -0
- package/build/esm/src/clients/constants.d.ts +173 -0
- package/build/esm/src/clients/constants.d.ts.map +1 -0
- package/build/esm/src/clients/constants.js +264 -0
- package/build/esm/src/clients/faucet-client.d.ts +18 -0
- package/build/esm/src/clients/faucet-client.d.ts.map +1 -0
- package/build/esm/src/clients/faucet-client.js +29 -0
- package/build/esm/src/clients/helpers/chain-helpers.d.ts +15 -0
- package/build/esm/src/clients/helpers/chain-helpers.d.ts.map +1 -0
- package/build/esm/src/clients/helpers/chain-helpers.js +163 -0
- package/build/esm/src/clients/helpers/request-helpers.d.ts +3 -0
- package/build/esm/src/clients/helpers/request-helpers.d.ts.map +1 -0
- package/build/esm/src/clients/helpers/request-helpers.js +58 -0
- package/build/esm/src/clients/indexer-client.d.ts +40 -0
- package/build/esm/src/clients/indexer-client.d.ts.map +1 -0
- package/build/esm/src/clients/indexer-client.js +49 -0
- package/build/esm/src/clients/lib/axios/axiosRequest.d.ts +9 -0
- package/build/esm/src/clients/lib/axios/axiosRequest.d.ts.map +1 -0
- package/build/esm/src/clients/lib/axios/axiosRequest.js +28 -0
- package/build/esm/src/clients/lib/axios/errors.d.ts +31 -0
- package/build/esm/src/clients/lib/axios/errors.d.ts.map +1 -0
- package/build/esm/src/clients/lib/axios/errors.js +23 -0
- package/build/esm/src/clients/lib/axios/index.d.ts +7 -0
- package/build/esm/src/clients/lib/axios/index.d.ts.map +1 -0
- package/build/esm/src/clients/lib/axios/index.js +7 -0
- package/build/esm/src/clients/lib/axios/types.d.ts +12 -0
- package/build/esm/src/clients/lib/axios/types.d.ts.map +1 -0
- package/build/esm/src/clients/lib/axios/types.js +8 -0
- package/build/esm/src/clients/lib/cctpProto.d.ts +670 -0
- package/build/esm/src/clients/lib/cctpProto.d.ts.map +1 -0
- package/build/esm/src/clients/lib/cctpProto.js +3234 -0
- package/build/esm/src/clients/lib/errors.d.ts +36 -0
- package/build/esm/src/clients/lib/errors.d.ts.map +1 -0
- package/build/esm/src/clients/lib/errors.js +50 -0
- package/build/esm/src/clients/lib/registry.d.ts +4 -0
- package/build/esm/src/clients/lib/registry.d.ts.map +1 -0
- package/build/esm/src/clients/lib/registry.js +48 -0
- package/build/esm/src/clients/modules/account.d.ts +30 -0
- package/build/esm/src/clients/modules/account.d.ts.map +1 -0
- package/build/esm/src/clients/modules/account.js +217 -0
- package/build/esm/src/clients/modules/composer.d.ts +38 -0
- package/build/esm/src/clients/modules/composer.d.ts.map +1 -0
- package/build/esm/src/clients/modules/composer.js +412 -0
- package/build/esm/src/clients/modules/get.d.ts +199 -0
- package/build/esm/src/clients/modules/get.d.ts.map +1 -0
- package/build/esm/src/clients/modules/get.js +402 -0
- package/build/esm/src/clients/modules/local-wallet.d.ts +42 -0
- package/build/esm/src/clients/modules/local-wallet.d.ts.map +1 -0
- package/build/esm/src/clients/modules/local-wallet.js +76 -0
- package/build/esm/src/clients/modules/markets.d.ts +14 -0
- package/build/esm/src/clients/modules/markets.d.ts.map +1 -0
- package/build/esm/src/clients/modules/markets.js +48 -0
- package/build/esm/src/clients/modules/post.d.ts +137 -0
- package/build/esm/src/clients/modules/post.d.ts.map +1 -0
- package/build/esm/src/clients/modules/post.js +405 -0
- package/build/esm/src/clients/modules/proto-includes.d.ts +30 -0
- package/build/esm/src/clients/modules/proto-includes.d.ts.map +1 -0
- package/build/esm/src/clients/modules/proto-includes.js +30 -0
- package/build/esm/src/clients/modules/rest.d.ts +13 -0
- package/build/esm/src/clients/modules/rest.d.ts.map +1 -0
- package/build/esm/src/clients/modules/rest.js +35 -0
- package/build/esm/src/clients/modules/signer.d.ts +19 -0
- package/build/esm/src/clients/modules/signer.d.ts.map +1 -0
- package/build/esm/src/clients/modules/signer.js +86 -0
- package/build/esm/src/clients/modules/tendermintClient.d.ts +52 -0
- package/build/esm/src/clients/modules/tendermintClient.d.ts.map +1 -0
- package/build/esm/src/clients/modules/tendermintClient.js +133 -0
- package/build/esm/src/clients/modules/utility.d.ts +32 -0
- package/build/esm/src/clients/modules/utility.d.ts.map +1 -0
- package/build/esm/src/clients/modules/utility.js +46 -0
- package/build/esm/src/clients/modules/vault.d.ts +12 -0
- package/build/esm/src/clients/modules/vault.d.ts.map +1 -0
- package/build/esm/src/clients/modules/vault.js +19 -0
- package/build/esm/src/clients/native.d.ts +75 -0
- package/build/esm/src/clients/native.d.ts.map +1 -0
- package/build/esm/src/clients/native.js +1237 -0
- package/build/esm/src/clients/noble-client.d.ts +39 -0
- package/build/esm/src/clients/noble-client.d.ts.map +1 -0
- package/build/esm/src/clients/noble-client.js +92 -0
- package/build/esm/src/clients/socket-client.d.ts +149 -0
- package/build/esm/src/clients/socket-client.d.ts.map +1 -0
- package/build/esm/src/clients/socket-client.js +297 -0
- package/build/esm/src/clients/subaccount.d.ts +26 -0
- package/build/esm/src/clients/subaccount.d.ts.map +1 -0
- package/build/esm/src/clients/subaccount.js +41 -0
- package/build/esm/src/clients/types.d.ts +139 -0
- package/build/esm/src/clients/types.d.ts.map +1 -0
- package/build/esm/src/clients/types.js +26 -0
- package/build/esm/src/clients/validator-client.d.ts +41 -0
- package/build/esm/src/clients/validator-client.d.ts.map +1 -0
- package/build/esm/src/clients/validator-client.js +80 -0
- package/build/esm/src/index.d.ts +17 -0
- package/build/esm/src/index.d.ts.map +1 -0
- package/build/esm/src/index.js +19 -0
- package/build/esm/src/lib/constants.d.ts +13 -0
- package/build/esm/src/lib/constants.d.ts.map +1 -0
- package/build/esm/src/lib/constants.js +20 -0
- package/build/esm/src/lib/errors.d.ts +23 -0
- package/build/esm/src/lib/errors.d.ts.map +1 -0
- package/build/esm/src/lib/errors.js +31 -0
- package/build/esm/src/lib/helpers.d.ts +32 -0
- package/build/esm/src/lib/helpers.d.ts.map +1 -0
- package/build/esm/src/lib/helpers.js +98 -0
- package/build/esm/src/lib/onboarding.d.ts +46 -0
- package/build/esm/src/lib/onboarding.d.ts.map +1 -0
- package/build/esm/src/lib/onboarding.js +69 -0
- package/build/esm/src/lib/trading-key-utils.d.ts +37 -0
- package/build/esm/src/lib/trading-key-utils.d.ts.map +1 -0
- package/build/esm/src/lib/trading-key-utils.js +111 -0
- package/build/esm/src/lib/utils.d.ts +49 -0
- package/build/esm/src/lib/utils.d.ts.map +1 -0
- package/build/esm/src/lib/utils.js +79 -0
- package/build/esm/src/lib/validation.d.ts +35 -0
- package/build/esm/src/lib/validation.d.ts.map +1 -0
- package/build/esm/src/lib/validation.js +147 -0
- package/build/esm/src/network_optimizer.d.ts +21 -0
- package/build/esm/src/network_optimizer.d.ts.map +1 -0
- package/build/esm/src/network_optimizer.js +104 -0
- package/build/esm/src/types.d.ts +26 -0
- package/build/esm/src/types.d.ts.map +1 -0
- package/build/esm/src/types.js +8 -0
- package/build/esm/tsconfig.esm.tsbuildinfo +1 -0
- package/package.json +129 -0
|
@@ -0,0 +1,254 @@
|
|
|
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 types_1 = require("../../src/types");
|
|
7
|
+
const constants_1 = require("../../src/lib/constants");
|
|
8
|
+
const errors_1 = require("../../src/lib/errors");
|
|
9
|
+
const validation_1 = require("../../src/lib/validation");
|
|
10
|
+
const constants_2 = require("../helpers/constants");
|
|
11
|
+
const long_1 = __importDefault(require("long"));
|
|
12
|
+
const MAX_UINT_32_PLUS_1 = constants_1.MAX_UINT_32 + 1;
|
|
13
|
+
const MAX_SUBACCOUNT_NUMBER_PLUS_1 = constants_1.MAX_SUBACCOUNT_NUMBER + 1;
|
|
14
|
+
describe('Validations', () => {
|
|
15
|
+
it.each([
|
|
16
|
+
['valid', constants_2.defaultOrder, undefined],
|
|
17
|
+
['0 value clientId', { ...constants_2.defaultOrder, clientId: 0 }, undefined],
|
|
18
|
+
[
|
|
19
|
+
'underflow clientId',
|
|
20
|
+
{ ...constants_2.defaultOrder, clientId: -1 },
|
|
21
|
+
new errors_1.UserError(`clientId: ${-1} is not a valid uint32`),
|
|
22
|
+
],
|
|
23
|
+
[
|
|
24
|
+
'overflow clientId',
|
|
25
|
+
{ ...constants_2.defaultOrder, clientId: MAX_UINT_32_PLUS_1 },
|
|
26
|
+
new errors_1.UserError(`clientId: ${MAX_UINT_32_PLUS_1} is not a valid uint32`),
|
|
27
|
+
],
|
|
28
|
+
[
|
|
29
|
+
'underflow quantums',
|
|
30
|
+
{ ...constants_2.defaultOrder, quantums: long_1.default.NEG_ONE },
|
|
31
|
+
new errors_1.UserError(`quantums: ${-1} cannot be <= 0`),
|
|
32
|
+
],
|
|
33
|
+
[
|
|
34
|
+
'underflow goodTilBlock',
|
|
35
|
+
{ ...constants_2.defaultOrder, goodTilBlock: -1 },
|
|
36
|
+
new errors_1.UserError(`goodTilBlock: ${-1} is not a valid uint32 or is 0`),
|
|
37
|
+
],
|
|
38
|
+
[
|
|
39
|
+
'overflow goodTilBlock',
|
|
40
|
+
{ ...constants_2.defaultOrder, goodTilBlock: MAX_UINT_32_PLUS_1 },
|
|
41
|
+
new errors_1.UserError(`goodTilBlock: ${MAX_UINT_32_PLUS_1} is not a valid uint32 or is 0`),
|
|
42
|
+
],
|
|
43
|
+
[
|
|
44
|
+
'0 goodTilBlock',
|
|
45
|
+
{ ...constants_2.defaultOrder, goodTilBlock: 0 },
|
|
46
|
+
new errors_1.UserError(`goodTilBlock: ${0} is not a valid uint32 or is 0`),
|
|
47
|
+
],
|
|
48
|
+
[
|
|
49
|
+
'underflow subticks',
|
|
50
|
+
{ ...constants_2.defaultOrder, subticks: long_1.default.NEG_ONE },
|
|
51
|
+
new errors_1.UserError(`subticks: ${-1} cannot be <= 0`),
|
|
52
|
+
],
|
|
53
|
+
])('Validate order: %s', (_name, order, expectedError) => {
|
|
54
|
+
const validationError = (0, validation_1.validatePlaceOrderMessage)(0, order);
|
|
55
|
+
expect(validationError).toEqual(expectedError);
|
|
56
|
+
});
|
|
57
|
+
it.each([
|
|
58
|
+
['valid', constants_2.defaultCancelOrder, undefined],
|
|
59
|
+
['0 value clientId', { ...constants_2.defaultCancelOrder, clientId: 0 }, undefined],
|
|
60
|
+
[
|
|
61
|
+
'underflow clientId',
|
|
62
|
+
{ ...constants_2.defaultCancelOrder, clientId: -1 },
|
|
63
|
+
new errors_1.UserError(`clientId: ${-1} is not a valid uint32`),
|
|
64
|
+
],
|
|
65
|
+
[
|
|
66
|
+
'overflow clientId',
|
|
67
|
+
{ ...constants_2.defaultCancelOrder, clientId: MAX_UINT_32_PLUS_1 },
|
|
68
|
+
new errors_1.UserError(`clientId: ${MAX_UINT_32_PLUS_1} is not a valid uint32`),
|
|
69
|
+
],
|
|
70
|
+
[
|
|
71
|
+
'underflow goodTilBlock',
|
|
72
|
+
{ ...constants_2.defaultCancelOrder, goodTilBlock: -1 },
|
|
73
|
+
new errors_1.UserError(`goodTilBlock: ${-1} is not a valid uint32 or is 0`),
|
|
74
|
+
],
|
|
75
|
+
[
|
|
76
|
+
'overflow goodTilBlock',
|
|
77
|
+
{ ...constants_2.defaultCancelOrder, goodTilBlock: MAX_UINT_32_PLUS_1 },
|
|
78
|
+
new errors_1.UserError(`goodTilBlock: ${MAX_UINT_32_PLUS_1} is not a valid uint32 or is 0`),
|
|
79
|
+
],
|
|
80
|
+
[
|
|
81
|
+
'0 goodTilBlock',
|
|
82
|
+
{ ...constants_2.defaultCancelOrder, goodTilBlock: 0 },
|
|
83
|
+
new errors_1.UserError(`goodTilBlock: ${0} is not a valid uint32 or is 0`),
|
|
84
|
+
],
|
|
85
|
+
[
|
|
86
|
+
'contains GoodTilBlockTime',
|
|
87
|
+
{ ...constants_2.defaultCancelOrder, goodTilBlockTime: 10 },
|
|
88
|
+
new errors_1.UserError('goodTilBlockTime is 10, but should not be set for non-stateful orders'),
|
|
89
|
+
],
|
|
90
|
+
[
|
|
91
|
+
'stateful order - valid',
|
|
92
|
+
{
|
|
93
|
+
...constants_2.defaultCancelOrder,
|
|
94
|
+
orderFlags: types_1.OrderFlags.LONG_TERM,
|
|
95
|
+
goodTilBlock: undefined,
|
|
96
|
+
goodTilBlockTime: 10,
|
|
97
|
+
},
|
|
98
|
+
undefined,
|
|
99
|
+
],
|
|
100
|
+
[
|
|
101
|
+
'stateful order - undefined goodTilBlockTime',
|
|
102
|
+
{ ...constants_2.defaultCancelOrder, orderFlags: types_1.OrderFlags.LONG_TERM },
|
|
103
|
+
new errors_1.UserError(`goodTilBlockTime: ${undefined} is not a valid uint32 or is 0`),
|
|
104
|
+
],
|
|
105
|
+
[
|
|
106
|
+
'stateful order - zero goodTilBlockTime',
|
|
107
|
+
{ ...constants_2.defaultCancelOrder, orderFlags: types_1.OrderFlags.LONG_TERM, goodTilBlockTime: 0 },
|
|
108
|
+
new errors_1.UserError(`goodTilBlockTime: ${0} is not a valid uint32 or is 0`),
|
|
109
|
+
],
|
|
110
|
+
[
|
|
111
|
+
'stateful order - underflow goodTilBlockTime',
|
|
112
|
+
{ ...constants_2.defaultCancelOrder, orderFlags: types_1.OrderFlags.LONG_TERM, goodTilBlockTime: -1 },
|
|
113
|
+
new errors_1.UserError(`goodTilBlockTime: ${-1} is not a valid uint32 or is 0`),
|
|
114
|
+
],
|
|
115
|
+
[
|
|
116
|
+
'stateful order - overflow goodTilBlockTime',
|
|
117
|
+
{
|
|
118
|
+
...constants_2.defaultCancelOrder,
|
|
119
|
+
orderFlags: types_1.OrderFlags.LONG_TERM,
|
|
120
|
+
goodTilBlockTime: MAX_UINT_32_PLUS_1,
|
|
121
|
+
},
|
|
122
|
+
new errors_1.UserError(`goodTilBlockTime: ${MAX_UINT_32_PLUS_1} is not a valid uint32 or is 0`),
|
|
123
|
+
],
|
|
124
|
+
[
|
|
125
|
+
'stateful order - has GoodTilBlock',
|
|
126
|
+
{
|
|
127
|
+
...constants_2.defaultCancelOrder,
|
|
128
|
+
orderFlags: types_1.OrderFlags.LONG_TERM,
|
|
129
|
+
goodTilBlock: 10,
|
|
130
|
+
goodTilBlockTime: 10,
|
|
131
|
+
},
|
|
132
|
+
new errors_1.UserError('goodTilBlock is 10, but should not be set for stateful orders'),
|
|
133
|
+
],
|
|
134
|
+
])('Validate cancel order: %s', (_name, order, expectedError) => {
|
|
135
|
+
const validationError = (0, validation_1.validateCancelOrderMessage)(0, order);
|
|
136
|
+
expect(validationError).toEqual(expectedError);
|
|
137
|
+
});
|
|
138
|
+
it.each([
|
|
139
|
+
['valid', constants_2.defaultBatchCancelOrder, undefined],
|
|
140
|
+
[
|
|
141
|
+
'overflow clientId',
|
|
142
|
+
{
|
|
143
|
+
...constants_2.defaultBatchCancelOrder,
|
|
144
|
+
shortTermOrders: [
|
|
145
|
+
...constants_2.defaultBatchCancelOrder.shortTermOrders,
|
|
146
|
+
{
|
|
147
|
+
clobPairId: types_1.ClobPairId.PERPETUAL_PAIR_ETH_USD,
|
|
148
|
+
clientIds: [MAX_UINT_32_PLUS_1],
|
|
149
|
+
},
|
|
150
|
+
],
|
|
151
|
+
},
|
|
152
|
+
new errors_1.UserError(`clientId: ${MAX_UINT_32_PLUS_1} is not a valid uint32`),
|
|
153
|
+
],
|
|
154
|
+
[
|
|
155
|
+
'underflow goodTilBlock',
|
|
156
|
+
{ ...constants_2.defaultBatchCancelOrder, goodTilBlock: -1 },
|
|
157
|
+
new errors_1.UserError(`goodTilBlock: ${-1} is not a valid uint32 or is 0`),
|
|
158
|
+
],
|
|
159
|
+
[
|
|
160
|
+
'overflow goodTilBlock',
|
|
161
|
+
{ ...constants_2.defaultBatchCancelOrder, goodTilBlock: MAX_UINT_32_PLUS_1 },
|
|
162
|
+
new errors_1.UserError(`goodTilBlock: ${MAX_UINT_32_PLUS_1} is not a valid uint32 or is 0`),
|
|
163
|
+
],
|
|
164
|
+
[
|
|
165
|
+
'0 goodTilBlock',
|
|
166
|
+
{ ...constants_2.defaultBatchCancelOrder, goodTilBlock: 0 },
|
|
167
|
+
new errors_1.UserError(`goodTilBlock: ${0} is not a valid uint32 or is 0`),
|
|
168
|
+
],
|
|
169
|
+
])('Validate batch cancel orders: %s', (_name, orders, expectedError) => {
|
|
170
|
+
const validationError = (0, validation_1.validateBatchCancelOrderMessage)(0, orders);
|
|
171
|
+
expect(validationError).toEqual(expectedError);
|
|
172
|
+
});
|
|
173
|
+
it.each([
|
|
174
|
+
['valid', constants_2.defaultTransfer, undefined],
|
|
175
|
+
[
|
|
176
|
+
'underflow senderSubaccountNumber',
|
|
177
|
+
{ ...constants_2.defaultTransfer, sender: { owner: constants_2.TEST_ADDRESS, number: -1 } },
|
|
178
|
+
new errors_1.UserError(`senderSubaccountNumber: ${-1} cannot be < 0 or > ${constants_1.MAX_SUBACCOUNT_NUMBER}`),
|
|
179
|
+
],
|
|
180
|
+
[
|
|
181
|
+
'exceeds max subaccount number - senderSubaccountNumber',
|
|
182
|
+
{ ...constants_2.defaultTransfer, sender: { owner: constants_2.TEST_ADDRESS, number: MAX_SUBACCOUNT_NUMBER_PLUS_1 } },
|
|
183
|
+
new errors_1.UserError(`senderSubaccountNumber: ${MAX_SUBACCOUNT_NUMBER_PLUS_1} cannot be < 0 or > ${constants_1.MAX_SUBACCOUNT_NUMBER}`),
|
|
184
|
+
],
|
|
185
|
+
[
|
|
186
|
+
'0 senderSubaccountNumber',
|
|
187
|
+
{ ...constants_2.defaultTransfer, sender: { owner: constants_2.TEST_ADDRESS, number: 0 } },
|
|
188
|
+
undefined,
|
|
189
|
+
],
|
|
190
|
+
[
|
|
191
|
+
'underflow recipientSubaccountNumber',
|
|
192
|
+
{ ...constants_2.defaultTransfer, recipient: { owner: constants_2.TEST_ADDRESS, number: -1 } },
|
|
193
|
+
new errors_1.UserError(`recipientSubaccountNumber: ${-1} cannot be < 0 or > ${constants_1.MAX_SUBACCOUNT_NUMBER}`),
|
|
194
|
+
],
|
|
195
|
+
[
|
|
196
|
+
'exceeds max subaccount number - recipient.subaccountNumber',
|
|
197
|
+
{
|
|
198
|
+
...constants_2.defaultTransfer,
|
|
199
|
+
recipient: { owner: constants_2.TEST_ADDRESS, number: MAX_SUBACCOUNT_NUMBER_PLUS_1 },
|
|
200
|
+
},
|
|
201
|
+
new errors_1.UserError(`recipientSubaccountNumber: ${MAX_SUBACCOUNT_NUMBER_PLUS_1} cannot be < 0 or > ${constants_1.MAX_SUBACCOUNT_NUMBER}`),
|
|
202
|
+
],
|
|
203
|
+
[
|
|
204
|
+
'0 recipientSubaccountNumber',
|
|
205
|
+
{ ...constants_2.defaultTransfer, recipient: { owner: constants_2.TEST_ADDRESS, number: 0 } },
|
|
206
|
+
undefined,
|
|
207
|
+
],
|
|
208
|
+
[
|
|
209
|
+
'non-zero asset id',
|
|
210
|
+
{ ...constants_2.defaultTransfer, assetId: 1 },
|
|
211
|
+
new errors_1.UserError(`asset id: ${1} not supported`),
|
|
212
|
+
],
|
|
213
|
+
[
|
|
214
|
+
'0 amount',
|
|
215
|
+
{ ...constants_2.defaultTransfer, amount: long_1.default.ZERO },
|
|
216
|
+
new errors_1.UserError(`amount: ${0} cannot be <= 0`),
|
|
217
|
+
],
|
|
218
|
+
[
|
|
219
|
+
'too short recipientAddress',
|
|
220
|
+
{
|
|
221
|
+
...constants_2.defaultTransfer,
|
|
222
|
+
recipient: {
|
|
223
|
+
owner: 'perpx14063jves4u9zhm7eja5ltf3t8zspxd92qnk23',
|
|
224
|
+
number: 0,
|
|
225
|
+
},
|
|
226
|
+
},
|
|
227
|
+
new errors_1.UserError('Error: Invalid checksum for perpx14063jves4u9zhm7eja5ltf3t8zspxd92qnk23'),
|
|
228
|
+
],
|
|
229
|
+
[
|
|
230
|
+
'invalid recipientAddress',
|
|
231
|
+
{
|
|
232
|
+
...constants_2.defaultTransfer,
|
|
233
|
+
recipient: {
|
|
234
|
+
owner: 'fakeAddress1234',
|
|
235
|
+
number: 0,
|
|
236
|
+
},
|
|
237
|
+
},
|
|
238
|
+
new errors_1.UserError('Error: Mixed-case string fakeAddress1234'),
|
|
239
|
+
],
|
|
240
|
+
])('Validate transfer: %s', (_name, transfer, expectedError) => {
|
|
241
|
+
const validationError = (0, validation_1.validateTransferMessage)(transfer);
|
|
242
|
+
expect(validationError).toEqual(expectedError);
|
|
243
|
+
});
|
|
244
|
+
it.each([
|
|
245
|
+
['valid', 'perpx17xpfvakm2amg962yls6f84z3kell8c5leg8eqc', true],
|
|
246
|
+
['invalid: does not start with perpx1', 'perpx27xpfvakm2amg962yls6f84z3kell8c5leg8eqc', false],
|
|
247
|
+
['invalid: too short', 'perpx17xpfvakm2amg962yls6f84z3kell8c5leg8eq', false],
|
|
248
|
+
['invalid: too long', 'perpx17xpfvakm2amg962yls6f84z3kell8c5leg8eqcs', false],
|
|
249
|
+
])('Validate address: %s', (_name, address, expectedResult) => {
|
|
250
|
+
const validationResult = (0, validation_1.isValidAddress)(address);
|
|
251
|
+
expect(validationResult).toEqual(expectedResult);
|
|
252
|
+
});
|
|
253
|
+
});
|
|
254
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vX190ZXN0c19fL2xpYi92YWxpZGF0aW9uLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSwyQ0FPeUI7QUFDekIsdURBQTZFO0FBQzdFLGlEQUFpRDtBQUNqRCx5REFNa0M7QUFDbEMsb0RBTThCO0FBQzlCLGdEQUF3QjtBQUV4QixNQUFNLGtCQUFrQixHQUFXLHVCQUFXLEdBQUcsQ0FBQyxDQUFDO0FBQ25ELE1BQU0sNEJBQTRCLEdBQVcsaUNBQXFCLEdBQUcsQ0FBQyxDQUFDO0FBRXZFLFFBQVEsQ0FBQyxhQUFhLEVBQUUsR0FBRyxFQUFFO0lBQzNCLEVBQUUsQ0FBQyxJQUFJLENBQUM7UUFDTixDQUFDLE9BQU8sRUFBRSx3QkFBWSxFQUFFLFNBQVMsQ0FBQztRQUNsQyxDQUFDLGtCQUFrQixFQUFFLEVBQUUsR0FBRyx3QkFBWSxFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQUUsRUFBRSxTQUFTLENBQUM7UUFDakU7WUFDRSxvQkFBb0I7WUFDcEIsRUFBRSxHQUFHLHdCQUFZLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQyxFQUFFO1lBQ2pDLElBQUksa0JBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQyx3QkFBd0IsQ0FBQztTQUN2RDtRQUNEO1lBQ0UsbUJBQW1CO1lBQ25CLEVBQUUsR0FBRyx3QkFBWSxFQUFFLFFBQVEsRUFBRSxrQkFBa0IsRUFBRTtZQUNqRCxJQUFJLGtCQUFTLENBQUMsYUFBYSxrQkFBa0Isd0JBQXdCLENBQUM7U0FDdkU7UUFDRDtZQUNFLG9CQUFvQjtZQUNwQixFQUFFLEdBQUcsd0JBQVksRUFBRSxRQUFRLEVBQUUsY0FBSSxDQUFDLE9BQU8sRUFBRTtZQUMzQyxJQUFJLGtCQUFTLENBQUMsYUFBYSxDQUFDLENBQUMsaUJBQWlCLENBQUM7U0FDaEQ7UUFDRDtZQUNFLHdCQUF3QjtZQUN4QixFQUFFLEdBQUcsd0JBQVksRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDLEVBQUU7WUFDckMsSUFBSSxrQkFBUyxDQUFDLGlCQUFpQixDQUFDLENBQUMsZ0NBQWdDLENBQUM7U0FDbkU7UUFDRDtZQUNFLHVCQUF1QjtZQUN2QixFQUFFLEdBQUcsd0JBQVksRUFBRSxZQUFZLEVBQUUsa0JBQWtCLEVBQUU7WUFDckQsSUFBSSxrQkFBUyxDQUFDLGlCQUFpQixrQkFBa0IsZ0NBQWdDLENBQUM7U0FDbkY7UUFDRDtZQUNFLGdCQUFnQjtZQUNoQixFQUFFLEdBQUcsd0JBQVksRUFBRSxZQUFZLEVBQUUsQ0FBQyxFQUFFO1lBQ3BDLElBQUksa0JBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxnQ0FBZ0MsQ0FBQztTQUNsRTtRQUNEO1lBQ0Usb0JBQW9CO1lBQ3BCLEVBQUUsR0FBRyx3QkFBWSxFQUFFLFFBQVEsRUFBRSxjQUFJLENBQUMsT0FBTyxFQUFFO1lBQzNDLElBQUksa0JBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQztTQUNoRDtLQUNGLENBQUMsQ0FDQSxvQkFBb0IsRUFDcEIsQ0FBQyxLQUFhLEVBQUUsS0FBa0IsRUFBRSxhQUFvQyxFQUFFLEVBQUU7UUFDMUUsTUFBTSxlQUFlLEdBQXFCLElBQUEsc0NBQXlCLEVBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzlFLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDakQsQ0FBQyxDQUNGLENBQUM7SUFFRixFQUFFLENBQUMsSUFBSSxDQUFDO1FBQ04sQ0FBQyxPQUFPLEVBQUUsOEJBQWtCLEVBQUUsU0FBUyxDQUFDO1FBQ3hDLENBQUMsa0JBQWtCLEVBQUUsRUFBRSxHQUFHLDhCQUFrQixFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQUUsRUFBRSxTQUFTLENBQUM7UUFDdkU7WUFDRSxvQkFBb0I7WUFDcEIsRUFBRSxHQUFHLDhCQUFrQixFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsRUFBRTtZQUN2QyxJQUFJLGtCQUFTLENBQUMsYUFBYSxDQUFDLENBQUMsd0JBQXdCLENBQUM7U0FDdkQ7UUFDRDtZQUNFLG1CQUFtQjtZQUNuQixFQUFFLEdBQUcsOEJBQWtCLEVBQUUsUUFBUSxFQUFFLGtCQUFrQixFQUFFO1lBQ3ZELElBQUksa0JBQVMsQ0FBQyxhQUFhLGtCQUFrQix3QkFBd0IsQ0FBQztTQUN2RTtRQUNEO1lBQ0Usd0JBQXdCO1lBQ3hCLEVBQUUsR0FBRyw4QkFBa0IsRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDLEVBQUU7WUFDM0MsSUFBSSxrQkFBUyxDQUFDLGlCQUFpQixDQUFDLENBQUMsZ0NBQWdDLENBQUM7U0FDbkU7UUFDRDtZQUNFLHVCQUF1QjtZQUN2QixFQUFFLEdBQUcsOEJBQWtCLEVBQUUsWUFBWSxFQUFFLGtCQUFrQixFQUFFO1lBQzNELElBQUksa0JBQVMsQ0FBQyxpQkFBaUIsa0JBQWtCLGdDQUFnQyxDQUFDO1NBQ25GO1FBQ0Q7WUFDRSxnQkFBZ0I7WUFDaEIsRUFBRSxHQUFHLDhCQUFrQixFQUFFLFlBQVksRUFBRSxDQUFDLEVBQUU7WUFDMUMsSUFBSSxrQkFBUyxDQUFDLGlCQUFpQixDQUFDLGdDQUFnQyxDQUFDO1NBQ2xFO1FBQ0Q7WUFDRSwyQkFBMkI7WUFDM0IsRUFBRSxHQUFHLDhCQUFrQixFQUFFLGdCQUFnQixFQUFFLEVBQUUsRUFBRTtZQUMvQyxJQUFJLGtCQUFTLENBQUMsdUVBQXVFLENBQUM7U0FDdkY7UUFDRDtZQUNFLHdCQUF3QjtZQUN4QjtnQkFDRSxHQUFHLDhCQUFrQjtnQkFDckIsVUFBVSxFQUFFLGtCQUFVLENBQUMsU0FBUztnQkFDaEMsWUFBWSxFQUFFLFNBQVM7Z0JBQ3ZCLGdCQUFnQixFQUFFLEVBQUU7YUFDckI7WUFDRCxTQUFTO1NBQ1Y7UUFDRDtZQUNFLDZDQUE2QztZQUM3QyxFQUFFLEdBQUcsOEJBQWtCLEVBQUUsVUFBVSxFQUFFLGtCQUFVLENBQUMsU0FBUyxFQUFFO1lBQzNELElBQUksa0JBQVMsQ0FBQyxxQkFBcUIsU0FBUyxnQ0FBZ0MsQ0FBQztTQUM5RTtRQUNEO1lBQ0Usd0NBQXdDO1lBQ3hDLEVBQUUsR0FBRyw4QkFBa0IsRUFBRSxVQUFVLEVBQUUsa0JBQVUsQ0FBQyxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxFQUFFO1lBQ2hGLElBQUksa0JBQVMsQ0FBQyxxQkFBcUIsQ0FBQyxnQ0FBZ0MsQ0FBQztTQUN0RTtRQUNEO1lBQ0UsNkNBQTZDO1lBQzdDLEVBQUUsR0FBRyw4QkFBa0IsRUFBRSxVQUFVLEVBQUUsa0JBQVUsQ0FBQyxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLEVBQUU7WUFDakYsSUFBSSxrQkFBUyxDQUFDLHFCQUFxQixDQUFDLENBQUMsZ0NBQWdDLENBQUM7U0FDdkU7UUFDRDtZQUNFLDRDQUE0QztZQUM1QztnQkFDRSxHQUFHLDhCQUFrQjtnQkFDckIsVUFBVSxFQUFFLGtCQUFVLENBQUMsU0FBUztnQkFDaEMsZ0JBQWdCLEVBQUUsa0JBQWtCO2FBQ3JDO1lBQ0QsSUFBSSxrQkFBUyxDQUFDLHFCQUFxQixrQkFBa0IsZ0NBQWdDLENBQUM7U0FDdkY7UUFDRDtZQUNFLG1DQUFtQztZQUNuQztnQkFDRSxHQUFHLDhCQUFrQjtnQkFDckIsVUFBVSxFQUFFLGtCQUFVLENBQUMsU0FBUztnQkFDaEMsWUFBWSxFQUFFLEVBQUU7Z0JBQ2hCLGdCQUFnQixFQUFFLEVBQUU7YUFDckI7WUFDRCxJQUFJLGtCQUFTLENBQUMsK0RBQStELENBQUM7U0FDL0U7S0FDRixDQUFDLENBQ0EsMkJBQTJCLEVBQzNCLENBQUMsS0FBYSxFQUFFLEtBQW1CLEVBQUUsYUFBb0MsRUFBRSxFQUFFO1FBQzNFLE1BQU0sZUFBZSxHQUFxQixJQUFBLHVDQUEwQixFQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUMvRSxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ2pELENBQUMsQ0FDRixDQUFDO0lBRUYsRUFBRSxDQUFDLElBQUksQ0FBQztRQUNOLENBQUMsT0FBTyxFQUFFLG1DQUF1QixFQUFFLFNBQVMsQ0FBQztRQUM3QztZQUNFLG1CQUFtQjtZQUNuQjtnQkFDRSxHQUFHLG1DQUF1QjtnQkFDMUIsZUFBZSxFQUFFO29CQUNmLEdBQUcsbUNBQXVCLENBQUMsZUFBZTtvQkFDMUM7d0JBQ0UsVUFBVSxFQUFFLGtCQUFVLENBQUMsc0JBQXNCO3dCQUM3QyxTQUFTLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztxQkFDaEM7aUJBQ0Y7YUFDRjtZQUNELElBQUksa0JBQVMsQ0FBQyxhQUFhLGtCQUFrQix3QkFBd0IsQ0FBQztTQUN2RTtRQUNEO1lBQ0Usd0JBQXdCO1lBQ3hCLEVBQUUsR0FBRyxtQ0FBdUIsRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDLEVBQUU7WUFDaEQsSUFBSSxrQkFBUyxDQUFDLGlCQUFpQixDQUFDLENBQUMsZ0NBQWdDLENBQUM7U0FDbkU7UUFDRDtZQUNFLHVCQUF1QjtZQUN2QixFQUFFLEdBQUcsbUNBQXVCLEVBQUUsWUFBWSxFQUFFLGtCQUFrQixFQUFFO1lBQ2hFLElBQUksa0JBQVMsQ0FBQyxpQkFBaUIsa0JBQWtCLGdDQUFnQyxDQUFDO1NBQ25GO1FBQ0Q7WUFDRSxnQkFBZ0I7WUFDaEIsRUFBRSxHQUFHLG1DQUF1QixFQUFFLFlBQVksRUFBRSxDQUFDLEVBQUU7WUFDL0MsSUFBSSxrQkFBUyxDQUFDLGlCQUFpQixDQUFDLGdDQUFnQyxDQUFDO1NBQ2xFO0tBQ0YsQ0FBQyxDQUNBLGtDQUFrQyxFQUNsQyxDQUFDLEtBQWEsRUFBRSxNQUF5QixFQUFFLGFBQW9DLEVBQUUsRUFBRTtRQUNqRixNQUFNLGVBQWUsR0FBcUIsSUFBQSw0Q0FBK0IsRUFBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDckYsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNqRCxDQUFDLENBQ0YsQ0FBQztJQUVGLEVBQUUsQ0FBQyxJQUFJLENBQUM7UUFDTixDQUFDLE9BQU8sRUFBRSwyQkFBZSxFQUFFLFNBQVMsQ0FBQztRQUNyQztZQUNFLGtDQUFrQztZQUNsQyxFQUFFLEdBQUcsMkJBQWUsRUFBRSxNQUFNLEVBQUUsRUFBRSxLQUFLLEVBQUUsd0JBQVksRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNuRSxJQUFJLGtCQUFTLENBQUMsMkJBQTJCLENBQUMsQ0FBQyx1QkFBdUIsaUNBQXFCLEVBQUUsQ0FBQztTQUMzRjtRQUNEO1lBQ0Usd0RBQXdEO1lBQ3hELEVBQUUsR0FBRywyQkFBZSxFQUFFLE1BQU0sRUFBRSxFQUFFLEtBQUssRUFBRSx3QkFBWSxFQUFFLE1BQU0sRUFBRSw0QkFBNEIsRUFBRSxFQUFFO1lBQzdGLElBQUksa0JBQVMsQ0FDWCwyQkFBMkIsNEJBQTRCLHVCQUF1QixpQ0FBcUIsRUFBRSxDQUN0RztTQUNGO1FBQ0Q7WUFDRSwwQkFBMEI7WUFDMUIsRUFBRSxHQUFHLDJCQUFlLEVBQUUsTUFBTSxFQUFFLEVBQUUsS0FBSyxFQUFFLHdCQUFZLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ2xFLFNBQVM7U0FDVjtRQUNEO1lBQ0UscUNBQXFDO1lBQ3JDLEVBQUUsR0FBRywyQkFBZSxFQUFFLFNBQVMsRUFBRSxFQUFFLEtBQUssRUFBRSx3QkFBWSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ3RFLElBQUksa0JBQVMsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDLHVCQUF1QixpQ0FBcUIsRUFBRSxDQUFDO1NBQzlGO1FBQ0Q7WUFDRSw0REFBNEQ7WUFDNUQ7Z0JBQ0UsR0FBRywyQkFBZTtnQkFDbEIsU0FBUyxFQUFFLEVBQUUsS0FBSyxFQUFFLHdCQUFZLEVBQUUsTUFBTSxFQUFFLDRCQUE0QixFQUFFO2FBQ3pFO1lBQ0QsSUFBSSxrQkFBUyxDQUNYLDhCQUE4Qiw0QkFBNEIsdUJBQXVCLGlDQUFxQixFQUFFLENBQ3pHO1NBQ0Y7UUFDRDtZQUNFLDZCQUE2QjtZQUM3QixFQUFFLEdBQUcsMkJBQWUsRUFBRSxTQUFTLEVBQUUsRUFBRSxLQUFLLEVBQUUsd0JBQVksRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDckUsU0FBUztTQUNWO1FBQ0Q7WUFDRSxtQkFBbUI7WUFDbkIsRUFBRSxHQUFHLDJCQUFlLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRTtZQUNsQyxJQUFJLGtCQUFTLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDO1NBQzlDO1FBQ0Q7WUFDRSxVQUFVO1lBQ1YsRUFBRSxHQUFHLDJCQUFlLEVBQUUsTUFBTSxFQUFFLGNBQUksQ0FBQyxJQUFJLEVBQUU7WUFDekMsSUFBSSxrQkFBUyxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQztTQUM3QztRQUNEO1lBQ0UsNEJBQTRCO1lBQzVCO2dCQUNFLEdBQUcsMkJBQWU7Z0JBQ2xCLFNBQVMsRUFBRTtvQkFDVCxLQUFLLEVBQUUsNkNBQTZDO29CQUNwRCxNQUFNLEVBQUUsQ0FBQztpQkFDVjthQUNGO1lBQ0QsSUFBSSxrQkFBUyxDQUFDLHlFQUF5RSxDQUFDO1NBQ3pGO1FBQ0Q7WUFDRSwwQkFBMEI7WUFDMUI7Z0JBQ0UsR0FBRywyQkFBZTtnQkFDbEIsU0FBUyxFQUFFO29CQUNULEtBQUssRUFBRSxpQkFBaUI7b0JBQ3hCLE1BQU0sRUFBRSxDQUFDO2lCQUNWO2FBQ0Y7WUFDRCxJQUFJLGtCQUFTLENBQUMsMENBQTBDLENBQUM7U0FDMUQ7S0FDRixDQUFDLENBQ0EsdUJBQXVCLEVBQ3ZCLENBQUMsS0FBYSxFQUFFLFFBQWtCLEVBQUUsYUFBb0MsRUFBRSxFQUFFO1FBQzFFLE1BQU0sZUFBZSxHQUFxQixJQUFBLG9DQUF1QixFQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzVFLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDakQsQ0FBQyxDQUNGLENBQUM7SUFFRixFQUFFLENBQUMsSUFBSSxDQUFDO1FBQ04sQ0FBQyxPQUFPLEVBQUUsOENBQThDLEVBQUUsSUFBSSxDQUFDO1FBQy9ELENBQUMscUNBQXFDLEVBQUUsOENBQThDLEVBQUUsS0FBSyxDQUFDO1FBQzlGLENBQUMsb0JBQW9CLEVBQUUsNkNBQTZDLEVBQUUsS0FBSyxDQUFDO1FBQzVFLENBQUMsbUJBQW1CLEVBQUUsK0NBQStDLEVBQUUsS0FBSyxDQUFDO0tBQzlFLENBQUMsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDLEtBQWEsRUFBRSxPQUFlLEVBQUUsY0FBdUIsRUFBRSxFQUFFO1FBQ3JGLE1BQU0sZ0JBQWdCLEdBQVksSUFBQSwyQkFBYyxFQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzFELE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNuRCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIn0=
|
|
@@ -0,0 +1,186 @@
|
|
|
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 tendermint_rpc_1 = require("@cosmjs/tendermint-rpc");
|
|
7
|
+
const long_1 = __importDefault(require("long"));
|
|
8
|
+
const constants_1 = require("../../../src/clients/constants");
|
|
9
|
+
const indexer_client_1 = require("../../../src/clients/indexer-client");
|
|
10
|
+
const local_wallet_1 = __importDefault(require("../../../src/clients/modules/local-wallet"));
|
|
11
|
+
const subaccount_1 = require("../../../src/clients/subaccount");
|
|
12
|
+
const validator_client_1 = require("../../../src/clients/validator-client");
|
|
13
|
+
const src_1 = require("../../../src");
|
|
14
|
+
const constants_2 = require("./constants");
|
|
15
|
+
describe('IndexerClient', () => {
|
|
16
|
+
const client = new indexer_client_1.IndexerClient(constants_1.Network.testnet().indexerConfig);
|
|
17
|
+
describe('Private Endpoints', () => {
|
|
18
|
+
it('Subaccounts', async () => {
|
|
19
|
+
const response = await client.account.getSubaccounts(constants_2.PERPX_TEST_ADDRESS);
|
|
20
|
+
const subaccounts = response.subaccounts;
|
|
21
|
+
expect(subaccounts.size).not.toBeNull();
|
|
22
|
+
const subaccount0 = subaccounts[0];
|
|
23
|
+
const subaccountNumber = subaccount0.subaccountNumber;
|
|
24
|
+
expect(subaccountNumber).not.toBeNull();
|
|
25
|
+
});
|
|
26
|
+
it('Subaccount 0', async () => {
|
|
27
|
+
// Deposit to subaccount 0 first
|
|
28
|
+
const wallet = await local_wallet_1.default.fromMnemonic(constants_2.PERPX_TEST_MNEMONIC, src_1.BECH32_PREFIX);
|
|
29
|
+
const validatorClient = await validator_client_1.ValidatorClient.connect(constants_1.Network.testnet().validatorConfig);
|
|
30
|
+
const subaccountInfo = subaccount_1.SubaccountInfo.forLocalWallet(wallet, 0);
|
|
31
|
+
const depositTx = await validatorClient.post.deposit(subaccountInfo, 0, new long_1.default(10), tendermint_rpc_1.Method.BroadcastTxCommit);
|
|
32
|
+
expect(depositTx).not.toBeUndefined();
|
|
33
|
+
const response = await client.account.getSubaccount(constants_2.PERPX_TEST_ADDRESS, 0);
|
|
34
|
+
const subaccount = response.subaccount;
|
|
35
|
+
expect(subaccount).not.toBeNull();
|
|
36
|
+
const subaccountNumber = subaccount.subaccountNumber;
|
|
37
|
+
expect(subaccountNumber).not.toBeNull();
|
|
38
|
+
});
|
|
39
|
+
it('Asset Positions', async () => {
|
|
40
|
+
const response = await client.account.getSubaccountAssetPositions(constants_2.PERPX_TEST_ADDRESS, 0);
|
|
41
|
+
expect(response).not.toBeNull();
|
|
42
|
+
const positions = response.positions;
|
|
43
|
+
expect(positions).not.toBeNull();
|
|
44
|
+
if (positions.length > 0) {
|
|
45
|
+
const position = positions[0];
|
|
46
|
+
expect(position).not.toBeNull();
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
it('Perpetual Positions', async () => {
|
|
50
|
+
const response = await client.account.getSubaccountPerpetualPositions(constants_2.PERPX_TEST_ADDRESS, 0);
|
|
51
|
+
expect(response).not.toBeNull();
|
|
52
|
+
const positions = response.positions;
|
|
53
|
+
expect(positions).not.toBeNull();
|
|
54
|
+
if (positions.length > 0) {
|
|
55
|
+
const position = positions[0];
|
|
56
|
+
expect(position).not.toBeNull();
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
it('Transfers', async () => {
|
|
60
|
+
const response = await client.account.getSubaccountTransfers(constants_2.PERPX_TEST_ADDRESS, 0);
|
|
61
|
+
expect(response).not.toBeNull();
|
|
62
|
+
const transfers = response.transfers;
|
|
63
|
+
expect(transfers).not.toBeNull();
|
|
64
|
+
if (transfers.length > 0) {
|
|
65
|
+
const transfer = transfers[0];
|
|
66
|
+
expect(transfer).not.toBeNull();
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
it('Transfers ParentSubaccountNumber', async () => {
|
|
70
|
+
const response = await client.account.getParentSubaccountNumberTransfers(constants_2.PERPX_TEST_ADDRESS, 0);
|
|
71
|
+
expect(response).not.toBeNull();
|
|
72
|
+
const transfers = response.transfers;
|
|
73
|
+
expect(transfers).not.toBeNull();
|
|
74
|
+
if (transfers.length > 0) {
|
|
75
|
+
const transfer = transfers[0];
|
|
76
|
+
expect(transfer).not.toBeNull();
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
it('Transfers Pagination', async () => {
|
|
80
|
+
const response = await client.account.getSubaccountTransfers(constants_2.PERPX_TEST_ADDRESS, 0, 1, undefined, undefined, 1);
|
|
81
|
+
expect(response).not.toBeNull();
|
|
82
|
+
const transfers = response.transfers;
|
|
83
|
+
expect(transfers).not.toBeNull();
|
|
84
|
+
if (transfers.length > 0) {
|
|
85
|
+
const transfer = transfers[0];
|
|
86
|
+
expect(transfer).not.toBeNull();
|
|
87
|
+
expect(response.totalResults).toBeGreaterThanOrEqual(1);
|
|
88
|
+
}
|
|
89
|
+
expect(response.pageSize).toStrictEqual(1);
|
|
90
|
+
expect(response.offset).toStrictEqual(0);
|
|
91
|
+
});
|
|
92
|
+
it('Transfers ParentSubaccountNumber Pagination', async () => {
|
|
93
|
+
const response = await client.account.getParentSubaccountNumberTransfers(constants_2.PERPX_TEST_ADDRESS, 0, 1, undefined, undefined, 1);
|
|
94
|
+
expect(response).not.toBeNull();
|
|
95
|
+
const transfers = response.transfers;
|
|
96
|
+
expect(transfers).not.toBeNull();
|
|
97
|
+
if (transfers.length > 0) {
|
|
98
|
+
const transfer = transfers[0];
|
|
99
|
+
expect(transfer).not.toBeNull();
|
|
100
|
+
expect(response.totalResults).toBeGreaterThanOrEqual(1);
|
|
101
|
+
}
|
|
102
|
+
expect(response.pageSize).toStrictEqual(1);
|
|
103
|
+
expect(response.offset).toStrictEqual(0);
|
|
104
|
+
});
|
|
105
|
+
it('Orders', async () => {
|
|
106
|
+
const response = await client.account.getSubaccountOrders(constants_2.PERPX_TEST_ADDRESS, 0);
|
|
107
|
+
expect(response).not.toBeNull();
|
|
108
|
+
const orders = response;
|
|
109
|
+
expect(orders).not.toBeNull();
|
|
110
|
+
if (orders.length > 0) {
|
|
111
|
+
const order = orders[0];
|
|
112
|
+
expect(order).not.toBeNull();
|
|
113
|
+
}
|
|
114
|
+
});
|
|
115
|
+
it('Fills', async () => {
|
|
116
|
+
const response = await client.account.getSubaccountFills(constants_2.PERPX_TEST_ADDRESS, 0);
|
|
117
|
+
expect(response).not.toBeNull();
|
|
118
|
+
const fills = response.fills;
|
|
119
|
+
expect(fills).not.toBeNull();
|
|
120
|
+
if (fills.length > 0) {
|
|
121
|
+
const fill = fills[0];
|
|
122
|
+
expect(fill).not.toBeNull();
|
|
123
|
+
}
|
|
124
|
+
});
|
|
125
|
+
it('Fills ParentSubaccountNumber', async () => {
|
|
126
|
+
const response = await client.account.getParentSubaccountNumberFills(constants_2.PERPX_TEST_ADDRESS, 0);
|
|
127
|
+
expect(response).not.toBeNull();
|
|
128
|
+
const fills = response.fills;
|
|
129
|
+
expect(fills).not.toBeNull();
|
|
130
|
+
if (fills.length > 0) {
|
|
131
|
+
const fill = fills[0];
|
|
132
|
+
expect(fill).not.toBeNull();
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
it('Fills Pagination', async () => {
|
|
136
|
+
const response = await client.account.getSubaccountFills(constants_2.PERPX_TEST_ADDRESS, 0, undefined, undefined, 1, undefined, undefined, 1);
|
|
137
|
+
expect(response).not.toBeNull();
|
|
138
|
+
const fills = response.fills;
|
|
139
|
+
expect(fills).not.toBeNull();
|
|
140
|
+
if (fills.length > 0) {
|
|
141
|
+
const fill = fills[0];
|
|
142
|
+
expect(fill).not.toBeNull();
|
|
143
|
+
expect(response.totalResults).toBeGreaterThanOrEqual(1);
|
|
144
|
+
}
|
|
145
|
+
expect(response.pageSize).toStrictEqual(1);
|
|
146
|
+
expect(response.offset).toStrictEqual(0);
|
|
147
|
+
});
|
|
148
|
+
it('Fills ParentSubaccountNumber Pagination', async () => {
|
|
149
|
+
const response = await client.account.getParentSubaccountNumberFills(constants_2.PERPX_TEST_ADDRESS, 0, undefined, undefined, 1, undefined, undefined, 1);
|
|
150
|
+
expect(response).not.toBeNull();
|
|
151
|
+
const fills = response.fills;
|
|
152
|
+
expect(fills).not.toBeNull();
|
|
153
|
+
if (fills.length > 0) {
|
|
154
|
+
const fill = fills[0];
|
|
155
|
+
expect(fill).not.toBeNull();
|
|
156
|
+
expect(response.totalResults).toBeGreaterThanOrEqual(1);
|
|
157
|
+
}
|
|
158
|
+
expect(response.pageSize).toStrictEqual(1);
|
|
159
|
+
expect(response.offset).toStrictEqual(0);
|
|
160
|
+
});
|
|
161
|
+
it('Historical PNL', async () => {
|
|
162
|
+
const response = await client.account.getSubaccountHistoricalPNLs(constants_2.PERPX_TEST_ADDRESS, 0);
|
|
163
|
+
expect(response).not.toBeNull();
|
|
164
|
+
const historicalPnl = response.historicalPnl;
|
|
165
|
+
expect(historicalPnl).not.toBeNull();
|
|
166
|
+
if (historicalPnl.length > 0) {
|
|
167
|
+
const historicalPnl0 = historicalPnl[0];
|
|
168
|
+
expect(historicalPnl0).not.toBeNull();
|
|
169
|
+
}
|
|
170
|
+
});
|
|
171
|
+
it('Historical PNL Pagination', async () => {
|
|
172
|
+
const response = await client.account.getSubaccountHistoricalPNLs(constants_2.PERPX_TEST_ADDRESS, 0, undefined, undefined, undefined, undefined, 1, 1);
|
|
173
|
+
expect(response).not.toBeNull();
|
|
174
|
+
const historicalPnl = response.historicalPnl;
|
|
175
|
+
expect(historicalPnl).not.toBeNull();
|
|
176
|
+
if (historicalPnl.length > 0) {
|
|
177
|
+
const historicalPnl0 = historicalPnl[0];
|
|
178
|
+
expect(historicalPnl0).not.toBeNull();
|
|
179
|
+
expect(response.totalResults).toBeGreaterThanOrEqual(1);
|
|
180
|
+
}
|
|
181
|
+
expect(response.pageSize).toStrictEqual(1);
|
|
182
|
+
expect(response.offset).toStrictEqual(0);
|
|
183
|
+
});
|
|
184
|
+
});
|
|
185
|
+
});
|
|
186
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWNjb3VudEVuZHBvaW50cy50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vX190ZXN0c19fL21vZHVsZXMvY2xpZW50L0FjY291bnRFbmRwb2ludHMudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDJEQUFnRDtBQUNoRCxnREFBd0I7QUFFeEIsOERBQXlEO0FBQ3pELHdFQUFvRTtBQUNwRSw2RkFBb0U7QUFDcEUsZ0VBQWlFO0FBQ2pFLDRFQUF3RTtBQUN4RSxzQ0FBNkM7QUFDN0MsMkNBQXNFO0FBRXRFLFFBQVEsQ0FBQyxlQUFlLEVBQUUsR0FBRyxFQUFFO0lBQzdCLE1BQU0sTUFBTSxHQUFHLElBQUksOEJBQWEsQ0FBQyxtQkFBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBRWxFLFFBQVEsQ0FBQyxtQkFBbUIsRUFBRSxHQUFHLEVBQUU7UUFDakMsRUFBRSxDQUFDLGFBQWEsRUFBRSxLQUFLLElBQUksRUFBRTtZQUMzQixNQUFNLFFBQVEsR0FBRyxNQUFNLE1BQU0sQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLDhCQUFrQixDQUFDLENBQUM7WUFDekUsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLFdBQVcsQ0FBQztZQUN6QyxNQUFNLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUN4QyxNQUFNLFdBQVcsR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbkMsTUFBTSxnQkFBZ0IsR0FBRyxXQUFXLENBQUMsZ0JBQWdCLENBQUM7WUFDdEQsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzFDLENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLGNBQWMsRUFBRSxLQUFLLElBQUksRUFBRTtZQUM1QixnQ0FBZ0M7WUFDaEMsTUFBTSxNQUFNLEdB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
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const constants_1 = require("../../../src/clients/constants");
|
|
4
|
+
const faucet_client_1 = require("../../../src/clients/faucet-client");
|
|
5
|
+
const constants_2 = require("./constants");
|
|
6
|
+
describe('FaucetClient', () => {
|
|
7
|
+
const client = new faucet_client_1.FaucetClient(constants_1.FaucetApiHost.TESTNET);
|
|
8
|
+
describe('Faucet Endpoints', () => {
|
|
9
|
+
it('Fill', async () => {
|
|
10
|
+
const response = await client.fill(constants_2.PERPX_TEST_ADDRESS, 0, 2000);
|
|
11
|
+
expect(response === null || response === void 0 ? void 0 : response.status).toBe(201);
|
|
12
|
+
});
|
|
13
|
+
});
|
|
14
|
+
});
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmF1Y2V0RW5kcG9pbnQudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL19fdGVzdHNfXy9tb2R1bGVzL2NsaWVudC9GYXVjZXRFbmRwb2ludC50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsOERBQStEO0FBQy9ELHNFQUFrRTtBQUNsRSwyQ0FBaUQ7QUFFakQsUUFBUSxDQUFDLGNBQWMsRUFBRSxHQUFHLEVBQUU7SUFDNUIsTUFBTSxNQUFNLEdBQUcsSUFBSSw0QkFBWSxDQUFDLHlCQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFdkQsUUFBUSxDQUFDLGtCQUFrQixFQUFFLEdBQUcsRUFBRTtRQUNoQyxFQUFFLENBQUMsTUFBTSxFQUFFLEtBQUssSUFBSSxFQUFFO1lBQ3BCLE1BQU0sUUFBUSxHQUFHLE1BQU0sTUFBTSxDQUFDLElBQUksQ0FBQyw4QkFBa0IsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDaEUsTUFBTSxDQUFDLFFBQVEsYUFBUixRQUFRLHVCQUFSLFFBQVEsQ0FBRSxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDckMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIn0=
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MARKET_BTC_USD = void 0;
|
|
4
|
+
const constants_1 = require("../../../src/clients/constants");
|
|
5
|
+
const indexer_client_1 = require("../../../src/clients/indexer-client");
|
|
6
|
+
// ------------ Markets ------------
|
|
7
|
+
exports.MARKET_BTC_USD = 'BTC-USD';
|
|
8
|
+
describe('IndexerClient', () => {
|
|
9
|
+
const client = new indexer_client_1.IndexerClient(constants_1.Network.testnet().indexerConfig);
|
|
10
|
+
describe('Market Endpoints', () => {
|
|
11
|
+
it('Markets', async () => {
|
|
12
|
+
const response = await client.markets.getPerpetualMarkets();
|
|
13
|
+
const btc = response.markets[exports.MARKET_BTC_USD];
|
|
14
|
+
const status = btc.status;
|
|
15
|
+
expect(status).toBe('ACTIVE');
|
|
16
|
+
});
|
|
17
|
+
it('BTC Market', async () => {
|
|
18
|
+
const response = await client.markets.getPerpetualMarkets(exports.MARKET_BTC_USD);
|
|
19
|
+
const btc = response.markets[exports.MARKET_BTC_USD];
|
|
20
|
+
const status = btc.status;
|
|
21
|
+
expect(status).toBe('ACTIVE');
|
|
22
|
+
});
|
|
23
|
+
it('BTC Trades', async () => {
|
|
24
|
+
const response = await client.markets.getPerpetualMarketTrades(exports.MARKET_BTC_USD);
|
|
25
|
+
const trades = response.trades;
|
|
26
|
+
expect(trades).not.toBeUndefined();
|
|
27
|
+
});
|
|
28
|
+
it('BTC Trades Pagination', async () => {
|
|
29
|
+
const response = await client.markets.getPerpetualMarketTrades(exports.MARKET_BTC_USD, undefined, undefined, 1, 1);
|
|
30
|
+
const trades = response.trades;
|
|
31
|
+
expect(trades).not.toBeUndefined();
|
|
32
|
+
if (trades.length > 0) {
|
|
33
|
+
const trade = trades[0];
|
|
34
|
+
expect(trade).not.toBeNull();
|
|
35
|
+
expect(response.totalResults).toBeGreaterThanOrEqual(1);
|
|
36
|
+
}
|
|
37
|
+
expect(response.pageSize).toStrictEqual(1);
|
|
38
|
+
expect(response.offset).toStrictEqual(0);
|
|
39
|
+
});
|
|
40
|
+
it('BTC Orderbook', async () => {
|
|
41
|
+
const response = await client.markets.getPerpetualMarketOrderbook(exports.MARKET_BTC_USD);
|
|
42
|
+
const asks = response.asks;
|
|
43
|
+
const bids = response.bids;
|
|
44
|
+
expect(asks).not.toBeUndefined();
|
|
45
|
+
expect(bids).not.toBeUndefined();
|
|
46
|
+
});
|
|
47
|
+
it('BTC Candles', async () => {
|
|
48
|
+
const response = await client.markets.getPerpetualMarketCandles(exports.MARKET_BTC_USD, '1MIN');
|
|
49
|
+
const candles = response.candles;
|
|
50
|
+
expect(candles).not.toBeUndefined();
|
|
51
|
+
});
|
|
52
|
+
it('BTC Historical Funding', async () => {
|
|
53
|
+
const response = await client.markets.getPerpetualMarketHistoricalFunding(exports.MARKET_BTC_USD);
|
|
54
|
+
expect(response).not.toBeNull();
|
|
55
|
+
const historicalFunding = response.historicalFunding;
|
|
56
|
+
expect(historicalFunding).not.toBeNull();
|
|
57
|
+
if (historicalFunding.length > 0) {
|
|
58
|
+
const historicalFunding0 = historicalFunding[0];
|
|
59
|
+
expect(historicalFunding0).not.toBeNull();
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
it('Sparklines', async () => {
|
|
63
|
+
const response = await client.markets.getPerpetualMarketSparklines();
|
|
64
|
+
const btcSparklines = response[exports.MARKET_BTC_USD];
|
|
65
|
+
expect(btcSparklines).not.toBeUndefined();
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
});
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWFya2V0c0VuZHBvaW50cy50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vX190ZXN0c19fL21vZHVsZXMvY2xpZW50L01hcmtldHNFbmRwb2ludHMudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw4REFBeUQ7QUFDekQsd0VBQW9FO0FBRXBFLG9DQUFvQztBQUN2QixRQUFBLGNBQWMsR0FBVyxTQUFTLENBQUM7QUFFaEQsUUFBUSxDQUFDLGVBQWUsRUFBRSxHQUFHLEVBQUU7SUFDN0IsTUFBTSxNQUFNLEdBQUcsSUFBSSw4QkFBYSxDQUFDLG1CQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUM7SUFFbEUsUUFBUSxDQUFDLGtCQUFrQixFQUFFLEdBQUcsRUFBRTtRQUNoQyxFQUFFLENBQUMsU0FBUyxFQUFFLEtBQUssSUFBSSxFQUFFO1lBQ3ZCLE1BQU0sUUFBUSxHQUFHLE1BQU0sTUFBTSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQzVELE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsc0JBQWMsQ0FBQyxDQUFDO1lBQzdDLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUM7WUFDMUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoQyxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyxZQUFZLEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDMUIsTUFBTSxRQUFRLEdBQUcsTUFBTSxNQUFNLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLHNCQUFjLENBQUMsQ0FBQztZQUMxRSxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLHNCQUFjLENBQUMsQ0FBQztZQUM3QyxNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDO1lBQzFCLE1BQU0sQ0FBQyxNQUFN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
|
|
@@ -0,0 +1,69 @@
|
|
|
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/clients/constants");
|
|
7
|
+
const local_wallet_1 = __importDefault(require("../../../src/clients/modules/local-wallet"));
|
|
8
|
+
const subaccount_1 = require("../../../src/clients/subaccount");
|
|
9
|
+
const validator_client_1 = require("../../../src/clients/validator-client");
|
|
10
|
+
const constants_2 = require("../../../examples/constants");
|
|
11
|
+
const long_1 = __importDefault(require("long"));
|
|
12
|
+
const src_1 = require("../../../src");
|
|
13
|
+
async function sleep(ms) {
|
|
14
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Safely log transaction response without circular references
|
|
18
|
+
* This prevents Jest serialization errors when logging transaction objects
|
|
19
|
+
*/
|
|
20
|
+
function logTxResponse(tx, label) {
|
|
21
|
+
console.log(`**${label}**`);
|
|
22
|
+
const txInfo = {};
|
|
23
|
+
if ('hash' in tx) {
|
|
24
|
+
txInfo.hash = Buffer.from(tx.hash).toString('hex');
|
|
25
|
+
}
|
|
26
|
+
// BroadcastTxSyncResponse has both 'code' and 'log' properties
|
|
27
|
+
if ('code' in tx && 'log' in tx) {
|
|
28
|
+
const syncResponse = tx;
|
|
29
|
+
txInfo.code = syncResponse.code;
|
|
30
|
+
txInfo.log = syncResponse.log;
|
|
31
|
+
}
|
|
32
|
+
// IndexedTx has 'height' and 'txIndex' properties
|
|
33
|
+
if ('height' in tx && 'txIndex' in tx) {
|
|
34
|
+
const indexedTx = tx;
|
|
35
|
+
txInfo.height = indexedTx.height;
|
|
36
|
+
txInfo.txIndex = indexedTx.txIndex;
|
|
37
|
+
}
|
|
38
|
+
console.log(txInfo);
|
|
39
|
+
}
|
|
40
|
+
describe('Validator Client', () => {
|
|
41
|
+
let wallet;
|
|
42
|
+
let subaccount;
|
|
43
|
+
let client;
|
|
44
|
+
describe('Transfers', () => {
|
|
45
|
+
beforeEach(async () => {
|
|
46
|
+
wallet = await local_wallet_1.default.fromMnemonic(constants_2.PERPX_TEST_MNEMONIC, src_1.BECH32_PREFIX);
|
|
47
|
+
subaccount = subaccount_1.SubaccountInfo.forLocalWallet(wallet, 0);
|
|
48
|
+
client = await validator_client_1.ValidatorClient.connect(constants_1.Network.testnet().validatorConfig);
|
|
49
|
+
await sleep(5000); // wait for withdraw to complete
|
|
50
|
+
});
|
|
51
|
+
it('Deposit', async () => {
|
|
52
|
+
// Clear cache right before transaction to ensure fresh account fetch
|
|
53
|
+
// This prevents using stale cached sequence numbers
|
|
54
|
+
// The account will be fetched fresh by deposit() -> send() -> account()
|
|
55
|
+
client.post.clearAccountCache(wallet.address);
|
|
56
|
+
const tx = await client.post.deposit(subaccount, 0, new long_1.default(10));
|
|
57
|
+
logTxResponse(tx, 'Deposit Tx');
|
|
58
|
+
});
|
|
59
|
+
it('Transfer', async () => {
|
|
60
|
+
const tx = await client.post.transfer(subaccount, subaccount.address, 1, 0, new long_1.default(10));
|
|
61
|
+
logTxResponse(tx, 'Transfer Tx');
|
|
62
|
+
});
|
|
63
|
+
it('Withdraw', async () => {
|
|
64
|
+
const tx = await client.post.withdraw(subaccount, 0, new long_1.default(10), undefined);
|
|
65
|
+
logTxResponse(tx, 'Withdraw Tx');
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
});
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHJhbnNmZXJzLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9fX3Rlc3RzX18vbW9kdWxlcy9jbGllbnQvVHJhbnNmZXJzLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw4REFBeUQ7QUFDekQsNkZBQW9FO0FBQ3BFLGdFQUFpRTtBQUNqRSw0RUFBd0U7QUFDeEUsMkRBQWtFO0FBQ2xFLGdEQUF3QjtBQUN4QixzQ0FBNkM7QUFJN0MsS0FBSyxVQUFVLEtBQUssQ0FBQyxFQUFVO0lBQzdCLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUMzRCxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBUyxhQUFhLENBQ3BCLEVBQWtFLEVBQ2xFLEtBQWE7SUFFYixPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsQ0FBQztJQUM1QixNQUFNLE1BQU0sR0FBUSxFQUFFLENBQUM7SUFDdkIsSUFBSSxNQUFNLElBQUksRUFBRSxFQUFFLENBQUM7UUFDakIsTUFBTSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUNELCtEQUErRDtJQUMvRCxJQUFJLE1BQU0sSUFBSSxFQUFFLElBQUksS0FBSyxJQUFJLEVBQUUsRUFBRSxDQUFDO1FBQ2hDLE1BQU0sWUFBWSxHQUFHLEVBQTZCLENBQUM7UUFDbkQsTUFBTSxDQUFDLElBQUksR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDO1FBQ2hDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsWUFBWSxDQUFDLEdBQUcsQ0FBQztJQUNoQyxDQUFDO0lBQ0Qsa0RBQWtEO0lBQ2xELElBQUksUUFBUSxJQUFJLEVBQUUsSUFBSSxTQUFTLElBQUksRUFBRSxFQUFFLENBQUM7UUFDdEMsTUFBTSxTQUFTLEdBQUcsRUFBZSxDQUFDO1FBQ2xDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQztRQUNqQyxNQUFNLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUM7SUFDckMsQ0FBQztJQUNELE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDdEIsQ0FBQztBQUVELFFBQVEsQ0FBQyxrQkFBa0IsRUFBRSxHQUFHLEVBQUU7SUFDaEMsSUFBSSxNQUFtQixDQUFDO0lBQ3hCLElBQUksVUFBMEIsQ0FBQztJQUMvQixJQUFJLE1BQXVCLENBQUM7SUFFNUIsUUFBUSxDQUFDLFdBQVcsRUFBRSxHQUFHLEVBQUU7UUFDekIsVUFBVSxDQUFDLEtBQUssSUFBSSxFQUFFO1lBQ3BCLE1BQU0sR0FBRyxNQUFNLHNCQUFXLENBQUMsWUFBWSxDQUFDLCtCQUFtQixFQUFFLG1CQUFhLENBQUMsQ0FBQztZQUM1RSxVQUFVLEdBQUcsMkJBQWMsQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3RELE1BQU0sR0FBRyxNQUFNLGtDQUFlLENBQUMsT0FBTyxDQUFDLG1CQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDMUUsTUFBTSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxnQ0FBZ0M7UUFDckQsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsU0FBUyxFQUFFLEtBQUssSUFBSSxFQUFFO1lBQ3ZCLHFFQUFxRTtZQUNyRSxvREFBb0Q7WUFDcEQsd0VBQXdFO1lBQ3hFLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLE9BQVEsQ0FBQyxDQUFDO1lBRS9DLE1BQU0sRUFBRSxHQUFHLE1BQU0sTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUMsRUFBRSxJQUFJLGNBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ2xFLGFBQWEsQ0FBQyxFQUFFLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDbEMsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsVUFBVSxFQUFFLEtBQUssSUFBSSxFQUFFO1lBQ3hCLE1BQU0sRUFBRSxHQUFHLE1BQU0sTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxJQUFJLGNBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzFGLGFBQWEsQ0FBQyxFQUFFLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFDbkMsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsVUFBVSxFQUFFLEtBQUssSUFBSSxFQUFFO1lBQ3hCLE1BQU0sRUFBRSxHQUFHLE1BQU0sTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLENBQUMsRUFBRSxJQUFJLGNBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQztZQUM5RSxhQUFhLENBQUMsRUFBRSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQ25DLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyJ9
|