@polyester/sdk 0.27.2 → 0.28.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.
- package/CHANGELOG.md +16 -0
- package/dist/catalogs/readers.js +6 -6
- package/dist/catalogs/readers.js.map +1 -1
- package/dist/gen/ledger/read/v1/ledger_read_pb.d.ts +3 -3
- package/dist/gen/ledger/read/v1/ledger_read_pb.js.map +1 -1
- package/dist/gen/marketdata/v1/heatmap_pb.d.ts +6 -6
- package/dist/gen/marketdata/v1/heatmap_pb.js.map +1 -1
- package/dist/gen/marketdata/v1/marketdata_pb.d.ts +13 -13
- package/dist/gen/marketdata/v1/marketdata_pb.js.map +1 -1
- package/dist/gen/marketoverview/v1/marketoverview_pb.d.ts +8 -8
- package/dist/gen/marketoverview/v1/marketoverview_pb.js +1 -1
- package/dist/gen/marketoverview/v1/marketoverview_pb.js.map +1 -1
- package/dist/gen/orderbook/v1/orderbook_pb.d.ts +1 -1
- package/dist/gen/orderbook/v1/orderbook_pb.js.map +1 -1
- package/dist/gen/orders/v1/orders_pb.d.ts +38 -24
- package/dist/gen/orders/v1/orders_pb.d.ts.map +1 -1
- package/dist/gen/orders/v1/orders_pb.js +3 -3
- package/dist/gen/orders/v1/orders_pb.js.map +1 -1
- package/dist/gen/orders/v1/orders_read_pb.d.ts +17 -10
- package/dist/gen/orders/v1/orders_read_pb.d.ts.map +1 -1
- package/dist/gen/orders/v1/orders_read_pb.js +3 -3
- package/dist/gen/orders/v1/orders_read_pb.js.map +1 -1
- package/dist/gen/triggers/v1/triggers_pb.d.ts +40 -26
- package/dist/gen/triggers/v1/triggers_pb.d.ts.map +1 -1
- package/dist/gen/triggers/v1/triggers_pb.js +7 -1
- package/dist/gen/triggers/v1/triggers_pb.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -2
- package/dist/services/heatmap/heatmap.schemas.d.ts +4 -4
- package/dist/services/market-data/market-data.schemas.js +1 -1
- package/dist/services/market-data/market-data.schemas.js.map +1 -1
- package/dist/services/orderbook/orderbook.schemas.d.ts +1 -1
- package/dist/services/orders/orders-batch.schemas.d.ts +17 -0
- package/dist/services/orders/orders-batch.schemas.d.ts.map +1 -1
- package/dist/services/orders/orders-batch.schemas.js +3 -1
- package/dist/services/orders/orders-batch.schemas.js.map +1 -1
- package/dist/services/orders/orders.d.ts +4 -4
- package/dist/services/orders/orders.js +4 -4
- package/dist/services/orders/orders.js.map +1 -1
- package/dist/services/subaccounts/subaccounts.schemas.d.ts +2 -2
- package/dist/services/triggers/trigger-input.schemas.d.ts +3 -3
- package/dist/services/triggers/triggers-output.schemas.d.ts +7 -3
- package/dist/services/triggers/triggers-output.schemas.d.ts.map +1 -1
- package/dist/services/triggers/triggers-output.schemas.js +4 -2
- package/dist/services/triggers/triggers-output.schemas.js.map +1 -1
- package/dist/services/triggers/triggers.codecs.js +6 -3
- package/dist/services/triggers/triggers.codecs.js.map +1 -1
- package/dist/shared/connect-error-mapping.d.ts.map +1 -1
- package/dist/shared/connect-error-mapping.js +7 -1
- package/dist/shared/connect-error-mapping.js.map +1 -1
- package/dist/shared/decimal-surface.js +2 -2
- package/dist/shared/errors.d.ts +9 -3
- package/dist/shared/errors.d.ts.map +1 -1
- package/dist/shared/errors.js +12 -1
- package/dist/shared/errors.js.map +1 -1
- package/dist/utils/numbers.js.map +1 -1
- package/package.json +1 -1
|
@@ -102,7 +102,7 @@ declare const GetOrderbookHeatmapRequestSchema: GenMessage<GetOrderbookHeatmapRe
|
|
|
102
102
|
*/
|
|
103
103
|
type HeatmapLevels = Message<"marketdata.v1.HeatmapLevels"> & {
|
|
104
104
|
/**
|
|
105
|
-
* Price levels in quote units scaled by
|
|
105
|
+
* Price levels in quote units scaled by 1e9.
|
|
106
106
|
*
|
|
107
107
|
* @generated from field: repeated int64 price_ticks = 1;
|
|
108
108
|
*/
|
|
@@ -130,7 +130,7 @@ declare const HeatmapLevelsSchema: GenMessage<HeatmapLevels>;
|
|
|
130
130
|
*/
|
|
131
131
|
type HeatmapDeltaLevels = Message<"marketdata.v1.HeatmapDeltaLevels"> & {
|
|
132
132
|
/**
|
|
133
|
-
* Price levels in quote units scaled by
|
|
133
|
+
* Price levels in quote units scaled by 1e9.
|
|
134
134
|
*
|
|
135
135
|
* @generated from field: repeated int64 price_ticks = 1;
|
|
136
136
|
*/
|
|
@@ -162,19 +162,19 @@ type HeatmapKeyframe = Message<"marketdata.v1.HeatmapKeyframe"> & {
|
|
|
162
162
|
*/
|
|
163
163
|
tsSec: bigint;
|
|
164
164
|
/**
|
|
165
|
-
* Best bid price in quote units scaled by
|
|
165
|
+
* Best bid price in quote units scaled by 1e9.
|
|
166
166
|
*
|
|
167
167
|
* @generated from field: int64 best_bid_ticks = 2;
|
|
168
168
|
*/
|
|
169
169
|
bestBidTicks: bigint;
|
|
170
170
|
/**
|
|
171
|
-
* Best ask price in quote units scaled by
|
|
171
|
+
* Best ask price in quote units scaled by 1e9.
|
|
172
172
|
*
|
|
173
173
|
* @generated from field: int64 best_ask_ticks = 3;
|
|
174
174
|
*/
|
|
175
175
|
bestAskTicks: bigint;
|
|
176
176
|
/**
|
|
177
|
-
* Mid price in quote units scaled by
|
|
177
|
+
* Mid price in quote units scaled by 1e9.
|
|
178
178
|
*
|
|
179
179
|
* @generated from field: int64 mid_ticks = 4;
|
|
180
180
|
*/
|
|
@@ -320,7 +320,7 @@ type HeatmapLiveBucket = Message<"marketdata.v1.HeatmapLiveBucket"> & {
|
|
|
320
320
|
*/
|
|
321
321
|
quantityMode: HeatmapQuantityMode;
|
|
322
322
|
/**
|
|
323
|
-
* Effective bin stride for this symbol as a price delta in 1e-
|
|
323
|
+
* Effective bin stride for this symbol as a price delta in 1e-9 quote-unit
|
|
324
324
|
* ticks.
|
|
325
325
|
*
|
|
326
326
|
* @generated from field: uint64 effective_bin_ticks = 11;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"heatmap_pb.js","names":[],"sources":["../../../../src/gen/marketdata/v1/heatmap_pb.ts"],"sourcesContent":["// @generated by protoc-gen-es v2.13.0 with parameter \"target=ts,import_extension=js\"\n// @generated from file marketdata/v1/heatmap.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/heatmap.proto.\n */\nexport const file_marketdata_v1_heatmap: GenFile = /*@__PURE__*/\n fileDesc(\"ChttYXJrZXRkYXRhL3YxL2hlYXRtYXAucHJvdG8SDW1hcmtldGRhdGEudjEicgoQSGVhdG1hcFRpbWVSYW5nZRIuCgpzdGFydF90aW1lGAEgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIsCghlbmRfdGltZRgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXA6ACKuAgoaR2V0T3JkZXJib29rSGVhdG1hcFJlcXVlc3QSEwoJc3ltYm9sX2lkGAEgASgNQgASMgoIaW50ZXJ2YWwYAiABKA4yHi5tYXJrZXRkYXRhLnYxLkhlYXRtYXBJbnRlcnZhbEIAEiwKBWRlcHRoGAMgASgOMhsubWFya2V0ZGF0YS52MS5IZWF0bWFwRGVwdGhCABIzCgp0aW1lX3JhbmdlGAQgASgLMh8ubWFya2V0ZGF0YS52MS5IZWF0bWFwVGltZVJhbmdlEhQKCnBhZ2VfdG9rZW4YBSABKAlCABIPCgVsaW1pdBgGIAEoDUIAEjsKDXF1YW50aXR5X21vZGUYByABKA4yIi5tYXJrZXRkYXRhLnYxLkhlYXRtYXBRdWFudGl0eU1vZGVCADoAIjoKDUhlYXRtYXBMZXZlbHMSEwoLcHJpY2VfdGlja3MYASADKAMSEgoKcXR5X3NjYWxlZBgCIAMoAzoAIj8KEkhlYXRtYXBEZWx0YUxldmVscxITCgtwcmljZV90aWNrcxgBIAMoAxISCgpxdHlfc2NhbGVkGAIgAygDOgAizgEKD0hlYXRtYXBLZXlmcmFtZRIOCgZ0c19zZWMYASABKAQSFgoOYmVzdF9iaWRfdGlja3MYAiABKAMSFgoOYmVzdF9hc2tfdGlja3MYAyABKAMSEQoJbWlkX3RpY2tzGAQgASgDEioKBGJpZHMYBSABKAsyHC5tYXJrZXRkYXRhLnYxLkhlYXRtYXBMZXZlbHMSKgoEYXNrcxgGIAEoCzIcLm1hcmtldGRhdGEudjEuSGVhdG1hcExldmVscxIQCghib29rX3NlcRgHIAEoBCLPAQoSSGVhdG1hcERlbHRhQnVja2V0Eg4KBnRzX3NlYxgBIAEoBBIvCgRiaWRzGAIgASgLMiEubWFya2V0ZGF0YS52MS5IZWF0bWFwRGVsdGFMZXZlbHMSLwoEYXNrcxgDIAEoCzIhLm1hcmtldGRhdGEudjEuSGVhdG1hcERlbHRhTGV2ZWxzEhkKEXVwZGF0ZXNfaW5fYnVja2V0GAQgASgNEhYKDmJvb2tfc2VxX3N0YXJ0GAUgASgEEhQKDGJvb2tfc2VxX2VuZBgGIAEoBCKBAwoRSGVhdG1hcExpdmVCdWNrZXQSEQoJc3ltYm9sX2lkGAEgASgNEjIKCGludGVydmFsGAIgASgOMh4ubWFya2V0ZGF0YS52MS5IZWF0bWFwSW50ZXJ2YWxCABIOCgZ0c19zZWMYAyABKAQSEAoIaXNfZmluYWwYBCABKAgSLwoEYmlkcxgFIAEoCzIhLm1hcmtldGRhdGEudjEuSGVhdG1hcERlbHRhTGV2ZWxzEi8KBGFza3MYBiABKAsyIS5tYXJrZXRkYXRhLnYxLkhlYXRtYXBEZWx0YUxldmVscxIZChF1cGRhdGVzX2luX2J1Y2tldBgHIAEoDRIWCg5ib29rX3NlcV9zdGFydBgIIAEoBBIUCgxib29rX3NlcV9lbmQYCSABKAQSOwoNcXVhbnRpdHlfbW9kZRgKIAEoDjIiLm1hcmtldGRhdGEudjEuSGVhdG1hcFF1YW50aXR5TW9kZUIAEhsKE2VmZmVjdGl2ZV9iaW5fdGlja3MYCyABKAQifQoRSGVhdG1hcERlbHRhQ2hhaW4SNQoNYmFzZV9rZXlmcmFtZRgBIAEoCzIeLm1hcmtldGRhdGEudjEuSGVhdG1hcEtleWZyYW1lEjEKBmRlbHRhcxgCIAMoCzIhLm1hcmtldGRhdGEudjEuSGVhdG1hcERlbHRhQnVja2V0Ir0DChtHZXRPcmRlcmJvb2tIZWF0bWFwUmVzcG9uc2USEQoJc3ltYm9sX2lkGAEgASgNEjAKCGludGVydmFsGAIgASgOMh4ubWFya2V0ZGF0YS52MS5IZWF0bWFwSW50ZXJ2YWwSKgoFZGVwdGgYAyABKA4yGy5tYXJrZXRkYXRhLnYxLkhlYXRtYXBEZXB0aBIvCgVjaGFpbhgEIAEoCzIgLm1hcmtldGRhdGEudjEuSGVhdG1hcERlbHRhQ2hhaW4SHQoVbGFzdF9wZXJzaXN0ZWRfdHNfc2VjGAUgASgEEh4KFmxpdmVfZnJvbV9ib29rX3NlcV9lbmQYBiABKAQSFwoPaGFzX2xpdmVfYW5jaG9yGAcgASgIEhkKD25leHRfcGFnZV90b2tlbhgIIAEoCUIAEhcKD3NlcnZlcl90aW1lX3NlYxgKIAEoBBI5Cg1xdWFudGl0eV9tb2RlGAsgASgOMiIubWFya2V0ZGF0YS52MS5IZWF0bWFwUXVhbnRpdHlNb2RlEjUKC2xpdmVfYnVja2V0GAwgASgLMiAubWFya2V0ZGF0YS52MS5IZWF0bWFwTGl2ZUJ1Y2tldCpvCg9IZWF0bWFwSW50ZXJ2YWwSGAoUSU5URVJWQUxfVU5TUEVDSUZJRUQQABIPCgtJTlRFUlZBTF8xUxABEg8KC0lOVEVSVkFMXzFNEAISDwoLSU5URVJWQUxfNU0QAxIPCgtJTlRFUlZBTF8xSBAEKqYBCgxIZWF0bWFwRGVwdGgSFQoRREVQVEhfVU5TUEVDSUZJRUQQABILCgdERVBUSF8xEAESCwoHREVQVEhfNRACEgwKCERFUFRIXzEwEAMSDAoIREVQVEhfMjAQBBIMCghERVBUSF81MBAFEg0KCURFUFRIXzEwMBAGEg0KCURFUFRIXzIwMBAHEg0KCURFUFRIXzUwMBAIEg4KCkRFUFRIXzEwMDAQCSpEChNIZWF0bWFwUXVhbnRpdHlNb2RlEhgKFFFUWV9NT0RFX1VOU1BFQ0lGSUVEEAASCQoFQ0xPU0UQARIICgRQRUFLEAIygAEKDkhlYXRtYXBTZXJ2aWNlEm4KE0dldE9yZGVyYm9va0hlYXRtYXASKS5tYXJrZXRkYXRhLnYxLkdldE9yZGVyYm9va0hlYXRtYXBSZXF1ZXN0GioubWFya2V0ZGF0YS52MS5HZXRPcmRlcmJvb2tIZWF0bWFwUmVzcG9uc2UiAEJIWkZnaXRodWIuY29tL0ZhYnJpYy1MYWJzL3BvbHllc3Rlci1zZGstZ28vZ2VuL21hcmtldGRhdGEvdjE7bWFya2V0ZGF0YXYxYgZwcm90bzM=\", [file_google_protobuf_timestamp, file_polyester_api_options]);\n\n/**\n * HeatmapTimeRange selects historical buckets by [start_time, end_time] (UTC).\n * At least one bound is required.\n *\n * @generated from message marketdata.v1.HeatmapTimeRange\n */\nexport type HeatmapTimeRange = Message<\"marketdata.v1.HeatmapTimeRange\"> & {\n /**\n * Inclusive lower bound in UTC. Omit to leave the lower bound open.\n *\n * @generated from field: google.protobuf.Timestamp start_time = 1;\n */\n startTime?: Timestamp | undefined;\n\n /**\n * Inclusive upper bound in UTC. Omit to leave the upper bound open.\n *\n * @generated from field: google.protobuf.Timestamp end_time = 2;\n */\n endTime?: Timestamp | undefined;\n};\n\n/**\n * Describes the message marketdata.v1.HeatmapTimeRange.\n * Use `create(HeatmapTimeRangeSchema)` to create a new message.\n */\nexport const HeatmapTimeRangeSchema: GenMessage<HeatmapTimeRange> = /*@__PURE__*/\n messageDesc(file_marketdata_v1_heatmap, 0);\n\n/**\n * GetOrderbookHeatmapRequest fetches historical heatmap buckets.\n *\n * @generated from message marketdata.v1.GetOrderbookHeatmapRequest\n */\nexport type GetOrderbookHeatmapRequest = Message<\"marketdata.v1.GetOrderbookHeatmapRequest\"> & {\n /**\n * Numeric spot market identifier.\n *\n * @generated from field: uint32 symbol_id = 1;\n */\n symbolId: number;\n\n /**\n * Heatmap bucket interval.\n *\n * @generated from field: marketdata.v1.HeatmapInterval interval = 2;\n */\n interval: HeatmapInterval;\n\n /**\n * Top-N levels per side included in each bucket.\n *\n * @generated from field: marketdata.v1.HeatmapDepth depth = 3;\n */\n depth: HeatmapDepth;\n\n /**\n * Absolute time range for the first page. Reuse the same request filters and\n * pass page_token from the prior response to continue older buckets.\n *\n * @generated from field: marketdata.v1.HeatmapTimeRange time_range = 4;\n */\n timeRange?: HeatmapTimeRange | undefined;\n\n /**\n * Opaque keyset cursor from a previous response. The cursor is exclusive and\n * bound to symbol, interval, depth, quantity mode, and the original time\n * range.\n *\n * @generated from field: string page_token = 5;\n */\n pageToken: string;\n\n /**\n * Maximum number of delta buckets returned (min 1, max 20000).\n * This limit counts only `chain.deltas`; `chain.base_keyframe` is not counted.\n *\n * @generated from field: uint32 limit = 6;\n */\n limit: number;\n\n /**\n * Quantity mode used for qty_scaled in snapshot/delta levels:\n * - CLOSE: end-of-bucket quantity\n * - PEAK: intra-bucket peak quantity\n *\n * @generated from field: marketdata.v1.HeatmapQuantityMode quantity_mode = 7;\n */\n quantityMode: HeatmapQuantityMode;\n};\n\n/**\n * Describes the message marketdata.v1.GetOrderbookHeatmapRequest.\n * Use `create(GetOrderbookHeatmapRequestSchema)` to create a new message.\n */\nexport const GetOrderbookHeatmapRequestSchema: GenMessage<GetOrderbookHeatmapRequest> = /*@__PURE__*/\n messageDesc(file_marketdata_v1_heatmap, 1);\n\n/**\n * HeatmapLevels represents one side of the orderbook for snapshots.\n * Arrays are aligned by index and prices are sorted ascending for both sides:\n * - price_ticks[i] <-> qty_scaled[i]\n *\n * @generated from message marketdata.v1.HeatmapLevels\n */\nexport type HeatmapLevels = Message<\"marketdata.v1.HeatmapLevels\"> & {\n /**\n * Price levels in quote units scaled by 1e6.\n *\n * @generated from field: repeated int64 price_ticks = 1;\n */\n priceTicks: bigint[];\n\n /**\n * Quantity at each price level according to quantity_mode, scaled by the\n * pair's base_quantity_scale from GetSpotConfig.\n *\n * @generated from field: repeated int64 qty_scaled = 2;\n */\n qtyScaled: bigint[];\n};\n\n/**\n * Describes the message marketdata.v1.HeatmapLevels.\n * Use `create(HeatmapLevelsSchema)` to create a new message.\n */\nexport const HeatmapLevelsSchema: GenMessage<HeatmapLevels> = /*@__PURE__*/\n messageDesc(file_marketdata_v1_heatmap, 2);\n\n/**\n * HeatmapDeltaLevels represents sparse per-bucket level changes for one side.\n * Arrays are aligned by index and prices are sorted ascending for both sides:\n * - price_ticks[i] <-> qty_scaled[i]\n * Delete semantics: qty_scaled[i] = 0 means delete level at price_ticks[i].\n *\n * @generated from message marketdata.v1.HeatmapDeltaLevels\n */\nexport type HeatmapDeltaLevels = Message<\"marketdata.v1.HeatmapDeltaLevels\"> & {\n /**\n * Price levels in quote units scaled by 1e6.\n *\n * @generated from field: repeated int64 price_ticks = 1;\n */\n priceTicks: bigint[];\n\n /**\n * Quantity at each price level, scaled by the pair's base_quantity_scale from\n * GetSpotConfig. A zero value deletes the level at the matching price_ticks\n * index.\n *\n * @generated from field: repeated int64 qty_scaled = 2;\n */\n qtyScaled: bigint[];\n};\n\n/**\n * Describes the message marketdata.v1.HeatmapDeltaLevels.\n * Use `create(HeatmapDeltaLevelsSchema)` to create a new message.\n */\nexport const HeatmapDeltaLevelsSchema: GenMessage<HeatmapDeltaLevels> = /*@__PURE__*/\n messageDesc(file_marketdata_v1_heatmap, 3);\n\n/**\n * HeatmapKeyframe is a full-book snapshot anchor.\n *\n * @generated from message marketdata.v1.HeatmapKeyframe\n */\nexport type HeatmapKeyframe = Message<\"marketdata.v1.HeatmapKeyframe\"> & {\n /**\n * Snapshot timestamp (seconds since epoch, UTC).\n *\n * @generated from field: uint64 ts_sec = 1;\n */\n tsSec: bigint;\n\n /**\n * Best bid price in quote units scaled by 1e6.\n *\n * @generated from field: int64 best_bid_ticks = 2;\n */\n bestBidTicks: bigint;\n\n /**\n * Best ask price in quote units scaled by 1e6.\n *\n * @generated from field: int64 best_ask_ticks = 3;\n */\n bestAskTicks: bigint;\n\n /**\n * Mid price in quote units scaled by 1e6.\n *\n * @generated from field: int64 mid_ticks = 4;\n */\n midTicks: bigint;\n\n /**\n * Complete bid-side levels at the snapshot.\n *\n * @generated from field: marketdata.v1.HeatmapLevels bids = 5;\n */\n bids?: HeatmapLevels | undefined;\n\n /**\n * Complete ask-side levels at the snapshot.\n *\n * @generated from field: marketdata.v1.HeatmapLevels asks = 6;\n */\n asks?: HeatmapLevels | undefined;\n\n /**\n * Monotonic order book sequence at the snapshot.\n *\n * @generated from field: uint64 book_seq = 7;\n */\n bookSeq: bigint;\n};\n\n/**\n * Describes the message marketdata.v1.HeatmapKeyframe.\n * Use `create(HeatmapKeyframeSchema)` to create a new message.\n */\nexport const HeatmapKeyframeSchema: GenMessage<HeatmapKeyframe> = /*@__PURE__*/\n messageDesc(file_marketdata_v1_heatmap, 4);\n\n/**\n * HeatmapDeltaBucket is one sparse update bucket containing both sides.\n *\n * @generated from message marketdata.v1.HeatmapDeltaBucket\n */\nexport type HeatmapDeltaBucket = Message<\"marketdata.v1.HeatmapDeltaBucket\"> & {\n /**\n * Bucket start timestamp (seconds since epoch, UTC), aligned to `interval`.\n *\n * @generated from field: uint64 ts_sec = 1;\n */\n tsSec: bigint;\n\n /**\n * Sparse bid-side level changes in this bucket.\n *\n * @generated from field: marketdata.v1.HeatmapDeltaLevels bids = 2;\n */\n bids?: HeatmapDeltaLevels | undefined;\n\n /**\n * Sparse ask-side level changes in this bucket.\n *\n * @generated from field: marketdata.v1.HeatmapDeltaLevels asks = 3;\n */\n asks?: HeatmapDeltaLevels | undefined;\n\n /**\n * Number of upstream L2 updates aggregated into this interval bucket.\n *\n * @generated from field: uint32 updates_in_bucket = 4;\n */\n updatesInBucket: number;\n\n /**\n * Earliest monotonic order book sequence represented by this bucket.\n *\n * @generated from field: uint64 book_seq_start = 5;\n */\n bookSeqStart: bigint;\n\n /**\n * Latest monotonic order book sequence represented by this bucket.\n *\n * @generated from field: uint64 book_seq_end = 6;\n */\n bookSeqEnd: bigint;\n};\n\n/**\n * Describes the message marketdata.v1.HeatmapDeltaBucket.\n * Use `create(HeatmapDeltaBucketSchema)` to create a new message.\n */\nexport const HeatmapDeltaBucketSchema: GenMessage<HeatmapDeltaBucket> = /*@__PURE__*/\n messageDesc(file_marketdata_v1_heatmap, 5);\n\n/**\n * HeatmapLiveBucket is the canonical live payload for real-time heatmap updates.\n * It represents the latest state of one bucket (open or finalized).\n *\n * @generated from message marketdata.v1.HeatmapLiveBucket\n */\nexport type HeatmapLiveBucket = Message<\"marketdata.v1.HeatmapLiveBucket\"> & {\n /**\n * Numeric spot market identifier.\n *\n * @generated from field: uint32 symbol_id = 1;\n */\n symbolId: number;\n\n /**\n * Bucket interval for this payload.\n *\n * @generated from field: marketdata.v1.HeatmapInterval interval = 2;\n */\n interval: HeatmapInterval;\n\n /**\n * Bucket start timestamp (seconds since epoch, UTC), aligned to `interval`.\n *\n * @generated from field: uint64 ts_sec = 3;\n */\n tsSec: bigint;\n\n /**\n * True when this bucket is finalized; false for provisional updates to an\n * open bucket.\n *\n * @generated from field: bool is_final = 4;\n */\n isFinal: boolean;\n\n /**\n * Sparse bid-side level changes represented by this bucket.\n *\n * @generated from field: marketdata.v1.HeatmapDeltaLevels bids = 5;\n */\n bids?: HeatmapDeltaLevels | undefined;\n\n /**\n * Sparse ask-side level changes represented by this bucket.\n *\n * @generated from field: marketdata.v1.HeatmapDeltaLevels asks = 6;\n */\n asks?: HeatmapDeltaLevels | undefined;\n\n /**\n * Number of upstream L2 updates aggregated into this interval bucket.\n *\n * @generated from field: uint32 updates_in_bucket = 7;\n */\n updatesInBucket: number;\n\n /**\n * Earliest monotonic order book sequence represented by this bucket.\n *\n * @generated from field: uint64 book_seq_start = 8;\n */\n bookSeqStart: bigint;\n\n /**\n * Latest monotonic order book sequence represented by this bucket.\n *\n * @generated from field: uint64 book_seq_end = 9;\n */\n bookSeqEnd: bigint;\n\n /**\n * Quantity semantics for qty_scaled in bids and asks.\n *\n * @generated from field: marketdata.v1.HeatmapQuantityMode quantity_mode = 10;\n */\n quantityMode: HeatmapQuantityMode;\n\n /**\n * Effective bin stride for this symbol as a price delta in 1e-6 quote-unit\n * ticks.\n *\n * @generated from field: uint64 effective_bin_ticks = 11;\n */\n effectiveBinTicks: bigint;\n};\n\n/**\n * Describes the message marketdata.v1.HeatmapLiveBucket.\n * Use `create(HeatmapLiveBucketSchema)` to create a new message.\n */\nexport const HeatmapLiveBucketSchema: GenMessage<HeatmapLiveBucket> = /*@__PURE__*/\n messageDesc(file_marketdata_v1_heatmap, 6);\n\n/**\n * HeatmapDeltaChain is the historical payload for all intervals.\n * Reconstruct by applying deltas over base_keyframe.\n * Deltas are ordered oldest-first by ts_sec.\n *\n * @generated from message marketdata.v1.HeatmapDeltaChain\n */\nexport type HeatmapDeltaChain = Message<\"marketdata.v1.HeatmapDeltaChain\"> & {\n /**\n * Full-book snapshot from which to apply the returned deltas.\n *\n * @generated from field: marketdata.v1.HeatmapKeyframe base_keyframe = 1;\n */\n baseKeyframe?: HeatmapKeyframe | undefined;\n\n /**\n * Sparse update buckets ordered oldest-first by timestamp.\n *\n * @generated from field: repeated marketdata.v1.HeatmapDeltaBucket deltas = 2;\n */\n deltas: HeatmapDeltaBucket[];\n};\n\n/**\n * Describes the message marketdata.v1.HeatmapDeltaChain.\n * Use `create(HeatmapDeltaChainSchema)` to create a new message.\n */\nexport const HeatmapDeltaChainSchema: GenMessage<HeatmapDeltaChain> = /*@__PURE__*/\n messageDesc(file_marketdata_v1_heatmap, 7);\n\n/**\n * GetOrderbookHeatmapResponse returns a historical replay chain plus optional\n * live bucket state for explicit realtime stitching.\n *\n * @generated from message marketdata.v1.GetOrderbookHeatmapResponse\n */\nexport type GetOrderbookHeatmapResponse = Message<\"marketdata.v1.GetOrderbookHeatmapResponse\"> & {\n /**\n * Numeric spot market identifier returned for the requested market.\n *\n * @generated from field: uint32 symbol_id = 1;\n */\n symbolId: number;\n\n /**\n * Bucket interval used for the returned chain.\n *\n * @generated from field: marketdata.v1.HeatmapInterval interval = 2;\n */\n interval: HeatmapInterval;\n\n /**\n * Top-N depth requested per side.\n *\n * @generated from field: marketdata.v1.HeatmapDepth depth = 3;\n */\n depth: HeatmapDepth;\n\n /**\n * Always returned as snapshot + sparse deltas for the requested interval.\n *\n * @generated from field: marketdata.v1.HeatmapDeltaChain chain = 4;\n */\n chain?: HeatmapDeltaChain | undefined;\n\n /**\n * Latest finalized historical bucket timestamp in seconds since epoch (UTC).\n *\n * @generated from field: uint64 last_persisted_ts_sec = 5;\n */\n lastPersistedTsSec: bigint;\n\n /**\n * Book sequence anchor for realtime continuation; apply live updates where book_seq_end is greater than this value.\n *\n * @generated from field: uint64 live_from_book_seq_end = 6;\n */\n liveFromBookSeqEnd: bigint;\n\n /**\n * True when live_from_book_seq_end is available and can be used as a realtime continuation anchor.\n *\n * @generated from field: bool has_live_anchor = 7;\n */\n hasLiveAnchor: boolean;\n\n /**\n * Opaque cursor for the next page. Empty when no more results exist.\n *\n * @generated from field: string next_page_token = 8;\n */\n nextPageToken: string;\n\n /**\n * Server response time in seconds since epoch (UTC).\n *\n * @generated from field: uint64 server_time_sec = 10;\n */\n serverTimeSec: bigint;\n\n /**\n * Quantity mode used for all qty_scaled values in the response.\n *\n * @generated from field: marketdata.v1.HeatmapQuantityMode quantity_mode = 11;\n */\n quantityMode: HeatmapQuantityMode;\n\n /**\n * Optional latest live bucket for the requested interval and depth.\n * Present only when it is newer than the historical anchor and its quantity semantics match quantity_mode.\n *\n * @generated from field: marketdata.v1.HeatmapLiveBucket live_bucket = 12;\n */\n liveBucket?: HeatmapLiveBucket | undefined;\n};\n\n/**\n * Describes the message marketdata.v1.GetOrderbookHeatmapResponse.\n * Use `create(GetOrderbookHeatmapResponseSchema)` to create a new message.\n */\nexport const GetOrderbookHeatmapResponseSchema: GenMessage<GetOrderbookHeatmapResponse> = /*@__PURE__*/\n messageDesc(file_marketdata_v1_heatmap, 8);\n\n/**\n * HeatmapInterval controls bucket resolution for historical orderbook heatmap.\n *\n * @generated from enum marketdata.v1.HeatmapInterval\n */\nexport enum HeatmapInterval {\n /**\n * @generated from enum value: INTERVAL_UNSPECIFIED = 0;\n */\n INTERVAL_UNSPECIFIED = 0,\n\n /**\n * @generated from enum value: INTERVAL_1S = 1;\n */\n INTERVAL_1S = 1,\n\n /**\n * @generated from enum value: INTERVAL_1M = 2;\n */\n INTERVAL_1M = 2,\n\n /**\n * @generated from enum value: INTERVAL_5M = 3;\n */\n INTERVAL_5M = 3,\n\n /**\n * @generated from enum value: INTERVAL_1H = 4;\n */\n INTERVAL_1H = 4,\n}\n\n/**\n * Describes the enum marketdata.v1.HeatmapInterval.\n */\nexport const HeatmapIntervalSchema: GenEnum<HeatmapInterval> = /*@__PURE__*/\n enumDesc(file_marketdata_v1_heatmap, 0);\n\n/**\n * HeatmapDepth controls top-N levels included per side in each heatmap bucket.\n *\n * Values intentionally mirror orderbook.v1.Depth for FE ergonomics, while\n * keeping this contract decoupled from orderbook service protos.\n *\n * @generated from enum marketdata.v1.HeatmapDepth\n */\nexport enum HeatmapDepth {\n /**\n * @generated from enum value: DEPTH_UNSPECIFIED = 0;\n */\n DEPTH_UNSPECIFIED = 0,\n\n /**\n * @generated from enum value: DEPTH_1 = 1;\n */\n DEPTH_1 = 1,\n\n /**\n * @generated from enum value: DEPTH_5 = 2;\n */\n DEPTH_5 = 2,\n\n /**\n * @generated from enum value: DEPTH_10 = 3;\n */\n DEPTH_10 = 3,\n\n /**\n * @generated from enum value: DEPTH_20 = 4;\n */\n DEPTH_20 = 4,\n\n /**\n * @generated from enum value: DEPTH_50 = 5;\n */\n DEPTH_50 = 5,\n\n /**\n * @generated from enum value: DEPTH_100 = 6;\n */\n DEPTH_100 = 6,\n\n /**\n * @generated from enum value: DEPTH_200 = 7;\n */\n DEPTH_200 = 7,\n\n /**\n * @generated from enum value: DEPTH_500 = 8;\n */\n DEPTH_500 = 8,\n\n /**\n * @generated from enum value: DEPTH_1000 = 9;\n */\n DEPTH_1000 = 9,\n}\n\n/**\n * Describes the enum marketdata.v1.HeatmapDepth.\n */\nexport const HeatmapDepthSchema: GenEnum<HeatmapDepth> = /*@__PURE__*/\n enumDesc(file_marketdata_v1_heatmap, 1);\n\n/**\n * HeatmapQuantityMode controls what qty_scaled means in returned levels.\n *\n * @generated from enum marketdata.v1.HeatmapQuantityMode\n */\nexport enum HeatmapQuantityMode {\n /**\n * @generated from enum value: QTY_MODE_UNSPECIFIED = 0;\n */\n QTY_MODE_UNSPECIFIED = 0,\n\n /**\n * @generated from enum value: CLOSE = 1;\n */\n CLOSE = 1,\n\n /**\n * @generated from enum value: PEAK = 2;\n */\n PEAK = 2,\n}\n\n/**\n * Describes the enum marketdata.v1.HeatmapQuantityMode.\n */\nexport const HeatmapQuantityModeSchema: GenEnum<HeatmapQuantityMode> = /*@__PURE__*/\n enumDesc(file_marketdata_v1_heatmap, 2);\n\n/**\n * HeatmapService serves historical orderbook heatmap chains.\n *\n * @generated from service marketdata.v1.HeatmapService\n */\nexport const HeatmapService: GenService<{\n /**\n * Retrieve historical orderbook heatmap data for a spot symbol.\n * - All intervals (1s/1m/5m/1h) return snapshot + sparse delta chain.\n * - Response may also include the latest live bucket state when available.\n * Response always includes realtime stitching anchors.\n *\n * @generated from rpc marketdata.v1.HeatmapService.GetOrderbookHeatmap\n */\n getOrderbookHeatmap: {\n methodKind: \"unary\";\n input: typeof GetOrderbookHeatmapRequestSchema;\n output: typeof GetOrderbookHeatmapResponseSchema;\n },\n}> = /*@__PURE__*/\n serviceDesc(file_marketdata_v1_heatmap, 0);\n\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAcA,MAAa,6BACX,uBAAS,4zGAA4zG,CAAC,gCAAgC,0BAA0B,CAAC;;;;;AA4Bn4G,MAAa,yBACX,0BAAY,4BAA4B,CAAC;;;;;AAoE3C,MAAa,mCACX,0BAAY,4BAA4B,CAAC;;;;;AA8B3C,MAAa,sBACX,0BAAY,4BAA4B,CAAC;;;;;AAgC3C,MAAa,2BACX,0BAAY,4BAA4B,CAAC;;;;;AA8D3C,MAAa,wBACX,0BAAY,4BAA4B,CAAC;;;;;AAuD3C,MAAa,2BACX,0BAAY,4BAA4B,CAAC;;;;;AA6F3C,MAAa,0BACX,0BAAY,4BAA4B,CAAC;;;;;AA6B3C,MAAa,0BACX,0BAAY,4BAA4B,CAAC;;;;;AA4F3C,MAAa,oCACX,0BAAY,4BAA4B,CAAC;;;;;;AAO3C,IAAY,kBAAL,yBAAA,iBAAA;;;;CAIL,gBAAA,gBAAA,0BAAA,KAAA;;;;CAKA,gBAAA,gBAAA,iBAAA,KAAA;;;;CAKA,gBAAA,gBAAA,iBAAA,KAAA;;;;CAKA,gBAAA,gBAAA,iBAAA,KAAA;;;;CAKA,gBAAA,gBAAA,iBAAA,KAAA;;AACF,EAAA,CAAA,CAAA;;;;AAKA,MAAa,wBACX,uBAAS,4BAA4B,CAAC;;;;;;;;;AAUxC,IAAY,eAAL,yBAAA,cAAA;;;;CAIL,aAAA,aAAA,uBAAA,KAAA;;;;CAKA,aAAA,aAAA,aAAA,KAAA;;;;CAKA,aAAA,aAAA,aAAA,KAAA;;;;CAKA,aAAA,aAAA,cAAA,KAAA;;;;CAKA,aAAA,aAAA,cAAA,KAAA;;;;CAKA,aAAA,aAAA,cAAA,KAAA;;;;CAKA,aAAA,aAAA,eAAA,KAAA;;;;CAKA,aAAA,aAAA,eAAA,KAAA;;;;CAKA,aAAA,aAAA,eAAA,KAAA;;;;CAKA,aAAA,aAAA,gBAAA,KAAA;;AACF,EAAA,CAAA,CAAA;;;;AAKA,MAAa,qBACX,uBAAS,4BAA4B,CAAC;;;;;;AAOxC,IAAY,sBAAL,yBAAA,qBAAA;;;;CAIL,oBAAA,oBAAA,0BAAA,KAAA;;;;CAKA,oBAAA,oBAAA,WAAA,KAAA;;;;CAKA,oBAAA,oBAAA,UAAA,KAAA;;AACF,EAAA,CAAA,CAAA;;;;AAKA,MAAa,4BACX,uBAAS,4BAA4B,CAAC;;;;;;AAOxC,MAAa,iBAeX,0BAAY,4BAA4B,CAAC"}
|
|
1
|
+
{"version":3,"file":"heatmap_pb.js","names":[],"sources":["../../../../src/gen/marketdata/v1/heatmap_pb.ts"],"sourcesContent":["// @generated by protoc-gen-es v2.13.0 with parameter \"target=ts,import_extension=js\"\n// @generated from file marketdata/v1/heatmap.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/heatmap.proto.\n */\nexport const file_marketdata_v1_heatmap: GenFile = /*@__PURE__*/\n fileDesc(\"ChttYXJrZXRkYXRhL3YxL2hlYXRtYXAucHJvdG8SDW1hcmtldGRhdGEudjEicgoQSGVhdG1hcFRpbWVSYW5nZRIuCgpzdGFydF90aW1lGAEgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIsCghlbmRfdGltZRgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXA6ACKuAgoaR2V0T3JkZXJib29rSGVhdG1hcFJlcXVlc3QSEwoJc3ltYm9sX2lkGAEgASgNQgASMgoIaW50ZXJ2YWwYAiABKA4yHi5tYXJrZXRkYXRhLnYxLkhlYXRtYXBJbnRlcnZhbEIAEiwKBWRlcHRoGAMgASgOMhsubWFya2V0ZGF0YS52MS5IZWF0bWFwRGVwdGhCABIzCgp0aW1lX3JhbmdlGAQgASgLMh8ubWFya2V0ZGF0YS52MS5IZWF0bWFwVGltZVJhbmdlEhQKCnBhZ2VfdG9rZW4YBSABKAlCABIPCgVsaW1pdBgGIAEoDUIAEjsKDXF1YW50aXR5X21vZGUYByABKA4yIi5tYXJrZXRkYXRhLnYxLkhlYXRtYXBRdWFudGl0eU1vZGVCADoAIjoKDUhlYXRtYXBMZXZlbHMSEwoLcHJpY2VfdGlja3MYASADKAMSEgoKcXR5X3NjYWxlZBgCIAMoAzoAIj8KEkhlYXRtYXBEZWx0YUxldmVscxITCgtwcmljZV90aWNrcxgBIAMoAxISCgpxdHlfc2NhbGVkGAIgAygDOgAizgEKD0hlYXRtYXBLZXlmcmFtZRIOCgZ0c19zZWMYASABKAQSFgoOYmVzdF9iaWRfdGlja3MYAiABKAMSFgoOYmVzdF9hc2tfdGlja3MYAyABKAMSEQoJbWlkX3RpY2tzGAQgASgDEioKBGJpZHMYBSABKAsyHC5tYXJrZXRkYXRhLnYxLkhlYXRtYXBMZXZlbHMSKgoEYXNrcxgGIAEoCzIcLm1hcmtldGRhdGEudjEuSGVhdG1hcExldmVscxIQCghib29rX3NlcRgHIAEoBCLPAQoSSGVhdG1hcERlbHRhQnVja2V0Eg4KBnRzX3NlYxgBIAEoBBIvCgRiaWRzGAIgASgLMiEubWFya2V0ZGF0YS52MS5IZWF0bWFwRGVsdGFMZXZlbHMSLwoEYXNrcxgDIAEoCzIhLm1hcmtldGRhdGEudjEuSGVhdG1hcERlbHRhTGV2ZWxzEhkKEXVwZGF0ZXNfaW5fYnVja2V0GAQgASgNEhYKDmJvb2tfc2VxX3N0YXJ0GAUgASgEEhQKDGJvb2tfc2VxX2VuZBgGIAEoBCKBAwoRSGVhdG1hcExpdmVCdWNrZXQSEQoJc3ltYm9sX2lkGAEgASgNEjIKCGludGVydmFsGAIgASgOMh4ubWFya2V0ZGF0YS52MS5IZWF0bWFwSW50ZXJ2YWxCABIOCgZ0c19zZWMYAyABKAQSEAoIaXNfZmluYWwYBCABKAgSLwoEYmlkcxgFIAEoCzIhLm1hcmtldGRhdGEudjEuSGVhdG1hcERlbHRhTGV2ZWxzEi8KBGFza3MYBiABKAsyIS5tYXJrZXRkYXRhLnYxLkhlYXRtYXBEZWx0YUxldmVscxIZChF1cGRhdGVzX2luX2J1Y2tldBgHIAEoDRIWCg5ib29rX3NlcV9zdGFydBgIIAEoBBIUCgxib29rX3NlcV9lbmQYCSABKAQSOwoNcXVhbnRpdHlfbW9kZRgKIAEoDjIiLm1hcmtldGRhdGEudjEuSGVhdG1hcFF1YW50aXR5TW9kZUIAEhsKE2VmZmVjdGl2ZV9iaW5fdGlja3MYCyABKAQifQoRSGVhdG1hcERlbHRhQ2hhaW4SNQoNYmFzZV9rZXlmcmFtZRgBIAEoCzIeLm1hcmtldGRhdGEudjEuSGVhdG1hcEtleWZyYW1lEjEKBmRlbHRhcxgCIAMoCzIhLm1hcmtldGRhdGEudjEuSGVhdG1hcERlbHRhQnVja2V0Ir0DChtHZXRPcmRlcmJvb2tIZWF0bWFwUmVzcG9uc2USEQoJc3ltYm9sX2lkGAEgASgNEjAKCGludGVydmFsGAIgASgOMh4ubWFya2V0ZGF0YS52MS5IZWF0bWFwSW50ZXJ2YWwSKgoFZGVwdGgYAyABKA4yGy5tYXJrZXRkYXRhLnYxLkhlYXRtYXBEZXB0aBIvCgVjaGFpbhgEIAEoCzIgLm1hcmtldGRhdGEudjEuSGVhdG1hcERlbHRhQ2hhaW4SHQoVbGFzdF9wZXJzaXN0ZWRfdHNfc2VjGAUgASgEEh4KFmxpdmVfZnJvbV9ib29rX3NlcV9lbmQYBiABKAQSFwoPaGFzX2xpdmVfYW5jaG9yGAcgASgIEhkKD25leHRfcGFnZV90b2tlbhgIIAEoCUIAEhcKD3NlcnZlcl90aW1lX3NlYxgKIAEoBBI5Cg1xdWFudGl0eV9tb2RlGAsgASgOMiIubWFya2V0ZGF0YS52MS5IZWF0bWFwUXVhbnRpdHlNb2RlEjUKC2xpdmVfYnVja2V0GAwgASgLMiAubWFya2V0ZGF0YS52MS5IZWF0bWFwTGl2ZUJ1Y2tldCpvCg9IZWF0bWFwSW50ZXJ2YWwSGAoUSU5URVJWQUxfVU5TUEVDSUZJRUQQABIPCgtJTlRFUlZBTF8xUxABEg8KC0lOVEVSVkFMXzFNEAISDwoLSU5URVJWQUxfNU0QAxIPCgtJTlRFUlZBTF8xSBAEKqYBCgxIZWF0bWFwRGVwdGgSFQoRREVQVEhfVU5TUEVDSUZJRUQQABILCgdERVBUSF8xEAESCwoHREVQVEhfNRACEgwKCERFUFRIXzEwEAMSDAoIREVQVEhfMjAQBBIMCghERVBUSF81MBAFEg0KCURFUFRIXzEwMBAGEg0KCURFUFRIXzIwMBAHEg0KCURFUFRIXzUwMBAIEg4KCkRFUFRIXzEwMDAQCSpEChNIZWF0bWFwUXVhbnRpdHlNb2RlEhgKFFFUWV9NT0RFX1VOU1BFQ0lGSUVEEAASCQoFQ0xPU0UQARIICgRQRUFLEAIygAEKDkhlYXRtYXBTZXJ2aWNlEm4KE0dldE9yZGVyYm9va0hlYXRtYXASKS5tYXJrZXRkYXRhLnYxLkdldE9yZGVyYm9va0hlYXRtYXBSZXF1ZXN0GioubWFya2V0ZGF0YS52MS5HZXRPcmRlcmJvb2tIZWF0bWFwUmVzcG9uc2UiAEJIWkZnaXRodWIuY29tL0ZhYnJpYy1MYWJzL3BvbHllc3Rlci1zZGstZ28vZ2VuL21hcmtldGRhdGEvdjE7bWFya2V0ZGF0YXYxYgZwcm90bzM=\", [file_google_protobuf_timestamp, file_polyester_api_options]);\n\n/**\n * HeatmapTimeRange selects historical buckets by [start_time, end_time] (UTC).\n * At least one bound is required.\n *\n * @generated from message marketdata.v1.HeatmapTimeRange\n */\nexport type HeatmapTimeRange = Message<\"marketdata.v1.HeatmapTimeRange\"> & {\n /**\n * Inclusive lower bound in UTC. Omit to leave the lower bound open.\n *\n * @generated from field: google.protobuf.Timestamp start_time = 1;\n */\n startTime?: Timestamp | undefined;\n\n /**\n * Inclusive upper bound in UTC. Omit to leave the upper bound open.\n *\n * @generated from field: google.protobuf.Timestamp end_time = 2;\n */\n endTime?: Timestamp | undefined;\n};\n\n/**\n * Describes the message marketdata.v1.HeatmapTimeRange.\n * Use `create(HeatmapTimeRangeSchema)` to create a new message.\n */\nexport const HeatmapTimeRangeSchema: GenMessage<HeatmapTimeRange> = /*@__PURE__*/\n messageDesc(file_marketdata_v1_heatmap, 0);\n\n/**\n * GetOrderbookHeatmapRequest fetches historical heatmap buckets.\n *\n * @generated from message marketdata.v1.GetOrderbookHeatmapRequest\n */\nexport type GetOrderbookHeatmapRequest = Message<\"marketdata.v1.GetOrderbookHeatmapRequest\"> & {\n /**\n * Numeric spot market identifier.\n *\n * @generated from field: uint32 symbol_id = 1;\n */\n symbolId: number;\n\n /**\n * Heatmap bucket interval.\n *\n * @generated from field: marketdata.v1.HeatmapInterval interval = 2;\n */\n interval: HeatmapInterval;\n\n /**\n * Top-N levels per side included in each bucket.\n *\n * @generated from field: marketdata.v1.HeatmapDepth depth = 3;\n */\n depth: HeatmapDepth;\n\n /**\n * Absolute time range for the first page. Reuse the same request filters and\n * pass page_token from the prior response to continue older buckets.\n *\n * @generated from field: marketdata.v1.HeatmapTimeRange time_range = 4;\n */\n timeRange?: HeatmapTimeRange | undefined;\n\n /**\n * Opaque keyset cursor from a previous response. The cursor is exclusive and\n * bound to symbol, interval, depth, quantity mode, and the original time\n * range.\n *\n * @generated from field: string page_token = 5;\n */\n pageToken: string;\n\n /**\n * Maximum number of delta buckets returned (min 1, max 20000).\n * This limit counts only `chain.deltas`; `chain.base_keyframe` is not counted.\n *\n * @generated from field: uint32 limit = 6;\n */\n limit: number;\n\n /**\n * Quantity mode used for qty_scaled in snapshot/delta levels:\n * - CLOSE: end-of-bucket quantity\n * - PEAK: intra-bucket peak quantity\n *\n * @generated from field: marketdata.v1.HeatmapQuantityMode quantity_mode = 7;\n */\n quantityMode: HeatmapQuantityMode;\n};\n\n/**\n * Describes the message marketdata.v1.GetOrderbookHeatmapRequest.\n * Use `create(GetOrderbookHeatmapRequestSchema)` to create a new message.\n */\nexport const GetOrderbookHeatmapRequestSchema: GenMessage<GetOrderbookHeatmapRequest> = /*@__PURE__*/\n messageDesc(file_marketdata_v1_heatmap, 1);\n\n/**\n * HeatmapLevels represents one side of the orderbook for snapshots.\n * Arrays are aligned by index and prices are sorted ascending for both sides:\n * - price_ticks[i] <-> qty_scaled[i]\n *\n * @generated from message marketdata.v1.HeatmapLevels\n */\nexport type HeatmapLevels = Message<\"marketdata.v1.HeatmapLevels\"> & {\n /**\n * Price levels in quote units scaled by 1e9.\n *\n * @generated from field: repeated int64 price_ticks = 1;\n */\n priceTicks: bigint[];\n\n /**\n * Quantity at each price level according to quantity_mode, scaled by the\n * pair's base_quantity_scale from GetSpotConfig.\n *\n * @generated from field: repeated int64 qty_scaled = 2;\n */\n qtyScaled: bigint[];\n};\n\n/**\n * Describes the message marketdata.v1.HeatmapLevels.\n * Use `create(HeatmapLevelsSchema)` to create a new message.\n */\nexport const HeatmapLevelsSchema: GenMessage<HeatmapLevels> = /*@__PURE__*/\n messageDesc(file_marketdata_v1_heatmap, 2);\n\n/**\n * HeatmapDeltaLevels represents sparse per-bucket level changes for one side.\n * Arrays are aligned by index and prices are sorted ascending for both sides:\n * - price_ticks[i] <-> qty_scaled[i]\n * Delete semantics: qty_scaled[i] = 0 means delete level at price_ticks[i].\n *\n * @generated from message marketdata.v1.HeatmapDeltaLevels\n */\nexport type HeatmapDeltaLevels = Message<\"marketdata.v1.HeatmapDeltaLevels\"> & {\n /**\n * Price levels in quote units scaled by 1e9.\n *\n * @generated from field: repeated int64 price_ticks = 1;\n */\n priceTicks: bigint[];\n\n /**\n * Quantity at each price level, scaled by the pair's base_quantity_scale from\n * GetSpotConfig. A zero value deletes the level at the matching price_ticks\n * index.\n *\n * @generated from field: repeated int64 qty_scaled = 2;\n */\n qtyScaled: bigint[];\n};\n\n/**\n * Describes the message marketdata.v1.HeatmapDeltaLevels.\n * Use `create(HeatmapDeltaLevelsSchema)` to create a new message.\n */\nexport const HeatmapDeltaLevelsSchema: GenMessage<HeatmapDeltaLevels> = /*@__PURE__*/\n messageDesc(file_marketdata_v1_heatmap, 3);\n\n/**\n * HeatmapKeyframe is a full-book snapshot anchor.\n *\n * @generated from message marketdata.v1.HeatmapKeyframe\n */\nexport type HeatmapKeyframe = Message<\"marketdata.v1.HeatmapKeyframe\"> & {\n /**\n * Snapshot timestamp (seconds since epoch, UTC).\n *\n * @generated from field: uint64 ts_sec = 1;\n */\n tsSec: bigint;\n\n /**\n * Best bid price in quote units scaled by 1e9.\n *\n * @generated from field: int64 best_bid_ticks = 2;\n */\n bestBidTicks: bigint;\n\n /**\n * Best ask price in quote units scaled by 1e9.\n *\n * @generated from field: int64 best_ask_ticks = 3;\n */\n bestAskTicks: bigint;\n\n /**\n * Mid price in quote units scaled by 1e9.\n *\n * @generated from field: int64 mid_ticks = 4;\n */\n midTicks: bigint;\n\n /**\n * Complete bid-side levels at the snapshot.\n *\n * @generated from field: marketdata.v1.HeatmapLevels bids = 5;\n */\n bids?: HeatmapLevels | undefined;\n\n /**\n * Complete ask-side levels at the snapshot.\n *\n * @generated from field: marketdata.v1.HeatmapLevels asks = 6;\n */\n asks?: HeatmapLevels | undefined;\n\n /**\n * Monotonic order book sequence at the snapshot.\n *\n * @generated from field: uint64 book_seq = 7;\n */\n bookSeq: bigint;\n};\n\n/**\n * Describes the message marketdata.v1.HeatmapKeyframe.\n * Use `create(HeatmapKeyframeSchema)` to create a new message.\n */\nexport const HeatmapKeyframeSchema: GenMessage<HeatmapKeyframe> = /*@__PURE__*/\n messageDesc(file_marketdata_v1_heatmap, 4);\n\n/**\n * HeatmapDeltaBucket is one sparse update bucket containing both sides.\n *\n * @generated from message marketdata.v1.HeatmapDeltaBucket\n */\nexport type HeatmapDeltaBucket = Message<\"marketdata.v1.HeatmapDeltaBucket\"> & {\n /**\n * Bucket start timestamp (seconds since epoch, UTC), aligned to `interval`.\n *\n * @generated from field: uint64 ts_sec = 1;\n */\n tsSec: bigint;\n\n /**\n * Sparse bid-side level changes in this bucket.\n *\n * @generated from field: marketdata.v1.HeatmapDeltaLevels bids = 2;\n */\n bids?: HeatmapDeltaLevels | undefined;\n\n /**\n * Sparse ask-side level changes in this bucket.\n *\n * @generated from field: marketdata.v1.HeatmapDeltaLevels asks = 3;\n */\n asks?: HeatmapDeltaLevels | undefined;\n\n /**\n * Number of upstream L2 updates aggregated into this interval bucket.\n *\n * @generated from field: uint32 updates_in_bucket = 4;\n */\n updatesInBucket: number;\n\n /**\n * Earliest monotonic order book sequence represented by this bucket.\n *\n * @generated from field: uint64 book_seq_start = 5;\n */\n bookSeqStart: bigint;\n\n /**\n * Latest monotonic order book sequence represented by this bucket.\n *\n * @generated from field: uint64 book_seq_end = 6;\n */\n bookSeqEnd: bigint;\n};\n\n/**\n * Describes the message marketdata.v1.HeatmapDeltaBucket.\n * Use `create(HeatmapDeltaBucketSchema)` to create a new message.\n */\nexport const HeatmapDeltaBucketSchema: GenMessage<HeatmapDeltaBucket> = /*@__PURE__*/\n messageDesc(file_marketdata_v1_heatmap, 5);\n\n/**\n * HeatmapLiveBucket is the canonical live payload for real-time heatmap updates.\n * It represents the latest state of one bucket (open or finalized).\n *\n * @generated from message marketdata.v1.HeatmapLiveBucket\n */\nexport type HeatmapLiveBucket = Message<\"marketdata.v1.HeatmapLiveBucket\"> & {\n /**\n * Numeric spot market identifier.\n *\n * @generated from field: uint32 symbol_id = 1;\n */\n symbolId: number;\n\n /**\n * Bucket interval for this payload.\n *\n * @generated from field: marketdata.v1.HeatmapInterval interval = 2;\n */\n interval: HeatmapInterval;\n\n /**\n * Bucket start timestamp (seconds since epoch, UTC), aligned to `interval`.\n *\n * @generated from field: uint64 ts_sec = 3;\n */\n tsSec: bigint;\n\n /**\n * True when this bucket is finalized; false for provisional updates to an\n * open bucket.\n *\n * @generated from field: bool is_final = 4;\n */\n isFinal: boolean;\n\n /**\n * Sparse bid-side level changes represented by this bucket.\n *\n * @generated from field: marketdata.v1.HeatmapDeltaLevels bids = 5;\n */\n bids?: HeatmapDeltaLevels | undefined;\n\n /**\n * Sparse ask-side level changes represented by this bucket.\n *\n * @generated from field: marketdata.v1.HeatmapDeltaLevels asks = 6;\n */\n asks?: HeatmapDeltaLevels | undefined;\n\n /**\n * Number of upstream L2 updates aggregated into this interval bucket.\n *\n * @generated from field: uint32 updates_in_bucket = 7;\n */\n updatesInBucket: number;\n\n /**\n * Earliest monotonic order book sequence represented by this bucket.\n *\n * @generated from field: uint64 book_seq_start = 8;\n */\n bookSeqStart: bigint;\n\n /**\n * Latest monotonic order book sequence represented by this bucket.\n *\n * @generated from field: uint64 book_seq_end = 9;\n */\n bookSeqEnd: bigint;\n\n /**\n * Quantity semantics for qty_scaled in bids and asks.\n *\n * @generated from field: marketdata.v1.HeatmapQuantityMode quantity_mode = 10;\n */\n quantityMode: HeatmapQuantityMode;\n\n /**\n * Effective bin stride for this symbol as a price delta in 1e-9 quote-unit\n * ticks.\n *\n * @generated from field: uint64 effective_bin_ticks = 11;\n */\n effectiveBinTicks: bigint;\n};\n\n/**\n * Describes the message marketdata.v1.HeatmapLiveBucket.\n * Use `create(HeatmapLiveBucketSchema)` to create a new message.\n */\nexport const HeatmapLiveBucketSchema: GenMessage<HeatmapLiveBucket> = /*@__PURE__*/\n messageDesc(file_marketdata_v1_heatmap, 6);\n\n/**\n * HeatmapDeltaChain is the historical payload for all intervals.\n * Reconstruct by applying deltas over base_keyframe.\n * Deltas are ordered oldest-first by ts_sec.\n *\n * @generated from message marketdata.v1.HeatmapDeltaChain\n */\nexport type HeatmapDeltaChain = Message<\"marketdata.v1.HeatmapDeltaChain\"> & {\n /**\n * Full-book snapshot from which to apply the returned deltas.\n *\n * @generated from field: marketdata.v1.HeatmapKeyframe base_keyframe = 1;\n */\n baseKeyframe?: HeatmapKeyframe | undefined;\n\n /**\n * Sparse update buckets ordered oldest-first by timestamp.\n *\n * @generated from field: repeated marketdata.v1.HeatmapDeltaBucket deltas = 2;\n */\n deltas: HeatmapDeltaBucket[];\n};\n\n/**\n * Describes the message marketdata.v1.HeatmapDeltaChain.\n * Use `create(HeatmapDeltaChainSchema)` to create a new message.\n */\nexport const HeatmapDeltaChainSchema: GenMessage<HeatmapDeltaChain> = /*@__PURE__*/\n messageDesc(file_marketdata_v1_heatmap, 7);\n\n/**\n * GetOrderbookHeatmapResponse returns a historical replay chain plus optional\n * live bucket state for explicit realtime stitching.\n *\n * @generated from message marketdata.v1.GetOrderbookHeatmapResponse\n */\nexport type GetOrderbookHeatmapResponse = Message<\"marketdata.v1.GetOrderbookHeatmapResponse\"> & {\n /**\n * Numeric spot market identifier returned for the requested market.\n *\n * @generated from field: uint32 symbol_id = 1;\n */\n symbolId: number;\n\n /**\n * Bucket interval used for the returned chain.\n *\n * @generated from field: marketdata.v1.HeatmapInterval interval = 2;\n */\n interval: HeatmapInterval;\n\n /**\n * Top-N depth requested per side.\n *\n * @generated from field: marketdata.v1.HeatmapDepth depth = 3;\n */\n depth: HeatmapDepth;\n\n /**\n * Always returned as snapshot + sparse deltas for the requested interval.\n *\n * @generated from field: marketdata.v1.HeatmapDeltaChain chain = 4;\n */\n chain?: HeatmapDeltaChain | undefined;\n\n /**\n * Latest finalized historical bucket timestamp in seconds since epoch (UTC).\n *\n * @generated from field: uint64 last_persisted_ts_sec = 5;\n */\n lastPersistedTsSec: bigint;\n\n /**\n * Book sequence anchor for realtime continuation; apply live updates where book_seq_end is greater than this value.\n *\n * @generated from field: uint64 live_from_book_seq_end = 6;\n */\n liveFromBookSeqEnd: bigint;\n\n /**\n * True when live_from_book_seq_end is available and can be used as a realtime continuation anchor.\n *\n * @generated from field: bool has_live_anchor = 7;\n */\n hasLiveAnchor: boolean;\n\n /**\n * Opaque cursor for the next page. Empty when no more results exist.\n *\n * @generated from field: string next_page_token = 8;\n */\n nextPageToken: string;\n\n /**\n * Server response time in seconds since epoch (UTC).\n *\n * @generated from field: uint64 server_time_sec = 10;\n */\n serverTimeSec: bigint;\n\n /**\n * Quantity mode used for all qty_scaled values in the response.\n *\n * @generated from field: marketdata.v1.HeatmapQuantityMode quantity_mode = 11;\n */\n quantityMode: HeatmapQuantityMode;\n\n /**\n * Optional latest live bucket for the requested interval and depth.\n * Present only when it is newer than the historical anchor and its quantity semantics match quantity_mode.\n *\n * @generated from field: marketdata.v1.HeatmapLiveBucket live_bucket = 12;\n */\n liveBucket?: HeatmapLiveBucket | undefined;\n};\n\n/**\n * Describes the message marketdata.v1.GetOrderbookHeatmapResponse.\n * Use `create(GetOrderbookHeatmapResponseSchema)` to create a new message.\n */\nexport const GetOrderbookHeatmapResponseSchema: GenMessage<GetOrderbookHeatmapResponse> = /*@__PURE__*/\n messageDesc(file_marketdata_v1_heatmap, 8);\n\n/**\n * HeatmapInterval controls bucket resolution for historical orderbook heatmap.\n *\n * @generated from enum marketdata.v1.HeatmapInterval\n */\nexport enum HeatmapInterval {\n /**\n * @generated from enum value: INTERVAL_UNSPECIFIED = 0;\n */\n INTERVAL_UNSPECIFIED = 0,\n\n /**\n * @generated from enum value: INTERVAL_1S = 1;\n */\n INTERVAL_1S = 1,\n\n /**\n * @generated from enum value: INTERVAL_1M = 2;\n */\n INTERVAL_1M = 2,\n\n /**\n * @generated from enum value: INTERVAL_5M = 3;\n */\n INTERVAL_5M = 3,\n\n /**\n * @generated from enum value: INTERVAL_1H = 4;\n */\n INTERVAL_1H = 4,\n}\n\n/**\n * Describes the enum marketdata.v1.HeatmapInterval.\n */\nexport const HeatmapIntervalSchema: GenEnum<HeatmapInterval> = /*@__PURE__*/\n enumDesc(file_marketdata_v1_heatmap, 0);\n\n/**\n * HeatmapDepth controls top-N levels included per side in each heatmap bucket.\n *\n * Values intentionally mirror orderbook.v1.Depth for FE ergonomics, while\n * keeping this contract decoupled from orderbook service protos.\n *\n * @generated from enum marketdata.v1.HeatmapDepth\n */\nexport enum HeatmapDepth {\n /**\n * @generated from enum value: DEPTH_UNSPECIFIED = 0;\n */\n DEPTH_UNSPECIFIED = 0,\n\n /**\n * @generated from enum value: DEPTH_1 = 1;\n */\n DEPTH_1 = 1,\n\n /**\n * @generated from enum value: DEPTH_5 = 2;\n */\n DEPTH_5 = 2,\n\n /**\n * @generated from enum value: DEPTH_10 = 3;\n */\n DEPTH_10 = 3,\n\n /**\n * @generated from enum value: DEPTH_20 = 4;\n */\n DEPTH_20 = 4,\n\n /**\n * @generated from enum value: DEPTH_50 = 5;\n */\n DEPTH_50 = 5,\n\n /**\n * @generated from enum value: DEPTH_100 = 6;\n */\n DEPTH_100 = 6,\n\n /**\n * @generated from enum value: DEPTH_200 = 7;\n */\n DEPTH_200 = 7,\n\n /**\n * @generated from enum value: DEPTH_500 = 8;\n */\n DEPTH_500 = 8,\n\n /**\n * @generated from enum value: DEPTH_1000 = 9;\n */\n DEPTH_1000 = 9,\n}\n\n/**\n * Describes the enum marketdata.v1.HeatmapDepth.\n */\nexport const HeatmapDepthSchema: GenEnum<HeatmapDepth> = /*@__PURE__*/\n enumDesc(file_marketdata_v1_heatmap, 1);\n\n/**\n * HeatmapQuantityMode controls what qty_scaled means in returned levels.\n *\n * @generated from enum marketdata.v1.HeatmapQuantityMode\n */\nexport enum HeatmapQuantityMode {\n /**\n * @generated from enum value: QTY_MODE_UNSPECIFIED = 0;\n */\n QTY_MODE_UNSPECIFIED = 0,\n\n /**\n * @generated from enum value: CLOSE = 1;\n */\n CLOSE = 1,\n\n /**\n * @generated from enum value: PEAK = 2;\n */\n PEAK = 2,\n}\n\n/**\n * Describes the enum marketdata.v1.HeatmapQuantityMode.\n */\nexport const HeatmapQuantityModeSchema: GenEnum<HeatmapQuantityMode> = /*@__PURE__*/\n enumDesc(file_marketdata_v1_heatmap, 2);\n\n/**\n * HeatmapService serves historical orderbook heatmap chains.\n *\n * @generated from service marketdata.v1.HeatmapService\n */\nexport const HeatmapService: GenService<{\n /**\n * Retrieve historical orderbook heatmap data for a spot symbol.\n * - All intervals (1s/1m/5m/1h) return snapshot + sparse delta chain.\n * - Response may also include the latest live bucket state when available.\n * Response always includes realtime stitching anchors.\n *\n * @generated from rpc marketdata.v1.HeatmapService.GetOrderbookHeatmap\n */\n getOrderbookHeatmap: {\n methodKind: \"unary\";\n input: typeof GetOrderbookHeatmapRequestSchema;\n output: typeof GetOrderbookHeatmapResponseSchema;\n },\n}> = /*@__PURE__*/\n serviceDesc(file_marketdata_v1_heatmap, 0);\n\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAcA,MAAa,6BACX,uBAAS,4zGAA4zG,CAAC,gCAAgC,0BAA0B,CAAC;;;;;AA4Bn4G,MAAa,yBACX,0BAAY,4BAA4B,CAAC;;;;;AAoE3C,MAAa,mCACX,0BAAY,4BAA4B,CAAC;;;;;AA8B3C,MAAa,sBACX,0BAAY,4BAA4B,CAAC;;;;;AAgC3C,MAAa,2BACX,0BAAY,4BAA4B,CAAC;;;;;AA8D3C,MAAa,wBACX,0BAAY,4BAA4B,CAAC;;;;;AAuD3C,MAAa,2BACX,0BAAY,4BAA4B,CAAC;;;;;AA6F3C,MAAa,0BACX,0BAAY,4BAA4B,CAAC;;;;;AA6B3C,MAAa,0BACX,0BAAY,4BAA4B,CAAC;;;;;AA4F3C,MAAa,oCACX,0BAAY,4BAA4B,CAAC;;;;;;AAO3C,IAAY,kBAAL,yBAAA,iBAAA;;;;CAIL,gBAAA,gBAAA,0BAAA,KAAA;;;;CAKA,gBAAA,gBAAA,iBAAA,KAAA;;;;CAKA,gBAAA,gBAAA,iBAAA,KAAA;;;;CAKA,gBAAA,gBAAA,iBAAA,KAAA;;;;CAKA,gBAAA,gBAAA,iBAAA,KAAA;;AACF,EAAA,CAAA,CAAA;;;;AAKA,MAAa,wBACX,uBAAS,4BAA4B,CAAC;;;;;;;;;AAUxC,IAAY,eAAL,yBAAA,cAAA;;;;CAIL,aAAA,aAAA,uBAAA,KAAA;;;;CAKA,aAAA,aAAA,aAAA,KAAA;;;;CAKA,aAAA,aAAA,aAAA,KAAA;;;;CAKA,aAAA,aAAA,cAAA,KAAA;;;;CAKA,aAAA,aAAA,cAAA,KAAA;;;;CAKA,aAAA,aAAA,cAAA,KAAA;;;;CAKA,aAAA,aAAA,eAAA,KAAA;;;;CAKA,aAAA,aAAA,eAAA,KAAA;;;;CAKA,aAAA,aAAA,eAAA,KAAA;;;;CAKA,aAAA,aAAA,gBAAA,KAAA;;AACF,EAAA,CAAA,CAAA;;;;AAKA,MAAa,qBACX,uBAAS,4BAA4B,CAAC;;;;;;AAOxC,IAAY,sBAAL,yBAAA,qBAAA;;;;CAIL,oBAAA,oBAAA,0BAAA,KAAA;;;;CAKA,oBAAA,oBAAA,WAAA,KAAA;;;;CAKA,oBAAA,oBAAA,UAAA,KAAA;;AACF,EAAA,CAAA,CAAA;;;;AAKA,MAAa,4BACX,uBAAS,4BAA4B,CAAC;;;;;;AAOxC,MAAa,iBAeX,0BAAY,4BAA4B,CAAC"}
|
|
@@ -92,7 +92,7 @@ type MarketTrade = Message<"marketdata.v1.MarketTrade"> & {
|
|
|
92
92
|
*/
|
|
93
93
|
isBuy: boolean;
|
|
94
94
|
/**
|
|
95
|
-
* Trade price in quote-asset units scaled by
|
|
95
|
+
* Trade price in quote-asset units scaled by 1e9.
|
|
96
96
|
*
|
|
97
97
|
* @generated from field: int64 price_ticks = 4;
|
|
98
98
|
*/
|
|
@@ -307,7 +307,7 @@ type CandlePoint = Message<"marketdata.v1.CandlePoint"> & {
|
|
|
307
307
|
*/
|
|
308
308
|
tsSec: bigint;
|
|
309
309
|
/**
|
|
310
|
-
* Opening price in quote units. Primary candles use scale
|
|
310
|
+
* Opening price in quote units. Primary candles use scale 9; composite
|
|
311
311
|
* reference candles use the pair's reference_price_scale from GetSpotConfig.
|
|
312
312
|
*
|
|
313
313
|
* @generated from field: int64 open = 2;
|
|
@@ -433,28 +433,28 @@ type GetCandlesColumnsResponse = Message<"marketdata.v1.GetCandlesColumnsRespons
|
|
|
433
433
|
*/
|
|
434
434
|
tsSec: bigint[];
|
|
435
435
|
/**
|
|
436
|
-
* Opening primary-market prices use scale
|
|
436
|
+
* Opening primary-market prices use scale 9. Reference prices use the pair's
|
|
437
437
|
* reference_price_scale from GetSpotConfig.
|
|
438
438
|
*
|
|
439
439
|
* @generated from field: repeated int64 open = 4;
|
|
440
440
|
*/
|
|
441
441
|
open: bigint[];
|
|
442
442
|
/**
|
|
443
|
-
* Highest primary-market prices use scale
|
|
443
|
+
* Highest primary-market prices use scale 9. Reference prices use the pair's
|
|
444
444
|
* reference_price_scale from GetSpotConfig.
|
|
445
445
|
*
|
|
446
446
|
* @generated from field: repeated int64 high = 5;
|
|
447
447
|
*/
|
|
448
448
|
high: bigint[];
|
|
449
449
|
/**
|
|
450
|
-
* Lowest primary-market prices use scale
|
|
450
|
+
* Lowest primary-market prices use scale 9. Reference prices use the pair's
|
|
451
451
|
* reference_price_scale from GetSpotConfig.
|
|
452
452
|
*
|
|
453
453
|
* @generated from field: repeated int64 low = 6;
|
|
454
454
|
*/
|
|
455
455
|
low: bigint[];
|
|
456
456
|
/**
|
|
457
|
-
* Closing primary-market prices use scale
|
|
457
|
+
* Closing primary-market prices use scale 9. Reference prices use the pair's
|
|
458
458
|
* reference_price_scale from GetSpotConfig.
|
|
459
459
|
*
|
|
460
460
|
* @generated from field: repeated int64 close = 7;
|
|
@@ -548,25 +548,25 @@ type Candle = Message<"marketdata.v1.Candle"> & {
|
|
|
548
548
|
*/
|
|
549
549
|
tsSec: bigint;
|
|
550
550
|
/**
|
|
551
|
-
* opening primary-market price in scale
|
|
551
|
+
* opening primary-market price in scale 9
|
|
552
552
|
*
|
|
553
553
|
* @generated from field: int64 open = 4;
|
|
554
554
|
*/
|
|
555
555
|
open: bigint;
|
|
556
556
|
/**
|
|
557
|
-
* highest primary-market price in scale
|
|
557
|
+
* highest primary-market price in scale 9
|
|
558
558
|
*
|
|
559
559
|
* @generated from field: int64 high = 5;
|
|
560
560
|
*/
|
|
561
561
|
high: bigint;
|
|
562
562
|
/**
|
|
563
|
-
* lowest primary-market price in scale
|
|
563
|
+
* lowest primary-market price in scale 9
|
|
564
564
|
*
|
|
565
565
|
* @generated from field: int64 low = 6;
|
|
566
566
|
*/
|
|
567
567
|
low: bigint;
|
|
568
568
|
/**
|
|
569
|
-
* closing primary-market price in scale
|
|
569
|
+
* closing primary-market price in scale 9
|
|
570
570
|
*
|
|
571
571
|
* @generated from field: int64 close = 7;
|
|
572
572
|
*/
|
|
@@ -691,7 +691,7 @@ type PairConfig = Message<"marketdata.v1.PairConfig"> & {
|
|
|
691
691
|
quoteAsset: string;
|
|
692
692
|
/**
|
|
693
693
|
* Minimum allowed price increment as a decimal string in quote-asset units.
|
|
694
|
-
* Prices use
|
|
694
|
+
* Prices use 9 decimal places in scaled integer fields; for example "0.01"
|
|
695
695
|
* means orders must be priced in 0.01 quote-asset increments.
|
|
696
696
|
*
|
|
697
697
|
* @generated from field: string tick_size = 5;
|
|
@@ -784,7 +784,7 @@ type PairConfig = Message<"marketdata.v1.PairConfig"> & {
|
|
|
784
784
|
maxClientRefDriftBps: number;
|
|
785
785
|
/**
|
|
786
786
|
* Integer scale for composite reference prices in candle responses (0..18).
|
|
787
|
-
* Primary market and execution prices
|
|
787
|
+
* Primary market and execution prices use the fixed scale 9.
|
|
788
788
|
*
|
|
789
789
|
* @generated from field: uint32 reference_price_scale = 19;
|
|
790
790
|
*/
|
|
@@ -1027,7 +1027,7 @@ declare const MarketDataService: GenService<{
|
|
|
1027
1027
|
/**
|
|
1028
1028
|
* GetCandlesColumns returns OHLCV candles in a columnar representation optimized for charting.
|
|
1029
1029
|
* This method is intended for ConnectRPC clients and returns scaled integers.
|
|
1030
|
-
* Primary OHLC prices use scale
|
|
1030
|
+
* Primary OHLC prices use scale 9, reference OHLC prices use the pair's
|
|
1031
1031
|
* reference_price_scale, and volumes use the base asset's
|
|
1032
1032
|
* market_data_volume_scale from GetSpotConfig.
|
|
1033
1033
|
*
|
|
@@ -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(\"Ch5tYXJrZXRkYXRhL3YxL21hcmtldGRhdGEucHJvdG8SDW1hcmtldGRhdGEudjEi2QEKEEdldFRyYWRlc1JlcXVlc3QSEwoJc3ltYm9sX2lkGAEgASgNQgASDwoFbGltaXQYAiABKA1CABIuCgpzdGFydF90aW1lGAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIsCghlbmRfdGltZRgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASKQoEc2lkZRgFIAEoDjIZLm1hcmtldGRhdGEudjEuU2lkZUZpbHRlckIAEhQKCnBhZ2VfdG9rZW4YBiABKAlCADoAInoKC01hcmtldFRyYWRlEhEKCXN5bWJvbF9pZBgBIAEoDRIQCghtYXRjaF9pZBgCIAEoBBIOCgZpc19idXkYAyABKAgSEwoLcHJpY2VfdGlja3MYBCABKAMSEgoKcXR5X3NjYWxlZBgFIAEoAxINCgV0c19ucxgGIAEoBCJaChFHZXRUcmFkZXNSZXNwb25zZRIqCgZ0cmFkZXMYASADKAsyGi5tYXJrZXRkYXRhLnYxLk1hcmtldFRyYWRlEhkKD25leHRfcGFnZV90b2tlbhgCIAEoCUIAIpUCChFHZXRDYW5kbGVzUmVxdWVzdBITCglzeW1ib2xfaWQYASABKA1CABItCgl0aW1lZnJhbWUYAiABKA4yGC5tYXJrZXRkYXRhLnYxLlRpbWVmcmFtZUIAEg8KBWxpbWl0GAMgASgNQgASLgoKc3RhcnRfdGltZRgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLAoIZW5kX3RpbWUYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhoKEmluY2x1ZGVfaW5jb21wbGV0ZRgGIAEoCBIZChFpbmNsdWRlX3JlZmVyZW5jZRgHIAEoCBIUCgpwYWdlX3Rva2VuGAggASgJQgA6ACKcAgoYR2V0Q2FuZGxlc0NvbHVtbnNSZXF1ZXN0EhMKCXN5bWJvbF9pZBgBIAEoDUIAEi0KCXRpbWVmcmFtZRgCIAEoDjIYLm1hcmtldGRhdGEudjEuVGltZWZyYW1lQgASDwoFbGltaXQYAyABKA1CABIuCgpzdGFydF90aW1lGAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIsCghlbmRfdGltZRgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASGgoSaW5jbHVkZV9pbmNvbXBsZXRlGAYgASgIEhkKEWluY2x1ZGVfcmVmZXJlbmNlGAcgASgIEhQKCnBhZ2VfdG9rZW4YCCABKAlCADoAIo4BCgtDYW5kbGVQb2ludBIOCgZ0c19zZWMYASABKAQSDAoEb3BlbhgCIAEoAxIMCgRoaWdoGAMgASgDEgsKA2xvdxgEIAEoAxINCgVjbG9zZRgFIAEoAxIOCgZ2b2x1bWUYBiABKAMSEQoJaXNfY2xvc2VkGAcgASgIEhQKDHF1b3RlX3ZvbHVtZRgIIAEoCSLTAQoSR2V0Q2FuZGxlc1Jlc3BvbnNlEhEKCXN5bWJvbF9pZBgBIAEoDRIrCgl0aW1lZnJhbWUYAiABKA4yGC5tYXJrZXRkYXRhLnYxLlRpbWVmcmFtZRIrCgdjYW5kbGVzGAMgAygLMhoubWFya2V0ZGF0YS52MS5DYW5kbGVQb2ludBI1ChFyZWZlcmVuY2VfY2FuZGxlcxgEIAMoCzIaLm1hcmtldGRhdGEudjEuQ2FuZGxlUG9pbnQSGQoPbmV4dF9wYWdlX3Rva2VuGAUgASgJQgAi+AIKGUdldENhbmRsZXNDb2x1bW5zUmVzcG9uc2USEQoJc3ltYm9sX2lkGAEgASgNEisKCXRpbWVmcmFtZRgCIAEoDjIYLm1hcmtldGRhdGEudjEuVGltZWZyYW1lEg4KBnRzX3NlYxgDIAMoBBIMCgRvcGVuGAQgAygDEgwKBGhpZ2gYBSADKAMSCwoDbG93GAYgAygDEg0KBWNsb3NlGAcgAygDEg4KBnZvbHVtZRgIIAMoAxIYChByZWZlcmVuY2VfdHNfc2VjGAkgAygEEhYKDnJlZmVyZW5jZV9vcGVuGAogAygDEhYKDnJlZmVyZW5jZV9oaWdoGAsgAygDEhUKDXJlZmVyZW5jZV9sb3cYDCADKAMSFwoPcmVmZXJlbmNlX2Nsb3NlGA0gAygDEhgKEHJlZmVyZW5jZV92b2x1bWUYDiADKAMSGQoPbmV4dF9wYWdlX3Rva2VuGA8gASgJQgASFAoMcXVvdGVfdm9sdW1lGBAgAygJIrYBCgZDYW5kbGUSEQoJc3ltYm9sX2lkGAEgASgNEisKCXRpbWVmcmFtZRgCIAEoDjIYLm1hcmtldGRhdGEudjEuVGltZWZyYW1lEg4KBnRzX3NlYxgDIAEoBBIMCgRvcGVuGAQgASgDEgwKBGhpZ2gYBSABKAMSCwoDbG93GAYgASgDEg0KBWNsb3NlGAcgASgDEg4KBnZvbHVtZRgIIAEoAxIUCgxxdW90ZV92b2x1bWUYCSABKAkimgEKC0Fzc2V0Q29uZmlnEg0KBWFzc2V0GAEgASgJEhEKCWxlZGdlcl9pZBgCIAEoDRIMCgRuYW1lGAMgASgJEiEKGXF1YW50aXR5X2Rpc3BsYXlfZGVjaW1hbHMYBCABKA0SFgoOcXVhbnRpdHlfc2NhbGUYBSABKA0SIAoYbWFya2V0X2RhdGFfdm9sdW1lX3NjYWxlGAYgASgNIjcKFFBhaXJNYXJrZXRkYXRhQ29uZmlnEh8KF29yZGVyYm9va19wcmljZV9idWNrZXRzGAEgAygBIuYECgpQYWlyQ29uZmlnEhEKCXN5bWJvbF9pZBgBIAEoDRIOCgZzeW1ib2wYAiABKAkSEgoKYmFzZV9hc3NldBgDIAEoCRITCgtxdW90ZV9hc3NldBgEIAEoCRIRCgl0aWNrX3NpemUYBSABKAkSEQoJc3RlcF9zaXplGAYgASgJEhoKEm1pbl9ub3Rpb25hbF9xdW90ZRgHIAEoCRIUCgxtaW5fcXR5X2Jhc2UYCCABKAkSHwoXYWxsb3dfYnV5X2ZlZV9mcm9tX2Jhc2UYCSABKAgSGwoTYmFzZV9xdWFudGl0eV9zY2FsZRgKIAEoDRIcChRxdW90ZV9xdWFudGl0eV9zY2FsZRgLIAEoDRI3CgptYXJrZXRkYXRhGAwgASgLMiMubWFya2V0ZGF0YS52MS5QYWlyTWFya2V0ZGF0YUNvbmZpZxIuCgpsaXN0aW5nX2F0GA0gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIwCgxkZWxpc3RpbmdfYXQYDiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEikKBnN0YXR1cxgPIAEoDjIZLm1hcmtldGRhdGEudjEuUGFpclN0YXR1cxInCh9kZWZhdWx0X21hcmtldF9zbGlwcGFnZV9icHNfYnV5GBAgASgFEigKIGRlZmF1bHRfbWFya2V0X3NsaXBwYWdlX2Jwc19zZWxsGBEgASgFEiAKGG1heF9jbGllbnRfcmVmX2RyaWZ0X2JwcxgSIAEoBRIdChVyZWZlcmVuY2VfcHJpY2Vfc2NhbGUYEyABKA0iFgoUR2V0U3BvdENvbmZpZ1JlcXVlc3QifQoVR2V0U3BvdENvbmZpZ1Jlc3BvbnNlEioKBmFzc2V0cxgBIAMoCzIaLm1hcmtldGRhdGEudjEuQXNzZXRDb25maWcSKAoFcGFpcnMYAiADKAsyGS5tYXJrZXRkYXRhLnYxLlBhaXJDb25maWcSDgoGdHNfc2VjGAMgASgEKjUKClNpZGVGaWx0ZXISFAoQU0lERV9VTlNQRUNJRklFRBAAEgcKA0JVWRABEggKBFNFTEwQAiqoAQoJVGltZWZyYW1lEhkKFVRJTUVGUkFNRV9VTlNQRUNJRklFRBAAEgkKBVNFQ18xEAESCQoFTUlOXzEQAhIJCgVNSU5fNRADEgoKBk1JTl8xNRAEEgoKBk1JTl8zMBAFEgoKBkhPVVJfMRAGEgoKBkhPVVJfNBAHEgkKBURBWV8xEAgSCwoHSE9VUl8xMhAJEgoKBldFRUtfMRAKEgsKB01PTlRIXzEQCyqxAQoKUGFpclN0YXR1cxIbChdQQUlSX1NUQVRVU19VTlNQRUNJRklFRBAAEhcKE1BBSVJfU1RBVFVTX0VOQUJMRUQQARIYChRQQUlSX1NUQVRVU19ESVNBQkxFRBACEhsKF1BBSVJfU1RBVFVTX0NBTkNFTF9PTkxZEAMSGQoVUEFJUl9TVEFUVVNfUE9TVF9PTkxZEAQSGwoXUEFJUl9TVEFUVVNfUkVEVUNFX09OTFkQBTKCAwoRTWFya2V0RGF0YVNlcnZpY2USUAoJR2V0VHJhZGVzEh8ubWFya2V0ZGF0YS52MS5HZXRUcmFkZXNSZXF1ZXN0GiAubWFya2V0ZGF0YS52MS5HZXRUcmFkZXNSZXNwb25zZSIAElMKCkdldENhbmRsZXMSIC5tYXJrZXRkYXRhLnYxLkdldENhbmRsZXNSZXF1ZXN0GiEubWFya2V0ZGF0YS52MS5HZXRDYW5kbGVzUmVzcG9uc2UiABJoChFHZXRDYW5kbGVzQ29sdW1ucxInLm1hcmtldGRhdGEudjEuR2V0Q2FuZGxlc0NvbHVtbnNSZXF1ZXN0GigubWFya2V0ZGF0YS52MS5HZXRDYW5kbGVzQ29sdW1uc1Jlc3BvbnNlIgASXAoNR2V0U3BvdENvbmZpZxIjLm1hcmtldGRhdGEudjEuR2V0U3BvdENvbmZpZ1JlcXVlc3QaJC5tYXJrZXRkYXRhLnYxLkdldFNwb3RDb25maWdSZXNwb25zZSIAQkhaRmdpdGh1Yi5jb20vRmFicmljLUxhYnMvcG9seWVzdGVyLXNkay1nby9nZW4vbWFya2V0ZGF0YS92MTttYXJrZXRkYXRhdjFiBnByb3RvMw==\", [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. Primary candles use scale 6; composite\n * reference candles use the pair's reference_price_scale from GetSpotConfig.\n *\n * @generated from field: int64 open = 2;\n */\n open: bigint;\n\n /**\n * Highest traded price, using the same scale as open.\n *\n * @generated from field: int64 high = 3;\n */\n high: bigint;\n\n /**\n * Lowest traded price, using the same scale as open.\n *\n * @generated from field: int64 low = 4;\n */\n low: bigint;\n\n /**\n * Closing price, using the same scale as open.\n *\n * @generated from field: int64 close = 5;\n */\n close: bigint;\n\n /**\n * Traded base-asset quantity scaled by the base asset's\n * market_data_volume_scale 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 primary-market prices use scale 6. Reference prices use the pair's\n * reference_price_scale from GetSpotConfig.\n *\n * @generated from field: repeated int64 open = 4;\n */\n open: bigint[];\n\n /**\n * Highest primary-market prices use scale 6. Reference prices use the pair's\n * reference_price_scale from GetSpotConfig.\n *\n * @generated from field: repeated int64 high = 5;\n */\n high: bigint[];\n\n /**\n * Lowest primary-market prices use scale 6. Reference prices use the pair's\n * reference_price_scale from GetSpotConfig.\n *\n * @generated from field: repeated int64 low = 6;\n */\n low: bigint[];\n\n /**\n * Closing primary-market prices use scale 6. Reference prices use the pair's\n * reference_price_scale from GetSpotConfig.\n *\n * @generated from field: repeated int64 close = 7;\n */\n close: bigint[];\n\n /**\n * Traded base-asset quantities scaled by the base asset's\n * market_data_volume_scale from 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 use the pair's reference_price_scale.\n *\n * @generated from field: repeated int64 reference_open = 10;\n */\n referenceOpen: bigint[];\n\n /**\n * Reference high prices use the pair's reference_price_scale.\n *\n * @generated from field: repeated int64 reference_high = 11;\n */\n referenceHigh: bigint[];\n\n /**\n * Reference low prices use the pair's reference_price_scale.\n *\n * @generated from field: repeated int64 reference_low = 12;\n */\n referenceLow: bigint[];\n\n /**\n * Reference closing prices use the pair's reference_price_scale.\n *\n * @generated from field: repeated int64 reference_close = 13;\n */\n referenceClose: bigint[];\n\n /**\n * Reference traded base-asset quantities use the base asset's\n * market_data_volume_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 primary-market price in scale 6\n *\n * @generated from field: int64 open = 4;\n */\n open: bigint;\n\n /**\n * highest primary-market price in scale 6\n *\n * @generated from field: int64 high = 5;\n */\n high: bigint;\n\n /**\n * lowest primary-market price in scale 6\n *\n * @generated from field: int64 low = 6;\n */\n low: bigint;\n\n /**\n * closing primary-market price in scale 6\n *\n * @generated from field: int64 close = 7;\n */\n close: bigint;\n\n /**\n * Traded base-asset quantity scaled by the base asset's\n * market_data_volume_scale from 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 * Integer scale for public candle and market-overview base volume (0..18).\n *\n * @generated from field: uint32 market_data_volume_scale = 6;\n */\n marketDataVolumeScale: 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 * Integer scale for composite reference prices in candle responses (0..18).\n * Primary market and execution prices continue to use scale 6.\n *\n * @generated from field: uint32 reference_price_scale = 19;\n */\n referencePriceScale: 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 * Primary OHLC prices use scale 6, reference OHLC prices use the pair's\n * reference_price_scale, and volumes use the base asset's\n * market_data_volume_scale from GetSpotConfig.\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,4/JAA4/J,CAAC,gCAAgC,0BAA0B,CAAC;;;;;AA+DnkK,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;;;;;AA4E9C,MAAa,oBACX,0BAAY,+BAA+B,CAAC;;;;;AAqD9C,MAAa,2BACX,0BAAY,+BAA+B,CAAC;;;;;AAuI9C,MAAa,kCACX,0BAAY,+BAA+B,CAAC;;;;;AA6E9C,MAAa,eACX,0BAAY,+BAA+B,CAAC;;;;;AAyD9C,MAAa,oBACX,0BAAY,+BAA+B,CAAC;;;;;AAqB9C,MAAa,6BACX,0BAAY,+BAA+B,EAAE;;;;;AA4J/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,oBAkDX,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+AIKGUdldENhbmRsZXNDb2x1bW5zUmVzcG9uc2USEQoJc3ltYm9sX2lkGAEgASgNEisKCXRpbWVmcmFtZRgCIAEoDjIYLm1hcmtldGRhdGEudjEuVGltZWZyYW1lEg4KBnRzX3NlYxgDIAMoBBIMCgRvcGVuGAQgAygDEgwKBGhpZ2gYBSADKAMSCwoDbG93GAYgAygDEg0KBWNsb3NlGAcgAygDEg4KBnZvbHVtZRgIIAMoAxIYChByZWZlcmVuY2VfdHNfc2VjGAkgAygEEhYKDnJlZmVyZW5jZV9vcGVuGAogAygDEhYKDnJlZmVyZW5jZV9oaWdoGAsgAygDEhUKDXJlZmVyZW5jZV9sb3cYDCADKAMSFwoPcmVmZXJlbmNlX2Nsb3NlGA0gAygDEhgKEHJlZmVyZW5jZV92b2x1bWUYDiADKAMSGQoPbmV4dF9wYWdlX3Rva2VuGA8gASgJQgASFAoMcXVvdGVfdm9sdW1lGBAgAygJIrYBCgZDYW5kbGUSEQoJc3ltYm9sX2lkGAEgASgNEisKCXRpbWVmcmFtZRgCIAEoDjIYLm1hcmtldGRhdGEudjEuVGltZWZyYW1lEg4KBnRzX3NlYxgDIAEoBBIMCgRvcGVuGAQgASgDEgwKBGhpZ2gYBSABKAMSCwoDbG93GAYgASgDEg0KBWNsb3NlGAcgASgDEg4KBnZvbHVtZRgIIAEoAxIUCgxxdW90ZV92b2x1bWUYCSABKAkimgEKC0Fzc2V0Q29uZmlnEg0KBWFzc2V0GAEgASgJEhEKCWxlZGdlcl9pZBgCIAEoDRIMCgRuYW1lGAMgASgJEiEKGXF1YW50aXR5X2Rpc3BsYXlfZGVjaW1hbHMYBCABKA0SFgoOcXVhbnRpdHlfc2NhbGUYBSABKA0SIAoYbWFya2V0X2RhdGFfdm9sdW1lX3NjYWxlGAYgASgNIjcKFFBhaXJNYXJrZXRkYXRhQ29uZmlnEh8KF29yZGVyYm9va19wcmljZV9idWNrZXRzGAEgAygBIuYECgpQYWlyQ29uZmlnEhEKCXN5bWJvbF9pZBgBIAEoDRIOCgZzeW1ib2wYAiABKAkSEgoKYmFzZV9hc3NldBgDIAEoCRITCgtxdW90ZV9hc3NldBgEIAEoCRIRCgl0aWNrX3NpemUYBSABKAkSEQoJc3RlcF9zaXplGAYgASgJEhoKEm1pbl9ub3Rpb25hbF9xdW90ZRgHIAEoCRIUCgxtaW5fcXR5X2Jhc2UYCCABKAkSHwoXYWxsb3dfYnV5X2ZlZV9mcm9tX2Jhc2UYCSABKAgSGwoTYmFzZV9xdWFudGl0eV9zY2FsZRgKIAEoDRIcChRxdW90ZV9xdWFudGl0eV9zY2FsZRgLIAEoDRI3CgptYXJrZXRkYXRhGAwgASgLMiMubWFya2V0ZGF0YS52MS5QYWlyTWFya2V0ZGF0YUNvbmZpZxIuCgpsaXN0aW5nX2F0GA0gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIwCgxkZWxpc3RpbmdfYXQYDiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEikKBnN0YXR1cxgPIAEoDjIZLm1hcmtldGRhdGEudjEuUGFpclN0YXR1cxInCh9kZWZhdWx0X21hcmtldF9zbGlwcGFnZV9icHNfYnV5GBAgASgFEigKIGRlZmF1bHRfbWFya2V0X3NsaXBwYWdlX2Jwc19zZWxsGBEgASgFEiAKGG1heF9jbGllbnRfcmVmX2RyaWZ0X2JwcxgSIAEoBRIdChVyZWZlcmVuY2VfcHJpY2Vfc2NhbGUYEyABKA0iFgoUR2V0U3BvdENvbmZpZ1JlcXVlc3QifQoVR2V0U3BvdENvbmZpZ1Jlc3BvbnNlEioKBmFzc2V0cxgBIAMoCzIaLm1hcmtldGRhdGEudjEuQXNzZXRDb25maWcSKAoFcGFpcnMYAiADKAsyGS5tYXJrZXRkYXRhLnYxLlBhaXJDb25maWcSDgoGdHNfc2VjGAMgASgEKjUKClNpZGVGaWx0ZXISFAoQU0lERV9VTlNQRUNJRklFRBAAEgcKA0JVWRABEggKBFNFTEwQAiqoAQoJVGltZWZyYW1lEhkKFVRJTUVGUkFNRV9VTlNQRUNJRklFRBAAEgkKBVNFQ18xEAESCQoFTUlOXzEQAhIJCgVNSU5fNRADEgoKBk1JTl8xNRAEEgoKBk1JTl8zMBAFEgoKBkhPVVJfMRAGEgoKBkhPVVJfNBAHEgkKBURBWV8xEAgSCwoHSE9VUl8xMhAJEgoKBldFRUtfMRAKEgsKB01PTlRIXzEQCyqxAQoKUGFpclN0YXR1cxIbChdQQUlSX1NUQVRVU19VTlNQRUNJRklFRBAAEhcKE1BBSVJfU1RBVFVTX0VOQUJMRUQQARIYChRQQUlSX1NUQVRVU19ESVNBQkxFRBACEhsKF1BBSVJfU1RBVFVTX0NBTkNFTF9PTkxZEAMSGQoVUEFJUl9TVEFUVVNfUE9TVF9PTkxZEAQSGwoXUEFJUl9TVEFUVVNfUkVEVUNFX09OTFkQBTKCAwoRTWFya2V0RGF0YVNlcnZpY2USUAoJR2V0VHJhZGVzEh8ubWFya2V0ZGF0YS52MS5HZXRUcmFkZXNSZXF1ZXN0GiAubWFya2V0ZGF0YS52MS5HZXRUcmFkZXNSZXNwb25zZSIAElMKCkdldENhbmRsZXMSIC5tYXJrZXRkYXRhLnYxLkdldENhbmRsZXNSZXF1ZXN0GiEubWFya2V0ZGF0YS52MS5HZXRDYW5kbGVzUmVzcG9uc2UiABJoChFHZXRDYW5kbGVzQ29sdW1ucxInLm1hcmtldGRhdGEudjEuR2V0Q2FuZGxlc0NvbHVtbnNSZXF1ZXN0GigubWFya2V0ZGF0YS52MS5HZXRDYW5kbGVzQ29sdW1uc1Jlc3BvbnNlIgASXAoNR2V0U3BvdENvbmZpZxIjLm1hcmtldGRhdGEudjEuR2V0U3BvdENvbmZpZ1JlcXVlc3QaJC5tYXJrZXRkYXRhLnYxLkdldFNwb3RDb25maWdSZXNwb25zZSIAQkhaRmdpdGh1Yi5jb20vRmFicmljLUxhYnMvcG9seWVzdGVyLXNkay1nby9nZW4vbWFya2V0ZGF0YS92MTttYXJrZXRkYXRhdjFiBnByb3RvMw==\", [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 1e9.\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. Primary candles use scale 9; composite\n * reference candles use the pair's reference_price_scale from GetSpotConfig.\n *\n * @generated from field: int64 open = 2;\n */\n open: bigint;\n\n /**\n * Highest traded price, using the same scale as open.\n *\n * @generated from field: int64 high = 3;\n */\n high: bigint;\n\n /**\n * Lowest traded price, using the same scale as open.\n *\n * @generated from field: int64 low = 4;\n */\n low: bigint;\n\n /**\n * Closing price, using the same scale as open.\n *\n * @generated from field: int64 close = 5;\n */\n close: bigint;\n\n /**\n * Traded base-asset quantity scaled by the base asset's\n * market_data_volume_scale 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 primary-market prices use scale 9. Reference prices use the pair's\n * reference_price_scale from GetSpotConfig.\n *\n * @generated from field: repeated int64 open = 4;\n */\n open: bigint[];\n\n /**\n * Highest primary-market prices use scale 9. Reference prices use the pair's\n * reference_price_scale from GetSpotConfig.\n *\n * @generated from field: repeated int64 high = 5;\n */\n high: bigint[];\n\n /**\n * Lowest primary-market prices use scale 9. Reference prices use the pair's\n * reference_price_scale from GetSpotConfig.\n *\n * @generated from field: repeated int64 low = 6;\n */\n low: bigint[];\n\n /**\n * Closing primary-market prices use scale 9. Reference prices use the pair's\n * reference_price_scale from GetSpotConfig.\n *\n * @generated from field: repeated int64 close = 7;\n */\n close: bigint[];\n\n /**\n * Traded base-asset quantities scaled by the base asset's\n * market_data_volume_scale from 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 use the pair's reference_price_scale.\n *\n * @generated from field: repeated int64 reference_open = 10;\n */\n referenceOpen: bigint[];\n\n /**\n * Reference high prices use the pair's reference_price_scale.\n *\n * @generated from field: repeated int64 reference_high = 11;\n */\n referenceHigh: bigint[];\n\n /**\n * Reference low prices use the pair's reference_price_scale.\n *\n * @generated from field: repeated int64 reference_low = 12;\n */\n referenceLow: bigint[];\n\n /**\n * Reference closing prices use the pair's reference_price_scale.\n *\n * @generated from field: repeated int64 reference_close = 13;\n */\n referenceClose: bigint[];\n\n /**\n * Reference traded base-asset quantities use the base asset's\n * market_data_volume_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 primary-market price in scale 9\n *\n * @generated from field: int64 open = 4;\n */\n open: bigint;\n\n /**\n * highest primary-market price in scale 9\n *\n * @generated from field: int64 high = 5;\n */\n high: bigint;\n\n /**\n * lowest primary-market price in scale 9\n *\n * @generated from field: int64 low = 6;\n */\n low: bigint;\n\n /**\n * closing primary-market price in scale 9\n *\n * @generated from field: int64 close = 7;\n */\n close: bigint;\n\n /**\n * Traded base-asset quantity scaled by the base asset's\n * market_data_volume_scale from 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 * Integer scale for public candle and market-overview base volume (0..18).\n *\n * @generated from field: uint32 market_data_volume_scale = 6;\n */\n marketDataVolumeScale: 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 9 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 * Integer scale for composite reference prices in candle responses (0..18).\n * Primary market and execution prices use the fixed scale 9.\n *\n * @generated from field: uint32 reference_price_scale = 19;\n */\n referencePriceScale: 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 * Primary OHLC prices use scale 9, reference OHLC prices use the pair's\n * reference_price_scale, and volumes use the base asset's\n * market_data_volume_scale from GetSpotConfig.\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,4/JAA4/J,CAAC,gCAAgC,0BAA0B,CAAC;;;;;AA+DnkK,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;;;;;AA4E9C,MAAa,oBACX,0BAAY,+BAA+B,CAAC;;;;;AAqD9C,MAAa,2BACX,0BAAY,+BAA+B,CAAC;;;;;AAuI9C,MAAa,kCACX,0BAAY,+BAA+B,CAAC;;;;;AA6E9C,MAAa,eACX,0BAAY,+BAA+B,CAAC;;;;;AAyD9C,MAAa,oBACX,0BAAY,+BAA+B,CAAC;;;;;AAqB9C,MAAa,6BACX,0BAAY,+BAA+B,EAAE;;;;;AA4J/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,oBAkDX,0BAAY,+BAA+B,CAAC"}
|
|
@@ -38,7 +38,7 @@ type Sparkline = Message<"marketoverview.v1.Sparkline"> & {
|
|
|
38
38
|
*/
|
|
39
39
|
interval: SparklineInterval;
|
|
40
40
|
/**
|
|
41
|
-
* Newest-first close prices in quote units scaled by
|
|
41
|
+
* Newest-first close prices in quote units scaled by 1e9.
|
|
42
42
|
*
|
|
43
43
|
* @generated from field: repeated int64 close_ticks = 2;
|
|
44
44
|
*/
|
|
@@ -60,7 +60,7 @@ type MarketOverview = Message<"marketoverview.v1.MarketOverview"> & {
|
|
|
60
60
|
*/
|
|
61
61
|
symbolId: number;
|
|
62
62
|
/**
|
|
63
|
-
* Last traded price in quote units scaled by
|
|
63
|
+
* Last traded price in quote units scaled by 1e9.
|
|
64
64
|
*
|
|
65
65
|
* @generated from field: int64 last_price_ticks = 3;
|
|
66
66
|
*/
|
|
@@ -79,13 +79,13 @@ type MarketOverview = Message<"marketoverview.v1.MarketOverview"> & {
|
|
|
79
79
|
change24hBps: number;
|
|
80
80
|
/**
|
|
81
81
|
* Rolling 24h stats.
|
|
82
|
-
* Highest traded price in the 24h window, in quote units scaled by
|
|
82
|
+
* Highest traded price in the 24h window, in quote units scaled by 1e9.
|
|
83
83
|
*
|
|
84
84
|
* @generated from field: int64 high_24h_ticks = 6;
|
|
85
85
|
*/
|
|
86
86
|
high24hTicks: bigint;
|
|
87
87
|
/**
|
|
88
|
-
* Lowest traded price in the 24h window, in quote units scaled by
|
|
88
|
+
* Lowest traded price in the 24h window, in quote units scaled by 1e9.
|
|
89
89
|
*
|
|
90
90
|
* @generated from field: int64 low_24h_ticks = 7;
|
|
91
91
|
*/
|
|
@@ -121,7 +121,7 @@ type MarketOverview = Message<"marketoverview.v1.MarketOverview"> & {
|
|
|
121
121
|
*/
|
|
122
122
|
listedTsNs: bigint;
|
|
123
123
|
/**
|
|
124
|
-
* Current best bid price in quote units scaled by
|
|
124
|
+
* Current best bid price in quote units scaled by 1e9.
|
|
125
125
|
*
|
|
126
126
|
* @generated from field: int64 best_bid_ticks = 9;
|
|
127
127
|
*/
|
|
@@ -134,7 +134,7 @@ type MarketOverview = Message<"marketoverview.v1.MarketOverview"> & {
|
|
|
134
134
|
*/
|
|
135
135
|
bestBidQtyScaled: bigint;
|
|
136
136
|
/**
|
|
137
|
-
* Current best ask price in quote units scaled by
|
|
137
|
+
* Current best ask price in quote units scaled by 1e9.
|
|
138
138
|
*
|
|
139
139
|
* @generated from field: int64 best_ask_ticks = 11;
|
|
140
140
|
*/
|
|
@@ -153,7 +153,7 @@ type MarketOverview = Message<"marketoverview.v1.MarketOverview"> & {
|
|
|
153
153
|
*/
|
|
154
154
|
sparklines: Sparkline[];
|
|
155
155
|
/**
|
|
156
|
-
* Current multi-venue index price in quote units scaled by
|
|
156
|
+
* Current multi-venue index price in quote units scaled by 1e9.
|
|
157
157
|
* Zero when no fresh, valid index price is available.
|
|
158
158
|
*
|
|
159
159
|
* @generated from field: int64 index_price_ticks = 16;
|
|
@@ -646,7 +646,7 @@ declare enum MarketOrderBy {
|
|
|
646
646
|
*/
|
|
647
647
|
ORDER_BY_VOLUME_24H_USD = 2,
|
|
648
648
|
/**
|
|
649
|
-
* Sort by last price in quote units scaled by
|
|
649
|
+
* Sort by last price in quote units scaled by 1e9.
|
|
650
650
|
*
|
|
651
651
|
* @generated from enum value: ORDER_BY_LAST_PRICE = 3;
|
|
652
652
|
*/
|
|
@@ -184,7 +184,7 @@ let MarketOrderBy = /* @__PURE__ */ function(MarketOrderBy) {
|
|
|
184
184
|
*/
|
|
185
185
|
MarketOrderBy[MarketOrderBy["ORDER_BY_VOLUME_24H_USD"] = 2] = "ORDER_BY_VOLUME_24H_USD";
|
|
186
186
|
/**
|
|
187
|
-
* Sort by last price in quote units scaled by
|
|
187
|
+
* Sort by last price in quote units scaled by 1e9.
|
|
188
188
|
*
|
|
189
189
|
* @generated from enum value: ORDER_BY_LAST_PRICE = 3;
|
|
190
190
|
*/
|