@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.
Files changed (499) hide show
  1. package/CHANGELOG.md +4 -13
  2. package/build/cjs/__tests__/clients/composite-client.test.js +130 -0
  3. package/build/cjs/__tests__/helpers/baseClients.js +29 -0
  4. package/build/cjs/__tests__/helpers/constants.js +82 -0
  5. package/build/cjs/__tests__/lib/helpers.test.js +45 -0
  6. package/build/cjs/__tests__/lib/util.test.js +67 -0
  7. package/build/cjs/__tests__/lib/validation.test.js +254 -0
  8. package/build/cjs/__tests__/modules/client/AccountEndpoints.test.js +171 -0
  9. package/build/cjs/__tests__/modules/client/FaucetEndpoint.test.js +15 -0
  10. package/build/cjs/__tests__/modules/client/MarketsEndpoints.test.js +69 -0
  11. package/build/cjs/__tests__/modules/client/Transfers.test.js +44 -0
  12. package/build/cjs/__tests__/modules/client/UtilityEndpoints.test.js +28 -0
  13. package/build/cjs/__tests__/modules/client/ValidatorGetEndpoints.test.js +46 -0
  14. package/build/cjs/__tests__/modules/client/ValidatorPostEndpoints.test.js +53 -0
  15. package/build/cjs/__tests__/modules/client/constants.js +7 -0
  16. package/build/cjs/__tests__/modules/onboarding.test.js +50 -0
  17. package/build/cjs/examples/account_endpoints.js +129 -0
  18. package/build/cjs/examples/batch_cancel_orders_example.js +93 -0
  19. package/build/cjs/examples/composite_example.js +50 -0
  20. package/build/cjs/examples/constants.js +33 -0
  21. package/build/cjs/examples/faucet_endpoint.js +23 -0
  22. package/build/cjs/examples/gov_add_new_market.js +77 -0
  23. package/build/cjs/examples/human_readable_orders.json +86 -0
  24. package/build/cjs/examples/human_readable_short_term_orders.json +42 -0
  25. package/build/cjs/examples/json-encoding.js +32 -0
  26. package/build/cjs/examples/long_term_order_cancel_example.js +63 -0
  27. package/build/cjs/examples/markets_endpoints.js +134 -0
  28. package/build/cjs/examples/native_examples.js +112 -0
  29. package/build/cjs/examples/noble_example.js +87 -0
  30. package/build/cjs/examples/optimal_node.js +70 -0
  31. package/build/cjs/examples/permissioned_keys_example.js +99 -0
  32. package/build/cjs/examples/raw_orders.json +130 -0
  33. package/build/cjs/examples/short_term_order_cancel_example.js +54 -0
  34. package/build/cjs/examples/short_term_order_composite_example.js +68 -0
  35. package/build/cjs/examples/test.js +50 -0
  36. package/build/cjs/examples/transfer_example_deposit.js +29 -0
  37. package/build/cjs/examples/transfer_example_send.js +42 -0
  38. package/build/cjs/examples/transfer_example_subaccount_transfer.js +29 -0
  39. package/build/cjs/examples/transfer_example_withdraw.js +30 -0
  40. package/build/cjs/examples/transfer_example_withdraw_other.js +42 -0
  41. package/build/cjs/examples/utility_endpoints.js +42 -0
  42. package/build/cjs/examples/validator_get_example.js +158 -0
  43. package/build/cjs/examples/validator_post_example.js +76 -0
  44. package/build/cjs/examples/wallet_address.js +22 -0
  45. package/build/cjs/examples/websocket_example.js +36 -0
  46. package/build/cjs/examples/websocket_orderbook_example.js +196 -0
  47. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/amino/amino.js +3 -0
  48. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/amino/bundle.js +40 -0
  49. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/app/runtime/v1alpha1/module.js +182 -0
  50. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/app/v1alpha1/config.js +179 -0
  51. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/app/v1alpha1/module.js +170 -0
  52. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/app/v1alpha1/query.js +100 -0
  53. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/app/v1alpha1/query.rpc.Query.js +62 -0
  54. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/auth/module/v1/module.js +134 -0
  55. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/auth/v1beta1/auth.js +263 -0
  56. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/auth/v1beta1/genesis.js +84 -0
  57. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/auth/v1beta1/query.js +742 -0
  58. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/auth/v1beta1/query.lcd.js +102 -0
  59. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/auth/v1beta1/query.rpc.Query.js +145 -0
  60. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/auth/v1beta1/tx.js +109 -0
  61. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/auth/v1beta1/tx.rpc.msg.js +51 -0
  62. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/authz/module/v1/module.js +64 -0
  63. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/authz/v1beta1/authz.js +217 -0
  64. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/authz/v1beta1/event.js +142 -0
  65. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/authz/v1beta1/genesis.js +75 -0
  66. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/authz/v1beta1/query.js +320 -0
  67. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/authz/v1beta1/query.lcd.js +60 -0
  68. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/authz/v1beta1/query.rpc.Query.js +80 -0
  69. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/authz/v1beta1/tx.js +276 -0
  70. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/authz/v1beta1/tx.rpc.msg.js +63 -0
  71. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/bank/module/v1/module.js +82 -0
  72. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/bank/v1beta1/authz.js +83 -0
  73. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/bank/v1beta1/bank.js +395 -0
  74. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/bank/v1beta1/genesis.js +152 -0
  75. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/bank/v1beta1/query.js +1035 -0
  76. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/bank/v1beta1/query.lcd.js +187 -0
  77. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/bank/v1beta1/query.rpc.Query.js +165 -0
  78. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/bank/v1beta1/tx.js +336 -0
  79. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/bank/v1beta1/tx.rpc.msg.js +69 -0
  80. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/base/abci/v1beta1/abci.js +700 -0
  81. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/base/node/v1beta1/query.js +212 -0
  82. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/base/node/v1beta1/query.lcd.js +22 -0
  83. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/base/node/v1beta1/query.rpc.Service.js +71 -0
  84. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/base/query/v1beta1/pagination.js +151 -0
  85. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/base/reflection/v1beta1/reflection.js +172 -0
  86. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/base/reflection/v2alpha1/reflection.js +1027 -0
  87. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/base/tendermint/v1beta1/query.js +973 -0
  88. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/base/tendermint/v1beta1/query.lcd.js +86 -0
  89. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/base/tendermint/v1beta1/query.rpc.Service.js +118 -0
  90. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/base/tendermint/v1beta1/types.js +242 -0
  91. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/base/v1beta1/coin.js +198 -0
  92. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/bundle.js +680 -0
  93. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/circuit/module/v1/module.js +74 -0
  94. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/circuit/v1/query.js +252 -0
  95. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/circuit/v1/query.lcd.js +37 -0
  96. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/circuit/v1/query.rpc.Query.js +82 -0
  97. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/circuit/v1/tx.js +287 -0
  98. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/circuit/v1/tx.rpc.msg.js +63 -0
  99. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/circuit/v1/types.js +235 -0
  100. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/consensus/module/v1/module.js +74 -0
  101. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/consensus/v1/query.js +100 -0
  102. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/consensus/v1/query.lcd.js +16 -0
  103. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/consensus/v1/query.rpc.Query.js +62 -0
  104. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/consensus/v1/tx.js +133 -0
  105. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/consensus/v1/tx.rpc.msg.js +51 -0
  106. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/crisis/module/v1/module.js +82 -0
  107. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/crisis/v1beta1/genesis.js +74 -0
  108. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/crisis/v1beta1/tx.js +187 -0
  109. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/crisis/v1beta1/tx.rpc.msg.js +57 -0
  110. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/crypto/ed25519/keys.js +110 -0
  111. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/crypto/hd/v1/hd.js +106 -0
  112. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/crypto/keyring/v1/record.js +238 -0
  113. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/crypto/multisig/keys.js +83 -0
  114. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/crypto/multisig/v1beta1/multisig.js +118 -0
  115. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/crypto/secp256k1/keys.js +110 -0
  116. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/crypto/secp256r1/keys.js +110 -0
  117. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/distribution/module/v1/module.js +82 -0
  118. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/distribution/v1beta1/distribution.js +600 -0
  119. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/distribution/v1beta1/genesis.js +489 -0
  120. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/distribution/v1beta1/query.js +803 -0
  121. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/distribution/v1beta1/query.lcd.js +84 -0
  122. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/distribution/v1beta1/query.rpc.Query.js +143 -0
  123. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/distribution/v1beta1/tx.js +558 -0
  124. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/distribution/v1beta1/tx.rpc.msg.js +87 -0
  125. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/evidence/module/v1/module.js +64 -0
  126. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/evidence/v1beta1/evidence.js +100 -0
  127. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/evidence/v1beta1/genesis.js +75 -0
  128. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/evidence/v1beta1/query.js +198 -0
  129. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/evidence/v1beta1/query.lcd.js +37 -0
  130. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/evidence/v1beta1/query.rpc.Query.js +73 -0
  131. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/evidence/v1beta1/tx.js +119 -0
  132. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/evidence/v1beta1/tx.rpc.msg.js +51 -0
  133. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/feegrant/module/v1/module.js +64 -0
  134. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/feegrant/v1beta1/feegrant.js +251 -0
  135. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/feegrant/v1beta1/genesis.js +75 -0
  136. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/feegrant/v1beta1/query.js +295 -0
  137. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/feegrant/v1beta1/query.lcd.js +43 -0
  138. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/feegrant/v1beta1/query.rpc.Query.js +80 -0
  139. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/feegrant/v1beta1/tx.js +249 -0
  140. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/feegrant/v1beta1/tx.rpc.msg.js +63 -0
  141. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/genutil/module/v1/module.js +64 -0
  142. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/genutil/v1beta1/genesis.js +74 -0
  143. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/gov/module/v1/module.js +83 -0
  144. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/gov/v1/genesis.js +140 -0
  145. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/gov/v1/gov.js +832 -0
  146. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/gov/v1/query.js +774 -0
  147. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/gov/v1/query.lcd.js +92 -0
  148. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/gov/v1/query.rpc.Query.js +134 -0
  149. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/gov/v1/tx.js +648 -0
  150. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/gov/v1/tx.rpc.msg.js +87 -0
  151. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/gov/v1beta1/genesis.js +124 -0
  152. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/gov/v1beta1/gov.js +672 -0
  153. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/gov/v1beta1/query.js +704 -0
  154. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/gov/v1beta1/query.lcd.js +86 -0
  155. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/gov/v1beta1/query.rpc.Query.js +125 -0
  156. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/gov/v1beta1/tx.js +363 -0
  157. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/gov/v1beta1/tx.rpc.msg.js +69 -0
  158. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/group/module/v1/module.js +83 -0
  159. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/group/v1/events.js +435 -0
  160. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/group/v1/genesis.js +132 -0
  161. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/group/v1/query.js +1181 -0
  162. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/group/v1/query.lcd.js +157 -0
  163. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/group/v1/query.rpc.Query.js +181 -0
  164. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/group/v1/tx.js +1290 -0
  165. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/group/v1/tx.rpc.msg.js +129 -0
  166. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/group/v1/types.js +945 -0
  167. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/lcd.js +148 -0
  168. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/mint/module/v1/module.js +82 -0
  169. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/mint/v1beta1/genesis.js +82 -0
  170. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/mint/v1beta1/mint.js +159 -0
  171. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/mint/v1beta1/query.js +224 -0
  172. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/mint/v1beta1/query.lcd.js +28 -0
  173. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/mint/v1beta1/query.rpc.Query.js +80 -0
  174. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/mint/v1beta1/tx.js +109 -0
  175. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/mint/v1beta1/tx.rpc.msg.js +51 -0
  176. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/msg/textual/v1/textual.js +3 -0
  177. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/msg/v1/msg.js +3 -0
  178. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/nft/module/v1/module.js +64 -0
  179. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/nft/v1beta1/event.js +202 -0
  180. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/nft/v1beta1/genesis.js +127 -0
  181. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/nft/v1beta1/nft.js +191 -0
  182. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/nft/v1beta1/query.js +596 -0
  183. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/nft/v1beta1/query.lcd.js +74 -0
  184. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/nft/v1beta1/query.rpc.Query.js +118 -0
  185. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/nft/v1beta1/tx.js +124 -0
  186. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/nft/v1beta1/tx.rpc.msg.js +51 -0
  187. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/orm/module/v1alpha1/module.js +64 -0
  188. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/orm/query/v1alpha1/query.js +414 -0
  189. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/orm/query/v1alpha1/query.rpc.Query.js +71 -0
  190. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/orm/v1/orm.js +222 -0
  191. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/orm/v1alpha1/schema.js +191 -0
  192. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/params/module/v1/module.js +64 -0
  193. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/params/v1beta1/params.js +142 -0
  194. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/params/v1beta1/query.js +224 -0
  195. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/params/v1beta1/query.lcd.js +34 -0
  196. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/params/v1beta1/query.rpc.Query.js +71 -0
  197. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/query/v1/query.js +3 -0
  198. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/reflection/v1/reflection.js +101 -0
  199. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/rpc.query.js +116 -0
  200. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/rpc.tx.js +94 -0
  201. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/slashing/module/v1/module.js +74 -0
  202. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/slashing/v1beta1/genesis.js +224 -0
  203. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/slashing/v1beta1/query.js +251 -0
  204. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/slashing/v1beta1/query.lcd.js +37 -0
  205. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/slashing/v1beta1/query.rpc.Query.js +82 -0
  206. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/slashing/v1beta1/slashing.js +185 -0
  207. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/slashing/v1beta1/tx.js +171 -0
  208. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/slashing/v1beta1/tx.rpc.msg.js +57 -0
  209. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/staking/module/v1/module.js +98 -0
  210. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/staking/v1beta1/authz.js +197 -0
  211. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/staking/v1beta1/genesis.js +176 -0
  212. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/staking/v1beta1/query.js +1173 -0
  213. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/staking/v1beta1/query.lcd.js +171 -0
  214. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/staking/v1beta1/query.rpc.Query.js +179 -0
  215. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/staking/v1beta1/staking.js +1297 -0
  216. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/staking/v1beta1/tx.js +665 -0
  217. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/staking/v1beta1/tx.rpc.msg.js +87 -0
  218. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/store/internal/kv/v1beta1/kv.js +118 -0
  219. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/store/snapshots/v1/snapshot.js +378 -0
  220. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/store/streaming/abci/grpc.js +188 -0
  221. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/store/v1beta1/commit_info.js +180 -0
  222. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/store/v1beta1/listening.js +150 -0
  223. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/tx/config/v1/config.js +82 -0
  224. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/tx/signing/v1beta1/signing.js +365 -0
  225. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/tx/v1beta1/service.js +924 -0
  226. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/tx/v1beta1/service.lcd.js +58 -0
  227. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/tx/v1beta1/service.rpc.Service.js +134 -0
  228. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/tx/v1beta1/tx.js +740 -0
  229. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/upgrade/module/v1/module.js +74 -0
  230. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/upgrade/v1beta1/query.js +377 -0
  231. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/upgrade/v1beta1/query.lcd.js +55 -0
  232. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/upgrade/v1beta1/query.rpc.Query.js +98 -0
  233. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/upgrade/v1beta1/tx.js +171 -0
  234. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/upgrade/v1beta1/tx.rpc.msg.js +57 -0
  235. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/upgrade/v1beta1/upgrade.js +249 -0
  236. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/vesting/module/v1/module.js +64 -0
  237. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/vesting/v1beta1/tx.js +299 -0
  238. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/vesting/v1beta1/tx.rpc.msg.js +63 -0
  239. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/vesting/v1beta1/vesting.js +318 -0
  240. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos_proto/bundle.js +40 -0
  241. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos_proto/cosmos.js +184 -0
  242. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/accountplus/accountplus.js +137 -0
  243. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/accountplus/genesis.js +146 -0
  244. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/accountplus/models.js +91 -0
  245. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/accountplus/params.js +74 -0
  246. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/accountplus/query.js +253 -0
  247. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/accountplus/query.lcd.js +28 -0
  248. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/accountplus/query.rpc.Query.js +80 -0
  249. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/accountplus/tx.js +323 -0
  250. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/accountplus/tx.rpc.msg.js +63 -0
  251. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/affiliates/affiliates.js +207 -0
  252. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/affiliates/genesis.js +74 -0
  253. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/affiliates/query.js +337 -0
  254. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/affiliates/query.lcd.js +34 -0
  255. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/affiliates/query.rpc.Query.js +89 -0
  256. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/affiliates/tx.js +249 -0
  257. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/affiliates/tx.rpc.msg.js +63 -0
  258. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/assets/asset.js +122 -0
  259. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/assets/genesis.js +75 -0
  260. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/assets/query.js +190 -0
  261. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/assets/query.lcd.js +31 -0
  262. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/assets/query.rpc.Query.js +73 -0
  263. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/assets/tx.js +3 -0
  264. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/blocktime/blocktime.js +164 -0
  265. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/blocktime/genesis.js +74 -0
  266. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/blocktime/params.js +110 -0
  267. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/blocktime/query.js +223 -0
  268. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/blocktime/query.lcd.js +22 -0
  269. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/blocktime/query.rpc.Query.js +80 -0
  270. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/blocktime/tx.js +179 -0
  271. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/blocktime/tx.rpc.msg.js +57 -0
  272. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/bridge/bridge_event.js +100 -0
  273. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/bridge/bridge_event_info.js +83 -0
  274. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/bridge/genesis.js +99 -0
  275. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/bridge/params.js +196 -0
  276. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/bridge/query.js +462 -0
  277. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/bridge/query.lcd.js +57 -0
  278. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/bridge/query.rpc.Query.js +107 -0
  279. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/bridge/tx.js +382 -0
  280. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/bridge/tx.rpc.msg.js +75 -0
  281. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/bundle.js +453 -0
  282. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/block_rate_limit_config.js +142 -0
  283. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/clob_pair.js +293 -0
  284. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/equity_tier_limit_config.js +126 -0
  285. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/finalize_block.js +74 -0
  286. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/genesis.js +102 -0
  287. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/liquidations.js +198 -0
  288. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/liquidations_config.js +230 -0
  289. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/matches.js +358 -0
  290. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/mev.js +372 -0
  291. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/operation.js +160 -0
  292. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/order.js +748 -0
  293. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/order_removals.js +215 -0
  294. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/process_proposer_matches_events.js +131 -0
  295. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/query.js +1065 -0
  296. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/query.lcd.js +55 -0
  297. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/query.rpc.Query.js +136 -0
  298. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/streaming.js +100 -0
  299. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/tx.js +799 -0
  300. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/tx.rpc.msg.js +99 -0
  301. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/daemons/bridge/bridge.js +101 -0
  302. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/daemons/liquidation/liquidation.js +126 -0
  303. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/daemons/pricefeed/price_feed.js +198 -0
  304. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/delaymsg/block_message_ids.js +84 -0
  305. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/delaymsg/delayed_message.js +91 -0
  306. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/delaymsg/genesis.js +83 -0
  307. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/delaymsg/query.js +254 -0
  308. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/delaymsg/query.lcd.js +28 -0
  309. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/delaymsg/query.rpc.Query.js +80 -0
  310. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/delaymsg/tx.js +127 -0
  311. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/delaymsg/tx.rpc.msg.js +51 -0
  312. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/epochs/epoch_info.js +122 -0
  313. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/epochs/genesis.js +75 -0
  314. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/epochs/query.js +190 -0
  315. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/epochs/query.lcd.js +31 -0
  316. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/epochs/query.rpc.Query.js +73 -0
  317. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/feetiers/genesis.js +74 -0
  318. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/feetiers/params.js +151 -0
  319. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/feetiers/query.js +180 -0
  320. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/feetiers/query.lcd.js +28 -0
  321. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/feetiers/query.rpc.Query.js +71 -0
  322. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/feetiers/tx.js +109 -0
  323. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/feetiers/tx.rpc.msg.js +51 -0
  324. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/govplus/genesis.js +64 -0
  325. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/govplus/query.js +3 -0
  326. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/govplus/query.rpc.Query.js +17 -0
  327. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/govplus/tx.js +132 -0
  328. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/govplus/tx.rpc.msg.js +51 -0
  329. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/indexer/events/events.js +2060 -0
  330. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/indexer/indexer_manager/event.js +306 -0
  331. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/indexer/off_chain_updates/off_chain_updates.js +448 -0
  332. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/indexer/protocol/v1/clob.js +487 -0
  333. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/indexer/protocol/v1/perpetual.js +51 -0
  334. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/indexer/protocol/v1/subaccount.js +195 -0
  335. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/indexer/protocol/v1/vault.js +62 -0
  336. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/indexer/redis/redis_order.js +162 -0
  337. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/indexer/shared/removal_reason.js +176 -0
  338. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/indexer/socks/messages.js +458 -0
  339. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/lcd.js +207 -0
  340. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/listing/genesis.js +83 -0
  341. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/listing/params.js +90 -0
  342. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/listing/query.js +162 -0
  343. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/listing/query.lcd.js +22 -0
  344. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/listing/query.rpc.Query.js +71 -0
  345. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/listing/tx.js +320 -0
  346. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/listing/tx.rpc.msg.js +69 -0
  347. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/perpetuals/genesis.js +92 -0
  348. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/perpetuals/params.js +90 -0
  349. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/perpetuals/perpetual.js +408 -0
  350. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/perpetuals/query.js +515 -0
  351. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/perpetuals/query.lcd.js +69 -0
  352. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/perpetuals/query.rpc.Query.js +120 -0
  353. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/perpetuals/tx.js +426 -0
  354. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/perpetuals/tx.rpc.msg.js +75 -0
  355. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/prices/genesis.js +84 -0
  356. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/prices/market_param.js +114 -0
  357. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/prices/market_price.js +91 -0
  358. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/prices/query.js +403 -0
  359. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/prices/query.lcd.js +57 -0
  360. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/prices/query.rpc.Query.js +102 -0
  361. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/prices/streaming.js +91 -0
  362. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/prices/tx.js +286 -0
  363. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/prices/tx.rpc.msg.js +63 -0
  364. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/ratelimit/capacity.js +127 -0
  365. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/ratelimit/genesis.js +75 -0
  366. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/ratelimit/limit_params.js +135 -0
  367. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/ratelimit/pending_send_packet.js +83 -0
  368. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/ratelimit/query.js +237 -0
  369. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/ratelimit/query.lcd.js +34 -0
  370. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/ratelimit/query.rpc.Query.js +80 -0
  371. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/ratelimit/tx.js +109 -0
  372. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/ratelimit/tx.rpc.msg.js +51 -0
  373. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/revshare/genesis.js +74 -0
  374. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/revshare/params.js +90 -0
  375. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/revshare/query.js +233 -0
  376. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/revshare/query.lcd.js +29 -0
  377. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/revshare/query.rpc.Query.js +80 -0
  378. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/revshare/revshare.js +154 -0
  379. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/revshare/tx.js +258 -0
  380. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/revshare/tx.rpc.msg.js +63 -0
  381. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/rewards/genesis.js +74 -0
  382. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/rewards/params.js +106 -0
  383. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/rewards/query.js +100 -0
  384. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/rewards/query.lcd.js +16 -0
  385. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/rewards/query.rpc.Query.js +62 -0
  386. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/rewards/reward_share.js +82 -0
  387. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/rewards/tx.js +109 -0
  388. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/rewards/tx.rpc.msg.js +51 -0
  389. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/rpc.query.js +139 -0
  390. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/rpc.tx.js +114 -0
  391. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/sending/genesis.js +64 -0
  392. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/sending/query.js +3 -0
  393. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/sending/query.rpc.Query.js +17 -0
  394. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/sending/transfer.js +281 -0
  395. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/sending/tx.js +178 -0
  396. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/sending/tx.rpc.msg.js +70 -0
  397. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/stats/genesis.js +74 -0
  398. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/stats/params.js +74 -0
  399. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/stats/query.js +294 -0
  400. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/stats/query.lcd.js +40 -0
  401. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/stats/query.rpc.Query.js +89 -0
  402. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/stats/stats.js +374 -0
  403. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/stats/tx.js +109 -0
  404. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/stats/tx.rpc.msg.js +51 -0
  405. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/subaccounts/asset_position.js +91 -0
  406. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/subaccounts/genesis.js +75 -0
  407. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/subaccounts/perpetual_position.js +98 -0
  408. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/subaccounts/query.js +358 -0
  409. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/subaccounts/query.lcd.js +44 -0
  410. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/subaccounts/query.rpc.Query.js +91 -0
  411. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/subaccounts/streaming.js +188 -0
  412. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/subaccounts/subaccount.js +144 -0
  413. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/vault/genesis.js +301 -0
  414. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/vault/params.js +338 -0
  415. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/vault/query.js +747 -0
  416. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/vault/query.lcd.js +69 -0
  417. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/vault/query.rpc.Query.js +129 -0
  418. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/vault/share.js +206 -0
  419. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/vault/tx.js +758 -0
  420. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/vault/tx.rpc.msg.js +93 -0
  421. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/vault/vault.js +180 -0
  422. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/vest/genesis.js +75 -0
  423. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/vest/query.js +110 -0
  424. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/vest/query.lcd.js +22 -0
  425. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/vest/query.rpc.Query.js +62 -0
  426. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/vest/tx.js +179 -0
  427. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/vest/tx.rpc.msg.js +57 -0
  428. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/vest/vest_entry.js +108 -0
  429. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/gogoproto/bundle.js +40 -0
  430. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/gogoproto/gogo.js +3 -0
  431. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/google/api/annotations.js +3 -0
  432. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/google/api/http.js +234 -0
  433. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/google/bundle.js +54 -0
  434. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/google/protobuf/any.js +82 -0
  435. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/google/protobuf/descriptor.js +2207 -0
  436. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/google/protobuf/duration.js +83 -0
  437. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/google/protobuf/timestamp.js +83 -0
  438. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/helpers.js +194 -0
  439. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/index.js +29 -0
  440. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/tendermint/abci/types.js +3070 -0
  441. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/tendermint/bundle.js +71 -0
  442. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/tendermint/crypto/keys.js +82 -0
  443. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/tendermint/crypto/proof.js +283 -0
  444. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/tendermint/libs/bits/types.js +93 -0
  445. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/tendermint/p2p/types.js +278 -0
  446. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/tendermint/types/block.js +99 -0
  447. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/tendermint/types/evidence.js +257 -0
  448. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/tendermint/types/params.js +350 -0
  449. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/tendermint/types/types.js +1053 -0
  450. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/tendermint/types/validator.js +245 -0
  451. package/build/cjs/node_modules/@dydxprotocol/v4-proto/src/codegen/tendermint/version/types.js +126 -0
  452. package/build/cjs/package.json +1 -0
  453. package/build/cjs/src/clients/composite-client.js +784 -0
  454. package/build/cjs/src/clients/constants.js +302 -0
  455. package/build/cjs/src/clients/faucet-client.js +36 -0
  456. package/build/cjs/src/clients/helpers/chain-helpers.js +178 -0
  457. package/build/cjs/src/clients/helpers/request-helpers.js +65 -0
  458. package/build/cjs/src/clients/indexer-client.js +56 -0
  459. package/build/cjs/src/clients/lib/axios/axiosRequest.js +34 -0
  460. package/build/cjs/src/clients/lib/axios/errors.js +28 -0
  461. package/build/cjs/src/clients/lib/axios/index.js +23 -0
  462. package/build/cjs/src/clients/lib/axios/types.js +11 -0
  463. package/build/cjs/src/clients/lib/cctpProto.js +3242 -0
  464. package/build/cjs/src/clients/lib/errors.js +58 -0
  465. package/build/cjs/src/clients/lib/registry.js +51 -0
  466. package/build/cjs/src/clients/modules/account.js +193 -0
  467. package/build/cjs/src/clients/modules/composer.js +402 -0
  468. package/build/cjs/src/clients/modules/get.js +403 -0
  469. package/build/cjs/src/clients/modules/local-wallet.js +48 -0
  470. package/build/cjs/src/clients/modules/markets.js +54 -0
  471. package/build/cjs/src/clients/modules/post.js +391 -0
  472. package/build/cjs/src/clients/modules/proto-includes.js +69 -0
  473. package/build/cjs/src/clients/modules/rest.js +27 -0
  474. package/build/cjs/src/clients/modules/signer.js +93 -0
  475. package/build/cjs/src/clients/modules/tendermintClient.js +137 -0
  476. package/build/cjs/src/clients/modules/utility.js +44 -0
  477. package/build/cjs/src/clients/modules/vault.js +25 -0
  478. package/build/cjs/src/clients/native.js +1279 -0
  479. package/build/cjs/src/clients/noble-client.js +75 -0
  480. package/build/cjs/src/clients/socket-client.js +297 -0
  481. package/build/cjs/src/clients/subaccount.js +24 -0
  482. package/build/cjs/src/clients/types.js +43 -0
  483. package/build/cjs/src/clients/validator-client.js +81 -0
  484. package/build/cjs/src/index.js +72 -0
  485. package/build/cjs/src/lib/constants.js +23 -0
  486. package/build/cjs/src/lib/errors.js +37 -0
  487. package/build/cjs/src/lib/helpers.js +98 -0
  488. package/build/cjs/src/lib/onboarding.js +75 -0
  489. package/build/cjs/src/lib/utils.js +73 -0
  490. package/build/cjs/src/lib/validation.js +150 -0
  491. package/build/cjs/src/network_optimizer.js +96 -0
  492. package/build/cjs/src/types.js +25 -0
  493. package/build/cjs/tsconfig.cjs.tsbuildinfo +1 -0
  494. package/build/esm/src/clients/composite-client.d.ts +6 -2
  495. package/build/esm/src/clients/composite-client.d.ts.map +1 -1
  496. package/build/esm/src/clients/composite-client.js +19 -18
  497. package/build/esm/tsconfig.esm.tsbuildinfo +1 -1
  498. package/package.json +2 -2
  499. package/src/clients/composite-client.ts +75 -107
@@ -0,0 +1,1279 @@
1
+ "use strict";
2
+ /* eslint-disable @typescript-eslint/no-explicit-any */
3
+ /*
4
+ Native app can call JS functions with primitives.
5
+ */
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
19
+ }) : function(o, v) {
20
+ o["default"] = v;
21
+ });
22
+ var __importStar = (this && this.__importStar) || (function () {
23
+ var ownKeys = function(o) {
24
+ ownKeys = Object.getOwnPropertyNames || function (o) {
25
+ var ar = [];
26
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
27
+ return ar;
28
+ };
29
+ return ownKeys(o);
30
+ };
31
+ return function (mod) {
32
+ if (mod && mod.__esModule) return mod;
33
+ var result = {};
34
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
35
+ __setModuleDefault(result, mod);
36
+ return result;
37
+ };
38
+ })();
39
+ var __importDefault = (this && this.__importDefault) || function (mod) {
40
+ return (mod && mod.__esModule) ? mod : { "default": mod };
41
+ };
42
+ Object.defineProperty(exports, "__esModule", { value: true });
43
+ exports.connectClient = connectClient;
44
+ exports.connectNetwork = connectNetwork;
45
+ exports.connectWallet = connectWallet;
46
+ exports.connect = connect;
47
+ exports.deriveMnemomicFromEthereumSignature = deriveMnemomicFromEthereumSignature;
48
+ exports.getHeight = getHeight;
49
+ exports.getFeeTiers = getFeeTiers;
50
+ exports.getUserFeeTier = getUserFeeTier;
51
+ exports.getEquityTiers = getEquityTiers;
52
+ exports.getPerpetualMarkets = getPerpetualMarkets;
53
+ exports.isWalletConnected = isWalletConnected;
54
+ exports.placeOrder = placeOrder;
55
+ exports.wrappedError = wrappedError;
56
+ exports.cancelOrder = cancelOrder;
57
+ exports.deposit = deposit;
58
+ exports.withdraw = withdraw;
59
+ exports.faucet = faucet;
60
+ exports.withdrawToIBC = withdrawToIBC;
61
+ exports.transferNativeToken = transferNativeToken;
62
+ exports.getAccountBalance = getAccountBalance;
63
+ exports.getAccountBalances = getAccountBalances;
64
+ exports.getUserStats = getUserStats;
65
+ exports.simulateDeposit = simulateDeposit;
66
+ exports.simulateWithdraw = simulateWithdraw;
67
+ exports.simulateTransferNativeToken = simulateTransferNativeToken;
68
+ exports.signRawPlaceOrder = signRawPlaceOrder;
69
+ exports.signPlaceOrder = signPlaceOrder;
70
+ exports.signCancelOrder = signCancelOrder;
71
+ exports.encodeAccountRequestData = encodeAccountRequestData;
72
+ exports.decodeAccountResponseValue = decodeAccountResponseValue;
73
+ exports.getOptimalNode = getOptimalNode;
74
+ exports.getOptimalIndexer = getOptimalIndexer;
75
+ exports.getRewardsParams = getRewardsParams;
76
+ exports.getDelegatorDelegations = getDelegatorDelegations;
77
+ exports.getStakingRewards = getStakingRewards;
78
+ exports.getCurrentUnstaking = getCurrentUnstaking;
79
+ exports.getMarketPrice = getMarketPrice;
80
+ exports.getNobleBalance = getNobleBalance;
81
+ exports.sendNobleIBC = sendNobleIBC;
82
+ exports.withdrawToNobleIBC = withdrawToNobleIBC;
83
+ exports.cctpWithdraw = cctpWithdraw;
84
+ exports.cctpMultiMsgWithdraw = cctpMultiMsgWithdraw;
85
+ exports.getWithdrawalCapacityByDenom = getWithdrawalCapacityByDenom;
86
+ exports.getWithdrawalAndTransferGatingStatus = getWithdrawalAndTransferGatingStatus;
87
+ exports.subaccountTransfer = subaccountTransfer;
88
+ exports.signCompliancePayload = signCompliancePayload;
89
+ exports.signPushNotificationTokenRegistrationPayload = signPushNotificationTokenRegistrationPayload;
90
+ exports.setSelectedGasDenom = setSelectedGasDenom;
91
+ exports.getMegavaultOwnerShares = getMegavaultOwnerShares;
92
+ exports.getMegavaultWithdrawalInfo = getMegavaultWithdrawalInfo;
93
+ exports.depositToMegavault = depositToMegavault;
94
+ exports.withdrawFromMegavault = withdrawFromMegavault;
95
+ const crypto_1 = require("@cosmjs/crypto");
96
+ const proto_signing_1 = require("@cosmjs/proto-signing");
97
+ const stargate_1 = require("@cosmjs/stargate");
98
+ const tendermint_rpc_1 = require("@cosmjs/tendermint-rpc");
99
+ const AuthModule = __importStar(require("cosmjs-types/cosmos/auth/v1beta1/query"));
100
+ const long_1 = __importDefault(require("long"));
101
+ const constants_1 = require("../lib/constants");
102
+ const errors_1 = require("../lib/errors");
103
+ const helpers_1 = require("../lib/helpers");
104
+ const onboarding_1 = require("../lib/onboarding");
105
+ const network_optimizer_1 = require("../network_optimizer");
106
+ const composite_client_1 = require("./composite-client");
107
+ const constants_2 = require("./constants");
108
+ const faucet_client_1 = require("./faucet-client");
109
+ const request_helpers_1 = require("./helpers/request-helpers");
110
+ const local_wallet_1 = __importDefault(require("./modules/local-wallet"));
111
+ const noble_client_1 = require("./noble-client");
112
+ const subaccount_1 = require("./subaccount");
113
+ async function connectClient(network) {
114
+ try {
115
+ globalThis.client = await composite_client_1.CompositeClient.connect(network);
116
+ return (0, helpers_1.encodeJson)(network);
117
+ }
118
+ catch (e) {
119
+ return wrappedError(e);
120
+ }
121
+ }
122
+ async function connectNetwork(paramsJSON) {
123
+ try {
124
+ const params = JSON.parse(paramsJSON);
125
+ const { indexerUrl, websocketUrl, validatorUrl, chainId, faucetUrl, nobleValidatorUrl, USDC_DENOM, USDC_DECIMALS, USDC_GAS_DENOM, CHAINTOKEN_DENOM, CHAINTOKEN_DECIMALS, CHAINTOKEN_GAS_DENOM, txnMemo, } = params;
126
+ if (indexerUrl === undefined ||
127
+ websocketUrl === undefined ||
128
+ validatorUrl === undefined ||
129
+ chainId === undefined) {
130
+ throw new errors_1.UserError('Missing required network params');
131
+ }
132
+ if (USDC_DENOM === undefined ||
133
+ USDC_DECIMALS === undefined ||
134
+ CHAINTOKEN_DENOM === undefined ||
135
+ CHAINTOKEN_DECIMALS === undefined) {
136
+ throw new errors_1.UserError('Missing required token params');
137
+ }
138
+ if (txnMemo === undefined) {
139
+ throw new errors_1.UserError('Missing required transaction memo (`txnMemo`)');
140
+ }
141
+ const denomConfig = {
142
+ USDC_DENOM,
143
+ USDC_DECIMALS,
144
+ USDC_GAS_DENOM,
145
+ CHAINTOKEN_DENOM,
146
+ CHAINTOKEN_DECIMALS,
147
+ CHAINTOKEN_GAS_DENOM,
148
+ };
149
+ const indexerConfig = new constants_2.IndexerConfig(indexerUrl, websocketUrl);
150
+ const validatorConfig = new constants_2.ValidatorConfig(validatorUrl, chainId, denomConfig, undefined, txnMemo);
151
+ const config = new constants_2.Network('native', indexerConfig, validatorConfig);
152
+ globalThis.client = await composite_client_1.CompositeClient.connect(config);
153
+ if (faucetUrl !== undefined) {
154
+ globalThis.faucetClient = new faucet_client_1.FaucetClient(faucetUrl);
155
+ }
156
+ else {
157
+ globalThis.faucetClient = null;
158
+ }
159
+ try {
160
+ globalThis.nobleClient = new noble_client_1.NobleClient(nobleValidatorUrl, txnMemo);
161
+ if (globalThis.nobleWallet) {
162
+ await globalThis.nobleClient.connect(globalThis.nobleWallet);
163
+ }
164
+ }
165
+ catch (e) {
166
+ console.error('Failed to connect to noble validator');
167
+ }
168
+ return (0, helpers_1.encodeJson)(config);
169
+ }
170
+ catch (e) {
171
+ return wrappedError(e);
172
+ }
173
+ }
174
+ async function connectWallet(mnemonic) {
175
+ var _a;
176
+ try {
177
+ globalThis.wallet = await local_wallet_1.default.fromMnemonic(mnemonic, constants_1.BECH32_PREFIX);
178
+ globalThis.nobleWallet = await local_wallet_1.default.fromMnemonic(mnemonic, constants_1.NOBLE_BECH32_PREFIX);
179
+ const { privateKey, publicKey } = (0, onboarding_1.deriveHDKeyFromMnemonic)(mnemonic);
180
+ globalThis.hdKey = {
181
+ privateKey,
182
+ publicKey,
183
+ };
184
+ try {
185
+ await ((_a = globalThis.nobleClient) === null || _a === void 0 ? void 0 : _a.connect(globalThis.nobleWallet));
186
+ }
187
+ catch (e) {
188
+ console.error('Failed to connect to noble validator');
189
+ }
190
+ const address = globalThis.wallet.address;
191
+ return (0, helpers_1.encodeJson)({ address });
192
+ }
193
+ catch (e) {
194
+ return wrappedError(e);
195
+ }
196
+ }
197
+ async function connect(network, mnemonic) {
198
+ try {
199
+ await connectClient(network);
200
+ return connectWallet(mnemonic);
201
+ }
202
+ catch (e) {
203
+ return wrappedError(e);
204
+ }
205
+ }
206
+ async function deriveMnemomicFromEthereumSignature(signature) {
207
+ try {
208
+ const { mnemonic, privateKey, publicKey } = (0, onboarding_1.deriveHDKeyFromEthereumSignature)(signature);
209
+ const wallet = await local_wallet_1.default.fromMnemonic(mnemonic, constants_1.BECH32_PREFIX);
210
+ globalThis.hdKey = {
211
+ privateKey,
212
+ publicKey,
213
+ };
214
+ const result = { mnemonic, address: wallet.address };
215
+ return new Promise((resolve) => {
216
+ resolve((0, helpers_1.encodeJson)(result));
217
+ });
218
+ }
219
+ catch (e) {
220
+ return wrappedError(e);
221
+ }
222
+ }
223
+ async function getHeight() {
224
+ var _a;
225
+ try {
226
+ const client = globalThis.client;
227
+ if (client === undefined) {
228
+ throw new errors_1.UserError('client is not connected. Call connectClient() first');
229
+ }
230
+ const block = await ((_a = globalThis.client) === null || _a === void 0 ? void 0 : _a.validatorClient.get.latestBlock());
231
+ return (0, helpers_1.encodeJson)(block);
232
+ }
233
+ catch (e) {
234
+ return wrappedError(e);
235
+ }
236
+ }
237
+ async function getFeeTiers() {
238
+ var _a;
239
+ try {
240
+ const client = globalThis.client;
241
+ if (client === undefined) {
242
+ throw new errors_1.UserError('client is not connected. Call connectClient() first');
243
+ }
244
+ const feeTiers = await ((_a = globalThis.client) === null || _a === void 0 ? void 0 : _a.validatorClient.get.getFeeTiers());
245
+ return (0, helpers_1.encodeJson)(feeTiers);
246
+ }
247
+ catch (e) {
248
+ return wrappedError(e);
249
+ }
250
+ }
251
+ async function getUserFeeTier(payload) {
252
+ var _a;
253
+ try {
254
+ const client = globalThis.client;
255
+ if (client === undefined) {
256
+ throw new errors_1.UserError('client is not connected. Call connectClient() first');
257
+ }
258
+ const json = JSON.parse(payload);
259
+ const address = json.address;
260
+ if (address === undefined) {
261
+ throw new errors_1.UserError('address is not set');
262
+ }
263
+ const feeTiers = await ((_a = globalThis.client) === null || _a === void 0 ? void 0 : _a.validatorClient.get.getUserFeeTier(address));
264
+ return (0, helpers_1.encodeJson)(feeTiers);
265
+ }
266
+ catch (e) {
267
+ return wrappedError(e);
268
+ }
269
+ }
270
+ async function getEquityTiers() {
271
+ var _a;
272
+ try {
273
+ const client = globalThis.client;
274
+ if (client === undefined) {
275
+ throw new errors_1.UserError('client is not connected. Call connectClient() first');
276
+ }
277
+ const equityTiers = await ((_a = globalThis.client) === null || _a === void 0 ? void 0 : _a.validatorClient.get.getEquityTierLimitConfiguration());
278
+ return (0, helpers_1.encodeJson)(equityTiers, helpers_1.ByteArrayEncoding.BIGINT);
279
+ }
280
+ catch (e) {
281
+ return wrappedError(e);
282
+ }
283
+ }
284
+ async function getPerpetualMarkets() {
285
+ var _a;
286
+ try {
287
+ const client = globalThis.client;
288
+ if (client === undefined) {
289
+ throw new errors_1.UserError('client is not connected. Call connectClient() first');
290
+ }
291
+ const markets = await ((_a = globalThis.client) === null || _a === void 0 ? void 0 : _a.indexerClient.markets.getPerpetualMarkets());
292
+ return (0, helpers_1.encodeJson)(markets);
293
+ }
294
+ catch (e) {
295
+ return wrappedError(e);
296
+ }
297
+ }
298
+ async function isWalletConnected() {
299
+ try {
300
+ const client = globalThis.client;
301
+ if (client === undefined) {
302
+ throw new errors_1.UserError('client is not connected. Call connectClient() first');
303
+ }
304
+ const wallet = globalThis.wallet;
305
+ if (wallet === undefined) {
306
+ throw new errors_1.UserError('wallet is not set. Call connectWallet() first');
307
+ }
308
+ return await (0, helpers_1.encodeJson)({ "result": true });
309
+ }
310
+ catch (e) {
311
+ return wrappedError(e);
312
+ }
313
+ }
314
+ async function placeOrder(payload) {
315
+ var _a, _b, _c, _d, _e, _f, _g;
316
+ try {
317
+ const client = globalThis.client;
318
+ if (client === undefined) {
319
+ throw new errors_1.UserError('client is not connected. Call connectClient() first');
320
+ }
321
+ const wallet = globalThis.wallet;
322
+ if (wallet === undefined) {
323
+ throw new errors_1.UserError('wallet is not set. Call connectWallet() first');
324
+ }
325
+ const json = JSON.parse(payload);
326
+ const subaccountNumber = json.subaccountNumber;
327
+ if (subaccountNumber === undefined) {
328
+ throw new errors_1.UserError('subaccountNumber is not set');
329
+ }
330
+ const marketId = json.marketId;
331
+ if (marketId === undefined) {
332
+ throw new errors_1.UserError('marketId is not set');
333
+ }
334
+ const type = json.type;
335
+ if (type === undefined) {
336
+ throw new errors_1.UserError('type is not set');
337
+ }
338
+ const side = json.side;
339
+ if (side === undefined) {
340
+ throw new errors_1.UserError('side is not set');
341
+ }
342
+ const price = json.price;
343
+ if (price === undefined) {
344
+ throw new errors_1.UserError('price is not set');
345
+ }
346
+ // trigger_price: number, // not used for MARKET and LIMIT
347
+ const size = json.size;
348
+ if (size === undefined) {
349
+ throw new errors_1.UserError('size is not set');
350
+ }
351
+ const clientId = json.clientId;
352
+ if (clientId === undefined) {
353
+ throw new errors_1.UserError('clientId is not set');
354
+ }
355
+ const timeInForce = json.timeInForce;
356
+ const goodTilTimeInSeconds = (_a = json.goodTilTimeInSeconds) !== null && _a !== void 0 ? _a : 0;
357
+ const goodTilBlock = (_b = json.goodTilBlock) !== null && _b !== void 0 ? _b : undefined;
358
+ const execution = json.execution;
359
+ const postOnly = (_c = json.postOnly) !== null && _c !== void 0 ? _c : false;
360
+ const reduceOnly = (_d = json.reduceOnly) !== null && _d !== void 0 ? _d : false;
361
+ const triggerPrice = (_e = json.triggerPrice) !== null && _e !== void 0 ? _e : undefined;
362
+ const marketInfo = (_f = json.marketInfo) !== null && _f !== void 0 ? _f : undefined;
363
+ const currentHeight = (_g = json.currentHeight) !== null && _g !== void 0 ? _g : undefined;
364
+ const subaccount = new subaccount_1.SubaccountInfo(wallet, subaccountNumber);
365
+ const tx = await client.placeOrder(subaccount, marketId, type, side, price, size, clientId, timeInForce, goodTilTimeInSeconds, execution, postOnly, reduceOnly, triggerPrice, marketInfo, currentHeight, goodTilBlock);
366
+ return (0, helpers_1.encodeJson)(tx);
367
+ }
368
+ catch (error) {
369
+ return wrappedError(error);
370
+ }
371
+ }
372
+ function wrappedError(error) {
373
+ const text = JSON.stringify(error, Object.getOwnPropertyNames(error));
374
+ return `{"error": ${text}}`;
375
+ }
376
+ async function cancelOrder(payload) {
377
+ try {
378
+ const client = globalThis.client;
379
+ if (client === undefined) {
380
+ throw new errors_1.UserError('client is not connected. Call connectNetwork() first');
381
+ }
382
+ const wallet = globalThis.wallet;
383
+ if (wallet === undefined) {
384
+ throw new errors_1.UserError('wallet is not set. Call connectWallet() first');
385
+ }
386
+ const json = JSON.parse(payload);
387
+ const subaccountNumber = json.subaccountNumber;
388
+ if (subaccountNumber === undefined) {
389
+ throw new errors_1.UserError('subaccountNumber is not set');
390
+ }
391
+ const clientId = json.clientId;
392
+ if (clientId === undefined) {
393
+ throw new errors_1.UserError('clientId is not set');
394
+ }
395
+ const orderFlags = json.orderFlags;
396
+ if (orderFlags === undefined) {
397
+ throw new errors_1.UserError('orderFlags is not set');
398
+ }
399
+ const clobPairId = json.clobPairId;
400
+ if (clobPairId === undefined) {
401
+ throw new errors_1.UserError('clobPairId is not set');
402
+ }
403
+ const goodTilBlock = json.goodTilBlock;
404
+ const goodTilBlockTime = json.goodTilBlockTime;
405
+ const subaccount = new subaccount_1.SubaccountInfo(wallet, subaccountNumber);
406
+ const tx = await client.cancelRawOrder(subaccount, clientId, orderFlags, clobPairId, goodTilBlock !== 0 ? goodTilBlock : undefined, goodTilBlockTime !== 0 ? goodTilBlockTime : undefined);
407
+ return (0, helpers_1.encodeJson)(tx);
408
+ }
409
+ catch (error) {
410
+ return wrappedError(error);
411
+ }
412
+ }
413
+ async function deposit(payload) {
414
+ try {
415
+ const client = globalThis.client;
416
+ if (client === undefined) {
417
+ throw new errors_1.UserError('client is not connected. Call connectNetwork() first');
418
+ }
419
+ const wallet = globalThis.wallet;
420
+ if (wallet === undefined) {
421
+ throw new errors_1.UserError('wallet is not set. Call connectWallet() first');
422
+ }
423
+ const json = JSON.parse(payload);
424
+ const subaccountNumber = json.subaccountNumber;
425
+ if (subaccountNumber === undefined) {
426
+ throw new errors_1.UserError('subaccountNumber is not set');
427
+ }
428
+ const amount = json.amount;
429
+ if (amount === undefined) {
430
+ throw new errors_1.UserError('amount is not set');
431
+ }
432
+ const subaccount = new subaccount_1.SubaccountInfo(wallet, subaccountNumber);
433
+ const tx = await client.depositToSubaccount(subaccount, amount);
434
+ return (0, helpers_1.encodeJson)(tx);
435
+ }
436
+ catch (error) {
437
+ return wrappedError(error);
438
+ }
439
+ }
440
+ async function withdraw(payload) {
441
+ try {
442
+ const client = globalThis.client;
443
+ if (client === undefined) {
444
+ throw new errors_1.UserError('client is not connected. Call connectNetwork() first');
445
+ }
446
+ const wallet = globalThis.wallet;
447
+ if (wallet === undefined) {
448
+ throw new errors_1.UserError('wallet is not set. Call connectWallet() first');
449
+ }
450
+ const json = JSON.parse(payload);
451
+ const subaccountNumber = json.subaccountNumber;
452
+ if (subaccountNumber === undefined) {
453
+ throw new errors_1.UserError('subaccountNumber is not set');
454
+ }
455
+ const amount = json.amount;
456
+ if (amount === undefined) {
457
+ throw new errors_1.UserError('amount is not set');
458
+ }
459
+ const subaccount = new subaccount_1.SubaccountInfo(wallet, subaccountNumber);
460
+ const tx = await client.withdrawFromSubaccount(subaccount, amount, json.recipient, json.memo);
461
+ return (0, helpers_1.encodeJson)(tx);
462
+ }
463
+ catch (error) {
464
+ return wrappedError(error);
465
+ }
466
+ }
467
+ async function faucet(payload) {
468
+ try {
469
+ const faucetClient = globalThis.faucetClient;
470
+ if (!faucetClient) {
471
+ throw new errors_1.UserError('faucetClient is not connected. Call connectNetwork() first');
472
+ }
473
+ const wallet = globalThis.wallet;
474
+ if (wallet === undefined) {
475
+ throw new errors_1.UserError('wallet is not set. Call connectWallet() first');
476
+ }
477
+ const json = JSON.parse(payload);
478
+ const subaccountNumber = json.subaccountNumber;
479
+ if (subaccountNumber === undefined) {
480
+ throw new errors_1.UserError('subaccountNumber is not set');
481
+ }
482
+ const amount = json.amount;
483
+ if (amount === undefined) {
484
+ throw new errors_1.UserError('amount is not set');
485
+ }
486
+ const response = await faucetClient.fill(wallet.address, subaccountNumber, amount);
487
+ const sanitized = {
488
+ data: response.data,
489
+ status: response.status,
490
+ headers: response.headers,
491
+ };
492
+ return (0, helpers_1.encodeJson)(sanitized);
493
+ }
494
+ catch (error) {
495
+ return wrappedError(error);
496
+ }
497
+ }
498
+ async function withdrawToIBC(subaccountNumber, amount, payload) {
499
+ try {
500
+ const client = globalThis.client;
501
+ if (client === undefined) {
502
+ throw new errors_1.UserError('client is not connected. Call connectClient() first');
503
+ }
504
+ const wallet = globalThis.wallet;
505
+ if (wallet === undefined) {
506
+ throw new errors_1.UserError('wallet is not set. Call connectWallet() first');
507
+ }
508
+ const decode = (str) => Buffer.from(str, 'base64').toString('binary');
509
+ const decoded = decode(payload);
510
+ const json = JSON.parse(decoded);
511
+ const ibcMsg = {
512
+ typeUrl: json.msgTypeUrl, // '/ibc.applications.transfer.v1.MsgTransfer',
513
+ value: {
514
+ ...json.msg,
515
+ // Squid returns timeoutTimestamp as Long, but the signer expects BigInt
516
+ timeoutTimestamp: json.msg.timeoutTimestamp
517
+ ? BigInt(long_1.default.fromValue(json.msg.timeoutTimestamp).toString())
518
+ : undefined,
519
+ },
520
+ };
521
+ const subaccount = new subaccount_1.SubaccountInfo(wallet, subaccountNumber);
522
+ const subaccountMsg = client.withdrawFromSubaccountMessage(subaccount, amount);
523
+ const msgs = [subaccountMsg, ibcMsg];
524
+ const encodeObjects = new Promise((resolve) => resolve(msgs));
525
+ const tx = await client.send(wallet, () => {
526
+ return encodeObjects;
527
+ }, false, undefined, undefined);
528
+ return (0, helpers_1.encodeJson)(tx);
529
+ }
530
+ catch (error) {
531
+ return wrappedError(error);
532
+ }
533
+ }
534
+ async function transferNativeToken(payload) {
535
+ try {
536
+ const client = globalThis.client;
537
+ if (client === undefined) {
538
+ throw new errors_1.UserError('client is not connected. Call connectClient() first');
539
+ }
540
+ const wallet = globalThis.wallet;
541
+ if (wallet === undefined) {
542
+ throw new errors_1.UserError('wallet is not set. Call connectWallet() first');
543
+ }
544
+ const json = JSON.parse(payload);
545
+ const amount = json.amount;
546
+ if (amount === undefined) {
547
+ throw new errors_1.UserError('amount is not set');
548
+ }
549
+ const msg = client.sendTokenMessage(wallet, amount, json.recipient);
550
+ const msgs = [msg];
551
+ const encodeObjects = new Promise((resolve) => resolve(msgs));
552
+ const tx = await client.send(wallet, () => {
553
+ return encodeObjects;
554
+ }, false, client.validatorClient.post.defaultDydxGasPrice, json.memo);
555
+ return (0, helpers_1.encodeJson)(tx);
556
+ }
557
+ catch (error) {
558
+ return wrappedError(error);
559
+ }
560
+ }
561
+ async function getAccountBalance() {
562
+ try {
563
+ const client = globalThis.client;
564
+ if (client === undefined) {
565
+ throw new errors_1.UserError('client is not connected. Call connectClient() first');
566
+ }
567
+ const wallet = globalThis.wallet;
568
+ if (wallet === undefined) {
569
+ throw new errors_1.UserError('wallet is not set. Call connectWallet() first');
570
+ }
571
+ const address = globalThis.wallet.address;
572
+ const tx = await client.validatorClient.get.getAccountBalance(address, client.validatorClient.config.denoms.USDC_DENOM);
573
+ return (0, helpers_1.encodeJson)(tx);
574
+ }
575
+ catch (error) {
576
+ return wrappedError(error);
577
+ }
578
+ }
579
+ async function getAccountBalances() {
580
+ try {
581
+ const client = globalThis.client;
582
+ if (client === undefined) {
583
+ throw new errors_1.UserError('client is not connected. Call connectClient() first');
584
+ }
585
+ const wallet = globalThis.wallet;
586
+ if (wallet === undefined) {
587
+ throw new errors_1.UserError('wallet is not set. Call connectWallet() first');
588
+ }
589
+ const address = globalThis.wallet.address;
590
+ const tx = await client.validatorClient.get.getAccountBalances(address);
591
+ return (0, helpers_1.encodeJson)(tx);
592
+ }
593
+ catch (error) {
594
+ return wrappedError(error);
595
+ }
596
+ }
597
+ async function getUserStats(payload) {
598
+ try {
599
+ const client = globalThis.client;
600
+ if (client === undefined) {
601
+ throw new errors_1.UserError('client is not connected. Call connectClient() first');
602
+ }
603
+ const json = JSON.parse(payload);
604
+ const address = json.address;
605
+ if (address === undefined) {
606
+ throw new errors_1.UserError('address is not set');
607
+ }
608
+ const tx = await client.validatorClient.get.getUserStats(address);
609
+ return (0, helpers_1.encodeJson)(tx);
610
+ }
611
+ catch (error) {
612
+ return wrappedError(error);
613
+ }
614
+ }
615
+ async function simulateDeposit(payload) {
616
+ try {
617
+ const client = globalThis.client;
618
+ if (client === undefined) {
619
+ throw new errors_1.UserError('client is not connected. Call connectClient() first');
620
+ }
621
+ const wallet = globalThis.wallet;
622
+ if (wallet === undefined) {
623
+ throw new errors_1.UserError('wallet is not set. Call connectWallet() first');
624
+ }
625
+ const json = JSON.parse(payload);
626
+ const subaccountNumber = json.subaccountNumber;
627
+ if (subaccountNumber === undefined) {
628
+ throw new errors_1.UserError('subaccountNumber is not set');
629
+ }
630
+ const amount = json.amount;
631
+ if (amount === undefined) {
632
+ throw new errors_1.UserError('amount is not set');
633
+ }
634
+ const subaccount = new subaccount_1.SubaccountInfo(wallet, subaccountNumber);
635
+ const msg = client.depositToSubaccountMessage(subaccount, amount);
636
+ const msgs = [msg];
637
+ const encodeObjects = new Promise((resolve) => resolve(msgs));
638
+ const stdFee = await client.simulate(globalThis.wallet, () => {
639
+ return encodeObjects;
640
+ });
641
+ return JSON.stringify(stdFee);
642
+ }
643
+ catch (error) {
644
+ return wrappedError(error);
645
+ }
646
+ }
647
+ async function simulateWithdraw(payload) {
648
+ try {
649
+ const client = globalThis.client;
650
+ if (client === undefined) {
651
+ throw new errors_1.UserError('client is not connected. Call connectClient() first');
652
+ }
653
+ const wallet = globalThis.wallet;
654
+ if (wallet === undefined) {
655
+ throw new errors_1.UserError('wallet is not set. Call connectWallet() first');
656
+ }
657
+ const json = JSON.parse(payload);
658
+ const subaccountNumber = json.subaccountNumber;
659
+ if (subaccountNumber === undefined) {
660
+ throw new errors_1.UserError('subaccountNumber is not set');
661
+ }
662
+ const amount = json.amount;
663
+ if (amount === undefined) {
664
+ throw new errors_1.UserError('amount is not set');
665
+ }
666
+ const subaccount = new subaccount_1.SubaccountInfo(wallet, subaccountNumber);
667
+ const msg = client.withdrawFromSubaccountMessage(subaccount, amount, json.recipient);
668
+ const msgs = [msg];
669
+ const encodeObjects = new Promise((resolve) => resolve(msgs));
670
+ const stdFee = await client.simulate(globalThis.wallet, () => {
671
+ return encodeObjects;
672
+ });
673
+ return (0, helpers_1.encodeJson)(stdFee);
674
+ }
675
+ catch (error) {
676
+ return wrappedError(error);
677
+ }
678
+ }
679
+ async function simulateTransferNativeToken(payload) {
680
+ try {
681
+ const client = globalThis.client;
682
+ if (client === undefined) {
683
+ throw new errors_1.UserError('client is not connected. Call connectClient() first');
684
+ }
685
+ const wallet = globalThis.wallet;
686
+ if (wallet === undefined) {
687
+ throw new errors_1.UserError('wallet is not set. Call connectWallet() first');
688
+ }
689
+ const json = JSON.parse(payload);
690
+ const recipient = json.recipient;
691
+ if (recipient === undefined) {
692
+ throw new errors_1.UserError('recipient is not set');
693
+ }
694
+ const amount = json.amount;
695
+ if (amount === undefined) {
696
+ throw new errors_1.UserError('amount is not set');
697
+ }
698
+ const msg = client.sendTokenMessage(wallet, amount, json.recipient);
699
+ const msgs = [msg];
700
+ const encodeObjects = new Promise((resolve) => resolve(msgs));
701
+ const stdFee = await client.simulate(globalThis.wallet, () => {
702
+ return encodeObjects;
703
+ }, client.validatorClient.post.defaultDydxGasPrice);
704
+ return (0, helpers_1.encodeJson)(stdFee);
705
+ }
706
+ catch (error) {
707
+ return wrappedError(error);
708
+ }
709
+ }
710
+ async function signRawPlaceOrder(subaccountNumber, clientId, clobPairId, side, quantums, subticks, timeInForce, orderFlags, reduceOnly, goodTilBlock, goodTilBlockTime, clientMetadata) {
711
+ try {
712
+ const client = globalThis.client;
713
+ if (client === undefined) {
714
+ throw new errors_1.UserError('client is not connected. Call connectClient() first');
715
+ }
716
+ const wallet = globalThis.wallet;
717
+ if (wallet === undefined) {
718
+ throw new errors_1.UserError('wallet is not set. Call connectWallet() first');
719
+ }
720
+ const msgs = new Promise((resolve) => {
721
+ const msg = client.validatorClient.post.composer.composeMsgPlaceOrder(wallet.address, subaccountNumber, clientId, clobPairId, orderFlags, goodTilBlock, goodTilBlockTime, side, quantums, subticks, timeInForce, reduceOnly, clientMetadata !== null && clientMetadata !== void 0 ? clientMetadata : 0);
722
+ resolve([msg]);
723
+ });
724
+ const signed = await client.sign(wallet, () => msgs, true);
725
+ return Buffer.from(signed).toString('base64');
726
+ }
727
+ catch (error) {
728
+ return wrappedError(error);
729
+ }
730
+ }
731
+ async function signPlaceOrder(subaccountNumber, marketId, type, side, price,
732
+ // trigger_price: number, // not used for MARKET and LIMIT
733
+ size, clientId, timeInForce, goodTilTimeInSeconds, execution, postOnly, reduceOnly) {
734
+ try {
735
+ const client = globalThis.client;
736
+ if (client === undefined) {
737
+ throw new errors_1.UserError('client is not connected. Call connectClient() first');
738
+ }
739
+ const wallet = globalThis.wallet;
740
+ if (wallet === undefined) {
741
+ throw new errors_1.UserError('wallet is not set. Call connectWallet() first');
742
+ }
743
+ const subaccount = new subaccount_1.SubaccountInfo(wallet, subaccountNumber);
744
+ const signed = await client.signPlaceOrder(subaccount, marketId, type, side, price, size, clientId, timeInForce, goodTilTimeInSeconds, execution, postOnly, reduceOnly);
745
+ return signed;
746
+ }
747
+ catch (error) {
748
+ return wrappedError(error);
749
+ }
750
+ }
751
+ async function signCancelOrder(subaccountNumber, clientId, orderFlags, clobPairId, goodTilBlock, goodTilBlockTime) {
752
+ try {
753
+ const client = globalThis.client;
754
+ if (client === undefined) {
755
+ throw new errors_1.UserError('client is not connected. Call connectClient() first');
756
+ }
757
+ const wallet = globalThis.wallet;
758
+ if (wallet === undefined) {
759
+ throw new errors_1.UserError('wallet is not set. Call connectWallet() first');
760
+ }
761
+ const subaccount = new subaccount_1.SubaccountInfo(wallet, subaccountNumber);
762
+ const signed = await client.signCancelOrder(subaccount, clientId, orderFlags, clobPairId, goodTilBlock, goodTilBlockTime);
763
+ return signed;
764
+ }
765
+ catch (error) {
766
+ return wrappedError(error);
767
+ }
768
+ }
769
+ async function encodeAccountRequestData(address) {
770
+ return new Promise((resolve, reject) => {
771
+ try {
772
+ const requestData = Uint8Array.from(AuthModule.QueryAccountRequest.encode({ address }).finish());
773
+ resolve(Buffer.from(requestData).toString('hex'));
774
+ }
775
+ catch (error) {
776
+ reject(error);
777
+ }
778
+ });
779
+ }
780
+ async function decodeAccountResponseValue(value) {
781
+ return new Promise((resolve, reject) => {
782
+ try {
783
+ const rawData = Buffer.from(value, 'base64');
784
+ const rawAccount = AuthModule.QueryAccountResponse.decode(rawData).account;
785
+ // The promise should have been rejected if the rawAccount was undefined.
786
+ if (rawAccount === undefined) {
787
+ throw Error('rawAccount is undefined');
788
+ }
789
+ const account = (0, stargate_1.accountFromAny)(rawAccount);
790
+ resolve((0, helpers_1.encodeJson)(account));
791
+ }
792
+ catch (error) {
793
+ reject(error);
794
+ }
795
+ });
796
+ }
797
+ async function getOptimalNode(endpointUrlsAsJson) {
798
+ /*
799
+ param:
800
+ endpointUrlsAsJson:
801
+ {
802
+ "endpointUrls": [
803
+ "https://rpc.testnet.near.org"
804
+ ],
805
+ "chainId": "testnet"
806
+ }
807
+ */
808
+ try {
809
+ const param = JSON.parse(endpointUrlsAsJson);
810
+ const endpointUrls = param.endpointUrls;
811
+ const chainId = param.chainId;
812
+ const networkOptimizer = new network_optimizer_1.NetworkOptimizer();
813
+ const optimalUrl = await networkOptimizer.findOptimalNode(endpointUrls, chainId);
814
+ const url = {
815
+ url: optimalUrl,
816
+ };
817
+ return (0, helpers_1.encodeJson)(url);
818
+ }
819
+ catch (error) {
820
+ return wrappedError(error);
821
+ }
822
+ }
823
+ async function getOptimalIndexer(endpointUrlsAsJson) {
824
+ /*
825
+ param:
826
+ endpointUrlsAsJson:
827
+ {
828
+ "endpointUrls": [
829
+ "https://api.example.org"
830
+ ]
831
+ }
832
+ */
833
+ try {
834
+ const param = JSON.parse(endpointUrlsAsJson);
835
+ const endpointUrls = param.endpointUrls;
836
+ const networkOptimizer = new network_optimizer_1.NetworkOptimizer();
837
+ const optimalUrl = await networkOptimizer.findOptimalIndexer(endpointUrls);
838
+ const url = {
839
+ url: optimalUrl,
840
+ };
841
+ return (0, helpers_1.encodeJson)(url);
842
+ }
843
+ catch (error) {
844
+ return wrappedError(error);
845
+ }
846
+ }
847
+ async function getRewardsParams() {
848
+ var _a;
849
+ try {
850
+ const client = globalThis.client;
851
+ if (client === undefined) {
852
+ throw new errors_1.UserError('client is not connected. Call connectClient() first');
853
+ }
854
+ const rewardsParams = await ((_a = globalThis.client) === null || _a === void 0 ? void 0 : _a.validatorClient.get.getRewardsParams());
855
+ return (0, helpers_1.encodeJson)(rewardsParams);
856
+ }
857
+ catch (e) {
858
+ return wrappedError(e);
859
+ }
860
+ }
861
+ async function getDelegatorDelegations(payload) {
862
+ var _a;
863
+ try {
864
+ const client = globalThis.client;
865
+ if (client === undefined) {
866
+ throw new errors_1.UserError('client is not connected. Call connectClient() first');
867
+ }
868
+ const json = JSON.parse(payload);
869
+ const address = json.address;
870
+ if (address === undefined) {
871
+ throw new errors_1.UserError('address is not set');
872
+ }
873
+ const delegations = await ((_a = globalThis.client) === null || _a === void 0 ? void 0 : _a.validatorClient.get.getDelegatorDelegations(address));
874
+ return (0, helpers_1.encodeJson)(delegations);
875
+ }
876
+ catch (e) {
877
+ return wrappedError(e);
878
+ }
879
+ }
880
+ async function getStakingRewards(payload) {
881
+ var _a;
882
+ try {
883
+ const client = globalThis.client;
884
+ if (client === undefined) {
885
+ throw new errors_1.UserError('client is not connected. Call connectClient() first');
886
+ }
887
+ const json = JSON.parse(payload);
888
+ const address = json.address;
889
+ if (address === undefined) {
890
+ throw new errors_1.UserError('address is not set');
891
+ }
892
+ const delegations = await ((_a = globalThis.client) === null || _a === void 0 ? void 0 : _a.validatorClient.get.getDelegationTotalRewards(address));
893
+ return (0, helpers_1.encodeJson)(delegations);
894
+ }
895
+ catch (e) {
896
+ return wrappedError(e);
897
+ }
898
+ }
899
+ async function getCurrentUnstaking(payload) {
900
+ var _a;
901
+ try {
902
+ const client = globalThis.client;
903
+ if (client === undefined) {
904
+ throw new errors_1.UserError('client is not connected. Call connectClient() first');
905
+ }
906
+ const json = JSON.parse(payload);
907
+ const address = json.address;
908
+ if (address === undefined) {
909
+ throw new errors_1.UserError('address is not set');
910
+ }
911
+ const delegations = await ((_a = globalThis.client) === null || _a === void 0 ? void 0 : _a.validatorClient.get.getDelegatorUnbondingDelegations(address));
912
+ return (0, helpers_1.encodeJson)(delegations);
913
+ }
914
+ catch (e) {
915
+ return wrappedError(e);
916
+ }
917
+ }
918
+ async function getMarketPrice(payload) {
919
+ try {
920
+ const client = globalThis.client;
921
+ if (client === undefined) {
922
+ throw new errors_1.UserError('client is not connected. Call connectClient() first');
923
+ }
924
+ const json = JSON.parse(payload);
925
+ const marketId = json.marketId;
926
+ if (marketId === undefined) {
927
+ throw new errors_1.UserError('marketId is not set');
928
+ }
929
+ const marketPrice = await client.validatorClient.get.getPrice(marketId);
930
+ return (0, helpers_1.encodeJson)(marketPrice);
931
+ }
932
+ catch (e) {
933
+ return wrappedError(e);
934
+ }
935
+ }
936
+ async function getNobleBalance() {
937
+ try {
938
+ const client = globalThis.nobleClient;
939
+ if (client === undefined || !client.isConnected) {
940
+ throw new errors_1.UserError('client is not connected.');
941
+ }
942
+ const coin = await client.getAccountBalance('uusdc');
943
+ return (0, helpers_1.encodeJson)(coin);
944
+ }
945
+ catch (error) {
946
+ return wrappedError(error);
947
+ }
948
+ }
949
+ async function sendNobleIBC(squidPayload) {
950
+ try {
951
+ const client = globalThis.nobleClient;
952
+ if (client === undefined || !client.isConnected) {
953
+ throw new errors_1.UserError('client is not connected.');
954
+ }
955
+ const json = JSON.parse(squidPayload);
956
+ const ibcMsg = {
957
+ typeUrl: json.msgTypeUrl,
958
+ value: {
959
+ ...json.msg,
960
+ // Squid returns timeoutTimestamp as Long, but the signer expects BigInt
961
+ timeoutTimestamp: json.msg.timeoutTimestamp
962
+ ? BigInt(long_1.default.fromValue(json.msg.timeoutTimestamp).toString())
963
+ : undefined,
964
+ },
965
+ };
966
+ const fee = await client.simulateTransaction([ibcMsg]);
967
+ if (!ibcMsg.value.token) {
968
+ throw new errors_1.UserError('Payload missing token field');
969
+ }
970
+ // take out fee from amount before sweeping
971
+ const amount = parseInt(ibcMsg.value.token.amount, 10) -
972
+ Math.floor(parseInt(fee.amount[0].amount, 10) * constants_1.GAS_MULTIPLIER);
973
+ if (amount <= 0) {
974
+ throw new errors_1.UserError('noble balance does not cover fees');
975
+ }
976
+ ibcMsg.value.token = (0, proto_signing_1.coin)(amount.toString(), ibcMsg.value.token.denom);
977
+ const tx = await client.IBCTransfer(ibcMsg);
978
+ return (0, helpers_1.encodeJson)(tx);
979
+ }
980
+ catch (error) {
981
+ return wrappedError(error);
982
+ }
983
+ }
984
+ async function withdrawToNobleIBC(payload) {
985
+ try {
986
+ const client = globalThis.client;
987
+ if (client === undefined) {
988
+ throw new errors_1.UserError('client is not connected. Call connectClient() first');
989
+ }
990
+ const wallet = globalThis.wallet;
991
+ if (wallet === undefined) {
992
+ throw new errors_1.UserError('wallet is not set. Call connectWallet() first');
993
+ }
994
+ const json = JSON.parse(payload);
995
+ const { subaccountNumber, amount, ibcPayload } = json !== null && json !== void 0 ? json : {};
996
+ const decode = (str) => Buffer.from(str, 'base64').toString('binary');
997
+ const decoded = decode(ibcPayload);
998
+ const parsedIbcPayload = JSON.parse(decoded);
999
+ const msg = client.withdrawFromSubaccountMessage(new subaccount_1.SubaccountInfo(wallet, subaccountNumber), parseFloat(amount).toFixed(client.validatorClient.config.denoms.USDC_DECIMALS));
1000
+ const ibcMsg = {
1001
+ typeUrl: parsedIbcPayload.msgTypeUrl,
1002
+ value: {
1003
+ ...parsedIbcPayload.msg,
1004
+ // Squid returns timeoutTimestamp as Long, but the signer expects BigInt
1005
+ timeoutTimestamp: parsedIbcPayload.msg.timeoutTimestamp
1006
+ ? BigInt(long_1.default.fromValue(parsedIbcPayload.msg.timeoutTimestamp).toString())
1007
+ : undefined,
1008
+ },
1009
+ };
1010
+ const tx = await client.send(wallet, () => Promise.resolve([msg, ibcMsg]), false);
1011
+ return (0, helpers_1.encodeJson)({
1012
+ txHash: `0x${Buffer.from(tx === null || tx === void 0 ? void 0 : tx.hash).toString('hex')}`,
1013
+ });
1014
+ }
1015
+ catch (error) {
1016
+ return wrappedError(error);
1017
+ }
1018
+ }
1019
+ async function cctpWithdraw(squidPayload) {
1020
+ try {
1021
+ const client = globalThis.nobleClient;
1022
+ if (client === undefined || !client.isConnected) {
1023
+ throw new errors_1.UserError('client is not connected.');
1024
+ }
1025
+ const json = JSON.parse(squidPayload);
1026
+ const ibcMsg = {
1027
+ typeUrl: json.typeUrl, // '/circle.cctp.v1.MsgDepositForBurn',
1028
+ value: json.value,
1029
+ };
1030
+ const fee = await client.simulateTransaction([ibcMsg]);
1031
+ // take out fee from amount before sweeping
1032
+ const amount = parseInt(ibcMsg.value.amount, 10) -
1033
+ Math.floor(parseInt(fee.amount[0].amount, 10) * constants_1.GAS_MULTIPLIER);
1034
+ if (amount <= 0) {
1035
+ throw new Error('noble balance does not cover fees');
1036
+ }
1037
+ ibcMsg.value.amount = amount.toString();
1038
+ const tx = await client.send([ibcMsg]);
1039
+ return (0, helpers_1.encodeJson)(tx);
1040
+ }
1041
+ catch (error) {
1042
+ return wrappedError(error);
1043
+ }
1044
+ }
1045
+ async function cctpMultiMsgWithdraw(cosmosPayload) {
1046
+ try {
1047
+ const client = globalThis.nobleClient;
1048
+ const messages = JSON.parse(cosmosPayload);
1049
+ if (client === undefined || !client.isConnected) {
1050
+ throw new errors_1.UserError('client is not connected.');
1051
+ }
1052
+ const ibcMsgs = messages.map(({ typeUrl, value }) => ({
1053
+ typeUrl, // '/circle.cctp.v1.MsgDepositForBurnWithCaller', '/cosmos.bank.v1beta1.MsgSend'
1054
+ value,
1055
+ }));
1056
+ const fee = await client.simulateTransaction(ibcMsgs);
1057
+ // take out fee from amount before sweeping
1058
+ const amount = parseInt(ibcMsgs[0].value.amount, 10) -
1059
+ Math.floor(parseInt(fee.amount[0].amount, 10) * constants_1.GAS_MULTIPLIER);
1060
+ if (amount <= 0) {
1061
+ throw new Error('noble balance does not cover fees');
1062
+ }
1063
+ ibcMsgs[0].value.amount = amount.toString();
1064
+ const tx = await client.send(ibcMsgs);
1065
+ return (0, helpers_1.encodeJson)(tx);
1066
+ }
1067
+ catch (error) {
1068
+ return wrappedError(error);
1069
+ }
1070
+ }
1071
+ async function getWithdrawalCapacityByDenom(payload) {
1072
+ try {
1073
+ const client = globalThis.client;
1074
+ if (client === undefined) {
1075
+ throw new errors_1.UserError('client is not connected. Call connectClient() first');
1076
+ }
1077
+ const json = JSON.parse(payload);
1078
+ const denom = json.denom;
1079
+ if (denom === undefined) {
1080
+ throw new errors_1.UserError('denom is not set');
1081
+ }
1082
+ const response = await client.validatorClient.get.getWithdrawalCapacityByDenom(denom);
1083
+ return (0, helpers_1.encodeJson)(response, helpers_1.ByteArrayEncoding.BIGINT);
1084
+ }
1085
+ catch (error) {
1086
+ return wrappedError(error);
1087
+ }
1088
+ }
1089
+ async function getWithdrawalAndTransferGatingStatus(perpetualId) {
1090
+ try {
1091
+ const client = globalThis.client;
1092
+ if (client === undefined) {
1093
+ throw new errors_1.UserError('client is not connected. Call connectClient() first');
1094
+ }
1095
+ const response = await client.validatorClient.get.getWithdrawalAndTransferGatingStatus(perpetualId);
1096
+ return (0, helpers_1.encodeJson)(response);
1097
+ }
1098
+ catch (error) {
1099
+ return wrappedError(error);
1100
+ }
1101
+ }
1102
+ async function subaccountTransfer(payload) {
1103
+ try {
1104
+ const client = globalThis.client;
1105
+ if (client === undefined) {
1106
+ throw new errors_1.UserError('client is not connected. Call connectNetwork() first');
1107
+ }
1108
+ const wallet = globalThis.wallet;
1109
+ if (wallet === undefined) {
1110
+ throw new errors_1.UserError('wallet is not set. Call connectWallet() first');
1111
+ }
1112
+ const json = JSON.parse(payload);
1113
+ const subaccountNumber = json.subaccountNumber;
1114
+ if (subaccountNumber === undefined) {
1115
+ throw new errors_1.UserError('subaccountNumber is not set');
1116
+ }
1117
+ const amount = json.amount;
1118
+ if (amount === undefined) {
1119
+ throw new errors_1.UserError('amount is not set');
1120
+ }
1121
+ let destinationAddress = json.destinationAddress;
1122
+ if (destinationAddress === undefined) {
1123
+ destinationAddress = wallet.address;
1124
+ }
1125
+ const destinationSubaccountNumber = json.destinationSubaccountNumber;
1126
+ if (destinationSubaccountNumber === undefined) {
1127
+ throw new errors_1.UserError('destinationSubaccountNumber is not set');
1128
+ }
1129
+ const subaccount = new subaccount_1.SubaccountInfo(wallet, subaccountNumber);
1130
+ const tx = await client.transferToSubaccount(subaccount, destinationAddress, destinationSubaccountNumber, parseFloat(amount).toFixed(6), tendermint_rpc_1.Method.BroadcastTxCommit);
1131
+ return (0, helpers_1.encodeJson)(tx);
1132
+ }
1133
+ catch (error) {
1134
+ return wrappedError(error);
1135
+ }
1136
+ }
1137
+ async function signCompliancePayload(payload) {
1138
+ var _a, _b;
1139
+ try {
1140
+ const json = JSON.parse(payload);
1141
+ const message = json.message;
1142
+ if (message === undefined) {
1143
+ throw new errors_1.UserError('message is not set');
1144
+ }
1145
+ const action = json.action;
1146
+ if (action === undefined) {
1147
+ throw new errors_1.UserError('action is not set');
1148
+ }
1149
+ const currentStatus = json.status;
1150
+ if (currentStatus === undefined) {
1151
+ throw new errors_1.UserError('status is not set');
1152
+ }
1153
+ if (!((_a = globalThis.hdKey) === null || _a === void 0 ? void 0 : _a.privateKey) || !((_b = globalThis.hdKey) === null || _b === void 0 ? void 0 : _b.publicKey)) {
1154
+ throw new Error('Missing hdKey');
1155
+ }
1156
+ const timestampInSeconds = Math.floor(Date.now() / 1000);
1157
+ const messageToSign = `${message}:${action}"${currentStatus !== null && currentStatus !== void 0 ? currentStatus : ''}:${timestampInSeconds}`;
1158
+ const messageHash = (0, crypto_1.sha256)(Buffer.from(messageToSign));
1159
+ const signed = await crypto_1.Secp256k1.createSignature(messageHash, globalThis.hdKey.privateKey);
1160
+ const signedMessage = signed.toFixedLength();
1161
+ return (0, helpers_1.encodeJson)({
1162
+ signedMessage: Buffer.from(signedMessage).toString('base64'),
1163
+ publicKey: Buffer.from(globalThis.hdKey.publicKey).toString('base64'),
1164
+ timestamp: timestampInSeconds,
1165
+ });
1166
+ }
1167
+ catch (error) {
1168
+ return wrappedError(error);
1169
+ }
1170
+ }
1171
+ async function signPushNotificationTokenRegistrationPayload(payload) {
1172
+ var _a, _b;
1173
+ try {
1174
+ const json = JSON.parse(payload);
1175
+ const message = json.message;
1176
+ if (message === undefined) {
1177
+ throw new errors_1.UserError('message is not set');
1178
+ }
1179
+ if (!((_a = globalThis.hdKey) === null || _a === void 0 ? void 0 : _a.privateKey) || !((_b = globalThis.hdKey) === null || _b === void 0 ? void 0 : _b.publicKey)) {
1180
+ throw new Error('Missing hdKey');
1181
+ }
1182
+ const timestampInSeconds = Math.floor(Date.now() / 1000);
1183
+ const messageToSign = `${message}:REGISTER_TOKEN"${''}:${timestampInSeconds}`;
1184
+ const messageHash = (0, crypto_1.sha256)(Buffer.from(messageToSign));
1185
+ const signed = await crypto_1.Secp256k1.createSignature(messageHash, globalThis.hdKey.privateKey);
1186
+ const signedMessage = signed.toFixedLength();
1187
+ return (0, helpers_1.encodeJson)({
1188
+ signedMessage: Buffer.from(signedMessage).toString('base64'),
1189
+ publicKey: Buffer.from(globalThis.hdKey.publicKey).toString('base64'),
1190
+ timestamp: timestampInSeconds,
1191
+ });
1192
+ }
1193
+ catch (error) {
1194
+ return wrappedError(error);
1195
+ }
1196
+ }
1197
+ async function setSelectedGasDenom(gasDenom) {
1198
+ try {
1199
+ const client = globalThis.client;
1200
+ if (client === undefined) {
1201
+ throw new errors_1.UserError('client is not connected. Call connectClient() first');
1202
+ }
1203
+ await client.setSelectedGasDenom(gasDenom);
1204
+ return (0, helpers_1.encodeJson)('success');
1205
+ }
1206
+ catch (error) {
1207
+ return wrappedError(error);
1208
+ }
1209
+ }
1210
+ async function getMegavaultOwnerShares(payload) {
1211
+ var _a;
1212
+ try {
1213
+ const client = globalThis.client;
1214
+ if (client === undefined) {
1215
+ throw new errors_1.UserError('client is not connected. Call connectClient() first');
1216
+ }
1217
+ const json = JSON.parse(payload);
1218
+ const address = json.address;
1219
+ if (address === undefined) {
1220
+ throw new errors_1.UserError('address is not set');
1221
+ }
1222
+ const response = await ((_a = globalThis.client) === null || _a === void 0 ? void 0 : _a.validatorClient.get.getMegavaultOwnerShares(address));
1223
+ return (0, helpers_1.encodeJson)((0, request_helpers_1.parseToPrimitives)(response));
1224
+ }
1225
+ catch (e) {
1226
+ return wrappedError(e);
1227
+ }
1228
+ }
1229
+ async function getMegavaultWithdrawalInfo(sharesToWithdraw) {
1230
+ var _a;
1231
+ try {
1232
+ const client = globalThis.client;
1233
+ if (client === undefined) {
1234
+ throw new errors_1.UserError('client is not connected. Call connectClient() first');
1235
+ }
1236
+ const response = await ((_a = globalThis.client) === null || _a === void 0 ? void 0 : _a.validatorClient.get.getMegavaultWithdrawalInfo(sharesToWithdraw));
1237
+ return (0, helpers_1.encodeJson)((0, request_helpers_1.parseToPrimitives)(response));
1238
+ }
1239
+ catch (e) {
1240
+ return wrappedError(e);
1241
+ }
1242
+ }
1243
+ async function depositToMegavault(subaccountNumber, amountUsdc) {
1244
+ try {
1245
+ const client = globalThis.client;
1246
+ if (client === undefined) {
1247
+ throw new errors_1.UserError('client is not connected. Call connectNetwork() first');
1248
+ }
1249
+ const wallet = globalThis.wallet;
1250
+ if (wallet === undefined) {
1251
+ throw new errors_1.UserError('wallet is not set. Call connectWallet() first');
1252
+ }
1253
+ const subaccount = new subaccount_1.SubaccountInfo(wallet, subaccountNumber);
1254
+ const tx = await client.depositToMegavault(subaccount, amountUsdc, tendermint_rpc_1.Method.BroadcastTxCommit);
1255
+ return (0, helpers_1.encodeJson)((0, request_helpers_1.parseToPrimitives)(tx));
1256
+ }
1257
+ catch (error) {
1258
+ return wrappedError(error);
1259
+ }
1260
+ }
1261
+ async function withdrawFromMegavault(subaccountNumber, shares, minAmount) {
1262
+ try {
1263
+ const client = globalThis.client;
1264
+ if (client === undefined) {
1265
+ throw new errors_1.UserError('client is not connected. Call connectNetwork() first');
1266
+ }
1267
+ const wallet = globalThis.wallet;
1268
+ if (wallet === undefined) {
1269
+ throw new errors_1.UserError('wallet is not set. Call connectWallet() first');
1270
+ }
1271
+ const subaccount = new subaccount_1.SubaccountInfo(wallet, subaccountNumber);
1272
+ const tx = await client.withdrawFromMegavault(subaccount, shares, minAmount, tendermint_rpc_1.Method.BroadcastTxCommit);
1273
+ return (0, helpers_1.encodeJson)((0, request_helpers_1.parseToPrimitives)(tx));
1274
+ }
1275
+ catch (error) {
1276
+ return wrappedError(error);
1277
+ }
1278
+ }
1279
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NsaWVudHMvbmF0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSx1REFBdUQ7QUFDdkQ7O0VBRUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBd0RGLHNDQU9DO0FBRUQsd0NBNEVDO0FBRUQsc0NBc0JDO0FBRUQsMEJBT0M7QUFFRCxrRkFlQztBQUVELDhCQVdDO0FBRUQsa0NBV0M7QUFFRCx3Q0FnQkM7QUFFRCx3Q0FZQztBQUVELGtEQVdDO0FBRUQsOENBY0M7QUFFRCxnQ0EyRUM7QUFFRCxvQ0FHQztBQUVELGtDQTRDQztBQUVELDBCQTJCQztBQUVELDRCQTJCQztBQUVELHdCQWdDQztBQUVELHNDQWtEQztBQUVELGtEQWtDQztBQUVELDhDQW9CQztBQUVELGdEQWlCQztBQUVELG9DQWlCQztBQUVELDBDQWdDQztBQUVELDRDQW9DQztBQUVELGtFQW1DQztBQUVELDhDQStDQztBQUVELHdDQTRDQztBQUVELDBDQStCQztBQUVELDREQVdDO0FBRUQsZ0VBZUM7QUFFRCx3Q0F3QkM7QUFFRCw4Q0FzQkM7QUFFRCw0Q0FXQztBQUVELDBEQWlCQztBQUVELDhDQWlCQztBQUVELGtEQWlCQztBQUVELHdDQWdCQztBQUVELDBDQVdDO0FBRUQsb0NBd0NDO0FBRUQsZ0RBMENDO0FBRUQsb0NBZ0NDO0FBR0Qsb0RBK0JDO0FBRUQsb0VBaUJDO0FBRUQsb0ZBWUM7QUFFRCxnREEyQ0M7QUFFRCxzREFrQ0M7QUFFRCxvR0EwQkM7QUFFRCxrREFXQztBQUVELDBEQWlCQztBQUVELGdFQWNDO0FBRUQsZ0RBdUJDO0FBRUQsc0RBeUJDO0FBbDdDRCwyQ0FBbUQ7QUFDbkQseURBQXlFO0FBQ3pFLCtDQUEyRTtBQUMzRSwyREFBZ0Q7QUFLaEQsbUZBQXFFO0FBQ3JFLGdEQUF3QjtBQUV4QixnREFBc0Y7QUFDdEYsMENBQTBDO0FBQzFD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