@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
@@ -36,9 +36,10 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
36
36
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.ProposalStatus = exports.ListingModule = exports.VaultModule = exports.AffiliateModule = exports.DistributionModule = exports.BridgeModule = exports.StakingModule = exports.RewardsModule = exports.RateLimitModule = exports.FeeTierModule = exports.SubaccountsModule = exports.PricesModule = exports.PerpetualsModule = exports.ClobModule = exports.StatsModule = exports.GovV1Module = void 0;
39
+ exports.ProposalStatus = exports.ListingModule = exports.VaultModule = exports.AffiliateModule = exports.DistributionModule = exports.BridgeModule = exports.StakingModule = exports.RewardsModule = exports.RateLimitModule = exports.FeeTierModule = exports.SubaccountsModule = exports.PricesModule = exports.PerpetualsModule = exports.ClobModule = exports.AssetsModule = exports.StatsModule = exports.GovV1Module = void 0;
40
40
  exports.GovV1Module = __importStar(require("@ritbit/v4-proto/src/codegen/cosmos/gov/v1/query"));
41
41
  exports.StatsModule = __importStar(require("@ritbit/v4-proto/src/codegen/ritbit/stats/query"));
42
+ exports.AssetsModule = __importStar(require("@ritbit/v4-proto/src/codegen/ritbit/assets/query"));
42
43
  exports.ClobModule = __importStar(require("@ritbit/v4-proto/src/codegen/ritbit/clob/query"));
43
44
  exports.PerpetualsModule = __importStar(require("@ritbit/v4-proto/src/codegen/ritbit/perpetuals/query"));
44
45
  exports.PricesModule = __importStar(require("@ritbit/v4-proto/src/codegen/ritbit/prices/query"));
@@ -70,4 +71,4 @@ __exportStar(require("@ritbit/v4-proto/src/codegen/ritbit/assets/genesis"), expo
70
71
  __exportStar(require("@ritbit/v4-proto/src/codegen/ritbit/assets/asset"), exports);
71
72
  __exportStar(require("@ritbit/v4-proto/src/codegen/ritbit/listing/tx"), exports);
72
73
  __exportStar(require("@ritbit/v4-proto/src/codegen/ritbit/bridge/tx"), exports);
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdG8taW5jbHVkZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY2xpZW50cy9tb2R1bGVzL3Byb3RvLWluY2x1ZGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGdHQUFnRjtBQUNoRiwrRkFBK0U7QUFFL0UsNkZBQTZFO0FBQzdFLHlHQUF5RjtBQUN6RixpR0FBaUY7QUFDakYsMkdBQTJGO0FBQzNGLG9HQUFvRjtBQUNwRix1R0FBdUY7QUFDdkYsbUdBQW1GO0FBQ25GLDJHQUEyRjtBQUMzRixpR0FBaUY7QUFDakYscUhBQXFHO0FBQ3JHLHdHQUF3RjtBQUN4RiwrRkFBK0U7QUFDL0UsbUdBQW1GO0FBRW5GLGlGQUFpRjtBQUNqRiw4RUFBOEU7QUFDOUUsc0VBQWdGO0FBQXZFLHFHQUFBLGNBQWMsT0FBQTtBQUN2QixpRkFBK0Q7QUFDL0QsaUZBQStEO0FBQy9ELDhFQUE0RDtBQUM1RCxrRkFBZ0U7QUFDaEUsb0ZBQWtFO0FBQ2xFLGdGQUE4RDtBQUM5RCxtRkFBaUU7QUFDakUsNkZBQTJFO0FBQzNFLGlGQUErRDtBQUMvRCx1RkFBcUU7QUFDckUscUZBQW1FO0FBQ25FLG1GQUFpRTtBQUNqRSxpRkFBK0Q7QUFDL0QsZ0ZBQThEIn0=
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdG8taW5jbHVkZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY2xpZW50cy9tb2R1bGVzL3Byb3RvLWluY2x1ZGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGdHQUFnRjtBQUNoRiwrRkFBK0U7QUFFL0UsaUdBQWlGO0FBQ2pGLDZGQUE2RTtBQUM3RSx5R0FBeUY7QUFDekYsaUdBQWlGO0FBQ2pGLDJHQUEyRjtBQUMzRixvR0FBb0Y7QUFDcEYsdUdBQXVGO0FBQ3ZGLG1HQUFtRjtBQUNuRiwyR0FBMkY7QUFDM0YsaUdBQWlGO0FBQ2pGLHFIQUFxRztBQUNyRyx3R0FBd0Y7QUFDeEYsK0ZBQStFO0FBQy9FLG1HQUFtRjtBQUVuRixpRkFBaUY7QUFDakYsOEVBQThFO0FBQzlFLHNFQUFnRjtBQUF2RSxxR0FBQSxjQUFjLE9BQUE7QUFDdkIsaUZBQStEO0FBQy9ELGlGQUErRDtBQUMvRCw4RUFBNEQ7QUFDNUQsa0ZBQWdFO0FBQ2hFLG9GQUFrRTtBQUNsRSxnRkFBOEQ7QUFDOUQsbUZBQWlFO0FBQ2pFLDZGQUEyRTtBQUMzRSxpRkFBK0Q7QUFDL0QsdUZBQXFFO0FBQ3JFLHFGQUFtRTtBQUNuRSxtRkFBaUU7QUFDakUsaUZBQStEO0FBQy9ELGdGQUE4RCJ9
@@ -9,6 +9,8 @@ const tendermint_rpc_1 = require("@cosmjs/tendermint-rpc");
9
9
  const long_1 = __importDefault(require("long"));
10
10
  const protobufjs_1 = __importDefault(require("protobufjs"));
11
11
  const constants_1 = require("./constants");
12
+ const asset_registry_1 = require("./helpers/asset-registry");
13
+ const collateral_1 = require("./helpers/collateral");
12
14
  const get_1 = require("./modules/get");
13
15
  const post_1 = require("./modules/post");
14
16
  const tendermintClient_1 = require("./modules/tendermintClient");
@@ -30,6 +32,11 @@ class ValidatorClient {
30
32
  return client;
31
33
  }
32
34
  constructor(config) {
35
+ // On-chain asset registry + oracle prices, fetched at connect for the
36
+ // dual / multi-asset collateral model. Falls back to the canonical
37
+ // USDC + RUB1 set if the chain queries fail at connect.
38
+ this._assetRegistry = asset_registry_1.AssetRegistry.fallback();
39
+ this._priceMap = new Map();
33
40
  this.config = config;
34
41
  }
35
42
  /**
@@ -48,6 +55,29 @@ class ValidatorClient {
48
55
  get post() {
49
56
  return this._post;
50
57
  }
58
+ /**
59
+ * @description The on-chain asset registry (collateral metadata), fetched at connect.
60
+ */
61
+ get assetRegistry() {
62
+ return this._assetRegistry;
63
+ }
64
+ /**
65
+ * @description Latest oracle prices by market id, fetched at connect. Used to value
66
+ * non-settle collateral (e.g. RUB1) into USD shards.
67
+ */
68
+ get priceMap() {
69
+ return this._priceMap;
70
+ }
71
+ /** @description Re-fetch and cache the on-chain asset registry. */
72
+ async refreshAssets() {
73
+ const response = await this.get.getAllAssets();
74
+ this._assetRegistry = asset_registry_1.AssetRegistry.fromAssets(response.asset);
75
+ }
76
+ /** @description Re-fetch and cache oracle prices for all markets. */
77
+ async refreshPrices() {
78
+ const response = await this.get.getAllPrices();
79
+ this._priceMap = (0, collateral_1.buildPriceMap)(response);
80
+ }
51
81
  get selectedGasDenom() {
52
82
  if (!this._post)
53
83
  return undefined;
@@ -76,7 +106,18 @@ class ValidatorClient {
76
106
  const queryClient = stargate_1.QueryClient.withExtensions(tendermint37Client, stargate_1.setupTxExtension);
77
107
  this._get = new get_1.Get(tendermintClient, queryClient);
78
108
  this._post = new post_1.Post(this._get, this.config.chainId, this.config.denoms, this.config.defaultClientMemo, this.config.useTimestampNonce, this.config.timestampNonceOffsetMs);
109
+ // Pull the asset registry + oracle prices from chain (dual/multi-asset
110
+ // collateral). Non-fatal: keep the fallback registry on failure so a
111
+ // transient query error does not block connecting.
112
+ await Promise.all([
113
+ this.refreshAssets().catch((error) => {
114
+ console.warn('ValidatorClient: failed to fetch asset registry, using fallback', error);
115
+ }),
116
+ this.refreshPrices().catch((error) => {
117
+ console.warn('ValidatorClient: failed to fetch oracle prices, using empty price map', error);
118
+ }),
119
+ ]);
79
120
  }
80
121
  }
81
122
  exports.ValidatorClient = ValidatorClient;
82
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9yLWNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jbGllbnRzL3ZhbGlkYXRvci1jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsK0NBQThFO0FBQzlFLDJEQUE0RDtBQUM1RCxnREFBd0I7QUFDeEIsNERBQWtDO0FBRWxDLDJDQUtxQjtBQUNyQix1Q0FBb0M7QUFDcEMseUNBQXNDO0FBQ3RDLGlFQUE4RDtBQUU5RCxvRUFBb0U7QUFDcEUscUVBQXFFO0FBQ3JFLHdFQUF3RTtBQUN4RSxrRUFBa0U7QUFDbEUsb0JBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLGNBQUksQ0FBQztBQUMxQixvQkFBUSxDQUFDLFNBQVMsRUFBRSxDQUFDO0FBRXJCLE1BQWEsZUFBZTtJQUsxQjs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBdUI7UUFDMUMsTUFBTSxNQUFNLEdBQUcsSUFBSSxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDM0MsTUFBTSxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDMUIsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELFlBQW9CLE1BQXVCO1FBQ3pDLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsSUFBSSxHQUFHO1FBQ0wsT0FBTyxJQUFJLENBQUMsSUFBSyxDQUFDO0lBQ3BCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsS0FBTSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxJQUFJLGdCQUFnQjtRQUNsQixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUs7WUFBRSxPQUFPLFNBQVMsQ0FBQztRQUNsQyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUM7SUFDckMsQ0FBQztJQUVELG1CQUFtQixDQUFDLFFBQTBCO1FBQzVDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSztZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsNkJBQTZCLENBQUMsQ0FBQztRQUVoRSxJQUFJLENBQUMsS0FBSyxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxLQUFLLENBQUMsMEJBQTBCLENBQzlCLE9BQWU7UUFFZixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUs7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLDZCQUE2QixDQUFDLENBQUM7UUFDaEUsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLDBCQUEwQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFTyxLQUFLLENBQUMsVUFBVTtRQUN0QixNQUFNLGtCQUFrQixHQUF1QixNQUFNLG1DQUFrQixDQUFDLE9BQU8sQ0FDN0UsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQ3pCLENBQUM7UUFFRixNQUFNLGdCQUFnQixHQUFHLElBQUksbUNBQWdCLENBQUMsa0JBQWtCLEVBQUU7WUFDaEUsdUJBQXVCLEVBQUUsc0NBQTBCO1lBQ25ELGtCQUFrQixFQUFFLGdDQUFvQjtTQUN6QyxDQUFDLENBQUM7UUFDSCxNQUFNLFdBQVcsR0FBOEIsc0JBQVcsQ0FBQyxjQUFjLENBQ3ZFLGtCQUFrQixFQUNsQiwyQkFBZ0IsQ0FDakIsQ0FBQztRQUNGLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxTQUFHLENBQUMsZ0JBQWdCLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLFdBQUksQ0FDbkIsSUFBSSxDQUFDLElBQUssRUFDVixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFDbkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQ2xCLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLEVBQzdCLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLEVBQzdCLElBQUksQ0FBQyxNQUFNLENBQUMsc0JBQXNCLENBQ25DLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUFuRkQsMENBbUZDIn0=
123
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9yLWNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jbGllbnRzL3ZhbGlkYXRvci1jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsK0NBQThFO0FBQzlFLDJEQUE0RDtBQUM1RCxnREFBd0I7QUFDeEIsNERBQWtDO0FBRWxDLDJDQUtxQjtBQUNyQiw2REFBeUQ7QUFDekQscURBQStEO0FBQy9ELHVDQUFvQztBQUNwQyx5Q0FBc0M7QUFDdEMsaUVBQThEO0FBRTlELG9FQUFvRTtBQUNwRSxxRUFBcUU7QUFDckUsd0VBQXdFO0FBQ3hFLGtFQUFrRTtBQUNsRSxvQkFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsY0FBSSxDQUFDO0FBQzFCLG9CQUFRLENBQUMsU0FBUyxFQUFFLENBQUM7QUFFckIsTUFBYSxlQUFlO0lBVTFCOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUF1QjtRQUMxQyxNQUFNLE1BQU0sR0FBRyxJQUFJLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMzQyxNQUFNLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUMxQixPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsWUFBb0IsTUFBdUI7UUFqQjNDLHNFQUFzRTtRQUN0RSxtRUFBbUU7UUFDbkUsd0RBQXdEO1FBQ2hELG1CQUFjLEdBQWtCLDhCQUFhLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDekQsY0FBUyxHQUFhLElBQUksR0FBRyxFQUFFLENBQUM7UUFjdEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxJQUFJLEdBQUc7UUFDTCxPQUFPLElBQUksQ0FBQyxJQUFLLENBQUM7SUFDcEIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxLQUFN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
@@ -70,4 +70,7 @@ Object.defineProperty(exports, "encodeJson", { enumerable: true, get: function (
70
70
  Object.defineProperty(exports, "ByteArrayEncoding", { enumerable: true, get: function () { return helpers_1.ByteArrayEncoding; } });
71
71
  var network_optimizer_1 = require("./network_optimizer");
72
72
  Object.defineProperty(exports, "NetworkOptimizer", { enumerable: true, get: function () { return network_optimizer_1.NetworkOptimizer; } });
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsU0FBUztBQUNULDBDQUF3QjtBQUV4QixxQkFBcUI7QUFDckIseURBQXlDO0FBQ3pDLCtEQUErQztBQUMvQywyRUFBMkQ7QUFDM0QscURBQXFDO0FBQ3JDLCtEQUErQztBQUMvQywrREFBNkQ7QUFBcEQsbUhBQUEsZUFBZSxPQUFBO0FBQ3hCLHlEQUF1RDtBQUE5Qyw2R0FBQSxZQUFZLE9BQUE7QUFDckIsMkRBQXlEO0FBQWhELCtHQUFBLGFBQWEsT0FBQTtBQUN0QiwrREFBd0U7QUFBL0QsNEhBQUEsT0FBTyxPQUFlO0FBQy9CLHVEQUFxRDtBQUE1QywyR0FBQSxXQUFXLE9BQUE7QUFDcEIseURBQXVEO0FBQTlDLDZHQUFBLFlBQVksT0FBQTtBQUNyQixtREFBMEY7QUFBakYsOEdBQUEsY0FBYyxPQUFvQjtBQUFFLDRHQUFBLGNBQWMsT0FBQTtBQUMzRCwrREFBNkQ7QUFBcEQsbUhBQUEsZUFBZSxPQUFBO0FBQ3hCLHlDQUE4RDtBQUFyRCxxR0FBQSxVQUFVLE9BQUE7QUFBRSw0R0FBQSxpQkFBaUIsT0FBQTtBQUN0Qyx5REFBdUQ7QUFBOUMscUhBQUEsZ0JBQWdCLE9BQUEifQ==
73
+ // Dual / multi-asset collateral helpers.
74
+ __exportStar(require("./clients/helpers/asset-registry"), exports);
75
+ __exportStar(require("./clients/helpers/collateral"), exports);
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsU0FBUztBQUNULDBDQUF3QjtBQUV4QixxQkFBcUI7QUFDckIseURBQXlDO0FBQ3pDLCtEQUErQztBQUMvQywyRUFBMkQ7QUFDM0QscURBQXFDO0FBQ3JDLCtEQUErQztBQUMvQywrREFBNkQ7QUFBcEQsbUhBQUEsZUFBZSxPQUFBO0FBQ3hCLHlEQUF1RDtBQUE5Qyw2R0FBQSxZQUFZLE9BQUE7QUFDckIsMkRBQXlEO0FBQWhELCtHQUFBLGFBQWEsT0FBQTtBQUN0QiwrREFBd0U7QUFBL0QsNEhBQUEsT0FBTyxPQUFlO0FBQy9CLHVEQUFxRDtBQUE1QywyR0FBQSxXQUFXLE9BQUE7QUFDcEIseURBQXVEO0FBQTlDLDZHQUFBLFlBQVksT0FBQTtBQUNyQixtREFBMEY7QUFBakYsOEdBQUEsY0FBYyxPQUFvQjtBQUFFLDRHQUFBLGNBQWMsT0FBQTtBQUMzRCwrREFBNkQ7QUFBcEQsbUhBQUEsZUFBZSxPQUFBO0FBQ3hCLHlDQUE4RDtBQUFyRCxxR0FBQSxVQUFVLE9BQUE7QUFBRSw0R0FBQSxpQkFBaUIsT0FBQTtBQUN0Qyx5REFBdUQ7QUFBOUMscUhBQUEsZ0JBQWdCLE9BQUE7QUFFekIseUNBQXlDO0FBQ3pDLG1FQUFpRDtBQUNqRCwrREFBNkMifQ==
@@ -87,17 +87,22 @@ function validateBatchCancelOrderMessage(subaccountNumber, orders) {
87
87
  }
88
88
  /**
89
89
  * @describe validateTransferMessage validates that a transfer to place has fields that would be
90
- * valid on-chain.
90
+ * valid on-chain. The asset is validated against the on-chain asset registry
91
+ * (fetched via `getAllAssets` and exposed as `validatorClient.assetRegistry`), so any
92
+ * registered collateral asset (e.g. USDC id 0, RUB1 id 2) is accepted and unknown
93
+ * asset ids are rejected. Final collateral-eligibility is enforced on-chain (ante).
91
94
  */
92
- function validateTransferMessage(transfer) {
95
+ function validateTransferMessage(transfer, assetRegistry) {
93
96
  if (!verifySubaccountNumber(transfer.sender.number || 0)) {
94
97
  return new errors_1.UserError(`senderSubaccountNumber: ${transfer.sender.number || 0} cannot be < 0 or > ${constants_1.MAX_SUBACCOUNT_NUMBER}`);
95
98
  }
96
99
  if (!verifySubaccountNumber(transfer.recipient.number || 0)) {
97
100
  return new errors_1.UserError(`recipientSubaccountNumber: ${transfer.recipient.number || 0} cannot be < 0 or > ${constants_1.MAX_SUBACCOUNT_NUMBER}`);
98
101
  }
99
- if (transfer.assetId !== 0) {
100
- return new errors_1.UserError(`asset id: ${transfer.assetId} not supported`);
102
+ // The asset must be a registered chain asset (fetched into the registry from
103
+ // getAllAssets). Collateral eligibility itself is enforced on-chain (ante decorator).
104
+ if (assetRegistry.get(transfer.assetId) === undefined) {
105
+ return new errors_1.UserError(`asset id: ${transfer.assetId} is not a registered chain asset`);
101
106
  }
102
107
  if (transfer.amount.lessThanOrEqual(long_1.default.ZERO)) {
103
108
  return new errors_1.UserError(`amount: ${transfer.amount} cannot be <= 0`);
@@ -147,4 +152,4 @@ function isValidAddress(address) {
147
152
  // An address is valid if it starts with the BECH32 prefix and is Bech32 format.
148
153
  return address.startsWith(constants_1.BECH32_PREFIX + '1') && verifyIsBech32(address) === undefined;
149
154
  }
150
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmFsaWRhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQWlCQSw4REE0QkM7QUFNRCxnRUFnQ0M7QUFNRCwwRUF1QkM7QUFNRCwwREEyQkM7QUEwQkQsNENBTUM7QUFFRCwwQ0FFQztBQVlELHdDQUdDO0FBcE1ELG1DQUFnQztBQUNoQyxnREFBd0I7QUFFeEIsb0RBQXlGO0FBQ3pGLDRDQU0wQjtBQUMxQixxQ0FBcUM7QUFFckM7OztHQUdHO0FBQ0gsU0FBZ0IseUJBQXlCLENBQ3ZDLGdCQUF3QixFQUN4QixLQUFrQjtJQUVsQixJQUFJLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7UUFDMUMsT0FBTyxJQUFJLGtCQUFTLENBQUMsYUFBYSxLQUFLLENBQUMsUUFBUSx3QkFBd0IsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFDRCxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLGNBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQzlDLE9BQU8sSUFBSSxrQkFBUyxDQUFDLGFBQWEsS0FBSyxDQUFDLFFBQVEsaUJBQWlCLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBQ0QsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxjQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUM5QyxPQUFPLElBQUksa0JBQVMsQ0FBQyxhQUFhLEtBQUssQ0FBQyxRQUFRLGlCQUFpQixDQUFDLENBQUM7SUFDckUsQ0FBQztJQUNELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUM7UUFDOUMsT0FBTyxJQUFJLGtCQUFTLENBQ2xCLHFCQUFxQixnQkFBZ0IsdUJBQXVCLGlDQUFxQixFQUFFLENBQ3BGLENBQUM7SUFDSixDQUFDO0lBQ0QsSUFBSSxDQUFD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
155
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmFsaWRhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQWtCQSw4REE0QkM7QUFNRCxnRUFnQ0M7QUFNRCwwRUF1QkM7QUFTRCwwREFnQ0M7QUEwQkQsNENBTUM7QUFFRCwwQ0FFQztBQVlELHdDQUdDO0FBN01ELG1DQUFnQztBQUNoQyxnREFBd0I7QUFFeEIsb0RBQXlGO0FBRXpGLDRDQU0wQjtBQUMxQixxQ0FBcUM7QUFFckM7OztHQUdHO0FBQ0gsU0FBZ0IseUJBQXlCLENBQ3ZDLGdCQUF3QixFQUN4QixLQUFrQjtJQUVsQixJQUFJLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7UUFDMUMsT0FBTyxJQUFJLGtCQUFTLENBQUMsYUFBYSxLQUFLLENBQUMsUUFBUSx3QkFBd0IsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFDRCxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLGNBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQzlDLE9BQU8sSUFBSSxrQkFBUyxDQUFDLGFBQWEsS0FBSyxDQUFDLFFBQVEsaUJBQWlCLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBQ0QsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxjQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUM5QyxPQUFPLElBQUksa0JBQVMsQ0FBQyxhQUFhLEtBQUssQ0FBQyxRQUFRLGlCQUFpQixDQUFDLENBQUM7SUFDckUsQ0FBQztJQUNELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUM7UUFDOUMsT0FBTyxJQUFJLGtCQUFTLENBQ2xCLHFCQUFxQixnQkFBZ0IsdUJBQXVCLGlDQUFxQixFQUFFLENBQ3BGLENBQUM7SUFDSixDQUFDO0lBQ0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztRQUNsRixPQUFPLElBQUksa0JBQVMsQ0FBQyxpQkFBaUIsS0FBSyxDQUFDLFlBQVksZ0NBQWdDLENBQUMsQ0FBQztJQUM1RixDQUFDO0lBQ0QsSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQztRQUN6RixPQUFPLElBQUksa0JBQVMsQ0FDbEIscUJBQXFCLEtBQUssQ0FBQyxnQkFBZ0IsZ0NBQWdDLENBQzVFLENBQUM7SUFDSixDQUFDO0lBRUQsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQztBQUVEOzs7R0FHRztBQUNILFNBQWdCLDBCQUEwQixDQUN4QyxnQkFBd0IsRUFDeEIsS0FBbUI7SUFFbkIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQzFDLE9BQU8sSUFBSSxrQkFBUyxDQUFDLGFBQWEsS0FBSyxDQUFDLFFBQVEsd0JBQXdCLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBQ0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztRQUNsRixPQUFPLElBQUksa0JBQVMsQ0FBQyxpQkFBaUIsS0FBSyxDQUFDLFlBQVksZ0NBQWdDLENBQUMsQ0FBQztJQUM1RixDQUFDO0lBQ0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksS0FBSyxDQUFDLGdCQUFnQixLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQy9FLE9BQU8sSUFBSSxrQkFBUyxDQUNsQix1QkFBdUIsS0FBSyxDQUFDLGdCQUFnQixpREFBaUQsQ0FDL0YsQ0FBQztJQUNKLENBQUM7SUFDRCxJQUFJLGVBQWUsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDO1FBQ3pGLE9BQU8sSUFBSSxrQkFBUyxDQUNsQixxQkFBcUIsS0FBSyxDQUFDLGdCQUFnQixnQ0FBZ0MsQ0FDNUUsQ0FBQztJQUNKLENBQUM7SUFDRCxJQUFJLGVBQWUsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksS0FBSyxDQUFDLFlBQVksS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUMxRSxPQUFPLElBQUksa0JBQVMsQ0FDbEIsbUJBQW1CLEtBQUssQ0FBQyxZQUFZLDZDQUE2QyxDQUNuRixDQUFDO0lBQ0osQ0FBQztJQUNELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUM7UUFDOUMsT0FBTyxJQUFJLGtCQUFTLENBQ2xCLHFCQUFxQixnQkFBZ0IsdUJBQXVCLGlDQUFxQixFQUFFLENBQ3BGLENBQUM7SUFDSixDQUFDO0lBRUQsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQztBQUVEOzs7R0FHRztBQUNILFNBQWdCLCtCQUErQixDQUM3QyxnQkFBd0IsRUFDeEIsTUFBeUI7SUFFekIsS0FBSyxNQUFNLFVBQVUsSUFBSSxNQUFNLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDaEQsS0FBSyxNQUFNLFFBQVEsSUFBSSxVQUFVLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDNUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7Z0JBQ3BDLE9BQU8sSUFBSSxrQkFBUyxDQUFDLGFBQWEsUUFBUSx3QkFBd0IsQ0FBQyxDQUFDO1lBQ3RFLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztRQUM3QyxPQUFPLElBQUksa0JBQVMsQ0FBQyxpQkFBaUIsTUFBTSxDQUFDLFlBQVksZ0NBQWdDLENBQUMsQ0FBQztJQUM3RixDQUFDO0lBRUQsSUFBSSxDQUFDLHNCQUFzQixDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQztRQUM5QyxPQUFPLElBQUksa0JBQVMsQ0FDbEIscUJBQXFCLGdCQUFnQix1QkFBdUIsaUNBQXFCLEVBQUUsQ0FDcEYsQ0FBQztJQUNKLENBQUM7SUFFRCxPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsU0FBZ0IsdUJBQXVCLENBQ3JDLFFBQXFCLEVBQ3JCLGFBQTRCO0lBRTVCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsTUFBUSxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzNELE9BQU8sSUFBSSxrQkFBUyxDQUNsQiwyQkFDRSxRQUFRLENBQUMsTUFBUSxDQUFDLE1BQU0sSUFBSSxDQUM5Qix1QkFBdUIsaUNBQXFCLEVBQUUsQ0FDL0MsQ0FBQztJQUNKLENBQUM7SUFDRCxJQUFJLENBQUMsc0JBQXNCLENBQUMsUUFBUSxDQUFDLFNBQVcsQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUM5RCxPQUFPLElBQUksa0JBQVMsQ0FDbEIsOEJBQ0UsUUFBUSxDQUFDLFNBQVcsQ0FBQyxNQUFNLElBQUksQ0FDakMsdUJBQXVCLGlDQUFxQixFQUFFLENBQy9DLENBQUM7SUFDSixDQUFDO0lBQ0QsNkVBQTZFO0lBQzdFLHNGQUFzRjtJQUN0RixJQUFJLGFBQWEsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQ3RELE9BQU8sSUFBSSxrQkFBUyxDQUFDLGFBQWEsUUFBUSxDQUFDLE9BQU8sa0NBQWtDLENBQUMsQ0FBQztJQUN4RixDQUFDO0lBQ0QsSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxjQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUMvQyxPQUFPLElBQUksa0JBQVMsQ0FBQyxXQUFXLFFBQVEsQ0FBQyxNQUFNLGlCQUFpQixDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVELE1BQU0sWUFBWSxHQUFzQixjQUFjLENBQUMsUUFBUSxDQUFDLFNBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuRixJQUFJLFlBQVksS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUMvQixPQUFPLElBQUksa0JBQVMsQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBQ0QsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQztBQUVELFNBQVMsa0JBQWtCLENBQUMsWUFBZ0M7SUFDMUQsSUFBSSxZQUFZLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDL0IsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsT0FBTyxvQkFBb0IsQ0FBQyxZQUFZLENBQUMsSUFBSSxZQUFZLEdBQUcsQ0FBQyxDQUFDO0FBQ2hFLENBQUM7QUFFRCxTQUFTLHNCQUFzQixDQUFDLGdCQUFvQztJQUNsRSxJQUFJLGdCQUFnQixLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQ25DLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELE9BQU8sb0JBQW9CLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxnQkFBZ0IsR0FBRyxDQUFDLENBQUM7QUFDeEUsQ0FBQztBQUVELFNBQVMsc0JBQXNCLENBQUMsZ0JBQXdCO0lBQ3RELE9BQU8sZ0JBQWdCLElBQUksQ0FBQyxJQUFJLGdCQUFnQixJQUFJLGlDQUFxQixDQUFDO0FBQzVFLENBQUM7QUFFRCxTQUFTLG9CQUFvQixDQUFDLEdBQVc7SUFDdkMsT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSx1QkFBVyxDQUFDO0FBQ3hDLENBQUM7QUFFRCxTQUFnQixnQkFBZ0IsQ0FBQyxVQUFzQjtJQUNyRCxPQUFPLENBQ0wsVUFBVSxLQUFLLGtCQUFVLENBQUMsVUFBVTtRQUNwQyxVQUFVLEtBQUssa0JBQVUsQ0FBQyxTQUFTO1FBQ25DLFVBQVUsS0FBSyxrQkFBVSxDQUFDLFdBQVcsQ0FDdEMsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFnQixlQUFlLENBQUMsVUFBc0I7SUFDcEQsT0FBTyxVQUFVLEtBQUssa0JBQVUsQ0FBQyxTQUFTLElBQUksVUFBVSxLQUFLLGtCQUFVLENBQUMsV0FBVyxDQUFDO0FBQ3RGLENBQUM7QUFFRCxTQUFTLGNBQWMsQ0FBQyxPQUFlO0lBQ3JDLElBQUksQ0FBQztRQUNILElBQUEsZUFBTSxFQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2YsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQztBQUVELFNBQWdCLGNBQWMsQ0FBQyxPQUFlO0lBQzVDLGdGQUFnRjtJQUNoRixPQUFPLE9BQU8sQ0FBQyxVQUFVLENBQUMseUJBQWEsR0FBRyxHQUFHLENBQUMsSUFBSSxjQUFjLENBQUMsT0FBTyxDQUFDLEtBQUssU0FBUyxDQUFDO0FBQzFGLENBQUMifQ==