@dydxprotocol/v4-client-js 2.2.0 → 2.3.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/CHANGELOG.md +4 -13
- 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 +82 -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 +171 -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 +44 -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 +53 -0
- package/build/cjs/__tests__/modules/client/constants.js +7 -0
- package/build/cjs/__tests__/modules/onboarding.test.js +50 -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 +33 -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 +87 -0
- package/build/cjs/examples/optimal_node.js +70 -0
- package/build/cjs/examples/permissioned_keys_example.js +99 -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/node_modules/@dydxprotocol/v4-proto/src/codegen/amino/amino.js +3 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/amino/bundle.js +40 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/app/runtime/v1alpha1/module.js +182 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/app/v1alpha1/config.js +179 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/app/v1alpha1/module.js +170 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/app/v1alpha1/query.js +100 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/app/v1alpha1/query.rpc.Query.js +62 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/auth/module/v1/module.js +134 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/auth/v1beta1/auth.js +263 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/auth/v1beta1/genesis.js +84 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/auth/v1beta1/query.js +742 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/auth/v1beta1/query.lcd.js +102 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/auth/v1beta1/query.rpc.Query.js +145 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/auth/v1beta1/tx.js +109 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/auth/v1beta1/tx.rpc.msg.js +51 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/authz/module/v1/module.js +64 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/authz/v1beta1/authz.js +217 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/authz/v1beta1/event.js +142 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/authz/v1beta1/genesis.js +75 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/authz/v1beta1/query.js +320 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/authz/v1beta1/query.lcd.js +60 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/authz/v1beta1/query.rpc.Query.js +80 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/authz/v1beta1/tx.js +276 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/authz/v1beta1/tx.rpc.msg.js +63 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/bank/module/v1/module.js +82 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/bank/v1beta1/authz.js +83 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/bank/v1beta1/bank.js +395 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/bank/v1beta1/genesis.js +152 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/bank/v1beta1/query.js +1035 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/bank/v1beta1/query.lcd.js +187 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/bank/v1beta1/query.rpc.Query.js +165 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/bank/v1beta1/tx.js +336 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/bank/v1beta1/tx.rpc.msg.js +69 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/base/abci/v1beta1/abci.js +700 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/base/node/v1beta1/query.js +212 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/base/node/v1beta1/query.lcd.js +22 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/base/node/v1beta1/query.rpc.Service.js +71 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/base/query/v1beta1/pagination.js +151 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/base/reflection/v1beta1/reflection.js +172 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/base/reflection/v2alpha1/reflection.js +1027 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/base/tendermint/v1beta1/query.js +973 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/base/tendermint/v1beta1/query.lcd.js +86 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/base/tendermint/v1beta1/query.rpc.Service.js +118 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/base/tendermint/v1beta1/types.js +242 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/base/v1beta1/coin.js +198 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/bundle.js +680 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/circuit/module/v1/module.js +74 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/circuit/v1/query.js +252 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/circuit/v1/query.lcd.js +37 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/circuit/v1/query.rpc.Query.js +82 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/circuit/v1/tx.js +287 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/circuit/v1/tx.rpc.msg.js +63 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/circuit/v1/types.js +235 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/consensus/module/v1/module.js +74 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/consensus/v1/query.js +100 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/consensus/v1/query.lcd.js +16 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/consensus/v1/query.rpc.Query.js +62 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/consensus/v1/tx.js +133 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/consensus/v1/tx.rpc.msg.js +51 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/crisis/module/v1/module.js +82 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/crisis/v1beta1/genesis.js +74 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/crisis/v1beta1/tx.js +187 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/crisis/v1beta1/tx.rpc.msg.js +57 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/crypto/ed25519/keys.js +110 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/crypto/hd/v1/hd.js +106 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/crypto/keyring/v1/record.js +238 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/crypto/multisig/keys.js +83 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/crypto/multisig/v1beta1/multisig.js +118 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/crypto/secp256k1/keys.js +110 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/crypto/secp256r1/keys.js +110 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/distribution/module/v1/module.js +82 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/distribution/v1beta1/distribution.js +600 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/distribution/v1beta1/genesis.js +489 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/distribution/v1beta1/query.js +803 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/distribution/v1beta1/query.lcd.js +84 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/distribution/v1beta1/query.rpc.Query.js +143 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/distribution/v1beta1/tx.js +558 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/distribution/v1beta1/tx.rpc.msg.js +87 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/evidence/module/v1/module.js +64 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/evidence/v1beta1/evidence.js +100 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/evidence/v1beta1/genesis.js +75 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/evidence/v1beta1/query.js +198 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/evidence/v1beta1/query.lcd.js +37 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/evidence/v1beta1/query.rpc.Query.js +73 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/evidence/v1beta1/tx.js +119 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/evidence/v1beta1/tx.rpc.msg.js +51 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/feegrant/module/v1/module.js +64 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/feegrant/v1beta1/feegrant.js +251 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/feegrant/v1beta1/genesis.js +75 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/feegrant/v1beta1/query.js +295 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/feegrant/v1beta1/query.lcd.js +43 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/feegrant/v1beta1/query.rpc.Query.js +80 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/feegrant/v1beta1/tx.js +249 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/feegrant/v1beta1/tx.rpc.msg.js +63 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/genutil/module/v1/module.js +64 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/genutil/v1beta1/genesis.js +74 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/gov/module/v1/module.js +83 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/gov/v1/genesis.js +140 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/gov/v1/gov.js +832 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/gov/v1/query.js +774 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/gov/v1/query.lcd.js +92 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/gov/v1/query.rpc.Query.js +134 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/gov/v1/tx.js +648 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/gov/v1/tx.rpc.msg.js +87 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/gov/v1beta1/genesis.js +124 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/gov/v1beta1/gov.js +672 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/gov/v1beta1/query.js +704 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/gov/v1beta1/query.lcd.js +86 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/gov/v1beta1/query.rpc.Query.js +125 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/gov/v1beta1/tx.js +363 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/gov/v1beta1/tx.rpc.msg.js +69 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/group/module/v1/module.js +83 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/group/v1/events.js +435 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/group/v1/genesis.js +132 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/group/v1/query.js +1181 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/group/v1/query.lcd.js +157 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/group/v1/query.rpc.Query.js +181 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/group/v1/tx.js +1290 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/group/v1/tx.rpc.msg.js +129 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/group/v1/types.js +945 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/lcd.js +148 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/mint/module/v1/module.js +82 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/mint/v1beta1/genesis.js +82 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/mint/v1beta1/mint.js +159 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/mint/v1beta1/query.js +224 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/mint/v1beta1/query.lcd.js +28 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/mint/v1beta1/query.rpc.Query.js +80 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/mint/v1beta1/tx.js +109 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/mint/v1beta1/tx.rpc.msg.js +51 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/msg/textual/v1/textual.js +3 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/msg/v1/msg.js +3 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/nft/module/v1/module.js +64 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/nft/v1beta1/event.js +202 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/nft/v1beta1/genesis.js +127 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/nft/v1beta1/nft.js +191 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/nft/v1beta1/query.js +596 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/nft/v1beta1/query.lcd.js +74 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/nft/v1beta1/query.rpc.Query.js +118 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/nft/v1beta1/tx.js +124 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/nft/v1beta1/tx.rpc.msg.js +51 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/orm/module/v1alpha1/module.js +64 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/orm/query/v1alpha1/query.js +414 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/orm/query/v1alpha1/query.rpc.Query.js +71 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/orm/v1/orm.js +222 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/orm/v1alpha1/schema.js +191 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/params/module/v1/module.js +64 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/params/v1beta1/params.js +142 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/params/v1beta1/query.js +224 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/params/v1beta1/query.lcd.js +34 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/params/v1beta1/query.rpc.Query.js +71 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/query/v1/query.js +3 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/reflection/v1/reflection.js +101 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/rpc.query.js +116 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/rpc.tx.js +94 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/slashing/module/v1/module.js +74 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/slashing/v1beta1/genesis.js +224 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/slashing/v1beta1/query.js +251 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/slashing/v1beta1/query.lcd.js +37 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/slashing/v1beta1/query.rpc.Query.js +82 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/slashing/v1beta1/slashing.js +185 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/slashing/v1beta1/tx.js +171 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/slashing/v1beta1/tx.rpc.msg.js +57 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/staking/module/v1/module.js +98 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/staking/v1beta1/authz.js +197 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/staking/v1beta1/genesis.js +176 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/staking/v1beta1/query.js +1173 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/staking/v1beta1/query.lcd.js +171 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/staking/v1beta1/query.rpc.Query.js +179 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/staking/v1beta1/staking.js +1297 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/staking/v1beta1/tx.js +665 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/staking/v1beta1/tx.rpc.msg.js +87 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/store/internal/kv/v1beta1/kv.js +118 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/store/snapshots/v1/snapshot.js +378 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/store/streaming/abci/grpc.js +188 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/store/v1beta1/commit_info.js +180 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/store/v1beta1/listening.js +150 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/tx/config/v1/config.js +82 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/tx/signing/v1beta1/signing.js +365 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/tx/v1beta1/service.js +924 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/tx/v1beta1/service.lcd.js +58 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/tx/v1beta1/service.rpc.Service.js +134 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/tx/v1beta1/tx.js +740 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/upgrade/module/v1/module.js +74 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/upgrade/v1beta1/query.js +377 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/upgrade/v1beta1/query.lcd.js +55 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/upgrade/v1beta1/query.rpc.Query.js +98 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/upgrade/v1beta1/tx.js +171 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/upgrade/v1beta1/tx.rpc.msg.js +57 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/upgrade/v1beta1/upgrade.js +249 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/vesting/module/v1/module.js +64 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/vesting/v1beta1/tx.js +299 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/vesting/v1beta1/tx.rpc.msg.js +63 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/vesting/v1beta1/vesting.js +318 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos_proto/bundle.js +40 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos_proto/cosmos.js +184 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/accountplus/accountplus.js +137 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/accountplus/genesis.js +146 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/accountplus/models.js +91 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/accountplus/params.js +74 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/accountplus/query.js +253 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/accountplus/query.lcd.js +28 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/accountplus/query.rpc.Query.js +80 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/accountplus/tx.js +323 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/accountplus/tx.rpc.msg.js +63 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/affiliates/affiliates.js +207 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/affiliates/genesis.js +74 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/affiliates/query.js +337 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/affiliates/query.lcd.js +34 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/affiliates/query.rpc.Query.js +89 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/affiliates/tx.js +249 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/affiliates/tx.rpc.msg.js +63 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/assets/asset.js +122 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/assets/genesis.js +75 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/assets/query.js +190 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/assets/query.lcd.js +31 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/assets/query.rpc.Query.js +73 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/assets/tx.js +3 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/blocktime/blocktime.js +164 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/blocktime/genesis.js +74 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/blocktime/params.js +110 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/blocktime/query.js +223 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/blocktime/query.lcd.js +22 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/blocktime/query.rpc.Query.js +80 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/blocktime/tx.js +179 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/blocktime/tx.rpc.msg.js +57 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/bridge/bridge_event.js +100 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/bridge/bridge_event_info.js +83 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/bridge/genesis.js +99 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/bridge/params.js +196 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/bridge/query.js +462 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/bridge/query.lcd.js +57 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/bridge/query.rpc.Query.js +107 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/bridge/tx.js +382 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/bridge/tx.rpc.msg.js +75 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/bundle.js +453 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/block_rate_limit_config.js +142 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/clob_pair.js +293 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/equity_tier_limit_config.js +126 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/finalize_block.js +74 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/genesis.js +102 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/liquidations.js +198 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/liquidations_config.js +230 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/matches.js +358 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/mev.js +372 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/operation.js +160 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/order.js +748 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/order_removals.js +215 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/process_proposer_matches_events.js +131 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/query.js +1065 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/query.lcd.js +55 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/query.rpc.Query.js +136 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/streaming.js +100 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/tx.js +799 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/tx.rpc.msg.js +99 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/daemons/bridge/bridge.js +101 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/daemons/liquidation/liquidation.js +126 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/daemons/pricefeed/price_feed.js +198 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/delaymsg/block_message_ids.js +84 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/delaymsg/delayed_message.js +91 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/delaymsg/genesis.js +83 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/delaymsg/query.js +254 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/delaymsg/query.lcd.js +28 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/delaymsg/query.rpc.Query.js +80 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/delaymsg/tx.js +127 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/delaymsg/tx.rpc.msg.js +51 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/epochs/epoch_info.js +122 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/epochs/genesis.js +75 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/epochs/query.js +190 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/epochs/query.lcd.js +31 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/epochs/query.rpc.Query.js +73 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/feetiers/genesis.js +74 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/feetiers/params.js +151 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/feetiers/query.js +180 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/feetiers/query.lcd.js +28 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/feetiers/query.rpc.Query.js +71 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/feetiers/tx.js +109 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/feetiers/tx.rpc.msg.js +51 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/govplus/genesis.js +64 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/govplus/query.js +3 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/govplus/query.rpc.Query.js +17 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/govplus/tx.js +132 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/govplus/tx.rpc.msg.js +51 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/indexer/events/events.js +2060 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/indexer/indexer_manager/event.js +306 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/indexer/off_chain_updates/off_chain_updates.js +448 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/indexer/protocol/v1/clob.js +487 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/indexer/protocol/v1/perpetual.js +51 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/indexer/protocol/v1/subaccount.js +195 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/indexer/protocol/v1/vault.js +62 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/indexer/redis/redis_order.js +162 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/indexer/shared/removal_reason.js +176 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/indexer/socks/messages.js +458 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/lcd.js +207 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/listing/genesis.js +83 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/listing/params.js +90 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/listing/query.js +162 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/listing/query.lcd.js +22 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/listing/query.rpc.Query.js +71 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/listing/tx.js +320 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/listing/tx.rpc.msg.js +69 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/perpetuals/genesis.js +92 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/perpetuals/params.js +90 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/perpetuals/perpetual.js +408 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/perpetuals/query.js +515 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/perpetuals/query.lcd.js +69 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/perpetuals/query.rpc.Query.js +120 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/perpetuals/tx.js +426 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/perpetuals/tx.rpc.msg.js +75 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/prices/genesis.js +84 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/prices/market_param.js +114 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/prices/market_price.js +91 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/prices/query.js +403 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/prices/query.lcd.js +57 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/prices/query.rpc.Query.js +102 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/prices/streaming.js +91 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/prices/tx.js +286 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/prices/tx.rpc.msg.js +63 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/ratelimit/capacity.js +127 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/ratelimit/genesis.js +75 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/ratelimit/limit_params.js +135 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/ratelimit/pending_send_packet.js +83 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/ratelimit/query.js +237 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/ratelimit/query.lcd.js +34 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/ratelimit/query.rpc.Query.js +80 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/ratelimit/tx.js +109 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/ratelimit/tx.rpc.msg.js +51 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/revshare/genesis.js +74 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/revshare/params.js +90 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/revshare/query.js +233 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/revshare/query.lcd.js +29 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/revshare/query.rpc.Query.js +80 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/revshare/revshare.js +154 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/revshare/tx.js +258 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/revshare/tx.rpc.msg.js +63 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/rewards/genesis.js +74 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/rewards/params.js +106 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/rewards/query.js +100 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/rewards/query.lcd.js +16 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/rewards/query.rpc.Query.js +62 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/rewards/reward_share.js +82 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/rewards/tx.js +109 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/rewards/tx.rpc.msg.js +51 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/rpc.query.js +139 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/rpc.tx.js +114 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/sending/genesis.js +64 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/sending/query.js +3 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/sending/query.rpc.Query.js +17 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/sending/transfer.js +281 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/sending/tx.js +178 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/sending/tx.rpc.msg.js +70 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/stats/genesis.js +74 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/stats/params.js +74 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/stats/query.js +294 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/stats/query.lcd.js +40 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/stats/query.rpc.Query.js +89 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/stats/stats.js +374 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/stats/tx.js +109 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/stats/tx.rpc.msg.js +51 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/subaccounts/asset_position.js +91 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/subaccounts/genesis.js +75 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/subaccounts/perpetual_position.js +98 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/subaccounts/query.js +358 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/subaccounts/query.lcd.js +44 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/subaccounts/query.rpc.Query.js +91 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/subaccounts/streaming.js +188 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/subaccounts/subaccount.js +144 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/vault/genesis.js +301 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/vault/params.js +338 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/vault/query.js +747 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/vault/query.lcd.js +69 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/vault/query.rpc.Query.js +129 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/vault/share.js +206 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/vault/tx.js +758 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/vault/tx.rpc.msg.js +93 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/vault/vault.js +180 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/vest/genesis.js +75 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/vest/query.js +110 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/vest/query.lcd.js +22 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/vest/query.rpc.Query.js +62 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/vest/tx.js +179 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/vest/tx.rpc.msg.js +57 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/vest/vest_entry.js +108 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/gogoproto/bundle.js +40 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/gogoproto/gogo.js +3 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/google/api/annotations.js +3 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/google/api/http.js +234 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/google/bundle.js +54 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/google/protobuf/any.js +82 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/google/protobuf/descriptor.js +2207 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/google/protobuf/duration.js +83 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/google/protobuf/timestamp.js +83 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/helpers.js +194 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/index.js +29 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/tendermint/abci/types.js +3070 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/tendermint/bundle.js +71 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/tendermint/crypto/keys.js +82 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/tendermint/crypto/proof.js +283 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/tendermint/libs/bits/types.js +93 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/tendermint/p2p/types.js +278 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/tendermint/types/block.js +99 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/tendermint/types/evidence.js +257 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/tendermint/types/params.js +350 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/tendermint/types/types.js +1053 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/tendermint/types/validator.js +245 -0
- package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/tendermint/version/types.js +126 -0
- package/build/cjs/package.json +1 -0
- package/build/cjs/src/clients/composite-client.js +784 -0
- package/build/cjs/src/clients/constants.js +302 -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 +51 -0
- package/build/cjs/src/clients/modules/account.js +193 -0
- package/build/cjs/src/clients/modules/composer.js +402 -0
- package/build/cjs/src/clients/modules/get.js +403 -0
- package/build/cjs/src/clients/modules/local-wallet.js +48 -0
- package/build/cjs/src/clients/modules/markets.js +54 -0
- package/build/cjs/src/clients/modules/post.js +391 -0
- package/build/cjs/src/clients/modules/proto-includes.js +69 -0
- package/build/cjs/src/clients/modules/rest.js +27 -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 +44 -0
- package/build/cjs/src/clients/modules/vault.js +25 -0
- package/build/cjs/src/clients/native.js +1279 -0
- package/build/cjs/src/clients/noble-client.js +75 -0
- package/build/cjs/src/clients/socket-client.js +297 -0
- package/build/cjs/src/clients/subaccount.js +24 -0
- package/build/cjs/src/clients/types.js +43 -0
- package/build/cjs/src/clients/validator-client.js +81 -0
- package/build/cjs/src/index.js +72 -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 +98 -0
- package/build/cjs/src/lib/onboarding.js +75 -0
- package/build/cjs/src/lib/utils.js +73 -0
- package/build/cjs/src/lib/validation.js +150 -0
- package/build/cjs/src/network_optimizer.js +96 -0
- package/build/cjs/src/types.js +25 -0
- package/build/cjs/tsconfig.cjs.tsbuildinfo +1 -0
- package/build/esm/src/clients/composite-client.d.ts +6 -2
- package/build/esm/src/clients/composite-client.d.ts.map +1 -1
- package/build/esm/src/clients/composite-client.js +19 -18
- package/build/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/src/clients/composite-client.ts +75 -107
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UserError = exports.BroadcastErrorObject = exports.UnexpectedClientError = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* An edge-case was hit in the client that should never have been reached.
|
|
6
|
+
*/
|
|
7
|
+
class UnexpectedClientError extends Error {
|
|
8
|
+
constructor() {
|
|
9
|
+
super('An unexpected error occurred on the client');
|
|
10
|
+
this.name = 'UnexpectedClientError';
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
exports.UnexpectedClientError = UnexpectedClientError;
|
|
14
|
+
/**
|
|
15
|
+
* An error occurred during the broadcasting process.
|
|
16
|
+
*/
|
|
17
|
+
class BroadcastErrorObject extends Error {
|
|
18
|
+
constructor(message, result) {
|
|
19
|
+
super(message);
|
|
20
|
+
this.name = 'BroadcastError';
|
|
21
|
+
this.result = result;
|
|
22
|
+
this.code = result.code;
|
|
23
|
+
this.codespace = result.codespace;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
exports.BroadcastErrorObject = BroadcastErrorObject;
|
|
27
|
+
/**
|
|
28
|
+
* User error occurred during a client operation.
|
|
29
|
+
*/
|
|
30
|
+
class UserError extends Error {
|
|
31
|
+
constructor(message) {
|
|
32
|
+
super(message);
|
|
33
|
+
this.name = 'UserError';
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
exports.UserError = UserError;
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9lcnJvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUE7O0dBRUc7QUFDSCxNQUFhLHFCQUFzQixTQUFRLEtBQUs7SUFDOUM7UUFDRSxLQUFLLENBQUMsNENBQTRDLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsSUFBSSxHQUFHLHVCQUF1QixDQUFDO0lBQ3RDLENBQUM7Q0FDRjtBQUxELHNEQUtDO0FBRUQ7O0dBRUc7QUFDSCxNQUFhLG9CQUFxQixTQUFRLEtBQUs7SUFLN0MsWUFBWSxPQUFlLEVBQUUsTUFBK0I7UUFDMUQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2YsSUFBSSxDQUFDLElBQUksR0FBRyxnQkFBZ0IsQ0FBQztRQUM3QixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUM7UUFDeEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDO0lBQ3BDLENBQUM7Q0FDRjtBQVpELG9EQVlDO0FBRUQ7O0dBRUc7QUFDSCxNQUFhLFNBQVUsU0FBUSxLQUFLO0lBQ2xDLFlBQVksT0FBZTtRQUN6QixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDZixJQUFJLENBQUMsSUFBSSxHQUFHLFdBQVcsQ0FBQztJQUMxQixDQUFDO0NBQ0Y7QUFMRCw4QkFLQyJ9
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.ByteArrayEncoding = void 0;
|
|
7
|
+
exports.convertPartialTransactionOptionsToFull = convertPartialTransactionOptionsToFull;
|
|
8
|
+
exports.stripHexPrefix = stripHexPrefix;
|
|
9
|
+
exports.bigIntToBytes = bigIntToBytes;
|
|
10
|
+
exports.encodeJson = encodeJson;
|
|
11
|
+
const encoding_1 = require("@cosmjs/encoding");
|
|
12
|
+
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
13
|
+
const long_1 = __importDefault(require("long"));
|
|
14
|
+
const constants_1 = require("./constants");
|
|
15
|
+
/**
|
|
16
|
+
* @description Either return undefined or insert default sequence value into
|
|
17
|
+
* `partialTransactionOptions` if it does not exist.
|
|
18
|
+
*
|
|
19
|
+
* @returns undefined or full TransactionOptions.
|
|
20
|
+
*/
|
|
21
|
+
function convertPartialTransactionOptionsToFull(partialTransactionOptions) {
|
|
22
|
+
if (partialTransactionOptions === undefined) {
|
|
23
|
+
return undefined;
|
|
24
|
+
}
|
|
25
|
+
return {
|
|
26
|
+
sequence: constants_1.DEFAULT_SEQUENCE,
|
|
27
|
+
...partialTransactionOptions,
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* @description Strip '0x' prefix from input string. If there is no '0x' prefix, return the original
|
|
32
|
+
* input.
|
|
33
|
+
*
|
|
34
|
+
* @returns input without '0x' prefix or original input if no prefix.
|
|
35
|
+
*/
|
|
36
|
+
function stripHexPrefix(input) {
|
|
37
|
+
if (input.indexOf('0x') === 0) {
|
|
38
|
+
return input.slice(2);
|
|
39
|
+
}
|
|
40
|
+
return input;
|
|
41
|
+
}
|
|
42
|
+
function toBigInt(u) {
|
|
43
|
+
if (u.length <= 1) {
|
|
44
|
+
return BigInt(0);
|
|
45
|
+
}
|
|
46
|
+
// eslint-disable-next-line no-bitwise
|
|
47
|
+
const negated = (u[0] & 1) === 1;
|
|
48
|
+
const hex = Buffer.from(u.slice(1)).toString('hex');
|
|
49
|
+
const abs = BigInt(`0x${hex}`);
|
|
50
|
+
return negated ? -abs : abs;
|
|
51
|
+
}
|
|
52
|
+
function bigIntToBytes(value) {
|
|
53
|
+
const absoluteValue = value < 0 ? value * BigInt(-1) : value;
|
|
54
|
+
const nonPaddedHexValue = absoluteValue.toString(16);
|
|
55
|
+
const paddedHexValue = nonPaddedHexValue.length % 2 === 0 ? nonPaddedHexValue : `0${nonPaddedHexValue}`;
|
|
56
|
+
const numberBytes = Buffer.from(paddedHexValue, 'hex');
|
|
57
|
+
const signedBytes = Uint8Array.of(value < 0 ? 3 : 2, ...numberBytes);
|
|
58
|
+
return signedBytes;
|
|
59
|
+
}
|
|
60
|
+
var ByteArrayEncoding;
|
|
61
|
+
(function (ByteArrayEncoding) {
|
|
62
|
+
ByteArrayEncoding["HEX"] = "hex";
|
|
63
|
+
ByteArrayEncoding["BIGINT"] = "bigint";
|
|
64
|
+
})(ByteArrayEncoding || (exports.ByteArrayEncoding = ByteArrayEncoding = {}));
|
|
65
|
+
function encodeJson(object, byteArrayEncoding = ByteArrayEncoding.HEX) {
|
|
66
|
+
// eslint-disable-next-line prefer-arrow-callback
|
|
67
|
+
return JSON.stringify(object, function replacer(_key, value) {
|
|
68
|
+
// Even though we set the an UInt8Array as the value,
|
|
69
|
+
// it comes in here as an object with UInt8Array as the buffer property.
|
|
70
|
+
if (value instanceof bignumber_js_1.default) {
|
|
71
|
+
return value.toString();
|
|
72
|
+
}
|
|
73
|
+
if (typeof value === 'bigint') {
|
|
74
|
+
return value.toString();
|
|
75
|
+
}
|
|
76
|
+
if (value instanceof long_1.default) {
|
|
77
|
+
return value.toString();
|
|
78
|
+
}
|
|
79
|
+
if ((value === null || value === void 0 ? void 0 : value.buffer) instanceof Uint8Array) {
|
|
80
|
+
if (byteArrayEncoding === ByteArrayEncoding.HEX) {
|
|
81
|
+
return (0, encoding_1.toHex)(value.buffer);
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
return toBigInt(value.buffer).toString();
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
else if (value instanceof Uint8Array) {
|
|
88
|
+
if (byteArrayEncoding === ByteArrayEncoding.HEX) {
|
|
89
|
+
return (0, encoding_1.toHex)(value);
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
return toBigInt(value).toString();
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
return value;
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFhQSx3RkFXQztBQVFELHdDQU1DO0FBYUQsc0NBUUM7QUFPRCxnQ0FnQ0M7QUFsR0QsK0NBQXlDO0FBQ3pDLGdFQUFxQztBQUNyQyxnREFBd0I7QUFHeEIsMkNBQStDO0FBRS9DOzs7OztHQUtHO0FBQ0gsU0FBZ0Isc0NBQXNDLENBQ3BELHlCQUFxRDtJQUVyRCxJQUFJLHlCQUF5QixLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQzVDLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRCxPQUFPO1FBQ0wsUUFBUSxFQUFFLDRCQUFnQjtRQUMxQixHQUFHLHlCQUF5QjtLQUM3QixDQUFDO0FBQ0osQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBZ0IsY0FBYyxDQUFDLEtBQWE7SUFDMUMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQzlCLE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRUQsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDO0FBRUQsU0FBUyxRQUFRLENBQUMsQ0FBYTtJQUM3QixJQUFJLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDbEIsT0FBTyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbkIsQ0FBQztJQUNELHNDQUFzQztJQUN0QyxNQUFNLE9BQU8sR0FBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUMsTUFBTSxHQUFHLEdBQVcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FB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
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.deriveHDKeyFromMnemonic = exports.deriveHDKeyFromEthereumSignature = exports.exportMnemonicAndPrivateKey = void 0;
|
|
4
|
+
const bip32_1 = require("@scure/bip32");
|
|
5
|
+
const bip39_1 = require("@scure/bip39");
|
|
6
|
+
const english_1 = require("@scure/bip39/wordlists/english");
|
|
7
|
+
const keccak_1 = require("ethereum-cryptography/keccak");
|
|
8
|
+
const helpers_1 = require("./helpers");
|
|
9
|
+
/**
|
|
10
|
+
* @description Get Mnemonic and priv/pub keys from privateKeyBytes and BIP44 HD path
|
|
11
|
+
*
|
|
12
|
+
* @url https://github.com/confio/cosmos-hd-key-derivation-spec#bip44
|
|
13
|
+
*
|
|
14
|
+
* @param entropy used to generate mnemonic
|
|
15
|
+
*
|
|
16
|
+
* @param path BIP44 HD Path. Default is The Cosmos Hub path
|
|
17
|
+
*
|
|
18
|
+
* @throws Error if the hdkey does not exist
|
|
19
|
+
*
|
|
20
|
+
* @returns Mnemonic and priv/pub keys
|
|
21
|
+
*/
|
|
22
|
+
const exportMnemonicAndPrivateKey = (entropy, path = "m/44'/118'/0'/0/0") => {
|
|
23
|
+
const mnemonic = (0, bip39_1.entropyToMnemonic)(entropy, english_1.wordlist);
|
|
24
|
+
const { privateKey, publicKey } = (0, exports.deriveHDKeyFromMnemonic)(mnemonic, path);
|
|
25
|
+
return {
|
|
26
|
+
mnemonic,
|
|
27
|
+
privateKey,
|
|
28
|
+
publicKey,
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
exports.exportMnemonicAndPrivateKey = exportMnemonicAndPrivateKey;
|
|
32
|
+
/**
|
|
33
|
+
* @description Get private information for onboarding using an Ethereum Signature.
|
|
34
|
+
*
|
|
35
|
+
* @returns Mnemonic and Public/Private HD keys
|
|
36
|
+
*/
|
|
37
|
+
const deriveHDKeyFromEthereumSignature = (signature) => {
|
|
38
|
+
const buffer = Buffer.from((0, helpers_1.stripHexPrefix)(signature), 'hex');
|
|
39
|
+
if (buffer.length !== 65) {
|
|
40
|
+
throw new Error('Signature must be 65 bytes');
|
|
41
|
+
}
|
|
42
|
+
// Remove the 'v' value by taking only the first 64 bytes of the signature
|
|
43
|
+
const rsValues = buffer.subarray(0, 64);
|
|
44
|
+
// Hash the 'r' and 's' values down to 32 bytes (256 bits) using Keccak-256
|
|
45
|
+
const entropy = (0, keccak_1.keccak256)(rsValues);
|
|
46
|
+
return (0, exports.exportMnemonicAndPrivateKey)(entropy);
|
|
47
|
+
};
|
|
48
|
+
exports.deriveHDKeyFromEthereumSignature = deriveHDKeyFromEthereumSignature;
|
|
49
|
+
/**
|
|
50
|
+
* @description Derive priv/pub keys from mnemonic and BIP44 HD path
|
|
51
|
+
*
|
|
52
|
+
* @url https://github.com/confio/cosmos-hd-key-derivation-spec#bip44
|
|
53
|
+
*
|
|
54
|
+
* @param mnemonic used to generate seed
|
|
55
|
+
*
|
|
56
|
+
* @param path BIP44 HD Path. Default is The Cosmos Hub path
|
|
57
|
+
*
|
|
58
|
+
* @throws Error if the hdkey does not exist
|
|
59
|
+
*
|
|
60
|
+
* @returns Priv/pub keys
|
|
61
|
+
*/
|
|
62
|
+
const deriveHDKeyFromMnemonic = (mnemonic, path = "m/44'/118'/0'/0/0") => {
|
|
63
|
+
const seed = (0, bip39_1.mnemonicToSeedSync)(mnemonic);
|
|
64
|
+
const hdkey = bip32_1.HDKey.fromMasterSeed(seed);
|
|
65
|
+
const derivedHdkey = hdkey.derive(path);
|
|
66
|
+
if (!hdkey.privateKey) {
|
|
67
|
+
throw new Error('null hd key');
|
|
68
|
+
}
|
|
69
|
+
return {
|
|
70
|
+
privateKey: derivedHdkey.privateKey,
|
|
71
|
+
publicKey: derivedHdkey.publicKey,
|
|
72
|
+
};
|
|
73
|
+
};
|
|
74
|
+
exports.deriveHDKeyFromMnemonic = deriveHDKeyFromMnemonic;
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25ib2FyZGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvb25ib2FyZGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx3Q0FBcUM7QUFDckMsd0NBQXFFO0FBQ3JFLDREQUEwRDtBQUMxRCx5REFBeUQ7QUFFekQsdUNBQTJDO0FBRTNDOzs7Ozs7Ozs7Ozs7R0FZRztBQUNJLE1BQU0sMkJBQTJCLEdBQUcsQ0FDekMsT0FBbUIsRUFDbkIsT0FBZSxtQkFBbUIsRUFLbEMsRUFBRTtJQUNGLE1BQU0sUUFBUSxHQUFHLElBQUEseUJBQWlCLEVBQUMsT0FBTyxFQUFFLGtCQUFRLENBQUMsQ0FBQztJQUN0RCxNQUFNLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxHQUFHLElBQUEsK0JBQXVCLEVBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzFFLE9BQU87UUFDTCxRQUFRO1FBQ1IsVUFBVTtRQUNWLFNBQVM7S0FDVixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBZlcsUUFBQSwyQkFBMkIsK0JBZXRDO0FBRUY7Ozs7R0FJRztBQUNJLE1BQU0sZ0NBQWdDLEdBQUcsQ0FDOUMsU0FBaUIsRUFLakIsRUFBRTtJQUNGLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBQSx3QkFBYyxFQUFDLFNBQVMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBRTdELElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxFQUFFLEVBQUUsQ0FBQztRQUN6QixNQUFNLElBQUksS0FBSyxDQUFDLDRCQUE0QixDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELDBFQUEwRTtJQUMxRSxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN4QywyRUFBMkU7SUFDM0UsTUFBTSxPQUFPLEdBQUcsSUFBQSxrQkFBUyxFQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3BDLE9BQU8sSUFBQSxtQ0FBMkIsRUFBQyxPQUFPLENBQUMsQ0FBQztBQUM5QyxDQUFDLENBQUM7QUFsQlcsUUFBQSxnQ0FBZ0Msb0NBa0IzQztBQUVGOzs7Ozs7Ozs7Ozs7R0FZRztBQUNJLE1BQU0sdUJBQXVCLEdBQUcsQ0FDckMsUUFBZ0IsRUFDaEIsT0FBZSxtQkFBbUIsRUFJbEMsRUFBRTtJQUNGLE1BQU0sSUFBSSxHQUFHLElBQUEsMEJBQWtCLEVBQUMsUUFBUSxDQUFDLENBQUM7SUFFMUMsTUFBTSxLQUFLLEdBQUcsYUFBSyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6QyxNQUFNLFlBQVksR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRXhDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDdEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsT0FBTztRQUNMLFVBQVUsRUFBRSxZQUFZLENBQUMsVUFBVTtRQUNuQyxTQUFTLEVBQUUsWUFBWSxDQUFDLFNBQVM7S0FDbEMsQ0FBQztBQUNKLENBQUMsQ0FBQztBQXBCVyxRQUFBLHVCQUF1QiwyQkFvQmxDIn0=
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.randomInt = randomInt;
|
|
4
|
+
exports.generateRandomClientId = generateRandomClientId;
|
|
5
|
+
exports.clientIdFromString = clientIdFromString;
|
|
6
|
+
exports.sleep = sleep;
|
|
7
|
+
exports.getGovAddNewMarketTitle = getGovAddNewMarketTitle;
|
|
8
|
+
exports.getGovAddNewMarketSummary = getGovAddNewMarketSummary;
|
|
9
|
+
exports.calculateClockOffsetFromFetchDateHeader = calculateClockOffsetFromFetchDateHeader;
|
|
10
|
+
const constants_1 = require("../clients/constants");
|
|
11
|
+
/**
|
|
12
|
+
* Returns a random integer value between 0 and (n-1).
|
|
13
|
+
*/
|
|
14
|
+
function randomInt(n) {
|
|
15
|
+
return Math.floor(Math.random() * n);
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Generate a random clientId.
|
|
19
|
+
*/
|
|
20
|
+
function generateRandomClientId() {
|
|
21
|
+
return randomInt(constants_1.MAX_UINT_32 + 1);
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Deterministically generate a valid clientId from an arbitrary string by performing a
|
|
25
|
+
* quick hashing function on the string.
|
|
26
|
+
*/
|
|
27
|
+
function clientIdFromString(input) {
|
|
28
|
+
let hash = 0;
|
|
29
|
+
if (input.length === 0)
|
|
30
|
+
return hash;
|
|
31
|
+
for (let i = 0; i < input.length; i++) {
|
|
32
|
+
hash = (hash << 5) - hash + input.charCodeAt(i); // eslint-disable-line no-bitwise
|
|
33
|
+
hash |= 0; // eslint-disable-line no-bitwise
|
|
34
|
+
}
|
|
35
|
+
// Bitwise operators covert the value to a 32-bit integer.
|
|
36
|
+
// We must coerce this into a 32-bit unsigned integer.
|
|
37
|
+
return hash + 2 ** 31;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Pauses the execution of the program for a specified time.
|
|
41
|
+
* @param ms - The number of milliseconds to pause the program.
|
|
42
|
+
* @returns A promise that resolves after the specified number of milliseconds.
|
|
43
|
+
*/
|
|
44
|
+
async function sleep(ms) {
|
|
45
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Returns a title to use for a gov proposal that adds a new market.
|
|
49
|
+
*
|
|
50
|
+
* @param ticker ticker symbol for the new market.
|
|
51
|
+
* @returns title for the gov proposal.
|
|
52
|
+
*/
|
|
53
|
+
function getGovAddNewMarketTitle(ticker) {
|
|
54
|
+
return `Add ${ticker} perpetual market`;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Returns a summary to use for a gov proposal that adds a new market.
|
|
58
|
+
*
|
|
59
|
+
* @param ticker ticker symbol for the new market.
|
|
60
|
+
* @param delayBlocks number of blocks to wait before activating the market.
|
|
61
|
+
* @returns summary for the gov proposal.
|
|
62
|
+
*/
|
|
63
|
+
function getGovAddNewMarketSummary(ticker, delayBlocks) {
|
|
64
|
+
return `Add the x/prices, x/perpetuals and x/clob parameters needed for a ${ticker} perpetual market. Create the market in INITIALIZING status and transition it to ACTIVE status after ${delayBlocks} blocks.`;
|
|
65
|
+
}
|
|
66
|
+
function calculateClockOffsetFromFetchDateHeader(clientRequestStartTime, serverReportedTime, clientRequestEndTime) {
|
|
67
|
+
// use midpoint, so assume that time for request reach server === time for response to reach us
|
|
68
|
+
const estimatedLocalTimeAtServerArrival = (clientRequestStartTime + clientRequestEndTime) / 2;
|
|
69
|
+
// we need an offset such that estimatedLocalTimeAtServerArrival + offset = serverReportedTime
|
|
70
|
+
const offset = serverReportedTime - estimatedLocalTimeAtServerArrival;
|
|
71
|
+
return Math.floor(offset);
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBS0EsOEJBRUM7QUFLRCx3REFFQztBQU1ELGdEQVdDO0FBT0Qsc0JBRUM7QUFRRCwwREFFQztBQVNELDhEQUVDO0FBRUQsMEZBWUM7QUEzRUQsb0RBQW1EO0FBRW5EOztHQUVHO0FBQ0gsU0FBZ0IsU0FBUyxDQUFDLENBQVM7SUFDakMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUN2QyxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixzQkFBc0I7SUFDcEMsT0FBTyxTQUFTLENBQUMsdUJBQVcsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUNwQyxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBZ0Isa0JBQWtCLENBQUMsS0FBYTtJQUM5QyxJQUFJLElBQUksR0FBVyxDQUFDLENBQUM7SUFDckIsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUM7UUFBRSxPQUFPLElBQUksQ0FBQztJQUNwQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ3RDLElBQUksR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGlDQUFpQztRQUNsRixJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsaUNBQWlDO0lBQzlDLENBQUM7SUFFRCwwREFBMEQ7SUFDMUQsc0RBQXNEO0lBQ3RELE9BQU8sSUFBSSxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7QUFDeEIsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSSxLQUFLLFVBQVUsS0FBSyxDQUFDLEVBQVU7SUFDcEMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQzNELENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQWdCLHVCQUF1QixDQUFDLE1BQWM7SUFDcEQsT0FBTyxPQUFPLE1BQU0sbUJBQW1CLENBQUM7QUFDMUMsQ0FBQztBQUVEOzs7Ozs7R0FNRztBQUNILFNBQWdCLHlCQUF5QixDQUFDLE1BQWMsRUFBRSxXQUFtQjtJQUMzRSxPQUFPLHFFQUFxRSxNQUFNLHdHQUF3RyxXQUFXLFVBQVUsQ0FBQztBQUNsTixDQUFDO0FBRUQsU0FBZ0IsdUNBQXVDLENBQ3JELHNCQUE4QixFQUM5QixrQkFBMEIsRUFDMUIsb0JBQTRCO0lBRTVCLCtGQUErRjtJQUMvRixNQUFNLGlDQUFpQyxHQUFHLENBQUMsc0JBQXNCLEdBQUcsb0JBQW9CLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFOUYsOEZBQThGO0lBQzlGLE1BQU0sTUFBTSxHQUFHLGtCQUFrQixHQUFHLGlDQUFpQyxDQUFDO0lBRXRFLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUM1QixDQUFDIn0=
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.validatePlaceOrderMessage = validatePlaceOrderMessage;
|
|
7
|
+
exports.validateCancelOrderMessage = validateCancelOrderMessage;
|
|
8
|
+
exports.validateBatchCancelOrderMessage = validateBatchCancelOrderMessage;
|
|
9
|
+
exports.validateTransferMessage = validateTransferMessage;
|
|
10
|
+
exports.verifyOrderFlags = verifyOrderFlags;
|
|
11
|
+
exports.isStatefulOrder = isStatefulOrder;
|
|
12
|
+
exports.isValidAddress = isValidAddress;
|
|
13
|
+
const bech32_1 = require("bech32");
|
|
14
|
+
const long_1 = __importDefault(require("long"));
|
|
15
|
+
const constants_1 = require("../clients/constants");
|
|
16
|
+
const types_1 = require("../clients/types");
|
|
17
|
+
const errors_1 = require("./errors");
|
|
18
|
+
/**
|
|
19
|
+
* @describe validatePlaceOrderMessage validates that an order to place has fields that would be
|
|
20
|
+
* valid on-chain.
|
|
21
|
+
*/
|
|
22
|
+
function validatePlaceOrderMessage(subaccountNumber, order) {
|
|
23
|
+
if (!verifyNumberIsUint32(order.clientId)) {
|
|
24
|
+
return new errors_1.UserError(`clientId: ${order.clientId} is not a valid uint32`);
|
|
25
|
+
}
|
|
26
|
+
if (order.quantums.lessThanOrEqual(long_1.default.ZERO)) {
|
|
27
|
+
return new errors_1.UserError(`quantums: ${order.quantums} cannot be <= 0`);
|
|
28
|
+
}
|
|
29
|
+
if (order.subticks.lessThanOrEqual(long_1.default.ZERO)) {
|
|
30
|
+
return new errors_1.UserError(`subticks: ${order.subticks} cannot be <= 0`);
|
|
31
|
+
}
|
|
32
|
+
if (!verifySubaccountNumber(subaccountNumber)) {
|
|
33
|
+
return new errors_1.UserError(`subaccountNumber: ${subaccountNumber} cannot be < 0 or > ${constants_1.MAX_SUBACCOUNT_NUMBER}`);
|
|
34
|
+
}
|
|
35
|
+
if (!isStatefulOrder(order.orderFlags) && !verifyGoodTilBlock(order.goodTilBlock)) {
|
|
36
|
+
return new errors_1.UserError(`goodTilBlock: ${order.goodTilBlock} is not a valid uint32 or is 0`);
|
|
37
|
+
}
|
|
38
|
+
if (isStatefulOrder(order.orderFlags) && !verifyGoodTilBlockTime(order.goodTilBlockTime)) {
|
|
39
|
+
return new errors_1.UserError(`goodTilBlockTime: ${order.goodTilBlockTime} is not a valid uint32 or is 0`);
|
|
40
|
+
}
|
|
41
|
+
return undefined;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* @describe validateCancelOrderMessage validates that an order to cancel has fields that would be
|
|
45
|
+
* valid on-chain.
|
|
46
|
+
*/
|
|
47
|
+
function validateCancelOrderMessage(subaccountNumber, order) {
|
|
48
|
+
if (!verifyNumberIsUint32(order.clientId)) {
|
|
49
|
+
return new errors_1.UserError(`clientId: ${order.clientId} is not a valid uint32`);
|
|
50
|
+
}
|
|
51
|
+
if (!isStatefulOrder(order.orderFlags) && !verifyGoodTilBlock(order.goodTilBlock)) {
|
|
52
|
+
return new errors_1.UserError(`goodTilBlock: ${order.goodTilBlock} is not a valid uint32 or is 0`);
|
|
53
|
+
}
|
|
54
|
+
if (!isStatefulOrder(order.orderFlags) && order.goodTilBlockTime !== undefined) {
|
|
55
|
+
return new errors_1.UserError(`goodTilBlockTime is ${order.goodTilBlockTime}, but should not be set for non-stateful orders`);
|
|
56
|
+
}
|
|
57
|
+
if (isStatefulOrder(order.orderFlags) && !verifyGoodTilBlockTime(order.goodTilBlockTime)) {
|
|
58
|
+
return new errors_1.UserError(`goodTilBlockTime: ${order.goodTilBlockTime} is not a valid uint32 or is 0`);
|
|
59
|
+
}
|
|
60
|
+
if (isStatefulOrder(order.orderFlags) && order.goodTilBlock !== undefined) {
|
|
61
|
+
return new errors_1.UserError(`goodTilBlock is ${order.goodTilBlock}, but should not be set for stateful orders`);
|
|
62
|
+
}
|
|
63
|
+
if (!verifySubaccountNumber(subaccountNumber)) {
|
|
64
|
+
return new errors_1.UserError(`subaccountNumber: ${subaccountNumber} cannot be < 0 or > ${constants_1.MAX_SUBACCOUNT_NUMBER}`);
|
|
65
|
+
}
|
|
66
|
+
return undefined;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* @describe validateBatchCancelOrderMessage validates that orders to batch cancel have fields that would be
|
|
70
|
+
* valid on-chain.
|
|
71
|
+
*/
|
|
72
|
+
function validateBatchCancelOrderMessage(subaccountNumber, orders) {
|
|
73
|
+
for (const orderBatch of orders.shortTermOrders) {
|
|
74
|
+
for (const clientId of orderBatch.clientIds) {
|
|
75
|
+
if (!verifyNumberIsUint32(clientId)) {
|
|
76
|
+
return new errors_1.UserError(`clientId: ${clientId} is not a valid uint32`);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
if (!verifyGoodTilBlock(orders.goodTilBlock)) {
|
|
81
|
+
return new errors_1.UserError(`goodTilBlock: ${orders.goodTilBlock} is not a valid uint32 or is 0`);
|
|
82
|
+
}
|
|
83
|
+
if (!verifySubaccountNumber(subaccountNumber)) {
|
|
84
|
+
return new errors_1.UserError(`subaccountNumber: ${subaccountNumber} cannot be < 0 or > ${constants_1.MAX_SUBACCOUNT_NUMBER}`);
|
|
85
|
+
}
|
|
86
|
+
return undefined;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* @describe validateTransferMessage validates that a transfer to place has fields that would be
|
|
90
|
+
* valid on-chain.
|
|
91
|
+
*/
|
|
92
|
+
function validateTransferMessage(transfer) {
|
|
93
|
+
if (!verifySubaccountNumber(transfer.sender.number || 0)) {
|
|
94
|
+
return new errors_1.UserError(`senderSubaccountNumber: ${transfer.sender.number || 0} cannot be < 0 or > ${constants_1.MAX_SUBACCOUNT_NUMBER}`);
|
|
95
|
+
}
|
|
96
|
+
if (!verifySubaccountNumber(transfer.recipient.number || 0)) {
|
|
97
|
+
return new errors_1.UserError(`recipientSubaccountNumber: ${transfer.recipient.number || 0} cannot be < 0 or > ${constants_1.MAX_SUBACCOUNT_NUMBER}`);
|
|
98
|
+
}
|
|
99
|
+
if (transfer.assetId !== 0) {
|
|
100
|
+
return new errors_1.UserError(`asset id: ${transfer.assetId} not supported`);
|
|
101
|
+
}
|
|
102
|
+
if (transfer.amount.lessThanOrEqual(long_1.default.ZERO)) {
|
|
103
|
+
return new errors_1.UserError(`amount: ${transfer.amount} cannot be <= 0`);
|
|
104
|
+
}
|
|
105
|
+
const addressError = verifyIsBech32(transfer.recipient.owner);
|
|
106
|
+
if (addressError !== undefined) {
|
|
107
|
+
return new errors_1.UserError(addressError.toString());
|
|
108
|
+
}
|
|
109
|
+
return undefined;
|
|
110
|
+
}
|
|
111
|
+
function verifyGoodTilBlock(goodTilBlock) {
|
|
112
|
+
if (goodTilBlock === undefined) {
|
|
113
|
+
return false;
|
|
114
|
+
}
|
|
115
|
+
return verifyNumberIsUint32(goodTilBlock) && goodTilBlock > 0;
|
|
116
|
+
}
|
|
117
|
+
function verifyGoodTilBlockTime(goodTilBlockTime) {
|
|
118
|
+
if (goodTilBlockTime === undefined) {
|
|
119
|
+
return false;
|
|
120
|
+
}
|
|
121
|
+
return verifyNumberIsUint32(goodTilBlockTime) && goodTilBlockTime > 0;
|
|
122
|
+
}
|
|
123
|
+
function verifySubaccountNumber(subaccountNumber) {
|
|
124
|
+
return subaccountNumber >= 0 && subaccountNumber <= constants_1.MAX_SUBACCOUNT_NUMBER;
|
|
125
|
+
}
|
|
126
|
+
function verifyNumberIsUint32(num) {
|
|
127
|
+
return num >= 0 && num <= constants_1.MAX_UINT_32;
|
|
128
|
+
}
|
|
129
|
+
function verifyOrderFlags(orderFlags) {
|
|
130
|
+
return (orderFlags === types_1.OrderFlags.SHORT_TERM ||
|
|
131
|
+
orderFlags === types_1.OrderFlags.LONG_TERM ||
|
|
132
|
+
orderFlags === types_1.OrderFlags.CONDITIONAL);
|
|
133
|
+
}
|
|
134
|
+
function isStatefulOrder(orderFlags) {
|
|
135
|
+
return orderFlags === types_1.OrderFlags.LONG_TERM || orderFlags === types_1.OrderFlags.CONDITIONAL;
|
|
136
|
+
}
|
|
137
|
+
function verifyIsBech32(address) {
|
|
138
|
+
try {
|
|
139
|
+
(0, bech32_1.decode)(address);
|
|
140
|
+
}
|
|
141
|
+
catch (error) {
|
|
142
|
+
return error;
|
|
143
|
+
}
|
|
144
|
+
return undefined;
|
|
145
|
+
}
|
|
146
|
+
function isValidAddress(address) {
|
|
147
|
+
// An address is valid if it starts with `dydx1` and is Bech32 format.
|
|
148
|
+
return address.startsWith('dydx1') && verifyIsBech32(address) === undefined;
|
|
149
|
+
}
|
|
150
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmFsaWRhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQWlCQSw4REE0QkM7QUFNRCxnRUFnQ0M7QUFNRCwwRUF1QkM7QUFNRCwwREEyQkM7QUEwQkQsNENBTUM7QUFFRCwwQ0FFQztBQVlELHdDQUdDO0FBcE1ELG1DQUFnQztBQUNoQyxnREFBd0I7QUFFeEIsb0RBQTBFO0FBQzFFLDRDQU0wQjtBQUMxQixxQ0FBcUM7QUFFckM7OztHQUdHO0FBQ0gsU0FBZ0IseUJBQXlCLENBQ3ZDLGdCQUF3QixFQUN4QixLQUFrQjtJQUVsQixJQUFJLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7UUFDMUMsT0FBTyxJQUFJLGtCQUFTLENBQUMsYUFBYSxLQUFLLENBQUMsUUFBUSx3QkFBd0IsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFDRCxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLGNBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQzlDLE9BQU8sSUFBSSxrQkFBUyxDQUFDLGFBQWEsS0FBSyxDQUFDLFFBQVEsaUJBQWlCLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBQ0QsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxjQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUM5QyxPQUFPLElBQUksa0JBQVMsQ0FBQyxhQUFhLEtBQUssQ0FBQyxRQUFRLGlCQUFpQixDQUFDLENBQUM7SUFDckUsQ0FBQztJQUNELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUM7UUFDOUMsT0FBTyxJQUFJLGtCQUFTLENBQ2xCLHFCQUFxQixnQkFBZ0IsdUJBQXVCLGlDQUFxQixFQUFFLENBQ3BGLENBQUM7SUFDSixDQUFDO0lBQ0QsSUFBSSxDQUFD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
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NetworkOptimizer = exports.isTruthy = void 0;
|
|
4
|
+
const indexer_client_1 = require("./clients/indexer-client");
|
|
5
|
+
const validator_client_1 = require("./clients/validator-client");
|
|
6
|
+
const helpers_1 = require("./lib/helpers");
|
|
7
|
+
const types_1 = require("./types");
|
|
8
|
+
class PingResponse {
|
|
9
|
+
constructor(height) {
|
|
10
|
+
this.height = height;
|
|
11
|
+
this.responseTime = new Date();
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
const isTruthy = (n) => Boolean(n);
|
|
15
|
+
exports.isTruthy = isTruthy;
|
|
16
|
+
class NetworkOptimizer {
|
|
17
|
+
async validatorClients(endpointUrls, chainId) {
|
|
18
|
+
return (await Promise.all(endpointUrls.map((endpointUrl) => validator_client_1.ValidatorClient.connect(new types_1.ValidatorConfig(endpointUrl, chainId, {
|
|
19
|
+
CHAINTOKEN_DENOM: 'placeholder',
|
|
20
|
+
CHAINTOKEN_DECIMALS: 18,
|
|
21
|
+
USDC_DENOM: 'uusdc',
|
|
22
|
+
USDC_DECIMALS: 6,
|
|
23
|
+
})).catch((_) => undefined)))).filter(exports.isTruthy);
|
|
24
|
+
}
|
|
25
|
+
indexerClients(endpointUrls) {
|
|
26
|
+
return endpointUrls
|
|
27
|
+
.map((endpointUrl) => new indexer_client_1.IndexerClient(
|
|
28
|
+
// socket is not used for finding optimal indexer, but required as a parameter to the config
|
|
29
|
+
new types_1.IndexerConfig(endpointUrl, endpointUrl.replace('https://', 'wss://').replace('http://', 'ws://'))))
|
|
30
|
+
.filter(exports.isTruthy);
|
|
31
|
+
}
|
|
32
|
+
async findOptimalNode(endpointUrls, chainId) {
|
|
33
|
+
if (endpointUrls.length === 0) {
|
|
34
|
+
const errorResponse = {
|
|
35
|
+
error: {
|
|
36
|
+
message: 'No nodes provided',
|
|
37
|
+
},
|
|
38
|
+
};
|
|
39
|
+
return (0, helpers_1.encodeJson)(errorResponse);
|
|
40
|
+
}
|
|
41
|
+
const clients = await this.validatorClients(endpointUrls, chainId);
|
|
42
|
+
const responses = (await Promise.all(clients
|
|
43
|
+
.map(async (client) => {
|
|
44
|
+
const block = await client.get.latestBlock();
|
|
45
|
+
const response = new PingResponse(block.header.height);
|
|
46
|
+
return {
|
|
47
|
+
endpoint: client.config.restEndpoint,
|
|
48
|
+
height: response.height,
|
|
49
|
+
time: response.responseTime.getTime(),
|
|
50
|
+
};
|
|
51
|
+
})
|
|
52
|
+
.map((promise) => promise.catch((_) => undefined)))).filter(exports.isTruthy);
|
|
53
|
+
if (responses.length === 0) {
|
|
54
|
+
throw new Error('Could not connect to endpoints');
|
|
55
|
+
}
|
|
56
|
+
const maxHeight = Math.max(...responses.map(({ height }) => height));
|
|
57
|
+
return (responses
|
|
58
|
+
// Only consider nodes at `maxHeight` or `maxHeight - 1`
|
|
59
|
+
.filter(({ height }) => height === maxHeight || height === maxHeight - 1)
|
|
60
|
+
// Return the endpoint with the fastest response time
|
|
61
|
+
.sort((a, b) => a.time - b.time)[0].endpoint);
|
|
62
|
+
}
|
|
63
|
+
async findOptimalIndexer(endpointUrls) {
|
|
64
|
+
if (endpointUrls.length === 0) {
|
|
65
|
+
const errorResponse = {
|
|
66
|
+
error: {
|
|
67
|
+
message: 'No URL provided',
|
|
68
|
+
},
|
|
69
|
+
};
|
|
70
|
+
return (0, helpers_1.encodeJson)(errorResponse);
|
|
71
|
+
}
|
|
72
|
+
const clients = this.indexerClients(endpointUrls);
|
|
73
|
+
const responses = (await Promise.all(clients
|
|
74
|
+
.map(async (client) => {
|
|
75
|
+
const block = await client.utility.getHeight();
|
|
76
|
+
const response = new PingResponse(+block.height);
|
|
77
|
+
return {
|
|
78
|
+
endpoint: client.config.restEndpoint,
|
|
79
|
+
height: response.height,
|
|
80
|
+
time: response.responseTime.getTime(),
|
|
81
|
+
};
|
|
82
|
+
})
|
|
83
|
+
.map((promise) => promise.catch((_) => undefined)))).filter(exports.isTruthy);
|
|
84
|
+
if (responses.length === 0) {
|
|
85
|
+
throw new Error('Could not connect to endpoints');
|
|
86
|
+
}
|
|
87
|
+
const maxHeight = Math.max(...responses.map(({ height }) => height));
|
|
88
|
+
return (responses
|
|
89
|
+
// Only consider nodes at `maxHeight` or `maxHeight - 1`
|
|
90
|
+
.filter(({ height }) => height === maxHeight || height === maxHeight - 1)
|
|
91
|
+
// Return the endpoint with the fastest response time
|
|
92
|
+
.sort((a, b) => a.time - b.time)[0].endpoint);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
exports.NetworkOptimizer = NetworkOptimizer;
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29ya19vcHRpbWl6ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbmV0d29ya19vcHRpbWl6ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkRBQXlEO0FBQ3pELGlFQUE2RDtBQUM3RCwyQ0FBMkM7QUFDM0MsbUNBQXlEO0FBRXpELE1BQU0sWUFBWTtJQUtoQixZQUFZLE1BQWM7UUFDeEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO0lBQ2pDLENBQUM7Q0FDRjtBQUVNLE1BQU0sUUFBUSxHQUFHLENBQUksQ0FBb0MsRUFBVSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQTNFLFFBQUEsUUFBUSxZQUFtRTtBQUV4RixNQUFhLGdCQUFnQjtJQUNuQixLQUFLLENBQUMsZ0JBQWdCLENBQzVCLFlBQXNCLEVBQ3RCLE9BQWU7UUFFZixPQUFPLENBQ0wsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUNmLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUMvQixrQ0FBZSxDQUFDLE9BQU8sQ0FDckIsSUFBSSx1QkFBZSxDQUFDLFdBQVcsRUFBRSxPQUFPLEVBQUU7WUFDeEMsZ0JBQWdCLEVBQUUsYUFBYTtZQUMvQixtQkFBbUIsRUFBRSxFQUFFO1lBQ3ZCLFVBQVUsRUFBRSxPQUFPO1lBQ25CLGFBQWEsRUFBRSxDQUFDO1NBQ2pCLENBQUMsQ0FDSCxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLENBQzFCLENBQ0YsQ0FDRixDQUFDLE1BQU0sQ0FBQyxnQkFBUSxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUVPLGNBQWMsQ0FBQyxZQUFzQjtRQUMzQyxPQUFPLFlBQVk7YUFDaEIsR0FBRyxDQUNGLENBQUMsV0FBVyxFQUFFLEVBQUUs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
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.ClobPairId = void 0;
|
|
18
|
+
__exportStar(require("./clients/types"), exports);
|
|
19
|
+
__exportStar(require("./clients/constants"), exports);
|
|
20
|
+
var ClobPairId;
|
|
21
|
+
(function (ClobPairId) {
|
|
22
|
+
ClobPairId[ClobPairId["PERPETUAL_PAIR_BTC_USD"] = 0] = "PERPETUAL_PAIR_BTC_USD";
|
|
23
|
+
ClobPairId[ClobPairId["PERPETUAL_PAIR_ETH_USD"] = 1] = "PERPETUAL_PAIR_ETH_USD";
|
|
24
|
+
})(ClobPairId || (exports.ClobPairId = ClobPairId = {}));
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFLQSxrREFBZ0M7QUFDaEMsc0RBQW9DO0FBa0NwQyxJQUFZLFVBR1g7QUFIRCxXQUFZLFVBQVU7SUFDcEIsK0VBQTBCLENBQUE7SUFDMUIsK0VBQTBCLENBQUE7QUFDNUIsQ0FBQyxFQUhXLFVBQVUsMEJBQVYsVUFBVSxRQUdyQiJ9
|