@ritbit/v4-client-js 2.4.2 → 2.5.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 (167) hide show
  1. package/build/cjs/node_modules/@ritbit/v4-proto/src/codegen/legacy/ritbit/bridge/v1/params.js +91 -0
  2. package/build/cjs/node_modules/@ritbit/v4-proto/src/codegen/ritbit/assets/asset.js +19 -3
  3. package/build/cjs/node_modules/@ritbit/v4-proto/src/codegen/ritbit/assets/tx.js +193 -1
  4. package/build/cjs/node_modules/@ritbit/v4-proto/src/codegen/ritbit/assets/tx.rpc.msg.js +57 -0
  5. package/build/cjs/node_modules/@ritbit/v4-proto/src/codegen/ritbit/bridge/bridge_event.js +21 -21
  6. package/build/cjs/node_modules/@ritbit/v4-proto/src/codegen/ritbit/bridge/tx.js +2 -142
  7. package/build/cjs/node_modules/@ritbit/v4-proto/src/codegen/ritbit/bridge/tx.rpc.msg.js +1 -13
  8. package/build/cjs/node_modules/@ritbit/v4-proto/src/codegen/ritbit/bridge/withdrawal.js +24 -8
  9. package/build/cjs/node_modules/@ritbit/v4-proto/src/codegen/ritbit/indexer/events/events.js +19 -3
  10. package/build/cjs/node_modules/@ritbit/v4-proto/src/codegen/ritbit/rpc.tx.js +2 -1
  11. package/build/cjs/src/clients/composite-client.js +21 -15
  12. package/build/cjs/src/clients/helpers/asset-registry.js +90 -0
  13. package/build/cjs/src/clients/helpers/collateral.js +69 -0
  14. package/build/cjs/src/clients/modules/get.js +22 -1
  15. package/build/cjs/src/clients/modules/proto-includes.js +3 -2
  16. package/build/cjs/src/clients/validator-client.js +42 -1
  17. package/build/cjs/src/index.js +4 -1
  18. package/build/cjs/src/lib/validation.js +10 -5
  19. package/build/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  20. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/cosmos/bank/v1beta1/bank.d.ts.map +1 -1
  21. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/cosmos/bank/v1beta1/tx.d.ts.map +1 -1
  22. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/cosmos/base/query/v1beta1/pagination.d.ts.map +1 -1
  23. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/cosmos/base/v1beta1/coin.d.ts.map +1 -1
  24. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/cosmos/distribution/v1beta1/distribution.d.ts.map +1 -1
  25. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/cosmos/distribution/v1beta1/query.d.ts.map +1 -1
  26. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/cosmos/distribution/v1beta1/tx.d.ts.map +1 -1
  27. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/cosmos/gov/v1/gov.d.ts.map +1 -1
  28. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/cosmos/gov/v1/query.d.ts.map +1 -1
  29. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/cosmos/gov/v1/tx.d.ts.map +1 -1
  30. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/cosmos/staking/v1beta1/query.d.ts.map +1 -1
  31. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/cosmos/staking/v1beta1/staking.d.ts.map +1 -1
  32. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/cosmos/staking/v1beta1/tx.d.ts.map +1 -1
  33. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/google/protobuf/any.d.ts.map +1 -1
  34. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/google/protobuf/duration.d.ts.map +1 -1
  35. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/google/protobuf/timestamp.d.ts.map +1 -1
  36. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/legacy/ritbit/bridge/v1/params.d.ts +29 -0
  37. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/legacy/ritbit/bridge/v1/params.d.ts.map +1 -0
  38. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/legacy/ritbit/bridge/v1/params.js +55 -0
  39. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/accountplus/accountplus.d.ts.map +1 -1
  40. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/accountplus/models.d.ts.map +1 -1
  41. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/accountplus/params.d.ts.map +1 -1
  42. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/accountplus/query.d.ts.map +1 -1
  43. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/accountplus/tx.d.ts.map +1 -1
  44. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/affiliates/affiliates.d.ts.map +1 -1
  45. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/affiliates/query.d.ts.map +1 -1
  46. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/affiliates/tx.d.ts.map +1 -1
  47. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/assets/asset.d.ts +16 -0
  48. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/assets/asset.d.ts.map +1 -1
  49. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/assets/asset.js +19 -3
  50. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/assets/genesis.d.ts.map +1 -1
  51. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/assets/query.d.ts.map +1 -1
  52. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/assets/tx.d.ts +61 -1
  53. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/assets/tx.d.ts.map +1 -1
  54. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/assets/tx.js +159 -2
  55. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/assets/tx.rpc.msg.d.ts +16 -0
  56. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/assets/tx.rpc.msg.d.ts.map +1 -0
  57. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/assets/tx.rpc.msg.js +20 -0
  58. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/bridge/bridge_event.d.ts +17 -15
  59. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/bridge/bridge_event.d.ts.map +1 -1
  60. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/bridge/bridge_event.js +21 -21
  61. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/bridge/bridge_event_info.d.ts.map +1 -1
  62. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/bridge/genesis.d.ts +1 -1
  63. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/bridge/genesis.d.ts.map +1 -1
  64. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/bridge/params.d.ts.map +1 -1
  65. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/bridge/query.d.ts.map +1 -1
  66. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/bridge/token_reserve.d.ts.map +1 -1
  67. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/bridge/tx.d.ts +2 -54
  68. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/bridge/tx.d.ts.map +1 -1
  69. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/bridge/tx.js +3 -143
  70. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/bridge/tx.rpc.msg.d.ts +1 -7
  71. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/bridge/tx.rpc.msg.d.ts.map +1 -1
  72. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/bridge/tx.rpc.msg.js +2 -14
  73. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/bridge/withdrawal.d.ts +9 -3
  74. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/bridge/withdrawal.d.ts.map +1 -1
  75. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/bridge/withdrawal.js +24 -8
  76. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/clob/block_rate_limit_config.d.ts.map +1 -1
  77. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/clob/clob_pair.d.ts.map +1 -1
  78. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/clob/equity_tier_limit_config.d.ts.map +1 -1
  79. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/clob/liquidations.d.ts.map +1 -1
  80. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/clob/liquidations_config.d.ts.map +1 -1
  81. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/clob/matches.d.ts.map +1 -1
  82. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/clob/mev.d.ts.map +1 -1
  83. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/clob/order.d.ts.map +1 -1
  84. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/clob/order_removals.d.ts.map +1 -1
  85. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/clob/query.d.ts.map +1 -1
  86. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/clob/tx.d.ts.map +1 -1
  87. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/daemons/bridge/bridge.d.ts +2 -2
  88. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/delaymsg/tx.d.ts.map +1 -1
  89. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/feetiers/params.d.ts.map +1 -1
  90. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/feetiers/per_market_fee_discount.d.ts.map +1 -1
  91. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/feetiers/query.d.ts.map +1 -1
  92. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/feetiers/staking_tier.d.ts.map +1 -1
  93. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/indexer/events/events.d.ts +12 -0
  94. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/indexer/events/events.d.ts.map +1 -1
  95. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/indexer/events/events.js +19 -3
  96. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/indexer/off_chain_updates/off_chain_updates.d.ts.map +1 -1
  97. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/indexer/protocol/v1/clob.d.ts.map +1 -1
  98. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/indexer/protocol/v1/subaccount.d.ts.map +1 -1
  99. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/listing/params.d.ts.map +1 -1
  100. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/listing/query.d.ts.map +1 -1
  101. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/listing/tx.d.ts.map +1 -1
  102. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/perpetuals/params.d.ts.map +1 -1
  103. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/perpetuals/perpetual.d.ts.map +1 -1
  104. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/perpetuals/query.d.ts.map +1 -1
  105. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/perpetuals/tx.d.ts.map +1 -1
  106. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/prices/market_param.d.ts.map +1 -1
  107. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/prices/market_price.d.ts.map +1 -1
  108. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/prices/query.d.ts.map +1 -1
  109. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/prices/streaming.d.ts.map +1 -1
  110. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/prices/tx.d.ts.map +1 -1
  111. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/ratelimit/capacity.d.ts.map +1 -1
  112. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/ratelimit/limit_params.d.ts.map +1 -1
  113. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/ratelimit/pending_send_packet.d.ts.map +1 -1
  114. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/ratelimit/query.d.ts.map +1 -1
  115. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/rewards/params.d.ts.map +1 -1
  116. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/rewards/query.d.ts.map +1 -1
  117. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/rpc.tx.d.ts +1 -0
  118. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/rpc.tx.d.ts.map +1 -1
  119. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/rpc.tx.js +2 -1
  120. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/sending/transfer.d.ts.map +1 -1
  121. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/sending/tx.d.ts.map +1 -1
  122. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/stats/params.d.ts.map +1 -1
  123. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/stats/query.d.ts.map +1 -1
  124. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/stats/stats.d.ts.map +1 -1
  125. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/subaccounts/asset_position.d.ts.map +1 -1
  126. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/subaccounts/perpetual_position.d.ts.map +1 -1
  127. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/subaccounts/query.d.ts.map +1 -1
  128. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/subaccounts/streaming.d.ts.map +1 -1
  129. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/subaccounts/subaccount.d.ts.map +1 -1
  130. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/vault/params.d.ts.map +1 -1
  131. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/vault/query.d.ts.map +1 -1
  132. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/vault/share.d.ts.map +1 -1
  133. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/vault/tx.d.ts.map +1 -1
  134. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/vault/vault.d.ts.map +1 -1
  135. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/tendermint/abci/types.d.ts.map +1 -1
  136. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/tendermint/crypto/keys.d.ts.map +1 -1
  137. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/tendermint/crypto/proof.d.ts.map +1 -1
  138. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/tendermint/types/params.d.ts.map +1 -1
  139. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/tendermint/types/types.d.ts.map +1 -1
  140. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/tendermint/types/validator.d.ts.map +1 -1
  141. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/tendermint/version/types.d.ts.map +1 -1
  142. package/build/esm/src/clients/composite-client.d.ts +12 -7
  143. package/build/esm/src/clients/composite-client.d.ts.map +1 -1
  144. package/build/esm/src/clients/composite-client.js +21 -15
  145. package/build/esm/src/clients/helpers/asset-registry.d.ts +50 -0
  146. package/build/esm/src/clients/helpers/asset-registry.d.ts.map +1 -0
  147. package/build/esm/src/clients/helpers/asset-registry.js +86 -0
  148. package/build/esm/src/clients/helpers/collateral.d.ts +41 -0
  149. package/build/esm/src/clients/helpers/collateral.d.ts.map +1 -0
  150. package/build/esm/src/clients/helpers/collateral.js +59 -0
  151. package/build/esm/src/clients/modules/get.d.ts +14 -1
  152. package/build/esm/src/clients/modules/get.d.ts.map +1 -1
  153. package/build/esm/src/clients/modules/get.js +23 -2
  154. package/build/esm/src/clients/modules/proto-includes.d.ts +1 -0
  155. package/build/esm/src/clients/modules/proto-includes.d.ts.map +1 -1
  156. package/build/esm/src/clients/modules/proto-includes.js +2 -1
  157. package/build/esm/src/clients/validator-client.d.ts +17 -0
  158. package/build/esm/src/clients/validator-client.d.ts.map +1 -1
  159. package/build/esm/src/clients/validator-client.js +42 -1
  160. package/build/esm/src/index.d.ts +2 -0
  161. package/build/esm/src/index.d.ts.map +1 -1
  162. package/build/esm/src/index.js +4 -1
  163. package/build/esm/src/lib/validation.d.ts +6 -2
  164. package/build/esm/src/lib/validation.d.ts.map +1 -1
  165. package/build/esm/src/lib/validation.js +10 -5
  166. package/build/esm/tsconfig.esm.tsbuildinfo +1 -1
  167. package/package.json +3 -2
@@ -7,7 +7,7 @@ import protobuf from 'protobufjs';
7
7
  import { bigIntToBytes } from '../../lib/helpers';
8
8
  import { PAGE_REQUEST } from '../constants';
9
9
  import { UnexpectedClientError } from '../lib/errors';
10
- import { AffiliateModule, BridgeModule, ClobModule, DistributionModule, FeeTierModule, GovV1Module, PerpetualsModule, PricesModule, ProposalStatus, RateLimitModule, RewardsModule, StakingModule, StatsModule, SubaccountsModule, VaultModule, } from './proto-includes';
10
+ import { AffiliateModule, AssetsModule, BridgeModule, ClobModule, DistributionModule, FeeTierModule, GovV1Module, PerpetualsModule, PricesModule, ProposalStatus, RateLimitModule, RewardsModule, StakingModule, StatsModule, SubaccountsModule, VaultModule, } from './proto-includes';
11
11
  // Required for encoding and decoding queries that are of type Long.
12
12
  // Must be done once but since the individal modules should be usable without
13
13
  // dYdXClient - must be set in each module that encounters encoding/decoding Longs.
@@ -189,6 +189,27 @@ export class Get {
189
189
  const data = await this.sendQuery('/ritbit.prices.Query/MarketPrice', requestData);
190
190
  return PricesModule.QueryMarketPriceResponse.decode(data);
191
191
  }
192
+ /**
193
+ * @description Get all registered Assets (the on-chain asset registry, including
194
+ * collateral metadata: denom, exponents, oracle market and collateral flags).
195
+ *
196
+ * @returns All assets registered in x/assets.
197
+ */
198
+ async getAllAssets() {
199
+ const requestData = Uint8Array.from(AssetsModule.QueryAllAssetsRequest.encode({ pagination: PAGE_REQUEST }).finish());
200
+ const data = await this.sendQuery('/ritbit.assets.Query/AllAssets', requestData);
201
+ return AssetsModule.QueryAllAssetsResponse.decode(data);
202
+ }
203
+ /**
204
+ * @description Get a single Asset by id, or the promise is rejected if none exists.
205
+ *
206
+ * @returns The Asset for a given asset id.
207
+ */
208
+ async getAsset(assetId) {
209
+ const requestData = Uint8Array.from(AssetsModule.QueryAssetRequest.encode({ id: assetId }).finish());
210
+ const data = await this.sendQuery('/ritbit.assets.Query/Asset', requestData);
211
+ return AssetsModule.QueryAssetResponse.decode(data);
212
+ }
192
213
  /**
193
214
  * @description Get all Perpetuals.
194
215
  *
@@ -450,4 +471,4 @@ export class Get {
450
471
  return resp.value;
451
472
  }
452
473
  }
453
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NsaWVudHMvbW9kdWxlcy9nZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUVMLGNBQWMsR0FLZixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFDTCx3QkFBd0IsRUFDeEIseUJBQXlCLEdBQzFCLE1BQU0sdURBQXVELENBQUM7QUFFL0QsT0FBTyxLQUFLLFVBQVUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNyRSxPQUFPLEtBQUssVUFBVSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3JFLE9BQU8sSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUN4QixPQUFPLFFBQVEsTUFBTSxZQUFZLENBQUM7QUFFbEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDNUMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RELE9BQU8sRUFDTCxlQUFlLEVBQ2YsWUFBWSxFQUNaLFVBQVUsRUFDVixrQkFBa0IsRUFDbEIsYUFBYSxFQUNiLFdBQVcsRUFDWCxnQkFBZ0IsRUFDaEIsWUFBWSxFQUNaLGNBQWMsRUFDZCxlQUFlLEVBQ2YsYUFBYSxFQUNiLGFBQWEsRUFDYixXQUFXLEVBQ1gsaUJBQWlCLEVBQ2pCLFdBQVcsR0FDWixNQUFNLGtCQUFrQixDQUFDO0FBRzFCLG9FQUFvRTtBQUNwRSw2RUFBNkU7QUFDN0UsbUZBQW1GO0FBQ25GLGtFQUFrRTtBQUNsRSxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7QUFDMUIsUUFBUSxDQUFDLFNBQVMsRUFBRSxDQUFDO0FBRXJCLE1BQU0sT0FBTyxHQUFHO0lBSWQsWUFDRSxnQkFBa0MsRUFDbEMsbUJBQXNEO1FBRXRELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FB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
474
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NsaWVudHMvbW9kdWxlcy9nZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUVMLGNBQWMsR0FLZixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFDTCx3QkFBd0IsRUFDeEIseUJBQXlCLEdBQzFCLE1BQU0sdURBQXVELENBQUM7QUFFL0QsT0FBTyxLQUFLLFVBQVUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNyRSxPQUFPLEtBQUssVUFBVSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3JFLE9BQU8sSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUN4QixPQUFPLFFBQVEsTUFBTSxZQUFZLENBQUM7QUFFbEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDNUMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RELE9BQU8sRUFDTCxlQUFlLEVBQ2YsWUFBWSxFQUNaLFlBQVksRUFDWixVQUFVLEVBQ1Ysa0JBQWtCLEVBQ2xCLGFBQWEsRUFDYixXQUFXLEVBQ1gsZ0JBQWdCLEVBQ2hCLFlBQVksRUFDWixjQUFjLEVBQ2QsZUFBZSxFQUNmLGFBQWEsRUFDYixhQUFhLEVBQ2IsV0FBVyxFQUNYLGlCQUFpQixFQUNqQixXQUFXLEdBQ1osTUFBTSxrQkFBa0IsQ0FBQztBQUcxQixvRUFBb0U7QUFDcEUsNkVBQTZFO0FBQzdFLG1GQUFtRjtBQUNuRixrRUFBa0U7QUFDbEUsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0FBQzFCLFFBQVEsQ0FBQyxTQUFTLEVBQUUsQ0FBQztBQUVyQixNQUFNLE9BQU8sR0FBRztJQUlkLFlBQ0UsZ0JBQWtDLEVBQ2xDLG1CQUFzRDtRQUV0RCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcs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
@@ -1,5 +1,6 @@
1
1
  export * as GovV1Module from '@ritbit/v4-proto/src/codegen/cosmos/gov/v1/query';
2
2
  export * as StatsModule from '@ritbit/v4-proto/src/codegen/ritbit/stats/query';
3
+ export * as AssetsModule from '@ritbit/v4-proto/src/codegen/ritbit/assets/query';
3
4
  export * as ClobModule from '@ritbit/v4-proto/src/codegen/ritbit/clob/query';
4
5
  export * as PerpetualsModule from '@ritbit/v4-proto/src/codegen/ritbit/perpetuals/query';
5
6
  export * as PricesModule from '@ritbit/v4-proto/src/codegen/ritbit/prices/query';
@@ -1 +1 @@
1
- {"version":3,"file":"proto-includes.d.ts","sourceRoot":"","sources":["../../../../../src/clients/modules/proto-includes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,WAAW,MAAM,kDAAkD,CAAC;AAChF,OAAO,KAAK,WAAW,MAAM,iDAAiD,CAAC;AAE/E,OAAO,KAAK,UAAU,MAAM,gDAAgD,CAAC;AAC7E,OAAO,KAAK,gBAAgB,MAAM,sDAAsD,CAAC;AACzF,OAAO,KAAK,YAAY,MAAM,kDAAkD,CAAC;AACjF,OAAO,KAAK,iBAAiB,MAAM,uDAAuD,CAAC;AAC3F,OAAO,KAAK,aAAa,MAAM,oDAAoD,CAAC;AACpF,OAAO,KAAK,eAAe,MAAM,qDAAqD,CAAC;AACvF,OAAO,KAAK,aAAa,MAAM,mDAAmD,CAAC;AACnF,OAAO,KAAK,aAAa,MAAM,2DAA2D,CAAC;AAC3F,OAAO,KAAK,YAAY,MAAM,kDAAkD,CAAC;AACjF,OAAO,KAAK,kBAAkB,MAAM,gEAAgE,CAAC;AACrG,OAAO,KAAK,eAAe,MAAM,sDAAsD,CAAC;AACxF,OAAO,KAAK,WAAW,MAAM,iDAAiD,CAAC;AAC/E,OAAO,KAAK,aAAa,MAAM,mDAAmD,CAAC;AAInF,OAAO,EAAE,cAAc,EAAE,MAAM,gDAAgD,CAAC;AAChF,cAAc,gDAAgD,CAAC;AAC/D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,6CAA6C,CAAC;AAC5D,cAAc,iDAAiD,CAAC;AAChE,cAAc,mDAAmD,CAAC;AAClE,cAAc,+CAA+C,CAAC;AAC9D,cAAc,kDAAkD,CAAC;AACjE,cAAc,4DAA4D,CAAC;AAC3E,cAAc,gDAAgD,CAAC;AAC/D,cAAc,sDAAsD,CAAC;AACrE,cAAc,oDAAoD,CAAC;AACnE,cAAc,kDAAkD,CAAC;AACjE,cAAc,gDAAgD,CAAC;AAC/D,cAAc,+CAA+C,CAAC"}
1
+ {"version":3,"file":"proto-includes.d.ts","sourceRoot":"","sources":["../../../../../src/clients/modules/proto-includes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,WAAW,MAAM,kDAAkD,CAAC;AAChF,OAAO,KAAK,WAAW,MAAM,iDAAiD,CAAC;AAE/E,OAAO,KAAK,YAAY,MAAM,kDAAkD,CAAC;AACjF,OAAO,KAAK,UAAU,MAAM,gDAAgD,CAAC;AAC7E,OAAO,KAAK,gBAAgB,MAAM,sDAAsD,CAAC;AACzF,OAAO,KAAK,YAAY,MAAM,kDAAkD,CAAC;AACjF,OAAO,KAAK,iBAAiB,MAAM,uDAAuD,CAAC;AAC3F,OAAO,KAAK,aAAa,MAAM,oDAAoD,CAAC;AACpF,OAAO,KAAK,eAAe,MAAM,qDAAqD,CAAC;AACvF,OAAO,KAAK,aAAa,MAAM,mDAAmD,CAAC;AACnF,OAAO,KAAK,aAAa,MAAM,2DAA2D,CAAC;AAC3F,OAAO,KAAK,YAAY,MAAM,kDAAkD,CAAC;AACjF,OAAO,KAAK,kBAAkB,MAAM,gEAAgE,CAAC;AACrG,OAAO,KAAK,eAAe,MAAM,sDAAsD,CAAC;AACxF,OAAO,KAAK,WAAW,MAAM,iDAAiD,CAAC;AAC/E,OAAO,KAAK,aAAa,MAAM,mDAAmD,CAAC;AAInF,OAAO,EAAE,cAAc,EAAE,MAAM,gDAAgD,CAAC;AAChF,cAAc,gDAAgD,CAAC;AAC/D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,6CAA6C,CAAC;AAC5D,cAAc,iDAAiD,CAAC;AAChE,cAAc,mDAAmD,CAAC;AAClE,cAAc,+CAA+C,CAAC;AAC9D,cAAc,kDAAkD,CAAC;AACjE,cAAc,4DAA4D,CAAC;AAC3E,cAAc,gDAAgD,CAAC;AAC/D,cAAc,sDAAsD,CAAC;AACrE,cAAc,oDAAoD,CAAC;AACnE,cAAc,kDAAkD,CAAC;AACjE,cAAc,gDAAgD,CAAC;AAC/D,cAAc,+CAA+C,CAAC"}
@@ -1,5 +1,6 @@
1
1
  export * as GovV1Module from '@ritbit/v4-proto/src/codegen/cosmos/gov/v1/query';
2
2
  export * as StatsModule from '@ritbit/v4-proto/src/codegen/ritbit/stats/query';
3
+ export * as AssetsModule from '@ritbit/v4-proto/src/codegen/ritbit/assets/query';
3
4
  export * as ClobModule from '@ritbit/v4-proto/src/codegen/ritbit/clob/query';
4
5
  export * as PerpetualsModule from '@ritbit/v4-proto/src/codegen/ritbit/perpetuals/query';
5
6
  export * as PricesModule from '@ritbit/v4-proto/src/codegen/ritbit/prices/query';
@@ -30,4 +31,4 @@ export * from '@ritbit/v4-proto/src/codegen/ritbit/assets/genesis';
30
31
  export * from '@ritbit/v4-proto/src/codegen/ritbit/assets/asset';
31
32
  export * from '@ritbit/v4-proto/src/codegen/ritbit/listing/tx';
32
33
  export * from '@ritbit/v4-proto/src/codegen/ritbit/bridge/tx';
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdG8taW5jbHVkZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY2xpZW50cy9tb2R1bGVzL3Byb3RvLWluY2x1ZGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxXQUFXLE1BQU0sa0RBQWtELENBQUM7QUFDaEYsT0FBTyxLQUFLLFdBQVcsTUFBTSxpREFBaUQsQ0FBQztBQUUvRSxPQUFPLEtBQUssVUFBVSxNQUFNLGdEQUFnRCxDQUFDO0FBQzdFLE9BQU8sS0FBSyxnQkFBZ0IsTUFBTSxzREFBc0QsQ0FBQztBQUN6RixPQUFPLEtBQUssWUFBWSxNQUFNLGtEQUFrRCxDQUFDO0FBQ2pGLE9BQU8sS0FBSyxpQkFBaUIsTUFBTSx1REFBdUQsQ0FBQztBQUMzRixPQUFPLEtBQUssYUFBYSxNQUFNLG9EQUFvRCxDQUFDO0FBQ3BGLE9BQU8sS0FBSyxlQUFlLE1BQU0scURBQXFELENBQUM7QUFDdkYsT0FBTyxLQUFLLGFBQWEsTUFBTSxtREFBbUQsQ0FBQztBQUNuRixPQUFPLEtBQUssYUFBYSxNQUFNLDJEQUEyRCxDQUFDO0FBQzNGLE9BQU8sS0FBSyxZQUFZLE1BQU0sa0RBQWtELENBQUM7QUFDakYsT0FBTyxLQUFLLGtCQUFrQixNQUFNLGdFQUFnRSxDQUFDO0FBQ3JHLE9BQU8sS0FBSyxlQUFlLE1BQU0sc0RBQXNELENBQUM7QUFDeEYsT0FBTyxLQUFLLFdBQVcsTUFBTSxpREFBaUQsQ0FBQztBQUMvRSxPQUFPLEtBQUssYUFBYSxNQUFNLG1EQUFtRCxDQUFDO0FBRW5GLGlGQUFpRjtBQUNqRiw4RUFBOEU7QUFDOUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ2hGLGNBQWMsZ0RBQWdELENBQUM7QUFDL0QsY0FBYyxnREFBZ0QsQ0FBQztBQUMvRCxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYyxtREFBbUQsQ0FBQztBQUNsRSxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsa0RBQWtELENBQUM7QUFDakUsY0FBYyw0REFBNEQsQ0FBQztBQUMzRSxjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMsc0RBQXNELENBQUM7QUFDckUsY0FBYyxvREFBb0QsQ0FBQztBQUNuRSxjQUFjLGtEQUFrRCxDQUFDO0FBQ2pFLGNBQWMsZ0RBQWdELENBQUM7QUFDL0QsY0FBYywrQ0FBK0MsQ0FBQyJ9
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdG8taW5jbHVkZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY2xpZW50cy9tb2R1bGVzL3Byb3RvLWluY2x1ZGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxXQUFXLE1BQU0sa0RBQWtELENBQUM7QUFDaEYsT0FBTyxLQUFLLFdBQVcsTUFBTSxpREFBaUQsQ0FBQztBQUUvRSxPQUFPLEtBQUssWUFBWSxNQUFNLGtEQUFrRCxDQUFDO0FBQ2pGLE9BQU8sS0FBSyxVQUFVLE1BQU0sZ0RBQWdELENBQUM7QUFDN0UsT0FBTyxLQUFLLGdCQUFnQixNQUFNLHNEQUFzRCxDQUFDO0FBQ3pGLE9BQU8sS0FBSyxZQUFZLE1BQU0sa0RBQWtELENBQUM7QUFDakYsT0FBTyxLQUFLLGlCQUFpQixNQUFNLHVEQUF1RCxDQUFDO0FBQzNGLE9BQU8sS0FBSyxhQUFhLE1BQU0sb0RBQW9ELENBQUM7QUFDcEYsT0FBTyxLQUFLLGVBQWUsTUFBTSxxREFBcUQsQ0FBQztBQUN2RixPQUFPLEtBQUssYUFBYSxNQUFNLG1EQUFtRCxDQUFDO0FBQ25GLE9BQU8sS0FBSyxhQUFhLE1BQU0sMkRBQTJELENBQUM7QUFDM0YsT0FBTyxLQUFLLFlBQVksTUFBTSxrREFBa0QsQ0FBQztBQUNqRixPQUFPLEtBQUssa0JBQWtCLE1BQU0sZ0VBQWdFLENBQUM7QUFDckcsT0FBTyxLQUFLLGVBQWUsTUFBTSxzREFBc0QsQ0FBQztBQUN4RixPQUFPLEtBQUssV0FBVyxNQUFNLGlEQUFpRCxDQUFDO0FBQy9FLE9BQU8sS0FBSyxhQUFhLE1BQU0sbURBQW1ELENBQUM7QUFFbkYsaUZBQWlGO0FBQ2pGLDhFQUE4RTtBQUM5RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDaEYsY0FBYyxnREFBZ0QsQ0FBQztBQUMvRCxjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLG1EQUFtRCxDQUFDO0FBQ2xFLGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYyxrREFBa0QsQ0FBQztBQUNqRSxjQUFjLDREQUE0RCxDQUFDO0FBQzNFLGNBQWMsZ0RBQWdELENBQUM7QUFDL0QsY0FBYyxzREFBc0QsQ0FBQztBQUNyRSxjQUFjLG9EQUFvRCxDQUFDO0FBQ25FLGNBQWMsa0RBQWtELENBQUM7QUFDakUsY0FBYyxnREFBZ0QsQ0FBQztBQUMvRCxjQUFjLCtDQUErQyxDQUFDIn0=
@@ -1,10 +1,14 @@
1
1
  import { ValidatorConfig, SelectedGasDenom } from './constants';
2
+ import { AssetRegistry } from './helpers/asset-registry';
3
+ import { PriceMap } from './helpers/collateral';
2
4
  import { Get } from './modules/get';
3
5
  import { Post } from './modules/post';
4
6
  export declare class ValidatorClient {
5
7
  readonly config: ValidatorConfig;
6
8
  private _get?;
7
9
  private _post?;
10
+ private _assetRegistry;
11
+ private _priceMap;
8
12
  /**
9
13
  * @description Connect to a validator client
10
14
  *
@@ -24,6 +28,19 @@ export declare class ValidatorClient {
24
28
  * @returns The transaction module
25
29
  */
26
30
  get post(): Post;
31
+ /**
32
+ * @description The on-chain asset registry (collateral metadata), fetched at connect.
33
+ */
34
+ get assetRegistry(): AssetRegistry;
35
+ /**
36
+ * @description Latest oracle prices by market id, fetched at connect. Used to value
37
+ * non-settle collateral (e.g. RUB1) into USD shards.
38
+ */
39
+ get priceMap(): PriceMap;
40
+ /** @description Re-fetch and cache the on-chain asset registry. */
41
+ refreshAssets(): Promise<void>;
42
+ /** @description Re-fetch and cache oracle prices for all markets. */
43
+ refreshPrices(): Promise<void>;
27
44
  get selectedGasDenom(): SelectedGasDenom | undefined;
28
45
  setSelectedGasDenom(gasDenom: SelectedGasDenom): void;
29
46
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"validator-client.d.ts","sourceRoot":"","sources":["../../../../src/clients/validator-client.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,eAAe,EAGf,gBAAgB,EACjB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAUtC,qBAAa,eAAe;IAC1B,SAAgB,MAAM,EAAE,eAAe,CAAC;IACxC,OAAO,CAAC,IAAI,CAAC,CAAM;IACnB,OAAO,CAAC,KAAK,CAAC,CAAO;IAErB;;;;OAIG;WACU,OAAO,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;IAMvE,OAAO;IAIP;;;;OAIG;IACH,IAAI,GAAG,IAAI,GAAG,CAEb;IAED;;;;OAIG;IACH,IAAI,IAAI,IAAI,IAAI,CAEf;IAED,IAAI,gBAAgB,IAAI,gBAAgB,GAAG,SAAS,CAGnD;IAED,mBAAmB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI;IAMrD;;;OAGG;IACG,0BAA0B,CAC9B,OAAO,EAAE,MAAM,GACd,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;YAK7B,UAAU;CAuBzB"}
1
+ {"version":3,"file":"validator-client.d.ts","sourceRoot":"","sources":["../../../../src/clients/validator-client.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,eAAe,EAGf,gBAAgB,EACjB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAiB,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAUtC,qBAAa,eAAe;IAC1B,SAAgB,MAAM,EAAE,eAAe,CAAC;IACxC,OAAO,CAAC,IAAI,CAAC,CAAM;IACnB,OAAO,CAAC,KAAK,CAAC,CAAO;IAIrB,OAAO,CAAC,cAAc,CAA2C;IACjE,OAAO,CAAC,SAAS,CAAuB;IAExC;;;;OAIG;WACU,OAAO,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;IAMvE,OAAO;IAIP;;;;OAIG;IACH,IAAI,GAAG,IAAI,GAAG,CAEb;IAED;;;;OAIG;IACH,IAAI,IAAI,IAAI,IAAI,CAEf;IAED;;OAEG;IACH,IAAI,aAAa,IAAI,aAAa,CAEjC;IAED;;;OAGG;IACH,IAAI,QAAQ,IAAI,QAAQ,CAEvB;IAED,mEAAmE;IAC7D,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAKpC,qEAAqE;IAC/D,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAKpC,IAAI,gBAAgB,IAAI,gBAAgB,GAAG,SAAS,CAGnD;IAED,mBAAmB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI;IAMrD;;;OAGG;IACG,0BAA0B,CAC9B,OAAO,EAAE,MAAM,GACd,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;YAK7B,UAAU;CAmCzB"}
@@ -3,6 +3,8 @@ import { Tendermint37Client } from '@cosmjs/tendermint-rpc';
3
3
  import Long from 'long';
4
4
  import protobuf from 'protobufjs';
5
5
  import { BROADCAST_POLL_INTERVAL_MS, BROADCAST_TIMEOUT_MS, } from './constants';
6
+ import { AssetRegistry } from './helpers/asset-registry';
7
+ import { buildPriceMap } from './helpers/collateral';
6
8
  import { Get } from './modules/get';
7
9
  import { Post } from './modules/post';
8
10
  import { TendermintClient } from './modules/tendermintClient';
@@ -24,6 +26,11 @@ export class ValidatorClient {
24
26
  return client;
25
27
  }
26
28
  constructor(config) {
29
+ // On-chain asset registry + oracle prices, fetched at connect for the
30
+ // dual / multi-asset collateral model. Falls back to the canonical
31
+ // USDC + RUB1 set if the chain queries fail at connect.
32
+ this._assetRegistry = AssetRegistry.fallback();
33
+ this._priceMap = new Map();
27
34
  this.config = config;
28
35
  }
29
36
  /**
@@ -42,6 +49,29 @@ export class ValidatorClient {
42
49
  get post() {
43
50
  return this._post;
44
51
  }
52
+ /**
53
+ * @description The on-chain asset registry (collateral metadata), fetched at connect.
54
+ */
55
+ get assetRegistry() {
56
+ return this._assetRegistry;
57
+ }
58
+ /**
59
+ * @description Latest oracle prices by market id, fetched at connect. Used to value
60
+ * non-settle collateral (e.g. RUB1) into USD shards.
61
+ */
62
+ get priceMap() {
63
+ return this._priceMap;
64
+ }
65
+ /** @description Re-fetch and cache the on-chain asset registry. */
66
+ async refreshAssets() {
67
+ const response = await this.get.getAllAssets();
68
+ this._assetRegistry = AssetRegistry.fromAssets(response.asset);
69
+ }
70
+ /** @description Re-fetch and cache oracle prices for all markets. */
71
+ async refreshPrices() {
72
+ const response = await this.get.getAllPrices();
73
+ this._priceMap = buildPriceMap(response);
74
+ }
45
75
  get selectedGasDenom() {
46
76
  if (!this._post)
47
77
  return undefined;
@@ -70,6 +100,17 @@ export class ValidatorClient {
70
100
  const queryClient = QueryClient.withExtensions(tendermint37Client, setupTxExtension);
71
101
  this._get = new Get(tendermintClient, queryClient);
72
102
  this._post = new Post(this._get, this.config.chainId, this.config.denoms, this.config.defaultClientMemo, this.config.useTimestampNonce, this.config.timestampNonceOffsetMs);
103
+ // Pull the asset registry + oracle prices from chain (dual/multi-asset
104
+ // collateral). Non-fatal: keep the fallback registry on failure so a
105
+ // transient query error does not block connecting.
106
+ await Promise.all([
107
+ this.refreshAssets().catch((error) => {
108
+ console.warn('ValidatorClient: failed to fetch asset registry, using fallback', error);
109
+ }),
110
+ this.refreshPrices().catch((error) => {
111
+ console.warn('ValidatorClient: failed to fetch oracle prices, using empty price map', error);
112
+ }),
113
+ ]);
73
114
  }
74
115
  }
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9yLWNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jbGllbnRzL3ZhbGlkYXRvci1jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBZSxnQkFBZ0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzlFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUN4QixPQUFPLFFBQVEsTUFBTSxZQUFZLENBQUM7QUFFbEMsT0FBTyxFQUVMLDBCQUEwQixFQUMxQixvQkFBb0IsR0FFckIsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFOUQsb0VBQW9FO0FBQ3BFLHFFQUFxRTtBQUNyRSx3RUFBd0U7QUFDeEUsa0VBQWtFO0FBQ2xFLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztBQUMxQixRQUFRLENBQUMsU0FBUyxFQUFFLENBQUM7QUFFckIsTUFBTSxPQUFPLGVBQWU7SUFLMUI7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQXVCO1FBQzFDLE1BQU0sTUFBTSxHQUFHLElBQUksZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzNDLE1BQU0sTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQzFCLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxZQUFvQixNQUF1QjtRQUN6QyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILElBQUksR0FBRztRQUNMLE9BQU8sSUFBSSxDQUFDLElBQUssQ0FBQztJQUNwQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILElBQUksSUFBSTtRQUNOLE9BQU8sSUFBSSxDQUFDLEtBQU0sQ0FBQztJQUNyQixDQUFDO0lBRUQsSUFBSSxnQkFBZ0I7UUFDbEIsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLO1lBQUUsT0FBTyxTQUFTLENBQUM7UUFDbEMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDO0lBQ3JDLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxRQUEwQjtRQUM1QyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUs7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLDZCQUE2QixDQUFDLENBQUM7UUFFaEUsSUFBSSxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLDBCQUEwQixDQUM5QixPQUFlO1FBRWYsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1FBQ2hFLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRU8sS0FBSyxDQUFDLFVBQVU7UUFDdEIsTUFBTSxrQkFBa0IsR0FBdUIsTUFBTSxrQkFBa0IsQ0FBQyxPQUFPLENBQzdFLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUN6QixDQUFDO1FBRUYsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLGdCQUFnQixDQUFDLGtCQUFrQixFQUFFO1lBQ2hFLHVCQUF1QixFQUFFLDBCQUEwQjtZQUNuRCxrQkFBa0IsRUFBRSxvQkFBb0I7U0FDekMsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxXQUFXLEdBQThCLFdBQVcsQ0FBQyxjQUFjLENBQ3ZFLGtCQUFrQixFQUNsQixnQkFBZ0IsQ0FDakIsQ0FBQztRQUNGLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsZ0JBQWdCLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLElBQUksQ0FDbkIsSUFBSSxDQUFDLElBQUssRUFDVixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFDbkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQ2xCLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLEVBQzdCLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLEVBQzdCLElBQUksQ0FBQyxNQUFNLENBQUMsc0JBQXNCLENBQ25DLENBQUM7SUFDSixDQUFDO0NBQ0YifQ==
116
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9yLWNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jbGllbnRzL3ZhbGlkYXRvci1jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBZSxnQkFBZ0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzlFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUN4QixPQUFPLFFBQVEsTUFBTSxZQUFZLENBQUM7QUFFbEMsT0FBTyxFQUVMLDBCQUEwQixFQUMxQixvQkFBb0IsR0FFckIsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxhQUFhLEVBQVksTUFBTSxzQkFBc0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUU5RCxvRUFBb0U7QUFDcEUscUVBQXFFO0FBQ3JFLHdFQUF3RTtBQUN4RSxrRUFBa0U7QUFDbEUsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0FBQzFCLFFBQVEsQ0FBQyxTQUFTLEVBQUUsQ0FBQztBQUVyQixNQUFNLE9BQU8sZUFBZTtJQVUxQjs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBdUI7UUFDMUMsTUFBTSxNQUFNLEdBQUcsSUFBSSxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDM0MsTUFBTSxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDMUIsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVE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
@@ -14,4 +14,6 @@ export { SubaccountInfo as SubaccountClient, SubaccountInfo } from './clients/su
14
14
  export { ValidatorClient } from './clients/validator-client';
15
15
  export { encodeJson, ByteArrayEncoding } from './lib/helpers';
16
16
  export { NetworkOptimizer } from './network_optimizer';
17
+ export * from './clients/helpers/asset-registry';
18
+ export * from './clients/helpers/collateral';
17
19
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AACA,cAAc,SAAS,CAAC;AAGxB,OAAO,KAAK,OAAO,MAAM,eAAe,CAAC;AACzC,OAAO,KAAK,UAAU,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,eAAe,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,KAAK,MAAM,aAAa,CAAC;AACrC,OAAO,KAAK,UAAU,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,cAAc,IAAI,gBAAgB,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC1F,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AACA,cAAc,SAAS,CAAC;AAGxB,OAAO,KAAK,OAAO,MAAM,eAAe,CAAC;AACzC,OAAO,KAAK,UAAU,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,eAAe,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,KAAK,MAAM,aAAa,CAAC;AACrC,OAAO,KAAK,UAAU,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,cAAc,IAAI,gBAAgB,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC1F,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAGvD,cAAc,kCAAkC,CAAC;AACjD,cAAc,8BAA8B,CAAC"}
@@ -16,4 +16,7 @@ export { SubaccountInfo as SubaccountClient, SubaccountInfo } from './clients/su
16
16
  export { ValidatorClient } from './clients/validator-client';
17
17
  export { encodeJson, ByteArrayEncoding } from './lib/helpers';
18
18
  export { NetworkOptimizer } from './network_optimizer';
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsU0FBUztBQUNULGNBQWMsU0FBUyxDQUFDO0FBRXhCLHFCQUFxQjtBQUNyQixPQUFPLEtBQUssT0FBTyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEtBQUssVUFBVSxNQUFNLGtCQUFrQixDQUFDO0FBQy9DLE9BQU8sS0FBSyxlQUFlLE1BQU0seUJBQXlCLENBQUM7QUFDM0QsT0FBTyxLQUFLLEtBQUssTUFBTSxhQUFhLENBQUM7QUFDckMsT0FBTyxLQUFLLFVBQVUsTUFBTSxrQkFBa0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsT0FBTyxJQUFJLFdBQVcsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsSUFBSSxnQkFBZ0IsRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQyJ9
19
+ // Dual / multi-asset collateral helpers.
20
+ export * from './clients/helpers/asset-registry';
21
+ export * from './clients/helpers/collateral';
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsU0FBUztBQUNULGNBQWMsU0FBUyxDQUFDO0FBRXhCLHFCQUFxQjtBQUNyQixPQUFPLEtBQUssT0FBTyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEtBQUssVUFBVSxNQUFNLGtCQUFrQixDQUFDO0FBQy9DLE9BQU8sS0FBSyxlQUFlLE1BQU0seUJBQXlCLENBQUM7QUFDM0QsT0FBTyxLQUFLLEtBQUssTUFBTSxhQUFhLENBQUM7QUFDckMsT0FBTyxLQUFLLFVBQVUsTUFBTSxrQkFBa0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsT0FBTyxJQUFJLFdBQVcsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsSUFBSSxnQkFBZ0IsRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV2RCx5Q0FBeUM7QUFDekMsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLDhCQUE4QixDQUFDIn0=
@@ -1,3 +1,4 @@
1
+ import { AssetRegistry } from '../clients/helpers/asset-registry';
1
2
  import { MsgTransfer, OrderFlags, ICancelOrder, IPlaceOrder, IBatchCancelOrder } from '../clients/types';
2
3
  import { UserError } from './errors';
3
4
  /**
@@ -17,9 +18,12 @@ export declare function validateCancelOrderMessage(subaccountNumber: number, ord
17
18
  export declare function validateBatchCancelOrderMessage(subaccountNumber: number, orders: IBatchCancelOrder): UserError | undefined;
18
19
  /**
19
20
  * @describe validateTransferMessage validates that a transfer to place has fields that would be
20
- * valid on-chain.
21
+ * valid on-chain. The asset is validated against the on-chain asset registry
22
+ * (fetched via `getAllAssets` and exposed as `validatorClient.assetRegistry`), so any
23
+ * registered collateral asset (e.g. USDC id 0, RUB1 id 2) is accepted and unknown
24
+ * asset ids are rejected. Final collateral-eligibility is enforced on-chain (ante).
21
25
  */
22
- export declare function validateTransferMessage(transfer: MsgTransfer): UserError | undefined;
26
+ export declare function validateTransferMessage(transfer: MsgTransfer, assetRegistry: AssetRegistry): UserError | undefined;
23
27
  export declare function verifyOrderFlags(orderFlags: OrderFlags): boolean;
24
28
  export declare function isStatefulOrder(orderFlags: OrderFlags): boolean;
25
29
  export declare function isValidAddress(address: string): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../../src/lib/validation.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,WAAW,EACX,UAAU,EACV,YAAY,EACZ,WAAW,EACX,iBAAiB,EAClB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,gBAAgB,EAAE,MAAM,EACxB,KAAK,EAAE,WAAW,GACjB,SAAS,GAAG,SAAS,CAyBvB;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CACxC,gBAAgB,EAAE,MAAM,EACxB,KAAK,EAAE,YAAY,GAClB,SAAS,GAAG,SAAS,CA6BvB;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,CAC7C,gBAAgB,EAAE,MAAM,EACxB,MAAM,EAAE,iBAAiB,GACxB,SAAS,GAAG,SAAS,CAoBvB;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,WAAW,GAAG,SAAS,GAAG,SAAS,CA2BpF;AA0BD,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAMhE;AAED,wBAAgB,eAAe,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAE/D;AAYD,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAGvD"}
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../../src/lib/validation.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EACL,WAAW,EACX,UAAU,EACV,YAAY,EACZ,WAAW,EACX,iBAAiB,EAClB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,gBAAgB,EAAE,MAAM,EACxB,KAAK,EAAE,WAAW,GACjB,SAAS,GAAG,SAAS,CAyBvB;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CACxC,gBAAgB,EAAE,MAAM,EACxB,KAAK,EAAE,YAAY,GAClB,SAAS,GAAG,SAAS,CA6BvB;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,CAC7C,gBAAgB,EAAE,MAAM,EACxB,MAAM,EAAE,iBAAiB,GACxB,SAAS,GAAG,SAAS,CAoBvB;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,WAAW,EACrB,aAAa,EAAE,aAAa,GAC3B,SAAS,GAAG,SAAS,CA6BvB;AA0BD,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAMhE;AAED,wBAAgB,eAAe,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAE/D;AAYD,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAGvD"}
@@ -75,17 +75,22 @@ export function validateBatchCancelOrderMessage(subaccountNumber, orders) {
75
75
  }
76
76
  /**
77
77
  * @describe validateTransferMessage validates that a transfer to place has fields that would be
78
- * valid on-chain.
78
+ * valid on-chain. The asset is validated against the on-chain asset registry
79
+ * (fetched via `getAllAssets` and exposed as `validatorClient.assetRegistry`), so any
80
+ * registered collateral asset (e.g. USDC id 0, RUB1 id 2) is accepted and unknown
81
+ * asset ids are rejected. Final collateral-eligibility is enforced on-chain (ante).
79
82
  */
80
- export function validateTransferMessage(transfer) {
83
+ export function validateTransferMessage(transfer, assetRegistry) {
81
84
  if (!verifySubaccountNumber(transfer.sender.number || 0)) {
82
85
  return new UserError(`senderSubaccountNumber: ${transfer.sender.number || 0} cannot be < 0 or > ${MAX_SUBACCOUNT_NUMBER}`);
83
86
  }
84
87
  if (!verifySubaccountNumber(transfer.recipient.number || 0)) {
85
88
  return new UserError(`recipientSubaccountNumber: ${transfer.recipient.number || 0} cannot be < 0 or > ${MAX_SUBACCOUNT_NUMBER}`);
86
89
  }
87
- if (transfer.assetId !== 0) {
88
- return new UserError(`asset id: ${transfer.assetId} not supported`);
90
+ // The asset must be a registered chain asset (fetched into the registry from
91
+ // getAllAssets). Collateral eligibility itself is enforced on-chain (ante decorator).
92
+ if (assetRegistry.get(transfer.assetId) === undefined) {
93
+ return new UserError(`asset id: ${transfer.assetId} is not a registered chain asset`);
89
94
  }
90
95
  if (transfer.amount.lessThanOrEqual(Long.ZERO)) {
91
96
  return new UserError(`amount: ${transfer.amount} cannot be <= 0`);
@@ -135,4 +140,4 @@ export function isValidAddress(address) {
135
140
  // An address is valid if it starts with the BECH32 prefix and is Bech32 format.
136
141
  return address.startsWith(BECH32_PREFIX + '1') && verifyIsBech32(address) === undefined;
137
142
  }
138
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmFsaWRhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ2hDLE9BQU8sSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUV4QixPQUFPLEVBQUUsYUFBYSxFQUFFLHFCQUFxQixFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pGLE9BQU8sRUFFTCxVQUFVLEdBSVgsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRXJDOzs7R0FHRztBQUNILE1BQU0sVUFBVSx5QkFBeUIsQ0FDdkMsZ0JBQXdCLEVBQ3hCLEtBQWtCO0lBRWxCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztRQUMxQyxPQUFPLElBQUksU0FBUyxDQUFDLGFBQWEsS0FBSyxDQUFDLFFBQVEsd0JBQXdCLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBQ0QsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUM5QyxPQUFPLElBQUksU0FBUyxDQUFDLGFBQWEsS0FBSyxDQUFDLFFBQVEsaUJBQWlCLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBQ0QsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUM5QyxPQUFPLElBQUksU0FBUyxDQUFDLGFBQWEsS0FBSyxDQUFDLFFBQVEsaUJBQWlCLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBQ0QsSUFBSSxDQUFDLHNCQUFzQixDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQztRQUM5QyxPQUFPLElBQUksU0FBUyxDQUNsQixx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
143
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmFsaWRhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ2hDLE9BQU8sSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUV4QixPQUFPLEVBQUUsYUFBYSxFQUFFLHFCQUFxQixFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXpGLE9BQU8sRUFFTCxVQUFVLEdBSVgsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRXJDOzs7R0FHRztBQUNILE1BQU0sVUFBVSx5QkFBeUIsQ0FDdkMsZ0JBQXdCLEVBQ3hCLEtBQWtCO0lBRWxCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztRQUMxQyxPQUFPLElBQUksU0FBUyxDQUFDLGFBQWEsS0FBSyxDQUFDLFFBQVEsd0JBQXdCLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBQ0QsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUM5QyxPQUFPLElBQUksU0FBUyxDQUFDLGFBQWEsS0FBSyxDQUFDLFFBQVEsaUJBQWlCLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBQ0QsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUM5QyxPQUFPLElBQUksU0FBUyxDQUFDLGFBQWEsS0FBSyxDQUFDLFFBQVEsaUJBQWlCLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBQ0QsSUFBSSxDQUFDLHNCQUFzQixDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQztRQUM5QyxPQUFPLElBQUksU0FBUyxDQUNsQixx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