@polyester/sdk 0.20.0 → 0.21.0

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 (88) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/README.md +9 -9
  3. package/dist/environment.d.ts +2 -2
  4. package/dist/environment.d.ts.map +1 -1
  5. package/dist/environment.js +4 -4
  6. package/dist/environment.js.map +1 -1
  7. package/dist/gen/auth/v1/api_keys_pb.d.ts +3 -1
  8. package/dist/gen/auth/v1/api_keys_pb.d.ts.map +1 -1
  9. package/dist/gen/auth/v1/api_keys_pb.js.map +1 -1
  10. package/dist/gen/auth/v1/auth_pb.d.ts +49 -5
  11. package/dist/gen/auth/v1/auth_pb.d.ts.map +1 -1
  12. package/dist/gen/auth/v1/auth_pb.js +21 -3
  13. package/dist/gen/auth/v1/auth_pb.js.map +1 -1
  14. package/dist/gen/auth/v1/profile_pb.d.ts +7 -0
  15. package/dist/gen/auth/v1/profile_pb.d.ts.map +1 -1
  16. package/dist/gen/auth/v1/profile_pb.js +1 -1
  17. package/dist/gen/auth/v1/profile_pb.js.map +1 -1
  18. package/dist/gen/auth/v1/social_verification_pb.d.ts +12 -9
  19. package/dist/gen/auth/v1/social_verification_pb.d.ts.map +1 -1
  20. package/dist/gen/auth/v1/social_verification_pb.js.map +1 -1
  21. package/dist/gen/auth/v1/subaccounts_pb.d.ts +3 -1
  22. package/dist/gen/auth/v1/subaccounts_pb.d.ts.map +1 -1
  23. package/dist/gen/auth/v1/subaccounts_pb.js.map +1 -1
  24. package/dist/gen/chain/deposit/v1/deposit_pb.d.ts +4 -1
  25. package/dist/gen/chain/deposit/v1/deposit_pb.d.ts.map +1 -1
  26. package/dist/gen/chain/deposit/v1/deposit_pb.js.map +1 -1
  27. package/dist/gen/marketdata/v1/marketdata_pb.d.ts +20 -1
  28. package/dist/gen/marketdata/v1/marketdata_pb.d.ts.map +1 -1
  29. package/dist/gen/marketdata/v1/marketdata_pb.js +1 -1
  30. package/dist/gen/marketdata/v1/marketdata_pb.js.map +1 -1
  31. package/dist/gen/marketoverview/v1/marketoverview_pb.d.ts +138 -13
  32. package/dist/gen/marketoverview/v1/marketoverview_pb.d.ts.map +1 -1
  33. package/dist/gen/marketoverview/v1/marketoverview_pb.js +23 -6
  34. package/dist/gen/marketoverview/v1/marketoverview_pb.js.map +1 -1
  35. package/dist/index.d.ts +3 -3
  36. package/dist/index.js +2 -2
  37. package/dist/services/auth/auth.d.ts +7 -0
  38. package/dist/services/auth/auth.d.ts.map +1 -1
  39. package/dist/services/auth/auth.js +9 -0
  40. package/dist/services/auth/auth.js.map +1 -1
  41. package/dist/services/auth/profile/profile.schemas.d.ts +1 -0
  42. package/dist/services/auth/profile/profile.schemas.d.ts.map +1 -1
  43. package/dist/services/auth/profile/profile.schemas.js +2 -1
  44. package/dist/services/auth/profile/profile.schemas.js.map +1 -1
  45. package/dist/services/candles/candles.schemas.d.ts +9 -0
  46. package/dist/services/candles/candles.schemas.d.ts.map +1 -1
  47. package/dist/services/candles/candles.schemas.js +6 -0
  48. package/dist/services/candles/candles.schemas.js.map +1 -1
  49. package/dist/services/deposit/deposit.schemas.d.ts +1 -1
  50. package/dist/services/deposit/deposit.schemas.js +1 -1
  51. package/dist/services/deposit/deposit.schemas.js.map +1 -1
  52. package/dist/services/fees/fees.schemas.d.ts +1 -1
  53. package/dist/services/fees/fees.schemas.js +1 -1
  54. package/dist/services/fees/fees.schemas.js.map +1 -1
  55. package/dist/services/heatmap/heatmap.schemas.d.ts +4 -4
  56. package/dist/services/internal-transfers/internal-transfers.schemas.d.ts +1 -1
  57. package/dist/services/internal-transfers/internal-transfers.schemas.js +1 -1
  58. package/dist/services/internal-transfers/internal-transfers.schemas.js.map +1 -1
  59. package/dist/services/market-overview/index.d.ts +2 -2
  60. package/dist/services/market-overview/market-overview.codecs.js +2 -2
  61. package/dist/services/market-overview/market-overview.codecs.js.map +1 -1
  62. package/dist/services/market-overview/market-overview.d.ts +7 -1
  63. package/dist/services/market-overview/market-overview.d.ts.map +1 -1
  64. package/dist/services/market-overview/market-overview.js +11 -1
  65. package/dist/services/market-overview/market-overview.js.map +1 -1
  66. package/dist/services/market-overview/market-overview.schemas.d.ts +72 -12
  67. package/dist/services/market-overview/market-overview.schemas.d.ts.map +1 -1
  68. package/dist/services/market-overview/market-overview.schemas.js +30 -7
  69. package/dist/services/market-overview/market-overview.schemas.js.map +1 -1
  70. package/dist/services/market-overview/market-overview.types.d.ts +2 -2
  71. package/dist/services/orderbook/orderbook.schemas.d.ts +1 -1
  72. package/dist/services/orders/orders-batch.schemas.d.ts +14 -14
  73. package/dist/services/orders/orders-input.schemas.d.ts +1 -1
  74. package/dist/services/orders/orders-output.schemas.d.ts +6 -6
  75. package/dist/services/social-verification/social-verification.d.ts +1 -1
  76. package/dist/services/social-verification/social-verification.js +1 -1
  77. package/dist/services/social-verification/social-verification.js.map +1 -1
  78. package/dist/services/social-verification/social-verification.schemas.d.ts +17 -11
  79. package/dist/services/social-verification/social-verification.schemas.d.ts.map +1 -1
  80. package/dist/services/social-verification/social-verification.schemas.js +12 -5
  81. package/dist/services/social-verification/social-verification.schemas.js.map +1 -1
  82. package/dist/services/subaccounts/subaccounts.schemas.d.ts +1 -1
  83. package/dist/services/triggers/triggers-output.schemas.d.ts +1 -1
  84. package/dist/services/triggers/triggers-output.schemas.d.ts.map +1 -1
  85. package/dist/services/triggers/triggers-output.schemas.js +1 -2
  86. package/dist/services/triggers/triggers-output.schemas.js.map +1 -1
  87. package/dist/shared/validation.js.map +1 -1
  88. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"marketdata_pb.js","names":[],"sources":["../../../../src/gen/marketdata/v1/marketdata_pb.ts"],"sourcesContent":["// @generated by protoc-gen-es v2.13.0 with parameter \"target=ts,import_extension=js\"\n// @generated from file marketdata/v1/marketdata.proto (package marketdata.v1, syntax proto3)\n/* eslint-disable */\n\nimport type { GenEnum, GenFile, GenMessage, GenService } from \"@bufbuild/protobuf/codegenv2\";\nimport { enumDesc, fileDesc, messageDesc, serviceDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { Timestamp } from \"@bufbuild/protobuf/wkt\";\nimport { file_google_protobuf_timestamp } from \"@bufbuild/protobuf/wkt\";\nimport { file_polyester_api_options } from \"../../polyester/api/options_pb.js\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file marketdata/v1/marketdata.proto.\n */\nexport const file_marketdata_v1_marketdata: GenFile = /*@__PURE__*/\n fileDesc(\"Ch5tYXJrZXRkYXRhL3YxL21hcmtldGRhdGEucHJvdG8SDW1hcmtldGRhdGEudjEi2QEKEEdldFRyYWRlc1JlcXVlc3QSEwoJc3ltYm9sX2lkGAEgASgNQgASDwoFbGltaXQYAiABKA1CABIuCgpzdGFydF90aW1lGAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIsCghlbmRfdGltZRgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASKQoEc2lkZRgFIAEoDjIZLm1hcmtldGRhdGEudjEuU2lkZUZpbHRlckIAEhQKCnBhZ2VfdG9rZW4YBiABKAlCADoAInoKC01hcmtldFRyYWRlEhEKCXN5bWJvbF9pZBgBIAEoDRIQCghtYXRjaF9pZBgCIAEoBBIOCgZpc19idXkYAyABKAgSEwoLcHJpY2VfdGlja3MYBCABKAMSEgoKcXR5X3NjYWxlZBgFIAEoAxINCgV0c19ucxgGIAEoBCJaChFHZXRUcmFkZXNSZXNwb25zZRIqCgZ0cmFkZXMYASADKAsyGi5tYXJrZXRkYXRhLnYxLk1hcmtldFRyYWRlEhkKD25leHRfcGFnZV90b2tlbhgCIAEoCUIAIpUCChFHZXRDYW5kbGVzUmVxdWVzdBITCglzeW1ib2xfaWQYASABKA1CABItCgl0aW1lZnJhbWUYAiABKA4yGC5tYXJrZXRkYXRhLnYxLlRpbWVmcmFtZUIAEg8KBWxpbWl0GAMgASgNQgASLgoKc3RhcnRfdGltZRgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLAoIZW5kX3RpbWUYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhoKEmluY2x1ZGVfaW5jb21wbGV0ZRgGIAEoCBIZChFpbmNsdWRlX3JlZmVyZW5jZRgHIAEoCBIUCgpwYWdlX3Rva2VuGAggASgJQgA6ACKcAgoYR2V0Q2FuZGxlc0NvbHVtbnNSZXF1ZXN0EhMKCXN5bWJvbF9pZBgBIAEoDUIAEi0KCXRpbWVmcmFtZRgCIAEoDjIYLm1hcmtldGRhdGEudjEuVGltZWZyYW1lQgASDwoFbGltaXQYAyABKA1CABIuCgpzdGFydF90aW1lGAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIsCghlbmRfdGltZRgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASGgoSaW5jbHVkZV9pbmNvbXBsZXRlGAYgASgIEhkKEWluY2x1ZGVfcmVmZXJlbmNlGAcgASgIEhQKCnBhZ2VfdG9rZW4YCCABKAlCADoAIngKC0NhbmRsZVBvaW50Eg4KBnRzX3NlYxgBIAEoBBIMCgRvcGVuGAIgASgDEgwKBGhpZ2gYAyABKAMSCwoDbG93GAQgASgDEg0KBWNsb3NlGAUgASgDEg4KBnZvbHVtZRgGIAEoAxIRCglpc19jbG9zZWQYByABKAgi0wEKEkdldENhbmRsZXNSZXNwb25zZRIRCglzeW1ib2xfaWQYASABKA0SKwoJdGltZWZyYW1lGAIgASgOMhgubWFya2V0ZGF0YS52MS5UaW1lZnJhbWUSKwoHY2FuZGxlcxgDIAMoCzIaLm1hcmtldGRhdGEudjEuQ2FuZGxlUG9pbnQSNQoRcmVmZXJlbmNlX2NhbmRsZXMYBCADKAsyGi5tYXJrZXRkYXRhLnYxLkNhbmRsZVBvaW50EhkKD25leHRfcGFnZV90b2tlbhgFIAEoCUIAIuICChlHZXRDYW5kbGVzQ29sdW1uc1Jlc3BvbnNlEhEKCXN5bWJvbF9pZBgBIAEoDRIrCgl0aW1lZnJhbWUYAiABKA4yGC5tYXJrZXRkYXRhLnYxLlRpbWVmcmFtZRIOCgZ0c19zZWMYAyADKAQSDAoEb3BlbhgEIAMoAxIMCgRoaWdoGAUgAygDEgsKA2xvdxgGIAMoAxINCgVjbG9zZRgHIAMoAxIOCgZ2b2x1bWUYCCADKAMSGAoQcmVmZXJlbmNlX3RzX3NlYxgJIAMoBBIWCg5yZWZlcmVuY2Vfb3BlbhgKIAMoAxIWCg5yZWZlcmVuY2VfaGlnaBgLIAMoAxIVCg1yZWZlcmVuY2VfbG93GAwgAygDEhcKD3JlZmVyZW5jZV9jbG9zZRgNIAMoAxIYChByZWZlcmVuY2Vfdm9sdW1lGA4gAygDEhkKD25leHRfcGFnZV90b2tlbhgPIAEoCUIAIqABCgZDYW5kbGUSEQoJc3ltYm9sX2lkGAEgASgNEisKCXRpbWVmcmFtZRgCIAEoDjIYLm1hcmtldGRhdGEudjEuVGltZWZyYW1lEg4KBnRzX3NlYxgDIAEoBBIMCgRvcGVuGAQgASgDEgwKBGhpZ2gYBSABKAMSCwoDbG93GAYgASgDEg0KBWNsb3NlGAcgASgDEg4KBnZvbHVtZRgIIAEoAyJ4CgtBc3NldENvbmZpZxINCgVhc3NldBgBIAEoCRIRCglsZWRnZXJfaWQYAiABKA0SDAoEbmFtZRgDIAEoCRIhChlxdWFudGl0eV9kaXNwbGF5X2RlY2ltYWxzGAQgASgNEhYKDnF1YW50aXR5X3NjYWxlGAUgASgNIjcKFFBhaXJNYXJrZXRkYXRhQ29uZmlnEh8KF29yZGVyYm9va19wcmljZV9idWNrZXRzGAEgAygBIscECgpQYWlyQ29uZmlnEhEKCXN5bWJvbF9pZBgBIAEoDRIOCgZzeW1ib2wYAiABKAkSEgoKYmFzZV9hc3NldBgDIAEoCRITCgtxdW90ZV9hc3NldBgEIAEoCRIRCgl0aWNrX3NpemUYBSABKAkSEQoJc3RlcF9zaXplGAYgASgJEhoKEm1pbl9ub3Rpb25hbF9xdW90ZRgHIAEoCRIUCgxtaW5fcXR5X2Jhc2UYCCABKAkSHwoXYWxsb3dfYnV5X2ZlZV9mcm9tX2Jhc2UYCSABKAgSGwoTYmFzZV9xdWFudGl0eV9zY2FsZRgKIAEoDRIcChRxdW90ZV9xdWFudGl0eV9zY2FsZRgLIAEoDRI3CgptYXJrZXRkYXRhGAwgASgLMiMubWFya2V0ZGF0YS52MS5QYWlyTWFya2V0ZGF0YUNvbmZpZxIuCgpsaXN0aW5nX2F0GA0gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIwCgxkZWxpc3RpbmdfYXQYDiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEikKBnN0YXR1cxgPIAEoDjIZLm1hcmtldGRhdGEudjEuUGFpclN0YXR1cxInCh9kZWZhdWx0X21hcmtldF9zbGlwcGFnZV9icHNfYnV5GBAgASgFEigKIGRlZmF1bHRfbWFya2V0X3NsaXBwYWdlX2Jwc19zZWxsGBEgASgFEiAKGG1heF9jbGllbnRfcmVmX2RyaWZ0X2JwcxgSIAEoBSIWChRHZXRTcG90Q29uZmlnUmVxdWVzdCJ9ChVHZXRTcG90Q29uZmlnUmVzcG9uc2USKgoGYXNzZXRzGAEgAygLMhoubWFya2V0ZGF0YS52MS5Bc3NldENvbmZpZxIoCgVwYWlycxgCIAMoCzIZLm1hcmtldGRhdGEudjEuUGFpckNvbmZpZxIOCgZ0c19zZWMYAyABKAQqNQoKU2lkZUZpbHRlchIUChBTSURFX1VOU1BFQ0lGSUVEEAASBwoDQlVZEAESCAoEU0VMTBACKqgBCglUaW1lZnJhbWUSGQoVVElNRUZSQU1FX1VOU1BFQ0lGSUVEEAASCQoFU0VDXzEQARIJCgVNSU5fMRACEgkKBU1JTl81EAMSCgoGTUlOXzE1EAQSCgoGTUlOXzMwEAUSCgoGSE9VUl8xEAYSCgoGSE9VUl80EAcSCQoFREFZXzEQCBILCgdIT1VSXzEyEAkSCgoGV0VFS18xEAoSCwoHTU9OVEhfMRALKrEBCgpQYWlyU3RhdHVzEhsKF1BBSVJfU1RBVFVTX1VOU1BFQ0lGSUVEEAASFwoTUEFJUl9TVEFUVVNfRU5BQkxFRBABEhgKFFBBSVJfU1RBVFVTX0RJU0FCTEVEEAISGwoXUEFJUl9TVEFUVVNfQ0FOQ0VMX09OTFkQAxIZChVQQUlSX1NUQVRVU19QT1NUX09OTFkQBBIbChdQQUlSX1NUQVRVU19SRURVQ0VfT05MWRAFMoIDChFNYXJrZXREYXRhU2VydmljZRJQCglHZXRUcmFkZXMSHy5tYXJrZXRkYXRhLnYxLkdldFRyYWRlc1JlcXVlc3QaIC5tYXJrZXRkYXRhLnYxLkdldFRyYWRlc1Jlc3BvbnNlIgASUwoKR2V0Q2FuZGxlcxIgLm1hcmtldGRhdGEudjEuR2V0Q2FuZGxlc1JlcXVlc3QaIS5tYXJrZXRkYXRhLnYxLkdldENhbmRsZXNSZXNwb25zZSIAEmgKEUdldENhbmRsZXNDb2x1bW5zEicubWFya2V0ZGF0YS52MS5HZXRDYW5kbGVzQ29sdW1uc1JlcXVlc3QaKC5tYXJrZXRkYXRhLnYxLkdldENhbmRsZXNDb2x1bW5zUmVzcG9uc2UiABJcCg1HZXRTcG90Q29uZmlnEiMubWFya2V0ZGF0YS52MS5HZXRTcG90Q29uZmlnUmVxdWVzdBokLm1hcmtldGRhdGEudjEuR2V0U3BvdENvbmZpZ1Jlc3BvbnNlIgBCSFpGZ2l0aHViLmNvbS9GYWJyaWMtTGFicy9wb2x5ZXN0ZXItc2RrLWdvL2dlbi9tYXJrZXRkYXRhL3YxO21hcmtldGRhdGF2MWIGcHJvdG8z\", [file_google_protobuf_timestamp, file_polyester_api_options]);\n\n/**\n * GetTradesRequest selects recent public trades for one spot market.\n *\n * Results are ordered newest-first by execution timestamp, with match_id as a\n * tie-breaker. When both start_time and end_time are set, both bounds are\n * inclusive.\n *\n * @generated from message marketdata.v1.GetTradesRequest\n */\nexport type GetTradesRequest = Message<\"marketdata.v1.GetTradesRequest\"> & {\n /**\n * Stable numeric pair id from GetSpotConfig.\n *\n * @generated from field: uint32 symbol_id = 1;\n */\n symbolId: number;\n\n /**\n * Maximum number of trades to return. Defaults to 100 when unset; max 1000.\n *\n * @generated from field: uint32 limit = 2;\n */\n limit: number;\n\n /**\n * Inclusive lower bound for trade execution time. Must not be more than\n * 5 minutes in the future.\n *\n * @generated from field: google.protobuf.Timestamp start_time = 3;\n */\n startTime?: Timestamp | undefined;\n\n /**\n * Inclusive upper bound for trade execution time. Must be greater than or\n * equal to start_time when both are set, and must not be more than 5 minutes\n * in the future.\n *\n * @generated from field: google.protobuf.Timestamp end_time = 4;\n */\n endTime?: Timestamp | undefined;\n\n /**\n * Optional filter by trade aggressor side. Unspecified returns both sides.\n *\n * @generated from field: marketdata.v1.SideFilter side = 5;\n */\n side: SideFilter;\n\n /**\n * Opaque keyset cursor from a previous response. The cursor is exclusive and\n * bound to symbol, time bounds, side filter, and newest-first sort order.\n *\n * @generated from field: string page_token = 6;\n */\n pageToken: string;\n};\n\n/**\n * Describes the message marketdata.v1.GetTradesRequest.\n * Use `create(GetTradesRequestSchema)` to create a new message.\n */\nexport const GetTradesRequestSchema: GenMessage<GetTradesRequest> = /*@__PURE__*/\n messageDesc(file_marketdata_v1_marketdata, 0);\n\n/**\n * MarketTrade is one public trade print represented with scaled integers.\n *\n * REST responses render price and quantity as decimal strings.\n *\n * @generated from message marketdata.v1.MarketTrade\n */\nexport type MarketTrade = Message<\"marketdata.v1.MarketTrade\"> & {\n /**\n * Stable numeric pair id from GetSpotConfig.\n *\n * @generated from field: uint32 symbol_id = 1;\n */\n symbolId: number;\n\n /**\n * Stable trade id within the symbol, suitable for pagination and de-duplication.\n *\n * @generated from field: uint64 match_id = 2;\n */\n matchId: bigint;\n\n /**\n * True when the taker/aggressor bought the base asset; false when the\n * taker/aggressor sold the base asset.\n *\n * @generated from field: bool is_buy = 3;\n */\n isBuy: boolean;\n\n /**\n * Trade price in quote-asset units scaled by 1e6.\n *\n * @generated from field: int64 price_ticks = 4;\n */\n priceTicks: bigint;\n\n /**\n * Traded base-asset quantity scaled by the pair's base_quantity_scale from\n * GetSpotConfig.\n *\n * @generated from field: int64 qty_scaled = 5;\n */\n qtyScaled: bigint;\n\n /**\n * Trade execution timestamp, in nanoseconds since the Unix epoch (UTC).\n *\n * @generated from field: uint64 ts_ns = 6;\n */\n tsNs: bigint;\n};\n\n/**\n * Describes the message marketdata.v1.MarketTrade.\n * Use `create(MarketTradeSchema)` to create a new message.\n */\nexport const MarketTradeSchema: GenMessage<MarketTrade> = /*@__PURE__*/\n messageDesc(file_marketdata_v1_marketdata, 1);\n\n/**\n * GetTradesResponse contains public trades for one spot market.\n *\n * @generated from message marketdata.v1.GetTradesResponse\n */\nexport type GetTradesResponse = Message<\"marketdata.v1.GetTradesResponse\"> & {\n /**\n * Trades ordered newest-first by execution timestamp, with match_id as a\n * tie-breaker.\n *\n * @generated from field: repeated marketdata.v1.MarketTrade trades = 1;\n */\n trades: MarketTrade[];\n\n /**\n * Opaque cursor for the next page. Empty when no more results exist.\n *\n * @generated from field: string next_page_token = 2;\n */\n nextPageToken: string;\n};\n\n/**\n * Describes the message marketdata.v1.GetTradesResponse.\n * Use `create(GetTradesResponseSchema)` to create a new message.\n */\nexport const GetTradesResponseSchema: GenMessage<GetTradesResponse> = /*@__PURE__*/\n messageDesc(file_marketdata_v1_marketdata, 2);\n\n/**\n * GetCandlesRequest selects a spot market candle series.\n *\n * The response is ordered newest-first by candle bucket start time. When both\n * start_time and end_time are set, both bounds are inclusive.\n *\n * @generated from message marketdata.v1.GetCandlesRequest\n */\nexport type GetCandlesRequest = Message<\"marketdata.v1.GetCandlesRequest\"> & {\n /**\n * Numeric spot market identifier.\n *\n * @generated from field: uint32 symbol_id = 1;\n */\n symbolId: number;\n\n /**\n * Candle bucket size. Required for ConnectRPC clients.\n *\n * @generated from field: marketdata.v1.Timeframe timeframe = 2;\n */\n timeframe: Timeframe;\n\n /**\n * Maximum number of closed candles to return. Defaults to 500 when unset;\n * max 10000.\n *\n * @generated from field: uint32 limit = 3;\n */\n limit: number;\n\n /**\n * Inclusive lower bound for candle bucket start time, as a UTC timestamp.\n * Must not be more than 5 minutes in the future.\n *\n * @generated from field: google.protobuf.Timestamp start_time = 4;\n */\n startTime?: Timestamp | undefined;\n\n /**\n * Inclusive upper bound for candle bucket start time, as a UTC timestamp.\n * Must be greater than or equal to start_time when both are set, and must not\n * be more than 5 minutes in the future.\n *\n * @generated from field: google.protobuf.Timestamp end_time = 5;\n */\n endTime?: Timestamp | undefined;\n\n /**\n * Include the current open candle when it is available and inside the\n * requested range.\n * The open candle is prepended to the newest-first candle list and does not\n * count toward the closed-candle limit.\n *\n * @generated from field: bool include_incomplete = 6;\n */\n includeIncomplete: boolean;\n\n /**\n * Include the composite reference market candle series for the same market,\n * timeframe, and time range.\n * The reference series can be empty when no reference series is available for\n * the requested timeframe.\n *\n * @generated from field: bool include_reference = 7;\n */\n includeReference: boolean;\n\n /**\n * Opaque keyset cursor from a previous response. The cursor is exclusive and\n * bound to symbol, timeframe, time bounds, and newest-first candle ordering.\n * Inclusion flags affect response enrichment and may change between pages.\n *\n * @generated from field: string page_token = 8;\n */\n pageToken: string;\n};\n\n/**\n * Describes the message marketdata.v1.GetCandlesRequest.\n * Use `create(GetCandlesRequestSchema)` to create a new message.\n */\nexport const GetCandlesRequestSchema: GenMessage<GetCandlesRequest> = /*@__PURE__*/\n messageDesc(file_marketdata_v1_marketdata, 3);\n\n/**\n * GetCandlesColumnsRequest selects a spot market candle series for columnar output.\n *\n * The response is ordered oldest-first for efficient chart ingestion. When both\n * start_time and end_time are set, both bounds are inclusive.\n *\n * @generated from message marketdata.v1.GetCandlesColumnsRequest\n */\nexport type GetCandlesColumnsRequest = Message<\"marketdata.v1.GetCandlesColumnsRequest\"> & {\n /**\n * Numeric spot market identifier.\n *\n * @generated from field: uint32 symbol_id = 1;\n */\n symbolId: number;\n\n /**\n * Candle bucket size. Required for ConnectRPC clients.\n *\n * @generated from field: marketdata.v1.Timeframe timeframe = 2;\n */\n timeframe: Timeframe;\n\n /**\n * Maximum number of closed candles to return. Defaults to 500 when unset;\n * max 10000.\n *\n * @generated from field: uint32 limit = 3;\n */\n limit: number;\n\n /**\n * Inclusive lower bound for candle bucket start time, as a UTC timestamp.\n * Must not be more than 5 minutes in the future.\n *\n * @generated from field: google.protobuf.Timestamp start_time = 4;\n */\n startTime?: Timestamp | undefined;\n\n /**\n * Inclusive upper bound for candle bucket start time, as a UTC timestamp.\n * Must be greater than or equal to start_time when both are set, and must not\n * be more than 5 minutes in the future.\n *\n * @generated from field: google.protobuf.Timestamp end_time = 5;\n */\n endTime?: Timestamp | undefined;\n\n /**\n * Include the current open candle when it is available and inside the\n * requested range.\n * The open candle is prepended to the newest-first candle list and does not\n * count toward the closed-candle limit.\n *\n * @generated from field: bool include_incomplete = 6;\n */\n includeIncomplete: boolean;\n\n /**\n * Include the composite reference market candle series for the same market,\n * timeframe, and time range.\n * The reference series can be empty when no reference series is available for\n * the requested timeframe.\n *\n * @generated from field: bool include_reference = 7;\n */\n includeReference: boolean;\n\n /**\n * Opaque keyset cursor from a previous response. The cursor is exclusive and\n * bound to symbol, timeframe, time bounds, and oldest-first candle ordering.\n * Inclusion flags and columnar response shape may change between pages.\n *\n * @generated from field: string page_token = 8;\n */\n pageToken: string;\n};\n\n/**\n * Describes the message marketdata.v1.GetCandlesColumnsRequest.\n * Use `create(GetCandlesColumnsRequestSchema)` to create a new message.\n */\nexport const GetCandlesColumnsRequestSchema: GenMessage<GetCandlesColumnsRequest> = /*@__PURE__*/\n messageDesc(file_marketdata_v1_marketdata, 4);\n\n/**\n * CandlePoint is one OHLCV bucket represented with scaled integers.\n *\n * REST responses render these values as decimal strings in tuple order:\n * [ts_sec, open, high, low, close, volume].\n *\n * @generated from message marketdata.v1.CandlePoint\n */\nexport type CandlePoint = Message<\"marketdata.v1.CandlePoint\"> & {\n /**\n * Candle bucket start timestamp, in seconds since epoch (UTC).\n *\n * @generated from field: uint64 ts_sec = 1;\n */\n tsSec: bigint;\n\n /**\n * Opening price in quote units scaled by 1e6.\n *\n * @generated from field: int64 open = 2;\n */\n open: bigint;\n\n /**\n * Highest traded price in quote units scaled by 1e6.\n *\n * @generated from field: int64 high = 3;\n */\n high: bigint;\n\n /**\n * Lowest traded price in quote units scaled by 1e6.\n *\n * @generated from field: int64 low = 4;\n */\n low: bigint;\n\n /**\n * Closing price in quote units scaled by 1e6.\n *\n * @generated from field: int64 close = 5;\n */\n close: bigint;\n\n /**\n * Traded base-asset quantity scaled by the market's base asset quantity_scale\n * from GetSpotConfig.\n *\n * @generated from field: int64 volume = 6;\n */\n volume: bigint;\n\n /**\n * True only for WebSocket terminal updates of a closed bucket.\n * Historical API rows and current open-candle rows set this to false.\n *\n * @generated from field: bool is_closed = 7;\n */\n isClosed: boolean;\n};\n\n/**\n * Describes the message marketdata.v1.CandlePoint.\n * Use `create(CandlePointSchema)` to create a new message.\n */\nexport const CandlePointSchema: GenMessage<CandlePoint> = /*@__PURE__*/\n messageDesc(file_marketdata_v1_marketdata, 5);\n\n/**\n * GetCandlesResponse contains OHLCV candles for one spot market and timeframe.\n *\n * Candles and reference_candles are ordered newest-first by ts_sec. REST\n * responses render price and volume values as decimal strings.\n *\n * @generated from message marketdata.v1.GetCandlesResponse\n */\nexport type GetCandlesResponse = Message<\"marketdata.v1.GetCandlesResponse\"> & {\n /**\n * Numeric spot market identifier echoed from the request.\n *\n * @generated from field: uint32 symbol_id = 1;\n */\n symbolId: number;\n\n /**\n * Candle bucket size used for the returned series.\n *\n * @generated from field: marketdata.v1.Timeframe timeframe = 2;\n */\n timeframe: Timeframe;\n\n /**\n * Primary market candle series, ordered newest-first by ts_sec.\n *\n * @generated from field: repeated marketdata.v1.CandlePoint candles = 3;\n */\n candles: CandlePoint[];\n\n /**\n * Composite reference market candle series, ordered newest-first by ts_sec.\n * Populated only when include_reference is true and reference data is\n * available.\n *\n * @generated from field: repeated marketdata.v1.CandlePoint reference_candles = 4;\n */\n referenceCandles: CandlePoint[];\n\n /**\n * Opaque cursor for the next page. Empty when no more results exist.\n *\n * @generated from field: string next_page_token = 5;\n */\n nextPageToken: string;\n};\n\n/**\n * Describes the message marketdata.v1.GetCandlesResponse.\n * Use `create(GetCandlesResponseSchema)` to create a new message.\n */\nexport const GetCandlesResponseSchema: GenMessage<GetCandlesResponse> = /*@__PURE__*/\n messageDesc(file_marketdata_v1_marketdata, 6);\n\n/**\n * GetCandlesColumnsResponse returns the same candle series as GetCandles but in columnar form.\n * This is optimized for charting clients that ingest arrays of each field (binary only).\n *\n * Ordering: values are returned oldest-first (ascending ts_sec).\n *\n * @generated from message marketdata.v1.GetCandlesColumnsResponse\n */\nexport type GetCandlesColumnsResponse = Message<\"marketdata.v1.GetCandlesColumnsResponse\"> & {\n /**\n * Numeric spot market identifier.\n *\n * @generated from field: uint32 symbol_id = 1;\n */\n symbolId: number;\n\n /**\n * Timeframe of this series.\n *\n * @generated from field: marketdata.v1.Timeframe timeframe = 2;\n */\n timeframe: Timeframe;\n\n /**\n * Candle bucket start timestamps (seconds since epoch, UTC).\n *\n * @generated from field: repeated uint64 ts_sec = 3;\n */\n tsSec: bigint[];\n\n /**\n * Opening prices in quote units scaled by 1e6.\n *\n * @generated from field: repeated int64 open = 4;\n */\n open: bigint[];\n\n /**\n * Highest traded prices in quote units scaled by 1e6.\n *\n * @generated from field: repeated int64 high = 5;\n */\n high: bigint[];\n\n /**\n * Lowest traded prices in quote units scaled by 1e6.\n *\n * @generated from field: repeated int64 low = 6;\n */\n low: bigint[];\n\n /**\n * Closing prices in quote units scaled by 1e6.\n *\n * @generated from field: repeated int64 close = 7;\n */\n close: bigint[];\n\n /**\n * Traded base-asset quantities scaled by the pair's base_quantity_scale from\n * GetSpotConfig.\n *\n * @generated from field: repeated int64 volume = 8;\n */\n volume: bigint[];\n\n /**\n * Reference candle series in columnar form (same ordering as ts_sec: oldest-first).\n * Only populated when request.include_reference=true.\n *\n * @generated from field: repeated uint64 reference_ts_sec = 9;\n */\n referenceTsSec: bigint[];\n\n /**\n * Reference opening prices in quote units scaled by 1e6.\n *\n * @generated from field: repeated int64 reference_open = 10;\n */\n referenceOpen: bigint[];\n\n /**\n * Reference high prices in quote units scaled by 1e6.\n *\n * @generated from field: repeated int64 reference_high = 11;\n */\n referenceHigh: bigint[];\n\n /**\n * Reference low prices in quote units scaled by 1e6.\n *\n * @generated from field: repeated int64 reference_low = 12;\n */\n referenceLow: bigint[];\n\n /**\n * Reference closing prices in quote units scaled by 1e6.\n *\n * @generated from field: repeated int64 reference_close = 13;\n */\n referenceClose: bigint[];\n\n /**\n * Reference traded base-asset quantities scaled by the pair's\n * base_quantity_scale from GetSpotConfig.\n *\n * @generated from field: repeated int64 reference_volume = 14;\n */\n referenceVolume: bigint[];\n\n /**\n * Opaque cursor for the next page. Empty when no more results exist.\n *\n * @generated from field: string next_page_token = 15;\n */\n nextPageToken: string;\n};\n\n/**\n * Describes the message marketdata.v1.GetCandlesColumnsResponse.\n * Use `create(GetCandlesColumnsResponseSchema)` to create a new message.\n */\nexport const GetCandlesColumnsResponseSchema: GenMessage<GetCandlesColumnsResponse> = /*@__PURE__*/\n messageDesc(file_marketdata_v1_marketdata, 7);\n\n/**\n * Candle represents a single OHLCV bucket for a symbol and timeframe.\n *\n * @generated from message marketdata.v1.Candle\n */\nexport type Candle = Message<\"marketdata.v1.Candle\"> & {\n /**\n * numeric spot market identifier\n *\n * @generated from field: uint32 symbol_id = 1;\n */\n symbolId: number;\n\n /**\n * timeframe of this candle\n *\n * @generated from field: marketdata.v1.Timeframe timeframe = 2;\n */\n timeframe: Timeframe;\n\n /**\n * bucket start timestamp (seconds since epoch, UTC)\n *\n * @generated from field: uint64 ts_sec = 3;\n */\n tsSec: bigint;\n\n /**\n * opening price in quote units scaled by 1e6\n *\n * @generated from field: int64 open = 4;\n */\n open: bigint;\n\n /**\n * highest traded price in quote units scaled by 1e6\n *\n * @generated from field: int64 high = 5;\n */\n high: bigint;\n\n /**\n * lowest traded price in quote units scaled by 1e6\n *\n * @generated from field: int64 low = 6;\n */\n low: bigint;\n\n /**\n * closing price in quote units scaled by 1e6\n *\n * @generated from field: int64 close = 7;\n */\n close: bigint;\n\n /**\n * Traded base-asset quantity scaled by the pair's base_quantity_scale from\n * GetSpotConfig.\n *\n * @generated from field: int64 volume = 8;\n */\n volume: bigint;\n};\n\n/**\n * Describes the message marketdata.v1.Candle.\n * Use `create(CandleSchema)` to create a new message.\n */\nexport const CandleSchema: GenMessage<Candle> = /*@__PURE__*/\n messageDesc(file_marketdata_v1_marketdata, 8);\n\n/**\n * AssetConfig describes one spot asset returned by GetSpotConfig.\n *\n * @generated from message marketdata.v1.AssetConfig\n */\nexport type AssetConfig = Message<\"marketdata.v1.AssetConfig\"> & {\n /**\n * Asset code, e.g. \"USDT\" or \"BTC\".\n *\n * @generated from field: string asset = 1;\n */\n asset: string;\n\n /**\n * Stable numeric asset id used by account, balance, and order APIs.\n *\n * @generated from field: uint32 ledger_id = 2;\n */\n ledgerId: number;\n\n /**\n * Human-friendly display name, e.g. \"Bitcoin\".\n *\n * @generated from field: string name = 3;\n */\n name: string;\n\n /**\n * Suggested decimal precision for displaying user-facing asset amounts.\n *\n * @generated from field: uint32 quantity_display_decimals = 4;\n */\n quantityDisplayDecimals: number;\n\n /**\n * Integer scale for quantities and balances in this asset (0..18).\n * A scale of 8 means one whole asset is represented as 100000000 in scaled\n * integer fields such as qty_scaled.\n *\n * @generated from field: uint32 quantity_scale = 5;\n */\n quantityScale: number;\n};\n\n/**\n * Describes the message marketdata.v1.AssetConfig.\n * Use `create(AssetConfigSchema)` to create a new message.\n */\nexport const AssetConfigSchema: GenMessage<AssetConfig> = /*@__PURE__*/\n messageDesc(file_marketdata_v1_marketdata, 9);\n\n/**\n * PairMarketdataConfig describes market-data display settings for a spot pair.\n *\n * @generated from message marketdata.v1.PairMarketdataConfig\n */\nexport type PairMarketdataConfig = Message<\"marketdata.v1.PairMarketdataConfig\"> & {\n /**\n * Suggested order book aggregation bucket sizes in quote-asset price units,\n * e.g. 0.01, 0.1, 1, or 10.\n *\n * @generated from field: repeated double orderbook_price_buckets = 1;\n */\n orderbookPriceBuckets: number[];\n};\n\n/**\n * Describes the message marketdata.v1.PairMarketdataConfig.\n * Use `create(PairMarketdataConfigSchema)` to create a new message.\n */\nexport const PairMarketdataConfigSchema: GenMessage<PairMarketdataConfig> = /*@__PURE__*/\n messageDesc(file_marketdata_v1_marketdata, 10);\n\n/**\n * PairConfig describes one spot trading pair and its trading constraints.\n *\n * @generated from message marketdata.v1.PairConfig\n */\nexport type PairConfig = Message<\"marketdata.v1.PairConfig\"> & {\n /**\n * Stable numeric pair id used by low-latency ConnectRPC requests and streams.\n *\n * @generated from field: uint32 symbol_id = 1;\n */\n symbolId: number;\n\n /**\n * Trading pair symbol, e.g. \"BTC-USDT\".\n *\n * @generated from field: string symbol = 2;\n */\n symbol: string;\n\n /**\n * Base asset code. For BTC-USDT, this is \"BTC\".\n *\n * @generated from field: string base_asset = 3;\n */\n baseAsset: string;\n\n /**\n * Quote asset code. For BTC-USDT, this is \"USDT\".\n *\n * @generated from field: string quote_asset = 4;\n */\n quoteAsset: string;\n\n /**\n * Minimum allowed price increment as a decimal string in quote-asset units.\n * Prices use 6 decimal places in scaled integer fields; for example \"0.01\"\n * means orders must be priced in 0.01 quote-asset increments.\n *\n * @generated from field: string tick_size = 5;\n */\n tickSize: string;\n\n /**\n * Minimum allowed quantity increment as a decimal string in base-asset units.\n *\n * @generated from field: string step_size = 6;\n */\n stepSize: string;\n\n /**\n * Minimum order notional as a decimal string in quote-asset units.\n *\n * @generated from field: string min_notional_quote = 7;\n */\n minNotionalQuote: string;\n\n /**\n * Minimum order quantity as a decimal string in base-asset units.\n *\n * @generated from field: string min_qty_base = 8;\n */\n minQtyBase: string;\n\n /**\n * Whether BUY order fees may be paid from the base asset instead of the\n * spent quote asset when the order request selects the base fee asset.\n *\n * @generated from field: bool allow_buy_fee_from_base = 9;\n */\n allowBuyFeeFromBase: boolean;\n\n /**\n * Quantity scale for base-asset amounts in this pair.\n *\n * @generated from field: uint32 base_quantity_scale = 10;\n */\n baseQuantityScale: number;\n\n /**\n * Quantity scale for quote-asset amounts in this pair.\n *\n * @generated from field: uint32 quote_quantity_scale = 11;\n */\n quoteQuantityScale: number;\n\n /**\n * Market-data display settings for this pair.\n *\n * @generated from field: marketdata.v1.PairMarketdataConfig marketdata = 12;\n */\n marketdata?: PairMarketdataConfig | undefined;\n\n /**\n * Scheduled listing timestamp. When unset, the pair has no explicit future\n * listing time.\n *\n * @generated from field: google.protobuf.Timestamp listing_at = 13;\n */\n listingAt?: Timestamp | undefined;\n\n /**\n * Scheduled delisting timestamp. When unset, the pair has no explicit\n * delisting time.\n *\n * @generated from field: google.protobuf.Timestamp delisting_at = 14;\n */\n delistingAt?: Timestamp | undefined;\n\n /**\n * Current trading status.\n *\n * @generated from field: marketdata.v1.PairStatus status = 15;\n */\n status: PairStatus;\n\n /**\n * Default MARKET order slippage cap for BUY orders, in basis points\n * (1 bp = 0.01%). A request-level slippage setting can override this value.\n *\n * @generated from field: int32 default_market_slippage_bps_buy = 16;\n */\n defaultMarketSlippageBpsBuy: number;\n\n /**\n * Default MARKET order slippage cap for SELL orders, in basis points\n * (1 bp = 0.01%). A request-level slippage setting can override this value.\n *\n * @generated from field: int32 default_market_slippage_bps_sell = 17;\n */\n defaultMarketSlippageBpsSell: number;\n\n /**\n * Maximum allowed drift between client reference price and server reference\n * price for MARKET orders, in basis points (1 bp = 0.01%), when client\n * reference pricing is used.\n *\n * @generated from field: int32 max_client_ref_drift_bps = 18;\n */\n maxClientRefDriftBps: number;\n};\n\n/**\n * Describes the message marketdata.v1.PairConfig.\n * Use `create(PairConfigSchema)` to create a new message.\n */\nexport const PairConfigSchema: GenMessage<PairConfig> = /*@__PURE__*/\n messageDesc(file_marketdata_v1_marketdata, 11);\n\n/**\n * GetSpotConfigRequest has no parameters.\n *\n * @generated from message marketdata.v1.GetSpotConfigRequest\n */\nexport type GetSpotConfigRequest = Message<\"marketdata.v1.GetSpotConfigRequest\"> & {\n};\n\n/**\n * Describes the message marketdata.v1.GetSpotConfigRequest.\n * Use `create(GetSpotConfigRequestSchema)` to create a new message.\n */\nexport const GetSpotConfigRequestSchema: GenMessage<GetSpotConfigRequest> = /*@__PURE__*/\n messageDesc(file_marketdata_v1_marketdata, 12);\n\n/**\n * GetSpotConfigResponse contains a cacheable spot reference-data snapshot.\n *\n * @generated from message marketdata.v1.GetSpotConfigResponse\n */\nexport type GetSpotConfigResponse = Message<\"marketdata.v1.GetSpotConfigResponse\"> & {\n /**\n * Assets ordered by asset code in ascending alphabetical order.\n *\n * @generated from field: repeated marketdata.v1.AssetConfig assets = 1;\n */\n assets: AssetConfig[];\n\n /**\n * Pairs ordered by symbol in ascending alphabetical order.\n *\n * @generated from field: repeated marketdata.v1.PairConfig pairs = 2;\n */\n pairs: PairConfig[];\n\n /**\n * Snapshot generation timestamp, in seconds since the Unix epoch (UTC).\n *\n * @generated from field: uint64 ts_sec = 3;\n */\n tsSec: bigint;\n};\n\n/**\n * Describes the message marketdata.v1.GetSpotConfigResponse.\n * Use `create(GetSpotConfigResponseSchema)` to create a new message.\n */\nexport const GetSpotConfigResponseSchema: GenMessage<GetSpotConfigResponse> = /*@__PURE__*/\n messageDesc(file_marketdata_v1_marketdata, 13);\n\n/**\n * SideFilter controls which aggressor side of trades to return.\n *\n * @generated from enum marketdata.v1.SideFilter\n */\nexport enum SideFilter {\n /**\n * Return trades from both BUY and SELL aggressors.\n *\n * @generated from enum value: SIDE_UNSPECIFIED = 0;\n */\n SIDE_UNSPECIFIED = 0,\n\n /**\n * Return trades where the taker/aggressor was buying the base asset.\n *\n * @generated from enum value: BUY = 1;\n */\n BUY = 1,\n\n /**\n * Return trades where the taker/aggressor was selling the base asset.\n *\n * @generated from enum value: SELL = 2;\n */\n SELL = 2,\n}\n\n/**\n * Describes the enum marketdata.v1.SideFilter.\n */\nexport const SideFilterSchema: GenEnum<SideFilter> = /*@__PURE__*/\n enumDesc(file_marketdata_v1_marketdata, 0);\n\n/**\n * Timeframe represents an OHLCV candle bucket.\n *\n * Most values are fixed-duration buckets. `MONTH_1` is calendar-based (UTC\n * month boundaries).\n *\n * @generated from enum marketdata.v1.Timeframe\n */\nexport enum Timeframe {\n /**\n * @generated from enum value: TIMEFRAME_UNSPECIFIED = 0;\n */\n TIMEFRAME_UNSPECIFIED = 0,\n\n /**\n * 1 second\n *\n * @generated from enum value: SEC_1 = 1;\n */\n SEC_1 = 1,\n\n /**\n * 1 minute\n *\n * @generated from enum value: MIN_1 = 2;\n */\n MIN_1 = 2,\n\n /**\n * 5 minutes\n *\n * @generated from enum value: MIN_5 = 3;\n */\n MIN_5 = 3,\n\n /**\n * 15 minutes\n *\n * @generated from enum value: MIN_15 = 4;\n */\n MIN_15 = 4,\n\n /**\n * 30 minutes\n *\n * @generated from enum value: MIN_30 = 5;\n */\n MIN_30 = 5,\n\n /**\n * 1 hour\n *\n * @generated from enum value: HOUR_1 = 6;\n */\n HOUR_1 = 6,\n\n /**\n * 4 hours\n *\n * @generated from enum value: HOUR_4 = 7;\n */\n HOUR_4 = 7,\n\n /**\n * 1 day\n *\n * @generated from enum value: DAY_1 = 8;\n */\n DAY_1 = 8,\n\n /**\n * 12 hours\n *\n * @generated from enum value: HOUR_12 = 9;\n */\n HOUR_12 = 9,\n\n /**\n * 1 week\n *\n * @generated from enum value: WEEK_1 = 10;\n */\n WEEK_1 = 10,\n\n /**\n * 1 month (calendar month, UTC)\n *\n * @generated from enum value: MONTH_1 = 11;\n */\n MONTH_1 = 11,\n}\n\n/**\n * Describes the enum marketdata.v1.Timeframe.\n */\nexport const TimeframeSchema: GenEnum<Timeframe> = /*@__PURE__*/\n enumDesc(file_marketdata_v1_marketdata, 1);\n\n/**\n * PairStatus describes which order mutations a spot pair currently accepts.\n *\n * @generated from enum marketdata.v1.PairStatus\n */\nexport enum PairStatus {\n /**\n * Pair status was not provided.\n *\n * @generated from enum value: PAIR_STATUS_UNSPECIFIED = 0;\n */\n UNSPECIFIED = 0,\n\n /**\n * New orders and cancellations are accepted.\n *\n * @generated from enum value: PAIR_STATUS_ENABLED = 1;\n */\n ENABLED = 1,\n\n /**\n * New orders are temporarily disabled.\n *\n * @generated from enum value: PAIR_STATUS_DISABLED = 2;\n */\n DISABLED = 2,\n\n /**\n * Only cancellations are accepted.\n *\n * @generated from enum value: PAIR_STATUS_CANCEL_ONLY = 3;\n */\n CANCEL_ONLY = 3,\n\n /**\n * New orders must use a post-only execution variant.\n *\n * @generated from enum value: PAIR_STATUS_POST_ONLY = 4;\n */\n POST_ONLY = 4,\n\n /**\n * New spot orders are blocked by reduce-only policy.\n *\n * @generated from enum value: PAIR_STATUS_REDUCE_ONLY = 5;\n */\n REDUCE_ONLY = 5,\n}\n\n/**\n * Describes the enum marketdata.v1.PairStatus.\n */\nexport const PairStatusSchema: GenEnum<PairStatus> = /*@__PURE__*/\n enumDesc(file_marketdata_v1_marketdata, 2);\n\n/**\n * @generated from service marketdata.v1.MarketDataService\n */\nexport const MarketDataService: GenService<{\n /**\n * Retrieve recent public trades for a spot market.\n * Results are ordered newest-first and support optional aggressor side,\n * inclusive time-range, and opaque keyset pagination filters.\n *\n * @generated from rpc marketdata.v1.MarketDataService.GetTrades\n */\n getTrades: {\n methodKind: \"unary\";\n input: typeof GetTradesRequestSchema;\n output: typeof GetTradesResponseSchema;\n },\n /**\n * Retrieve OHLCV candles for a spot market and timeframe.\n * Results are ordered newest-first and support inclusive time bounds, optional\n * current open candle inclusion, and optional composite reference candles.\n *\n * @generated from rpc marketdata.v1.MarketDataService.GetCandles\n */\n getCandles: {\n methodKind: \"unary\";\n input: typeof GetCandlesRequestSchema;\n output: typeof GetCandlesResponseSchema;\n },\n /**\n * GetCandlesColumns returns OHLCV candles in a columnar representation optimized for charting.\n * This method is intended for ConnectRPC clients and returns scaled integers:\n * OHLC prices use 1e6 quote-unit scale, and volumes use base_quantity_scale.\n *\n * @generated from rpc marketdata.v1.MarketDataService.GetCandlesColumns\n */\n getCandlesColumns: {\n methodKind: \"unary\";\n input: typeof GetCandlesColumnsRequestSchema;\n output: typeof GetCandlesColumnsResponseSchema;\n },\n /**\n * Retrieve a cacheable snapshot of spot assets and pairs, including precision and trading constraints.\n *\n * @generated from rpc marketdata.v1.MarketDataService.GetSpotConfig\n */\n getSpotConfig: {\n methodKind: \"unary\";\n input: typeof GetSpotConfigRequestSchema;\n output: typeof GetSpotConfigResponseSchema;\n },\n}> = /*@__PURE__*/\n serviceDesc(file_marketdata_v1_marketdata, 0);\n\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAcA,MAAa,gCACX,uBAAS,w0JAAw0J,CAAC,gCAAgC,0BAA0B,CAAC;;;;;AA+D/4J,MAAa,yBACX,0BAAY,+BAA+B,CAAC;;;;;AA2D9C,MAAa,oBACX,0BAAY,+BAA+B,CAAC;;;;;AA4B9C,MAAa,0BACX,0BAAY,+BAA+B,CAAC;;;;;AAoF9C,MAAa,0BACX,0BAAY,+BAA+B,CAAC;;;;;AAoF9C,MAAa,iCACX,0BAAY,+BAA+B,CAAC;;;;;AAmE9C,MAAa,oBACX,0BAAY,+BAA+B,CAAC;;;;;AAqD9C,MAAa,2BACX,0BAAY,+BAA+B,CAAC;;;;;AA4H9C,MAAa,kCACX,0BAAY,+BAA+B,CAAC;;;;;AAsE9C,MAAa,eACX,0BAAY,+BAA+B,CAAC;;;;;AAkD9C,MAAa,oBACX,0BAAY,+BAA+B,CAAC;;;;;AAqB9C,MAAa,6BACX,0BAAY,+BAA+B,EAAE;;;;;AAoJ/C,MAAa,mBACX,0BAAY,+BAA+B,EAAE;;;;;AAc/C,MAAa,6BACX,0BAAY,+BAA+B,EAAE;;;;;AAkC/C,MAAa,8BACX,0BAAY,+BAA+B,EAAE;;;;;;AAO/C,IAAY,aAAL,yBAAA,YAAA;;;;;;CAML,WAAA,WAAA,sBAAA,KAAA;;;;;;CAOA,WAAA,WAAA,SAAA,KAAA;;;;;;CAOA,WAAA,WAAA,UAAA,KAAA;;AACF,EAAA,CAAA,CAAA;;;;AAKA,MAAa,mBACX,uBAAS,+BAA+B,CAAC;;;;;;;;;AAU3C,IAAY,YAAL,yBAAA,WAAA;;;;CAIL,UAAA,UAAA,2BAAA,KAAA;;;;;;CAOA,UAAA,UAAA,WAAA,KAAA;;;;;;CAOA,UAAA,UAAA,WAAA,KAAA;;;;;;CAOA,UAAA,UAAA,WAAA,KAAA;;;;;;CAOA,UAAA,UAAA,YAAA,KAAA;;;;;;CAOA,UAAA,UAAA,YAAA,KAAA;;;;;;CAOA,UAAA,UAAA,YAAA,KAAA;;;;;;CAOA,UAAA,UAAA,YAAA,KAAA;;;;;;CAOA,UAAA,UAAA,WAAA,KAAA;;;;;;CAOA,UAAA,UAAA,aAAA,KAAA;;;;;;CAOA,UAAA,UAAA,YAAA,MAAA;;;;;;CAOA,UAAA,UAAA,aAAA,MAAA;;AACF,EAAA,CAAA,CAAA;;;;AAKA,MAAa,kBACX,uBAAS,+BAA+B,CAAC;;;;;;AAO3C,IAAY,aAAL,yBAAA,YAAA;;;;;;CAML,WAAA,WAAA,iBAAA,KAAA;;;;;;CAOA,WAAA,WAAA,aAAA,KAAA;;;;;;CAOA,WAAA,WAAA,cAAA,KAAA;;;;;;CAOA,WAAA,WAAA,iBAAA,KAAA;;;;;;CAOA,WAAA,WAAA,eAAA,KAAA;;;;;;CAOA,WAAA,WAAA,iBAAA,KAAA;;AACF,EAAA,CAAA,CAAA;;;;AAKA,MAAa,mBACX,uBAAS,+BAA+B,CAAC;;;;AAK3C,MAAa,oBAgDX,0BAAY,+BAA+B,CAAC"}
1
+ {"version":3,"file":"marketdata_pb.js","names":[],"sources":["../../../../src/gen/marketdata/v1/marketdata_pb.ts"],"sourcesContent":["// @generated by protoc-gen-es v2.13.0 with parameter \"target=ts,import_extension=js\"\n// @generated from file marketdata/v1/marketdata.proto (package marketdata.v1, syntax proto3)\n/* eslint-disable */\n\nimport type { GenEnum, GenFile, GenMessage, GenService } from \"@bufbuild/protobuf/codegenv2\";\nimport { enumDesc, fileDesc, messageDesc, serviceDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { Timestamp } from \"@bufbuild/protobuf/wkt\";\nimport { file_google_protobuf_timestamp } from \"@bufbuild/protobuf/wkt\";\nimport { file_polyester_api_options } from \"../../polyester/api/options_pb.js\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file marketdata/v1/marketdata.proto.\n */\nexport const file_marketdata_v1_marketdata: GenFile = /*@__PURE__*/\n fileDesc(\"Ch5tYXJrZXRkYXRhL3YxL21hcmtldGRhdGEucHJvdG8SDW1hcmtldGRhdGEudjEi2QEKEEdldFRyYWRlc1JlcXVlc3QSEwoJc3ltYm9sX2lkGAEgASgNQgASDwoFbGltaXQYAiABKA1CABIuCgpzdGFydF90aW1lGAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIsCghlbmRfdGltZRgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASKQoEc2lkZRgFIAEoDjIZLm1hcmtldGRhdGEudjEuU2lkZUZpbHRlckIAEhQKCnBhZ2VfdG9rZW4YBiABKAlCADoAInoKC01hcmtldFRyYWRlEhEKCXN5bWJvbF9pZBgBIAEoDRIQCghtYXRjaF9pZBgCIAEoBBIOCgZpc19idXkYAyABKAgSEwoLcHJpY2VfdGlja3MYBCABKAMSEgoKcXR5X3NjYWxlZBgFIAEoAxINCgV0c19ucxgGIAEoBCJaChFHZXRUcmFkZXNSZXNwb25zZRIqCgZ0cmFkZXMYASADKAsyGi5tYXJrZXRkYXRhLnYxLk1hcmtldFRyYWRlEhkKD25leHRfcGFnZV90b2tlbhgCIAEoCUIAIpUCChFHZXRDYW5kbGVzUmVxdWVzdBITCglzeW1ib2xfaWQYASABKA1CABItCgl0aW1lZnJhbWUYAiABKA4yGC5tYXJrZXRkYXRhLnYxLlRpbWVmcmFtZUIAEg8KBWxpbWl0GAMgASgNQgASLgoKc3RhcnRfdGltZRgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLAoIZW5kX3RpbWUYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhoKEmluY2x1ZGVfaW5jb21wbGV0ZRgGIAEoCBIZChFpbmNsdWRlX3JlZmVyZW5jZRgHIAEoCBIUCgpwYWdlX3Rva2VuGAggASgJQgA6ACKcAgoYR2V0Q2FuZGxlc0NvbHVtbnNSZXF1ZXN0EhMKCXN5bWJvbF9pZBgBIAEoDUIAEi0KCXRpbWVmcmFtZRgCIAEoDjIYLm1hcmtldGRhdGEudjEuVGltZWZyYW1lQgASDwoFbGltaXQYAyABKA1CABIuCgpzdGFydF90aW1lGAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIsCghlbmRfdGltZRgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASGgoSaW5jbHVkZV9pbmNvbXBsZXRlGAYgASgIEhkKEWluY2x1ZGVfcmVmZXJlbmNlGAcgASgIEhQKCnBhZ2VfdG9rZW4YCCABKAlCADoAIo4BCgtDYW5kbGVQb2ludBIOCgZ0c19zZWMYASABKAQSDAoEb3BlbhgCIAEoAxIMCgRoaWdoGAMgASgDEgsKA2xvdxgEIAEoAxINCgVjbG9zZRgFIAEoAxIOCgZ2b2x1bWUYBiABKAMSEQoJaXNfY2xvc2VkGAcgASgIEhQKDHF1b3RlX3ZvbHVtZRgIIAEoCSLTAQoSR2V0Q2FuZGxlc1Jlc3BvbnNlEhEKCXN5bWJvbF9pZBgBIAEoDRIrCgl0aW1lZnJhbWUYAiABKA4yGC5tYXJrZXRkYXRhLnYxLlRpbWVmcmFtZRIrCgdjYW5kbGVzGAMgAygLMhoubWFya2V0ZGF0YS52MS5DYW5kbGVQb2ludBI1ChFyZWZlcmVuY2VfY2FuZGxlcxgEIAMoCzIaLm1hcmtldGRhdGEudjEuQ2FuZGxlUG9pbnQSGQoPbmV4dF9wYWdlX3Rva2VuGAUgASgJQgAi+AIKGUdldENhbmRsZXNDb2x1bW5zUmVzcG9uc2USEQoJc3ltYm9sX2lkGAEgASgNEisKCXRpbWVmcmFtZRgCIAEoDjIYLm1hcmtldGRhdGEudjEuVGltZWZyYW1lEg4KBnRzX3NlYxgDIAMoBBIMCgRvcGVuGAQgAygDEgwKBGhpZ2gYBSADKAMSCwoDbG93GAYgAygDEg0KBWNsb3NlGAcgAygDEg4KBnZvbHVtZRgIIAMoAxIYChByZWZlcmVuY2VfdHNfc2VjGAkgAygEEhYKDnJlZmVyZW5jZV9vcGVuGAogAygDEhYKDnJlZmVyZW5jZV9oaWdoGAsgAygDEhUKDXJlZmVyZW5jZV9sb3cYDCADKAMSFwoPcmVmZXJlbmNlX2Nsb3NlGA0gAygDEhgKEHJlZmVyZW5jZV92b2x1bWUYDiADKAMSGQoPbmV4dF9wYWdlX3Rva2VuGA8gASgJQgASFAoMcXVvdGVfdm9sdW1lGBAgAygJIrYBCgZDYW5kbGUSEQoJc3ltYm9sX2lkGAEgASgNEisKCXRpbWVmcmFtZRgCIAEoDjIYLm1hcmtldGRhdGEudjEuVGltZWZyYW1lEg4KBnRzX3NlYxgDIAEoBBIMCgRvcGVuGAQgASgDEgwKBGhpZ2gYBSABKAMSCwoDbG93GAYgASgDEg0KBWNsb3NlGAcgASgDEg4KBnZvbHVtZRgIIAEoAxIUCgxxdW90ZV92b2x1bWUYCSABKAkieAoLQXNzZXRDb25maWcSDQoFYXNzZXQYASABKAkSEQoJbGVkZ2VyX2lkGAIgASgNEgwKBG5hbWUYAyABKAkSIQoZcXVhbnRpdHlfZGlzcGxheV9kZWNpbWFscxgEIAEoDRIWCg5xdWFudGl0eV9zY2FsZRgFIAEoDSI3ChRQYWlyTWFya2V0ZGF0YUNvbmZpZxIfChdvcmRlcmJvb2tfcHJpY2VfYnVja2V0cxgBIAMoASLHBAoKUGFpckNvbmZpZxIRCglzeW1ib2xfaWQYASABKA0SDgoGc3ltYm9sGAIgASgJEhIKCmJhc2VfYXNzZXQYAyABKAkSEwoLcXVvdGVfYXNzZXQYBCABKAkSEQoJdGlja19zaXplGAUgASgJEhEKCXN0ZXBfc2l6ZRgGIAEoCRIaChJtaW5fbm90aW9uYWxfcXVvdGUYByABKAkSFAoMbWluX3F0eV9iYXNlGAggASgJEh8KF2FsbG93X2J1eV9mZWVfZnJvbV9iYXNlGAkgASgIEhsKE2Jhc2VfcXVhbnRpdHlfc2NhbGUYCiABKA0SHAoUcXVvdGVfcXVhbnRpdHlfc2NhbGUYCyABKA0SNwoKbWFya2V0ZGF0YRgMIAEoCzIjLm1hcmtldGRhdGEudjEuUGFpck1hcmtldGRhdGFDb25maWcSLgoKbGlzdGluZ19hdBgNIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASMAoMZGVsaXN0aW5nX2F0GA4gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIpCgZzdGF0dXMYDyABKA4yGS5tYXJrZXRkYXRhLnYxLlBhaXJTdGF0dXMSJwofZGVmYXVsdF9tYXJrZXRfc2xpcHBhZ2VfYnBzX2J1eRgQIAEoBRIoCiBkZWZhdWx0X21hcmtldF9zbGlwcGFnZV9icHNfc2VsbBgRIAEoBRIgChhtYXhfY2xpZW50X3JlZl9kcmlmdF9icHMYEiABKAUiFgoUR2V0U3BvdENvbmZpZ1JlcXVlc3QifQoVR2V0U3BvdENvbmZpZ1Jlc3BvbnNlEioKBmFzc2V0cxgBIAMoCzIaLm1hcmtldGRhdGEudjEuQXNzZXRDb25maWcSKAoFcGFpcnMYAiADKAsyGS5tYXJrZXRkYXRhLnYxLlBhaXJDb25maWcSDgoGdHNfc2VjGAMgASgEKjUKClNpZGVGaWx0ZXISFAoQU0lERV9VTlNQRUNJRklFRBAAEgcKA0JVWRABEggKBFNFTEwQAiqoAQoJVGltZWZyYW1lEhkKFVRJTUVGUkFNRV9VTlNQRUNJRklFRBAAEgkKBVNFQ18xEAESCQoFTUlOXzEQAhIJCgVNSU5fNRADEgoKBk1JTl8xNRAEEgoKBk1JTl8zMBAFEgoKBkhPVVJfMRAGEgoKBkhPVVJfNBAHEgkKBURBWV8xEAgSCwoHSE9VUl8xMhAJEgoKBldFRUtfMRAKEgsKB01PTlRIXzEQCyqxAQoKUGFpclN0YXR1cxIbChdQQUlSX1NUQVRVU19VTlNQRUNJRklFRBAAEhcKE1BBSVJfU1RBVFVTX0VOQUJMRUQQARIYChRQQUlSX1NUQVRVU19ESVNBQkxFRBACEhsKF1BBSVJfU1RBVFVTX0NBTkNFTF9PTkxZEAMSGQoVUEFJUl9TVEFUVVNfUE9TVF9PTkxZEAQSGwoXUEFJUl9TVEFUVVNfUkVEVUNFX09OTFkQBTKCAwoRTWFya2V0RGF0YVNlcnZpY2USUAoJR2V0VHJhZGVzEh8ubWFya2V0ZGF0YS52MS5HZXRUcmFkZXNSZXF1ZXN0GiAubWFya2V0ZGF0YS52MS5HZXRUcmFkZXNSZXNwb25zZSIAElMKCkdldENhbmRsZXMSIC5tYXJrZXRkYXRhLnYxLkdldENhbmRsZXNSZXF1ZXN0GiEubWFya2V0ZGF0YS52MS5HZXRDYW5kbGVzUmVzcG9uc2UiABJoChFHZXRDYW5kbGVzQ29sdW1ucxInLm1hcmtldGRhdGEudjEuR2V0Q2FuZGxlc0NvbHVtbnNSZXF1ZXN0GigubWFya2V0ZGF0YS52MS5HZXRDYW5kbGVzQ29sdW1uc1Jlc3BvbnNlIgASXAoNR2V0U3BvdENvbmZpZxIjLm1hcmtldGRhdGEudjEuR2V0U3BvdENvbmZpZ1JlcXVlc3QaJC5tYXJrZXRkYXRhLnYxLkdldFNwb3RDb25maWdSZXNwb25zZSIAQkhaRmdpdGh1Yi5jb20vRmFicmljLUxhYnMvcG9seWVzdGVyLXNkay1nby9nZW4vbWFya2V0ZGF0YS92MTttYXJrZXRkYXRhdjFiBnByb3RvMw==\", [file_google_protobuf_timestamp, file_polyester_api_options]);\n\n/**\n * GetTradesRequest selects recent public trades for one spot market.\n *\n * Results are ordered newest-first by execution timestamp, with match_id as a\n * tie-breaker. When both start_time and end_time are set, both bounds are\n * inclusive.\n *\n * @generated from message marketdata.v1.GetTradesRequest\n */\nexport type GetTradesRequest = Message<\"marketdata.v1.GetTradesRequest\"> & {\n /**\n * Stable numeric pair id from GetSpotConfig.\n *\n * @generated from field: uint32 symbol_id = 1;\n */\n symbolId: number;\n\n /**\n * Maximum number of trades to return. Defaults to 100 when unset; max 1000.\n *\n * @generated from field: uint32 limit = 2;\n */\n limit: number;\n\n /**\n * Inclusive lower bound for trade execution time. Must not be more than\n * 5 minutes in the future.\n *\n * @generated from field: google.protobuf.Timestamp start_time = 3;\n */\n startTime?: Timestamp | undefined;\n\n /**\n * Inclusive upper bound for trade execution time. Must be greater than or\n * equal to start_time when both are set, and must not be more than 5 minutes\n * in the future.\n *\n * @generated from field: google.protobuf.Timestamp end_time = 4;\n */\n endTime?: Timestamp | undefined;\n\n /**\n * Optional filter by trade aggressor side. Unspecified returns both sides.\n *\n * @generated from field: marketdata.v1.SideFilter side = 5;\n */\n side: SideFilter;\n\n /**\n * Opaque keyset cursor from a previous response. The cursor is exclusive and\n * bound to symbol, time bounds, side filter, and newest-first sort order.\n *\n * @generated from field: string page_token = 6;\n */\n pageToken: string;\n};\n\n/**\n * Describes the message marketdata.v1.GetTradesRequest.\n * Use `create(GetTradesRequestSchema)` to create a new message.\n */\nexport const GetTradesRequestSchema: GenMessage<GetTradesRequest> = /*@__PURE__*/\n messageDesc(file_marketdata_v1_marketdata, 0);\n\n/**\n * MarketTrade is one public trade print represented with scaled integers.\n *\n * REST responses render price and quantity as decimal strings.\n *\n * @generated from message marketdata.v1.MarketTrade\n */\nexport type MarketTrade = Message<\"marketdata.v1.MarketTrade\"> & {\n /**\n * Stable numeric pair id from GetSpotConfig.\n *\n * @generated from field: uint32 symbol_id = 1;\n */\n symbolId: number;\n\n /**\n * Stable trade id within the symbol, suitable for pagination and de-duplication.\n *\n * @generated from field: uint64 match_id = 2;\n */\n matchId: bigint;\n\n /**\n * True when the taker/aggressor bought the base asset; false when the\n * taker/aggressor sold the base asset.\n *\n * @generated from field: bool is_buy = 3;\n */\n isBuy: boolean;\n\n /**\n * Trade price in quote-asset units scaled by 1e6.\n *\n * @generated from field: int64 price_ticks = 4;\n */\n priceTicks: bigint;\n\n /**\n * Traded base-asset quantity scaled by the pair's base_quantity_scale from\n * GetSpotConfig.\n *\n * @generated from field: int64 qty_scaled = 5;\n */\n qtyScaled: bigint;\n\n /**\n * Trade execution timestamp, in nanoseconds since the Unix epoch (UTC).\n *\n * @generated from field: uint64 ts_ns = 6;\n */\n tsNs: bigint;\n};\n\n/**\n * Describes the message marketdata.v1.MarketTrade.\n * Use `create(MarketTradeSchema)` to create a new message.\n */\nexport const MarketTradeSchema: GenMessage<MarketTrade> = /*@__PURE__*/\n messageDesc(file_marketdata_v1_marketdata, 1);\n\n/**\n * GetTradesResponse contains public trades for one spot market.\n *\n * @generated from message marketdata.v1.GetTradesResponse\n */\nexport type GetTradesResponse = Message<\"marketdata.v1.GetTradesResponse\"> & {\n /**\n * Trades ordered newest-first by execution timestamp, with match_id as a\n * tie-breaker.\n *\n * @generated from field: repeated marketdata.v1.MarketTrade trades = 1;\n */\n trades: MarketTrade[];\n\n /**\n * Opaque cursor for the next page. Empty when no more results exist.\n *\n * @generated from field: string next_page_token = 2;\n */\n nextPageToken: string;\n};\n\n/**\n * Describes the message marketdata.v1.GetTradesResponse.\n * Use `create(GetTradesResponseSchema)` to create a new message.\n */\nexport const GetTradesResponseSchema: GenMessage<GetTradesResponse> = /*@__PURE__*/\n messageDesc(file_marketdata_v1_marketdata, 2);\n\n/**\n * GetCandlesRequest selects a spot market candle series.\n *\n * The response is ordered newest-first by candle bucket start time. When both\n * start_time and end_time are set, both bounds are inclusive.\n *\n * @generated from message marketdata.v1.GetCandlesRequest\n */\nexport type GetCandlesRequest = Message<\"marketdata.v1.GetCandlesRequest\"> & {\n /**\n * Numeric spot market identifier.\n *\n * @generated from field: uint32 symbol_id = 1;\n */\n symbolId: number;\n\n /**\n * Candle bucket size. Required for ConnectRPC clients.\n *\n * @generated from field: marketdata.v1.Timeframe timeframe = 2;\n */\n timeframe: Timeframe;\n\n /**\n * Maximum number of closed candles to return. Defaults to 500 when unset;\n * max 10000.\n *\n * @generated from field: uint32 limit = 3;\n */\n limit: number;\n\n /**\n * Inclusive lower bound for candle bucket start time, as a UTC timestamp.\n * Must not be more than 5 minutes in the future.\n *\n * @generated from field: google.protobuf.Timestamp start_time = 4;\n */\n startTime?: Timestamp | undefined;\n\n /**\n * Inclusive upper bound for candle bucket start time, as a UTC timestamp.\n * Must be greater than or equal to start_time when both are set, and must not\n * be more than 5 minutes in the future.\n *\n * @generated from field: google.protobuf.Timestamp end_time = 5;\n */\n endTime?: Timestamp | undefined;\n\n /**\n * Include the current open candle when it is available and inside the\n * requested range.\n * The open candle is prepended to the newest-first candle list and does not\n * count toward the closed-candle limit.\n *\n * @generated from field: bool include_incomplete = 6;\n */\n includeIncomplete: boolean;\n\n /**\n * Include the composite reference market candle series for the same market,\n * timeframe, and time range.\n * The reference series can be empty when no reference series is available for\n * the requested timeframe.\n *\n * @generated from field: bool include_reference = 7;\n */\n includeReference: boolean;\n\n /**\n * Opaque keyset cursor from a previous response. The cursor is exclusive and\n * bound to symbol, timeframe, time bounds, and newest-first candle ordering.\n * Inclusion flags affect response enrichment and may change between pages.\n *\n * @generated from field: string page_token = 8;\n */\n pageToken: string;\n};\n\n/**\n * Describes the message marketdata.v1.GetCandlesRequest.\n * Use `create(GetCandlesRequestSchema)` to create a new message.\n */\nexport const GetCandlesRequestSchema: GenMessage<GetCandlesRequest> = /*@__PURE__*/\n messageDesc(file_marketdata_v1_marketdata, 3);\n\n/**\n * GetCandlesColumnsRequest selects a spot market candle series for columnar output.\n *\n * The response is ordered oldest-first for efficient chart ingestion. When both\n * start_time and end_time are set, both bounds are inclusive.\n *\n * @generated from message marketdata.v1.GetCandlesColumnsRequest\n */\nexport type GetCandlesColumnsRequest = Message<\"marketdata.v1.GetCandlesColumnsRequest\"> & {\n /**\n * Numeric spot market identifier.\n *\n * @generated from field: uint32 symbol_id = 1;\n */\n symbolId: number;\n\n /**\n * Candle bucket size. Required for ConnectRPC clients.\n *\n * @generated from field: marketdata.v1.Timeframe timeframe = 2;\n */\n timeframe: Timeframe;\n\n /**\n * Maximum number of closed candles to return. Defaults to 500 when unset;\n * max 10000.\n *\n * @generated from field: uint32 limit = 3;\n */\n limit: number;\n\n /**\n * Inclusive lower bound for candle bucket start time, as a UTC timestamp.\n * Must not be more than 5 minutes in the future.\n *\n * @generated from field: google.protobuf.Timestamp start_time = 4;\n */\n startTime?: Timestamp | undefined;\n\n /**\n * Inclusive upper bound for candle bucket start time, as a UTC timestamp.\n * Must be greater than or equal to start_time when both are set, and must not\n * be more than 5 minutes in the future.\n *\n * @generated from field: google.protobuf.Timestamp end_time = 5;\n */\n endTime?: Timestamp | undefined;\n\n /**\n * Include the current open candle when it is available and inside the\n * requested range.\n * The open candle is prepended to the newest-first candle list and does not\n * count toward the closed-candle limit.\n *\n * @generated from field: bool include_incomplete = 6;\n */\n includeIncomplete: boolean;\n\n /**\n * Include the composite reference market candle series for the same market,\n * timeframe, and time range.\n * The reference series can be empty when no reference series is available for\n * the requested timeframe.\n *\n * @generated from field: bool include_reference = 7;\n */\n includeReference: boolean;\n\n /**\n * Opaque keyset cursor from a previous response. The cursor is exclusive and\n * bound to symbol, timeframe, time bounds, and oldest-first candle ordering.\n * Inclusion flags and columnar response shape may change between pages.\n *\n * @generated from field: string page_token = 8;\n */\n pageToken: string;\n};\n\n/**\n * Describes the message marketdata.v1.GetCandlesColumnsRequest.\n * Use `create(GetCandlesColumnsRequestSchema)` to create a new message.\n */\nexport const GetCandlesColumnsRequestSchema: GenMessage<GetCandlesColumnsRequest> = /*@__PURE__*/\n messageDesc(file_marketdata_v1_marketdata, 4);\n\n/**\n * CandlePoint is one OHLCV bucket represented with scaled integers.\n *\n * REST responses render these values as decimal strings in tuple order:\n * [ts_sec, open, high, low, close, volume, quote_volume].\n *\n * @generated from message marketdata.v1.CandlePoint\n */\nexport type CandlePoint = Message<\"marketdata.v1.CandlePoint\"> & {\n /**\n * Candle bucket start timestamp, in seconds since epoch (UTC).\n *\n * @generated from field: uint64 ts_sec = 1;\n */\n tsSec: bigint;\n\n /**\n * Opening price in quote units scaled by 1e6.\n *\n * @generated from field: int64 open = 2;\n */\n open: bigint;\n\n /**\n * Highest traded price in quote units scaled by 1e6.\n *\n * @generated from field: int64 high = 3;\n */\n high: bigint;\n\n /**\n * Lowest traded price in quote units scaled by 1e6.\n *\n * @generated from field: int64 low = 4;\n */\n low: bigint;\n\n /**\n * Closing price in quote units scaled by 1e6.\n *\n * @generated from field: int64 close = 5;\n */\n close: bigint;\n\n /**\n * Traded base-asset quantity scaled by the market's base asset quantity_scale\n * from GetSpotConfig.\n *\n * @generated from field: int64 volume = 6;\n */\n volume: bigint;\n\n /**\n * True only for WebSocket terminal updates of a closed bucket.\n * Historical API rows and current open-candle rows set this to false.\n *\n * @generated from field: bool is_closed = 7;\n */\n isClosed: boolean;\n\n /**\n * Exact traded quote-asset volume as a human-readable decimal string.\n * This is sum(execution price × execution quantity), not close × base volume.\n *\n * @generated from field: string quote_volume = 8;\n */\n quoteVolume: string;\n};\n\n/**\n * Describes the message marketdata.v1.CandlePoint.\n * Use `create(CandlePointSchema)` to create a new message.\n */\nexport const CandlePointSchema: GenMessage<CandlePoint> = /*@__PURE__*/\n messageDesc(file_marketdata_v1_marketdata, 5);\n\n/**\n * GetCandlesResponse contains OHLCV candles for one spot market and timeframe.\n *\n * Candles and reference_candles are ordered newest-first by ts_sec. REST\n * responses render price and volume values as decimal strings.\n *\n * @generated from message marketdata.v1.GetCandlesResponse\n */\nexport type GetCandlesResponse = Message<\"marketdata.v1.GetCandlesResponse\"> & {\n /**\n * Numeric spot market identifier echoed from the request.\n *\n * @generated from field: uint32 symbol_id = 1;\n */\n symbolId: number;\n\n /**\n * Candle bucket size used for the returned series.\n *\n * @generated from field: marketdata.v1.Timeframe timeframe = 2;\n */\n timeframe: Timeframe;\n\n /**\n * Primary market candle series, ordered newest-first by ts_sec.\n *\n * @generated from field: repeated marketdata.v1.CandlePoint candles = 3;\n */\n candles: CandlePoint[];\n\n /**\n * Composite reference market candle series, ordered newest-first by ts_sec.\n * Populated only when include_reference is true and reference data is\n * available.\n *\n * @generated from field: repeated marketdata.v1.CandlePoint reference_candles = 4;\n */\n referenceCandles: CandlePoint[];\n\n /**\n * Opaque cursor for the next page. Empty when no more results exist.\n *\n * @generated from field: string next_page_token = 5;\n */\n nextPageToken: string;\n};\n\n/**\n * Describes the message marketdata.v1.GetCandlesResponse.\n * Use `create(GetCandlesResponseSchema)` to create a new message.\n */\nexport const GetCandlesResponseSchema: GenMessage<GetCandlesResponse> = /*@__PURE__*/\n messageDesc(file_marketdata_v1_marketdata, 6);\n\n/**\n * GetCandlesColumnsResponse returns the same candle series as GetCandles but in columnar form.\n * This is optimized for charting clients that ingest arrays of each field (binary only).\n *\n * Ordering: values are returned oldest-first (ascending ts_sec).\n *\n * @generated from message marketdata.v1.GetCandlesColumnsResponse\n */\nexport type GetCandlesColumnsResponse = Message<\"marketdata.v1.GetCandlesColumnsResponse\"> & {\n /**\n * Numeric spot market identifier.\n *\n * @generated from field: uint32 symbol_id = 1;\n */\n symbolId: number;\n\n /**\n * Timeframe of this series.\n *\n * @generated from field: marketdata.v1.Timeframe timeframe = 2;\n */\n timeframe: Timeframe;\n\n /**\n * Candle bucket start timestamps (seconds since epoch, UTC).\n *\n * @generated from field: repeated uint64 ts_sec = 3;\n */\n tsSec: bigint[];\n\n /**\n * Opening prices in quote units scaled by 1e6.\n *\n * @generated from field: repeated int64 open = 4;\n */\n open: bigint[];\n\n /**\n * Highest traded prices in quote units scaled by 1e6.\n *\n * @generated from field: repeated int64 high = 5;\n */\n high: bigint[];\n\n /**\n * Lowest traded prices in quote units scaled by 1e6.\n *\n * @generated from field: repeated int64 low = 6;\n */\n low: bigint[];\n\n /**\n * Closing prices in quote units scaled by 1e6.\n *\n * @generated from field: repeated int64 close = 7;\n */\n close: bigint[];\n\n /**\n * Traded base-asset quantities scaled by the pair's base_quantity_scale from\n * GetSpotConfig.\n *\n * @generated from field: repeated int64 volume = 8;\n */\n volume: bigint[];\n\n /**\n * Reference candle series in columnar form (same ordering as ts_sec: oldest-first).\n * Only populated when request.include_reference=true.\n *\n * @generated from field: repeated uint64 reference_ts_sec = 9;\n */\n referenceTsSec: bigint[];\n\n /**\n * Reference opening prices in quote units scaled by 1e6.\n *\n * @generated from field: repeated int64 reference_open = 10;\n */\n referenceOpen: bigint[];\n\n /**\n * Reference high prices in quote units scaled by 1e6.\n *\n * @generated from field: repeated int64 reference_high = 11;\n */\n referenceHigh: bigint[];\n\n /**\n * Reference low prices in quote units scaled by 1e6.\n *\n * @generated from field: repeated int64 reference_low = 12;\n */\n referenceLow: bigint[];\n\n /**\n * Reference closing prices in quote units scaled by 1e6.\n *\n * @generated from field: repeated int64 reference_close = 13;\n */\n referenceClose: bigint[];\n\n /**\n * Reference traded base-asset quantities scaled by the pair's\n * base_quantity_scale from GetSpotConfig.\n *\n * @generated from field: repeated int64 reference_volume = 14;\n */\n referenceVolume: bigint[];\n\n /**\n * Opaque cursor for the next page. Empty when no more results exist.\n *\n * @generated from field: string next_page_token = 15;\n */\n nextPageToken: string;\n\n /**\n * Exact traded quote-asset volumes, oldest-first and aligned with ts_sec.\n *\n * @generated from field: repeated string quote_volume = 16;\n */\n quoteVolume: string[];\n};\n\n/**\n * Describes the message marketdata.v1.GetCandlesColumnsResponse.\n * Use `create(GetCandlesColumnsResponseSchema)` to create a new message.\n */\nexport const GetCandlesColumnsResponseSchema: GenMessage<GetCandlesColumnsResponse> = /*@__PURE__*/\n messageDesc(file_marketdata_v1_marketdata, 7);\n\n/**\n * Candle represents a single OHLCV bucket for a symbol and timeframe.\n *\n * @generated from message marketdata.v1.Candle\n */\nexport type Candle = Message<\"marketdata.v1.Candle\"> & {\n /**\n * numeric spot market identifier\n *\n * @generated from field: uint32 symbol_id = 1;\n */\n symbolId: number;\n\n /**\n * timeframe of this candle\n *\n * @generated from field: marketdata.v1.Timeframe timeframe = 2;\n */\n timeframe: Timeframe;\n\n /**\n * bucket start timestamp (seconds since epoch, UTC)\n *\n * @generated from field: uint64 ts_sec = 3;\n */\n tsSec: bigint;\n\n /**\n * opening price in quote units scaled by 1e6\n *\n * @generated from field: int64 open = 4;\n */\n open: bigint;\n\n /**\n * highest traded price in quote units scaled by 1e6\n *\n * @generated from field: int64 high = 5;\n */\n high: bigint;\n\n /**\n * lowest traded price in quote units scaled by 1e6\n *\n * @generated from field: int64 low = 6;\n */\n low: bigint;\n\n /**\n * closing price in quote units scaled by 1e6\n *\n * @generated from field: int64 close = 7;\n */\n close: bigint;\n\n /**\n * Traded base-asset quantity scaled by the pair's base_quantity_scale from\n * GetSpotConfig.\n *\n * @generated from field: int64 volume = 8;\n */\n volume: bigint;\n\n /**\n * Exact traded quote-asset volume as a human-readable decimal string.\n *\n * @generated from field: string quote_volume = 9;\n */\n quoteVolume: string;\n};\n\n/**\n * Describes the message marketdata.v1.Candle.\n * Use `create(CandleSchema)` to create a new message.\n */\nexport const CandleSchema: GenMessage<Candle> = /*@__PURE__*/\n messageDesc(file_marketdata_v1_marketdata, 8);\n\n/**\n * AssetConfig describes one spot asset returned by GetSpotConfig.\n *\n * @generated from message marketdata.v1.AssetConfig\n */\nexport type AssetConfig = Message<\"marketdata.v1.AssetConfig\"> & {\n /**\n * Asset code, e.g. \"USDT\" or \"BTC\".\n *\n * @generated from field: string asset = 1;\n */\n asset: string;\n\n /**\n * Stable numeric asset id used by account, balance, and order APIs.\n *\n * @generated from field: uint32 ledger_id = 2;\n */\n ledgerId: number;\n\n /**\n * Human-friendly display name, e.g. \"Bitcoin\".\n *\n * @generated from field: string name = 3;\n */\n name: string;\n\n /**\n * Suggested decimal precision for displaying user-facing asset amounts.\n *\n * @generated from field: uint32 quantity_display_decimals = 4;\n */\n quantityDisplayDecimals: number;\n\n /**\n * Integer scale for quantities and balances in this asset (0..18).\n * A scale of 8 means one whole asset is represented as 100000000 in scaled\n * integer fields such as qty_scaled.\n *\n * @generated from field: uint32 quantity_scale = 5;\n */\n quantityScale: number;\n};\n\n/**\n * Describes the message marketdata.v1.AssetConfig.\n * Use `create(AssetConfigSchema)` to create a new message.\n */\nexport const AssetConfigSchema: GenMessage<AssetConfig> = /*@__PURE__*/\n messageDesc(file_marketdata_v1_marketdata, 9);\n\n/**\n * PairMarketdataConfig describes market-data display settings for a spot pair.\n *\n * @generated from message marketdata.v1.PairMarketdataConfig\n */\nexport type PairMarketdataConfig = Message<\"marketdata.v1.PairMarketdataConfig\"> & {\n /**\n * Suggested order book aggregation bucket sizes in quote-asset price units,\n * e.g. 0.01, 0.1, 1, or 10.\n *\n * @generated from field: repeated double orderbook_price_buckets = 1;\n */\n orderbookPriceBuckets: number[];\n};\n\n/**\n * Describes the message marketdata.v1.PairMarketdataConfig.\n * Use `create(PairMarketdataConfigSchema)` to create a new message.\n */\nexport const PairMarketdataConfigSchema: GenMessage<PairMarketdataConfig> = /*@__PURE__*/\n messageDesc(file_marketdata_v1_marketdata, 10);\n\n/**\n * PairConfig describes one spot trading pair and its trading constraints.\n *\n * @generated from message marketdata.v1.PairConfig\n */\nexport type PairConfig = Message<\"marketdata.v1.PairConfig\"> & {\n /**\n * Stable numeric pair id used by low-latency ConnectRPC requests and streams.\n *\n * @generated from field: uint32 symbol_id = 1;\n */\n symbolId: number;\n\n /**\n * Trading pair symbol, e.g. \"BTC-USDT\".\n *\n * @generated from field: string symbol = 2;\n */\n symbol: string;\n\n /**\n * Base asset code. For BTC-USDT, this is \"BTC\".\n *\n * @generated from field: string base_asset = 3;\n */\n baseAsset: string;\n\n /**\n * Quote asset code. For BTC-USDT, this is \"USDT\".\n *\n * @generated from field: string quote_asset = 4;\n */\n quoteAsset: string;\n\n /**\n * Minimum allowed price increment as a decimal string in quote-asset units.\n * Prices use 6 decimal places in scaled integer fields; for example \"0.01\"\n * means orders must be priced in 0.01 quote-asset increments.\n *\n * @generated from field: string tick_size = 5;\n */\n tickSize: string;\n\n /**\n * Minimum allowed quantity increment as a decimal string in base-asset units.\n *\n * @generated from field: string step_size = 6;\n */\n stepSize: string;\n\n /**\n * Minimum order notional as a decimal string in quote-asset units.\n *\n * @generated from field: string min_notional_quote = 7;\n */\n minNotionalQuote: string;\n\n /**\n * Minimum order quantity as a decimal string in base-asset units.\n *\n * @generated from field: string min_qty_base = 8;\n */\n minQtyBase: string;\n\n /**\n * Whether BUY order fees may be paid from the base asset instead of the\n * spent quote asset when the order request selects the base fee asset.\n *\n * @generated from field: bool allow_buy_fee_from_base = 9;\n */\n allowBuyFeeFromBase: boolean;\n\n /**\n * Quantity scale for base-asset amounts in this pair.\n *\n * @generated from field: uint32 base_quantity_scale = 10;\n */\n baseQuantityScale: number;\n\n /**\n * Quantity scale for quote-asset amounts in this pair.\n *\n * @generated from field: uint32 quote_quantity_scale = 11;\n */\n quoteQuantityScale: number;\n\n /**\n * Market-data display settings for this pair.\n *\n * @generated from field: marketdata.v1.PairMarketdataConfig marketdata = 12;\n */\n marketdata?: PairMarketdataConfig | undefined;\n\n /**\n * Scheduled listing timestamp. When unset, the pair has no explicit future\n * listing time.\n *\n * @generated from field: google.protobuf.Timestamp listing_at = 13;\n */\n listingAt?: Timestamp | undefined;\n\n /**\n * Scheduled delisting timestamp. When unset, the pair has no explicit\n * delisting time.\n *\n * @generated from field: google.protobuf.Timestamp delisting_at = 14;\n */\n delistingAt?: Timestamp | undefined;\n\n /**\n * Current trading status.\n *\n * @generated from field: marketdata.v1.PairStatus status = 15;\n */\n status: PairStatus;\n\n /**\n * Default MARKET order slippage cap for BUY orders, in basis points\n * (1 bp = 0.01%). A request-level slippage setting can override this value.\n *\n * @generated from field: int32 default_market_slippage_bps_buy = 16;\n */\n defaultMarketSlippageBpsBuy: number;\n\n /**\n * Default MARKET order slippage cap for SELL orders, in basis points\n * (1 bp = 0.01%). A request-level slippage setting can override this value.\n *\n * @generated from field: int32 default_market_slippage_bps_sell = 17;\n */\n defaultMarketSlippageBpsSell: number;\n\n /**\n * Maximum allowed drift between client reference price and server reference\n * price for MARKET orders, in basis points (1 bp = 0.01%), when client\n * reference pricing is used.\n *\n * @generated from field: int32 max_client_ref_drift_bps = 18;\n */\n maxClientRefDriftBps: number;\n};\n\n/**\n * Describes the message marketdata.v1.PairConfig.\n * Use `create(PairConfigSchema)` to create a new message.\n */\nexport const PairConfigSchema: GenMessage<PairConfig> = /*@__PURE__*/\n messageDesc(file_marketdata_v1_marketdata, 11);\n\n/**\n * GetSpotConfigRequest has no parameters.\n *\n * @generated from message marketdata.v1.GetSpotConfigRequest\n */\nexport type GetSpotConfigRequest = Message<\"marketdata.v1.GetSpotConfigRequest\"> & {\n};\n\n/**\n * Describes the message marketdata.v1.GetSpotConfigRequest.\n * Use `create(GetSpotConfigRequestSchema)` to create a new message.\n */\nexport const GetSpotConfigRequestSchema: GenMessage<GetSpotConfigRequest> = /*@__PURE__*/\n messageDesc(file_marketdata_v1_marketdata, 12);\n\n/**\n * GetSpotConfigResponse contains a cacheable spot reference-data snapshot.\n *\n * @generated from message marketdata.v1.GetSpotConfigResponse\n */\nexport type GetSpotConfigResponse = Message<\"marketdata.v1.GetSpotConfigResponse\"> & {\n /**\n * Assets ordered by asset code in ascending alphabetical order.\n *\n * @generated from field: repeated marketdata.v1.AssetConfig assets = 1;\n */\n assets: AssetConfig[];\n\n /**\n * Pairs ordered by symbol in ascending alphabetical order.\n *\n * @generated from field: repeated marketdata.v1.PairConfig pairs = 2;\n */\n pairs: PairConfig[];\n\n /**\n * Snapshot generation timestamp, in seconds since the Unix epoch (UTC).\n *\n * @generated from field: uint64 ts_sec = 3;\n */\n tsSec: bigint;\n};\n\n/**\n * Describes the message marketdata.v1.GetSpotConfigResponse.\n * Use `create(GetSpotConfigResponseSchema)` to create a new message.\n */\nexport const GetSpotConfigResponseSchema: GenMessage<GetSpotConfigResponse> = /*@__PURE__*/\n messageDesc(file_marketdata_v1_marketdata, 13);\n\n/**\n * SideFilter controls which aggressor side of trades to return.\n *\n * @generated from enum marketdata.v1.SideFilter\n */\nexport enum SideFilter {\n /**\n * Return trades from both BUY and SELL aggressors.\n *\n * @generated from enum value: SIDE_UNSPECIFIED = 0;\n */\n SIDE_UNSPECIFIED = 0,\n\n /**\n * Return trades where the taker/aggressor was buying the base asset.\n *\n * @generated from enum value: BUY = 1;\n */\n BUY = 1,\n\n /**\n * Return trades where the taker/aggressor was selling the base asset.\n *\n * @generated from enum value: SELL = 2;\n */\n SELL = 2,\n}\n\n/**\n * Describes the enum marketdata.v1.SideFilter.\n */\nexport const SideFilterSchema: GenEnum<SideFilter> = /*@__PURE__*/\n enumDesc(file_marketdata_v1_marketdata, 0);\n\n/**\n * Timeframe represents an OHLCV candle bucket.\n *\n * Most values are fixed-duration buckets. `MONTH_1` is calendar-based (UTC\n * month boundaries).\n *\n * @generated from enum marketdata.v1.Timeframe\n */\nexport enum Timeframe {\n /**\n * @generated from enum value: TIMEFRAME_UNSPECIFIED = 0;\n */\n TIMEFRAME_UNSPECIFIED = 0,\n\n /**\n * 1 second\n *\n * @generated from enum value: SEC_1 = 1;\n */\n SEC_1 = 1,\n\n /**\n * 1 minute\n *\n * @generated from enum value: MIN_1 = 2;\n */\n MIN_1 = 2,\n\n /**\n * 5 minutes\n *\n * @generated from enum value: MIN_5 = 3;\n */\n MIN_5 = 3,\n\n /**\n * 15 minutes\n *\n * @generated from enum value: MIN_15 = 4;\n */\n MIN_15 = 4,\n\n /**\n * 30 minutes\n *\n * @generated from enum value: MIN_30 = 5;\n */\n MIN_30 = 5,\n\n /**\n * 1 hour\n *\n * @generated from enum value: HOUR_1 = 6;\n */\n HOUR_1 = 6,\n\n /**\n * 4 hours\n *\n * @generated from enum value: HOUR_4 = 7;\n */\n HOUR_4 = 7,\n\n /**\n * 1 day\n *\n * @generated from enum value: DAY_1 = 8;\n */\n DAY_1 = 8,\n\n /**\n * 12 hours\n *\n * @generated from enum value: HOUR_12 = 9;\n */\n HOUR_12 = 9,\n\n /**\n * 1 week\n *\n * @generated from enum value: WEEK_1 = 10;\n */\n WEEK_1 = 10,\n\n /**\n * 1 month (calendar month, UTC)\n *\n * @generated from enum value: MONTH_1 = 11;\n */\n MONTH_1 = 11,\n}\n\n/**\n * Describes the enum marketdata.v1.Timeframe.\n */\nexport const TimeframeSchema: GenEnum<Timeframe> = /*@__PURE__*/\n enumDesc(file_marketdata_v1_marketdata, 1);\n\n/**\n * PairStatus describes which order mutations a spot pair currently accepts.\n *\n * @generated from enum marketdata.v1.PairStatus\n */\nexport enum PairStatus {\n /**\n * Pair status was not provided.\n *\n * @generated from enum value: PAIR_STATUS_UNSPECIFIED = 0;\n */\n UNSPECIFIED = 0,\n\n /**\n * New orders and cancellations are accepted.\n *\n * @generated from enum value: PAIR_STATUS_ENABLED = 1;\n */\n ENABLED = 1,\n\n /**\n * New orders are temporarily disabled.\n *\n * @generated from enum value: PAIR_STATUS_DISABLED = 2;\n */\n DISABLED = 2,\n\n /**\n * Only cancellations are accepted.\n *\n * @generated from enum value: PAIR_STATUS_CANCEL_ONLY = 3;\n */\n CANCEL_ONLY = 3,\n\n /**\n * New orders must use a post-only execution variant.\n *\n * @generated from enum value: PAIR_STATUS_POST_ONLY = 4;\n */\n POST_ONLY = 4,\n\n /**\n * New spot orders are blocked by reduce-only policy.\n *\n * @generated from enum value: PAIR_STATUS_REDUCE_ONLY = 5;\n */\n REDUCE_ONLY = 5,\n}\n\n/**\n * Describes the enum marketdata.v1.PairStatus.\n */\nexport const PairStatusSchema: GenEnum<PairStatus> = /*@__PURE__*/\n enumDesc(file_marketdata_v1_marketdata, 2);\n\n/**\n * @generated from service marketdata.v1.MarketDataService\n */\nexport const MarketDataService: GenService<{\n /**\n * Retrieve recent public trades for a spot market.\n * Results are ordered newest-first and support optional aggressor side,\n * inclusive time-range, and opaque keyset pagination filters.\n *\n * @generated from rpc marketdata.v1.MarketDataService.GetTrades\n */\n getTrades: {\n methodKind: \"unary\";\n input: typeof GetTradesRequestSchema;\n output: typeof GetTradesResponseSchema;\n },\n /**\n * Retrieve OHLCV candles for a spot market and timeframe.\n * Results are ordered newest-first and support inclusive time bounds, optional\n * current open candle inclusion, and optional composite reference candles.\n *\n * @generated from rpc marketdata.v1.MarketDataService.GetCandles\n */\n getCandles: {\n methodKind: \"unary\";\n input: typeof GetCandlesRequestSchema;\n output: typeof GetCandlesResponseSchema;\n },\n /**\n * GetCandlesColumns returns OHLCV candles in a columnar representation optimized for charting.\n * This method is intended for ConnectRPC clients and returns scaled integers:\n * OHLC prices use 1e6 quote-unit scale, and volumes use base_quantity_scale.\n *\n * @generated from rpc marketdata.v1.MarketDataService.GetCandlesColumns\n */\n getCandlesColumns: {\n methodKind: \"unary\";\n input: typeof GetCandlesColumnsRequestSchema;\n output: typeof GetCandlesColumnsResponseSchema;\n },\n /**\n * Retrieve a cacheable snapshot of spot assets and pairs, including precision and trading constraints.\n *\n * @generated from rpc marketdata.v1.MarketDataService.GetSpotConfig\n */\n getSpotConfig: {\n methodKind: \"unary\";\n input: typeof GetSpotConfigRequestSchema;\n output: typeof GetSpotConfigResponseSchema;\n },\n}> = /*@__PURE__*/\n serviceDesc(file_marketdata_v1_marketdata, 0);\n\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAcA,MAAa,gCACX,uBAAS,o6JAAo6J,CAAC,gCAAgC,0BAA0B,CAAC;;;;;AA+D3+J,MAAa,yBACX,0BAAY,+BAA+B,CAAC;;;;;AA2D9C,MAAa,oBACX,0BAAY,+BAA+B,CAAC;;;;;AA4B9C,MAAa,0BACX,0BAAY,+BAA+B,CAAC;;;;;AAoF9C,MAAa,0BACX,0BAAY,+BAA+B,CAAC;;;;;AAoF9C,MAAa,iCACX,0BAAY,+BAA+B,CAAC;;;;;AA2E9C,MAAa,oBACX,0BAAY,+BAA+B,CAAC;;;;;AAqD9C,MAAa,2BACX,0BAAY,+BAA+B,CAAC;;;;;AAmI9C,MAAa,kCACX,0BAAY,+BAA+B,CAAC;;;;;AA6E9C,MAAa,eACX,0BAAY,+BAA+B,CAAC;;;;;AAkD9C,MAAa,oBACX,0BAAY,+BAA+B,CAAC;;;;;AAqB9C,MAAa,6BACX,0BAAY,+BAA+B,EAAE;;;;;AAoJ/C,MAAa,mBACX,0BAAY,+BAA+B,EAAE;;;;;AAc/C,MAAa,6BACX,0BAAY,+BAA+B,EAAE;;;;;AAkC/C,MAAa,8BACX,0BAAY,+BAA+B,EAAE;;;;;;AAO/C,IAAY,aAAL,yBAAA,YAAA;;;;;;CAML,WAAA,WAAA,sBAAA,KAAA;;;;;;CAOA,WAAA,WAAA,SAAA,KAAA;;;;;;CAOA,WAAA,WAAA,UAAA,KAAA;;AACF,EAAA,CAAA,CAAA;;;;AAKA,MAAa,mBACX,uBAAS,+BAA+B,CAAC;;;;;;;;;AAU3C,IAAY,YAAL,yBAAA,WAAA;;;;CAIL,UAAA,UAAA,2BAAA,KAAA;;;;;;CAOA,UAAA,UAAA,WAAA,KAAA;;;;;;CAOA,UAAA,UAAA,WAAA,KAAA;;;;;;CAOA,UAAA,UAAA,WAAA,KAAA;;;;;;CAOA,UAAA,UAAA,YAAA,KAAA;;;;;;CAOA,UAAA,UAAA,YAAA,KAAA;;;;;;CAOA,UAAA,UAAA,YAAA,KAAA;;;;;;CAOA,UAAA,UAAA,YAAA,KAAA;;;;;;CAOA,UAAA,UAAA,WAAA,KAAA;;;;;;CAOA,UAAA,UAAA,aAAA,KAAA;;;;;;CAOA,UAAA,UAAA,YAAA,MAAA;;;;;;CAOA,UAAA,UAAA,aAAA,MAAA;;AACF,EAAA,CAAA,CAAA;;;;AAKA,MAAa,kBACX,uBAAS,+BAA+B,CAAC;;;;;;AAO3C,IAAY,aAAL,yBAAA,YAAA;;;;;;CAML,WAAA,WAAA,iBAAA,KAAA;;;;;;CAOA,WAAA,WAAA,aAAA,KAAA;;;;;;CAOA,WAAA,WAAA,cAAA,KAAA;;;;;;CAOA,WAAA,WAAA,iBAAA,KAAA;;;;;;CAOA,WAAA,WAAA,eAAA,KAAA;;;;;;CAOA,WAAA,WAAA,iBAAA,KAAA;;AACF,EAAA,CAAA,CAAA;;;;AAKA,MAAa,mBACX,uBAAS,+BAA+B,CAAC;;;;AAK3C,MAAa,oBAgDX,0BAAY,+BAA+B,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { Message } from "@bufbuild/protobuf";
2
2
  import { GenEnum, GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv2";
3
3
  declare namespace marketoverview_pb_d_exports {
4
- export { ErrorCode, ErrorCodeSchema, ErrorDetail, ErrorDetailSchema, ListMarketOverviewRequest, ListMarketOverviewRequestSchema, ListMarketOverviewResponse, ListMarketOverviewResponseSchema, MarketOrderBy, MarketOrderBySchema, MarketOverview, MarketOverviewBatch, MarketOverviewBatchSchema, MarketOverviewSchema, MarketOverviewService, SortDirection, SortDirectionSchema, Sparkline, SparklineInterval, SparklineIntervalSchema, SparklineSchema, file_marketoverview_v1_marketoverview };
4
+ export { ErrorCode, ErrorCodeSchema, ErrorDetail, ErrorDetailSchema, GetSpotVolumeHistoryRequest, GetSpotVolumeHistoryRequestSchema, GetSpotVolumeHistoryResponse, GetSpotVolumeHistoryResponseSchema, ListMarketOverviewRequest, ListMarketOverviewRequestSchema, ListMarketOverviewResponse, ListMarketOverviewResponseSchema, MarketOrderBy, MarketOrderBySchema, MarketOverview, MarketOverviewBatch, MarketOverviewBatchSchema, MarketOverviewSchema, MarketOverviewService, SortDirection, SortDirectionSchema, Sparkline, SparklineInterval, SparklineIntervalSchema, SparklineSchema, SpotPairVolumeSeries, SpotPairVolumeSeriesSchema, file_marketoverview_v1_marketoverview };
5
5
  }
6
6
  /**
7
7
  * Describes the file marketoverview/v1/marketoverview.proto.
@@ -92,18 +92,28 @@ type MarketOverview = Message<"marketoverview.v1.MarketOverview"> & {
92
92
  low24hTicks: bigint;
93
93
  /**
94
94
  * Rolling 24h base volume scaled by the pair's base_quantity_scale from
95
- * GetSpotConfig.
95
+ * GetSpotConfig. Omitted if the amount exceeds the signed 64-bit range.
96
96
  *
97
- * @generated from field: int64 volume_24h_base_scaled = 8;
97
+ * @generated from field: optional int64 volume_24h_base_scaled = 8;
98
98
  */
99
- volume24hBaseScaled: bigint;
99
+ volume24hBaseScaled?: bigint | undefined;
100
100
  /**
101
101
  * Rolling 24h quote volume scaled by the pair's quote_quantity_scale from
102
- * GetSpotConfig.
102
+ * GetSpotConfig. Omitted if the amount exceeds the signed 64-bit range.
103
+ *
104
+ * @generated from field: optional int64 volume_24h_quote_scaled = 14;
105
+ */
106
+ volume24hQuoteScaled?: bigint | undefined;
107
+ /**
108
+ * Rolling 24h USD volume, scaled by 1e6 (one unit is 0.000001 USD).
109
+ * Omitted if any contributing volume cannot be valued reliably. Quote volumes
110
+ * use execution prices; USD conversion uses historical quarter-hour marks.
111
+ * Covers the 24 hours ending at the latest completed UTC minute.
112
+ * Refreshed every 15 seconds after completed minutes become available.
103
113
  *
104
- * @generated from field: int64 volume_24h_quote_scaled = 14;
114
+ * @generated from field: optional int64 volume_24h_usd_scaled = 17;
105
115
  */
106
- volume24hQuoteScaled: bigint;
116
+ volume24hUsdScaled?: bigint | undefined;
107
117
  /**
108
118
  * Listing timestamp in nanoseconds since epoch.
109
119
  *
@@ -182,7 +192,7 @@ type ListMarketOverviewRequest = Message<"marketoverview.v1.ListMarketOverviewRe
182
192
  */
183
193
  pageToken: string;
184
194
  /**
185
- * Sort key. When unset/UNSPECIFIED, defaults to 24h quote volume.
195
+ * Sort key. When unset/UNSPECIFIED, defaults to descending 24h USD volume.
186
196
  *
187
197
  * @generated from field: marketoverview.v1.MarketOrderBy order_by = 4;
188
198
  */
@@ -259,6 +269,111 @@ type MarketOverviewBatch = Message<"marketoverview.v1.MarketOverviewBatch"> & {
259
269
  * Use `create(MarketOverviewBatchSchema)` to create a new message.
260
270
  */
261
271
  declare const MarketOverviewBatchSchema: GenMessage<MarketOverviewBatch>;
272
+ /**
273
+ * A finite spot-volume chart request; no pagination or arbitrary time range.
274
+ *
275
+ * @generated from message marketoverview.v1.GetSpotVolumeHistoryRequest
276
+ */
277
+ type GetSpotVolumeHistoryRequest = Message<"marketoverview.v1.GetSpotVolumeHistoryRequest"> & {
278
+ /**
279
+ * Pair IDs from GetSpotConfig; empty selects every configured pair separately.
280
+ * At most 2000 distinct positive IDs. Unknown IDs are rejected. If the full
281
+ * universe exceeds 2000 pairs, specify a filter; results are never truncated.
282
+ *
283
+ * @generated from field: repeated uint32 symbol_id = 1;
284
+ */
285
+ symbolId: number[];
286
+ };
287
+ /**
288
+ * Describes the message marketoverview.v1.GetSpotVolumeHistoryRequest.
289
+ * Use `create(GetSpotVolumeHistoryRequestSchema)` to create a new message.
290
+ */
291
+ declare const GetSpotVolumeHistoryRequestSchema: GenMessage<GetSpotVolumeHistoryRequest>;
292
+ /**
293
+ * One pair appears exactly once, regardless of its base and quote assets.
294
+ * REST renders the scaled amounts as decimal strings in volumeUsd.
295
+ *
296
+ * @generated from message marketoverview.v1.SpotPairVolumeSeries
297
+ */
298
+ type SpotPairVolumeSeries = Message<"marketoverview.v1.SpotPairVolumeSeries"> & {
299
+ /**
300
+ * Stable numeric pair ID; clients may group these series by base asset.
301
+ *
302
+ * @generated from field: uint32 symbol_id = 1;
303
+ */
304
+ symbolId: number;
305
+ /**
306
+ * Trailing-24h USD amounts scaled by 1e6, oldest first. Exactly points values,
307
+ * aligned with the shared response grid. Zero means no executed trades in
308
+ * the window. USD values round down once per contributing 15-minute bucket.
309
+ *
310
+ * @generated from field: repeated sint64 volume_usd_scaled = 2;
311
+ */
312
+ volumeUsdScaled: bigint[];
313
+ };
314
+ /**
315
+ * Describes the message marketoverview.v1.SpotPairVolumeSeries.
316
+ * Use `create(SpotPairVolumeSeriesSchema)` to create a new message.
317
+ */
318
+ declare const SpotPairVolumeSeriesSchema: GenMessage<SpotPairVolumeSeries>;
319
+ /**
320
+ * Aligned columnar trailing-24h USD series over the most recent 24 hours.
321
+ * The grid always contains 97 samples ending at the latest completed UTC
322
+ * quarter-hour. Index i maps to start_ts_sec + i * 900 seconds. Each sample
323
+ * covers [sample time - 24h, sample time); only the preceding 48 hours contribute.
324
+ * USD conversion uses the latest trustworthy quote/USD mark at or before each
325
+ * bucket's start. Stablecoin quotes also require historical USD prices.
326
+ * If any contributing trade cannot be valued, or a USD amount overflows,
327
+ * the RPC fails as unavailable; partial or zero-filled valuations are not returned.
328
+ * Intervals without executed trades are zero. Results may be reused for 15 seconds.
329
+ *
330
+ * @generated from message marketoverview.v1.GetSpotVolumeHistoryResponse
331
+ */
332
+ type GetSpotVolumeHistoryResponse = Message<"marketoverview.v1.GetSpotVolumeHistoryResponse"> & {
333
+ /**
334
+ * Sampling interval between points; currently always "15m".
335
+ *
336
+ * @generated from field: string bucket = 1;
337
+ */
338
+ bucket: string;
339
+ /**
340
+ * First sample timestamp in seconds since Unix epoch (UTC), inclusive.
341
+ *
342
+ * @generated from field: fixed32 start_ts_sec = 2;
343
+ */
344
+ startTsSec: number;
345
+ /**
346
+ * Last sample timestamp in seconds since Unix epoch (UTC), inclusive.
347
+ *
348
+ * @generated from field: fixed32 end_ts_sec = 3;
349
+ */
350
+ endTsSec: number;
351
+ /**
352
+ * Number of aligned values in every pair array and the total array; always 97.
353
+ *
354
+ * @generated from field: uint32 points = 4;
355
+ */
356
+ points: number;
357
+ /**
358
+ * Pairs ordered by ascending symbol_id; at most 2000, each included once.
359
+ *
360
+ * @generated from field: repeated marketoverview.v1.SpotPairVolumeSeries pairs = 5;
361
+ */
362
+ pairs: SpotPairVolumeSeries[];
363
+ /**
364
+ * Sum across selected pairs, USD scaled by 1e6. Exactly points values,
365
+ * oldest first. REST renders decimal strings in totalVolumeUsd.
366
+ * Do not sum overlapping trailing-24h samples to obtain period traded volume.
367
+ *
368
+ * @generated from field: repeated sint64 total_volume_usd_scaled = 6;
369
+ */
370
+ totalVolumeUsdScaled: bigint[];
371
+ };
372
+ /**
373
+ * Describes the message marketoverview.v1.GetSpotVolumeHistoryResponse.
374
+ * Use `create(GetSpotVolumeHistoryResponseSchema)` to create a new message.
375
+ */
376
+ declare const GetSpotVolumeHistoryResponseSchema: GenMessage<GetSpotVolumeHistoryResponse>;
262
377
  /**
263
378
  * SparklineInterval identifies the time range and sampling resolution for a
264
379
  * sparkline.
@@ -316,12 +431,11 @@ declare enum MarketOrderBy {
316
431
  */
317
432
  ORDER_BY_CHANGE_24H_BPS = 1,
318
433
  /**
319
- * Sort by 24h quote volume scaled by the pair's quote_quantity_scale from
320
- * GetSpotConfig.
434
+ * Sort by canonical USD 24h volume. Unvalued markets sort last in either direction.
321
435
  *
322
- * @generated from enum value: ORDER_BY_VOLUME_24H_QUOTE = 2;
436
+ * @generated from enum value: ORDER_BY_VOLUME_24H_USD = 2;
323
437
  */
324
- ORDER_BY_VOLUME_24H_QUOTE = 2,
438
+ ORDER_BY_VOLUME_24H_USD = 2,
325
439
  /**
326
440
  * Sort by last price in quote units scaled by 1e6.
327
441
  *
@@ -407,6 +521,17 @@ declare const ErrorCodeSchema: GenEnum<ErrorCode>;
407
521
  * @generated from service marketoverview.v1.MarketOverviewService
408
522
  */
409
523
  declare const MarketOverviewService: GenService<{
524
+ /**
525
+ * Get aligned pair-level and total trailing-24h USD volume, sampled every
526
+ * 15 minutes over the latest day. Unavailable valuations fail the request.
527
+ *
528
+ * @generated from rpc marketoverview.v1.MarketOverviewService.GetSpotVolumeHistory
529
+ */
530
+ getSpotVolumeHistory: {
531
+ methodKind: "unary";
532
+ input: typeof GetSpotVolumeHistoryRequestSchema;
533
+ output: typeof GetSpotVolumeHistoryResponseSchema;
534
+ };
410
535
  /**
411
536
  * @generated from rpc marketoverview.v1.MarketOverviewService.ListMarketOverview
412
537
  */
@@ -417,5 +542,5 @@ declare const MarketOverviewService: GenService<{
417
542
  };
418
543
  }>;
419
544
  //#endregion
420
- export { ErrorCode, ErrorCodeSchema, ErrorDetail, ErrorDetailSchema, ListMarketOverviewRequest, ListMarketOverviewRequestSchema, ListMarketOverviewResponse, ListMarketOverviewResponseSchema, MarketOrderBy, MarketOrderBySchema, MarketOverview, MarketOverviewBatch, MarketOverviewBatchSchema, MarketOverviewSchema, MarketOverviewService, SortDirection, SortDirectionSchema, Sparkline, SparklineInterval, SparklineIntervalSchema, SparklineSchema, file_marketoverview_v1_marketoverview, marketoverview_pb_d_exports };
545
+ export { ErrorCode, ErrorCodeSchema, ErrorDetail, ErrorDetailSchema, GetSpotVolumeHistoryRequest, GetSpotVolumeHistoryRequestSchema, GetSpotVolumeHistoryResponse, GetSpotVolumeHistoryResponseSchema, ListMarketOverviewRequest, ListMarketOverviewRequestSchema, ListMarketOverviewResponse, ListMarketOverviewResponseSchema, MarketOrderBy, MarketOrderBySchema, MarketOverview, MarketOverviewBatch, MarketOverviewBatchSchema, MarketOverviewSchema, MarketOverviewService, SortDirection, SortDirectionSchema, Sparkline, SparklineInterval, SparklineIntervalSchema, SparklineSchema, SpotPairVolumeSeries, SpotPairVolumeSeriesSchema, file_marketoverview_v1_marketoverview, marketoverview_pb_d_exports };
421
546
  //# sourceMappingURL=marketoverview_pb.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"marketoverview_pb.d.ts","names":[],"sources":["../../../../src/gen/marketoverview/v1/marketoverview_pb.ts"],"mappings":";;;;;;;;cAYa,uCAAuC;;;;;;KAQxC,cAAc;;;;;;EAMxB,MAAM;;;;;;cAOK,mBAAmB,WAAW;;;;;;KAQ/B,YAAY;;;;;;EAMtB,UAAU;;;;;;EAOV;;;;;;cAOW,iBAAiB,WAAW;;;;KAM7B,iBAAiB;;;;;;EAM3B;;;;;;EAOA;;;;;;EAOA;;;;;;EAOA;;;;;;;EAQA;;;;;;EAOA;;;;;;;EAQA;;;;;;;EAQA;;;;;;EAOA;;;;;;EAOA;;;;;;;EAQA;;;;;;EAOA;;;;;;;EAQA;;;;;;EAOA,YAAY;;;;;;;EAQZ;;;;;;cAOW,sBAAsB,WAAW;;;;KAMlC,4BAA4B;;;;;;;EAOtC;;;;;;;EAQA;;;;;;;;EASA;;;;;;EAOA,SAAS;;;;;;EAOT,MAAM;;;;;;EAON;;;;;;;EAQA,oBAAoB;;;;;;cAOT,iCAAiC,WAAW;;;;KAM7C,6BAA6B;;;;;;EAMvC,SAAS;;;;;;EAOT;;;;;;cAOW,kCAAkC,WAAW;;;;;;;KAS9C,sBAAsB;;;;;;EAMhC,SAAS;;;;;;EAOT;;;;;;cAOW,2BAA2B,WAAW;;;;;;;aASvC;;;;;;EAMV;;;;;;EAOA;;;;;;EAOA;;;;;;EAOA;;;;;;EAOA;;;;;cAMW,yBAAyB,QAAQ;;;;aAMlC;;;;EAIV;;;;;;EAOA;;;;;;;EAQA;;;;;;EAOA;;;;;;EAOA;;;;;cAMW,qBAAqB,QAAQ;;;;aAM9B;;;;EAIV;;;;;;EAOA;;;;;;EAOA;;;;;cAMW,qBAAqB,QAAQ;;;;;;;aAS9B;;;;EAIV;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;;cAMW,iBAAiB,QAAQ;;;;;;;cASzB,uBAAuB;;;;EAIlC;IACE;IACA,cAAc;IACd,eAAe"}
1
+ {"version":3,"file":"marketoverview_pb.d.ts","names":[],"sources":["../../../../src/gen/marketoverview/v1/marketoverview_pb.ts"],"mappings":";;;;;;;;cAYa,uCAAuC;;;;;;KAQxC,cAAc;;;;;;EAMxB,MAAM;;;;;;cAOK,mBAAmB,WAAW;;;;;;KAQ/B,YAAY;;;;;;EAMtB,UAAU;;;;;;EAOV;;;;;;cAOW,iBAAiB,WAAW;;;;KAM7B,iBAAiB;;;;;;EAM3B;;;;;;EAOA;;;;;;EAOA;;;;;;EAOA;;;;;;;EAQA;;;;;;EAOA;;;;;;;EAQA;;;;;;;EAQA;;;;;;;;;;EAWA;;;;;;EAOA;;;;;;EAOA;;;;;;;EAQA;;;;;;EAOA;;;;;;;EAQA;;;;;;EAOA,YAAY;;;;;;;EAQZ;;;;;;cAOW,sBAAsB,WAAW;;;;KAMlC,4BAA4B;;;;;;;EAOtC;;;;;;;EAQA;;;;;;;;EASA;;;;;;EAOA,SAAS;;;;;;EAOT,MAAM;;;;;;EAON;;;;;;;EAQA,oBAAoB;;;;;;cAOT,iCAAiC,WAAW;;;;KAM7C,6BAA6B;;;;;;EAMvC,SAAS;;;;;;EAOT;;;;;;cAOW,kCAAkC,WAAW;;;;;;;KAS9C,sBAAsB;;;;;;EAMhC,SAAS;;;;;;EAOT;;;;;;cAOW,2BAA2B,WAAW;;;;;;KAQvC,8BAA8B;;;;;;;;EAQxC;;;;;;cAOW,mCAAmC,WAAW;;;;;;;KAS/C,uBAAuB;;;;;;EAMjC;;;;;;;;EASA;;;;;;cAOW,4BAA4B,WAAW;;;;;;;;;;;;;;KAgBxC,+BAA+B;;;;;;EAMzC;;;;;;EAOA;;;;;;EAOA;;;;;;EAOA;;;;;;EAOA,OAAO;;;;;;;;EASP;;;;;;cAOW,oCAAoC,WAAW;;;;;;;aAShD;;;;;;EAMV;;;;;;EAOA;;;;;;EAOA;;;;;;EAOA;;;;;;EAOA;;;;;cAMW,yBAAyB,QAAQ;;;;aAMlC;;;;EAIV;;;;;;EAOA;;;;;;EAOA;;;;;;EAOA;;;;;;EAOA;;;;;cAMW,qBAAqB,QAAQ;;;;aAM9B;;;;EAIV;;;;;;EAOA;;;;;;EAOA;;;;;cAMW,qBAAqB,QAAQ;;;;;;;aAS9B;;;;EAIV;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;;cAMW,iBAAiB,QAAQ;;;;;;;cASzB,uBAAuB;;;;;;;EAOlC;IACE;IACA,cAAc;IACd,eAAe;;;;;EAKjB;IACE;IACA,cAAc;IACd,eAAe"}
@@ -6,6 +6,8 @@ var marketoverview_pb_exports = /* @__PURE__ */ __exportAll({
6
6
  ErrorCode: () => ErrorCode,
7
7
  ErrorCodeSchema: () => ErrorCodeSchema,
8
8
  ErrorDetailSchema: () => ErrorDetailSchema,
9
+ GetSpotVolumeHistoryRequestSchema: () => GetSpotVolumeHistoryRequestSchema,
10
+ GetSpotVolumeHistoryResponseSchema: () => GetSpotVolumeHistoryResponseSchema,
9
11
  ListMarketOverviewRequestSchema: () => ListMarketOverviewRequestSchema,
10
12
  ListMarketOverviewResponseSchema: () => ListMarketOverviewResponseSchema,
11
13
  MarketOrderBy: () => MarketOrderBy,
@@ -18,12 +20,13 @@ var marketoverview_pb_exports = /* @__PURE__ */ __exportAll({
18
20
  SparklineInterval: () => SparklineInterval,
19
21
  SparklineIntervalSchema: () => SparklineIntervalSchema,
20
22
  SparklineSchema: () => SparklineSchema,
23
+ SpotPairVolumeSeriesSchema: () => SpotPairVolumeSeriesSchema,
21
24
  file_marketoverview_v1_marketoverview: () => file_marketoverview_v1_marketoverview
22
25
  });
23
26
  /**
24
27
  * Describes the file marketoverview/v1/marketoverview.proto.
25
28
  */
26
- const file_marketoverview_v1_marketoverview = /*@__PURE__*/ fileDesc("CiZtYXJrZXRvdmVydmlldy92MS9tYXJrZXRvdmVydmlldy5wcm90bxIRbWFya2V0b3ZlcnZpZXcudjEiOQoLRXJyb3JEZXRhaWwSKgoEY29kZRgBIAEoDjIcLm1hcmtldG92ZXJ2aWV3LnYxLkVycm9yQ29kZSJaCglTcGFya2xpbmUSOAoIaW50ZXJ2YWwYASABKA4yJC5tYXJrZXRvdmVydmlldy52MS5TcGFya2xpbmVJbnRlcnZhbEIAEhMKC2Nsb3NlX3RpY2tzGAIgAygDIqwDCg5NYXJrZXRPdmVydmlldxIRCglzeW1ib2xfaWQYASABKA0SGAoQbGFzdF9wcmljZV90aWNrcxgDIAEoAxIYChBsYXN0X3RyYWRlX3RzX25zGAQgASgEEhYKDmNoYW5nZV8yNGhfYnBzGAUgASgFEhYKDmhpZ2hfMjRoX3RpY2tzGAYgASgDEhUKDWxvd18yNGhfdGlja3MYByABKAMSHgoWdm9sdW1lXzI0aF9iYXNlX3NjYWxlZBgIIAEoAxIfChd2b2x1bWVfMjRoX3F1b3RlX3NjYWxlZBgOIAEoAxIUCgxsaXN0ZWRfdHNfbnMYDyABKAQSFgoOYmVzdF9iaWRfdGlja3MYCSABKAMSGwoTYmVzdF9iaWRfcXR5X3NjYWxlZBgKIAEoAxIWCg5iZXN0X2Fza190aWNrcxgLIAEoAxIbChNiZXN0X2Fza19xdHlfc2NhbGVkGAwgASgDEjAKCnNwYXJrbGluZXMYDSADKAsyHC5tYXJrZXRvdmVydmlldy52MS5TcGFya2xpbmUSGQoRaW5kZXhfcHJpY2VfdGlja3MYECABKAMioAIKGUxpc3RNYXJrZXRPdmVydmlld1JlcXVlc3QSEwoJc3ltYm9sX2lkGAEgAygNQgASDwoFbGltaXQYAiABKA1CABIUCgpwYWdlX3Rva2VuGAMgASgJQgASNAoIb3JkZXJfYnkYBCABKA4yIC5tYXJrZXRvdmVydmlldy52MS5NYXJrZXRPcmRlckJ5QgASMAoEc29ydBgFIAEoDjIgLm1hcmtldG92ZXJ2aWV3LnYxLlNvcnREaXJlY3Rpb25CABIaChJpbmNsdWRlX3NwYXJrbGluZXMYBiABKAgSQwoTc3BhcmtsaW5lX2ludGVydmFscxgHIAMoDjIkLm1hcmtldG92ZXJ2aWV3LnYxLlNwYXJrbGluZUludGVydmFsQgAiawoaTGlzdE1hcmtldE92ZXJ2aWV3UmVzcG9uc2USMgoHbWFya2V0cxgBIAMoCzIhLm1hcmtldG92ZXJ2aWV3LnYxLk1hcmtldE92ZXJ2aWV3EhkKD25leHRfcGFnZV90b2tlbhgCIAEoCUIAIlgKE01hcmtldE92ZXJ2aWV3QmF0Y2gSMgoHbWFya2V0cxgBIAMoCzIhLm1hcmtldG92ZXJ2aWV3LnYxLk1hcmtldE92ZXJ2aWV3Eg0KBXRzX25zGAIgASgEKoABChFTcGFya2xpbmVJbnRlcnZhbBIiCh5TUEFSS0xJTkVfSU5URVJWQUxfVU5TUEVDSUZJRUQQABIQCgxTUEFSS0xJTkVfMUgQARIRCg1TUEFSS0xJTkVfMjRIEAISEAoMU1BBUktMSU5FXzFXEAMSEAoMU1BBUktMSU5FXzFNEAQqngEKDU1hcmtldE9yZGVyQnkSHwobTUFSS0VUX09SREVSX0JZX1VOU1BFQ0lGSUVEEAASGwoXT1JERVJfQllfQ0hBTkdFXzI0SF9CUFMQARIdChlPUkRFUl9CWV9WT0xVTUVfMjRIX1FVT1RFEAISFwoTT1JERVJfQllfTEFTVF9QUklDRRADEhcKE09SREVSX0JZX0RBVEVfQURERUQQBCpMCg1Tb3J0RGlyZWN0aW9uEh4KGlNPUlRfRElSRUNUSU9OX1VOU1BFQ0lGSUVEEAASDAoIU09SVF9BU0MQARINCglTT1JUX0RFU0MQAiq5AQoJRXJyb3JDb2RlEhoKFkVSUk9SX0NPREVfVU5TUEVDSUZJRUQQABIaChZFUlJPUl9DT0RFX0JBRF9SRVFVRVNUEAESHwobRVJST1JfQ09ERV9JTlZBTElEX0FSR1VNRU5UEAISGAoURVJST1JfQ09ERV9OT1RfRk9VTkQQAxIaChZFUlJPUl9DT0RFX1VOQVZBSUxBQkxFEAQSHQoZRVJST1JfQ09ERV9VUFNUUkVBTV9FUlJPUhAFMowBChVNYXJrZXRPdmVydmlld1NlcnZpY2UScwoSTGlzdE1hcmtldE92ZXJ2aWV3EiwubWFya2V0b3ZlcnZpZXcudjEuTGlzdE1hcmtldE92ZXJ2aWV3UmVxdWVzdBotLm1hcmtldG92ZXJ2aWV3LnYxLkxpc3RNYXJrZXRPdmVydmlld1Jlc3BvbnNlIgBCUFpOZ2l0aHViLmNvbS9GYWJyaWMtTGFicy9wb2x5ZXN0ZXItc2RrLWdvL2dlbi9tYXJrZXRvdmVydmlldy92MTttYXJrZXRvdmVydmlld3YxYgZwcm90bzM=", [file_polyester_api_options]);
29
+ const file_marketoverview_v1_marketoverview = /*@__PURE__*/ fileDesc("CiZtYXJrZXRvdmVydmlldy92MS9tYXJrZXRvdmVydmlldy5wcm90bxIRbWFya2V0b3ZlcnZpZXcudjEiOQoLRXJyb3JEZXRhaWwSKgoEY29kZRgBIAEoDjIcLm1hcmtldG92ZXJ2aWV3LnYxLkVycm9yQ29kZSJaCglTcGFya2xpbmUSOAoIaW50ZXJ2YWwYASABKA4yJC5tYXJrZXRvdmVydmlldy52MS5TcGFya2xpbmVJbnRlcnZhbEIAEhMKC2Nsb3NlX3RpY2tzGAIgAygDIqsECg5NYXJrZXRPdmVydmlldxIRCglzeW1ib2xfaWQYASABKA0SGAoQbGFzdF9wcmljZV90aWNrcxgDIAEoAxIYChBsYXN0X3RyYWRlX3RzX25zGAQgASgEEhYKDmNoYW5nZV8yNGhfYnBzGAUgASgFEhYKDmhpZ2hfMjRoX3RpY2tzGAYgASgDEhUKDWxvd18yNGhfdGlja3MYByABKAMSIwoWdm9sdW1lXzI0aF9iYXNlX3NjYWxlZBgIIAEoA0gAiAEBEiQKF3ZvbHVtZV8yNGhfcXVvdGVfc2NhbGVkGA4gASgDSAGIAQESIgoVdm9sdW1lXzI0aF91c2Rfc2NhbGVkGBEgASgDSAKIAQESFAoMbGlzdGVkX3RzX25zGA8gASgEEhYKDmJlc3RfYmlkX3RpY2tzGAkgASgDEhsKE2Jlc3RfYmlkX3F0eV9zY2FsZWQYCiABKAMSFgoOYmVzdF9hc2tfdGlja3MYCyABKAMSGwoTYmVzdF9hc2tfcXR5X3NjYWxlZBgMIAEoAxIwCgpzcGFya2xpbmVzGA0gAygLMhwubWFya2V0b3ZlcnZpZXcudjEuU3BhcmtsaW5lEhkKEWluZGV4X3ByaWNlX3RpY2tzGBAgASgDQhkKF192b2x1bWVfMjRoX2Jhc2Vfc2NhbGVkQhoKGF92b2x1bWVfMjRoX3F1b3RlX3NjYWxlZEIYChZfdm9sdW1lXzI0aF91c2Rfc2NhbGVkIqACChlMaXN0TWFya2V0T3ZlcnZpZXdSZXF1ZXN0EhMKCXN5bWJvbF9pZBgBIAMoDUIAEg8KBWxpbWl0GAIgASgNQgASFAoKcGFnZV90b2tlbhgDIAEoCUIAEjQKCG9yZGVyX2J5GAQgASgOMiAubWFya2V0b3ZlcnZpZXcudjEuTWFya2V0T3JkZXJCeUIAEjAKBHNvcnQYBSABKA4yIC5tYXJrZXRvdmVydmlldy52MS5Tb3J0RGlyZWN0aW9uQgASGgoSaW5jbHVkZV9zcGFya2xpbmVzGAYgASgIEkMKE3NwYXJrbGluZV9pbnRlcnZhbHMYByADKA4yJC5tYXJrZXRvdmVydmlldy52MS5TcGFya2xpbmVJbnRlcnZhbEIAImsKGkxpc3RNYXJrZXRPdmVydmlld1Jlc3BvbnNlEjIKB21hcmtldHMYASADKAsyIS5tYXJrZXRvdmVydmlldy52MS5NYXJrZXRPdmVydmlldxIZCg9uZXh0X3BhZ2VfdG9rZW4YAiABKAlCACJYChNNYXJrZXRPdmVydmlld0JhdGNoEjIKB21hcmtldHMYASADKAsyIS5tYXJrZXRvdmVydmlldy52MS5NYXJrZXRPdmVydmlldxINCgV0c19ucxgCIAEoBCIyChtHZXRTcG90Vm9sdW1lSGlzdG9yeVJlcXVlc3QSEwoJc3ltYm9sX2lkGAEgAygNQgAiRAoUU3BvdFBhaXJWb2x1bWVTZXJpZXMSEQoJc3ltYm9sX2lkGAEgASgNEhkKEXZvbHVtZV91c2Rfc2NhbGVkGAIgAygSIsEBChxHZXRTcG90Vm9sdW1lSGlzdG9yeVJlc3BvbnNlEg4KBmJ1Y2tldBgBIAEoCRIUCgxzdGFydF90c19zZWMYAiABKAcSEgoKZW5kX3RzX3NlYxgDIAEoBxIOCgZwb2ludHMYBCABKA0SNgoFcGFpcnMYBSADKAsyJy5tYXJrZXRvdmVydmlldy52MS5TcG90UGFpclZvbHVtZVNlcmllcxIfChd0b3RhbF92b2x1bWVfdXNkX3NjYWxlZBgGIAMoEiqAAQoRU3BhcmtsaW5lSW50ZXJ2YWwSIgoeU1BBUktMSU5FX0lOVEVSVkFMX1VOU1BFQ0lGSUVEEAASEAoMU1BBUktMSU5FXzFIEAESEQoNU1BBUktMSU5FXzI0SBACEhAKDFNQQVJLTElORV8xVxADEhAKDFNQQVJLTElORV8xTRAEKpwBCg1NYXJrZXRPcmRlckJ5Eh8KG01BUktFVF9PUkRFUl9CWV9VTlNQRUNJRklFRBAAEhsKF09SREVSX0JZX0NIQU5HRV8yNEhfQlBTEAESGwoXT1JERVJfQllfVk9MVU1FXzI0SF9VU0QQAhIXChNPUkRFUl9CWV9MQVNUX1BSSUNFEAMSFwoTT1JERVJfQllfREFURV9BRERFRBAEKkwKDVNvcnREaXJlY3Rpb24SHgoaU09SVF9ESVJFQ1RJT05fVU5TUEVDSUZJRUQQABIMCghTT1JUX0FTQxABEg0KCVNPUlRfREVTQxACKrkBCglFcnJvckNvZGUSGgoWRVJST1JfQ09ERV9VTlNQRUNJRklFRBAAEhoKFkVSUk9SX0NPREVfQkFEX1JFUVVFU1QQARIfChtFUlJPUl9DT0RFX0lOVkFMSURfQVJHVU1FTlQQAhIYChRFUlJPUl9DT0RFX05PVF9GT1VORBADEhoKFkVSUk9SX0NPREVfVU5BVkFJTEFCTEUQBBIdChlFUlJPUl9DT0RFX1VQU1RSRUFNX0VSUk9SEAUyhwIKFU1hcmtldE92ZXJ2aWV3U2VydmljZRJ5ChRHZXRTcG90Vm9sdW1lSGlzdG9yeRIuLm1hcmtldG92ZXJ2aWV3LnYxLkdldFNwb3RWb2x1bWVIaXN0b3J5UmVxdWVzdBovLm1hcmtldG92ZXJ2aWV3LnYxLkdldFNwb3RWb2x1bWVIaXN0b3J5UmVzcG9uc2UiABJzChJMaXN0TWFya2V0T3ZlcnZpZXcSLC5tYXJrZXRvdmVydmlldy52MS5MaXN0TWFya2V0T3ZlcnZpZXdSZXF1ZXN0Gi0ubWFya2V0b3ZlcnZpZXcudjEuTGlzdE1hcmtldE92ZXJ2aWV3UmVzcG9uc2UiAEJQWk5naXRodWIuY29tL0ZhYnJpYy1MYWJzL3BvbHllc3Rlci1zZGstZ28vZ2VuL21hcmtldG92ZXJ2aWV3L3YxO21hcmtldG92ZXJ2aWV3djFiBnByb3RvMw==", [file_polyester_api_options]);
27
30
  /**
28
31
  * Describes the message marketoverview.v1.ErrorDetail.
29
32
  * Use `create(ErrorDetailSchema)` to create a new message.
@@ -55,6 +58,21 @@ const ListMarketOverviewResponseSchema = /*@__PURE__*/ messageDesc(file_marketov
55
58
  */
56
59
  const MarketOverviewBatchSchema = /*@__PURE__*/ messageDesc(file_marketoverview_v1_marketoverview, 5);
57
60
  /**
61
+ * Describes the message marketoverview.v1.GetSpotVolumeHistoryRequest.
62
+ * Use `create(GetSpotVolumeHistoryRequestSchema)` to create a new message.
63
+ */
64
+ const GetSpotVolumeHistoryRequestSchema = /*@__PURE__*/ messageDesc(file_marketoverview_v1_marketoverview, 6);
65
+ /**
66
+ * Describes the message marketoverview.v1.SpotPairVolumeSeries.
67
+ * Use `create(SpotPairVolumeSeriesSchema)` to create a new message.
68
+ */
69
+ const SpotPairVolumeSeriesSchema = /*@__PURE__*/ messageDesc(file_marketoverview_v1_marketoverview, 7);
70
+ /**
71
+ * Describes the message marketoverview.v1.GetSpotVolumeHistoryResponse.
72
+ * Use `create(GetSpotVolumeHistoryResponseSchema)` to create a new message.
73
+ */
74
+ const GetSpotVolumeHistoryResponseSchema = /*@__PURE__*/ messageDesc(file_marketoverview_v1_marketoverview, 8);
75
+ /**
58
76
  * SparklineInterval identifies the time range and sampling resolution for a
59
77
  * sparkline.
60
78
  *
@@ -112,12 +130,11 @@ let MarketOrderBy = /* @__PURE__ */ function(MarketOrderBy) {
112
130
  */
113
131
  MarketOrderBy[MarketOrderBy["ORDER_BY_CHANGE_24H_BPS"] = 1] = "ORDER_BY_CHANGE_24H_BPS";
114
132
  /**
115
- * Sort by 24h quote volume scaled by the pair's quote_quantity_scale from
116
- * GetSpotConfig.
133
+ * Sort by canonical USD 24h volume. Unvalued markets sort last in either direction.
117
134
  *
118
- * @generated from enum value: ORDER_BY_VOLUME_24H_QUOTE = 2;
135
+ * @generated from enum value: ORDER_BY_VOLUME_24H_USD = 2;
119
136
  */
120
- MarketOrderBy[MarketOrderBy["ORDER_BY_VOLUME_24H_QUOTE"] = 2] = "ORDER_BY_VOLUME_24H_QUOTE";
137
+ MarketOrderBy[MarketOrderBy["ORDER_BY_VOLUME_24H_USD"] = 2] = "ORDER_BY_VOLUME_24H_USD";
121
138
  /**
122
139
  * Sort by last price in quote units scaled by 1e6.
123
140
  *
@@ -207,6 +224,6 @@ const ErrorCodeSchema = /*@__PURE__*/ enumDesc(file_marketoverview_v1_marketover
207
224
  */
208
225
  const MarketOverviewService = /*@__PURE__*/ serviceDesc(file_marketoverview_v1_marketoverview, 0);
209
226
  //#endregion
210
- export { ErrorCode, ErrorCodeSchema, ErrorDetailSchema, ListMarketOverviewRequestSchema, ListMarketOverviewResponseSchema, MarketOrderBy, MarketOrderBySchema, MarketOverviewBatchSchema, MarketOverviewSchema, MarketOverviewService, SortDirection, SortDirectionSchema, SparklineInterval, SparklineIntervalSchema, SparklineSchema, file_marketoverview_v1_marketoverview, marketoverview_pb_exports };
227
+ export { ErrorCode, ErrorCodeSchema, ErrorDetailSchema, GetSpotVolumeHistoryRequestSchema, GetSpotVolumeHistoryResponseSchema, ListMarketOverviewRequestSchema, ListMarketOverviewResponseSchema, MarketOrderBy, MarketOrderBySchema, MarketOverviewBatchSchema, MarketOverviewSchema, MarketOverviewService, SortDirection, SortDirectionSchema, SparklineInterval, SparklineIntervalSchema, SparklineSchema, SpotPairVolumeSeriesSchema, file_marketoverview_v1_marketoverview, marketoverview_pb_exports };
211
228
 
212
229
  //# sourceMappingURL=marketoverview_pb.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"marketoverview_pb.js","names":[],"sources":["../../../../src/gen/marketoverview/v1/marketoverview_pb.ts"],"sourcesContent":["// @generated by protoc-gen-es v2.13.0 with parameter \"target=ts,import_extension=js\"\n// @generated from file marketoverview/v1/marketoverview.proto (package marketoverview.v1, syntax proto3)\n/* eslint-disable */\n\nimport type { GenEnum, GenFile, GenMessage, GenService } from \"@bufbuild/protobuf/codegenv2\";\nimport { enumDesc, fileDesc, messageDesc, serviceDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport { file_polyester_api_options } from \"../../polyester/api/options_pb.js\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file marketoverview/v1/marketoverview.proto.\n */\nexport const file_marketoverview_v1_marketoverview: GenFile = /*@__PURE__*/\n fileDesc(\"CiZtYXJrZXRvdmVydmlldy92MS9tYXJrZXRvdmVydmlldy5wcm90bxIRbWFya2V0b3ZlcnZpZXcudjEiOQoLRXJyb3JEZXRhaWwSKgoEY29kZRgBIAEoDjIcLm1hcmtldG92ZXJ2aWV3LnYxLkVycm9yQ29kZSJaCglTcGFya2xpbmUSOAoIaW50ZXJ2YWwYASABKA4yJC5tYXJrZXRvdmVydmlldy52MS5TcGFya2xpbmVJbnRlcnZhbEIAEhMKC2Nsb3NlX3RpY2tzGAIgAygDIqwDCg5NYXJrZXRPdmVydmlldxIRCglzeW1ib2xfaWQYASABKA0SGAoQbGFzdF9wcmljZV90aWNrcxgDIAEoAxIYChBsYXN0X3RyYWRlX3RzX25zGAQgASgEEhYKDmNoYW5nZV8yNGhfYnBzGAUgASgFEhYKDmhpZ2hfMjRoX3RpY2tzGAYgASgDEhUKDWxvd18yNGhfdGlja3MYByABKAMSHgoWdm9sdW1lXzI0aF9iYXNlX3NjYWxlZBgIIAEoAxIfChd2b2x1bWVfMjRoX3F1b3RlX3NjYWxlZBgOIAEoAxIUCgxsaXN0ZWRfdHNfbnMYDyABKAQSFgoOYmVzdF9iaWRfdGlja3MYCSABKAMSGwoTYmVzdF9iaWRfcXR5X3NjYWxlZBgKIAEoAxIWCg5iZXN0X2Fza190aWNrcxgLIAEoAxIbChNiZXN0X2Fza19xdHlfc2NhbGVkGAwgASgDEjAKCnNwYXJrbGluZXMYDSADKAsyHC5tYXJrZXRvdmVydmlldy52MS5TcGFya2xpbmUSGQoRaW5kZXhfcHJpY2VfdGlja3MYECABKAMioAIKGUxpc3RNYXJrZXRPdmVydmlld1JlcXVlc3QSEwoJc3ltYm9sX2lkGAEgAygNQgASDwoFbGltaXQYAiABKA1CABIUCgpwYWdlX3Rva2VuGAMgASgJQgASNAoIb3JkZXJfYnkYBCABKA4yIC5tYXJrZXRvdmVydmlldy52MS5NYXJrZXRPcmRlckJ5QgASMAoEc29ydBgFIAEoDjIgLm1hcmtldG92ZXJ2aWV3LnYxLlNvcnREaXJlY3Rpb25CABIaChJpbmNsdWRlX3NwYXJrbGluZXMYBiABKAgSQwoTc3BhcmtsaW5lX2ludGVydmFscxgHIAMoDjIkLm1hcmtldG92ZXJ2aWV3LnYxLlNwYXJrbGluZUludGVydmFsQgAiawoaTGlzdE1hcmtldE92ZXJ2aWV3UmVzcG9uc2USMgoHbWFya2V0cxgBIAMoCzIhLm1hcmtldG92ZXJ2aWV3LnYxLk1hcmtldE92ZXJ2aWV3EhkKD25leHRfcGFnZV90b2tlbhgCIAEoCUIAIlgKE01hcmtldE92ZXJ2aWV3QmF0Y2gSMgoHbWFya2V0cxgBIAMoCzIhLm1hcmtldG92ZXJ2aWV3LnYxLk1hcmtldE92ZXJ2aWV3Eg0KBXRzX25zGAIgASgEKoABChFTcGFya2xpbmVJbnRlcnZhbBIiCh5TUEFSS0xJTkVfSU5URVJWQUxfVU5TUEVDSUZJRUQQABIQCgxTUEFSS0xJTkVfMUgQARIRCg1TUEFSS0xJTkVfMjRIEAISEAoMU1BBUktMSU5FXzFXEAMSEAoMU1BBUktMSU5FXzFNEAQqngEKDU1hcmtldE9yZGVyQnkSHwobTUFSS0VUX09SREVSX0JZX1VOU1BFQ0lGSUVEEAASGwoXT1JERVJfQllfQ0hBTkdFXzI0SF9CUFMQARIdChlPUkRFUl9CWV9WT0xVTUVfMjRIX1FVT1RFEAISFwoTT1JERVJfQllfTEFTVF9QUklDRRADEhcKE09SREVSX0JZX0RBVEVfQURERUQQBCpMCg1Tb3J0RGlyZWN0aW9uEh4KGlNPUlRfRElSRUNUSU9OX1VOU1BFQ0lGSUVEEAASDAoIU09SVF9BU0MQARINCglTT1JUX0RFU0MQAiq5AQoJRXJyb3JDb2RlEhoKFkVSUk9SX0NPREVfVU5TUEVDSUZJRUQQABIaChZFUlJPUl9DT0RFX0JBRF9SRVFVRVNUEAESHwobRVJST1JfQ09ERV9JTlZBTElEX0FSR1VNRU5UEAISGAoURVJST1JfQ09ERV9OT1RfRk9VTkQQAxIaChZFUlJPUl9DT0RFX1VOQVZBSUxBQkxFEAQSHQoZRVJST1JfQ09ERV9VUFNUUkVBTV9FUlJPUhAFMowBChVNYXJrZXRPdmVydmlld1NlcnZpY2UScwoSTGlzdE1hcmtldE92ZXJ2aWV3EiwubWFya2V0b3ZlcnZpZXcudjEuTGlzdE1hcmtldE92ZXJ2aWV3UmVxdWVzdBotLm1hcmtldG92ZXJ2aWV3LnYxLkxpc3RNYXJrZXRPdmVydmlld1Jlc3BvbnNlIgBCUFpOZ2l0aHViLmNvbS9GYWJyaWMtTGFicy9wb2x5ZXN0ZXItc2RrLWdvL2dlbi9tYXJrZXRvdmVydmlldy92MTttYXJrZXRvdmVydmlld3YxYgZwcm90bzM=\", [file_polyester_api_options]);\n\n/**\n * ErrorDetail carries a typed domain error code for machine-readable handling.\n *\n * @generated from message marketoverview.v1.ErrorDetail\n */\nexport type ErrorDetail = Message<\"marketoverview.v1.ErrorDetail\"> & {\n /**\n * Stable error code for programmatic matching.\n *\n * @generated from field: marketoverview.v1.ErrorCode code = 1;\n */\n code: ErrorCode;\n};\n\n/**\n * Describes the message marketoverview.v1.ErrorDetail.\n * Use `create(ErrorDetailSchema)` to create a new message.\n */\nexport const ErrorDetailSchema: GenMessage<ErrorDetail> = /*@__PURE__*/\n messageDesc(file_marketoverview_v1_marketoverview, 0);\n\n/**\n * Sparkline contains newest-first close prices for one time range.\n *\n * @generated from message marketoverview.v1.Sparkline\n */\nexport type Sparkline = Message<\"marketoverview.v1.Sparkline\"> & {\n /**\n * Time range and sampling resolution represented by these close prices.\n *\n * @generated from field: marketoverview.v1.SparklineInterval interval = 1;\n */\n interval: SparklineInterval;\n\n /**\n * Newest-first close prices in quote units scaled by 1e6.\n *\n * @generated from field: repeated int64 close_ticks = 2;\n */\n closeTicks: bigint[];\n};\n\n/**\n * Describes the message marketoverview.v1.Sparkline.\n * Use `create(SparklineSchema)` to create a new message.\n */\nexport const SparklineSchema: GenMessage<Sparkline> = /*@__PURE__*/\n messageDesc(file_marketoverview_v1_marketoverview, 1);\n\n/**\n * @generated from message marketoverview.v1.MarketOverview\n */\nexport type MarketOverview = Message<\"marketoverview.v1.MarketOverview\"> & {\n /**\n * Numeric spot market identifier.\n *\n * @generated from field: uint32 symbol_id = 1;\n */\n symbolId: number;\n\n /**\n * Last traded price in quote units scaled by 1e6.\n *\n * @generated from field: int64 last_price_ticks = 3;\n */\n lastPriceTicks: bigint;\n\n /**\n * Last trade timestamp in nanoseconds since epoch.\n *\n * @generated from field: uint64 last_trade_ts_ns = 4;\n */\n lastTradeTsNs: bigint;\n\n /**\n * Rolling 24h change expressed in basis points (bp). Example: +123 = +1.23%.\n *\n * @generated from field: int32 change_24h_bps = 5;\n */\n change24hBps: number;\n\n /**\n * Rolling 24h stats.\n * Highest traded price in the 24h window, in quote units scaled by 1e6.\n *\n * @generated from field: int64 high_24h_ticks = 6;\n */\n high24hTicks: bigint;\n\n /**\n * Lowest traded price in the 24h window, in quote units scaled by 1e6.\n *\n * @generated from field: int64 low_24h_ticks = 7;\n */\n low24hTicks: bigint;\n\n /**\n * Rolling 24h base volume scaled by the pair's base_quantity_scale from\n * GetSpotConfig.\n *\n * @generated from field: int64 volume_24h_base_scaled = 8;\n */\n volume24hBaseScaled: bigint;\n\n /**\n * Rolling 24h quote volume scaled by the pair's quote_quantity_scale from\n * GetSpotConfig.\n *\n * @generated from field: int64 volume_24h_quote_scaled = 14;\n */\n volume24hQuoteScaled: bigint;\n\n /**\n * Listing timestamp in nanoseconds since epoch.\n *\n * @generated from field: uint64 listed_ts_ns = 15;\n */\n listedTsNs: bigint;\n\n /**\n * Current best bid price in quote units scaled by 1e6.\n *\n * @generated from field: int64 best_bid_ticks = 9;\n */\n bestBidTicks: bigint;\n\n /**\n * Best bid quantity scaled by the pair's base_quantity_scale from\n * GetSpotConfig.\n *\n * @generated from field: int64 best_bid_qty_scaled = 10;\n */\n bestBidQtyScaled: bigint;\n\n /**\n * Current best ask price in quote units scaled by 1e6.\n *\n * @generated from field: int64 best_ask_ticks = 11;\n */\n bestAskTicks: bigint;\n\n /**\n * Best ask quantity scaled by the pair's base_quantity_scale from\n * GetSpotConfig.\n *\n * @generated from field: int64 best_ask_qty_scaled = 12;\n */\n bestAskQtyScaled: bigint;\n\n /**\n * Optional sparklines (requested explicitly).\n *\n * @generated from field: repeated marketoverview.v1.Sparkline sparklines = 13;\n */\n sparklines: Sparkline[];\n\n /**\n * Current multi-venue index price in quote units scaled by 1e6.\n * Zero when no fresh, valid index price is available.\n *\n * @generated from field: int64 index_price_ticks = 16;\n */\n indexPriceTicks: bigint;\n};\n\n/**\n * Describes the message marketoverview.v1.MarketOverview.\n * Use `create(MarketOverviewSchema)` to create a new message.\n */\nexport const MarketOverviewSchema: GenMessage<MarketOverview> = /*@__PURE__*/\n messageDesc(file_marketoverview_v1_marketoverview, 2);\n\n/**\n * @generated from message marketoverview.v1.ListMarketOverviewRequest\n */\nexport type ListMarketOverviewRequest = Message<\"marketoverview.v1.ListMarketOverviewRequest\"> & {\n /**\n * Filter by stable numeric pair IDs from GetSpotConfig. When empty, returns\n * all enabled markets.\n *\n * @generated from field: repeated uint32 symbol_id = 1;\n */\n symbolId: number[];\n\n /**\n * Maximum number of markets to return. Defaults to 50 when omitted; maximum\n * is 2000.\n *\n * @generated from field: uint32 limit = 2;\n */\n limit: number;\n\n /**\n * Opaque keyset cursor from a previous response. The cursor is exclusive and\n * bound to symbol IDs, sort key, and sort direction. Sparkline options\n * affect only response enrichment and may change between pages.\n *\n * @generated from field: string page_token = 3;\n */\n pageToken: string;\n\n /**\n * Sort key. When unset/UNSPECIFIED, defaults to 24h quote volume.\n *\n * @generated from field: marketoverview.v1.MarketOrderBy order_by = 4;\n */\n orderBy: MarketOrderBy;\n\n /**\n * Sort direction (DESC=newest/highest first).\n *\n * @generated from field: marketoverview.v1.SortDirection sort = 5;\n */\n sort: SortDirection;\n\n /**\n * When true, include sparklines in each MarketOverview.\n *\n * @generated from field: bool include_sparklines = 6;\n */\n includeSparklines: boolean;\n\n /**\n * Which sparklines to include. If empty and include_sparklines is true,\n * server defaults to 24h.\n *\n * @generated from field: repeated marketoverview.v1.SparklineInterval sparkline_intervals = 7;\n */\n sparklineIntervals: SparklineInterval[];\n};\n\n/**\n * Describes the message marketoverview.v1.ListMarketOverviewRequest.\n * Use `create(ListMarketOverviewRequestSchema)` to create a new message.\n */\nexport const ListMarketOverviewRequestSchema: GenMessage<ListMarketOverviewRequest> = /*@__PURE__*/\n messageDesc(file_marketoverview_v1_marketoverview, 3);\n\n/**\n * @generated from message marketoverview.v1.ListMarketOverviewResponse\n */\nexport type ListMarketOverviewResponse = Message<\"marketoverview.v1.ListMarketOverviewResponse\"> & {\n /**\n * Market overview rows for the requested page.\n *\n * @generated from field: repeated marketoverview.v1.MarketOverview markets = 1;\n */\n markets: MarketOverview[];\n\n /**\n * Opaque cursor for the next page. Empty when no more results exist.\n *\n * @generated from field: string next_page_token = 2;\n */\n nextPageToken: string;\n};\n\n/**\n * Describes the message marketoverview.v1.ListMarketOverviewResponse.\n * Use `create(ListMarketOverviewResponseSchema)` to create a new message.\n */\nexport const ListMarketOverviewResponseSchema: GenMessage<ListMarketOverviewResponse> = /*@__PURE__*/\n messageDesc(file_marketoverview_v1_marketoverview, 4);\n\n/**\n * MarketOverviewBatch is a websocket payload carrying batched market overview\n * updates. It is published to a single all-markets channel at a fixed cadence.\n *\n * @generated from message marketoverview.v1.MarketOverviewBatch\n */\nexport type MarketOverviewBatch = Message<\"marketoverview.v1.MarketOverviewBatch\"> & {\n /**\n * Market overviews included in this batch.\n *\n * @generated from field: repeated marketoverview.v1.MarketOverview markets = 1;\n */\n markets: MarketOverview[];\n\n /**\n * Batch publish timestamp in nanoseconds since epoch.\n *\n * @generated from field: uint64 ts_ns = 2;\n */\n tsNs: bigint;\n};\n\n/**\n * Describes the message marketoverview.v1.MarketOverviewBatch.\n * Use `create(MarketOverviewBatchSchema)` to create a new message.\n */\nexport const MarketOverviewBatchSchema: GenMessage<MarketOverviewBatch> = /*@__PURE__*/\n messageDesc(file_marketoverview_v1_marketoverview, 5);\n\n/**\n * SparklineInterval identifies the time range and sampling resolution for a\n * sparkline.\n *\n * @generated from enum marketoverview.v1.SparklineInterval\n */\nexport enum SparklineInterval {\n /**\n * Unspecified interval. When requested, server may default to 24H.\n *\n * @generated from enum value: SPARKLINE_INTERVAL_UNSPECIFIED = 0;\n */\n SPARKLINE_INTERVAL_UNSPECIFIED = 0,\n\n /**\n * 1 hour sparkline. Typically returns up to 60 points (1-minute buckets).\n *\n * @generated from enum value: SPARKLINE_1H = 1;\n */\n SPARKLINE_1H = 1,\n\n /**\n * 24 hour sparkline. Typically returns up to 96 points (15-minute buckets).\n *\n * @generated from enum value: SPARKLINE_24H = 2;\n */\n SPARKLINE_24H = 2,\n\n /**\n * 1 week sparkline. Typically returns up to 168 points (1-hour buckets).\n *\n * @generated from enum value: SPARKLINE_1W = 3;\n */\n SPARKLINE_1W = 3,\n\n /**\n * 1 month sparkline. Typically returns up to 180 points (4-hour buckets).\n *\n * @generated from enum value: SPARKLINE_1M = 4;\n */\n SPARKLINE_1M = 4,\n}\n\n/**\n * Describes the enum marketoverview.v1.SparklineInterval.\n */\nexport const SparklineIntervalSchema: GenEnum<SparklineInterval> = /*@__PURE__*/\n enumDesc(file_marketoverview_v1_marketoverview, 0);\n\n/**\n * @generated from enum marketoverview.v1.MarketOrderBy\n */\nexport enum MarketOrderBy {\n /**\n * @generated from enum value: MARKET_ORDER_BY_UNSPECIFIED = 0;\n */\n MARKET_ORDER_BY_UNSPECIFIED = 0,\n\n /**\n * Sort by absolute 24h change (basis points).\n *\n * @generated from enum value: ORDER_BY_CHANGE_24H_BPS = 1;\n */\n ORDER_BY_CHANGE_24H_BPS = 1,\n\n /**\n * Sort by 24h quote volume scaled by the pair's quote_quantity_scale from\n * GetSpotConfig.\n *\n * @generated from enum value: ORDER_BY_VOLUME_24H_QUOTE = 2;\n */\n ORDER_BY_VOLUME_24H_QUOTE = 2,\n\n /**\n * Sort by last price in quote units scaled by 1e6.\n *\n * @generated from enum value: ORDER_BY_LAST_PRICE = 3;\n */\n ORDER_BY_LAST_PRICE = 3,\n\n /**\n * Sort by listing time (new listings first).\n *\n * @generated from enum value: ORDER_BY_DATE_ADDED = 4;\n */\n ORDER_BY_DATE_ADDED = 4,\n}\n\n/**\n * Describes the enum marketoverview.v1.MarketOrderBy.\n */\nexport const MarketOrderBySchema: GenEnum<MarketOrderBy> = /*@__PURE__*/\n enumDesc(file_marketoverview_v1_marketoverview, 1);\n\n/**\n * @generated from enum marketoverview.v1.SortDirection\n */\nexport enum SortDirection {\n /**\n * @generated from enum value: SORT_DIRECTION_UNSPECIFIED = 0;\n */\n SORT_DIRECTION_UNSPECIFIED = 0,\n\n /**\n * Ascending (oldest/lowest first).\n *\n * @generated from enum value: SORT_ASC = 1;\n */\n SORT_ASC = 1,\n\n /**\n * Descending (newest/highest first).\n *\n * @generated from enum value: SORT_DESC = 2;\n */\n SORT_DESC = 2,\n}\n\n/**\n * Describes the enum marketoverview.v1.SortDirection.\n */\nexport const SortDirectionSchema: GenEnum<SortDirection> = /*@__PURE__*/\n enumDesc(file_marketoverview_v1_marketoverview, 2);\n\n/**\n * ErrorCode is a stable domain error code enum for Market Overview.\n * It is used for consistent error surfaces across ConnectRPC and REST.\n *\n * @generated from enum marketoverview.v1.ErrorCode\n */\nexport enum ErrorCode {\n /**\n * @generated from enum value: ERROR_CODE_UNSPECIFIED = 0;\n */\n UNSPECIFIED = 0,\n\n /**\n * @generated from enum value: ERROR_CODE_BAD_REQUEST = 1;\n */\n BAD_REQUEST = 1,\n\n /**\n * @generated from enum value: ERROR_CODE_INVALID_ARGUMENT = 2;\n */\n INVALID_ARGUMENT = 2,\n\n /**\n * @generated from enum value: ERROR_CODE_NOT_FOUND = 3;\n */\n NOT_FOUND = 3,\n\n /**\n * @generated from enum value: ERROR_CODE_UNAVAILABLE = 4;\n */\n UNAVAILABLE = 4,\n\n /**\n * @generated from enum value: ERROR_CODE_UPSTREAM_ERROR = 5;\n */\n UPSTREAM_ERROR = 5,\n}\n\n/**\n * Describes the enum marketoverview.v1.ErrorCode.\n */\nexport const ErrorCodeSchema: GenEnum<ErrorCode> = /*@__PURE__*/\n enumDesc(file_marketoverview_v1_marketoverview, 3);\n\n/**\n * List ticker-style market overview rows with optional sparklines.\n * Supports symbol filtering, sorting, and pagination controls.\n *\n * @generated from service marketoverview.v1.MarketOverviewService\n */\nexport const MarketOverviewService: GenService<{\n /**\n * @generated from rpc marketoverview.v1.MarketOverviewService.ListMarketOverview\n */\n listMarketOverview: {\n methodKind: \"unary\";\n input: typeof ListMarketOverviewRequestSchema;\n output: typeof ListMarketOverviewResponseSchema;\n },\n}> = /*@__PURE__*/\n serviceDesc(file_marketoverview_v1_marketoverview, 0);\n\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAYA,MAAa,wCACX,uBAAS,wgFAAwgF,CAAC,0BAA0B,CAAC;;;;;AAoB/iF,MAAa,oBACX,0BAAY,uCAAuC,CAAC;;;;;AA2BtD,MAAa,kBACX,0BAAY,uCAAuC,CAAC;;;;;AA0HtD,MAAa,uBACX,0BAAY,uCAAuC,CAAC;;;;;AAiEtD,MAAa,kCACX,0BAAY,uCAAuC,CAAC;;;;;AAyBtD,MAAa,mCACX,0BAAY,uCAAuC,CAAC;;;;;AA4BtD,MAAa,4BACX,0BAAY,uCAAuC,CAAC;;;;;;;AAQtD,IAAY,oBAAL,yBAAA,mBAAA;;;;;;CAML,kBAAA,kBAAA,oCAAA,KAAA;;;;;;CAOA,kBAAA,kBAAA,kBAAA,KAAA;;;;;;CAOA,kBAAA,kBAAA,mBAAA,KAAA;;;;;;CAOA,kBAAA,kBAAA,kBAAA,KAAA;;;;;;CAOA,kBAAA,kBAAA,kBAAA,KAAA;;AACF,EAAA,CAAA,CAAA;;;;AAKA,MAAa,0BACX,uBAAS,uCAAuC,CAAC;;;;AAKnD,IAAY,gBAAL,yBAAA,eAAA;;;;CAIL,cAAA,cAAA,iCAAA,KAAA;;;;;;CAOA,cAAA,cAAA,6BAAA,KAAA;;;;;;;CAQA,cAAA,cAAA,+BAAA,KAAA;;;;;;CAOA,cAAA,cAAA,yBAAA,KAAA;;;;;;CAOA,cAAA,cAAA,yBAAA,KAAA;;AACF,EAAA,CAAA,CAAA;;;;AAKA,MAAa,sBACX,uBAAS,uCAAuC,CAAC;;;;AAKnD,IAAY,gBAAL,yBAAA,eAAA;;;;CAIL,cAAA,cAAA,gCAAA,KAAA;;;;;;CAOA,cAAA,cAAA,cAAA,KAAA;;;;;;CAOA,cAAA,cAAA,eAAA,KAAA;;AACF,EAAA,CAAA,CAAA;;;;AAKA,MAAa,sBACX,uBAAS,uCAAuC,CAAC;;;;;;;AAQnD,IAAY,YAAL,yBAAA,WAAA;;;;CAIL,UAAA,UAAA,iBAAA,KAAA;;;;CAKA,UAAA,UAAA,iBAAA,KAAA;;;;CAKA,UAAA,UAAA,sBAAA,KAAA;;;;CAKA,UAAA,UAAA,eAAA,KAAA;;;;CAKA,UAAA,UAAA,iBAAA,KAAA;;;;CAKA,UAAA,UAAA,oBAAA,KAAA;;AACF,EAAA,CAAA,CAAA;;;;AAKA,MAAa,kBACX,uBAAS,uCAAuC,CAAC;;;;;;;AAQnD,MAAa,wBAUX,0BAAY,uCAAuC,CAAC"}
1
+ {"version":3,"file":"marketoverview_pb.js","names":[],"sources":["../../../../src/gen/marketoverview/v1/marketoverview_pb.ts"],"sourcesContent":["// @generated by protoc-gen-es v2.13.0 with parameter \"target=ts,import_extension=js\"\n// @generated from file marketoverview/v1/marketoverview.proto (package marketoverview.v1, syntax proto3)\n/* eslint-disable */\n\nimport type { GenEnum, GenFile, GenMessage, GenService } from \"@bufbuild/protobuf/codegenv2\";\nimport { enumDesc, fileDesc, messageDesc, serviceDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport { file_polyester_api_options } from \"../../polyester/api/options_pb.js\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file marketoverview/v1/marketoverview.proto.\n */\nexport const file_marketoverview_v1_marketoverview: GenFile = /*@__PURE__*/\n fileDesc(\"CiZtYXJrZXRvdmVydmlldy92MS9tYXJrZXRvdmVydmlldy5wcm90bxIRbWFya2V0b3ZlcnZpZXcudjEiOQoLRXJyb3JEZXRhaWwSKgoEY29kZRgBIAEoDjIcLm1hcmtldG92ZXJ2aWV3LnYxLkVycm9yQ29kZSJaCglTcGFya2xpbmUSOAoIaW50ZXJ2YWwYASABKA4yJC5tYXJrZXRvdmVydmlldy52MS5TcGFya2xpbmVJbnRlcnZhbEIAEhMKC2Nsb3NlX3RpY2tzGAIgAygDIqsECg5NYXJrZXRPdmVydmlldxIRCglzeW1ib2xfaWQYASABKA0SGAoQbGFzdF9wcmljZV90aWNrcxgDIAEoAxIYChBsYXN0X3RyYWRlX3RzX25zGAQgASgEEhYKDmNoYW5nZV8yNGhfYnBzGAUgASgFEhYKDmhpZ2hfMjRoX3RpY2tzGAYgASgDEhUKDWxvd18yNGhfdGlja3MYByABKAMSIwoWdm9sdW1lXzI0aF9iYXNlX3NjYWxlZBgIIAEoA0gAiAEBEiQKF3ZvbHVtZV8yNGhfcXVvdGVfc2NhbGVkGA4gASgDSAGIAQESIgoVdm9sdW1lXzI0aF91c2Rfc2NhbGVkGBEgASgDSAKIAQESFAoMbGlzdGVkX3RzX25zGA8gASgEEhYKDmJlc3RfYmlkX3RpY2tzGAkgASgDEhsKE2Jlc3RfYmlkX3F0eV9zY2FsZWQYCiABKAMSFgoOYmVzdF9hc2tfdGlja3MYCyABKAMSGwoTYmVzdF9hc2tfcXR5X3NjYWxlZBgMIAEoAxIwCgpzcGFya2xpbmVzGA0gAygLMhwubWFya2V0b3ZlcnZpZXcudjEuU3BhcmtsaW5lEhkKEWluZGV4X3ByaWNlX3RpY2tzGBAgASgDQhkKF192b2x1bWVfMjRoX2Jhc2Vfc2NhbGVkQhoKGF92b2x1bWVfMjRoX3F1b3RlX3NjYWxlZEIYChZfdm9sdW1lXzI0aF91c2Rfc2NhbGVkIqACChlMaXN0TWFya2V0T3ZlcnZpZXdSZXF1ZXN0EhMKCXN5bWJvbF9pZBgBIAMoDUIAEg8KBWxpbWl0GAIgASgNQgASFAoKcGFnZV90b2tlbhgDIAEoCUIAEjQKCG9yZGVyX2J5GAQgASgOMiAubWFya2V0b3ZlcnZpZXcudjEuTWFya2V0T3JkZXJCeUIAEjAKBHNvcnQYBSABKA4yIC5tYXJrZXRvdmVydmlldy52MS5Tb3J0RGlyZWN0aW9uQgASGgoSaW5jbHVkZV9zcGFya2xpbmVzGAYgASgIEkMKE3NwYXJrbGluZV9pbnRlcnZhbHMYByADKA4yJC5tYXJrZXRvdmVydmlldy52MS5TcGFya2xpbmVJbnRlcnZhbEIAImsKGkxpc3RNYXJrZXRPdmVydmlld1Jlc3BvbnNlEjIKB21hcmtldHMYASADKAsyIS5tYXJrZXRvdmVydmlldy52MS5NYXJrZXRPdmVydmlldxIZCg9uZXh0X3BhZ2VfdG9rZW4YAiABKAlCACJYChNNYXJrZXRPdmVydmlld0JhdGNoEjIKB21hcmtldHMYASADKAsyIS5tYXJrZXRvdmVydmlldy52MS5NYXJrZXRPdmVydmlldxINCgV0c19ucxgCIAEoBCIyChtHZXRTcG90Vm9sdW1lSGlzdG9yeVJlcXVlc3QSEwoJc3ltYm9sX2lkGAEgAygNQgAiRAoUU3BvdFBhaXJWb2x1bWVTZXJpZXMSEQoJc3ltYm9sX2lkGAEgASgNEhkKEXZvbHVtZV91c2Rfc2NhbGVkGAIgAygSIsEBChxHZXRTcG90Vm9sdW1lSGlzdG9yeVJlc3BvbnNlEg4KBmJ1Y2tldBgBIAEoCRIUCgxzdGFydF90c19zZWMYAiABKAcSEgoKZW5kX3RzX3NlYxgDIAEoBxIOCgZwb2ludHMYBCABKA0SNgoFcGFpcnMYBSADKAsyJy5tYXJrZXRvdmVydmlldy52MS5TcG90UGFpclZvbHVtZVNlcmllcxIfChd0b3RhbF92b2x1bWVfdXNkX3NjYWxlZBgGIAMoEiqAAQoRU3BhcmtsaW5lSW50ZXJ2YWwSIgoeU1BBUktMSU5FX0lOVEVSVkFMX1VOU1BFQ0lGSUVEEAASEAoMU1BBUktMSU5FXzFIEAESEQoNU1BBUktMSU5FXzI0SBACEhAKDFNQQVJLTElORV8xVxADEhAKDFNQQVJLTElORV8xTRAEKpwBCg1NYXJrZXRPcmRlckJ5Eh8KG01BUktFVF9PUkRFUl9CWV9VTlNQRUNJRklFRBAAEhsKF09SREVSX0JZX0NIQU5HRV8yNEhfQlBTEAESGwoXT1JERVJfQllfVk9MVU1FXzI0SF9VU0QQAhIXChNPUkRFUl9CWV9MQVNUX1BSSUNFEAMSFwoTT1JERVJfQllfREFURV9BRERFRBAEKkwKDVNvcnREaXJlY3Rpb24SHgoaU09SVF9ESVJFQ1RJT05fVU5TUEVDSUZJRUQQABIMCghTT1JUX0FTQxABEg0KCVNPUlRfREVTQxACKrkBCglFcnJvckNvZGUSGgoWRVJST1JfQ09ERV9VTlNQRUNJRklFRBAAEhoKFkVSUk9SX0NPREVfQkFEX1JFUVVFU1QQARIfChtFUlJPUl9DT0RFX0lOVkFMSURfQVJHVU1FTlQQAhIYChRFUlJPUl9DT0RFX05PVF9GT1VORBADEhoKFkVSUk9SX0NPREVfVU5BVkFJTEFCTEUQBBIdChlFUlJPUl9DT0RFX1VQU1RSRUFNX0VSUk9SEAUyhwIKFU1hcmtldE92ZXJ2aWV3U2VydmljZRJ5ChRHZXRTcG90Vm9sdW1lSGlzdG9yeRIuLm1hcmtldG92ZXJ2aWV3LnYxLkdldFNwb3RWb2x1bWVIaXN0b3J5UmVxdWVzdBovLm1hcmtldG92ZXJ2aWV3LnYxLkdldFNwb3RWb2x1bWVIaXN0b3J5UmVzcG9uc2UiABJzChJMaXN0TWFya2V0T3ZlcnZpZXcSLC5tYXJrZXRvdmVydmlldy52MS5MaXN0TWFya2V0T3ZlcnZpZXdSZXF1ZXN0Gi0ubWFya2V0b3ZlcnZpZXcudjEuTGlzdE1hcmtldE92ZXJ2aWV3UmVzcG9uc2UiAEJQWk5naXRodWIuY29tL0ZhYnJpYy1MYWJzL3BvbHllc3Rlci1zZGstZ28vZ2VuL21hcmtldG92ZXJ2aWV3L3YxO21hcmtldG92ZXJ2aWV3djFiBnByb3RvMw==\", [file_polyester_api_options]);\n\n/**\n * ErrorDetail carries a typed domain error code for machine-readable handling.\n *\n * @generated from message marketoverview.v1.ErrorDetail\n */\nexport type ErrorDetail = Message<\"marketoverview.v1.ErrorDetail\"> & {\n /**\n * Stable error code for programmatic matching.\n *\n * @generated from field: marketoverview.v1.ErrorCode code = 1;\n */\n code: ErrorCode;\n};\n\n/**\n * Describes the message marketoverview.v1.ErrorDetail.\n * Use `create(ErrorDetailSchema)` to create a new message.\n */\nexport const ErrorDetailSchema: GenMessage<ErrorDetail> = /*@__PURE__*/\n messageDesc(file_marketoverview_v1_marketoverview, 0);\n\n/**\n * Sparkline contains newest-first close prices for one time range.\n *\n * @generated from message marketoverview.v1.Sparkline\n */\nexport type Sparkline = Message<\"marketoverview.v1.Sparkline\"> & {\n /**\n * Time range and sampling resolution represented by these close prices.\n *\n * @generated from field: marketoverview.v1.SparklineInterval interval = 1;\n */\n interval: SparklineInterval;\n\n /**\n * Newest-first close prices in quote units scaled by 1e6.\n *\n * @generated from field: repeated int64 close_ticks = 2;\n */\n closeTicks: bigint[];\n};\n\n/**\n * Describes the message marketoverview.v1.Sparkline.\n * Use `create(SparklineSchema)` to create a new message.\n */\nexport const SparklineSchema: GenMessage<Sparkline> = /*@__PURE__*/\n messageDesc(file_marketoverview_v1_marketoverview, 1);\n\n/**\n * @generated from message marketoverview.v1.MarketOverview\n */\nexport type MarketOverview = Message<\"marketoverview.v1.MarketOverview\"> & {\n /**\n * Numeric spot market identifier.\n *\n * @generated from field: uint32 symbol_id = 1;\n */\n symbolId: number;\n\n /**\n * Last traded price in quote units scaled by 1e6.\n *\n * @generated from field: int64 last_price_ticks = 3;\n */\n lastPriceTicks: bigint;\n\n /**\n * Last trade timestamp in nanoseconds since epoch.\n *\n * @generated from field: uint64 last_trade_ts_ns = 4;\n */\n lastTradeTsNs: bigint;\n\n /**\n * Rolling 24h change expressed in basis points (bp). Example: +123 = +1.23%.\n *\n * @generated from field: int32 change_24h_bps = 5;\n */\n change24hBps: number;\n\n /**\n * Rolling 24h stats.\n * Highest traded price in the 24h window, in quote units scaled by 1e6.\n *\n * @generated from field: int64 high_24h_ticks = 6;\n */\n high24hTicks: bigint;\n\n /**\n * Lowest traded price in the 24h window, in quote units scaled by 1e6.\n *\n * @generated from field: int64 low_24h_ticks = 7;\n */\n low24hTicks: bigint;\n\n /**\n * Rolling 24h base volume scaled by the pair's base_quantity_scale from\n * GetSpotConfig. Omitted if the amount exceeds the signed 64-bit range.\n *\n * @generated from field: optional int64 volume_24h_base_scaled = 8;\n */\n volume24hBaseScaled?: bigint | undefined;\n\n /**\n * Rolling 24h quote volume scaled by the pair's quote_quantity_scale from\n * GetSpotConfig. Omitted if the amount exceeds the signed 64-bit range.\n *\n * @generated from field: optional int64 volume_24h_quote_scaled = 14;\n */\n volume24hQuoteScaled?: bigint | undefined;\n\n /**\n * Rolling 24h USD volume, scaled by 1e6 (one unit is 0.000001 USD).\n * Omitted if any contributing volume cannot be valued reliably. Quote volumes\n * use execution prices; USD conversion uses historical quarter-hour marks.\n * Covers the 24 hours ending at the latest completed UTC minute.\n * Refreshed every 15 seconds after completed minutes become available.\n *\n * @generated from field: optional int64 volume_24h_usd_scaled = 17;\n */\n volume24hUsdScaled?: bigint | undefined;\n\n /**\n * Listing timestamp in nanoseconds since epoch.\n *\n * @generated from field: uint64 listed_ts_ns = 15;\n */\n listedTsNs: bigint;\n\n /**\n * Current best bid price in quote units scaled by 1e6.\n *\n * @generated from field: int64 best_bid_ticks = 9;\n */\n bestBidTicks: bigint;\n\n /**\n * Best bid quantity scaled by the pair's base_quantity_scale from\n * GetSpotConfig.\n *\n * @generated from field: int64 best_bid_qty_scaled = 10;\n */\n bestBidQtyScaled: bigint;\n\n /**\n * Current best ask price in quote units scaled by 1e6.\n *\n * @generated from field: int64 best_ask_ticks = 11;\n */\n bestAskTicks: bigint;\n\n /**\n * Best ask quantity scaled by the pair's base_quantity_scale from\n * GetSpotConfig.\n *\n * @generated from field: int64 best_ask_qty_scaled = 12;\n */\n bestAskQtyScaled: bigint;\n\n /**\n * Optional sparklines (requested explicitly).\n *\n * @generated from field: repeated marketoverview.v1.Sparkline sparklines = 13;\n */\n sparklines: Sparkline[];\n\n /**\n * Current multi-venue index price in quote units scaled by 1e6.\n * Zero when no fresh, valid index price is available.\n *\n * @generated from field: int64 index_price_ticks = 16;\n */\n indexPriceTicks: bigint;\n};\n\n/**\n * Describes the message marketoverview.v1.MarketOverview.\n * Use `create(MarketOverviewSchema)` to create a new message.\n */\nexport const MarketOverviewSchema: GenMessage<MarketOverview> = /*@__PURE__*/\n messageDesc(file_marketoverview_v1_marketoverview, 2);\n\n/**\n * @generated from message marketoverview.v1.ListMarketOverviewRequest\n */\nexport type ListMarketOverviewRequest = Message<\"marketoverview.v1.ListMarketOverviewRequest\"> & {\n /**\n * Filter by stable numeric pair IDs from GetSpotConfig. When empty, returns\n * all enabled markets.\n *\n * @generated from field: repeated uint32 symbol_id = 1;\n */\n symbolId: number[];\n\n /**\n * Maximum number of markets to return. Defaults to 50 when omitted; maximum\n * is 2000.\n *\n * @generated from field: uint32 limit = 2;\n */\n limit: number;\n\n /**\n * Opaque keyset cursor from a previous response. The cursor is exclusive and\n * bound to symbol IDs, sort key, and sort direction. Sparkline options\n * affect only response enrichment and may change between pages.\n *\n * @generated from field: string page_token = 3;\n */\n pageToken: string;\n\n /**\n * Sort key. When unset/UNSPECIFIED, defaults to descending 24h USD volume.\n *\n * @generated from field: marketoverview.v1.MarketOrderBy order_by = 4;\n */\n orderBy: MarketOrderBy;\n\n /**\n * Sort direction (DESC=newest/highest first).\n *\n * @generated from field: marketoverview.v1.SortDirection sort = 5;\n */\n sort: SortDirection;\n\n /**\n * When true, include sparklines in each MarketOverview.\n *\n * @generated from field: bool include_sparklines = 6;\n */\n includeSparklines: boolean;\n\n /**\n * Which sparklines to include. If empty and include_sparklines is true,\n * server defaults to 24h.\n *\n * @generated from field: repeated marketoverview.v1.SparklineInterval sparkline_intervals = 7;\n */\n sparklineIntervals: SparklineInterval[];\n};\n\n/**\n * Describes the message marketoverview.v1.ListMarketOverviewRequest.\n * Use `create(ListMarketOverviewRequestSchema)` to create a new message.\n */\nexport const ListMarketOverviewRequestSchema: GenMessage<ListMarketOverviewRequest> = /*@__PURE__*/\n messageDesc(file_marketoverview_v1_marketoverview, 3);\n\n/**\n * @generated from message marketoverview.v1.ListMarketOverviewResponse\n */\nexport type ListMarketOverviewResponse = Message<\"marketoverview.v1.ListMarketOverviewResponse\"> & {\n /**\n * Market overview rows for the requested page.\n *\n * @generated from field: repeated marketoverview.v1.MarketOverview markets = 1;\n */\n markets: MarketOverview[];\n\n /**\n * Opaque cursor for the next page. Empty when no more results exist.\n *\n * @generated from field: string next_page_token = 2;\n */\n nextPageToken: string;\n};\n\n/**\n * Describes the message marketoverview.v1.ListMarketOverviewResponse.\n * Use `create(ListMarketOverviewResponseSchema)` to create a new message.\n */\nexport const ListMarketOverviewResponseSchema: GenMessage<ListMarketOverviewResponse> = /*@__PURE__*/\n messageDesc(file_marketoverview_v1_marketoverview, 4);\n\n/**\n * MarketOverviewBatch is a websocket payload carrying batched market overview\n * updates. It is published to a single all-markets channel at a fixed cadence.\n *\n * @generated from message marketoverview.v1.MarketOverviewBatch\n */\nexport type MarketOverviewBatch = Message<\"marketoverview.v1.MarketOverviewBatch\"> & {\n /**\n * Market overviews included in this batch.\n *\n * @generated from field: repeated marketoverview.v1.MarketOverview markets = 1;\n */\n markets: MarketOverview[];\n\n /**\n * Batch publish timestamp in nanoseconds since epoch.\n *\n * @generated from field: uint64 ts_ns = 2;\n */\n tsNs: bigint;\n};\n\n/**\n * Describes the message marketoverview.v1.MarketOverviewBatch.\n * Use `create(MarketOverviewBatchSchema)` to create a new message.\n */\nexport const MarketOverviewBatchSchema: GenMessage<MarketOverviewBatch> = /*@__PURE__*/\n messageDesc(file_marketoverview_v1_marketoverview, 5);\n\n/**\n * A finite spot-volume chart request; no pagination or arbitrary time range.\n *\n * @generated from message marketoverview.v1.GetSpotVolumeHistoryRequest\n */\nexport type GetSpotVolumeHistoryRequest = Message<\"marketoverview.v1.GetSpotVolumeHistoryRequest\"> & {\n /**\n * Pair IDs from GetSpotConfig; empty selects every configured pair separately.\n * At most 2000 distinct positive IDs. Unknown IDs are rejected. If the full\n * universe exceeds 2000 pairs, specify a filter; results are never truncated.\n *\n * @generated from field: repeated uint32 symbol_id = 1;\n */\n symbolId: number[];\n};\n\n/**\n * Describes the message marketoverview.v1.GetSpotVolumeHistoryRequest.\n * Use `create(GetSpotVolumeHistoryRequestSchema)` to create a new message.\n */\nexport const GetSpotVolumeHistoryRequestSchema: GenMessage<GetSpotVolumeHistoryRequest> = /*@__PURE__*/\n messageDesc(file_marketoverview_v1_marketoverview, 6);\n\n/**\n * One pair appears exactly once, regardless of its base and quote assets.\n * REST renders the scaled amounts as decimal strings in volumeUsd.\n *\n * @generated from message marketoverview.v1.SpotPairVolumeSeries\n */\nexport type SpotPairVolumeSeries = Message<\"marketoverview.v1.SpotPairVolumeSeries\"> & {\n /**\n * Stable numeric pair ID; clients may group these series by base asset.\n *\n * @generated from field: uint32 symbol_id = 1;\n */\n symbolId: number;\n\n /**\n * Trailing-24h USD amounts scaled by 1e6, oldest first. Exactly points values,\n * aligned with the shared response grid. Zero means no executed trades in\n * the window. USD values round down once per contributing 15-minute bucket.\n *\n * @generated from field: repeated sint64 volume_usd_scaled = 2;\n */\n volumeUsdScaled: bigint[];\n};\n\n/**\n * Describes the message marketoverview.v1.SpotPairVolumeSeries.\n * Use `create(SpotPairVolumeSeriesSchema)` to create a new message.\n */\nexport const SpotPairVolumeSeriesSchema: GenMessage<SpotPairVolumeSeries> = /*@__PURE__*/\n messageDesc(file_marketoverview_v1_marketoverview, 7);\n\n/**\n * Aligned columnar trailing-24h USD series over the most recent 24 hours.\n * The grid always contains 97 samples ending at the latest completed UTC\n * quarter-hour. Index i maps to start_ts_sec + i * 900 seconds. Each sample\n * covers [sample time - 24h, sample time); only the preceding 48 hours contribute.\n * USD conversion uses the latest trustworthy quote/USD mark at or before each\n * bucket's start. Stablecoin quotes also require historical USD prices.\n * If any contributing trade cannot be valued, or a USD amount overflows,\n * the RPC fails as unavailable; partial or zero-filled valuations are not returned.\n * Intervals without executed trades are zero. Results may be reused for 15 seconds.\n *\n * @generated from message marketoverview.v1.GetSpotVolumeHistoryResponse\n */\nexport type GetSpotVolumeHistoryResponse = Message<\"marketoverview.v1.GetSpotVolumeHistoryResponse\"> & {\n /**\n * Sampling interval between points; currently always \"15m\".\n *\n * @generated from field: string bucket = 1;\n */\n bucket: string;\n\n /**\n * First sample timestamp in seconds since Unix epoch (UTC), inclusive.\n *\n * @generated from field: fixed32 start_ts_sec = 2;\n */\n startTsSec: number;\n\n /**\n * Last sample timestamp in seconds since Unix epoch (UTC), inclusive.\n *\n * @generated from field: fixed32 end_ts_sec = 3;\n */\n endTsSec: number;\n\n /**\n * Number of aligned values in every pair array and the total array; always 97.\n *\n * @generated from field: uint32 points = 4;\n */\n points: number;\n\n /**\n * Pairs ordered by ascending symbol_id; at most 2000, each included once.\n *\n * @generated from field: repeated marketoverview.v1.SpotPairVolumeSeries pairs = 5;\n */\n pairs: SpotPairVolumeSeries[];\n\n /**\n * Sum across selected pairs, USD scaled by 1e6. Exactly points values,\n * oldest first. REST renders decimal strings in totalVolumeUsd.\n * Do not sum overlapping trailing-24h samples to obtain period traded volume.\n *\n * @generated from field: repeated sint64 total_volume_usd_scaled = 6;\n */\n totalVolumeUsdScaled: bigint[];\n};\n\n/**\n * Describes the message marketoverview.v1.GetSpotVolumeHistoryResponse.\n * Use `create(GetSpotVolumeHistoryResponseSchema)` to create a new message.\n */\nexport const GetSpotVolumeHistoryResponseSchema: GenMessage<GetSpotVolumeHistoryResponse> = /*@__PURE__*/\n messageDesc(file_marketoverview_v1_marketoverview, 8);\n\n/**\n * SparklineInterval identifies the time range and sampling resolution for a\n * sparkline.\n *\n * @generated from enum marketoverview.v1.SparklineInterval\n */\nexport enum SparklineInterval {\n /**\n * Unspecified interval. When requested, server may default to 24H.\n *\n * @generated from enum value: SPARKLINE_INTERVAL_UNSPECIFIED = 0;\n */\n SPARKLINE_INTERVAL_UNSPECIFIED = 0,\n\n /**\n * 1 hour sparkline. Typically returns up to 60 points (1-minute buckets).\n *\n * @generated from enum value: SPARKLINE_1H = 1;\n */\n SPARKLINE_1H = 1,\n\n /**\n * 24 hour sparkline. Typically returns up to 96 points (15-minute buckets).\n *\n * @generated from enum value: SPARKLINE_24H = 2;\n */\n SPARKLINE_24H = 2,\n\n /**\n * 1 week sparkline. Typically returns up to 168 points (1-hour buckets).\n *\n * @generated from enum value: SPARKLINE_1W = 3;\n */\n SPARKLINE_1W = 3,\n\n /**\n * 1 month sparkline. Typically returns up to 180 points (4-hour buckets).\n *\n * @generated from enum value: SPARKLINE_1M = 4;\n */\n SPARKLINE_1M = 4,\n}\n\n/**\n * Describes the enum marketoverview.v1.SparklineInterval.\n */\nexport const SparklineIntervalSchema: GenEnum<SparklineInterval> = /*@__PURE__*/\n enumDesc(file_marketoverview_v1_marketoverview, 0);\n\n/**\n * @generated from enum marketoverview.v1.MarketOrderBy\n */\nexport enum MarketOrderBy {\n /**\n * @generated from enum value: MARKET_ORDER_BY_UNSPECIFIED = 0;\n */\n MARKET_ORDER_BY_UNSPECIFIED = 0,\n\n /**\n * Sort by absolute 24h change (basis points).\n *\n * @generated from enum value: ORDER_BY_CHANGE_24H_BPS = 1;\n */\n ORDER_BY_CHANGE_24H_BPS = 1,\n\n /**\n * Sort by canonical USD 24h volume. Unvalued markets sort last in either direction.\n *\n * @generated from enum value: ORDER_BY_VOLUME_24H_USD = 2;\n */\n ORDER_BY_VOLUME_24H_USD = 2,\n\n /**\n * Sort by last price in quote units scaled by 1e6.\n *\n * @generated from enum value: ORDER_BY_LAST_PRICE = 3;\n */\n ORDER_BY_LAST_PRICE = 3,\n\n /**\n * Sort by listing time (new listings first).\n *\n * @generated from enum value: ORDER_BY_DATE_ADDED = 4;\n */\n ORDER_BY_DATE_ADDED = 4,\n}\n\n/**\n * Describes the enum marketoverview.v1.MarketOrderBy.\n */\nexport const MarketOrderBySchema: GenEnum<MarketOrderBy> = /*@__PURE__*/\n enumDesc(file_marketoverview_v1_marketoverview, 1);\n\n/**\n * @generated from enum marketoverview.v1.SortDirection\n */\nexport enum SortDirection {\n /**\n * @generated from enum value: SORT_DIRECTION_UNSPECIFIED = 0;\n */\n SORT_DIRECTION_UNSPECIFIED = 0,\n\n /**\n * Ascending (oldest/lowest first).\n *\n * @generated from enum value: SORT_ASC = 1;\n */\n SORT_ASC = 1,\n\n /**\n * Descending (newest/highest first).\n *\n * @generated from enum value: SORT_DESC = 2;\n */\n SORT_DESC = 2,\n}\n\n/**\n * Describes the enum marketoverview.v1.SortDirection.\n */\nexport const SortDirectionSchema: GenEnum<SortDirection> = /*@__PURE__*/\n enumDesc(file_marketoverview_v1_marketoverview, 2);\n\n/**\n * ErrorCode is a stable domain error code enum for Market Overview.\n * It is used for consistent error surfaces across ConnectRPC and REST.\n *\n * @generated from enum marketoverview.v1.ErrorCode\n */\nexport enum ErrorCode {\n /**\n * @generated from enum value: ERROR_CODE_UNSPECIFIED = 0;\n */\n UNSPECIFIED = 0,\n\n /**\n * @generated from enum value: ERROR_CODE_BAD_REQUEST = 1;\n */\n BAD_REQUEST = 1,\n\n /**\n * @generated from enum value: ERROR_CODE_INVALID_ARGUMENT = 2;\n */\n INVALID_ARGUMENT = 2,\n\n /**\n * @generated from enum value: ERROR_CODE_NOT_FOUND = 3;\n */\n NOT_FOUND = 3,\n\n /**\n * @generated from enum value: ERROR_CODE_UNAVAILABLE = 4;\n */\n UNAVAILABLE = 4,\n\n /**\n * @generated from enum value: ERROR_CODE_UPSTREAM_ERROR = 5;\n */\n UPSTREAM_ERROR = 5,\n}\n\n/**\n * Describes the enum marketoverview.v1.ErrorCode.\n */\nexport const ErrorCodeSchema: GenEnum<ErrorCode> = /*@__PURE__*/\n enumDesc(file_marketoverview_v1_marketoverview, 3);\n\n/**\n * List ticker-style market overview rows with optional sparklines.\n * Supports symbol filtering, sorting, and pagination controls.\n *\n * @generated from service marketoverview.v1.MarketOverviewService\n */\nexport const MarketOverviewService: GenService<{\n /**\n * Get aligned pair-level and total trailing-24h USD volume, sampled every\n * 15 minutes over the latest day. Unavailable valuations fail the request.\n *\n * @generated from rpc marketoverview.v1.MarketOverviewService.GetSpotVolumeHistory\n */\n getSpotVolumeHistory: {\n methodKind: \"unary\";\n input: typeof GetSpotVolumeHistoryRequestSchema;\n output: typeof GetSpotVolumeHistoryResponseSchema;\n },\n /**\n * @generated from rpc marketoverview.v1.MarketOverviewService.ListMarketOverview\n */\n listMarketOverview: {\n methodKind: \"unary\";\n input: typeof ListMarketOverviewRequestSchema;\n output: typeof ListMarketOverviewResponseSchema;\n },\n}> = /*@__PURE__*/\n serviceDesc(file_marketoverview_v1_marketoverview, 0);\n\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA,MAAa,wCACX,uBAAS,4vGAA4vG,CAAC,0BAA0B,CAAC;;;;;AAoBnyG,MAAa,oBACX,0BAAY,uCAAuC,CAAC;;;;;AA2BtD,MAAa,kBACX,0BAAY,uCAAuC,CAAC;;;;;AAqItD,MAAa,uBACX,0BAAY,uCAAuC,CAAC;;;;;AAiEtD,MAAa,kCACX,0BAAY,uCAAuC,CAAC;;;;;AAyBtD,MAAa,mCACX,0BAAY,uCAAuC,CAAC;;;;;AA4BtD,MAAa,4BACX,0BAAY,uCAAuC,CAAC;;;;;AAsBtD,MAAa,oCACX,0BAAY,uCAAuC,CAAC;;;;;AA8BtD,MAAa,6BACX,0BAAY,uCAAuC,CAAC;;;;;AAiEtD,MAAa,qCACX,0BAAY,uCAAuC,CAAC;;;;;;;AAQtD,IAAY,oBAAL,yBAAA,mBAAA;;;;;;CAML,kBAAA,kBAAA,oCAAA,KAAA;;;;;;CAOA,kBAAA,kBAAA,kBAAA,KAAA;;;;;;CAOA,kBAAA,kBAAA,mBAAA,KAAA;;;;;;CAOA,kBAAA,kBAAA,kBAAA,KAAA;;;;;;CAOA,kBAAA,kBAAA,kBAAA,KAAA;;AACF,EAAA,CAAA,CAAA;;;;AAKA,MAAa,0BACX,uBAAS,uCAAuC,CAAC;;;;AAKnD,IAAY,gBAAL,yBAAA,eAAA;;;;CAIL,cAAA,cAAA,iCAAA,KAAA;;;;;;CAOA,cAAA,cAAA,6BAAA,KAAA;;;;;;CAOA,cAAA,cAAA,6BAAA,KAAA;;;;;;CAOA,cAAA,cAAA,yBAAA,KAAA;;;;;;CAOA,cAAA,cAAA,yBAAA,KAAA;;AACF,EAAA,CAAA,CAAA;;;;AAKA,MAAa,sBACX,uBAAS,uCAAuC,CAAC;;;;AAKnD,IAAY,gBAAL,yBAAA,eAAA;;;;CAIL,cAAA,cAAA,gCAAA,KAAA;;;;;;CAOA,cAAA,cAAA,cAAA,KAAA;;;;;;CAOA,cAAA,cAAA,eAAA,KAAA;;AACF,EAAA,CAAA,CAAA;;;;AAKA,MAAa,sBACX,uBAAS,uCAAuC,CAAC;;;;;;;AAQnD,IAAY,YAAL,yBAAA,WAAA;;;;CAIL,UAAA,UAAA,iBAAA,KAAA;;;;CAKA,UAAA,UAAA,iBAAA,KAAA;;;;CAKA,UAAA,UAAA,sBAAA,KAAA;;;;CAKA,UAAA,UAAA,eAAA,KAAA;;;;CAKA,UAAA,UAAA,iBAAA,KAAA;;;;CAKA,UAAA,UAAA,oBAAA,KAAA;;AACF,EAAA,CAAA,CAAA;;;;AAKA,MAAa,kBACX,uBAAS,uCAAuC,CAAC;;;;;;;AAQnD,MAAa,wBAqBX,0BAAY,uCAAuC,CAAC"}