@ritbit/v4-client-js 1.3.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env +1 -0
- package/.eslintignore +2 -0
- package/.eslintrc.js +15 -0
- package/.gitleaks.toml +24 -0
- package/.gitleaksignore +1 -0
- package/.nvmrc +1 -0
- package/.prettierignore +3 -0
- package/.prettierrc.json +6 -0
- package/.releaserc +10 -0
- package/.vscode/launch.json +11 -0
- package/LICENSE +13 -0
- package/README.md +83 -0
- package/__native__/__ios__/v4-native-client.js +209891 -0
- package/__native__/__ios__/v4-native-client.js.map +1 -0
- package/__tests__/clients/composite-client.test.ts +140 -0
- package/__tests__/helpers/baseClients.ts +23 -0
- package/__tests__/helpers/constants.ts +130 -0
- package/__tests__/lib/helpers.test.ts +53 -0
- package/__tests__/lib/util.test.ts +77 -0
- package/__tests__/lib/validation.test.ts +289 -0
- package/__tests__/modules/client/AccountEndpoints.test.ts +236 -0
- package/__tests__/modules/client/FaucetEndpoint.test.ts +14 -0
- package/__tests__/modules/client/MarketsEndpoints.test.ts +84 -0
- package/__tests__/modules/client/Transfers.test.ts +44 -0
- package/__tests__/modules/client/UtilityEndpoints.test.ts +29 -0
- package/__tests__/modules/client/ValidatorGetEndpoints.test.ts +50 -0
- package/__tests__/modules/client/ValidatorPostEndpoints.test.ts +52 -0
- package/__tests__/modules/client/constants.ts +5 -0
- package/__tests__/modules/onboarding.test.ts +66 -0
- package/build/cjs/clients/composite-client.js +788 -0
- package/build/cjs/clients/constants.js +293 -0
- package/build/cjs/clients/faucet-client.js +36 -0
- package/build/cjs/clients/helpers/chain-helpers.js +178 -0
- package/build/cjs/clients/helpers/request-helpers.js +65 -0
- package/build/cjs/clients/indexer-client.js +56 -0
- package/build/cjs/clients/lib/axios/axiosRequest.js +34 -0
- package/build/cjs/clients/lib/axios/errors.js +28 -0
- package/build/cjs/clients/lib/axios/index.js +23 -0
- package/build/cjs/clients/lib/axios/types.js +11 -0
- package/build/cjs/clients/lib/cctpProto.js +3242 -0
- package/build/cjs/clients/lib/errors.js +58 -0
- package/build/cjs/clients/lib/registry.js +51 -0
- package/build/cjs/clients/modules/account.js +223 -0
- package/build/cjs/clients/modules/composer.js +404 -0
- package/build/cjs/clients/modules/get.js +469 -0
- package/build/cjs/clients/modules/local-wallet.js +59 -0
- package/build/cjs/clients/modules/markets.js +54 -0
- package/build/cjs/clients/modules/post.js +391 -0
- package/build/cjs/clients/modules/proto-includes.js +72 -0
- package/build/cjs/clients/modules/rest.js +33 -0
- package/build/cjs/clients/modules/signer.js +93 -0
- package/build/cjs/clients/modules/tendermintClient.js +137 -0
- package/build/cjs/clients/modules/utility.js +44 -0
- package/build/cjs/clients/modules/vault.js +25 -0
- package/build/cjs/clients/noble-client.js +75 -0
- package/build/cjs/clients/socket-client.js +301 -0
- package/build/cjs/clients/subaccount.js +33 -0
- package/build/cjs/clients/types.js +43 -0
- package/build/cjs/clients/validator-client.js +81 -0
- package/build/cjs/index.js +73 -0
- package/build/cjs/lib/constants.js +23 -0
- package/build/cjs/lib/errors.js +37 -0
- package/build/cjs/lib/helpers.js +98 -0
- package/build/cjs/lib/onboarding.js +75 -0
- package/build/cjs/lib/trading-key-utils.js +108 -0
- package/build/cjs/lib/utils.js +79 -0
- package/build/cjs/lib/validation.js +150 -0
- package/build/cjs/network_optimizer.js +96 -0
- package/build/cjs/package.json +1 -0
- package/build/cjs/tsconfig.cjs.tsbuildinfo +1 -0
- package/build/cjs/types.js +25 -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 +169 -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 +39 -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 +48 -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 +48 -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 +406 -0
- package/build/esm/src/clients/composite-client.d.ts.map +1 -0
- package/build/esm/src/clients/composite-client.js +781 -0
- package/build/esm/src/clients/constants.d.ts +170 -0
- package/build/esm/src/clients/constants.d.ts.map +1 -0
- package/build/esm/src/clients/constants.js +269 -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 +7 -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 +38 -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 +47 -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 +37 -0
- package/build/esm/src/clients/modules/composer.d.ts.map +1 -0
- package/build/esm/src/clients/modules/composer.js +397 -0
- package/build/esm/src/clients/modules/get.d.ts +193 -0
- package/build/esm/src/clients/modules/get.d.ts.map +1 -0
- package/build/esm/src/clients/modules/get.js +429 -0
- package/build/esm/src/clients/modules/local-wallet.d.ts +19 -0
- package/build/esm/src/clients/modules/local-wallet.d.ts.map +1 -0
- package/build/esm/src/clients/modules/local-wallet.js +53 -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 +133 -0
- package/build/esm/src/clients/modules/post.d.ts.map +1 -0
- package/build/esm/src/clients/modules/post.js +384 -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 +32 -0
- package/build/esm/src/clients/modules/rest.d.ts +12 -0
- package/build/esm/src/clients/modules/rest.d.ts.map +1 -0
- package/build/esm/src/clients/modules/rest.js +27 -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 +54 -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 +27 -0
- package/build/esm/src/clients/modules/utility.d.ts.map +1 -0
- package/build/esm/src/clients/modules/utility.js +38 -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 +18 -0
- package/build/esm/src/clients/noble-client.d.ts.map +1 -0
- package/build/esm/src/clients/noble-client.js +71 -0
- package/build/esm/src/clients/socket-client.d.ts +146 -0
- package/build/esm/src/clients/socket-client.d.ts.map +1 -0
- package/build/esm/src/clients/socket-client.js +294 -0
- package/build/esm/src/clients/subaccount.d.ts +14 -0
- package/build/esm/src/clients/subaccount.d.ts.map +1 -0
- package/build/esm/src/clients/subaccount.js +29 -0
- package/build/esm/src/clients/types.d.ts +137 -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 +35 -0
- package/build/esm/src/clients/validator-client.d.ts.map +1 -0
- package/build/esm/src/clients/validator-client.js +74 -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 +22 -0
- package/build/esm/src/lib/helpers.d.ts.map +1 -0
- package/build/esm/src/lib/helpers.js +88 -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 +22 -0
- package/build/esm/src/lib/trading-key-utils.d.ts.map +1 -0
- package/build/esm/src/lib/trading-key-utils.js +99 -0
- package/build/esm/src/lib/utils.d.ts +39 -0
- package/build/esm/src/lib/utils.d.ts.map +1 -0
- package/build/esm/src/lib/utils.js +69 -0
- package/build/esm/src/lib/validation.d.ts +26 -0
- package/build/esm/src/lib/validation.d.ts.map +1 -0
- package/build/esm/src/lib/validation.js +138 -0
- package/build/esm/src/network_optimizer.d.ts +8 -0
- package/build/esm/src/network_optimizer.d.ts.map +1 -0
- package/build/esm/src/network_optimizer.js +91 -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/commitlint.config.js +8 -0
- package/examples/account_endpoints.ts +129 -0
- package/examples/batch_cancel_orders_example.ts +130 -0
- package/examples/composite_example.ts +65 -0
- package/examples/constants.ts +42 -0
- package/examples/faucet_endpoint.ts +24 -0
- package/examples/gov_add_new_market.json +64 -0
- package/examples/gov_add_new_market.ts +95 -0
- package/examples/human_readable_orders.json +86 -0
- package/examples/human_readable_short_term_orders.json +42 -0
- package/examples/json-encoding.ts +33 -0
- package/examples/long_term_order_cancel_example.ts +87 -0
- package/examples/markets_endpoints.ts +134 -0
- package/examples/native_examples.ts +151 -0
- package/examples/noble_example.ts +107 -0
- package/examples/optimal_node.ts +70 -0
- package/examples/permissioned_keys_example.ts +162 -0
- package/examples/raw_orders.json +130 -0
- package/examples/short_term_order_cancel_example.ts +68 -0
- package/examples/short_term_order_composite_example.ts +80 -0
- package/examples/test.ts +65 -0
- package/examples/transfer_example_deposit.ts +28 -0
- package/examples/transfer_example_send.ts +60 -0
- package/examples/transfer_example_subaccount_transfer.ts +29 -0
- package/examples/transfer_example_withdraw.ts +31 -0
- package/examples/transfer_example_withdraw_other.ts +60 -0
- package/examples/utility_endpoints.ts +42 -0
- package/examples/validator_get_example.ts +160 -0
- package/examples/validator_post_example.ts +81 -0
- package/examples/wallet_address.ts +18 -0
- package/examples/websocket_example.ts +44 -0
- package/examples/websocket_orderbook_example.ts +239 -0
- package/jest.config.js +12 -0
- package/jest.globalSetup.js +5 -0
- package/jest.setup.js +1 -0
- package/package.json +113 -0
- package/ritbit-v4-client-js-1.3.17.tgz +0 -0
- package/scripts/bump_version.sh +16 -0
- package/scripts/generate-cctp-protos.sh +41 -0
- package/scripts/mobile_build_pack.sh +5 -0
- package/scripts/publish-if-not-exists.sh +21 -0
- package/src/clients/composite-client.ts +1431 -0
- package/src/clients/constants.ts +358 -0
- package/src/clients/faucet-client.ts +48 -0
- package/src/clients/helpers/chain-helpers.ts +231 -0
- package/src/clients/helpers/request-helpers.ts +71 -0
- package/src/clients/indexer-client.ts +61 -0
- package/src/clients/lib/axios/axiosRequest.ts +41 -0
- package/src/clients/lib/axios/errors.ts +41 -0
- package/src/clients/lib/axios/index.ts +7 -0
- package/src/clients/lib/axios/types.ts +6 -0
- package/src/clients/lib/cctpProto.ts +4197 -0
- package/src/clients/lib/errors.ts +63 -0
- package/src/clients/lib/registry.ts +88 -0
- package/src/clients/modules/account.ts +388 -0
- package/src/clients/modules/composer.ts +645 -0
- package/src/clients/modules/get.ts +740 -0
- package/src/clients/modules/local-wallet.ts +79 -0
- package/src/clients/modules/markets.ts +71 -0
- package/src/clients/modules/post.ts +1016 -0
- package/src/clients/modules/proto-includes.ts +33 -0
- package/src/clients/modules/rest.ts +40 -0
- package/src/clients/modules/signer.ts +139 -0
- package/src/clients/modules/tendermintClient.ts +168 -0
- package/src/clients/modules/utility.ts +47 -0
- package/src/clients/modules/vault.ts +23 -0
- package/src/clients/native.ts +1508 -0
- package/src/clients/noble-client.ts +108 -0
- package/src/clients/socket-client.ts +331 -0
- package/src/clients/subaccount.ts +57 -0
- package/src/clients/types.ts +191 -0
- package/src/clients/validator-client.ts +103 -0
- package/src/index.ts +20 -0
- package/src/lib/constants.ts +28 -0
- package/src/lib/errors.ts +38 -0
- package/src/lib/helpers.ts +99 -0
- package/src/lib/onboarding.ts +96 -0
- package/src/lib/trading-key-utils.ts +136 -0
- package/src/lib/utils.ts +84 -0
- package/src/lib/validation.ts +197 -0
- package/src/network_optimizer.ts +132 -0
- package/src/types.ts +44 -0
- package/tasks.json +16 -0
- package/tsconfig.base.json +15 -0
- package/tsconfig.cjs.json +20 -0
- package/tsconfig.eslint.json +14 -0
- package/tsconfig.esm.json +11 -0
- package/webpack.config.js +56 -0
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export * as GovV1Module from 'cosmjs-types/cosmos/gov/v1/query';
|
|
2
|
+
export * as StatsModule from '@ritbit/v4-proto/src/codegen/ritbit/stats/query';
|
|
3
|
+
|
|
4
|
+
export * as ClobModule from '@ritbit/v4-proto/src/codegen/ritbit/clob/query';
|
|
5
|
+
export * as PerpetualsModule from '@ritbit/v4-proto/src/codegen/ritbit/perpetuals/query';
|
|
6
|
+
export * as PricesModule from '@ritbit/v4-proto/src/codegen/ritbit/prices/query';
|
|
7
|
+
export * as SubaccountsModule from '@ritbit/v4-proto/src/codegen/ritbit/subaccounts/query';
|
|
8
|
+
export * as FeeTierModule from '@ritbit/v4-proto/src/codegen/ritbit/feetiers/query';
|
|
9
|
+
export * as RateLimitModule from '@ritbit/v4-proto/src/codegen/ritbit/ratelimit/query';
|
|
10
|
+
export * as RewardsModule from '@ritbit/v4-proto/src/codegen/ritbit/rewards/query';
|
|
11
|
+
export * as StakingModule from 'cosmjs-types/cosmos/staking/v1beta1/query';
|
|
12
|
+
export * as BridgeModule from '@ritbit/v4-proto/src/codegen/ritbit/bridge/query';
|
|
13
|
+
export * as DistributionModule from 'cosmjs-types/cosmos/distribution/v1beta1/query';
|
|
14
|
+
export * as AffiliateModule from '@ritbit/v4-proto/src/codegen/ritbit/affiliates/query';
|
|
15
|
+
export * as VaultModule from '@ritbit/v4-proto/src/codegen/ritbit/vault/query';
|
|
16
|
+
export * as ListingModule from '@ritbit/v4-proto/src/codegen/ritbit/listing/query';
|
|
17
|
+
|
|
18
|
+
// Note: cosmos/base/abci is not available in cosmjs-types, keeping from v4-proto
|
|
19
|
+
// export * from '@ritbit/v4-proto/src/codegen/cosmos/base/abci/v1beta1/abci';
|
|
20
|
+
export { ProposalStatus } from 'cosmjs-types/cosmos/gov/v1/gov';
|
|
21
|
+
export * from 'cosmjs-types/cosmos/gov/v1/gov';
|
|
22
|
+
export * from '@ritbit/v4-proto/src/codegen/ritbit/clob/order';
|
|
23
|
+
export * from '@ritbit/v4-proto/src/codegen/ritbit/clob/tx';
|
|
24
|
+
export * from '@ritbit/v4-proto/src/codegen/ritbit/delaymsg/tx';
|
|
25
|
+
export * from '@ritbit/v4-proto/src/codegen/ritbit/perpetuals/tx';
|
|
26
|
+
export * from '@ritbit/v4-proto/src/codegen/ritbit/prices/tx';
|
|
27
|
+
export * from '@ritbit/v4-proto/src/codegen/google/protobuf/any';
|
|
28
|
+
export * from '@ritbit/v4-proto/src/codegen/ritbit/subaccounts/subaccount';
|
|
29
|
+
export * from '@ritbit/v4-proto/src/codegen/ritbit/sending/tx';
|
|
30
|
+
export * from '@ritbit/v4-proto/src/codegen/ritbit/sending/transfer';
|
|
31
|
+
export * from '@ritbit/v4-proto/src/codegen/ritbit/assets/genesis';
|
|
32
|
+
export * from '@ritbit/v4-proto/src/codegen/ritbit/assets/asset';
|
|
33
|
+
export * from '@ritbit/v4-proto/src/codegen/ritbit/listing/tx';
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import axios, { AxiosInstance, AxiosProxyConfig } from 'axios';
|
|
2
|
+
|
|
3
|
+
import { DEFAULT_API_TIMEOUT } from '../constants';
|
|
4
|
+
import { generateQueryPath } from '../helpers/request-helpers';
|
|
5
|
+
import { Response } from '../lib/axios';
|
|
6
|
+
import { Data } from '../types';
|
|
7
|
+
|
|
8
|
+
export default class RestClient {
|
|
9
|
+
readonly host: string;
|
|
10
|
+
readonly apiTimeout: Number;
|
|
11
|
+
readonly axiosInstance: AxiosInstance;
|
|
12
|
+
|
|
13
|
+
constructor(host: string, apiTimeout?: Number | null, proxy?: AxiosProxyConfig) {
|
|
14
|
+
if (host.endsWith('/')) {
|
|
15
|
+
this.host = host.slice(0, -1);
|
|
16
|
+
} else {
|
|
17
|
+
this.host = host;
|
|
18
|
+
}
|
|
19
|
+
this.apiTimeout = apiTimeout || DEFAULT_API_TIMEOUT;
|
|
20
|
+
this.axiosInstance = axios.create({
|
|
21
|
+
proxy,
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
async get(requestPath: string, params: {} = {}): Promise<Data> {
|
|
26
|
+
const url = `${this.host}${generateQueryPath(requestPath, params)}`;
|
|
27
|
+
const response = await this.axiosInstance.get(url);
|
|
28
|
+
return response.data;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
async post(
|
|
32
|
+
requestPath: string,
|
|
33
|
+
params: {} = {},
|
|
34
|
+
body?: unknown | null,
|
|
35
|
+
headers: {} = {},
|
|
36
|
+
): Promise<Response> {
|
|
37
|
+
const url = `${this.host}${generateQueryPath(requestPath, params)}`;
|
|
38
|
+
return this.axiosInstance.post(url, body, { headers });
|
|
39
|
+
}
|
|
40
|
+
}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import { Secp256k1Pubkey } from '@cosmjs/amino';
|
|
2
|
+
import { fromBase64 } from '@cosmjs/encoding';
|
|
3
|
+
import { Int53 } from '@cosmjs/math';
|
|
4
|
+
import {
|
|
5
|
+
EncodeObject,
|
|
6
|
+
encodePubkey,
|
|
7
|
+
isOfflineDirectSigner,
|
|
8
|
+
makeAuthInfoBytes,
|
|
9
|
+
makeSignDoc,
|
|
10
|
+
OfflineSigner,
|
|
11
|
+
} from '@cosmjs/proto-signing';
|
|
12
|
+
import { SigningStargateClient, StdFee } from '@cosmjs/stargate';
|
|
13
|
+
import { TxExtension } from '@ritbit/v4-proto/src/codegen/ritbit/accountplus/tx';
|
|
14
|
+
import { TxBody, TxRaw } from 'cosmjs-types/cosmos/tx/v1beta1/tx';
|
|
15
|
+
import { Any } from 'cosmjs-types/google/protobuf/any';
|
|
16
|
+
import Long from 'long';
|
|
17
|
+
import protobuf from 'protobufjs';
|
|
18
|
+
|
|
19
|
+
import { generateRegistry } from '../lib/registry';
|
|
20
|
+
import { TransactionOptions } from '../types';
|
|
21
|
+
|
|
22
|
+
// Required for encoding and decoding queries that are of type Long.
|
|
23
|
+
// Must be done once but since the individal modules should be usable
|
|
24
|
+
// - must be set in each module that encounters encoding/decoding Longs.
|
|
25
|
+
// Reference: https://github.com/protobufjs/protobuf.js/issues/921
|
|
26
|
+
protobuf.util.Long = Long;
|
|
27
|
+
protobuf.configure();
|
|
28
|
+
|
|
29
|
+
export class TransactionSigner {
|
|
30
|
+
readonly address: string;
|
|
31
|
+
readonly stargateSigningClient: SigningStargateClient;
|
|
32
|
+
readonly offlineSigner: OfflineSigner;
|
|
33
|
+
|
|
34
|
+
constructor(
|
|
35
|
+
address: string,
|
|
36
|
+
stargateSigningClient: SigningStargateClient,
|
|
37
|
+
offlineSigner: OfflineSigner,
|
|
38
|
+
) {
|
|
39
|
+
this.address = address;
|
|
40
|
+
this.stargateSigningClient = stargateSigningClient;
|
|
41
|
+
this.offlineSigner = offlineSigner;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* @description Get the encoded signed transaction or the promise is rejected if
|
|
46
|
+
* no fee can be set for the transaction.
|
|
47
|
+
*
|
|
48
|
+
* @throws UserError if the fee is undefined.
|
|
49
|
+
* @returns The signed and encoded transaction.
|
|
50
|
+
*/
|
|
51
|
+
async signTransaction(
|
|
52
|
+
messages: EncodeObject[],
|
|
53
|
+
transactionOptions: TransactionOptions,
|
|
54
|
+
fee?: StdFee,
|
|
55
|
+
memo: string = '',
|
|
56
|
+
publicKey?: Secp256k1Pubkey,
|
|
57
|
+
): Promise<Uint8Array> {
|
|
58
|
+
if (!fee) {
|
|
59
|
+
throw new Error('Fee cannot be undefined');
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
const registry = generateRegistry();
|
|
63
|
+
|
|
64
|
+
// Encode the messages
|
|
65
|
+
const encodedMessages = messages.map((msg) => registry.encodeAsAny(msg));
|
|
66
|
+
|
|
67
|
+
// Encode the TxExtension message
|
|
68
|
+
const txExtension = TxExtension.encode({
|
|
69
|
+
selectedAuthenticators: transactionOptions.authenticators ?? [],
|
|
70
|
+
}).finish();
|
|
71
|
+
|
|
72
|
+
// Create the non-critical extension message
|
|
73
|
+
const nonCriticalExtensionOptions: Any[] = [
|
|
74
|
+
Any.fromPartial({
|
|
75
|
+
typeUrl: '/ritbit.accountplus.TxExtension',
|
|
76
|
+
value: txExtension,
|
|
77
|
+
}),
|
|
78
|
+
];
|
|
79
|
+
|
|
80
|
+
// Construct the TxBody
|
|
81
|
+
const txBody: TxBody = TxBody.fromPartial({
|
|
82
|
+
messages: encodedMessages,
|
|
83
|
+
memo,
|
|
84
|
+
extensionOptions: [],
|
|
85
|
+
nonCriticalExtensionOptions,
|
|
86
|
+
});
|
|
87
|
+
|
|
88
|
+
// Encode the TxBody
|
|
89
|
+
const txBodyBytes = TxBody.encode(txBody).finish();
|
|
90
|
+
|
|
91
|
+
if (!publicKey) {
|
|
92
|
+
throw new Error('Public key cannot be undefined');
|
|
93
|
+
}
|
|
94
|
+
const pubkey = encodePubkey(publicKey); // Use the public key of the signer
|
|
95
|
+
|
|
96
|
+
const gasLimit = Int53.fromString(String(fee.gas)).toNumber();
|
|
97
|
+
const authInfoBytes = makeAuthInfoBytes(
|
|
98
|
+
[{ pubkey, sequence: transactionOptions.sequence }],
|
|
99
|
+
fee.amount,
|
|
100
|
+
gasLimit,
|
|
101
|
+
undefined,
|
|
102
|
+
undefined,
|
|
103
|
+
);
|
|
104
|
+
|
|
105
|
+
// Create the SignDoc
|
|
106
|
+
const signDoc = makeSignDoc(
|
|
107
|
+
txBodyBytes,
|
|
108
|
+
authInfoBytes,
|
|
109
|
+
transactionOptions.chainId,
|
|
110
|
+
transactionOptions.accountNumber,
|
|
111
|
+
);
|
|
112
|
+
|
|
113
|
+
// Use OfflineSigner to sign the transaction
|
|
114
|
+
const signerAddress = this.address;
|
|
115
|
+
if (isOfflineDirectSigner(this.offlineSigner)) {
|
|
116
|
+
const { signed, signature } = await this.offlineSigner.signDirect(signerAddress, signDoc);
|
|
117
|
+
|
|
118
|
+
const txRaw = TxRaw.fromPartial({
|
|
119
|
+
bodyBytes: signed.bodyBytes,
|
|
120
|
+
authInfoBytes: signed.authInfoBytes,
|
|
121
|
+
signatures: [fromBase64(signature.signature)],
|
|
122
|
+
});
|
|
123
|
+
return Uint8Array.from(TxRaw.encode(txRaw).finish());
|
|
124
|
+
} else {
|
|
125
|
+
const rawTx: TxRaw = await this.stargateSigningClient.sign(
|
|
126
|
+
this.address,
|
|
127
|
+
messages,
|
|
128
|
+
fee,
|
|
129
|
+
memo,
|
|
130
|
+
{
|
|
131
|
+
accountNumber: transactionOptions.accountNumber,
|
|
132
|
+
sequence: transactionOptions.sequence,
|
|
133
|
+
chainId: transactionOptions.chainId,
|
|
134
|
+
},
|
|
135
|
+
);
|
|
136
|
+
return Uint8Array.from(TxRaw.encode(rawTx).finish());
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
import { toHex } from '@cosmjs/encoding';
|
|
2
|
+
import { Uint53 } from '@cosmjs/math';
|
|
3
|
+
import { Block, TimeoutError, IndexedTx } from '@cosmjs/stargate';
|
|
4
|
+
import {
|
|
5
|
+
Method,
|
|
6
|
+
Tendermint37Client,
|
|
7
|
+
toRfc3339WithNanoseconds,
|
|
8
|
+
tendermint37,
|
|
9
|
+
} from '@cosmjs/tendermint-rpc';
|
|
10
|
+
import { sleep } from '@cosmjs/utils';
|
|
11
|
+
|
|
12
|
+
type Attribute = tendermint37.Attribute;
|
|
13
|
+
type BlockResponse = tendermint37.BlockResponse;
|
|
14
|
+
type BroadcastTxAsyncResponse = tendermint37.BroadcastTxAsyncResponse;
|
|
15
|
+
type BroadcastTxSyncResponse = tendermint37.BroadcastTxSyncResponse;
|
|
16
|
+
type TxResponse = tendermint37.TxResponse;
|
|
17
|
+
type Event = tendermint37.Event;
|
|
18
|
+
|
|
19
|
+
import { BroadcastErrorObject } from '../lib/errors';
|
|
20
|
+
import { BroadcastMode, BroadcastOptions } from '../types';
|
|
21
|
+
|
|
22
|
+
export class TendermintClient {
|
|
23
|
+
readonly baseClient: Tendermint37Client;
|
|
24
|
+
broadcastOptions: BroadcastOptions;
|
|
25
|
+
|
|
26
|
+
constructor(baseClient: Tendermint37Client, broadcastOptions: BroadcastOptions) {
|
|
27
|
+
this.baseClient = baseClient;
|
|
28
|
+
this.broadcastOptions = broadcastOptions;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* @description Get a specific block if height is specified. Otherwise, get the most recent block.
|
|
33
|
+
*
|
|
34
|
+
* @returns Information about the block queried.
|
|
35
|
+
*/
|
|
36
|
+
async getBlock(height?: number): Promise<Block> {
|
|
37
|
+
const response: BlockResponse = await this.baseClient.block(height);
|
|
38
|
+
return {
|
|
39
|
+
id: toHex(response.blockId.hash).toUpperCase(),
|
|
40
|
+
header: {
|
|
41
|
+
version: {
|
|
42
|
+
block: new Uint53(response.block.header.version.block).toString(),
|
|
43
|
+
app: new Uint53(response.block.header.version.app).toString(),
|
|
44
|
+
},
|
|
45
|
+
height: response.block.header.height,
|
|
46
|
+
chainId: response.block.header.chainId,
|
|
47
|
+
time: toRfc3339WithNanoseconds(response.block.header.time),
|
|
48
|
+
},
|
|
49
|
+
txs: response.block.txs,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* @description Broadcast a signed transaction with a specific mode.
|
|
55
|
+
* @throws BroadcastErrorObject when result code is not zero. TypeError when mode is invalid.
|
|
56
|
+
* @returns Differs depending on the BroadcastMode used.
|
|
57
|
+
* See https://docs.cosmos.network/master/run-node/txs.html for more information.
|
|
58
|
+
*/
|
|
59
|
+
async broadcastTransaction(
|
|
60
|
+
tx: Uint8Array,
|
|
61
|
+
mode: BroadcastMode,
|
|
62
|
+
): Promise<BroadcastTxAsyncResponse | BroadcastTxSyncResponse | IndexedTx> {
|
|
63
|
+
switch (mode) {
|
|
64
|
+
case Method.BroadcastTxAsync:
|
|
65
|
+
return this.broadcastTransactionAsync(tx);
|
|
66
|
+
case Method.BroadcastTxSync:
|
|
67
|
+
return this.broadcastTransactionSync(tx);
|
|
68
|
+
case Method.BroadcastTxCommit:
|
|
69
|
+
return this.broadcastTransactionCommit(tx);
|
|
70
|
+
default:
|
|
71
|
+
throw new TypeError('broadcastTransaction: invalid BroadcastMode');
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* @description Broadcast a signed transaction.
|
|
77
|
+
* @returns The transaction hash.
|
|
78
|
+
*/
|
|
79
|
+
broadcastTransactionAsync(tx: Uint8Array): Promise<BroadcastTxAsyncResponse> {
|
|
80
|
+
return this.baseClient.broadcastTxAsync({ tx });
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* @description Broadcast a signed transaction and await the response.
|
|
85
|
+
* @throws BroadcastErrorObject when result code is not zero.
|
|
86
|
+
* @returns The response from the node once the transaction is processed by `CheckTx`.
|
|
87
|
+
*/
|
|
88
|
+
async broadcastTransactionSync(tx: Uint8Array): Promise<BroadcastTxSyncResponse> {
|
|
89
|
+
const result: BroadcastTxSyncResponse = await this.baseClient.broadcastTxSync({ tx });
|
|
90
|
+
if (result.code !== 0) {
|
|
91
|
+
throw new BroadcastErrorObject(`Broadcasting transaction failed: ${result.log}`, result);
|
|
92
|
+
}
|
|
93
|
+
return result;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* @description Broadcast a signed transaction and await for it to be included in the blockchain.
|
|
98
|
+
* @throws BroadcastErrorObject when result code is not zero.
|
|
99
|
+
* @returns The result of the transaction once included in the blockchain.
|
|
100
|
+
*/
|
|
101
|
+
async broadcastTransactionCommit(tx: Uint8Array): Promise<IndexedTx> {
|
|
102
|
+
const result: BroadcastTxSyncResponse = await this.broadcastTransactionSync(tx);
|
|
103
|
+
return this.queryHash(result.hash);
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* @description Using tx method, query for a transaction on-chain with retries specified by
|
|
108
|
+
* the client BroadcastOptions.
|
|
109
|
+
*
|
|
110
|
+
* @throws TimeoutError if the transaction is not committed on-chain within the timeout limit.
|
|
111
|
+
* @returns An indexed transaction containing information about the transaction when committed.
|
|
112
|
+
*/
|
|
113
|
+
async queryHash(hash: Uint8Array, time: number = 0): Promise<IndexedTx> {
|
|
114
|
+
const now: number = Date.now();
|
|
115
|
+
const transactionId: string = toHex(hash).toUpperCase();
|
|
116
|
+
|
|
117
|
+
if (time >= this.broadcastOptions.broadcastTimeoutMs) {
|
|
118
|
+
throw new TimeoutError(
|
|
119
|
+
`Transaction with hash [${hash}] was submitted but was not yet found on the chain. You might want to check later. Query timed out after ${
|
|
120
|
+
this.broadcastOptions.broadcastTimeoutMs / 1000
|
|
121
|
+
} seconds.`,
|
|
122
|
+
transactionId,
|
|
123
|
+
);
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
await sleep(this.broadcastOptions.broadcastPollIntervalMs);
|
|
127
|
+
|
|
128
|
+
// If the transaction is not found, the tx method will throw an Internal Error.
|
|
129
|
+
try {
|
|
130
|
+
const tx: TxResponse = await this.baseClient.tx({ hash });
|
|
131
|
+
|
|
132
|
+
return {
|
|
133
|
+
height: tx.height,
|
|
134
|
+
hash: toHex(tx.hash).toUpperCase(),
|
|
135
|
+
code: tx.result.code,
|
|
136
|
+
rawLog: tx.result.log !== undefined ? tx.result.log : '',
|
|
137
|
+
tx: tx.tx,
|
|
138
|
+
txIndex: tx.index,
|
|
139
|
+
gasUsed: tx.result.gasUsed,
|
|
140
|
+
gasWanted: tx.result.gasWanted,
|
|
141
|
+
// Convert stargate events to tendermint events.
|
|
142
|
+
events: tx.result.events.map((event: Event) => {
|
|
143
|
+
return {
|
|
144
|
+
...event,
|
|
145
|
+
attributes: event.attributes.map((attr: Attribute) => {
|
|
146
|
+
return {
|
|
147
|
+
...attr,
|
|
148
|
+
key: Buffer.from(attr.key).toString(),
|
|
149
|
+
value: Buffer.from(attr.value).toString(),
|
|
150
|
+
};
|
|
151
|
+
}),
|
|
152
|
+
};
|
|
153
|
+
}),
|
|
154
|
+
// @ts-ignore
|
|
155
|
+
msgResponses: [],
|
|
156
|
+
};
|
|
157
|
+
} catch (error) {
|
|
158
|
+
return this.queryHash(hash, time + Date.now() - now);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
/**
|
|
163
|
+
* @description Set the broadcast options for this module.
|
|
164
|
+
*/
|
|
165
|
+
setBroadcastOptions(broadcastOptions: BroadcastOptions): void {
|
|
166
|
+
this.broadcastOptions = broadcastOptions;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
ComplianceResponse,
|
|
3
|
+
ComplianceV2Response,
|
|
4
|
+
HeightResponse,
|
|
5
|
+
TimeResponse,
|
|
6
|
+
} from '../types';
|
|
7
|
+
import RestClient from './rest';
|
|
8
|
+
|
|
9
|
+
export default class UtilityClient extends RestClient {
|
|
10
|
+
/**
|
|
11
|
+
* @description Get the current time of the Indexer
|
|
12
|
+
* @returns {TimeResponse} isoString and epoch
|
|
13
|
+
*/
|
|
14
|
+
async getTime(): Promise<TimeResponse> {
|
|
15
|
+
const uri = '/v4/time';
|
|
16
|
+
return this.get(uri);
|
|
17
|
+
}
|
|
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 getHeight(): Promise<HeightResponse> {
|
|
24
|
+
const uri = '/v4/height';
|
|
25
|
+
return this.get(uri);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* @description Screen an address to see if it is restricted
|
|
30
|
+
* @param {string} address evm or dydx address
|
|
31
|
+
* @returns {ComplianceResponse} whether the specified address is restricted
|
|
32
|
+
*/
|
|
33
|
+
async screen(address: string): Promise<ComplianceResponse> {
|
|
34
|
+
const uri = '/v4/screen';
|
|
35
|
+
return this.get(uri, { address });
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* @description Screen an address to see if it is restricted
|
|
40
|
+
* @param {string} address evm or dydx address
|
|
41
|
+
* @returns {ComplianceResponse} whether the specified address is restricted
|
|
42
|
+
*/
|
|
43
|
+
async complianceScreen(address: string): Promise<ComplianceV2Response> {
|
|
44
|
+
const uri = `/v4/compliance/screen/${address}`;
|
|
45
|
+
return this.get(uri);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { PnlTickInterval } from '../constants';
|
|
2
|
+
import { Data } from '../types';
|
|
3
|
+
import RestClient from './rest';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* @description REST endpoints for data unrelated to a particular address.
|
|
7
|
+
*/
|
|
8
|
+
export default class VaultClient extends RestClient {
|
|
9
|
+
async getMegavaultHistoricalPnl(resolution?: PnlTickInterval | null): Promise<Data> {
|
|
10
|
+
const uri = '/v4/vault/v1/megavault/historicalPnl';
|
|
11
|
+
return this.get(uri, { resolution });
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
async getVaultsHistoricalPnl(resolution?: PnlTickInterval | null): Promise<Data> {
|
|
15
|
+
const uri = '/v4/vault/v1/vaults/historicalPnl';
|
|
16
|
+
return this.get(uri, { resolution });
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
async getMegavaultPositions(): Promise<Data> {
|
|
20
|
+
const uri = '/v4/vault/v1/megavault/positions';
|
|
21
|
+
return this.get(uri);
|
|
22
|
+
}
|
|
23
|
+
}
|