@polyester/sdk 0.8.0 → 0.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (93) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/dist/catalogs/decimal.js +6 -4
  3. package/dist/catalogs/decimal.js.map +1 -1
  4. package/dist/catalogs/readers.js +1 -1
  5. package/dist/gen/auth/v1/policies_pb.d.ts +28 -10
  6. package/dist/gen/auth/v1/policies_pb.d.ts.map +1 -1
  7. package/dist/gen/auth/v1/policies_pb.js +37 -31
  8. package/dist/gen/auth/v1/policies_pb.js.map +1 -1
  9. package/dist/gen/fees/v1/fees_pb.d.ts +0 -6
  10. package/dist/gen/fees/v1/fees_pb.d.ts.map +1 -1
  11. package/dist/gen/fees/v1/fees_pb.js +1 -1
  12. package/dist/gen/fees/v1/fees_pb.js.map +1 -1
  13. package/dist/gen/marketoverview/v1/marketoverview_pb.d.ts +6 -11
  14. package/dist/gen/marketoverview/v1/marketoverview_pb.d.ts.map +1 -1
  15. package/dist/gen/marketoverview/v1/marketoverview_pb.js +1 -1
  16. package/dist/gen/marketoverview/v1/marketoverview_pb.js.map +1 -1
  17. package/dist/gen/orderbook/v1/orderbook_pb.d.ts +3 -3
  18. package/dist/gen/orderbook/v1/orderbook_pb.js +1 -1
  19. package/dist/gen/orderbook/v1/orderbook_pb.js.map +1 -1
  20. package/dist/gen/orders/v1/orders_pb.d.ts +11 -11
  21. package/dist/gen/orders/v1/orders_pb.js +1 -1
  22. package/dist/gen/orders/v1/orders_pb.js.map +1 -1
  23. package/dist/gen/triggers/v1/triggers_pb.d.ts +6 -12
  24. package/dist/gen/triggers/v1/triggers_pb.d.ts.map +1 -1
  25. package/dist/gen/triggers/v1/triggers_pb.js +1 -1
  26. package/dist/gen/triggers/v1/triggers_pb.js.map +1 -1
  27. package/dist/services/fees/fees.schemas.d.ts +2 -3
  28. package/dist/services/fees/fees.schemas.d.ts.map +1 -1
  29. package/dist/services/fees/fees.schemas.js +3 -4
  30. package/dist/services/fees/fees.schemas.js.map +1 -1
  31. package/dist/services/lifecycle/lifecycle.schemas.d.ts +42 -42
  32. package/dist/services/market-data/market-data.schemas.js +1 -1
  33. package/dist/services/market-overview/market-overview.d.ts +1 -1
  34. package/dist/services/market-overview/market-overview.js +1 -1
  35. package/dist/services/market-overview/market-overview.js.map +1 -1
  36. package/dist/services/market-overview/market-overview.schemas.d.ts +20 -7
  37. package/dist/services/market-overview/market-overview.schemas.d.ts.map +1 -1
  38. package/dist/services/market-overview/market-overview.schemas.js +8 -6
  39. package/dist/services/market-overview/market-overview.schemas.js.map +1 -1
  40. package/dist/services/orderbook/orderbook.d.ts +3 -4
  41. package/dist/services/orderbook/orderbook.d.ts.map +1 -1
  42. package/dist/services/orderbook/orderbook.js +13 -10
  43. package/dist/services/orderbook/orderbook.js.map +1 -1
  44. package/dist/services/orderbook/orderbook.schemas.d.ts +8 -9
  45. package/dist/services/orderbook/orderbook.schemas.d.ts.map +1 -1
  46. package/dist/services/orderbook/orderbook.schemas.js +9 -8
  47. package/dist/services/orderbook/orderbook.schemas.js.map +1 -1
  48. package/dist/services/orders/orders-batch.schemas.d.ts +209 -35
  49. package/dist/services/orders/orders-batch.schemas.d.ts.map +1 -1
  50. package/dist/services/orders/orders-batch.schemas.js +11 -9
  51. package/dist/services/orders/orders-batch.schemas.js.map +1 -1
  52. package/dist/services/orders/orders-input.schemas.d.ts +50 -50
  53. package/dist/services/orders/orders-input.schemas.d.ts.map +1 -1
  54. package/dist/services/orders/orders-input.schemas.js +12 -12
  55. package/dist/services/orders/orders-input.schemas.js.map +1 -1
  56. package/dist/services/orders/orders-modify.schemas.d.ts +18 -18
  57. package/dist/services/orders/orders-modify.schemas.js +1 -1
  58. package/dist/services/orders/orders-output.schemas.d.ts +6 -6
  59. package/dist/services/orders/orders-risk.schemas.d.ts +12 -12
  60. package/dist/services/orders/orders-risk.schemas.d.ts.map +1 -1
  61. package/dist/services/orders/orders-risk.schemas.js +8 -7
  62. package/dist/services/orders/orders-risk.schemas.js.map +1 -1
  63. package/dist/services/orders/orders.d.ts +4 -4
  64. package/dist/services/orders/orders.d.ts.map +1 -1
  65. package/dist/services/orders/orders.js +7 -7
  66. package/dist/services/orders/orders.js.map +1 -1
  67. package/dist/services/policies/api-key-policies/api-key-policies.schemas.d.ts +15 -15
  68. package/dist/services/policies/shared.d.ts.map +1 -1
  69. package/dist/services/policies/shared.js +2 -1
  70. package/dist/services/policies/shared.js.map +1 -1
  71. package/dist/services/policies/subaccount-policies/subaccount-policies.schemas.d.ts +9 -9
  72. package/dist/services/shared.js +4 -1
  73. package/dist/services/shared.js.map +1 -1
  74. package/dist/services/subaccounts/subaccounts.schemas.d.ts +1 -1
  75. package/dist/services/trades/trades.schemas.js +1 -1
  76. package/dist/services/trailing-oneof-inputs.js +1 -1
  77. package/dist/services/triggers/trigger-child-order.schemas.js +5 -3
  78. package/dist/services/triggers/trigger-child-order.schemas.js.map +1 -1
  79. package/dist/services/triggers/trigger-input.schemas.d.ts +36 -32
  80. package/dist/services/triggers/trigger-input.schemas.d.ts.map +1 -1
  81. package/dist/services/triggers/trigger-input.schemas.js +8 -8
  82. package/dist/services/triggers/trigger-input.schemas.js.map +1 -1
  83. package/dist/services/triggers/triggers-output.schemas.d.ts +17 -18
  84. package/dist/services/triggers/triggers-output.schemas.d.ts.map +1 -1
  85. package/dist/services/triggers/triggers-output.schemas.js +3 -3
  86. package/dist/services/triggers/triggers-output.schemas.js.map +1 -1
  87. package/dist/services/triggers/triggers.d.ts +2 -2
  88. package/dist/services/triggers/triggers.js +2 -2
  89. package/dist/services/triggers/triggers.js.map +1 -1
  90. package/dist/shared/decimal-surface.d.ts.map +1 -1
  91. package/dist/shared/decimal-surface.js +2 -2
  92. package/dist/shared/decimal-surface.js.map +1 -1
  93. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"policies_pb.js","names":[],"sources":["../../../../src/gen/auth/v1/policies_pb.ts"],"sourcesContent":["// @generated by protoc-gen-es v2.13.0 with parameter \"target=ts,import_extension=js\"\n// @generated from file auth/v1/policies.proto (package auth.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 { FieldMask, Timestamp } from \"@bufbuild/protobuf/wkt\";\nimport { file_google_protobuf_field_mask, 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 auth/v1/policies.proto.\n */\nexport const file_auth_v1_policies: GenFile = /*@__PURE__*/\n fileDesc(\"ChZhdXRoL3YxL3BvbGljaWVzLnByb3RvEgdhdXRoLnYxIj8KC01hcmtldFNjb3BlIjAKBVZhbHVlEg8KC1VOU1BFQ0lGSUVEEAASBwoDQUxMEAESDQoJQUxMT1dMSVNUEAIiIgoOU3BvdE1hcmtldFJ1bGUSEAoGc3ltYm9sGAEgASgJQgAi7wYKFFN1YmFjY291bnRQb2xpY3lWaWV3EgoKAmlkGAEgASgGEgwKBG5hbWUYAiABKAkSEwoLZGVzY3JpcHRpb24YAyABKAkSLQoMc3BvdF9tYXJrZXRzGAQgAygLMhcuYXV0aC52MS5TcG90TWFya2V0UnVsZRI3ChFzcG90X21hcmtldF9zY29wZRgGIAEoDjIaLmF1dGgudjEuTWFya2V0U2NvcGUuVmFsdWVCABIoCgdhY3Rpb25zGAggAygOMhUuYXV0aC52MS5Qb2xpY3lBY3Rpb25CABITCgtpc190ZW1wbGF0ZRgKIAEoCBIaChJzb3VyY2VfdGVtcGxhdGVfaWQYCyABKAYSGgoSbWF4X29yZGVyX25vdGlvbmFsGA0gASgEEhcKD21heF9vcGVuX29yZGVycxgOIAEoDRIWCg50cmFkaW5nX2hhbHRlZBgXIAEoCBIOCgZsb2NrZWQYGyABKAgSLQoJcmV2aWV3X2F0GBwgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgpleHBpcmVzX2F0GB0gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgpjcmVhdGVkX2F0GBQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GBUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIQCghyZXZpc2lvbhgeIAEoBEoECAUQBkoECAcQCEoECAwQDUoECA8QFEoECBYQF0oECBgQG1IMcGVycF9tYXJrZXRzUhFwZXJwX21hcmtldF9zY29wZVITZ2xvYmFsX25vdGlvbmFsX2NhcFISbWF4X29wZW5fcG9zaXRpb25zUhZnbG9iYWxfcGVycF9sZXZlcmFnZV94UiFkYWlseV9pbnRlcm5hbF90cmFuc2Zlcl9vdXRfbGltaXRSFGRhaWx5X3dpdGhkcmF3X2xpbWl0UhtpbnRlcm5hbF90cmFuc2ZlcnNfb3duX29ubHlSGmVuZm9yY2Vfd2l0aGRyYXdfd2hpdGVsaXN0UhBsaXF1aWRhdGlvbl9vbmx5UhBkYWlseV9sb3NzX2xpbWl0UhtpbnRyYWRheV9kcmF3ZG93bl9saW1pdF9icHMiTwodTGlzdFN1YmFjY291bnRQb2xpY2llc1JlcXVlc3QSHAoNc3ViYWNjb3VudF9pZBgBIAEoBkIASACIAQFCEAoOX3N1YmFjY291bnRfaWQiUQoeTGlzdFN1YmFjY291bnRQb2xpY2llc1Jlc3BvbnNlEi8KCHBvbGljaWVzGAEgAygLMh0uYXV0aC52MS5TdWJhY2NvdW50UG9saWN5VmlldyJhChpHZXRTdWJhY2NvdW50UG9saWN5UmVxdWVzdBITCglwb2xpY3lfaWQYASABKAZCABIcCg1zdWJhY2NvdW50X2lkGAIgASgGQgBIAIgBAUIQCg5fc3ViYWNjb3VudF9pZCJMChtHZXRTdWJhY2NvdW50UG9saWN5UmVzcG9uc2USLQoGcG9saWN5GAEgASgLMh0uYXV0aC52MS5TdWJhY2NvdW50UG9saWN5VmlldyLABQoUU3ViYWNjb3VudFBvbGljeVNwZWMSDgoEbmFtZRgBIAEoCUIAEhUKC2Rlc2NyaXB0aW9uGAIgASgJQgASLQoMc3BvdF9tYXJrZXRzGAMgAygLMhcuYXV0aC52MS5TcG90TWFya2V0UnVsZRI3ChFzcG90X21hcmtldF9zY29wZRgFIAEoDjIaLmF1dGgudjEuTWFya2V0U2NvcGUuVmFsdWVCABIoCgdhY3Rpb25zGAcgAygOMhUuYXV0aC52MS5Qb2xpY3lBY3Rpb25CABIaChJtYXhfb3JkZXJfbm90aW9uYWwYDSABKAQSFwoPbWF4X29wZW5fb3JkZXJzGA4gASgNEhYKDnRyYWRpbmdfaGFsdGVkGBUgASgIEg4KBmxvY2tlZBgZIAEoCBItCglyZXZpZXdfYXQYGiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCmV4cGlyZXNfYXQYGyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wOgBKBAgEEAVKBAgGEAdKBAgMEA1KBAgPEBVKBAgWEBlSDHBlcnBfbWFya2V0c1IRcGVycF9tYXJrZXRfc2NvcGVSE2dsb2JhbF9ub3Rpb25hbF9jYXBSEm1heF9vcGVuX3Bvc2l0aW9uc1IWZ2xvYmFsX3BlcnBfbGV2ZXJhZ2VfeFIhZGFpbHlfaW50ZXJuYWxfdHJhbnNmZXJfb3V0X2xpbWl0UhRkYWlseV93aXRoZHJhd19saW1pdFIbaW50ZXJuYWxfdHJhbnNmZXJzX293bl9vbmx5UhplbmZvcmNlX3dpdGhkcmF3X3doaXRlbGlzdFIQbGlxdWlkYXRpb25fb25seVIQZGFpbHlfbG9zc19saW1pdFIbaW50cmFkYXlfZHJhd2Rvd25fbGltaXRfYnBzIoABCh1DcmVhdGVTdWJhY2NvdW50UG9saWN5UmVxdWVzdBIvCgZwb2xpY3kYASABKAsyHS5hdXRoLnYxLlN1YmFjY291bnRQb2xpY3lTcGVjQgASHAoNc3ViYWNjb3VudF9pZBgCIAEoBkIASACIAQFCEAoOX3N1YmFjY291bnRfaWQiTwoeQ3JlYXRlU3ViYWNjb3VudFBvbGljeVJlc3BvbnNlEi0KBnBvbGljeRgBIAEoCzIdLmF1dGgudjEuU3ViYWNjb3VudFBvbGljeVZpZXcitQEKHVVwZGF0ZVN1YmFjY291bnRQb2xpY3lSZXF1ZXN0EhMKCXBvbGljeV9pZBgBIAEoBkIAEi8KBnBvbGljeRgCIAEoCzIdLmF1dGgudjEuU3ViYWNjb3VudFBvbGljeVNwZWNCABIxCgt1cGRhdGVfbWFzaxgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE1hc2tCABIbChFleHBlY3RlZF9yZXZpc2lvbhgEIAEoBEIAIk8KHlVwZGF0ZVN1YmFjY291bnRQb2xpY3lSZXNwb25zZRItCgZwb2xpY3kYASABKAsyHS5hdXRoLnYxLlN1YmFjY291bnRQb2xpY3lWaWV3IjQKHURlbGV0ZVN1YmFjY291bnRQb2xpY3lSZXF1ZXN0EhMKCXBvbGljeV9pZBgBIAEoBkIAIiAKHkRlbGV0ZVN1YmFjY291bnRQb2xpY3lSZXNwb25zZSJIChpTZXRTdWJhY2NvdW50UG9saWN5UmVxdWVzdBIXCg1zdWJhY2NvdW50X2lkGAEgASgGQgASEQoJcG9saWN5X2lkGAIgASgGIh0KG1NldFN1YmFjY291bnRQb2xpY3lSZXNwb25zZSL/AwoNQXBpUG9saWN5VmlldxIKCgJpZBgBIAEoBhIMCgRuYW1lGAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJEi0KDHNwb3RfbWFya2V0cxgEIAMoCzIXLmF1dGgudjEuU3BvdE1hcmtldFJ1bGUSKAoHYWN0aW9ucxgGIAMoDjIVLmF1dGgudjEuUG9saWN5QWN0aW9uQgASNwoRc3BvdF9tYXJrZXRfc2NvcGUYByABKA4yGi5hdXRoLnYxLk1hcmtldFNjb3BlLlZhbHVlQgASEwoLaXNfdGVtcGxhdGUYEyABKAgSGgoSc291cmNlX3RlbXBsYXRlX2lkGBQgASgGEi4KCmNyZWF0ZWRfYXQYFSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYFiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhAKCHJldmlzaW9uGBcgASgESgQIBRAGSgQICBAJSgQIDRAOSgQIERASSgQIEhATUgxwZXJwX21hcmtldHNSEXBlcnBfbWFya2V0X3Njb3BlUiFkYWlseV9pbnRlcm5hbF90cmFuc2Zlcl9vdXRfbGltaXRSFGRhaWx5X3dpdGhkcmF3X2xpbWl0UhJtYXhfb3JkZXJfbm90aW9uYWwiOgoWTGlzdEFwaVBvbGljaWVzUmVxdWVzdBIVCgZrZXlfaWQYASABKAlCAEgAiAEBQgkKB19rZXlfaWQiQwoXTGlzdEFwaVBvbGljaWVzUmVzcG9uc2USKAoIcG9saWNpZXMYASADKAsyFi5hdXRoLnYxLkFwaVBvbGljeVZpZXciTAoTR2V0QXBpUG9saWN5UmVxdWVzdBITCglwb2xpY3lfaWQYASABKAZCABIVCgZrZXlfaWQYAiABKAlCAEgAiAEBQgkKB19rZXlfaWQiPgoUR2V0QXBpUG9saWN5UmVzcG9uc2USJgoGcG9saWN5GAEgASgLMhYuYXV0aC52MS5BcGlQb2xpY3lWaWV3IusCCg1BcGlQb2xpY3lTcGVjEg4KBG5hbWUYASABKAlCABIVCgtkZXNjcmlwdGlvbhgCIAEoCUIAEi0KDHNwb3RfbWFya2V0cxgDIAMoCzIXLmF1dGgudjEuU3BvdE1hcmtldFJ1bGUSNwoRc3BvdF9tYXJrZXRfc2NvcGUYBSABKA4yGi5hdXRoLnYxLk1hcmtldFNjb3BlLlZhbHVlQgASKAoHYWN0aW9ucxgHIAMoDjIVLmF1dGgudjEuUG9saWN5QWN0aW9uQgASEwoLaXNfdGVtcGxhdGUYEyABKAg6AEoECAQQBUoECAYQB0oECA0QDkoECBEQEkoECBIQE1IMcGVycF9tYXJrZXRzUhFwZXJwX21hcmtldF9zY29wZVIhZGFpbHlfaW50ZXJuYWxfdHJhbnNmZXJfb3V0X2xpbWl0UhRkYWlseV93aXRoZHJhd19saW1pdFISbWF4X29yZGVyX25vdGlvbmFsIl4KFkNyZWF0ZUFwaVBvbGljeVJlcXVlc3QSKAoGcG9saWN5GAEgASgLMhYuYXV0aC52MS5BcGlQb2xpY3lTcGVjQgASGgoQYXNzaWduX3RvX2tleV9pZBgCIAEoCUIAIkEKF0NyZWF0ZUFwaVBvbGljeVJlc3BvbnNlEiYKBnBvbGljeRgBIAEoCzIWLmF1dGgudjEuQXBpUG9saWN5VmlldyKnAQoWVXBkYXRlQXBpUG9saWN5UmVxdWVzdBITCglwb2xpY3lfaWQYASABKAZCABIoCgZwb2xpY3kYAiABKAsyFi5hdXRoLnYxLkFwaVBvbGljeVNwZWNCABIxCgt1cGRhdGVfbWFzaxgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE1hc2tCABIbChFleHBlY3RlZF9yZXZpc2lvbhgEIAEoBEIAIkEKF1VwZGF0ZUFwaVBvbGljeVJlc3BvbnNlEiYKBnBvbGljeRgBIAEoCzIWLmF1dGgudjEuQXBpUG9saWN5VmlldyItChZEZWxldGVBcGlQb2xpY3lSZXF1ZXN0EhMKCXBvbGljeV9pZBgBIAEoBkIAIhkKF0RlbGV0ZUFwaVBvbGljeVJlc3BvbnNlIj0KFlNldEFwaUtleVBvbGljeVJlcXVlc3QSEAoGa2V5X2lkGAEgASgJQgASEQoJcG9saWN5X2lkGAIgASgGIhkKF1NldEFwaUtleVBvbGljeVJlc3BvbnNlKs4CCgxQb2xpY3lBY3Rpb24SDwoLVU5TUEVDSUZJRUQQABIOCgpUUkFERV9TUE9UEAESFQoRSU5URVJOQUxfVFJBTlNGRVIQAxIVChFFWFRFUk5BTF9XSVRIRFJBVxAEEhEKDVJFQURfQkFMQU5DRVMQBRINCglSRUFEX1NQT1QQBhIbChdSRUFEX0lOVEVSTkFMX1RSQU5TRkVSUxAIEhUKEVJFQURfQUREUkVTU19CT09LEAsSFwoTTUFOQUdFX0FERFJFU1NfQk9PSxAMIgQIAhACIgQIBxAHIgQIDRANIgQICRAJKgpUUkFERV9QRVJQKglSRUFEX1BFUlAqGlJFQURfVFJBTlNGRVJfREVTVElOQVRJT05TKhpNQU5BR0VfVFJBTlNGRVJfV0hJVEVMSVNUUyoZUkVBRF9FWFRFUk5BTF9XSVRIRFJBV0FMUzKSCQoNUG9saWN5U2VydmljZRJrChZMaXN0U3ViYWNjb3VudFBvbGljaWVzEiYuYXV0aC52MS5MaXN0U3ViYWNjb3VudFBvbGljaWVzUmVxdWVzdBonLmF1dGgudjEuTGlzdFN1YmFjY291bnRQb2xpY2llc1Jlc3BvbnNlIgASYgoTR2V0U3ViYWNjb3VudFBvbGljeRIjLmF1dGgudjEuR2V0U3ViYWNjb3VudFBvbGljeVJlcXVlc3QaJC5hdXRoLnYxLkdldFN1YmFjY291bnRQb2xpY3lSZXNwb25zZSIAEmsKFkNyZWF0ZVN1YmFjY291bnRQb2xpY3kSJi5hdXRoLnYxLkNyZWF0ZVN1YmFjY291bnRQb2xpY3lSZXF1ZXN0GicuYXV0aC52MS5DcmVhdGVTdWJhY2NvdW50UG9saWN5UmVzcG9uc2UiABJrChZVcGRhdGVTdWJhY2NvdW50UG9saWN5EiYuYXV0aC52MS5VcGRhdGVTdWJhY2NvdW50UG9saWN5UmVxdWVzdBonLmF1dGgudjEuVXBkYXRlU3ViYWNjb3VudFBvbGljeVJlc3BvbnNlIgASawoWRGVsZXRlU3ViYWNjb3VudFBvbGljeRImLmF1dGgudjEuRGVsZXRlU3ViYWNjb3VudFBvbGljeVJlcXVlc3QaJy5hdXRoLnYxLkRlbGV0ZVN1YmFjY291bnRQb2xpY3lSZXNwb25zZSIAEmIKE1NldFN1YmFjY291bnRQb2xpY3kSIy5hdXRoLnYxLlNldFN1YmFjY291bnRQb2xpY3lSZXF1ZXN0GiQuYXV0aC52MS5TZXRTdWJhY2NvdW50UG9saWN5UmVzcG9uc2UiABJWCg9MaXN0QXBpUG9saWNpZXMSHy5hdXRoLnYxLkxpc3RBcGlQb2xpY2llc1JlcXVlc3QaIC5hdXRoLnYxLkxpc3RBcGlQb2xpY2llc1Jlc3BvbnNlIgASTQoMR2V0QXBpUG9saWN5EhwuYXV0aC52MS5HZXRBcGlQb2xpY3lSZXF1ZXN0Gh0uYXV0aC52MS5HZXRBcGlQb2xpY3lSZXNwb25zZSIAElYKD0NyZWF0ZUFwaVBvbGljeRIfLmF1dGgudjEuQ3JlYXRlQXBpUG9saWN5UmVxdWVzdBogLmF1dGgudjEuQ3JlYXRlQXBpUG9saWN5UmVzcG9uc2UiABJWCg9VcGRhdGVBcGlQb2xpY3kSHy5hdXRoLnYxLlVwZGF0ZUFwaVBvbGljeVJlcXVlc3QaIC5hdXRoLnYxLlVwZGF0ZUFwaVBvbGljeVJlc3BvbnNlIgASVgoPRGVsZXRlQXBpUG9saWN5Eh8uYXV0aC52MS5EZWxldGVBcGlQb2xpY3lSZXF1ZXN0GiAuYXV0aC52MS5EZWxldGVBcGlQb2xpY3lSZXNwb25zZSIAElYKD1NldEFwaUtleVBvbGljeRIfLmF1dGgudjEuU2V0QXBpS2V5UG9saWN5UmVxdWVzdBogLmF1dGgudjEuU2V0QXBpS2V5UG9saWN5UmVzcG9uc2UiAEI8WjpnaXRodWIuY29tL0ZhYnJpYy1MYWJzL3BvbHllc3Rlci1zZGstZ28vZ2VuL2F1dGgvdjE7YXV0aHYxYgZwcm90bzM=\", [file_google_protobuf_field_mask, file_google_protobuf_timestamp, file_polyester_api_options]);\n\n/**\n * MarketScope describes how a policy applies to spot markets.\n *\n * @generated from message auth.v1.MarketScope\n */\nexport type MarketScope = Message<\"auth.v1.MarketScope\"> & {\n};\n\n/**\n * Describes the message auth.v1.MarketScope.\n * Use `create(MarketScopeSchema)` to create a new message.\n */\nexport const MarketScopeSchema: GenMessage<MarketScope> = /*@__PURE__*/\n messageDesc(file_auth_v1_policies, 0);\n\n/**\n * Value is the market-level scope:\n * - ALL: no market-level restriction; new listings are automatically allowed.\n * - ALLOWLIST: only the listed markets are allowed.\n *\n * @generated from enum auth.v1.MarketScope.Value\n */\nexport enum MarketScope_Value {\n /**\n * No scope selected. Create and update requests treat this as ALL.\n *\n * @generated from enum value: UNSPECIFIED = 0;\n */\n UNSPECIFIED = 0,\n\n /**\n * Allow all current and future markets for this policy.\n *\n * @generated from enum value: ALL = 1;\n */\n ALL = 1,\n\n /**\n * Allow only the markets listed on this policy.\n *\n * @generated from enum value: ALLOWLIST = 2;\n */\n ALLOWLIST = 2,\n}\n\n/**\n * Describes the enum auth.v1.MarketScope.Value.\n */\nexport const MarketScope_ValueSchema: GenEnum<MarketScope_Value> = /*@__PURE__*/\n enumDesc(file_auth_v1_policies, 0, 0);\n\n/**\n * SpotMarketRule describes an allowed spot market for a sub-account policy.\n *\n * @generated from message auth.v1.SpotMarketRule\n */\nexport type SpotMarketRule = Message<\"auth.v1.SpotMarketRule\"> & {\n /**\n * Spot market symbol, e.g. \"BTC-USDT\".\n *\n * @generated from field: string symbol = 1;\n */\n symbol: string;\n};\n\n/**\n * Describes the message auth.v1.SpotMarketRule.\n * Use `create(SpotMarketRuleSchema)` to create a new message.\n */\nexport const SpotMarketRuleSchema: GenMessage<SpotMarketRule> = /*@__PURE__*/\n messageDesc(file_auth_v1_policies, 1);\n\n/**\n * SubaccountPolicyView is the public view of a sub-account policy.\n *\n * @generated from message auth.v1.SubaccountPolicyView\n */\nexport type SubaccountPolicyView = Message<\"auth.v1.SubaccountPolicyView\"> & {\n /**\n * Policy identifier (opaque ID).\n *\n * @generated from field: fixed64 id = 1;\n */\n id: bigint;\n\n /**\n * Human-readable policy name.\n *\n * @generated from field: string name = 2;\n */\n name: string;\n\n /**\n * Optional policy description for dashboards and audits.\n *\n * @generated from field: string description = 3;\n */\n description: string;\n\n /**\n * Allowed spot markets for this sub-account.\n *\n * @generated from field: repeated auth.v1.SpotMarketRule spot_markets = 4;\n */\n spotMarkets: SpotMarketRule[];\n\n /**\n * Market-level scope for spot markets. When ALL, spot_markets is returned\n * for display only and is not enforced.\n *\n * @generated from field: auth.v1.MarketScope.Value spot_market_scope = 6;\n */\n spotMarketScope: MarketScope_Value;\n\n /**\n * Effective high-level actions enabled for the sub-account. Mandatory\n * read-only actions are always included.\n *\n * @generated from field: repeated auth.v1.PolicyAction actions = 8;\n */\n actions: PolicyAction[];\n\n /**\n * True if this policy is a reusable template; false if it is a\n * per-sub-account instance.\n *\n * @generated from field: bool is_template = 10;\n */\n isTemplate: boolean;\n\n /**\n * Optional source template this policy was copied from (opaque ID). This is\n * audit metadata only and does not imply live linkage.\n *\n * @generated from field: fixed64 source_template_id = 11;\n */\n sourceTemplateId: bigint;\n\n /**\n * Maximum notional size allowed for any single order on this sub-account,\n * expressed in canonical quote microunits (one unit is 0.000001 USDT).\n * A value of 0 means \"no explicit cap\".\n *\n * @generated from field: uint64 max_order_notional = 13;\n */\n maxOrderNotional: bigint;\n\n /**\n * Maximum number of resting orders allowed on this sub-account at any time.\n * A value of 0 means \"no explicit cap\".\n *\n * @generated from field: uint32 max_open_orders = 14;\n */\n maxOpenOrders: number;\n\n /**\n * When true, new orders and exposure-increasing order or trigger changes are\n * rejected regardless of other settings. Existing orders and triggers may\n * still be canceled or paused.\n *\n * @generated from field: bool trading_halted = 23;\n */\n tradingHalted: boolean;\n\n /**\n * When true, this policy is write-protected and requires an elevated approval\n * flow to modify it.\n *\n * @generated from field: bool locked = 27;\n */\n locked: boolean;\n\n /**\n * Optional review time in UTC. This is governance metadata and does not\n * automatically disable the policy.\n *\n * @generated from field: google.protobuf.Timestamp review_at = 28;\n */\n reviewAt?: Timestamp | undefined;\n\n /**\n * Optional expiry time in UTC. This is governance metadata and does not\n * automatically disable the policy.\n *\n * @generated from field: google.protobuf.Timestamp expires_at = 29;\n */\n expiresAt?: Timestamp | undefined;\n\n /**\n * Creation time in UTC.\n *\n * @generated from field: google.protobuf.Timestamp created_at = 20;\n */\n createdAt?: Timestamp | undefined;\n\n /**\n * Last update time in UTC.\n *\n * @generated from field: google.protobuf.Timestamp updated_at = 21;\n */\n updatedAt?: Timestamp | undefined;\n\n /**\n * Monotonic resource revision used for conditional updates.\n *\n * @generated from field: uint64 revision = 30;\n */\n revision: bigint;\n};\n\n/**\n * Describes the message auth.v1.SubaccountPolicyView.\n * Use `create(SubaccountPolicyViewSchema)` to create a new message.\n */\nexport const SubaccountPolicyViewSchema: GenMessage<SubaccountPolicyView> = /*@__PURE__*/\n messageDesc(file_auth_v1_policies, 2);\n\n/**\n * ListSubaccountPoliciesRequest lists the finite set of sub-account policies\n * visible in the requested account scope. Results are sorted by ascending\n * policy ID and are not paginated.\n *\n * @generated from message auth.v1.ListSubaccountPoliciesRequest\n */\nexport type ListSubaccountPoliciesRequest = Message<\"auth.v1.ListSubaccountPoliciesRequest\"> & {\n /**\n * Optional sub-account context for delegated administration. When omitted,\n * only policies owned by the caller's root account are returned.\n *\n * @generated from field: optional fixed64 subaccount_id = 1;\n */\n subaccountId?: bigint | undefined;\n};\n\n/**\n * Describes the message auth.v1.ListSubaccountPoliciesRequest.\n * Use `create(ListSubaccountPoliciesRequestSchema)` to create a new message.\n */\nexport const ListSubaccountPoliciesRequestSchema: GenMessage<ListSubaccountPoliciesRequest> = /*@__PURE__*/\n messageDesc(file_auth_v1_policies, 3);\n\n/**\n * ListSubaccountPoliciesResponse contains sub-account policy templates sorted\n * by ascending policy ID.\n *\n * @generated from message auth.v1.ListSubaccountPoliciesResponse\n */\nexport type ListSubaccountPoliciesResponse = Message<\"auth.v1.ListSubaccountPoliciesResponse\"> & {\n /**\n * Sub-account policy templates visible to the caller.\n *\n * @generated from field: repeated auth.v1.SubaccountPolicyView policies = 1;\n */\n policies: SubaccountPolicyView[];\n};\n\n/**\n * Describes the message auth.v1.ListSubaccountPoliciesResponse.\n * Use `create(ListSubaccountPoliciesResponseSchema)` to create a new message.\n */\nexport const ListSubaccountPoliciesResponseSchema: GenMessage<ListSubaccountPoliciesResponse> = /*@__PURE__*/\n messageDesc(file_auth_v1_policies, 4);\n\n/**\n * GetSubaccountPolicyRequest fetches one sub-account policy template by ID.\n *\n * @generated from message auth.v1.GetSubaccountPolicyRequest\n */\nexport type GetSubaccountPolicyRequest = Message<\"auth.v1.GetSubaccountPolicyRequest\"> & {\n /**\n * Policy identifier (opaque ID).\n *\n * @generated from field: fixed64 policy_id = 1;\n */\n policyId: bigint;\n\n /**\n * Optional sub-account context for delegated administration. When omitted,\n * the policy must be owned by the caller's root account.\n *\n * @generated from field: optional fixed64 subaccount_id = 2;\n */\n subaccountId?: bigint | undefined;\n};\n\n/**\n * Describes the message auth.v1.GetSubaccountPolicyRequest.\n * Use `create(GetSubaccountPolicyRequestSchema)` to create a new message.\n */\nexport const GetSubaccountPolicyRequestSchema: GenMessage<GetSubaccountPolicyRequest> = /*@__PURE__*/\n messageDesc(file_auth_v1_policies, 5);\n\n/**\n * GetSubaccountPolicyResponse returns the requested sub-account policy.\n *\n * @generated from message auth.v1.GetSubaccountPolicyResponse\n */\nexport type GetSubaccountPolicyResponse = Message<\"auth.v1.GetSubaccountPolicyResponse\"> & {\n /**\n * Matching sub-account policy.\n *\n * @generated from field: auth.v1.SubaccountPolicyView policy = 1;\n */\n policy?: SubaccountPolicyView | undefined;\n};\n\n/**\n * Describes the message auth.v1.GetSubaccountPolicyResponse.\n * Use `create(GetSubaccountPolicyResponseSchema)` to create a new message.\n */\nexport const GetSubaccountPolicyResponseSchema: GenMessage<GetSubaccountPolicyResponse> = /*@__PURE__*/\n messageDesc(file_auth_v1_policies, 6);\n\n/**\n * SubaccountPolicySpec contains the mutable configuration of a sub-account policy.\n *\n * @generated from message auth.v1.SubaccountPolicySpec\n */\nexport type SubaccountPolicySpec = Message<\"auth.v1.SubaccountPolicySpec\"> & {\n /**\n * Human-readable policy name. Create requires a non-empty value; update\n * validates it after merging fields selected by update_mask.\n *\n * @generated from field: string name = 1;\n */\n name: string;\n\n /**\n * Optional policy description for dashboards and audits. Maximum 256 characters.\n *\n * @generated from field: string description = 2;\n */\n description: string;\n\n /**\n * Allowed spot markets for this policy.\n *\n * @generated from field: repeated auth.v1.SpotMarketRule spot_markets = 3;\n */\n spotMarkets: SpotMarketRule[];\n\n /**\n * Market-level scope for spot markets. When unspecified, defaults to ALL.\n *\n * @generated from field: auth.v1.MarketScope.Value spot_market_scope = 5;\n */\n spotMarketScope: MarketScope_Value;\n\n /**\n * High-level actions enabled for the sub-account policy. Mandatory read-only\n * actions are included when omitted. Up to 64 unique explicit actions are\n * allowed.\n *\n * @generated from field: repeated auth.v1.PolicyAction actions = 7;\n */\n actions: PolicyAction[];\n\n /**\n * Maximum notional size for any single order on this sub-account, expressed\n * in canonical quote microunits (one unit is 0.000001 USDT). A value of 0\n * means no explicit cap.\n *\n * @generated from field: uint64 max_order_notional = 13;\n */\n maxOrderNotional: bigint;\n\n /**\n * Maximum number of resting orders allowed on this sub-account at any time.\n * A value of 0 means no explicit cap.\n *\n * @generated from field: uint32 max_open_orders = 14;\n */\n maxOpenOrders: number;\n\n /**\n * When true, new orders and exposure-increasing order or trigger changes are\n * rejected regardless of other settings. Existing orders and triggers may\n * still be canceled or paused.\n *\n * @generated from field: bool trading_halted = 21;\n */\n tradingHalted: boolean;\n\n /**\n * When true, the policy is write-protected and requires an elevated mutation path.\n *\n * @generated from field: bool locked = 25;\n */\n locked: boolean;\n\n /**\n * Optional review time in UTC. This does not automatically disable the policy.\n *\n * @generated from field: google.protobuf.Timestamp review_at = 26;\n */\n reviewAt?: Timestamp | undefined;\n\n /**\n * Optional expiry time in UTC. This does not automatically disable the policy.\n *\n * @generated from field: google.protobuf.Timestamp expires_at = 27;\n */\n expiresAt?: Timestamp | undefined;\n};\n\n/**\n * Describes the message auth.v1.SubaccountPolicySpec.\n * Use `create(SubaccountPolicySpecSchema)` to create a new message.\n */\nexport const SubaccountPolicySpecSchema: GenMessage<SubaccountPolicySpec> = /*@__PURE__*/\n messageDesc(file_auth_v1_policies, 7);\n\n/**\n * CreateSubaccountPolicyRequest defines a new sub-account policy template, with\n * an optional attach step for one target sub-account.\n *\n * @generated from message auth.v1.CreateSubaccountPolicyRequest\n */\nexport type CreateSubaccountPolicyRequest = Message<\"auth.v1.CreateSubaccountPolicyRequest\"> & {\n /**\n * Complete mutable policy configuration.\n *\n * @generated from field: auth.v1.SubaccountPolicySpec policy = 1;\n */\n policy?: SubaccountPolicySpec | undefined;\n\n /**\n * Optional target sub-account to attach atomically after creation.\n *\n * @generated from field: optional fixed64 subaccount_id = 2;\n */\n subaccountId?: bigint | undefined;\n};\n\n/**\n * Describes the message auth.v1.CreateSubaccountPolicyRequest.\n * Use `create(CreateSubaccountPolicyRequestSchema)` to create a new message.\n */\nexport const CreateSubaccountPolicyRequestSchema: GenMessage<CreateSubaccountPolicyRequest> = /*@__PURE__*/\n messageDesc(file_auth_v1_policies, 8);\n\n/**\n * CreateSubaccountPolicyResponse returns the created sub-account policy.\n *\n * @generated from message auth.v1.CreateSubaccountPolicyResponse\n */\nexport type CreateSubaccountPolicyResponse = Message<\"auth.v1.CreateSubaccountPolicyResponse\"> & {\n /**\n * Created sub-account policy.\n *\n * @generated from field: auth.v1.SubaccountPolicyView policy = 1;\n */\n policy?: SubaccountPolicyView | undefined;\n};\n\n/**\n * Describes the message auth.v1.CreateSubaccountPolicyResponse.\n * Use `create(CreateSubaccountPolicyResponseSchema)` to create a new message.\n */\nexport const CreateSubaccountPolicyResponseSchema: GenMessage<CreateSubaccountPolicyResponse> = /*@__PURE__*/\n messageDesc(file_auth_v1_policies, 9);\n\n/**\n * UpdateSubaccountPolicyRequest changes selected mutable fields on an existing\n * sub-account policy.\n *\n * @generated from message auth.v1.UpdateSubaccountPolicyRequest\n */\nexport type UpdateSubaccountPolicyRequest = Message<\"auth.v1.UpdateSubaccountPolicyRequest\"> & {\n /**\n * Policy identifier (opaque ID).\n *\n * @generated from field: fixed64 policy_id = 1;\n */\n policyId: bigint;\n\n /**\n * Candidate values for fields selected by update_mask.\n *\n * @generated from field: auth.v1.SubaccountPolicySpec policy = 2;\n */\n policy?: SubaccountPolicySpec | undefined;\n\n /**\n * Mutable fields to apply. Paths are relative to policy. The mask is required,\n * must be non-empty, and cannot contain \"*\".\n *\n * @generated from field: google.protobuf.FieldMask update_mask = 3;\n */\n updateMask?: FieldMask | undefined;\n\n /**\n * Revision returned by the latest successful read. Stale revisions fail with\n * a conflict before no-op detection.\n *\n * @generated from field: uint64 expected_revision = 4;\n */\n expectedRevision: bigint;\n};\n\n/**\n * Describes the message auth.v1.UpdateSubaccountPolicyRequest.\n * Use `create(UpdateSubaccountPolicyRequestSchema)` to create a new message.\n */\nexport const UpdateSubaccountPolicyRequestSchema: GenMessage<UpdateSubaccountPolicyRequest> = /*@__PURE__*/\n messageDesc(file_auth_v1_policies, 10);\n\n/**\n * UpdateSubaccountPolicyResponse returns the updated sub-account policy.\n *\n * @generated from message auth.v1.UpdateSubaccountPolicyResponse\n */\nexport type UpdateSubaccountPolicyResponse = Message<\"auth.v1.UpdateSubaccountPolicyResponse\"> & {\n /**\n * Updated sub-account policy.\n *\n * @generated from field: auth.v1.SubaccountPolicyView policy = 1;\n */\n policy?: SubaccountPolicyView | undefined;\n};\n\n/**\n * Describes the message auth.v1.UpdateSubaccountPolicyResponse.\n * Use `create(UpdateSubaccountPolicyResponseSchema)` to create a new message.\n */\nexport const UpdateSubaccountPolicyResponseSchema: GenMessage<UpdateSubaccountPolicyResponse> = /*@__PURE__*/\n messageDesc(file_auth_v1_policies, 11);\n\n/**\n * DeleteSubaccountPolicyRequest deletes a sub-account policy template when it\n * is not in use.\n *\n * @generated from message auth.v1.DeleteSubaccountPolicyRequest\n */\nexport type DeleteSubaccountPolicyRequest = Message<\"auth.v1.DeleteSubaccountPolicyRequest\"> & {\n /**\n * Policy identifier (opaque ID).\n *\n * @generated from field: fixed64 policy_id = 1;\n */\n policyId: bigint;\n};\n\n/**\n * Describes the message auth.v1.DeleteSubaccountPolicyRequest.\n * Use `create(DeleteSubaccountPolicyRequestSchema)` to create a new message.\n */\nexport const DeleteSubaccountPolicyRequestSchema: GenMessage<DeleteSubaccountPolicyRequest> = /*@__PURE__*/\n messageDesc(file_auth_v1_policies, 12);\n\n/**\n * DeleteSubaccountPolicyResponse is empty when the delete succeeds.\n *\n * @generated from message auth.v1.DeleteSubaccountPolicyResponse\n */\nexport type DeleteSubaccountPolicyResponse = Message<\"auth.v1.DeleteSubaccountPolicyResponse\"> & {\n};\n\n/**\n * Describes the message auth.v1.DeleteSubaccountPolicyResponse.\n * Use `create(DeleteSubaccountPolicyResponseSchema)` to create a new message.\n */\nexport const DeleteSubaccountPolicyResponseSchema: GenMessage<DeleteSubaccountPolicyResponse> = /*@__PURE__*/\n messageDesc(file_auth_v1_policies, 13);\n\n/**\n * SetSubaccountPolicyRequest attaches or clears a policy template on a\n * sub-account.\n *\n * @generated from message auth.v1.SetSubaccountPolicyRequest\n */\nexport type SetSubaccountPolicyRequest = Message<\"auth.v1.SetSubaccountPolicyRequest\"> & {\n /**\n * Sub-account identifier (opaque ID).\n *\n * @generated from field: fixed64 subaccount_id = 1;\n */\n subaccountId: bigint;\n\n /**\n * Policy template to attach (opaque ID). A value of 0 clears the explicit\n * binding and restores the system Read Only policy.\n *\n * @generated from field: fixed64 policy_id = 2;\n */\n policyId: bigint;\n};\n\n/**\n * Describes the message auth.v1.SetSubaccountPolicyRequest.\n * Use `create(SetSubaccountPolicyRequestSchema)` to create a new message.\n */\nexport const SetSubaccountPolicyRequestSchema: GenMessage<SetSubaccountPolicyRequest> = /*@__PURE__*/\n messageDesc(file_auth_v1_policies, 14);\n\n/**\n * SetSubaccountPolicyResponse is empty when the policy binding succeeds.\n *\n * @generated from message auth.v1.SetSubaccountPolicyResponse\n */\nexport type SetSubaccountPolicyResponse = Message<\"auth.v1.SetSubaccountPolicyResponse\"> & {\n};\n\n/**\n * Describes the message auth.v1.SetSubaccountPolicyResponse.\n * Use `create(SetSubaccountPolicyResponseSchema)` to create a new message.\n */\nexport const SetSubaccountPolicyResponseSchema: GenMessage<SetSubaccountPolicyResponse> = /*@__PURE__*/\n messageDesc(file_auth_v1_policies, 15);\n\n/**\n * ApiPolicyView is the public view of an API key policy template. Its action\n * and spot-market floor cannot exceed an attached sub-account policy.\n *\n * @generated from message auth.v1.ApiPolicyView\n */\nexport type ApiPolicyView = Message<\"auth.v1.ApiPolicyView\"> & {\n /**\n * Policy identifier (opaque ID).\n *\n * @generated from field: fixed64 id = 1;\n */\n id: bigint;\n\n /**\n * Human-readable policy name.\n *\n * @generated from field: string name = 2;\n */\n name: string;\n\n /**\n * Optional policy description for dashboards and audits.\n *\n * @generated from field: string description = 3;\n */\n description: string;\n\n /**\n * Allowed spot markets for this API key policy.\n *\n * @generated from field: repeated auth.v1.SpotMarketRule spot_markets = 4;\n */\n spotMarkets: SpotMarketRule[];\n\n /**\n * High-level actions enabled for this API key. Up to 64 unique explicit\n * actions may be returned.\n *\n * @generated from field: repeated auth.v1.PolicyAction actions = 6;\n */\n actions: PolicyAction[];\n\n /**\n * Market-level scope for spot markets. When ALL, spot_markets is returned\n * for display only and is not enforced.\n *\n * --- Template / lifecycle metadata ---\n *\n * @generated from field: auth.v1.MarketScope.Value spot_market_scope = 7;\n */\n spotMarketScope: MarketScope_Value;\n\n /**\n * When true, this policy is intended to be reused as a template across\n * multiple API keys. When false, it represents a single-key instance.\n *\n * @generated from field: bool is_template = 19;\n */\n isTemplate: boolean;\n\n /**\n * Optional source template this policy was copied from (opaque ID). This is\n * audit metadata only and does not imply live linkage.\n *\n * @generated from field: fixed64 source_template_id = 20;\n */\n sourceTemplateId: bigint;\n\n /**\n * Creation time in UTC.\n *\n * @generated from field: google.protobuf.Timestamp created_at = 21;\n */\n createdAt?: Timestamp | undefined;\n\n /**\n * Last update time in UTC.\n *\n * @generated from field: google.protobuf.Timestamp updated_at = 22;\n */\n updatedAt?: Timestamp | undefined;\n\n /**\n * Monotonic resource revision used for conditional updates.\n *\n * @generated from field: uint64 revision = 23;\n */\n revision: bigint;\n};\n\n/**\n * Describes the message auth.v1.ApiPolicyView.\n * Use `create(ApiPolicyViewSchema)` to create a new message.\n */\nexport const ApiPolicyViewSchema: GenMessage<ApiPolicyView> = /*@__PURE__*/\n messageDesc(file_auth_v1_policies, 16);\n\n/**\n * ListApiPoliciesRequest lists the finite set of API key policies visible in\n * the requested account scope. Results are sorted by ascending policy ID and\n * are not paginated.\n *\n * @generated from message auth.v1.ListApiPoliciesRequest\n */\nexport type ListApiPoliciesRequest = Message<\"auth.v1.ListApiPoliciesRequest\"> & {\n /**\n * Optional API key context for delegated administration. When omitted, only\n * policies owned by the caller's root account are returned.\n *\n * @generated from field: optional string key_id = 1;\n */\n keyId?: string | undefined;\n};\n\n/**\n * Describes the message auth.v1.ListApiPoliciesRequest.\n * Use `create(ListApiPoliciesRequestSchema)` to create a new message.\n */\nexport const ListApiPoliciesRequestSchema: GenMessage<ListApiPoliciesRequest> = /*@__PURE__*/\n messageDesc(file_auth_v1_policies, 17);\n\n/**\n * ListApiPoliciesResponse contains API key policy templates sorted by ascending\n * policy ID.\n *\n * @generated from message auth.v1.ListApiPoliciesResponse\n */\nexport type ListApiPoliciesResponse = Message<\"auth.v1.ListApiPoliciesResponse\"> & {\n /**\n * API key policy templates visible to the caller.\n *\n * @generated from field: repeated auth.v1.ApiPolicyView policies = 1;\n */\n policies: ApiPolicyView[];\n};\n\n/**\n * Describes the message auth.v1.ListApiPoliciesResponse.\n * Use `create(ListApiPoliciesResponseSchema)` to create a new message.\n */\nexport const ListApiPoliciesResponseSchema: GenMessage<ListApiPoliciesResponse> = /*@__PURE__*/\n messageDesc(file_auth_v1_policies, 18);\n\n/**\n * GetApiPolicyRequest fetches one API key policy template by ID.\n *\n * @generated from message auth.v1.GetApiPolicyRequest\n */\nexport type GetApiPolicyRequest = Message<\"auth.v1.GetApiPolicyRequest\"> & {\n /**\n * Policy identifier (opaque ID).\n *\n * @generated from field: fixed64 policy_id = 1;\n */\n policyId: bigint;\n\n /**\n * Optional API key context for delegated administration. When omitted, the\n * policy must be owned by the caller's root account.\n *\n * @generated from field: optional string key_id = 2;\n */\n keyId?: string | undefined;\n};\n\n/**\n * Describes the message auth.v1.GetApiPolicyRequest.\n * Use `create(GetApiPolicyRequestSchema)` to create a new message.\n */\nexport const GetApiPolicyRequestSchema: GenMessage<GetApiPolicyRequest> = /*@__PURE__*/\n messageDesc(file_auth_v1_policies, 19);\n\n/**\n * GetApiPolicyResponse returns the requested API key policy.\n *\n * @generated from message auth.v1.GetApiPolicyResponse\n */\nexport type GetApiPolicyResponse = Message<\"auth.v1.GetApiPolicyResponse\"> & {\n /**\n * Matching API key policy.\n *\n * @generated from field: auth.v1.ApiPolicyView policy = 1;\n */\n policy?: ApiPolicyView | undefined;\n};\n\n/**\n * Describes the message auth.v1.GetApiPolicyResponse.\n * Use `create(GetApiPolicyResponseSchema)` to create a new message.\n */\nexport const GetApiPolicyResponseSchema: GenMessage<GetApiPolicyResponse> = /*@__PURE__*/\n messageDesc(file_auth_v1_policies, 20);\n\n/**\n * ApiPolicySpec contains the mutable configuration of an API key policy.\n *\n * @generated from message auth.v1.ApiPolicySpec\n */\nexport type ApiPolicySpec = Message<\"auth.v1.ApiPolicySpec\"> & {\n /**\n * Human-readable policy name. Create requires a non-empty value; update\n * validates it after merging fields selected by update_mask.\n *\n * @generated from field: string name = 1;\n */\n name: string;\n\n /**\n * Optional policy description for dashboards and audits. Maximum 256 characters.\n *\n * @generated from field: string description = 2;\n */\n description: string;\n\n /**\n * Allowed spot markets for this API key policy.\n *\n * @generated from field: repeated auth.v1.SpotMarketRule spot_markets = 3;\n */\n spotMarkets: SpotMarketRule[];\n\n /**\n * Market-level scope for spot markets. When unspecified, defaults to ALL.\n *\n * @generated from field: auth.v1.MarketScope.Value spot_market_scope = 5;\n */\n spotMarketScope: MarketScope_Value;\n\n /**\n * High-level actions enabled for the API key policy. An empty list grants no\n * access. Up to 64 unique explicit actions are allowed.\n *\n * @generated from field: repeated auth.v1.PolicyAction actions = 7;\n */\n actions: PolicyAction[];\n\n /**\n * Whether this policy should be treated as a reusable template.\n *\n * @generated from field: bool is_template = 19;\n */\n isTemplate: boolean;\n};\n\n/**\n * Describes the message auth.v1.ApiPolicySpec.\n * Use `create(ApiPolicySpecSchema)` to create a new message.\n */\nexport const ApiPolicySpecSchema: GenMessage<ApiPolicySpec> = /*@__PURE__*/\n messageDesc(file_auth_v1_policies, 21);\n\n/**\n * CreateApiPolicyRequest defines a new API key policy template.\n *\n * @generated from message auth.v1.CreateApiPolicyRequest\n */\nexport type CreateApiPolicyRequest = Message<\"auth.v1.CreateApiPolicyRequest\"> & {\n /**\n * Complete mutable policy configuration.\n *\n * @generated from field: auth.v1.ApiPolicySpec policy = 1;\n */\n policy?: ApiPolicySpec | undefined;\n\n /**\n * Optional API key identifier to bind this newly-created policy to\n * atomically. When set, the caller must be allowed to manage the key and the\n * create+assign operation consumes a single fresh step-up proof.\n *\n * @generated from field: string assign_to_key_id = 2;\n */\n assignToKeyId: string;\n};\n\n/**\n * Describes the message auth.v1.CreateApiPolicyRequest.\n * Use `create(CreateApiPolicyRequestSchema)` to create a new message.\n */\nexport const CreateApiPolicyRequestSchema: GenMessage<CreateApiPolicyRequest> = /*@__PURE__*/\n messageDesc(file_auth_v1_policies, 22);\n\n/**\n * CreateApiPolicyResponse returns the created API key policy.\n *\n * @generated from message auth.v1.CreateApiPolicyResponse\n */\nexport type CreateApiPolicyResponse = Message<\"auth.v1.CreateApiPolicyResponse\"> & {\n /**\n * Created API key policy.\n *\n * @generated from field: auth.v1.ApiPolicyView policy = 1;\n */\n policy?: ApiPolicyView | undefined;\n};\n\n/**\n * Describes the message auth.v1.CreateApiPolicyResponse.\n * Use `create(CreateApiPolicyResponseSchema)` to create a new message.\n */\nexport const CreateApiPolicyResponseSchema: GenMessage<CreateApiPolicyResponse> = /*@__PURE__*/\n messageDesc(file_auth_v1_policies, 23);\n\n/**\n * UpdateApiPolicyRequest changes selected mutable fields on an existing API\n * key policy.\n *\n * @generated from message auth.v1.UpdateApiPolicyRequest\n */\nexport type UpdateApiPolicyRequest = Message<\"auth.v1.UpdateApiPolicyRequest\"> & {\n /**\n * Policy identifier (opaque ID).\n *\n * @generated from field: fixed64 policy_id = 1;\n */\n policyId: bigint;\n\n /**\n * Candidate values for fields selected by update_mask.\n *\n * @generated from field: auth.v1.ApiPolicySpec policy = 2;\n */\n policy?: ApiPolicySpec | undefined;\n\n /**\n * Mutable fields to apply. Paths are relative to policy. The mask is required,\n * must be non-empty, and cannot contain \"*\".\n *\n * @generated from field: google.protobuf.FieldMask update_mask = 3;\n */\n updateMask?: FieldMask | undefined;\n\n /**\n * Revision returned by the latest successful read. Stale revisions fail with\n * a conflict before no-op detection.\n *\n * @generated from field: uint64 expected_revision = 4;\n */\n expectedRevision: bigint;\n};\n\n/**\n * Describes the message auth.v1.UpdateApiPolicyRequest.\n * Use `create(UpdateApiPolicyRequestSchema)` to create a new message.\n */\nexport const UpdateApiPolicyRequestSchema: GenMessage<UpdateApiPolicyRequest> = /*@__PURE__*/\n messageDesc(file_auth_v1_policies, 24);\n\n/**\n * UpdateApiPolicyResponse returns the updated API key policy.\n *\n * @generated from message auth.v1.UpdateApiPolicyResponse\n */\nexport type UpdateApiPolicyResponse = Message<\"auth.v1.UpdateApiPolicyResponse\"> & {\n /**\n * Updated API key policy.\n *\n * @generated from field: auth.v1.ApiPolicyView policy = 1;\n */\n policy?: ApiPolicyView | undefined;\n};\n\n/**\n * Describes the message auth.v1.UpdateApiPolicyResponse.\n * Use `create(UpdateApiPolicyResponseSchema)` to create a new message.\n */\nexport const UpdateApiPolicyResponseSchema: GenMessage<UpdateApiPolicyResponse> = /*@__PURE__*/\n messageDesc(file_auth_v1_policies, 25);\n\n/**\n * DeleteApiPolicyRequest deletes an API key policy template when it is not in use.\n *\n * @generated from message auth.v1.DeleteApiPolicyRequest\n */\nexport type DeleteApiPolicyRequest = Message<\"auth.v1.DeleteApiPolicyRequest\"> & {\n /**\n * Policy identifier (opaque ID).\n *\n * @generated from field: fixed64 policy_id = 1;\n */\n policyId: bigint;\n};\n\n/**\n * Describes the message auth.v1.DeleteApiPolicyRequest.\n * Use `create(DeleteApiPolicyRequestSchema)` to create a new message.\n */\nexport const DeleteApiPolicyRequestSchema: GenMessage<DeleteApiPolicyRequest> = /*@__PURE__*/\n messageDesc(file_auth_v1_policies, 26);\n\n/**\n * DeleteApiPolicyResponse is empty when the delete succeeds.\n *\n * @generated from message auth.v1.DeleteApiPolicyResponse\n */\nexport type DeleteApiPolicyResponse = Message<\"auth.v1.DeleteApiPolicyResponse\"> & {\n};\n\n/**\n * Describes the message auth.v1.DeleteApiPolicyResponse.\n * Use `create(DeleteApiPolicyResponseSchema)` to create a new message.\n */\nexport const DeleteApiPolicyResponseSchema: GenMessage<DeleteApiPolicyResponse> = /*@__PURE__*/\n messageDesc(file_auth_v1_policies, 27);\n\n/**\n * SetApiKeyPolicyRequest attaches or clears a policy template on an API key.\n *\n * @generated from message auth.v1.SetApiKeyPolicyRequest\n */\nexport type SetApiKeyPolicyRequest = Message<\"auth.v1.SetApiKeyPolicyRequest\"> & {\n /**\n * Opaque API key identifier, formatted as \"ak_\" followed by 32 lowercase hex\n * characters.\n *\n * @generated from field: string key_id = 1;\n */\n keyId: string;\n\n /**\n * Policy template to attach (opaque ID). A value of 0 clears the binding.\n * An API key without an attached policy has no permissions.\n *\n * @generated from field: fixed64 policy_id = 2;\n */\n policyId: bigint;\n};\n\n/**\n * Describes the message auth.v1.SetApiKeyPolicyRequest.\n * Use `create(SetApiKeyPolicyRequestSchema)` to create a new message.\n */\nexport const SetApiKeyPolicyRequestSchema: GenMessage<SetApiKeyPolicyRequest> = /*@__PURE__*/\n messageDesc(file_auth_v1_policies, 28);\n\n/**\n * SetApiKeyPolicyResponse is empty when the policy binding succeeds.\n *\n * @generated from message auth.v1.SetApiKeyPolicyResponse\n */\nexport type SetApiKeyPolicyResponse = Message<\"auth.v1.SetApiKeyPolicyResponse\"> & {\n};\n\n/**\n * Describes the message auth.v1.SetApiKeyPolicyResponse.\n * Use `create(SetApiKeyPolicyResponseSchema)` to create a new message.\n */\nexport const SetApiKeyPolicyResponseSchema: GenMessage<SetApiKeyPolicyResponse> = /*@__PURE__*/\n messageDesc(file_auth_v1_policies, 29);\n\n/**\n * PolicyAction is a high-level permission that can be granted by a policy.\n * Write-style actions also grant the matching read visibility where needed by\n * the product experience.\n *\n * @generated from enum auth.v1.PolicyAction\n */\nexport enum PolicyAction {\n /**\n * No policy action selected. An empty API-key action list grants no access;\n * sub-account policies retain their mandatory read-only actions.\n *\n * @generated from enum value: UNSPECIFIED = 0;\n */\n UNSPECIFIED = 0,\n\n /**\n * Allow placing and modifying spot orders and triggers, including reading\n * spot orders and trades. Cancellation and pausing remain available as\n * safety actions.\n *\n * @generated from enum value: TRADE_SPOT = 1;\n */\n TRADE_SPOT = 1,\n\n /**\n * Allow internal transfers between sub-accounts or linked Polyester accounts,\n * including reading internal transfer history.\n *\n * @generated from enum value: INTERNAL_TRANSFER = 3;\n */\n INTERNAL_TRANSFER = 3,\n\n /**\n * Allow value to leave Trading through external withdrawals. Destination\n * authorization is enforced separately from this policy.\n *\n * @generated from enum value: EXTERNAL_WITHDRAW = 4;\n */\n EXTERNAL_WITHDRAW = 4,\n\n /**\n * Allow reading balances and equity for a sub-account or API key.\n *\n * @generated from enum value: READ_BALANCES = 5;\n */\n READ_BALANCES = 5,\n\n /**\n * Allow reading spot orders and trades (no write).\n *\n * @generated from enum value: READ_SPOT = 6;\n */\n READ_SPOT = 6,\n\n /**\n * Allow reading internal transfer history.\n *\n * @generated from enum value: READ_INTERNAL_TRANSFERS = 8;\n */\n READ_INTERNAL_TRANSFERS = 8,\n\n /**\n * Allow reading saved, recent, and whitelisted address-book destinations.\n *\n * @generated from enum value: READ_ADDRESS_BOOK = 11;\n */\n READ_ADDRESS_BOOK = 11,\n\n /**\n * Allow creating, updating, deleting, and copying saved destination entries,\n * including reading the address book.\n *\n * @generated from enum value: MANAGE_ADDRESS_BOOK = 12;\n */\n MANAGE_ADDRESS_BOOK = 12,\n}\n\n/**\n * Describes the enum auth.v1.PolicyAction.\n */\nexport const PolicyActionSchema: GenEnum<PolicyAction> = /*@__PURE__*/\n enumDesc(file_auth_v1_policies, 0);\n\n/**\n * PolicyService manages sub-account and API key policy templates and bindings.\n *\n * @generated from service auth.v1.PolicyService\n */\nexport const PolicyService: GenService<{\n /**\n * List sub-account policy templates available to the caller.\n *\n * @generated from rpc auth.v1.PolicyService.ListSubaccountPolicies\n */\n listSubaccountPolicies: {\n methodKind: \"unary\";\n input: typeof ListSubaccountPoliciesRequestSchema;\n output: typeof ListSubaccountPoliciesResponseSchema;\n },\n /**\n * Get a sub-account policy template by id.\n *\n * @generated from rpc auth.v1.PolicyService.GetSubaccountPolicy\n */\n getSubaccountPolicy: {\n methodKind: \"unary\";\n input: typeof GetSubaccountPolicyRequestSchema;\n output: typeof GetSubaccountPolicyResponseSchema;\n },\n /**\n * Create a new sub-account policy template (optionally attach to a sub-account).\n *\n * @generated from rpc auth.v1.PolicyService.CreateSubaccountPolicy\n */\n createSubaccountPolicy: {\n methodKind: \"unary\";\n input: typeof CreateSubaccountPolicyRequestSchema;\n output: typeof CreateSubaccountPolicyResponseSchema;\n },\n /**\n * Change selected fields on an existing sub-account policy template.\n *\n * @generated from rpc auth.v1.PolicyService.UpdateSubaccountPolicy\n */\n updateSubaccountPolicy: {\n methodKind: \"unary\";\n input: typeof UpdateSubaccountPolicyRequestSchema;\n output: typeof UpdateSubaccountPolicyResponseSchema;\n },\n /**\n * Delete a sub-account policy template.\n *\n * @generated from rpc auth.v1.PolicyService.DeleteSubaccountPolicy\n */\n deleteSubaccountPolicy: {\n methodKind: \"unary\";\n input: typeof DeleteSubaccountPolicyRequestSchema;\n output: typeof DeleteSubaccountPolicyResponseSchema;\n },\n /**\n * Attach or clear a sub-account policy for a sub-account.\n *\n * @generated from rpc auth.v1.PolicyService.SetSubaccountPolicy\n */\n setSubaccountPolicy: {\n methodKind: \"unary\";\n input: typeof SetSubaccountPolicyRequestSchema;\n output: typeof SetSubaccountPolicyResponseSchema;\n },\n /**\n * List API key policy templates available to the caller.\n *\n * @generated from rpc auth.v1.PolicyService.ListApiPolicies\n */\n listApiPolicies: {\n methodKind: \"unary\";\n input: typeof ListApiPoliciesRequestSchema;\n output: typeof ListApiPoliciesResponseSchema;\n },\n /**\n * Get an API key policy template by id.\n *\n * @generated from rpc auth.v1.PolicyService.GetApiPolicy\n */\n getApiPolicy: {\n methodKind: \"unary\";\n input: typeof GetApiPolicyRequestSchema;\n output: typeof GetApiPolicyResponseSchema;\n },\n /**\n * Create a new API key policy template.\n *\n * @generated from rpc auth.v1.PolicyService.CreateApiPolicy\n */\n createApiPolicy: {\n methodKind: \"unary\";\n input: typeof CreateApiPolicyRequestSchema;\n output: typeof CreateApiPolicyResponseSchema;\n },\n /**\n * Change selected fields on an existing API key policy template.\n *\n * @generated from rpc auth.v1.PolicyService.UpdateApiPolicy\n */\n updateApiPolicy: {\n methodKind: \"unary\";\n input: typeof UpdateApiPolicyRequestSchema;\n output: typeof UpdateApiPolicyResponseSchema;\n },\n /**\n * Delete an API key policy template.\n *\n * @generated from rpc auth.v1.PolicyService.DeleteApiPolicy\n */\n deleteApiPolicy: {\n methodKind: \"unary\";\n input: typeof DeleteApiPolicyRequestSchema;\n output: typeof DeleteApiPolicyResponseSchema;\n },\n /**\n * Attach or clear an API key policy for a key.\n *\n * @generated from rpc auth.v1.PolicyService.SetApiKeyPolicy\n */\n setApiKeyPolicy: {\n methodKind: \"unary\";\n input: typeof SetApiKeyPolicyRequestSchema;\n output: typeof SetApiKeyPolicyResponseSchema;\n },\n}> = /*@__PURE__*/\n serviceDesc(file_auth_v1_policies, 0);\n\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAcA,MAAa,wBACX,uBAAS,42PAA42P;CAAC;CAAiC;CAAgC;AAA0B,CAAC;;;;;AAcp9P,MAAa,oBACX,0BAAY,uBAAuB,CAAC;;;;;;;;AAStC,IAAY,oBAAL,yBAAA,mBAAA;;;;;;CAML,kBAAA,kBAAA,iBAAA,KAAA;;;;;;CAOA,kBAAA,kBAAA,SAAA,KAAA;;;;;;CAOA,kBAAA,kBAAA,eAAA,KAAA;;AACF,EAAA,CAAA,CAAA;;;;AAKA,MAAa,0BACX,uBAAS,uBAAuB,GAAG,CAAC;;;;;AAoBtC,MAAa,uBACX,0BAAY,uBAAuB,CAAC;;;;;AAgJtC,MAAa,6BACX,0BAAY,uBAAuB,CAAC;;;;;AAuBtC,MAAa,sCACX,0BAAY,uBAAuB,CAAC;;;;;AAqBtC,MAAa,uCACX,0BAAY,uBAAuB,CAAC;;;;;AA4BtC,MAAa,mCACX,0BAAY,uBAAuB,CAAC;;;;;AAoBtC,MAAa,oCACX,0BAAY,uBAAuB,CAAC;;;;;AAkGtC,MAAa,6BACX,0BAAY,uBAAuB,CAAC;;;;;AA4BtC,MAAa,sCACX,0BAAY,uBAAuB,CAAC;;;;;AAoBtC,MAAa,uCACX,0BAAY,uBAAuB,CAAC;;;;;AA4CtC,MAAa,sCACX,0BAAY,uBAAuB,EAAE;;;;;AAoBvC,MAAa,uCACX,0BAAY,uBAAuB,EAAE;;;;;AAqBvC,MAAa,sCACX,0BAAY,uBAAuB,EAAE;;;;;AAcvC,MAAa,uCACX,0BAAY,uBAAuB,EAAE;;;;;AA6BvC,MAAa,mCACX,0BAAY,uBAAuB,EAAE;;;;;AAcvC,MAAa,oCACX,0BAAY,uBAAuB,EAAE;;;;;AAiGvC,MAAa,sBACX,0BAAY,uBAAuB,EAAE;;;;;AAuBvC,MAAa,+BACX,0BAAY,uBAAuB,EAAE;;;;;AAqBvC,MAAa,gCACX,0BAAY,uBAAuB,EAAE;;;;;AA4BvC,MAAa,4BACX,0BAAY,uBAAuB,EAAE;;;;;AAoBvC,MAAa,6BACX,0BAAY,uBAAuB,EAAE;;;;;AAyDvC,MAAa,sBACX,0BAAY,uBAAuB,EAAE;;;;;AA6BvC,MAAa,+BACX,0BAAY,uBAAuB,EAAE;;;;;AAoBvC,MAAa,gCACX,0BAAY,uBAAuB,EAAE;;;;;AA4CvC,MAAa,+BACX,0BAAY,uBAAuB,EAAE;;;;;AAoBvC,MAAa,gCACX,0BAAY,uBAAuB,EAAE;;;;;AAoBvC,MAAa,+BACX,0BAAY,uBAAuB,EAAE;;;;;AAcvC,MAAa,gCACX,0BAAY,uBAAuB,EAAE;;;;;AA6BvC,MAAa,+BACX,0BAAY,uBAAuB,EAAE;;;;;AAcvC,MAAa,gCACX,0BAAY,uBAAuB,EAAE;;;;;;;;AASvC,IAAY,eAAL,yBAAA,cAAA;;;;;;;CAOL,aAAA,aAAA,iBAAA,KAAA;;;;;;;;CASA,aAAA,aAAA,gBAAA,KAAA;;;;;;;CAQA,aAAA,aAAA,uBAAA,KAAA;;;;;;;CAQA,aAAA,aAAA,uBAAA,KAAA;;;;;;CAOA,aAAA,aAAA,mBAAA,KAAA;;;;;;CAOA,aAAA,aAAA,eAAA,KAAA;;;;;;CAOA,aAAA,aAAA,6BAAA,KAAA;;;;;;CAOA,aAAA,aAAA,uBAAA,MAAA;;;;;;;CAQA,aAAA,aAAA,yBAAA,MAAA;;AACF,EAAA,CAAA,CAAA;;;;AAKA,MAAa,qBACX,uBAAS,uBAAuB,CAAC;;;;;;AAOnC,MAAa,gBA0HX,0BAAY,uBAAuB,CAAC"}
1
+ {"version":3,"file":"policies_pb.js","names":[],"sources":["../../../../src/gen/auth/v1/policies_pb.ts"],"sourcesContent":["// @generated by protoc-gen-es v2.13.0 with parameter \"target=ts,import_extension=js\"\n// @generated from file auth/v1/policies.proto (package auth.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 { FieldMask, Timestamp } from \"@bufbuild/protobuf/wkt\";\nimport { file_google_protobuf_field_mask, 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 auth/v1/policies.proto.\n */\nexport const file_auth_v1_policies: GenFile = /*@__PURE__*/\n fileDesc(\"ChZhdXRoL3YxL3BvbGljaWVzLnByb3RvEgdhdXRoLnYxIj8KC01hcmtldFNjb3BlIjAKBVZhbHVlEg8KC1VOU1BFQ0lGSUVEEAASBwoDQUxMEAESDQoJQUxMT1dMSVNUEAIiKQoSU3BvdE1hcmtldFNlbGVjdG9yEhMKCXN5bWJvbF9pZBgBIAEoDUIAIiMKDlNwb3RNYXJrZXRSdWxlEhEKCXN5bWJvbF9pZBgBIAEoDSLvBgoUU3ViYWNjb3VudFBvbGljeVZpZXcSCgoCaWQYASABKAYSDAoEbmFtZRgCIAEoCRITCgtkZXNjcmlwdGlvbhgDIAEoCRItCgxzcG90X21hcmtldHMYBCADKAsyFy5hdXRoLnYxLlNwb3RNYXJrZXRSdWxlEjcKEXNwb3RfbWFya2V0X3Njb3BlGAYgASgOMhouYXV0aC52MS5NYXJrZXRTY29wZS5WYWx1ZUIAEigKB2FjdGlvbnMYCCADKA4yFS5hdXRoLnYxLlBvbGljeUFjdGlvbkIAEhMKC2lzX3RlbXBsYXRlGAogASgIEhoKEnNvdXJjZV90ZW1wbGF0ZV9pZBgLIAEoBhIaChJtYXhfb3JkZXJfbm90aW9uYWwYDSABKAQSFwoPbWF4X29wZW5fb3JkZXJzGA4gASgNEhYKDnRyYWRpbmdfaGFsdGVkGBcgASgIEg4KBmxvY2tlZBgbIAEoCBItCglyZXZpZXdfYXQYHCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCmV4cGlyZXNfYXQYHSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCmNyZWF0ZWRfYXQYFCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYFSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhAKCHJldmlzaW9uGB4gASgESgQIBRAGSgQIBxAISgQIDBANSgQIDxAUSgQIFhAXSgQIGBAbUgxwZXJwX21hcmtldHNSEXBlcnBfbWFya2V0X3Njb3BlUhNnbG9iYWxfbm90aW9uYWxfY2FwUhJtYXhfb3Blbl9wb3NpdGlvbnNSFmdsb2JhbF9wZXJwX2xldmVyYWdlX3hSIWRhaWx5X2ludGVybmFsX3RyYW5zZmVyX291dF9saW1pdFIUZGFpbHlfd2l0aGRyYXdfbGltaXRSG2ludGVybmFsX3RyYW5zZmVyc19vd25fb25seVIaZW5mb3JjZV93aXRoZHJhd193aGl0ZWxpc3RSEGxpcXVpZGF0aW9uX29ubHlSEGRhaWx5X2xvc3NfbGltaXRSG2ludHJhZGF5X2RyYXdkb3duX2xpbWl0X2JwcyJPCh1MaXN0U3ViYWNjb3VudFBvbGljaWVzUmVxdWVzdBIcCg1zdWJhY2NvdW50X2lkGAEgASgGQgBIAIgBAUIQCg5fc3ViYWNjb3VudF9pZCJRCh5MaXN0U3ViYWNjb3VudFBvbGljaWVzUmVzcG9uc2USLwoIcG9saWNpZXMYASADKAsyHS5hdXRoLnYxLlN1YmFjY291bnRQb2xpY3lWaWV3ImEKGkdldFN1YmFjY291bnRQb2xpY3lSZXF1ZXN0EhMKCXBvbGljeV9pZBgBIAEoBkIAEhwKDXN1YmFjY291bnRfaWQYAiABKAZCAEgAiAEBQhAKDl9zdWJhY2NvdW50X2lkIkwKG0dldFN1YmFjY291bnRQb2xpY3lSZXNwb25zZRItCgZwb2xpY3kYASABKAsyHS5hdXRoLnYxLlN1YmFjY291bnRQb2xpY3lWaWV3IsQFChRTdWJhY2NvdW50UG9saWN5U3BlYxIOCgRuYW1lGAEgASgJQgASFQoLZGVzY3JpcHRpb24YAiABKAlCABIxCgxzcG90X21hcmtldHMYAyADKAsyGy5hdXRoLnYxLlNwb3RNYXJrZXRTZWxlY3RvchI3ChFzcG90X21hcmtldF9zY29wZRgFIAEoDjIaLmF1dGgudjEuTWFya2V0U2NvcGUuVmFsdWVCABIoCgdhY3Rpb25zGAcgAygOMhUuYXV0aC52MS5Qb2xpY3lBY3Rpb25CABIaChJtYXhfb3JkZXJfbm90aW9uYWwYDSABKAQSFwoPbWF4X29wZW5fb3JkZXJzGA4gASgNEhYKDnRyYWRpbmdfaGFsdGVkGBUgASgIEg4KBmxvY2tlZBgZIAEoCBItCglyZXZpZXdfYXQYGiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCmV4cGlyZXNfYXQYGyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wOgBKBAgEEAVKBAgGEAdKBAgMEA1KBAgPEBVKBAgWEBlSDHBlcnBfbWFya2V0c1IRcGVycF9tYXJrZXRfc2NvcGVSE2dsb2JhbF9ub3Rpb25hbF9jYXBSEm1heF9vcGVuX3Bvc2l0aW9uc1IWZ2xvYmFsX3BlcnBfbGV2ZXJhZ2VfeFIhZGFpbHlfaW50ZXJuYWxfdHJhbnNmZXJfb3V0X2xpbWl0UhRkYWlseV93aXRoZHJhd19saW1pdFIbaW50ZXJuYWxfdHJhbnNmZXJzX293bl9vbmx5UhplbmZvcmNlX3dpdGhkcmF3X3doaXRlbGlzdFIQbGlxdWlkYXRpb25fb25seVIQZGFpbHlfbG9zc19saW1pdFIbaW50cmFkYXlfZHJhd2Rvd25fbGltaXRfYnBzIoABCh1DcmVhdGVTdWJhY2NvdW50UG9saWN5UmVxdWVzdBIvCgZwb2xpY3kYASABKAsyHS5hdXRoLnYxLlN1YmFjY291bnRQb2xpY3lTcGVjQgASHAoNc3ViYWNjb3VudF9pZBgCIAEoBkIASACIAQFCEAoOX3N1YmFjY291bnRfaWQiTwoeQ3JlYXRlU3ViYWNjb3VudFBvbGljeVJlc3BvbnNlEi0KBnBvbGljeRgBIAEoCzIdLmF1dGgudjEuU3ViYWNjb3VudFBvbGljeVZpZXcitQEKHVVwZGF0ZVN1YmFjY291bnRQb2xpY3lSZXF1ZXN0EhMKCXBvbGljeV9pZBgBIAEoBkIAEi8KBnBvbGljeRgCIAEoCzIdLmF1dGgudjEuU3ViYWNjb3VudFBvbGljeVNwZWNCABIxCgt1cGRhdGVfbWFzaxgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE1hc2tCABIbChFleHBlY3RlZF9yZXZpc2lvbhgEIAEoBEIAIk8KHlVwZGF0ZVN1YmFjY291bnRQb2xpY3lSZXNwb25zZRItCgZwb2xpY3kYASABKAsyHS5hdXRoLnYxLlN1YmFjY291bnRQb2xpY3lWaWV3IjQKHURlbGV0ZVN1YmFjY291bnRQb2xpY3lSZXF1ZXN0EhMKCXBvbGljeV9pZBgBIAEoBkIAIiAKHkRlbGV0ZVN1YmFjY291bnRQb2xpY3lSZXNwb25zZSJIChpTZXRTdWJhY2NvdW50UG9saWN5UmVxdWVzdBIXCg1zdWJhY2NvdW50X2lkGAEgASgGQgASEQoJcG9saWN5X2lkGAIgASgGIh0KG1NldFN1YmFjY291bnRQb2xpY3lSZXNwb25zZSL/AwoNQXBpUG9saWN5VmlldxIKCgJpZBgBIAEoBhIMCgRuYW1lGAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJEi0KDHNwb3RfbWFya2V0cxgEIAMoCzIXLmF1dGgudjEuU3BvdE1hcmtldFJ1bGUSKAoHYWN0aW9ucxgGIAMoDjIVLmF1dGgudjEuUG9saWN5QWN0aW9uQgASNwoRc3BvdF9tYXJrZXRfc2NvcGUYByABKA4yGi5hdXRoLnYxLk1hcmtldFNjb3BlLlZhbHVlQgASEwoLaXNfdGVtcGxhdGUYEyABKAgSGgoSc291cmNlX3RlbXBsYXRlX2lkGBQgASgGEi4KCmNyZWF0ZWRfYXQYFSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYFiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhAKCHJldmlzaW9uGBcgASgESgQIBRAGSgQICBAJSgQIDRAOSgQIERASSgQIEhATUgxwZXJwX21hcmtldHNSEXBlcnBfbWFya2V0X3Njb3BlUiFkYWlseV9pbnRlcm5hbF90cmFuc2Zlcl9vdXRfbGltaXRSFGRhaWx5X3dpdGhkcmF3X2xpbWl0UhJtYXhfb3JkZXJfbm90aW9uYWwiOgoWTGlzdEFwaVBvbGljaWVzUmVxdWVzdBIVCgZrZXlfaWQYASABKAlCAEgAiAEBQgkKB19rZXlfaWQiQwoXTGlzdEFwaVBvbGljaWVzUmVzcG9uc2USKAoIcG9saWNpZXMYASADKAsyFi5hdXRoLnYxLkFwaVBvbGljeVZpZXciTAoTR2V0QXBpUG9saWN5UmVxdWVzdBITCglwb2xpY3lfaWQYASABKAZCABIVCgZrZXlfaWQYAiABKAlCAEgAiAEBQgkKB19rZXlfaWQiPgoUR2V0QXBpUG9saWN5UmVzcG9uc2USJgoGcG9saWN5GAEgASgLMhYuYXV0aC52MS5BcGlQb2xpY3lWaWV3Iu8CCg1BcGlQb2xpY3lTcGVjEg4KBG5hbWUYASABKAlCABIVCgtkZXNjcmlwdGlvbhgCIAEoCUIAEjEKDHNwb3RfbWFya2V0cxgDIAMoCzIbLmF1dGgudjEuU3BvdE1hcmtldFNlbGVjdG9yEjcKEXNwb3RfbWFya2V0X3Njb3BlGAUgASgOMhouYXV0aC52MS5NYXJrZXRTY29wZS5WYWx1ZUIAEigKB2FjdGlvbnMYByADKA4yFS5hdXRoLnYxLlBvbGljeUFjdGlvbkIAEhMKC2lzX3RlbXBsYXRlGBMgASgIOgBKBAgEEAVKBAgGEAdKBAgNEA5KBAgREBJKBAgSEBNSDHBlcnBfbWFya2V0c1IRcGVycF9tYXJrZXRfc2NvcGVSIWRhaWx5X2ludGVybmFsX3RyYW5zZmVyX291dF9saW1pdFIUZGFpbHlfd2l0aGRyYXdfbGltaXRSEm1heF9vcmRlcl9ub3Rpb25hbCJeChZDcmVhdGVBcGlQb2xpY3lSZXF1ZXN0EigKBnBvbGljeRgBIAEoCzIWLmF1dGgudjEuQXBpUG9saWN5U3BlY0IAEhoKEGFzc2lnbl90b19rZXlfaWQYAiABKAlCACJBChdDcmVhdGVBcGlQb2xpY3lSZXNwb25zZRImCgZwb2xpY3kYASABKAsyFi5hdXRoLnYxLkFwaVBvbGljeVZpZXcipwEKFlVwZGF0ZUFwaVBvbGljeVJlcXVlc3QSEwoJcG9saWN5X2lkGAEgASgGQgASKAoGcG9saWN5GAIgASgLMhYuYXV0aC52MS5BcGlQb2xpY3lTcGVjQgASMQoLdXBkYXRlX21hc2sYAyABKAsyGi5nb29nbGUucHJvdG9idWYuRmllbGRNYXNrQgASGwoRZXhwZWN0ZWRfcmV2aXNpb24YBCABKARCACJBChdVcGRhdGVBcGlQb2xpY3lSZXNwb25zZRImCgZwb2xpY3kYASABKAsyFi5hdXRoLnYxLkFwaVBvbGljeVZpZXciLQoWRGVsZXRlQXBpUG9saWN5UmVxdWVzdBITCglwb2xpY3lfaWQYASABKAZCACIZChdEZWxldGVBcGlQb2xpY3lSZXNwb25zZSI9ChZTZXRBcGlLZXlQb2xpY3lSZXF1ZXN0EhAKBmtleV9pZBgBIAEoCUIAEhEKCXBvbGljeV9pZBgCIAEoBiIZChdTZXRBcGlLZXlQb2xpY3lSZXNwb25zZSrOAgoMUG9saWN5QWN0aW9uEg8KC1VOU1BFQ0lGSUVEEAASDgoKVFJBREVfU1BPVBABEhUKEUlOVEVSTkFMX1RSQU5TRkVSEAMSFQoRRVhURVJOQUxfV0lUSERSQVcQBBIRCg1SRUFEX0JBTEFOQ0VTEAUSDQoJUkVBRF9TUE9UEAYSGwoXUkVBRF9JTlRFUk5BTF9UUkFOU0ZFUlMQCBIVChFSRUFEX0FERFJFU1NfQk9PSxALEhcKE01BTkFHRV9BRERSRVNTX0JPT0sQDCIECAIQAiIECAcQByIECA0QDSIECAkQCSoKVFJBREVfUEVSUCoJUkVBRF9QRVJQKhpSRUFEX1RSQU5TRkVSX0RFU1RJTkFUSU9OUyoaTUFOQUdFX1RSQU5TRkVSX1dISVRFTElTVFMqGVJFQURfRVhURVJOQUxfV0lUSERSQVdBTFMykgkKDVBvbGljeVNlcnZpY2USawoWTGlzdFN1YmFjY291bnRQb2xpY2llcxImLmF1dGgudjEuTGlzdFN1YmFjY291bnRQb2xpY2llc1JlcXVlc3QaJy5hdXRoLnYxLkxpc3RTdWJhY2NvdW50UG9saWNpZXNSZXNwb25zZSIAEmIKE0dldFN1YmFjY291bnRQb2xpY3kSIy5hdXRoLnYxLkdldFN1YmFjY291bnRQb2xpY3lSZXF1ZXN0GiQuYXV0aC52MS5HZXRTdWJhY2NvdW50UG9saWN5UmVzcG9uc2UiABJrChZDcmVhdGVTdWJhY2NvdW50UG9saWN5EiYuYXV0aC52MS5DcmVhdGVTdWJhY2NvdW50UG9saWN5UmVxdWVzdBonLmF1dGgudjEuQ3JlYXRlU3ViYWNjb3VudFBvbGljeVJlc3BvbnNlIgASawoWVXBkYXRlU3ViYWNjb3VudFBvbGljeRImLmF1dGgudjEuVXBkYXRlU3ViYWNjb3VudFBvbGljeVJlcXVlc3QaJy5hdXRoLnYxLlVwZGF0ZVN1YmFjY291bnRQb2xpY3lSZXNwb25zZSIAEmsKFkRlbGV0ZVN1YmFjY291bnRQb2xpY3kSJi5hdXRoLnYxLkRlbGV0ZVN1YmFjY291bnRQb2xpY3lSZXF1ZXN0GicuYXV0aC52MS5EZWxldGVTdWJhY2NvdW50UG9saWN5UmVzcG9uc2UiABJiChNTZXRTdWJhY2NvdW50UG9saWN5EiMuYXV0aC52MS5TZXRTdWJhY2NvdW50UG9saWN5UmVxdWVzdBokLmF1dGgudjEuU2V0U3ViYWNjb3VudFBvbGljeVJlc3BvbnNlIgASVgoPTGlzdEFwaVBvbGljaWVzEh8uYXV0aC52MS5MaXN0QXBpUG9saWNpZXNSZXF1ZXN0GiAuYXV0aC52MS5MaXN0QXBpUG9saWNpZXNSZXNwb25zZSIAEk0KDEdldEFwaVBvbGljeRIcLmF1dGgudjEuR2V0QXBpUG9saWN5UmVxdWVzdBodLmF1dGgudjEuR2V0QXBpUG9saWN5UmVzcG9uc2UiABJWCg9DcmVhdGVBcGlQb2xpY3kSHy5hdXRoLnYxLkNyZWF0ZUFwaVBvbGljeVJlcXVlc3QaIC5hdXRoLnYxLkNyZWF0ZUFwaVBvbGljeVJlc3BvbnNlIgASVgoPVXBkYXRlQXBpUG9saWN5Eh8uYXV0aC52MS5VcGRhdGVBcGlQb2xpY3lSZXF1ZXN0GiAuYXV0aC52MS5VcGRhdGVBcGlQb2xpY3lSZXNwb25zZSIAElYKD0RlbGV0ZUFwaVBvbGljeRIfLmF1dGgudjEuRGVsZXRlQXBpUG9saWN5UmVxdWVzdBogLmF1dGgudjEuRGVsZXRlQXBpUG9saWN5UmVzcG9uc2UiABJWCg9TZXRBcGlLZXlQb2xpY3kSHy5hdXRoLnYxLlNldEFwaUtleVBvbGljeVJlcXVlc3QaIC5hdXRoLnYxLlNldEFwaUtleVBvbGljeVJlc3BvbnNlIgBCPFo6Z2l0aHViLmNvbS9GYWJyaWMtTGFicy9wb2x5ZXN0ZXItc2RrLWdvL2dlbi9hdXRoL3YxO2F1dGh2MWIGcHJvdG8z\", [file_google_protobuf_field_mask, file_google_protobuf_timestamp, file_polyester_api_options]);\n\n/**\n * MarketScope describes how a policy applies to spot markets.\n *\n * @generated from message auth.v1.MarketScope\n */\nexport type MarketScope = Message<\"auth.v1.MarketScope\"> & {\n};\n\n/**\n * Describes the message auth.v1.MarketScope.\n * Use `create(MarketScopeSchema)` to create a new message.\n */\nexport const MarketScopeSchema: GenMessage<MarketScope> = /*@__PURE__*/\n messageDesc(file_auth_v1_policies, 0);\n\n/**\n * Value is the market-level scope:\n * - ALL: no market-level restriction; new listings are automatically allowed.\n * - ALLOWLIST: only the listed markets are allowed.\n *\n * @generated from enum auth.v1.MarketScope.Value\n */\nexport enum MarketScope_Value {\n /**\n * No scope selected. Create and update requests treat this as ALL.\n *\n * @generated from enum value: UNSPECIFIED = 0;\n */\n UNSPECIFIED = 0,\n\n /**\n * Allow all current and future markets for this policy.\n *\n * @generated from enum value: ALL = 1;\n */\n ALL = 1,\n\n /**\n * Allow only the markets listed on this policy.\n *\n * @generated from enum value: ALLOWLIST = 2;\n */\n ALLOWLIST = 2,\n}\n\n/**\n * Describes the enum auth.v1.MarketScope.Value.\n */\nexport const MarketScope_ValueSchema: GenEnum<MarketScope_Value> = /*@__PURE__*/\n enumDesc(file_auth_v1_policies, 0, 0);\n\n/**\n * SpotMarketSelector identifies an allowed spot market in policy mutations.\n *\n * @generated from message auth.v1.SpotMarketSelector\n */\nexport type SpotMarketSelector = Message<\"auth.v1.SpotMarketSelector\"> & {\n /**\n * Stable numeric pair ID from GetSpotConfig.\n *\n * @generated from field: uint32 symbol_id = 1;\n */\n symbolId: number;\n};\n\n/**\n * Describes the message auth.v1.SpotMarketSelector.\n * Use `create(SpotMarketSelectorSchema)` to create a new message.\n */\nexport const SpotMarketSelectorSchema: GenMessage<SpotMarketSelector> = /*@__PURE__*/\n messageDesc(file_auth_v1_policies, 1);\n\n/**\n * SpotMarketRule describes an allowed spot market in policy views.\n *\n * @generated from message auth.v1.SpotMarketRule\n */\nexport type SpotMarketRule = Message<\"auth.v1.SpotMarketRule\"> & {\n /**\n * Stable numeric pair ID.\n *\n * @generated from field: uint32 symbol_id = 1;\n */\n symbolId: number;\n};\n\n/**\n * Describes the message auth.v1.SpotMarketRule.\n * Use `create(SpotMarketRuleSchema)` to create a new message.\n */\nexport const SpotMarketRuleSchema: GenMessage<SpotMarketRule> = /*@__PURE__*/\n messageDesc(file_auth_v1_policies, 2);\n\n/**\n * SubaccountPolicyView is the public view of a sub-account policy.\n *\n * @generated from message auth.v1.SubaccountPolicyView\n */\nexport type SubaccountPolicyView = Message<\"auth.v1.SubaccountPolicyView\"> & {\n /**\n * Policy identifier (opaque ID).\n *\n * @generated from field: fixed64 id = 1;\n */\n id: bigint;\n\n /**\n * Human-readable policy name.\n *\n * @generated from field: string name = 2;\n */\n name: string;\n\n /**\n * Optional policy description for dashboards and audits.\n *\n * @generated from field: string description = 3;\n */\n description: string;\n\n /**\n * Allowed spot markets for this sub-account.\n *\n * @generated from field: repeated auth.v1.SpotMarketRule spot_markets = 4;\n */\n spotMarkets: SpotMarketRule[];\n\n /**\n * Market-level scope for spot markets. When ALL, spot_markets is returned\n * for display only and is not enforced.\n *\n * @generated from field: auth.v1.MarketScope.Value spot_market_scope = 6;\n */\n spotMarketScope: MarketScope_Value;\n\n /**\n * Effective high-level actions enabled for the sub-account. Mandatory\n * read-only actions are always included.\n *\n * @generated from field: repeated auth.v1.PolicyAction actions = 8;\n */\n actions: PolicyAction[];\n\n /**\n * True if this policy is a reusable template; false if it is a\n * per-sub-account instance.\n *\n * @generated from field: bool is_template = 10;\n */\n isTemplate: boolean;\n\n /**\n * Optional source template this policy was copied from (opaque ID). This is\n * audit metadata only and does not imply live linkage.\n *\n * @generated from field: fixed64 source_template_id = 11;\n */\n sourceTemplateId: bigint;\n\n /**\n * Maximum notional size allowed for any single order on this sub-account,\n * expressed in canonical quote microunits (one unit is 0.000001 USDT).\n * A value of 0 means \"no explicit cap\".\n *\n * @generated from field: uint64 max_order_notional = 13;\n */\n maxOrderNotional: bigint;\n\n /**\n * Maximum number of resting orders allowed on this sub-account at any time.\n * A value of 0 means \"no explicit cap\".\n *\n * @generated from field: uint32 max_open_orders = 14;\n */\n maxOpenOrders: number;\n\n /**\n * When true, new orders and exposure-increasing order or trigger changes are\n * rejected regardless of other settings. Existing orders and triggers may\n * still be canceled or paused.\n *\n * @generated from field: bool trading_halted = 23;\n */\n tradingHalted: boolean;\n\n /**\n * When true, this policy is write-protected and requires an elevated approval\n * flow to modify it.\n *\n * @generated from field: bool locked = 27;\n */\n locked: boolean;\n\n /**\n * Optional review time in UTC. This is governance metadata and does not\n * automatically disable the policy.\n *\n * @generated from field: google.protobuf.Timestamp review_at = 28;\n */\n reviewAt?: Timestamp | undefined;\n\n /**\n * Optional expiry time in UTC. This is governance metadata and does not\n * automatically disable the policy.\n *\n * @generated from field: google.protobuf.Timestamp expires_at = 29;\n */\n expiresAt?: Timestamp | undefined;\n\n /**\n * Creation time in UTC.\n *\n * @generated from field: google.protobuf.Timestamp created_at = 20;\n */\n createdAt?: Timestamp | undefined;\n\n /**\n * Last update time in UTC.\n *\n * @generated from field: google.protobuf.Timestamp updated_at = 21;\n */\n updatedAt?: Timestamp | undefined;\n\n /**\n * Monotonic resource revision used for conditional updates.\n *\n * @generated from field: uint64 revision = 30;\n */\n revision: bigint;\n};\n\n/**\n * Describes the message auth.v1.SubaccountPolicyView.\n * Use `create(SubaccountPolicyViewSchema)` to create a new message.\n */\nexport const SubaccountPolicyViewSchema: GenMessage<SubaccountPolicyView> = /*@__PURE__*/\n messageDesc(file_auth_v1_policies, 3);\n\n/**\n * ListSubaccountPoliciesRequest lists the finite set of sub-account policies\n * visible in the requested account scope. Results are sorted by ascending\n * policy ID and are not paginated.\n *\n * @generated from message auth.v1.ListSubaccountPoliciesRequest\n */\nexport type ListSubaccountPoliciesRequest = Message<\"auth.v1.ListSubaccountPoliciesRequest\"> & {\n /**\n * Optional sub-account context for delegated administration. When omitted,\n * only policies owned by the caller's root account are returned.\n *\n * @generated from field: optional fixed64 subaccount_id = 1;\n */\n subaccountId?: bigint | undefined;\n};\n\n/**\n * Describes the message auth.v1.ListSubaccountPoliciesRequest.\n * Use `create(ListSubaccountPoliciesRequestSchema)` to create a new message.\n */\nexport const ListSubaccountPoliciesRequestSchema: GenMessage<ListSubaccountPoliciesRequest> = /*@__PURE__*/\n messageDesc(file_auth_v1_policies, 4);\n\n/**\n * ListSubaccountPoliciesResponse contains sub-account policy templates sorted\n * by ascending policy ID.\n *\n * @generated from message auth.v1.ListSubaccountPoliciesResponse\n */\nexport type ListSubaccountPoliciesResponse = Message<\"auth.v1.ListSubaccountPoliciesResponse\"> & {\n /**\n * Sub-account policy templates visible to the caller.\n *\n * @generated from field: repeated auth.v1.SubaccountPolicyView policies = 1;\n */\n policies: SubaccountPolicyView[];\n};\n\n/**\n * Describes the message auth.v1.ListSubaccountPoliciesResponse.\n * Use `create(ListSubaccountPoliciesResponseSchema)` to create a new message.\n */\nexport const ListSubaccountPoliciesResponseSchema: GenMessage<ListSubaccountPoliciesResponse> = /*@__PURE__*/\n messageDesc(file_auth_v1_policies, 5);\n\n/**\n * GetSubaccountPolicyRequest fetches one sub-account policy template by ID.\n *\n * @generated from message auth.v1.GetSubaccountPolicyRequest\n */\nexport type GetSubaccountPolicyRequest = Message<\"auth.v1.GetSubaccountPolicyRequest\"> & {\n /**\n * Policy identifier (opaque ID).\n *\n * @generated from field: fixed64 policy_id = 1;\n */\n policyId: bigint;\n\n /**\n * Optional sub-account context for delegated administration. When omitted,\n * the policy must be owned by the caller's root account.\n *\n * @generated from field: optional fixed64 subaccount_id = 2;\n */\n subaccountId?: bigint | undefined;\n};\n\n/**\n * Describes the message auth.v1.GetSubaccountPolicyRequest.\n * Use `create(GetSubaccountPolicyRequestSchema)` to create a new message.\n */\nexport const GetSubaccountPolicyRequestSchema: GenMessage<GetSubaccountPolicyRequest> = /*@__PURE__*/\n messageDesc(file_auth_v1_policies, 6);\n\n/**\n * GetSubaccountPolicyResponse returns the requested sub-account policy.\n *\n * @generated from message auth.v1.GetSubaccountPolicyResponse\n */\nexport type GetSubaccountPolicyResponse = Message<\"auth.v1.GetSubaccountPolicyResponse\"> & {\n /**\n * Matching sub-account policy.\n *\n * @generated from field: auth.v1.SubaccountPolicyView policy = 1;\n */\n policy?: SubaccountPolicyView | undefined;\n};\n\n/**\n * Describes the message auth.v1.GetSubaccountPolicyResponse.\n * Use `create(GetSubaccountPolicyResponseSchema)` to create a new message.\n */\nexport const GetSubaccountPolicyResponseSchema: GenMessage<GetSubaccountPolicyResponse> = /*@__PURE__*/\n messageDesc(file_auth_v1_policies, 7);\n\n/**\n * SubaccountPolicySpec contains the mutable configuration of a sub-account policy.\n *\n * @generated from message auth.v1.SubaccountPolicySpec\n */\nexport type SubaccountPolicySpec = Message<\"auth.v1.SubaccountPolicySpec\"> & {\n /**\n * Human-readable policy name. Create requires a non-empty value; update\n * validates it after merging fields selected by update_mask.\n *\n * @generated from field: string name = 1;\n */\n name: string;\n\n /**\n * Optional policy description for dashboards and audits. Maximum 256 characters.\n *\n * @generated from field: string description = 2;\n */\n description: string;\n\n /**\n * Allowed spot markets for this policy.\n *\n * @generated from field: repeated auth.v1.SpotMarketSelector spot_markets = 3;\n */\n spotMarkets: SpotMarketSelector[];\n\n /**\n * Market-level scope for spot markets. When unspecified, defaults to ALL.\n *\n * @generated from field: auth.v1.MarketScope.Value spot_market_scope = 5;\n */\n spotMarketScope: MarketScope_Value;\n\n /**\n * High-level actions enabled for the sub-account policy. Mandatory read-only\n * actions are included when omitted. Up to 64 unique explicit actions are\n * allowed.\n *\n * @generated from field: repeated auth.v1.PolicyAction actions = 7;\n */\n actions: PolicyAction[];\n\n /**\n * Maximum notional size for any single order on this sub-account, expressed\n * in canonical quote microunits (one unit is 0.000001 USDT). A value of 0\n * means no explicit cap.\n *\n * @generated from field: uint64 max_order_notional = 13;\n */\n maxOrderNotional: bigint;\n\n /**\n * Maximum number of resting orders allowed on this sub-account at any time.\n * A value of 0 means no explicit cap.\n *\n * @generated from field: uint32 max_open_orders = 14;\n */\n maxOpenOrders: number;\n\n /**\n * When true, new orders and exposure-increasing order or trigger changes are\n * rejected regardless of other settings. Existing orders and triggers may\n * still be canceled or paused.\n *\n * @generated from field: bool trading_halted = 21;\n */\n tradingHalted: boolean;\n\n /**\n * When true, the policy is write-protected and requires an elevated mutation path.\n *\n * @generated from field: bool locked = 25;\n */\n locked: boolean;\n\n /**\n * Optional review time in UTC. This does not automatically disable the policy.\n *\n * @generated from field: google.protobuf.Timestamp review_at = 26;\n */\n reviewAt?: Timestamp | undefined;\n\n /**\n * Optional expiry time in UTC. This does not automatically disable the policy.\n *\n * @generated from field: google.protobuf.Timestamp expires_at = 27;\n */\n expiresAt?: Timestamp | undefined;\n};\n\n/**\n * Describes the message auth.v1.SubaccountPolicySpec.\n * Use `create(SubaccountPolicySpecSchema)` to create a new message.\n */\nexport const SubaccountPolicySpecSchema: GenMessage<SubaccountPolicySpec> = /*@__PURE__*/\n messageDesc(file_auth_v1_policies, 8);\n\n/**\n * CreateSubaccountPolicyRequest defines a new sub-account policy template, with\n * an optional attach step for one target sub-account.\n *\n * @generated from message auth.v1.CreateSubaccountPolicyRequest\n */\nexport type CreateSubaccountPolicyRequest = Message<\"auth.v1.CreateSubaccountPolicyRequest\"> & {\n /**\n * Complete mutable policy configuration.\n *\n * @generated from field: auth.v1.SubaccountPolicySpec policy = 1;\n */\n policy?: SubaccountPolicySpec | undefined;\n\n /**\n * Optional target sub-account to attach atomically after creation.\n *\n * @generated from field: optional fixed64 subaccount_id = 2;\n */\n subaccountId?: bigint | undefined;\n};\n\n/**\n * Describes the message auth.v1.CreateSubaccountPolicyRequest.\n * Use `create(CreateSubaccountPolicyRequestSchema)` to create a new message.\n */\nexport const CreateSubaccountPolicyRequestSchema: GenMessage<CreateSubaccountPolicyRequest> = /*@__PURE__*/\n messageDesc(file_auth_v1_policies, 9);\n\n/**\n * CreateSubaccountPolicyResponse returns the created sub-account policy.\n *\n * @generated from message auth.v1.CreateSubaccountPolicyResponse\n */\nexport type CreateSubaccountPolicyResponse = Message<\"auth.v1.CreateSubaccountPolicyResponse\"> & {\n /**\n * Created sub-account policy.\n *\n * @generated from field: auth.v1.SubaccountPolicyView policy = 1;\n */\n policy?: SubaccountPolicyView | undefined;\n};\n\n/**\n * Describes the message auth.v1.CreateSubaccountPolicyResponse.\n * Use `create(CreateSubaccountPolicyResponseSchema)` to create a new message.\n */\nexport const CreateSubaccountPolicyResponseSchema: GenMessage<CreateSubaccountPolicyResponse> = /*@__PURE__*/\n messageDesc(file_auth_v1_policies, 10);\n\n/**\n * UpdateSubaccountPolicyRequest changes selected mutable fields on an existing\n * sub-account policy.\n *\n * @generated from message auth.v1.UpdateSubaccountPolicyRequest\n */\nexport type UpdateSubaccountPolicyRequest = Message<\"auth.v1.UpdateSubaccountPolicyRequest\"> & {\n /**\n * Policy identifier (opaque ID).\n *\n * @generated from field: fixed64 policy_id = 1;\n */\n policyId: bigint;\n\n /**\n * Candidate values for fields selected by update_mask.\n *\n * @generated from field: auth.v1.SubaccountPolicySpec policy = 2;\n */\n policy?: SubaccountPolicySpec | undefined;\n\n /**\n * Mutable fields to apply. Paths are relative to policy. The mask is required,\n * must be non-empty, and cannot contain \"*\".\n *\n * @generated from field: google.protobuf.FieldMask update_mask = 3;\n */\n updateMask?: FieldMask | undefined;\n\n /**\n * Revision returned by the latest successful read. Stale revisions fail with\n * a conflict before no-op detection.\n *\n * @generated from field: uint64 expected_revision = 4;\n */\n expectedRevision: bigint;\n};\n\n/**\n * Describes the message auth.v1.UpdateSubaccountPolicyRequest.\n * Use `create(UpdateSubaccountPolicyRequestSchema)` to create a new message.\n */\nexport const UpdateSubaccountPolicyRequestSchema: GenMessage<UpdateSubaccountPolicyRequest> = /*@__PURE__*/\n messageDesc(file_auth_v1_policies, 11);\n\n/**\n * UpdateSubaccountPolicyResponse returns the updated sub-account policy.\n *\n * @generated from message auth.v1.UpdateSubaccountPolicyResponse\n */\nexport type UpdateSubaccountPolicyResponse = Message<\"auth.v1.UpdateSubaccountPolicyResponse\"> & {\n /**\n * Updated sub-account policy.\n *\n * @generated from field: auth.v1.SubaccountPolicyView policy = 1;\n */\n policy?: SubaccountPolicyView | undefined;\n};\n\n/**\n * Describes the message auth.v1.UpdateSubaccountPolicyResponse.\n * Use `create(UpdateSubaccountPolicyResponseSchema)` to create a new message.\n */\nexport const UpdateSubaccountPolicyResponseSchema: GenMessage<UpdateSubaccountPolicyResponse> = /*@__PURE__*/\n messageDesc(file_auth_v1_policies, 12);\n\n/**\n * DeleteSubaccountPolicyRequest deletes a sub-account policy template when it\n * is not in use.\n *\n * @generated from message auth.v1.DeleteSubaccountPolicyRequest\n */\nexport type DeleteSubaccountPolicyRequest = Message<\"auth.v1.DeleteSubaccountPolicyRequest\"> & {\n /**\n * Policy identifier (opaque ID).\n *\n * @generated from field: fixed64 policy_id = 1;\n */\n policyId: bigint;\n};\n\n/**\n * Describes the message auth.v1.DeleteSubaccountPolicyRequest.\n * Use `create(DeleteSubaccountPolicyRequestSchema)` to create a new message.\n */\nexport const DeleteSubaccountPolicyRequestSchema: GenMessage<DeleteSubaccountPolicyRequest> = /*@__PURE__*/\n messageDesc(file_auth_v1_policies, 13);\n\n/**\n * DeleteSubaccountPolicyResponse is empty when the delete succeeds.\n *\n * @generated from message auth.v1.DeleteSubaccountPolicyResponse\n */\nexport type DeleteSubaccountPolicyResponse = Message<\"auth.v1.DeleteSubaccountPolicyResponse\"> & {\n};\n\n/**\n * Describes the message auth.v1.DeleteSubaccountPolicyResponse.\n * Use `create(DeleteSubaccountPolicyResponseSchema)` to create a new message.\n */\nexport const DeleteSubaccountPolicyResponseSchema: GenMessage<DeleteSubaccountPolicyResponse> = /*@__PURE__*/\n messageDesc(file_auth_v1_policies, 14);\n\n/**\n * SetSubaccountPolicyRequest attaches or clears a policy template on a\n * sub-account.\n *\n * @generated from message auth.v1.SetSubaccountPolicyRequest\n */\nexport type SetSubaccountPolicyRequest = Message<\"auth.v1.SetSubaccountPolicyRequest\"> & {\n /**\n * Sub-account identifier (opaque ID).\n *\n * @generated from field: fixed64 subaccount_id = 1;\n */\n subaccountId: bigint;\n\n /**\n * Policy template to attach (opaque ID). A value of 0 clears the explicit\n * binding and restores the system Read Only policy.\n *\n * @generated from field: fixed64 policy_id = 2;\n */\n policyId: bigint;\n};\n\n/**\n * Describes the message auth.v1.SetSubaccountPolicyRequest.\n * Use `create(SetSubaccountPolicyRequestSchema)` to create a new message.\n */\nexport const SetSubaccountPolicyRequestSchema: GenMessage<SetSubaccountPolicyRequest> = /*@__PURE__*/\n messageDesc(file_auth_v1_policies, 15);\n\n/**\n * SetSubaccountPolicyResponse is empty when the policy binding succeeds.\n *\n * @generated from message auth.v1.SetSubaccountPolicyResponse\n */\nexport type SetSubaccountPolicyResponse = Message<\"auth.v1.SetSubaccountPolicyResponse\"> & {\n};\n\n/**\n * Describes the message auth.v1.SetSubaccountPolicyResponse.\n * Use `create(SetSubaccountPolicyResponseSchema)` to create a new message.\n */\nexport const SetSubaccountPolicyResponseSchema: GenMessage<SetSubaccountPolicyResponse> = /*@__PURE__*/\n messageDesc(file_auth_v1_policies, 16);\n\n/**\n * ApiPolicyView is the public view of an API key policy template. Its action\n * and spot-market floor cannot exceed an attached sub-account policy.\n *\n * @generated from message auth.v1.ApiPolicyView\n */\nexport type ApiPolicyView = Message<\"auth.v1.ApiPolicyView\"> & {\n /**\n * Policy identifier (opaque ID).\n *\n * @generated from field: fixed64 id = 1;\n */\n id: bigint;\n\n /**\n * Human-readable policy name.\n *\n * @generated from field: string name = 2;\n */\n name: string;\n\n /**\n * Optional policy description for dashboards and audits.\n *\n * @generated from field: string description = 3;\n */\n description: string;\n\n /**\n * Allowed spot markets for this API key policy.\n *\n * @generated from field: repeated auth.v1.SpotMarketRule spot_markets = 4;\n */\n spotMarkets: SpotMarketRule[];\n\n /**\n * High-level actions enabled for this API key. Up to 64 unique explicit\n * actions may be returned.\n *\n * @generated from field: repeated auth.v1.PolicyAction actions = 6;\n */\n actions: PolicyAction[];\n\n /**\n * Market-level scope for spot markets. When ALL, spot_markets is returned\n * for display only and is not enforced.\n *\n * --- Template / lifecycle metadata ---\n *\n * @generated from field: auth.v1.MarketScope.Value spot_market_scope = 7;\n */\n spotMarketScope: MarketScope_Value;\n\n /**\n * When true, this policy is intended to be reused as a template across\n * multiple API keys. When false, it represents a single-key instance.\n *\n * @generated from field: bool is_template = 19;\n */\n isTemplate: boolean;\n\n /**\n * Optional source template this policy was copied from (opaque ID). This is\n * audit metadata only and does not imply live linkage.\n *\n * @generated from field: fixed64 source_template_id = 20;\n */\n sourceTemplateId: bigint;\n\n /**\n * Creation time in UTC.\n *\n * @generated from field: google.protobuf.Timestamp created_at = 21;\n */\n createdAt?: Timestamp | undefined;\n\n /**\n * Last update time in UTC.\n *\n * @generated from field: google.protobuf.Timestamp updated_at = 22;\n */\n updatedAt?: Timestamp | undefined;\n\n /**\n * Monotonic resource revision used for conditional updates.\n *\n * @generated from field: uint64 revision = 23;\n */\n revision: bigint;\n};\n\n/**\n * Describes the message auth.v1.ApiPolicyView.\n * Use `create(ApiPolicyViewSchema)` to create a new message.\n */\nexport const ApiPolicyViewSchema: GenMessage<ApiPolicyView> = /*@__PURE__*/\n messageDesc(file_auth_v1_policies, 17);\n\n/**\n * ListApiPoliciesRequest lists the finite set of API key policies visible in\n * the requested account scope. Results are sorted by ascending policy ID and\n * are not paginated.\n *\n * @generated from message auth.v1.ListApiPoliciesRequest\n */\nexport type ListApiPoliciesRequest = Message<\"auth.v1.ListApiPoliciesRequest\"> & {\n /**\n * Optional API key context for delegated administration. When omitted, only\n * policies owned by the caller's root account are returned.\n *\n * @generated from field: optional string key_id = 1;\n */\n keyId?: string | undefined;\n};\n\n/**\n * Describes the message auth.v1.ListApiPoliciesRequest.\n * Use `create(ListApiPoliciesRequestSchema)` to create a new message.\n */\nexport const ListApiPoliciesRequestSchema: GenMessage<ListApiPoliciesRequest> = /*@__PURE__*/\n messageDesc(file_auth_v1_policies, 18);\n\n/**\n * ListApiPoliciesResponse contains API key policy templates sorted by ascending\n * policy ID.\n *\n * @generated from message auth.v1.ListApiPoliciesResponse\n */\nexport type ListApiPoliciesResponse = Message<\"auth.v1.ListApiPoliciesResponse\"> & {\n /**\n * API key policy templates visible to the caller.\n *\n * @generated from field: repeated auth.v1.ApiPolicyView policies = 1;\n */\n policies: ApiPolicyView[];\n};\n\n/**\n * Describes the message auth.v1.ListApiPoliciesResponse.\n * Use `create(ListApiPoliciesResponseSchema)` to create a new message.\n */\nexport const ListApiPoliciesResponseSchema: GenMessage<ListApiPoliciesResponse> = /*@__PURE__*/\n messageDesc(file_auth_v1_policies, 19);\n\n/**\n * GetApiPolicyRequest fetches one API key policy template by ID.\n *\n * @generated from message auth.v1.GetApiPolicyRequest\n */\nexport type GetApiPolicyRequest = Message<\"auth.v1.GetApiPolicyRequest\"> & {\n /**\n * Policy identifier (opaque ID).\n *\n * @generated from field: fixed64 policy_id = 1;\n */\n policyId: bigint;\n\n /**\n * Optional API key context for delegated administration. When omitted, the\n * policy must be owned by the caller's root account.\n *\n * @generated from field: optional string key_id = 2;\n */\n keyId?: string | undefined;\n};\n\n/**\n * Describes the message auth.v1.GetApiPolicyRequest.\n * Use `create(GetApiPolicyRequestSchema)` to create a new message.\n */\nexport const GetApiPolicyRequestSchema: GenMessage<GetApiPolicyRequest> = /*@__PURE__*/\n messageDesc(file_auth_v1_policies, 20);\n\n/**\n * GetApiPolicyResponse returns the requested API key policy.\n *\n * @generated from message auth.v1.GetApiPolicyResponse\n */\nexport type GetApiPolicyResponse = Message<\"auth.v1.GetApiPolicyResponse\"> & {\n /**\n * Matching API key policy.\n *\n * @generated from field: auth.v1.ApiPolicyView policy = 1;\n */\n policy?: ApiPolicyView | undefined;\n};\n\n/**\n * Describes the message auth.v1.GetApiPolicyResponse.\n * Use `create(GetApiPolicyResponseSchema)` to create a new message.\n */\nexport const GetApiPolicyResponseSchema: GenMessage<GetApiPolicyResponse> = /*@__PURE__*/\n messageDesc(file_auth_v1_policies, 21);\n\n/**\n * ApiPolicySpec contains the mutable configuration of an API key policy.\n *\n * @generated from message auth.v1.ApiPolicySpec\n */\nexport type ApiPolicySpec = Message<\"auth.v1.ApiPolicySpec\"> & {\n /**\n * Human-readable policy name. Create requires a non-empty value; update\n * validates it after merging fields selected by update_mask.\n *\n * @generated from field: string name = 1;\n */\n name: string;\n\n /**\n * Optional policy description for dashboards and audits. Maximum 256 characters.\n *\n * @generated from field: string description = 2;\n */\n description: string;\n\n /**\n * Allowed spot markets for this API key policy.\n *\n * @generated from field: repeated auth.v1.SpotMarketSelector spot_markets = 3;\n */\n spotMarkets: SpotMarketSelector[];\n\n /**\n * Market-level scope for spot markets. When unspecified, defaults to ALL.\n *\n * @generated from field: auth.v1.MarketScope.Value spot_market_scope = 5;\n */\n spotMarketScope: MarketScope_Value;\n\n /**\n * High-level actions enabled for the API key policy. An empty list grants no\n * access. Up to 64 unique explicit actions are allowed.\n *\n * @generated from field: repeated auth.v1.PolicyAction actions = 7;\n */\n actions: PolicyAction[];\n\n /**\n * Whether this policy should be treated as a reusable template.\n *\n * @generated from field: bool is_template = 19;\n */\n isTemplate: boolean;\n};\n\n/**\n * Describes the message auth.v1.ApiPolicySpec.\n * Use `create(ApiPolicySpecSchema)` to create a new message.\n */\nexport const ApiPolicySpecSchema: GenMessage<ApiPolicySpec> = /*@__PURE__*/\n messageDesc(file_auth_v1_policies, 22);\n\n/**\n * CreateApiPolicyRequest defines a new API key policy template.\n *\n * @generated from message auth.v1.CreateApiPolicyRequest\n */\nexport type CreateApiPolicyRequest = Message<\"auth.v1.CreateApiPolicyRequest\"> & {\n /**\n * Complete mutable policy configuration.\n *\n * @generated from field: auth.v1.ApiPolicySpec policy = 1;\n */\n policy?: ApiPolicySpec | undefined;\n\n /**\n * Optional API key identifier to bind this newly-created policy to\n * atomically. When set, the caller must be allowed to manage the key and the\n * create+assign operation consumes a single fresh step-up proof.\n *\n * @generated from field: string assign_to_key_id = 2;\n */\n assignToKeyId: string;\n};\n\n/**\n * Describes the message auth.v1.CreateApiPolicyRequest.\n * Use `create(CreateApiPolicyRequestSchema)` to create a new message.\n */\nexport const CreateApiPolicyRequestSchema: GenMessage<CreateApiPolicyRequest> = /*@__PURE__*/\n messageDesc(file_auth_v1_policies, 23);\n\n/**\n * CreateApiPolicyResponse returns the created API key policy.\n *\n * @generated from message auth.v1.CreateApiPolicyResponse\n */\nexport type CreateApiPolicyResponse = Message<\"auth.v1.CreateApiPolicyResponse\"> & {\n /**\n * Created API key policy.\n *\n * @generated from field: auth.v1.ApiPolicyView policy = 1;\n */\n policy?: ApiPolicyView | undefined;\n};\n\n/**\n * Describes the message auth.v1.CreateApiPolicyResponse.\n * Use `create(CreateApiPolicyResponseSchema)` to create a new message.\n */\nexport const CreateApiPolicyResponseSchema: GenMessage<CreateApiPolicyResponse> = /*@__PURE__*/\n messageDesc(file_auth_v1_policies, 24);\n\n/**\n * UpdateApiPolicyRequest changes selected mutable fields on an existing API\n * key policy.\n *\n * @generated from message auth.v1.UpdateApiPolicyRequest\n */\nexport type UpdateApiPolicyRequest = Message<\"auth.v1.UpdateApiPolicyRequest\"> & {\n /**\n * Policy identifier (opaque ID).\n *\n * @generated from field: fixed64 policy_id = 1;\n */\n policyId: bigint;\n\n /**\n * Candidate values for fields selected by update_mask.\n *\n * @generated from field: auth.v1.ApiPolicySpec policy = 2;\n */\n policy?: ApiPolicySpec | undefined;\n\n /**\n * Mutable fields to apply. Paths are relative to policy. The mask is required,\n * must be non-empty, and cannot contain \"*\".\n *\n * @generated from field: google.protobuf.FieldMask update_mask = 3;\n */\n updateMask?: FieldMask | undefined;\n\n /**\n * Revision returned by the latest successful read. Stale revisions fail with\n * a conflict before no-op detection.\n *\n * @generated from field: uint64 expected_revision = 4;\n */\n expectedRevision: bigint;\n};\n\n/**\n * Describes the message auth.v1.UpdateApiPolicyRequest.\n * Use `create(UpdateApiPolicyRequestSchema)` to create a new message.\n */\nexport const UpdateApiPolicyRequestSchema: GenMessage<UpdateApiPolicyRequest> = /*@__PURE__*/\n messageDesc(file_auth_v1_policies, 25);\n\n/**\n * UpdateApiPolicyResponse returns the updated API key policy.\n *\n * @generated from message auth.v1.UpdateApiPolicyResponse\n */\nexport type UpdateApiPolicyResponse = Message<\"auth.v1.UpdateApiPolicyResponse\"> & {\n /**\n * Updated API key policy.\n *\n * @generated from field: auth.v1.ApiPolicyView policy = 1;\n */\n policy?: ApiPolicyView | undefined;\n};\n\n/**\n * Describes the message auth.v1.UpdateApiPolicyResponse.\n * Use `create(UpdateApiPolicyResponseSchema)` to create a new message.\n */\nexport const UpdateApiPolicyResponseSchema: GenMessage<UpdateApiPolicyResponse> = /*@__PURE__*/\n messageDesc(file_auth_v1_policies, 26);\n\n/**\n * DeleteApiPolicyRequest deletes an API key policy template when it is not in use.\n *\n * @generated from message auth.v1.DeleteApiPolicyRequest\n */\nexport type DeleteApiPolicyRequest = Message<\"auth.v1.DeleteApiPolicyRequest\"> & {\n /**\n * Policy identifier (opaque ID).\n *\n * @generated from field: fixed64 policy_id = 1;\n */\n policyId: bigint;\n};\n\n/**\n * Describes the message auth.v1.DeleteApiPolicyRequest.\n * Use `create(DeleteApiPolicyRequestSchema)` to create a new message.\n */\nexport const DeleteApiPolicyRequestSchema: GenMessage<DeleteApiPolicyRequest> = /*@__PURE__*/\n messageDesc(file_auth_v1_policies, 27);\n\n/**\n * DeleteApiPolicyResponse is empty when the delete succeeds.\n *\n * @generated from message auth.v1.DeleteApiPolicyResponse\n */\nexport type DeleteApiPolicyResponse = Message<\"auth.v1.DeleteApiPolicyResponse\"> & {\n};\n\n/**\n * Describes the message auth.v1.DeleteApiPolicyResponse.\n * Use `create(DeleteApiPolicyResponseSchema)` to create a new message.\n */\nexport const DeleteApiPolicyResponseSchema: GenMessage<DeleteApiPolicyResponse> = /*@__PURE__*/\n messageDesc(file_auth_v1_policies, 28);\n\n/**\n * SetApiKeyPolicyRequest attaches or clears a policy template on an API key.\n *\n * @generated from message auth.v1.SetApiKeyPolicyRequest\n */\nexport type SetApiKeyPolicyRequest = Message<\"auth.v1.SetApiKeyPolicyRequest\"> & {\n /**\n * Opaque API key identifier, formatted as \"ak_\" followed by 32 lowercase hex\n * characters.\n *\n * @generated from field: string key_id = 1;\n */\n keyId: string;\n\n /**\n * Policy template to attach (opaque ID). A value of 0 clears the binding.\n * An API key without an attached policy has no permissions.\n *\n * @generated from field: fixed64 policy_id = 2;\n */\n policyId: bigint;\n};\n\n/**\n * Describes the message auth.v1.SetApiKeyPolicyRequest.\n * Use `create(SetApiKeyPolicyRequestSchema)` to create a new message.\n */\nexport const SetApiKeyPolicyRequestSchema: GenMessage<SetApiKeyPolicyRequest> = /*@__PURE__*/\n messageDesc(file_auth_v1_policies, 29);\n\n/**\n * SetApiKeyPolicyResponse is empty when the policy binding succeeds.\n *\n * @generated from message auth.v1.SetApiKeyPolicyResponse\n */\nexport type SetApiKeyPolicyResponse = Message<\"auth.v1.SetApiKeyPolicyResponse\"> & {\n};\n\n/**\n * Describes the message auth.v1.SetApiKeyPolicyResponse.\n * Use `create(SetApiKeyPolicyResponseSchema)` to create a new message.\n */\nexport const SetApiKeyPolicyResponseSchema: GenMessage<SetApiKeyPolicyResponse> = /*@__PURE__*/\n messageDesc(file_auth_v1_policies, 30);\n\n/**\n * PolicyAction is a high-level permission that can be granted by a policy.\n * Write-style actions also grant the matching read visibility where needed by\n * the product experience.\n *\n * @generated from enum auth.v1.PolicyAction\n */\nexport enum PolicyAction {\n /**\n * No policy action selected. An empty API-key action list grants no access;\n * sub-account policies retain their mandatory read-only actions.\n *\n * @generated from enum value: UNSPECIFIED = 0;\n */\n UNSPECIFIED = 0,\n\n /**\n * Allow placing and modifying spot orders and triggers, including reading\n * spot orders and trades. Cancellation and pausing remain available as\n * safety actions.\n *\n * @generated from enum value: TRADE_SPOT = 1;\n */\n TRADE_SPOT = 1,\n\n /**\n * Allow internal transfers between sub-accounts or linked Polyester accounts,\n * including reading internal transfer history.\n *\n * @generated from enum value: INTERNAL_TRANSFER = 3;\n */\n INTERNAL_TRANSFER = 3,\n\n /**\n * Allow value to leave Trading through external withdrawals. Destination\n * authorization is enforced separately from this policy.\n *\n * @generated from enum value: EXTERNAL_WITHDRAW = 4;\n */\n EXTERNAL_WITHDRAW = 4,\n\n /**\n * Allow reading balances and equity for a sub-account or API key.\n *\n * @generated from enum value: READ_BALANCES = 5;\n */\n READ_BALANCES = 5,\n\n /**\n * Allow reading spot orders and trades (no write).\n *\n * @generated from enum value: READ_SPOT = 6;\n */\n READ_SPOT = 6,\n\n /**\n * Allow reading internal transfer history.\n *\n * @generated from enum value: READ_INTERNAL_TRANSFERS = 8;\n */\n READ_INTERNAL_TRANSFERS = 8,\n\n /**\n * Allow reading saved, recent, and whitelisted address-book destinations.\n *\n * @generated from enum value: READ_ADDRESS_BOOK = 11;\n */\n READ_ADDRESS_BOOK = 11,\n\n /**\n * Allow creating, updating, deleting, and copying saved destination entries,\n * including reading the address book.\n *\n * @generated from enum value: MANAGE_ADDRESS_BOOK = 12;\n */\n MANAGE_ADDRESS_BOOK = 12,\n}\n\n/**\n * Describes the enum auth.v1.PolicyAction.\n */\nexport const PolicyActionSchema: GenEnum<PolicyAction> = /*@__PURE__*/\n enumDesc(file_auth_v1_policies, 0);\n\n/**\n * PolicyService manages sub-account and API key policy templates and bindings.\n *\n * @generated from service auth.v1.PolicyService\n */\nexport const PolicyService: GenService<{\n /**\n * List sub-account policy templates available to the caller.\n *\n * @generated from rpc auth.v1.PolicyService.ListSubaccountPolicies\n */\n listSubaccountPolicies: {\n methodKind: \"unary\";\n input: typeof ListSubaccountPoliciesRequestSchema;\n output: typeof ListSubaccountPoliciesResponseSchema;\n },\n /**\n * Get a sub-account policy template by id.\n *\n * @generated from rpc auth.v1.PolicyService.GetSubaccountPolicy\n */\n getSubaccountPolicy: {\n methodKind: \"unary\";\n input: typeof GetSubaccountPolicyRequestSchema;\n output: typeof GetSubaccountPolicyResponseSchema;\n },\n /**\n * Create a new sub-account policy template (optionally attach to a sub-account).\n *\n * @generated from rpc auth.v1.PolicyService.CreateSubaccountPolicy\n */\n createSubaccountPolicy: {\n methodKind: \"unary\";\n input: typeof CreateSubaccountPolicyRequestSchema;\n output: typeof CreateSubaccountPolicyResponseSchema;\n },\n /**\n * Change selected fields on an existing sub-account policy template.\n *\n * @generated from rpc auth.v1.PolicyService.UpdateSubaccountPolicy\n */\n updateSubaccountPolicy: {\n methodKind: \"unary\";\n input: typeof UpdateSubaccountPolicyRequestSchema;\n output: typeof UpdateSubaccountPolicyResponseSchema;\n },\n /**\n * Delete a sub-account policy template.\n *\n * @generated from rpc auth.v1.PolicyService.DeleteSubaccountPolicy\n */\n deleteSubaccountPolicy: {\n methodKind: \"unary\";\n input: typeof DeleteSubaccountPolicyRequestSchema;\n output: typeof DeleteSubaccountPolicyResponseSchema;\n },\n /**\n * Attach or clear a sub-account policy for a sub-account.\n *\n * @generated from rpc auth.v1.PolicyService.SetSubaccountPolicy\n */\n setSubaccountPolicy: {\n methodKind: \"unary\";\n input: typeof SetSubaccountPolicyRequestSchema;\n output: typeof SetSubaccountPolicyResponseSchema;\n },\n /**\n * List API key policy templates available to the caller.\n *\n * @generated from rpc auth.v1.PolicyService.ListApiPolicies\n */\n listApiPolicies: {\n methodKind: \"unary\";\n input: typeof ListApiPoliciesRequestSchema;\n output: typeof ListApiPoliciesResponseSchema;\n },\n /**\n * Get an API key policy template by id.\n *\n * @generated from rpc auth.v1.PolicyService.GetApiPolicy\n */\n getApiPolicy: {\n methodKind: \"unary\";\n input: typeof GetApiPolicyRequestSchema;\n output: typeof GetApiPolicyResponseSchema;\n },\n /**\n * Create a new API key policy template.\n *\n * @generated from rpc auth.v1.PolicyService.CreateApiPolicy\n */\n createApiPolicy: {\n methodKind: \"unary\";\n input: typeof CreateApiPolicyRequestSchema;\n output: typeof CreateApiPolicyResponseSchema;\n },\n /**\n * Change selected fields on an existing API key policy template.\n *\n * @generated from rpc auth.v1.PolicyService.UpdateApiPolicy\n */\n updateApiPolicy: {\n methodKind: \"unary\";\n input: typeof UpdateApiPolicyRequestSchema;\n output: typeof UpdateApiPolicyResponseSchema;\n },\n /**\n * Delete an API key policy template.\n *\n * @generated from rpc auth.v1.PolicyService.DeleteApiPolicy\n */\n deleteApiPolicy: {\n methodKind: \"unary\";\n input: typeof DeleteApiPolicyRequestSchema;\n output: typeof DeleteApiPolicyResponseSchema;\n },\n /**\n * Attach or clear an API key policy for a key.\n *\n * @generated from rpc auth.v1.PolicyService.SetApiKeyPolicy\n */\n setApiKeyPolicy: {\n methodKind: \"unary\";\n input: typeof SetApiKeyPolicyRequestSchema;\n output: typeof SetApiKeyPolicyResponseSchema;\n },\n}> = /*@__PURE__*/\n serviceDesc(file_auth_v1_policies, 0);\n\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAcA,MAAa,wBACX,uBAAS,g7PAAg7P;CAAC;CAAiC;CAAgC;AAA0B,CAAC;;;;;AAcxhQ,MAAa,oBACX,0BAAY,uBAAuB,CAAC;;;;;;;;AAStC,IAAY,oBAAL,yBAAA,mBAAA;;;;;;CAML,kBAAA,kBAAA,iBAAA,KAAA;;;;;;CAOA,kBAAA,kBAAA,SAAA,KAAA;;;;;;CAOA,kBAAA,kBAAA,eAAA,KAAA;;AACF,EAAA,CAAA,CAAA;;;;AAKA,MAAa,0BACX,uBAAS,uBAAuB,GAAG,CAAC;;;;;AAoBtC,MAAa,2BACX,0BAAY,uBAAuB,CAAC;;;;;AAoBtC,MAAa,uBACX,0BAAY,uBAAuB,CAAC;;;;;AAgJtC,MAAa,6BACX,0BAAY,uBAAuB,CAAC;;;;;AAuBtC,MAAa,sCACX,0BAAY,uBAAuB,CAAC;;;;;AAqBtC,MAAa,uCACX,0BAAY,uBAAuB,CAAC;;;;;AA4BtC,MAAa,mCACX,0BAAY,uBAAuB,CAAC;;;;;AAoBtC,MAAa,oCACX,0BAAY,uBAAuB,CAAC;;;;;AAkGtC,MAAa,6BACX,0BAAY,uBAAuB,CAAC;;;;;AA4BtC,MAAa,sCACX,0BAAY,uBAAuB,CAAC;;;;;AAoBtC,MAAa,uCACX,0BAAY,uBAAuB,EAAE;;;;;AA4CvC,MAAa,sCACX,0BAAY,uBAAuB,EAAE;;;;;AAoBvC,MAAa,uCACX,0BAAY,uBAAuB,EAAE;;;;;AAqBvC,MAAa,sCACX,0BAAY,uBAAuB,EAAE;;;;;AAcvC,MAAa,uCACX,0BAAY,uBAAuB,EAAE;;;;;AA6BvC,MAAa,mCACX,0BAAY,uBAAuB,EAAE;;;;;AAcvC,MAAa,oCACX,0BAAY,uBAAuB,EAAE;;;;;AAiGvC,MAAa,sBACX,0BAAY,uBAAuB,EAAE;;;;;AAuBvC,MAAa,+BACX,0BAAY,uBAAuB,EAAE;;;;;AAqBvC,MAAa,gCACX,0BAAY,uBAAuB,EAAE;;;;;AA4BvC,MAAa,4BACX,0BAAY,uBAAuB,EAAE;;;;;AAoBvC,MAAa,6BACX,0BAAY,uBAAuB,EAAE;;;;;AAyDvC,MAAa,sBACX,0BAAY,uBAAuB,EAAE;;;;;AA6BvC,MAAa,+BACX,0BAAY,uBAAuB,EAAE;;;;;AAoBvC,MAAa,gCACX,0BAAY,uBAAuB,EAAE;;;;;AA4CvC,MAAa,+BACX,0BAAY,uBAAuB,EAAE;;;;;AAoBvC,MAAa,gCACX,0BAAY,uBAAuB,EAAE;;;;;AAoBvC,MAAa,+BACX,0BAAY,uBAAuB,EAAE;;;;;AAcvC,MAAa,gCACX,0BAAY,uBAAuB,EAAE;;;;;AA6BvC,MAAa,+BACX,0BAAY,uBAAuB,EAAE;;;;;AAcvC,MAAa,gCACX,0BAAY,uBAAuB,EAAE;;;;;;;;AASvC,IAAY,eAAL,yBAAA,cAAA;;;;;;;CAOL,aAAA,aAAA,iBAAA,KAAA;;;;;;;;CASA,aAAA,aAAA,gBAAA,KAAA;;;;;;;CAQA,aAAA,aAAA,uBAAA,KAAA;;;;;;;CAQA,aAAA,aAAA,uBAAA,KAAA;;;;;;CAOA,aAAA,aAAA,mBAAA,KAAA;;;;;;CAOA,aAAA,aAAA,eAAA,KAAA;;;;;;CAOA,aAAA,aAAA,6BAAA,KAAA;;;;;;CAOA,aAAA,aAAA,uBAAA,MAAA;;;;;;;CAQA,aAAA,aAAA,yBAAA,MAAA;;AACF,EAAA,CAAA,CAAA;;;;AAKA,MAAa,qBACX,uBAAS,uBAAuB,CAAC;;;;;;AAOnC,MAAa,gBA0HX,0BAAY,uBAAuB,CAAC"}
@@ -20,12 +20,6 @@ type SpotFeeRate = Message<"fees.v1.SpotFeeRate"> & {
20
20
  * @generated from field: uint32 symbol_id = 1;
21
21
  */
22
22
  symbolId: number;
23
- /**
24
- * Canonical spot market symbol, for example "BTC-USDT".
25
- *
26
- * @generated from field: string symbol = 2;
27
- */
28
- symbol: string;
29
23
  /**
30
24
  * Effective maker fee rate encoded as a base-10 percentage string without a
31
25
  * percent sign. Values are between -100 and 100 inclusive.
@@ -1 +1 @@
1
- {"version":3,"file":"fees_pb.d.ts","names":[],"sources":["../../../../src/gen/fees/v1/fees_pb.ts"],"mappings":";;;;;;;;cAWa,mBAAmB;;;;;;;KASpB,cAAc;;;;;;EAMxB;;;;;;EAOA;;;;;;;EAQA;;;;;;;EAQA;;;;;;EAOA;;;;;;cAOW,mBAAmB,WAAW;;;;;;;KAS/B,yBAAyB;;;;;;;EAOnC;;;;;;;;EASA;;;;;;cAOW,8BAA8B,WAAW;;;;;;;KAS1C,0BAA0B;;;;;;;;EAQpC,UAAU;;;;;;cAOC,+BAA+B,WAAW;;;;;;cAQ1C,YAAY;;;;;;;EAOvB;IACE;IACA,cAAc;IACd,eAAe"}
1
+ {"version":3,"file":"fees_pb.d.ts","names":[],"sources":["../../../../src/gen/fees/v1/fees_pb.ts"],"mappings":";;;;;;;;cAWa,mBAAmB;;;;;;;KASpB,cAAc;;;;;;EAMxB;;;;;;;EAQA;;;;;;;EAQA;;;;;;EAOA;;;;;;cAOW,mBAAmB,WAAW;;;;;;;KAS/B,yBAAyB;;;;;;;EAOnC;;;;;;;;EASA;;;;;;cAOW,8BAA8B,WAAW;;;;;;;KAS1C,0BAA0B;;;;;;;;EAQpC,UAAU;;;;;;cAOC,+BAA+B,WAAW;;;;;;cAQ1C,YAAY;;;;;;;EAOvB;IACE;IACA,cAAc;IACd,eAAe"}
@@ -11,7 +11,7 @@ var fees_pb_exports = /* @__PURE__ */ __exportAll({
11
11
  /**
12
12
  * Describes the file fees/v1/fees.proto.
13
13
  */
14
- const file_fees_v1_fees = /*@__PURE__*/ fileDesc("ChJmZWVzL3YxL2ZlZXMucHJvdG8SB2ZlZXMudjEijAEKC1Nwb3RGZWVSYXRlEhMKCXN5bWJvbF9pZBgBIAEoDUIAEhAKBnN5bWJvbBgCIAEoCUIAEiAKFm1ha2VyX2ZlZV9yYXRlX3BlcmNlbnQYAyABKAlCABIgChZ0YWtlcl9mZWVfcmF0ZV9wZXJjZW50GAQgASgJQgASEgoIdmlwX3RpZXIYBSABKA1CACJdChZHZXRTcG90RmVlUmF0ZXNSZXF1ZXN0EhwKDXN1YmFjY291bnRfaWQYASABKAZCAEgAiAEBEhMKCXN5bWJvbF9pZBgCIAMoDUIAQhAKDl9zdWJhY2NvdW50X2lkIkIKF0dldFNwb3RGZWVSYXRlc1Jlc3BvbnNlEicKCWZlZV9yYXRlcxgBIAMoCzIULmZlZXMudjEuU3BvdEZlZVJhdGUyZAoKRmVlU2VydmljZRJWCg9HZXRTcG90RmVlUmF0ZXMSHy5mZWVzLnYxLkdldFNwb3RGZWVSYXRlc1JlcXVlc3QaIC5mZWVzLnYxLkdldFNwb3RGZWVSYXRlc1Jlc3BvbnNlIgBCPFo6Z2l0aHViLmNvbS9GYWJyaWMtTGFicy9wb2x5ZXN0ZXItc2RrLWdvL2dlbi9mZWVzL3YxO2ZlZXN2MWIGcHJvdG8z");
14
+ const file_fees_v1_fees = /*@__PURE__*/ fileDesc("ChJmZWVzL3YxL2ZlZXMucHJvdG8SB2ZlZXMudjEiegoLU3BvdEZlZVJhdGUSEwoJc3ltYm9sX2lkGAEgASgNQgASIAoWbWFrZXJfZmVlX3JhdGVfcGVyY2VudBgDIAEoCUIAEiAKFnRha2VyX2ZlZV9yYXRlX3BlcmNlbnQYBCABKAlCABISCgh2aXBfdGllchgFIAEoDUIAIl0KFkdldFNwb3RGZWVSYXRlc1JlcXVlc3QSHAoNc3ViYWNjb3VudF9pZBgBIAEoBkIASACIAQESEwoJc3ltYm9sX2lkGAIgAygNQgBCEAoOX3N1YmFjY291bnRfaWQiQgoXR2V0U3BvdEZlZVJhdGVzUmVzcG9uc2USJwoJZmVlX3JhdGVzGAEgAygLMhQuZmVlcy52MS5TcG90RmVlUmF0ZTJkCgpGZWVTZXJ2aWNlElYKD0dldFNwb3RGZWVSYXRlcxIfLmZlZXMudjEuR2V0U3BvdEZlZVJhdGVzUmVxdWVzdBogLmZlZXMudjEuR2V0U3BvdEZlZVJhdGVzUmVzcG9uc2UiAEI8WjpnaXRodWIuY29tL0ZhYnJpYy1MYWJzL3BvbHllc3Rlci1zZGstZ28vZ2VuL2ZlZXMvdjE7ZmVlc3YxYgZwcm90bzM=");
15
15
  /**
16
16
  * Describes the message fees.v1.SpotFeeRate.
17
17
  * Use `create(SpotFeeRateSchema)` to create a new message.
@@ -1 +1 @@
1
- {"version":3,"file":"fees_pb.js","names":[],"sources":["../../../../src/gen/fees/v1/fees_pb.ts"],"sourcesContent":["// @generated by protoc-gen-es v2.13.0 with parameter \"target=ts,import_extension=js\"\n// @generated from file fees/v1/fees.proto (package fees.v1, syntax proto3)\n/* eslint-disable */\n\nimport type { GenFile, GenMessage, GenService } from \"@bufbuild/protobuf/codegenv2\";\nimport { fileDesc, messageDesc, serviceDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file fees/v1/fees.proto.\n */\nexport const file_fees_v1_fees: GenFile = /*@__PURE__*/\n fileDesc(\"ChJmZWVzL3YxL2ZlZXMucHJvdG8SB2ZlZXMudjEijAEKC1Nwb3RGZWVSYXRlEhMKCXN5bWJvbF9pZBgBIAEoDUIAEhAKBnN5bWJvbBgCIAEoCUIAEiAKFm1ha2VyX2ZlZV9yYXRlX3BlcmNlbnQYAyABKAlCABIgChZ0YWtlcl9mZWVfcmF0ZV9wZXJjZW50GAQgASgJQgASEgoIdmlwX3RpZXIYBSABKA1CACJdChZHZXRTcG90RmVlUmF0ZXNSZXF1ZXN0EhwKDXN1YmFjY291bnRfaWQYASABKAZCAEgAiAEBEhMKCXN5bWJvbF9pZBgCIAMoDUIAQhAKDl9zdWJhY2NvdW50X2lkIkIKF0dldFNwb3RGZWVSYXRlc1Jlc3BvbnNlEicKCWZlZV9yYXRlcxgBIAMoCzIULmZlZXMudjEuU3BvdEZlZVJhdGUyZAoKRmVlU2VydmljZRJWCg9HZXRTcG90RmVlUmF0ZXMSHy5mZWVzLnYxLkdldFNwb3RGZWVSYXRlc1JlcXVlc3QaIC5mZWVzLnYxLkdldFNwb3RGZWVSYXRlc1Jlc3BvbnNlIgBCPFo6Z2l0aHViLmNvbS9GYWJyaWMtTGFicy9wb2x5ZXN0ZXItc2RrLWdvL2dlbi9mZWVzL3YxO2ZlZXN2MWIGcHJvdG8z\");\n\n/**\n * SpotFeeRate describes the effective maker and taker rates for one spot\n * market and account target.\n *\n * @generated from message fees.v1.SpotFeeRate\n */\nexport type SpotFeeRate = Message<\"fees.v1.SpotFeeRate\"> & {\n /**\n * Stable numeric spot market identifier.\n *\n * @generated from field: uint32 symbol_id = 1;\n */\n symbolId: number;\n\n /**\n * Canonical spot market symbol, for example \"BTC-USDT\".\n *\n * @generated from field: string symbol = 2;\n */\n symbol: string;\n\n /**\n * Effective maker fee rate encoded as a base-10 percentage string without a\n * percent sign. Values are between -100 and 100 inclusive.\n *\n * @generated from field: string maker_fee_rate_percent = 3;\n */\n makerFeeRatePercent: string;\n\n /**\n * Effective taker fee rate encoded as a non-negative base-10 percentage\n * string without a percent sign. Values are between 0 and 100 inclusive.\n *\n * @generated from field: string taker_fee_rate_percent = 4;\n */\n takerFeeRatePercent: string;\n\n /**\n * VIP tier used to resolve these rates, in the inclusive range 0 through 10.\n *\n * @generated from field: uint32 vip_tier = 5;\n */\n vipTier: number;\n};\n\n/**\n * Describes the message fees.v1.SpotFeeRate.\n * Use `create(SpotFeeRateSchema)` to create a new message.\n */\nexport const SpotFeeRateSchema: GenMessage<SpotFeeRate> = /*@__PURE__*/\n messageDesc(file_fees_v1_fees, 0);\n\n/**\n * GetSpotFeeRatesRequest requests effective spot fee rates for one account\n * target and an optional set of markets.\n *\n * @generated from message fees.v1.GetSpotFeeRatesRequest\n */\nexport type GetSpotFeeRatesRequest = Message<\"fees.v1.GetSpotFeeRatesRequest\"> & {\n /**\n * Optional subaccount public identifier. When omitted, the authenticated\n * caller's root account is used.\n *\n * @generated from field: optional fixed64 subaccount_id = 1;\n */\n subaccountId?: bigint | undefined;\n\n /**\n * Optional unique spot market identifier filter. When empty, all currently\n * listed, non-disabled spot markets are returned. At most 100 identifiers\n * may be requested.\n *\n * @generated from field: repeated uint32 symbol_id = 2;\n */\n symbolId: number[];\n};\n\n/**\n * Describes the message fees.v1.GetSpotFeeRatesRequest.\n * Use `create(GetSpotFeeRatesRequestSchema)` to create a new message.\n */\nexport const GetSpotFeeRatesRequestSchema: GenMessage<GetSpotFeeRatesRequest> = /*@__PURE__*/\n messageDesc(file_fees_v1_fees, 1);\n\n/**\n * GetSpotFeeRatesResponse contains effective spot fee rates ordered by numeric\n * market identifier ascending.\n *\n * @generated from message fees.v1.GetSpotFeeRatesResponse\n */\nexport type GetSpotFeeRatesResponse = Message<\"fees.v1.GetSpotFeeRatesResponse\"> & {\n /**\n * Effective spot fee rows ordered by symbol_id ascending. The result is a\n * finite snapshot of the requested or currently listed, non-disabled spot\n * market catalog and is not paginated.\n *\n * @generated from field: repeated fees.v1.SpotFeeRate fee_rates = 1;\n */\n feeRates: SpotFeeRate[];\n};\n\n/**\n * Describes the message fees.v1.GetSpotFeeRatesResponse.\n * Use `create(GetSpotFeeRatesResponseSchema)` to create a new message.\n */\nexport const GetSpotFeeRatesResponseSchema: GenMessage<GetSpotFeeRatesResponse> = /*@__PURE__*/\n messageDesc(file_fees_v1_fees, 2);\n\n/**\n * FeeService serves authenticated effective spot trading fee rates.\n *\n * @generated from service fees.v1.FeeService\n */\nexport const FeeService: GenService<{\n /**\n * Get effective maker and taker fee rates for the authenticated caller's\n * root account or selected subaccount.\n *\n * @generated from rpc fees.v1.FeeService.GetSpotFeeRates\n */\n getSpotFeeRates: {\n methodKind: \"unary\";\n input: typeof GetSpotFeeRatesRequestSchema;\n output: typeof GetSpotFeeRatesResponseSchema;\n },\n}> = /*@__PURE__*/\n serviceDesc(file_fees_v1_fees, 0);\n\n"],"mappings":";;;;;;;;;;;;;AAWA,MAAa,oBACX,uBAAS,sqBAAsqB;;;;;AAmDjrB,MAAa,oBACX,0BAAY,mBAAmB,CAAC;;;;;AA+BlC,MAAa,+BACX,0BAAY,mBAAmB,CAAC;;;;;AAuBlC,MAAa,gCACX,0BAAY,mBAAmB,CAAC;;;;;;AAOlC,MAAa,aAaX,0BAAY,mBAAmB,CAAC"}
1
+ {"version":3,"file":"fees_pb.js","names":[],"sources":["../../../../src/gen/fees/v1/fees_pb.ts"],"sourcesContent":["// @generated by protoc-gen-es v2.13.0 with parameter \"target=ts,import_extension=js\"\n// @generated from file fees/v1/fees.proto (package fees.v1, syntax proto3)\n/* eslint-disable */\n\nimport type { GenFile, GenMessage, GenService } from \"@bufbuild/protobuf/codegenv2\";\nimport { fileDesc, messageDesc, serviceDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file fees/v1/fees.proto.\n */\nexport const file_fees_v1_fees: GenFile = /*@__PURE__*/\n fileDesc(\"ChJmZWVzL3YxL2ZlZXMucHJvdG8SB2ZlZXMudjEiegoLU3BvdEZlZVJhdGUSEwoJc3ltYm9sX2lkGAEgASgNQgASIAoWbWFrZXJfZmVlX3JhdGVfcGVyY2VudBgDIAEoCUIAEiAKFnRha2VyX2ZlZV9yYXRlX3BlcmNlbnQYBCABKAlCABISCgh2aXBfdGllchgFIAEoDUIAIl0KFkdldFNwb3RGZWVSYXRlc1JlcXVlc3QSHAoNc3ViYWNjb3VudF9pZBgBIAEoBkIASACIAQESEwoJc3ltYm9sX2lkGAIgAygNQgBCEAoOX3N1YmFjY291bnRfaWQiQgoXR2V0U3BvdEZlZVJhdGVzUmVzcG9uc2USJwoJZmVlX3JhdGVzGAEgAygLMhQuZmVlcy52MS5TcG90RmVlUmF0ZTJkCgpGZWVTZXJ2aWNlElYKD0dldFNwb3RGZWVSYXRlcxIfLmZlZXMudjEuR2V0U3BvdEZlZVJhdGVzUmVxdWVzdBogLmZlZXMudjEuR2V0U3BvdEZlZVJhdGVzUmVzcG9uc2UiAEI8WjpnaXRodWIuY29tL0ZhYnJpYy1MYWJzL3BvbHllc3Rlci1zZGstZ28vZ2VuL2ZlZXMvdjE7ZmVlc3YxYgZwcm90bzM=\");\n\n/**\n * SpotFeeRate describes the effective maker and taker rates for one spot\n * market and account target.\n *\n * @generated from message fees.v1.SpotFeeRate\n */\nexport type SpotFeeRate = Message<\"fees.v1.SpotFeeRate\"> & {\n /**\n * Stable numeric spot market identifier.\n *\n * @generated from field: uint32 symbol_id = 1;\n */\n symbolId: number;\n\n /**\n * Effective maker fee rate encoded as a base-10 percentage string without a\n * percent sign. Values are between -100 and 100 inclusive.\n *\n * @generated from field: string maker_fee_rate_percent = 3;\n */\n makerFeeRatePercent: string;\n\n /**\n * Effective taker fee rate encoded as a non-negative base-10 percentage\n * string without a percent sign. Values are between 0 and 100 inclusive.\n *\n * @generated from field: string taker_fee_rate_percent = 4;\n */\n takerFeeRatePercent: string;\n\n /**\n * VIP tier used to resolve these rates, in the inclusive range 0 through 10.\n *\n * @generated from field: uint32 vip_tier = 5;\n */\n vipTier: number;\n};\n\n/**\n * Describes the message fees.v1.SpotFeeRate.\n * Use `create(SpotFeeRateSchema)` to create a new message.\n */\nexport const SpotFeeRateSchema: GenMessage<SpotFeeRate> = /*@__PURE__*/\n messageDesc(file_fees_v1_fees, 0);\n\n/**\n * GetSpotFeeRatesRequest requests effective spot fee rates for one account\n * target and an optional set of markets.\n *\n * @generated from message fees.v1.GetSpotFeeRatesRequest\n */\nexport type GetSpotFeeRatesRequest = Message<\"fees.v1.GetSpotFeeRatesRequest\"> & {\n /**\n * Optional subaccount public identifier. When omitted, the authenticated\n * caller's root account is used.\n *\n * @generated from field: optional fixed64 subaccount_id = 1;\n */\n subaccountId?: bigint | undefined;\n\n /**\n * Optional unique spot market identifier filter. When empty, all currently\n * listed, non-disabled spot markets are returned. At most 100 identifiers\n * may be requested.\n *\n * @generated from field: repeated uint32 symbol_id = 2;\n */\n symbolId: number[];\n};\n\n/**\n * Describes the message fees.v1.GetSpotFeeRatesRequest.\n * Use `create(GetSpotFeeRatesRequestSchema)` to create a new message.\n */\nexport const GetSpotFeeRatesRequestSchema: GenMessage<GetSpotFeeRatesRequest> = /*@__PURE__*/\n messageDesc(file_fees_v1_fees, 1);\n\n/**\n * GetSpotFeeRatesResponse contains effective spot fee rates ordered by numeric\n * market identifier ascending.\n *\n * @generated from message fees.v1.GetSpotFeeRatesResponse\n */\nexport type GetSpotFeeRatesResponse = Message<\"fees.v1.GetSpotFeeRatesResponse\"> & {\n /**\n * Effective spot fee rows ordered by symbol_id ascending. The result is a\n * finite snapshot of the requested or currently listed, non-disabled spot\n * market catalog and is not paginated.\n *\n * @generated from field: repeated fees.v1.SpotFeeRate fee_rates = 1;\n */\n feeRates: SpotFeeRate[];\n};\n\n/**\n * Describes the message fees.v1.GetSpotFeeRatesResponse.\n * Use `create(GetSpotFeeRatesResponseSchema)` to create a new message.\n */\nexport const GetSpotFeeRatesResponseSchema: GenMessage<GetSpotFeeRatesResponse> = /*@__PURE__*/\n messageDesc(file_fees_v1_fees, 2);\n\n/**\n * FeeService serves authenticated effective spot trading fee rates.\n *\n * @generated from service fees.v1.FeeService\n */\nexport const FeeService: GenService<{\n /**\n * Get effective maker and taker fee rates for the authenticated caller's\n * root account or selected subaccount.\n *\n * @generated from rpc fees.v1.FeeService.GetSpotFeeRates\n */\n getSpotFeeRates: {\n methodKind: \"unary\";\n input: typeof GetSpotFeeRatesRequestSchema;\n output: typeof GetSpotFeeRatesResponseSchema;\n },\n}> = /*@__PURE__*/\n serviceDesc(file_fees_v1_fees, 0);\n\n"],"mappings":";;;;;;;;;;;;;AAWA,MAAa,oBACX,uBAAS,8oBAA8oB;;;;;AA4CzpB,MAAa,oBACX,0BAAY,mBAAmB,CAAC;;;;;AA+BlC,MAAa,+BACX,0BAAY,mBAAmB,CAAC;;;;;AAuBlC,MAAa,gCACX,0BAAY,mBAAmB,CAAC;;;;;;AAOlC,MAAa,aAaX,0BAAY,mBAAmB,CAAC"}
@@ -59,12 +59,6 @@ type MarketOverview = Message<"marketoverview.v1.MarketOverview"> & {
59
59
  * @generated from field: uint32 symbol_id = 1;
60
60
  */
61
61
  symbolId: number;
62
- /**
63
- * Canonical pair symbol, e.g. "BTC-USDT".
64
- *
65
- * @generated from field: string symbol = 2;
66
- */
67
- symbol: string;
68
62
  /**
69
63
  * Last traded price in quote units scaled by 1e6.
70
64
  *
@@ -166,11 +160,12 @@ declare const MarketOverviewSchema: GenMessage<MarketOverview>;
166
160
  */
167
161
  type ListMarketOverviewRequest = Message<"marketoverview.v1.ListMarketOverviewRequest"> & {
168
162
  /**
169
- * Filter by specific symbols; when empty, returns all enabled markets.
163
+ * Filter by stable numeric pair IDs from GetSpotConfig. When empty, returns
164
+ * all enabled markets.
170
165
  *
171
- * @generated from field: repeated string symbols = 1;
166
+ * @generated from field: repeated uint32 symbol_id = 1;
172
167
  */
173
- symbols: string[];
168
+ symbolId: number[];
174
169
  /**
175
170
  * Maximum number of markets to return. Defaults to 50 when omitted; maximum
176
171
  * is 2000.
@@ -180,8 +175,8 @@ type ListMarketOverviewRequest = Message<"marketoverview.v1.ListMarketOverviewRe
180
175
  limit: number;
181
176
  /**
182
177
  * Opaque keyset cursor from a previous response. The cursor is exclusive and
183
- * bound to symbols, sort key, and sort direction. Sparkline options affect
184
- * only response enrichment and may change between pages.
178
+ * bound to symbol IDs, sort key, and sort direction. Sparkline options
179
+ * affect only response enrichment and may change between pages.
185
180
  *
186
181
  * @generated from field: string page_token = 3;
187
182
  */
@@ -1 +1 @@
1
- {"version":3,"file":"marketoverview_pb.d.ts","names":[],"sources":["../../../../src/gen/marketoverview/v1/marketoverview_pb.ts"],"mappings":";;;;;;;;cAYa,uCAAuC;;;;;;KAQxC,cAAc;;;;;;EAMxB,MAAM;;;;;;cAOK,mBAAmB,WAAW;;;;;;KAQ/B,YAAY;;;;;;EAMtB,UAAU;;;;;;EAOV;;;;;;cAOW,iBAAiB,WAAW;;;;KAM7B,iBAAiB;;;;;;EAM3B;;;;;;EAOA;;;;;;EAOA;;;;;;EAOA;;;;;;EAOA;;;;;;;EAQA;;;;;;EAOA;;;;;;;EAQA;;;;;;;EAQA;;;;;;EAOA;;;;;;EAOA;;;;;;;EAQA;;;;;;EAOA;;;;;;;EAQA;;;;;;EAOA,YAAY;;;;;;;EAQZ;;;;;;cAOW,sBAAsB,WAAW;;;;KAMlC,4BAA4B;;;;;;EAMtC;;;;;;;EAQA;;;;;;;;EASA;;;;;;EAOA,SAAS;;;;;;EAOT,MAAM;;;;;;EAON;;;;;;;EAQA,oBAAoB;;;;;;cAOT,iCAAiC,WAAW;;;;KAM7C,6BAA6B;;;;;;EAMvC,SAAS;;;;;;EAOT;;;;;;cAOW,kCAAkC,WAAW;;;;;;;KAS9C,sBAAsB;;;;;;EAMhC,SAAS;;;;;;EAOT;;;;;;cAOW,2BAA2B,WAAW;;;;;;;aASvC;;;;;;EAMV;;;;;;EAOA;;;;;;EAOA;;;;;;EAOA;;;;;;EAOA;;;;;cAMW,yBAAyB,QAAQ;;;;aAMlC;;;;EAIV;;;;;;EAOA;;;;;;;EAQA;;;;;;EAOA;;;;;;EAOA;;;;;cAMW,qBAAqB,QAAQ;;;;aAM9B;;;;EAIV;;;;;;EAOA;;;;;;EAOA;;;;;cAMW,qBAAqB,QAAQ;;;;;;;aAS9B;;;;EAIV;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;;cAMW,iBAAiB,QAAQ;;;;;;;cASzB,uBAAuB;;;;EAIlC;IACE;IACA,cAAc;IACd,eAAe"}
1
+ {"version":3,"file":"marketoverview_pb.d.ts","names":[],"sources":["../../../../src/gen/marketoverview/v1/marketoverview_pb.ts"],"mappings":";;;;;;;;cAYa,uCAAuC;;;;;;KAQxC,cAAc;;;;;;EAMxB,MAAM;;;;;;cAOK,mBAAmB,WAAW;;;;;;KAQ/B,YAAY;;;;;;EAMtB,UAAU;;;;;;EAOV;;;;;;cAOW,iBAAiB,WAAW;;;;KAM7B,iBAAiB;;;;;;EAM3B;;;;;;EAOA;;;;;;EAOA;;;;;;EAOA;;;;;;;EAQA;;;;;;EAOA;;;;;;;EAQA;;;;;;;EAQA;;;;;;EAOA;;;;;;EAOA;;;;;;;EAQA;;;;;;EAOA;;;;;;;EAQA;;;;;;EAOA,YAAY;;;;;;;EAQZ;;;;;;cAOW,sBAAsB,WAAW;;;;KAMlC,4BAA4B;;;;;;;EAOtC;;;;;;;EAQA;;;;;;;;EASA;;;;;;EAOA,SAAS;;;;;;EAOT,MAAM;;;;;;EAON;;;;;;;EAQA,oBAAoB;;;;;;cAOT,iCAAiC,WAAW;;;;KAM7C,6BAA6B;;;;;;EAMvC,SAAS;;;;;;EAOT;;;;;;cAOW,kCAAkC,WAAW;;;;;;;KAS9C,sBAAsB;;;;;;EAMhC,SAAS;;;;;;EAOT;;;;;;cAOW,2BAA2B,WAAW;;;;;;;aASvC;;;;;;EAMV;;;;;;EAOA;;;;;;EAOA;;;;;;EAOA;;;;;;EAOA;;;;;cAMW,yBAAyB,QAAQ;;;;aAMlC;;;;EAIV;;;;;;EAOA;;;;;;;EAQA;;;;;;EAOA;;;;;;EAOA;;;;;cAMW,qBAAqB,QAAQ;;;;aAM9B;;;;EAIV;;;;;;EAOA;;;;;;EAOA;;;;;cAMW,qBAAqB,QAAQ;;;;;;;aAS9B;;;;EAIV;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;;cAMW,iBAAiB,QAAQ;;;;;;;cASzB,uBAAuB;;;;EAIlC;IACE;IACA,cAAc;IACd,eAAe"}
@@ -23,7 +23,7 @@ var marketoverview_pb_exports = /* @__PURE__ */ __exportAll({
23
23
  /**
24
24
  * Describes the file marketoverview/v1/marketoverview.proto.
25
25
  */
26
- const file_marketoverview_v1_marketoverview = /*@__PURE__*/ fileDesc("CiZtYXJrZXRvdmVydmlldy92MS9tYXJrZXRvdmVydmlldy5wcm90bxIRbWFya2V0b3ZlcnZpZXcudjEiOQoLRXJyb3JEZXRhaWwSKgoEY29kZRgBIAEoDjIcLm1hcmtldG92ZXJ2aWV3LnYxLkVycm9yQ29kZSJaCglTcGFya2xpbmUSOAoIaW50ZXJ2YWwYASABKA4yJC5tYXJrZXRvdmVydmlldy52MS5TcGFya2xpbmVJbnRlcnZhbEIAEhMKC2Nsb3NlX3RpY2tzGAIgAygDIrwDCg5NYXJrZXRPdmVydmlldxIRCglzeW1ib2xfaWQYASABKA0SDgoGc3ltYm9sGAIgASgJEhgKEGxhc3RfcHJpY2VfdGlja3MYAyABKAMSGAoQbGFzdF90cmFkZV90c19ucxgEIAEoBBIWCg5jaGFuZ2VfMjRoX2JwcxgFIAEoBRIWCg5oaWdoXzI0aF90aWNrcxgGIAEoAxIVCg1sb3dfMjRoX3RpY2tzGAcgASgDEh4KFnZvbHVtZV8yNGhfYmFzZV9zY2FsZWQYCCABKAMSHwoXdm9sdW1lXzI0aF9xdW90ZV9zY2FsZWQYDiABKAMSFAoMbGlzdGVkX3RzX25zGA8gASgEEhYKDmJlc3RfYmlkX3RpY2tzGAkgASgDEhsKE2Jlc3RfYmlkX3F0eV9zY2FsZWQYCiABKAMSFgoOYmVzdF9hc2tfdGlja3MYCyABKAMSGwoTYmVzdF9hc2tfcXR5X3NjYWxlZBgMIAEoAxIwCgpzcGFya2xpbmVzGA0gAygLMhwubWFya2V0b3ZlcnZpZXcudjEuU3BhcmtsaW5lEhkKEWluZGV4X3ByaWNlX3RpY2tzGBAgASgDIpwCChlMaXN0TWFya2V0T3ZlcnZpZXdSZXF1ZXN0Eg8KB3N5bWJvbHMYASADKAkSDwoFbGltaXQYAiABKA1CABIUCgpwYWdlX3Rva2VuGAMgASgJQgASNAoIb3JkZXJfYnkYBCABKA4yIC5tYXJrZXRvdmVydmlldy52MS5NYXJrZXRPcmRlckJ5QgASMAoEc29ydBgFIAEoDjIgLm1hcmtldG92ZXJ2aWV3LnYxLlNvcnREaXJlY3Rpb25CABIaChJpbmNsdWRlX3NwYXJrbGluZXMYBiABKAgSQwoTc3BhcmtsaW5lX2ludGVydmFscxgHIAMoDjIkLm1hcmtldG92ZXJ2aWV3LnYxLlNwYXJrbGluZUludGVydmFsQgAiawoaTGlzdE1hcmtldE92ZXJ2aWV3UmVzcG9uc2USMgoHbWFya2V0cxgBIAMoCzIhLm1hcmtldG92ZXJ2aWV3LnYxLk1hcmtldE92ZXJ2aWV3EhkKD25leHRfcGFnZV90b2tlbhgCIAEoCUIAIlgKE01hcmtldE92ZXJ2aWV3QmF0Y2gSMgoHbWFya2V0cxgBIAMoCzIhLm1hcmtldG92ZXJ2aWV3LnYxLk1hcmtldE92ZXJ2aWV3Eg0KBXRzX25zGAIgASgEKoABChFTcGFya2xpbmVJbnRlcnZhbBIiCh5TUEFSS0xJTkVfSU5URVJWQUxfVU5TUEVDSUZJRUQQABIQCgxTUEFSS0xJTkVfMUgQARIRCg1TUEFSS0xJTkVfMjRIEAISEAoMU1BBUktMSU5FXzFXEAMSEAoMU1BBUktMSU5FXzFNEAQqngEKDU1hcmtldE9yZGVyQnkSHwobTUFSS0VUX09SREVSX0JZX1VOU1BFQ0lGSUVEEAASGwoXT1JERVJfQllfQ0hBTkdFXzI0SF9CUFMQARIdChlPUkRFUl9CWV9WT0xVTUVfMjRIX1FVT1RFEAISFwoTT1JERVJfQllfTEFTVF9QUklDRRADEhcKE09SREVSX0JZX0RBVEVfQURERUQQBCpMCg1Tb3J0RGlyZWN0aW9uEh4KGlNPUlRfRElSRUNUSU9OX1VOU1BFQ0lGSUVEEAASDAoIU09SVF9BU0MQARINCglTT1JUX0RFU0MQAiq5AQoJRXJyb3JDb2RlEhoKFkVSUk9SX0NPREVfVU5TUEVDSUZJRUQQABIaChZFUlJPUl9DT0RFX0JBRF9SRVFVRVNUEAESHwobRVJST1JfQ09ERV9JTlZBTElEX0FSR1VNRU5UEAISGAoURVJST1JfQ09ERV9OT1RfRk9VTkQQAxIaChZFUlJPUl9DT0RFX1VOQVZBSUxBQkxFEAQSHQoZRVJST1JfQ09ERV9VUFNUUkVBTV9FUlJPUhAFMowBChVNYXJrZXRPdmVydmlld1NlcnZpY2UScwoSTGlzdE1hcmtldE92ZXJ2aWV3EiwubWFya2V0b3ZlcnZpZXcudjEuTGlzdE1hcmtldE92ZXJ2aWV3UmVxdWVzdBotLm1hcmtldG92ZXJ2aWV3LnYxLkxpc3RNYXJrZXRPdmVydmlld1Jlc3BvbnNlIgBCUFpOZ2l0aHViLmNvbS9GYWJyaWMtTGFicy9wb2x5ZXN0ZXItc2RrLWdvL2dlbi9tYXJrZXRvdmVydmlldy92MTttYXJrZXRvdmVydmlld3YxYgZwcm90bzM=", [file_polyester_api_options]);
26
+ const file_marketoverview_v1_marketoverview = /*@__PURE__*/ fileDesc("CiZtYXJrZXRvdmVydmlldy92MS9tYXJrZXRvdmVydmlldy5wcm90bxIRbWFya2V0b3ZlcnZpZXcudjEiOQoLRXJyb3JEZXRhaWwSKgoEY29kZRgBIAEoDjIcLm1hcmtldG92ZXJ2aWV3LnYxLkVycm9yQ29kZSJaCglTcGFya2xpbmUSOAoIaW50ZXJ2YWwYASABKA4yJC5tYXJrZXRvdmVydmlldy52MS5TcGFya2xpbmVJbnRlcnZhbEIAEhMKC2Nsb3NlX3RpY2tzGAIgAygDIqwDCg5NYXJrZXRPdmVydmlldxIRCglzeW1ib2xfaWQYASABKA0SGAoQbGFzdF9wcmljZV90aWNrcxgDIAEoAxIYChBsYXN0X3RyYWRlX3RzX25zGAQgASgEEhYKDmNoYW5nZV8yNGhfYnBzGAUgASgFEhYKDmhpZ2hfMjRoX3RpY2tzGAYgASgDEhUKDWxvd18yNGhfdGlja3MYByABKAMSHgoWdm9sdW1lXzI0aF9iYXNlX3NjYWxlZBgIIAEoAxIfChd2b2x1bWVfMjRoX3F1b3RlX3NjYWxlZBgOIAEoAxIUCgxsaXN0ZWRfdHNfbnMYDyABKAQSFgoOYmVzdF9iaWRfdGlja3MYCSABKAMSGwoTYmVzdF9iaWRfcXR5X3NjYWxlZBgKIAEoAxIWCg5iZXN0X2Fza190aWNrcxgLIAEoAxIbChNiZXN0X2Fza19xdHlfc2NhbGVkGAwgASgDEjAKCnNwYXJrbGluZXMYDSADKAsyHC5tYXJrZXRvdmVydmlldy52MS5TcGFya2xpbmUSGQoRaW5kZXhfcHJpY2VfdGlja3MYECABKAMioAIKGUxpc3RNYXJrZXRPdmVydmlld1JlcXVlc3QSEwoJc3ltYm9sX2lkGAEgAygNQgASDwoFbGltaXQYAiABKA1CABIUCgpwYWdlX3Rva2VuGAMgASgJQgASNAoIb3JkZXJfYnkYBCABKA4yIC5tYXJrZXRvdmVydmlldy52MS5NYXJrZXRPcmRlckJ5QgASMAoEc29ydBgFIAEoDjIgLm1hcmtldG92ZXJ2aWV3LnYxLlNvcnREaXJlY3Rpb25CABIaChJpbmNsdWRlX3NwYXJrbGluZXMYBiABKAgSQwoTc3BhcmtsaW5lX2ludGVydmFscxgHIAMoDjIkLm1hcmtldG92ZXJ2aWV3LnYxLlNwYXJrbGluZUludGVydmFsQgAiawoaTGlzdE1hcmtldE92ZXJ2aWV3UmVzcG9uc2USMgoHbWFya2V0cxgBIAMoCzIhLm1hcmtldG92ZXJ2aWV3LnYxLk1hcmtldE92ZXJ2aWV3EhkKD25leHRfcGFnZV90b2tlbhgCIAEoCUIAIlgKE01hcmtldE92ZXJ2aWV3QmF0Y2gSMgoHbWFya2V0cxgBIAMoCzIhLm1hcmtldG92ZXJ2aWV3LnYxLk1hcmtldE92ZXJ2aWV3Eg0KBXRzX25zGAIgASgEKoABChFTcGFya2xpbmVJbnRlcnZhbBIiCh5TUEFSS0xJTkVfSU5URVJWQUxfVU5TUEVDSUZJRUQQABIQCgxTUEFSS0xJTkVfMUgQARIRCg1TUEFSS0xJTkVfMjRIEAISEAoMU1BBUktMSU5FXzFXEAMSEAoMU1BBUktMSU5FXzFNEAQqngEKDU1hcmtldE9yZGVyQnkSHwobTUFSS0VUX09SREVSX0JZX1VOU1BFQ0lGSUVEEAASGwoXT1JERVJfQllfQ0hBTkdFXzI0SF9CUFMQARIdChlPUkRFUl9CWV9WT0xVTUVfMjRIX1FVT1RFEAISFwoTT1JERVJfQllfTEFTVF9QUklDRRADEhcKE09SREVSX0JZX0RBVEVfQURERUQQBCpMCg1Tb3J0RGlyZWN0aW9uEh4KGlNPUlRfRElSRUNUSU9OX1VOU1BFQ0lGSUVEEAASDAoIU09SVF9BU0MQARINCglTT1JUX0RFU0MQAiq5AQoJRXJyb3JDb2RlEhoKFkVSUk9SX0NPREVfVU5TUEVDSUZJRUQQABIaChZFUlJPUl9DT0RFX0JBRF9SRVFVRVNUEAESHwobRVJST1JfQ09ERV9JTlZBTElEX0FSR1VNRU5UEAISGAoURVJST1JfQ09ERV9OT1RfRk9VTkQQAxIaChZFUlJPUl9DT0RFX1VOQVZBSUxBQkxFEAQSHQoZRVJST1JfQ09ERV9VUFNUUkVBTV9FUlJPUhAFMowBChVNYXJrZXRPdmVydmlld1NlcnZpY2UScwoSTGlzdE1hcmtldE92ZXJ2aWV3EiwubWFya2V0b3ZlcnZpZXcudjEuTGlzdE1hcmtldE92ZXJ2aWV3UmVxdWVzdBotLm1hcmtldG92ZXJ2aWV3LnYxLkxpc3RNYXJrZXRPdmVydmlld1Jlc3BvbnNlIgBCUFpOZ2l0aHViLmNvbS9GYWJyaWMtTGFicy9wb2x5ZXN0ZXItc2RrLWdvL2dlbi9tYXJrZXRvdmVydmlldy92MTttYXJrZXRvdmVydmlld3YxYgZwcm90bzM=", [file_polyester_api_options]);
27
27
  /**
28
28
  * Describes the message marketoverview.v1.ErrorDetail.
29
29
  * Use `create(ErrorDetailSchema)` to create a new message.
@@ -1 +1 @@
1
- {"version":3,"file":"marketoverview_pb.js","names":[],"sources":["../../../../src/gen/marketoverview/v1/marketoverview_pb.ts"],"sourcesContent":["// @generated by protoc-gen-es v2.13.0 with parameter \"target=ts,import_extension=js\"\n// @generated from file marketoverview/v1/marketoverview.proto (package marketoverview.v1, syntax proto3)\n/* eslint-disable */\n\nimport type { GenEnum, GenFile, GenMessage, GenService } from \"@bufbuild/protobuf/codegenv2\";\nimport { enumDesc, fileDesc, messageDesc, serviceDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport { file_polyester_api_options } from \"../../polyester/api/options_pb.js\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file marketoverview/v1/marketoverview.proto.\n */\nexport const file_marketoverview_v1_marketoverview: GenFile = /*@__PURE__*/\n fileDesc(\"CiZtYXJrZXRvdmVydmlldy92MS9tYXJrZXRvdmVydmlldy5wcm90bxIRbWFya2V0b3ZlcnZpZXcudjEiOQoLRXJyb3JEZXRhaWwSKgoEY29kZRgBIAEoDjIcLm1hcmtldG92ZXJ2aWV3LnYxLkVycm9yQ29kZSJaCglTcGFya2xpbmUSOAoIaW50ZXJ2YWwYASABKA4yJC5tYXJrZXRvdmVydmlldy52MS5TcGFya2xpbmVJbnRlcnZhbEIAEhMKC2Nsb3NlX3RpY2tzGAIgAygDIrwDCg5NYXJrZXRPdmVydmlldxIRCglzeW1ib2xfaWQYASABKA0SDgoGc3ltYm9sGAIgASgJEhgKEGxhc3RfcHJpY2VfdGlja3MYAyABKAMSGAoQbGFzdF90cmFkZV90c19ucxgEIAEoBBIWCg5jaGFuZ2VfMjRoX2JwcxgFIAEoBRIWCg5oaWdoXzI0aF90aWNrcxgGIAEoAxIVCg1sb3dfMjRoX3RpY2tzGAcgASgDEh4KFnZvbHVtZV8yNGhfYmFzZV9zY2FsZWQYCCABKAMSHwoXdm9sdW1lXzI0aF9xdW90ZV9zY2FsZWQYDiABKAMSFAoMbGlzdGVkX3RzX25zGA8gASgEEhYKDmJlc3RfYmlkX3RpY2tzGAkgASgDEhsKE2Jlc3RfYmlkX3F0eV9zY2FsZWQYCiABKAMSFgoOYmVzdF9hc2tfdGlja3MYCyABKAMSGwoTYmVzdF9hc2tfcXR5X3NjYWxlZBgMIAEoAxIwCgpzcGFya2xpbmVzGA0gAygLMhwubWFya2V0b3ZlcnZpZXcudjEuU3BhcmtsaW5lEhkKEWluZGV4X3ByaWNlX3RpY2tzGBAgASgDIpwCChlMaXN0TWFya2V0T3ZlcnZpZXdSZXF1ZXN0Eg8KB3N5bWJvbHMYASADKAkSDwoFbGltaXQYAiABKA1CABIUCgpwYWdlX3Rva2VuGAMgASgJQgASNAoIb3JkZXJfYnkYBCABKA4yIC5tYXJrZXRvdmVydmlldy52MS5NYXJrZXRPcmRlckJ5QgASMAoEc29ydBgFIAEoDjIgLm1hcmtldG92ZXJ2aWV3LnYxLlNvcnREaXJlY3Rpb25CABIaChJpbmNsdWRlX3NwYXJrbGluZXMYBiABKAgSQwoTc3BhcmtsaW5lX2ludGVydmFscxgHIAMoDjIkLm1hcmtldG92ZXJ2aWV3LnYxLlNwYXJrbGluZUludGVydmFsQgAiawoaTGlzdE1hcmtldE92ZXJ2aWV3UmVzcG9uc2USMgoHbWFya2V0cxgBIAMoCzIhLm1hcmtldG92ZXJ2aWV3LnYxLk1hcmtldE92ZXJ2aWV3EhkKD25leHRfcGFnZV90b2tlbhgCIAEoCUIAIlgKE01hcmtldE92ZXJ2aWV3QmF0Y2gSMgoHbWFya2V0cxgBIAMoCzIhLm1hcmtldG92ZXJ2aWV3LnYxLk1hcmtldE92ZXJ2aWV3Eg0KBXRzX25zGAIgASgEKoABChFTcGFya2xpbmVJbnRlcnZhbBIiCh5TUEFSS0xJTkVfSU5URVJWQUxfVU5TUEVDSUZJRUQQABIQCgxTUEFSS0xJTkVfMUgQARIRCg1TUEFSS0xJTkVfMjRIEAISEAoMU1BBUktMSU5FXzFXEAMSEAoMU1BBUktMSU5FXzFNEAQqngEKDU1hcmtldE9yZGVyQnkSHwobTUFSS0VUX09SREVSX0JZX1VOU1BFQ0lGSUVEEAASGwoXT1JERVJfQllfQ0hBTkdFXzI0SF9CUFMQARIdChlPUkRFUl9CWV9WT0xVTUVfMjRIX1FVT1RFEAISFwoTT1JERVJfQllfTEFTVF9QUklDRRADEhcKE09SREVSX0JZX0RBVEVfQURERUQQBCpMCg1Tb3J0RGlyZWN0aW9uEh4KGlNPUlRfRElSRUNUSU9OX1VOU1BFQ0lGSUVEEAASDAoIU09SVF9BU0MQARINCglTT1JUX0RFU0MQAiq5AQoJRXJyb3JDb2RlEhoKFkVSUk9SX0NPREVfVU5TUEVDSUZJRUQQABIaChZFUlJPUl9DT0RFX0JBRF9SRVFVRVNUEAESHwobRVJST1JfQ09ERV9JTlZBTElEX0FSR1VNRU5UEAISGAoURVJST1JfQ09ERV9OT1RfRk9VTkQQAxIaChZFUlJPUl9DT0RFX1VOQVZBSUxBQkxFEAQSHQoZRVJST1JfQ09ERV9VUFNUUkVBTV9FUlJPUhAFMowBChVNYXJrZXRPdmVydmlld1NlcnZpY2UScwoSTGlzdE1hcmtldE92ZXJ2aWV3EiwubWFya2V0b3ZlcnZpZXcudjEuTGlzdE1hcmtldE92ZXJ2aWV3UmVxdWVzdBotLm1hcmtldG92ZXJ2aWV3LnYxLkxpc3RNYXJrZXRPdmVydmlld1Jlc3BvbnNlIgBCUFpOZ2l0aHViLmNvbS9GYWJyaWMtTGFicy9wb2x5ZXN0ZXItc2RrLWdvL2dlbi9tYXJrZXRvdmVydmlldy92MTttYXJrZXRvdmVydmlld3YxYgZwcm90bzM=\", [file_polyester_api_options]);\n\n/**\n * ErrorDetail carries a typed domain error code for machine-readable handling.\n *\n * @generated from message marketoverview.v1.ErrorDetail\n */\nexport type ErrorDetail = Message<\"marketoverview.v1.ErrorDetail\"> & {\n /**\n * Stable error code for programmatic matching.\n *\n * @generated from field: marketoverview.v1.ErrorCode code = 1;\n */\n code: ErrorCode;\n};\n\n/**\n * Describes the message marketoverview.v1.ErrorDetail.\n * Use `create(ErrorDetailSchema)` to create a new message.\n */\nexport const ErrorDetailSchema: GenMessage<ErrorDetail> = /*@__PURE__*/\n messageDesc(file_marketoverview_v1_marketoverview, 0);\n\n/**\n * Sparkline contains newest-first close prices for one time range.\n *\n * @generated from message marketoverview.v1.Sparkline\n */\nexport type Sparkline = Message<\"marketoverview.v1.Sparkline\"> & {\n /**\n * Time range and sampling resolution represented by these close prices.\n *\n * @generated from field: marketoverview.v1.SparklineInterval interval = 1;\n */\n interval: SparklineInterval;\n\n /**\n * Newest-first close prices in quote units scaled by 1e6.\n *\n * @generated from field: repeated int64 close_ticks = 2;\n */\n closeTicks: bigint[];\n};\n\n/**\n * Describes the message marketoverview.v1.Sparkline.\n * Use `create(SparklineSchema)` to create a new message.\n */\nexport const SparklineSchema: GenMessage<Sparkline> = /*@__PURE__*/\n messageDesc(file_marketoverview_v1_marketoverview, 1);\n\n/**\n * @generated from message marketoverview.v1.MarketOverview\n */\nexport type MarketOverview = Message<\"marketoverview.v1.MarketOverview\"> & {\n /**\n * Numeric spot market identifier.\n *\n * @generated from field: uint32 symbol_id = 1;\n */\n symbolId: number;\n\n /**\n * Canonical pair symbol, e.g. \"BTC-USDT\".\n *\n * @generated from field: string symbol = 2;\n */\n symbol: string;\n\n /**\n * Last traded price in quote units scaled by 1e6.\n *\n * @generated from field: int64 last_price_ticks = 3;\n */\n lastPriceTicks: bigint;\n\n /**\n * Last trade timestamp in nanoseconds since epoch.\n *\n * @generated from field: uint64 last_trade_ts_ns = 4;\n */\n lastTradeTsNs: bigint;\n\n /**\n * Rolling 24h change expressed in basis points (bp). Example: +123 = +1.23%.\n *\n * @generated from field: int32 change_24h_bps = 5;\n */\n change24hBps: number;\n\n /**\n * Rolling 24h stats.\n * Highest traded price in the 24h window, in quote units scaled by 1e6.\n *\n * @generated from field: int64 high_24h_ticks = 6;\n */\n high24hTicks: bigint;\n\n /**\n * Lowest traded price in the 24h window, in quote units scaled by 1e6.\n *\n * @generated from field: int64 low_24h_ticks = 7;\n */\n low24hTicks: bigint;\n\n /**\n * Rolling 24h base volume scaled by the pair's base_quantity_scale from\n * GetSpotConfig.\n *\n * @generated from field: int64 volume_24h_base_scaled = 8;\n */\n volume24hBaseScaled: bigint;\n\n /**\n * Rolling 24h quote volume scaled by the pair's quote_quantity_scale from\n * GetSpotConfig.\n *\n * @generated from field: int64 volume_24h_quote_scaled = 14;\n */\n volume24hQuoteScaled: bigint;\n\n /**\n * Listing timestamp in nanoseconds since epoch.\n *\n * @generated from field: uint64 listed_ts_ns = 15;\n */\n listedTsNs: bigint;\n\n /**\n * Current best bid price in quote units scaled by 1e6.\n *\n * @generated from field: int64 best_bid_ticks = 9;\n */\n bestBidTicks: bigint;\n\n /**\n * Best bid quantity scaled by the pair's base_quantity_scale from\n * GetSpotConfig.\n *\n * @generated from field: int64 best_bid_qty_scaled = 10;\n */\n bestBidQtyScaled: bigint;\n\n /**\n * Current best ask price in quote units scaled by 1e6.\n *\n * @generated from field: int64 best_ask_ticks = 11;\n */\n bestAskTicks: bigint;\n\n /**\n * Best ask quantity scaled by the pair's base_quantity_scale from\n * GetSpotConfig.\n *\n * @generated from field: int64 best_ask_qty_scaled = 12;\n */\n bestAskQtyScaled: bigint;\n\n /**\n * Optional sparklines (requested explicitly).\n *\n * @generated from field: repeated marketoverview.v1.Sparkline sparklines = 13;\n */\n sparklines: Sparkline[];\n\n /**\n * Current multi-venue index price in quote units scaled by 1e6.\n * Zero when no fresh, valid index price is available.\n *\n * @generated from field: int64 index_price_ticks = 16;\n */\n indexPriceTicks: bigint;\n};\n\n/**\n * Describes the message marketoverview.v1.MarketOverview.\n * Use `create(MarketOverviewSchema)` to create a new message.\n */\nexport const MarketOverviewSchema: GenMessage<MarketOverview> = /*@__PURE__*/\n messageDesc(file_marketoverview_v1_marketoverview, 2);\n\n/**\n * @generated from message marketoverview.v1.ListMarketOverviewRequest\n */\nexport type ListMarketOverviewRequest = Message<\"marketoverview.v1.ListMarketOverviewRequest\"> & {\n /**\n * Filter by specific symbols; when empty, returns all enabled markets.\n *\n * @generated from field: repeated string symbols = 1;\n */\n symbols: string[];\n\n /**\n * Maximum number of markets to return. Defaults to 50 when omitted; maximum\n * is 2000.\n *\n * @generated from field: uint32 limit = 2;\n */\n limit: number;\n\n /**\n * Opaque keyset cursor from a previous response. The cursor is exclusive and\n * bound to symbols, sort key, and sort direction. Sparkline options affect\n * only response enrichment and may change between pages.\n *\n * @generated from field: string page_token = 3;\n */\n pageToken: string;\n\n /**\n * Sort key. When unset/UNSPECIFIED, defaults to 24h quote volume.\n *\n * @generated from field: marketoverview.v1.MarketOrderBy order_by = 4;\n */\n orderBy: MarketOrderBy;\n\n /**\n * Sort direction (DESC=newest/highest first).\n *\n * @generated from field: marketoverview.v1.SortDirection sort = 5;\n */\n sort: SortDirection;\n\n /**\n * When true, include sparklines in each MarketOverview.\n *\n * @generated from field: bool include_sparklines = 6;\n */\n includeSparklines: boolean;\n\n /**\n * Which sparklines to include. If empty and include_sparklines is true,\n * server defaults to 24h.\n *\n * @generated from field: repeated marketoverview.v1.SparklineInterval sparkline_intervals = 7;\n */\n sparklineIntervals: SparklineInterval[];\n};\n\n/**\n * Describes the message marketoverview.v1.ListMarketOverviewRequest.\n * Use `create(ListMarketOverviewRequestSchema)` to create a new message.\n */\nexport const ListMarketOverviewRequestSchema: GenMessage<ListMarketOverviewRequest> = /*@__PURE__*/\n messageDesc(file_marketoverview_v1_marketoverview, 3);\n\n/**\n * @generated from message marketoverview.v1.ListMarketOverviewResponse\n */\nexport type ListMarketOverviewResponse = Message<\"marketoverview.v1.ListMarketOverviewResponse\"> & {\n /**\n * Market overview rows for the requested page.\n *\n * @generated from field: repeated marketoverview.v1.MarketOverview markets = 1;\n */\n markets: MarketOverview[];\n\n /**\n * Opaque cursor for the next page. Empty when no more results exist.\n *\n * @generated from field: string next_page_token = 2;\n */\n nextPageToken: string;\n};\n\n/**\n * Describes the message marketoverview.v1.ListMarketOverviewResponse.\n * Use `create(ListMarketOverviewResponseSchema)` to create a new message.\n */\nexport const ListMarketOverviewResponseSchema: GenMessage<ListMarketOverviewResponse> = /*@__PURE__*/\n messageDesc(file_marketoverview_v1_marketoverview, 4);\n\n/**\n * MarketOverviewBatch is a websocket payload carrying batched market overview\n * updates. It is published to a single all-markets channel at a fixed cadence.\n *\n * @generated from message marketoverview.v1.MarketOverviewBatch\n */\nexport type MarketOverviewBatch = Message<\"marketoverview.v1.MarketOverviewBatch\"> & {\n /**\n * Market overviews included in this batch.\n *\n * @generated from field: repeated marketoverview.v1.MarketOverview markets = 1;\n */\n markets: MarketOverview[];\n\n /**\n * Batch publish timestamp in nanoseconds since epoch.\n *\n * @generated from field: uint64 ts_ns = 2;\n */\n tsNs: bigint;\n};\n\n/**\n * Describes the message marketoverview.v1.MarketOverviewBatch.\n * Use `create(MarketOverviewBatchSchema)` to create a new message.\n */\nexport const MarketOverviewBatchSchema: GenMessage<MarketOverviewBatch> = /*@__PURE__*/\n messageDesc(file_marketoverview_v1_marketoverview, 5);\n\n/**\n * SparklineInterval identifies the time range and sampling resolution for a\n * sparkline.\n *\n * @generated from enum marketoverview.v1.SparklineInterval\n */\nexport enum SparklineInterval {\n /**\n * Unspecified interval. When requested, server may default to 24H.\n *\n * @generated from enum value: SPARKLINE_INTERVAL_UNSPECIFIED = 0;\n */\n SPARKLINE_INTERVAL_UNSPECIFIED = 0,\n\n /**\n * 1 hour sparkline. Typically returns up to 60 points (1-minute buckets).\n *\n * @generated from enum value: SPARKLINE_1H = 1;\n */\n SPARKLINE_1H = 1,\n\n /**\n * 24 hour sparkline. Typically returns up to 96 points (15-minute buckets).\n *\n * @generated from enum value: SPARKLINE_24H = 2;\n */\n SPARKLINE_24H = 2,\n\n /**\n * 1 week sparkline. Typically returns up to 168 points (1-hour buckets).\n *\n * @generated from enum value: SPARKLINE_1W = 3;\n */\n SPARKLINE_1W = 3,\n\n /**\n * 1 month sparkline. Typically returns up to 180 points (4-hour buckets).\n *\n * @generated from enum value: SPARKLINE_1M = 4;\n */\n SPARKLINE_1M = 4,\n}\n\n/**\n * Describes the enum marketoverview.v1.SparklineInterval.\n */\nexport const SparklineIntervalSchema: GenEnum<SparklineInterval> = /*@__PURE__*/\n enumDesc(file_marketoverview_v1_marketoverview, 0);\n\n/**\n * @generated from enum marketoverview.v1.MarketOrderBy\n */\nexport enum MarketOrderBy {\n /**\n * @generated from enum value: MARKET_ORDER_BY_UNSPECIFIED = 0;\n */\n MARKET_ORDER_BY_UNSPECIFIED = 0,\n\n /**\n * Sort by absolute 24h change (basis points).\n *\n * @generated from enum value: ORDER_BY_CHANGE_24H_BPS = 1;\n */\n ORDER_BY_CHANGE_24H_BPS = 1,\n\n /**\n * Sort by 24h quote volume scaled by the pair's quote_quantity_scale from\n * GetSpotConfig.\n *\n * @generated from enum value: ORDER_BY_VOLUME_24H_QUOTE = 2;\n */\n ORDER_BY_VOLUME_24H_QUOTE = 2,\n\n /**\n * Sort by last price in quote units scaled by 1e6.\n *\n * @generated from enum value: ORDER_BY_LAST_PRICE = 3;\n */\n ORDER_BY_LAST_PRICE = 3,\n\n /**\n * Sort by listing time (new listings first).\n *\n * @generated from enum value: ORDER_BY_DATE_ADDED = 4;\n */\n ORDER_BY_DATE_ADDED = 4,\n}\n\n/**\n * Describes the enum marketoverview.v1.MarketOrderBy.\n */\nexport const MarketOrderBySchema: GenEnum<MarketOrderBy> = /*@__PURE__*/\n enumDesc(file_marketoverview_v1_marketoverview, 1);\n\n/**\n * @generated from enum marketoverview.v1.SortDirection\n */\nexport enum SortDirection {\n /**\n * @generated from enum value: SORT_DIRECTION_UNSPECIFIED = 0;\n */\n SORT_DIRECTION_UNSPECIFIED = 0,\n\n /**\n * Ascending (oldest/lowest first).\n *\n * @generated from enum value: SORT_ASC = 1;\n */\n SORT_ASC = 1,\n\n /**\n * Descending (newest/highest first).\n *\n * @generated from enum value: SORT_DESC = 2;\n */\n SORT_DESC = 2,\n}\n\n/**\n * Describes the enum marketoverview.v1.SortDirection.\n */\nexport const SortDirectionSchema: GenEnum<SortDirection> = /*@__PURE__*/\n enumDesc(file_marketoverview_v1_marketoverview, 2);\n\n/**\n * ErrorCode is a stable domain error code enum for Market Overview.\n * It is used for consistent error surfaces across ConnectRPC and REST.\n *\n * @generated from enum marketoverview.v1.ErrorCode\n */\nexport enum ErrorCode {\n /**\n * @generated from enum value: ERROR_CODE_UNSPECIFIED = 0;\n */\n UNSPECIFIED = 0,\n\n /**\n * @generated from enum value: ERROR_CODE_BAD_REQUEST = 1;\n */\n BAD_REQUEST = 1,\n\n /**\n * @generated from enum value: ERROR_CODE_INVALID_ARGUMENT = 2;\n */\n INVALID_ARGUMENT = 2,\n\n /**\n * @generated from enum value: ERROR_CODE_NOT_FOUND = 3;\n */\n NOT_FOUND = 3,\n\n /**\n * @generated from enum value: ERROR_CODE_UNAVAILABLE = 4;\n */\n UNAVAILABLE = 4,\n\n /**\n * @generated from enum value: ERROR_CODE_UPSTREAM_ERROR = 5;\n */\n UPSTREAM_ERROR = 5,\n}\n\n/**\n * Describes the enum marketoverview.v1.ErrorCode.\n */\nexport const ErrorCodeSchema: GenEnum<ErrorCode> = /*@__PURE__*/\n enumDesc(file_marketoverview_v1_marketoverview, 3);\n\n/**\n * List ticker-style market overview rows with optional sparklines.\n * Supports symbol filtering, sorting, and pagination controls.\n *\n * @generated from service marketoverview.v1.MarketOverviewService\n */\nexport const MarketOverviewService: GenService<{\n /**\n * @generated from rpc marketoverview.v1.MarketOverviewService.ListMarketOverview\n */\n listMarketOverview: {\n methodKind: \"unary\";\n input: typeof ListMarketOverviewRequestSchema;\n output: typeof ListMarketOverviewResponseSchema;\n },\n}> = /*@__PURE__*/\n serviceDesc(file_marketoverview_v1_marketoverview, 0);\n\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAYA,MAAa,wCACX,uBAAS,whFAAwhF,CAAC,0BAA0B,CAAC;;;;;AAoB/jF,MAAa,oBACX,0BAAY,uCAAuC,CAAC;;;;;AA2BtD,MAAa,kBACX,0BAAY,uCAAuC,CAAC;;;;;AAiItD,MAAa,uBACX,0BAAY,uCAAuC,CAAC;;;;;AAgEtD,MAAa,kCACX,0BAAY,uCAAuC,CAAC;;;;;AAyBtD,MAAa,mCACX,0BAAY,uCAAuC,CAAC;;;;;AA4BtD,MAAa,4BACX,0BAAY,uCAAuC,CAAC;;;;;;;AAQtD,IAAY,oBAAL,yBAAA,mBAAA;;;;;;CAML,kBAAA,kBAAA,oCAAA,KAAA;;;;;;CAOA,kBAAA,kBAAA,kBAAA,KAAA;;;;;;CAOA,kBAAA,kBAAA,mBAAA,KAAA;;;;;;CAOA,kBAAA,kBAAA,kBAAA,KAAA;;;;;;CAOA,kBAAA,kBAAA,kBAAA,KAAA;;AACF,EAAA,CAAA,CAAA;;;;AAKA,MAAa,0BACX,uBAAS,uCAAuC,CAAC;;;;AAKnD,IAAY,gBAAL,yBAAA,eAAA;;;;CAIL,cAAA,cAAA,iCAAA,KAAA;;;;;;CAOA,cAAA,cAAA,6BAAA,KAAA;;;;;;;CAQA,cAAA,cAAA,+BAAA,KAAA;;;;;;CAOA,cAAA,cAAA,yBAAA,KAAA;;;;;;CAOA,cAAA,cAAA,yBAAA,KAAA;;AACF,EAAA,CAAA,CAAA;;;;AAKA,MAAa,sBACX,uBAAS,uCAAuC,CAAC;;;;AAKnD,IAAY,gBAAL,yBAAA,eAAA;;;;CAIL,cAAA,cAAA,gCAAA,KAAA;;;;;;CAOA,cAAA,cAAA,cAAA,KAAA;;;;;;CAOA,cAAA,cAAA,eAAA,KAAA;;AACF,EAAA,CAAA,CAAA;;;;AAKA,MAAa,sBACX,uBAAS,uCAAuC,CAAC;;;;;;;AAQnD,IAAY,YAAL,yBAAA,WAAA;;;;CAIL,UAAA,UAAA,iBAAA,KAAA;;;;CAKA,UAAA,UAAA,iBAAA,KAAA;;;;CAKA,UAAA,UAAA,sBAAA,KAAA;;;;CAKA,UAAA,UAAA,eAAA,KAAA;;;;CAKA,UAAA,UAAA,iBAAA,KAAA;;;;CAKA,UAAA,UAAA,oBAAA,KAAA;;AACF,EAAA,CAAA,CAAA;;;;AAKA,MAAa,kBACX,uBAAS,uCAAuC,CAAC;;;;;;;AAQnD,MAAa,wBAUX,0BAAY,uCAAuC,CAAC"}
1
+ {"version":3,"file":"marketoverview_pb.js","names":[],"sources":["../../../../src/gen/marketoverview/v1/marketoverview_pb.ts"],"sourcesContent":["// @generated by protoc-gen-es v2.13.0 with parameter \"target=ts,import_extension=js\"\n// @generated from file marketoverview/v1/marketoverview.proto (package marketoverview.v1, syntax proto3)\n/* eslint-disable */\n\nimport type { GenEnum, GenFile, GenMessage, GenService } from \"@bufbuild/protobuf/codegenv2\";\nimport { enumDesc, fileDesc, messageDesc, serviceDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport { file_polyester_api_options } from \"../../polyester/api/options_pb.js\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file marketoverview/v1/marketoverview.proto.\n */\nexport const file_marketoverview_v1_marketoverview: GenFile = /*@__PURE__*/\n fileDesc(\"CiZtYXJrZXRvdmVydmlldy92MS9tYXJrZXRvdmVydmlldy5wcm90bxIRbWFya2V0b3ZlcnZpZXcudjEiOQoLRXJyb3JEZXRhaWwSKgoEY29kZRgBIAEoDjIcLm1hcmtldG92ZXJ2aWV3LnYxLkVycm9yQ29kZSJaCglTcGFya2xpbmUSOAoIaW50ZXJ2YWwYASABKA4yJC5tYXJrZXRvdmVydmlldy52MS5TcGFya2xpbmVJbnRlcnZhbEIAEhMKC2Nsb3NlX3RpY2tzGAIgAygDIqwDCg5NYXJrZXRPdmVydmlldxIRCglzeW1ib2xfaWQYASABKA0SGAoQbGFzdF9wcmljZV90aWNrcxgDIAEoAxIYChBsYXN0X3RyYWRlX3RzX25zGAQgASgEEhYKDmNoYW5nZV8yNGhfYnBzGAUgASgFEhYKDmhpZ2hfMjRoX3RpY2tzGAYgASgDEhUKDWxvd18yNGhfdGlja3MYByABKAMSHgoWdm9sdW1lXzI0aF9iYXNlX3NjYWxlZBgIIAEoAxIfChd2b2x1bWVfMjRoX3F1b3RlX3NjYWxlZBgOIAEoAxIUCgxsaXN0ZWRfdHNfbnMYDyABKAQSFgoOYmVzdF9iaWRfdGlja3MYCSABKAMSGwoTYmVzdF9iaWRfcXR5X3NjYWxlZBgKIAEoAxIWCg5iZXN0X2Fza190aWNrcxgLIAEoAxIbChNiZXN0X2Fza19xdHlfc2NhbGVkGAwgASgDEjAKCnNwYXJrbGluZXMYDSADKAsyHC5tYXJrZXRvdmVydmlldy52MS5TcGFya2xpbmUSGQoRaW5kZXhfcHJpY2VfdGlja3MYECABKAMioAIKGUxpc3RNYXJrZXRPdmVydmlld1JlcXVlc3QSEwoJc3ltYm9sX2lkGAEgAygNQgASDwoFbGltaXQYAiABKA1CABIUCgpwYWdlX3Rva2VuGAMgASgJQgASNAoIb3JkZXJfYnkYBCABKA4yIC5tYXJrZXRvdmVydmlldy52MS5NYXJrZXRPcmRlckJ5QgASMAoEc29ydBgFIAEoDjIgLm1hcmtldG92ZXJ2aWV3LnYxLlNvcnREaXJlY3Rpb25CABIaChJpbmNsdWRlX3NwYXJrbGluZXMYBiABKAgSQwoTc3BhcmtsaW5lX2ludGVydmFscxgHIAMoDjIkLm1hcmtldG92ZXJ2aWV3LnYxLlNwYXJrbGluZUludGVydmFsQgAiawoaTGlzdE1hcmtldE92ZXJ2aWV3UmVzcG9uc2USMgoHbWFya2V0cxgBIAMoCzIhLm1hcmtldG92ZXJ2aWV3LnYxLk1hcmtldE92ZXJ2aWV3EhkKD25leHRfcGFnZV90b2tlbhgCIAEoCUIAIlgKE01hcmtldE92ZXJ2aWV3QmF0Y2gSMgoHbWFya2V0cxgBIAMoCzIhLm1hcmtldG92ZXJ2aWV3LnYxLk1hcmtldE92ZXJ2aWV3Eg0KBXRzX25zGAIgASgEKoABChFTcGFya2xpbmVJbnRlcnZhbBIiCh5TUEFSS0xJTkVfSU5URVJWQUxfVU5TUEVDSUZJRUQQABIQCgxTUEFSS0xJTkVfMUgQARIRCg1TUEFSS0xJTkVfMjRIEAISEAoMU1BBUktMSU5FXzFXEAMSEAoMU1BBUktMSU5FXzFNEAQqngEKDU1hcmtldE9yZGVyQnkSHwobTUFSS0VUX09SREVSX0JZX1VOU1BFQ0lGSUVEEAASGwoXT1JERVJfQllfQ0hBTkdFXzI0SF9CUFMQARIdChlPUkRFUl9CWV9WT0xVTUVfMjRIX1FVT1RFEAISFwoTT1JERVJfQllfTEFTVF9QUklDRRADEhcKE09SREVSX0JZX0RBVEVfQURERUQQBCpMCg1Tb3J0RGlyZWN0aW9uEh4KGlNPUlRfRElSRUNUSU9OX1VOU1BFQ0lGSUVEEAASDAoIU09SVF9BU0MQARINCglTT1JUX0RFU0MQAiq5AQoJRXJyb3JDb2RlEhoKFkVSUk9SX0NPREVfVU5TUEVDSUZJRUQQABIaChZFUlJPUl9DT0RFX0JBRF9SRVFVRVNUEAESHwobRVJST1JfQ09ERV9JTlZBTElEX0FSR1VNRU5UEAISGAoURVJST1JfQ09ERV9OT1RfRk9VTkQQAxIaChZFUlJPUl9DT0RFX1VOQVZBSUxBQkxFEAQSHQoZRVJST1JfQ09ERV9VUFNUUkVBTV9FUlJPUhAFMowBChVNYXJrZXRPdmVydmlld1NlcnZpY2UScwoSTGlzdE1hcmtldE92ZXJ2aWV3EiwubWFya2V0b3ZlcnZpZXcudjEuTGlzdE1hcmtldE92ZXJ2aWV3UmVxdWVzdBotLm1hcmtldG92ZXJ2aWV3LnYxLkxpc3RNYXJrZXRPdmVydmlld1Jlc3BvbnNlIgBCUFpOZ2l0aHViLmNvbS9GYWJyaWMtTGFicy9wb2x5ZXN0ZXItc2RrLWdvL2dlbi9tYXJrZXRvdmVydmlldy92MTttYXJrZXRvdmVydmlld3YxYgZwcm90bzM=\", [file_polyester_api_options]);\n\n/**\n * ErrorDetail carries a typed domain error code for machine-readable handling.\n *\n * @generated from message marketoverview.v1.ErrorDetail\n */\nexport type ErrorDetail = Message<\"marketoverview.v1.ErrorDetail\"> & {\n /**\n * Stable error code for programmatic matching.\n *\n * @generated from field: marketoverview.v1.ErrorCode code = 1;\n */\n code: ErrorCode;\n};\n\n/**\n * Describes the message marketoverview.v1.ErrorDetail.\n * Use `create(ErrorDetailSchema)` to create a new message.\n */\nexport const ErrorDetailSchema: GenMessage<ErrorDetail> = /*@__PURE__*/\n messageDesc(file_marketoverview_v1_marketoverview, 0);\n\n/**\n * Sparkline contains newest-first close prices for one time range.\n *\n * @generated from message marketoverview.v1.Sparkline\n */\nexport type Sparkline = Message<\"marketoverview.v1.Sparkline\"> & {\n /**\n * Time range and sampling resolution represented by these close prices.\n *\n * @generated from field: marketoverview.v1.SparklineInterval interval = 1;\n */\n interval: SparklineInterval;\n\n /**\n * Newest-first close prices in quote units scaled by 1e6.\n *\n * @generated from field: repeated int64 close_ticks = 2;\n */\n closeTicks: bigint[];\n};\n\n/**\n * Describes the message marketoverview.v1.Sparkline.\n * Use `create(SparklineSchema)` to create a new message.\n */\nexport const SparklineSchema: GenMessage<Sparkline> = /*@__PURE__*/\n messageDesc(file_marketoverview_v1_marketoverview, 1);\n\n/**\n * @generated from message marketoverview.v1.MarketOverview\n */\nexport type MarketOverview = Message<\"marketoverview.v1.MarketOverview\"> & {\n /**\n * Numeric spot market identifier.\n *\n * @generated from field: uint32 symbol_id = 1;\n */\n symbolId: number;\n\n /**\n * Last traded price in quote units scaled by 1e6.\n *\n * @generated from field: int64 last_price_ticks = 3;\n */\n lastPriceTicks: bigint;\n\n /**\n * Last trade timestamp in nanoseconds since epoch.\n *\n * @generated from field: uint64 last_trade_ts_ns = 4;\n */\n lastTradeTsNs: bigint;\n\n /**\n * Rolling 24h change expressed in basis points (bp). Example: +123 = +1.23%.\n *\n * @generated from field: int32 change_24h_bps = 5;\n */\n change24hBps: number;\n\n /**\n * Rolling 24h stats.\n * Highest traded price in the 24h window, in quote units scaled by 1e6.\n *\n * @generated from field: int64 high_24h_ticks = 6;\n */\n high24hTicks: bigint;\n\n /**\n * Lowest traded price in the 24h window, in quote units scaled by 1e6.\n *\n * @generated from field: int64 low_24h_ticks = 7;\n */\n low24hTicks: bigint;\n\n /**\n * Rolling 24h base volume scaled by the pair's base_quantity_scale from\n * GetSpotConfig.\n *\n * @generated from field: int64 volume_24h_base_scaled = 8;\n */\n volume24hBaseScaled: bigint;\n\n /**\n * Rolling 24h quote volume scaled by the pair's quote_quantity_scale from\n * GetSpotConfig.\n *\n * @generated from field: int64 volume_24h_quote_scaled = 14;\n */\n volume24hQuoteScaled: bigint;\n\n /**\n * Listing timestamp in nanoseconds since epoch.\n *\n * @generated from field: uint64 listed_ts_ns = 15;\n */\n listedTsNs: bigint;\n\n /**\n * Current best bid price in quote units scaled by 1e6.\n *\n * @generated from field: int64 best_bid_ticks = 9;\n */\n bestBidTicks: bigint;\n\n /**\n * Best bid quantity scaled by the pair's base_quantity_scale from\n * GetSpotConfig.\n *\n * @generated from field: int64 best_bid_qty_scaled = 10;\n */\n bestBidQtyScaled: bigint;\n\n /**\n * Current best ask price in quote units scaled by 1e6.\n *\n * @generated from field: int64 best_ask_ticks = 11;\n */\n bestAskTicks: bigint;\n\n /**\n * Best ask quantity scaled by the pair's base_quantity_scale from\n * GetSpotConfig.\n *\n * @generated from field: int64 best_ask_qty_scaled = 12;\n */\n bestAskQtyScaled: bigint;\n\n /**\n * Optional sparklines (requested explicitly).\n *\n * @generated from field: repeated marketoverview.v1.Sparkline sparklines = 13;\n */\n sparklines: Sparkline[];\n\n /**\n * Current multi-venue index price in quote units scaled by 1e6.\n * Zero when no fresh, valid index price is available.\n *\n * @generated from field: int64 index_price_ticks = 16;\n */\n indexPriceTicks: bigint;\n};\n\n/**\n * Describes the message marketoverview.v1.MarketOverview.\n * Use `create(MarketOverviewSchema)` to create a new message.\n */\nexport const MarketOverviewSchema: GenMessage<MarketOverview> = /*@__PURE__*/\n messageDesc(file_marketoverview_v1_marketoverview, 2);\n\n/**\n * @generated from message marketoverview.v1.ListMarketOverviewRequest\n */\nexport type ListMarketOverviewRequest = Message<\"marketoverview.v1.ListMarketOverviewRequest\"> & {\n /**\n * Filter by stable numeric pair IDs from GetSpotConfig. When empty, returns\n * all enabled markets.\n *\n * @generated from field: repeated uint32 symbol_id = 1;\n */\n symbolId: number[];\n\n /**\n * Maximum number of markets to return. Defaults to 50 when omitted; maximum\n * is 2000.\n *\n * @generated from field: uint32 limit = 2;\n */\n limit: number;\n\n /**\n * Opaque keyset cursor from a previous response. The cursor is exclusive and\n * bound to symbol IDs, sort key, and sort direction. Sparkline options\n * affect only response enrichment and may change between pages.\n *\n * @generated from field: string page_token = 3;\n */\n pageToken: string;\n\n /**\n * Sort key. When unset/UNSPECIFIED, defaults to 24h quote volume.\n *\n * @generated from field: marketoverview.v1.MarketOrderBy order_by = 4;\n */\n orderBy: MarketOrderBy;\n\n /**\n * Sort direction (DESC=newest/highest first).\n *\n * @generated from field: marketoverview.v1.SortDirection sort = 5;\n */\n sort: SortDirection;\n\n /**\n * When true, include sparklines in each MarketOverview.\n *\n * @generated from field: bool include_sparklines = 6;\n */\n includeSparklines: boolean;\n\n /**\n * Which sparklines to include. If empty and include_sparklines is true,\n * server defaults to 24h.\n *\n * @generated from field: repeated marketoverview.v1.SparklineInterval sparkline_intervals = 7;\n */\n sparklineIntervals: SparklineInterval[];\n};\n\n/**\n * Describes the message marketoverview.v1.ListMarketOverviewRequest.\n * Use `create(ListMarketOverviewRequestSchema)` to create a new message.\n */\nexport const ListMarketOverviewRequestSchema: GenMessage<ListMarketOverviewRequest> = /*@__PURE__*/\n messageDesc(file_marketoverview_v1_marketoverview, 3);\n\n/**\n * @generated from message marketoverview.v1.ListMarketOverviewResponse\n */\nexport type ListMarketOverviewResponse = Message<\"marketoverview.v1.ListMarketOverviewResponse\"> & {\n /**\n * Market overview rows for the requested page.\n *\n * @generated from field: repeated marketoverview.v1.MarketOverview markets = 1;\n */\n markets: MarketOverview[];\n\n /**\n * Opaque cursor for the next page. Empty when no more results exist.\n *\n * @generated from field: string next_page_token = 2;\n */\n nextPageToken: string;\n};\n\n/**\n * Describes the message marketoverview.v1.ListMarketOverviewResponse.\n * Use `create(ListMarketOverviewResponseSchema)` to create a new message.\n */\nexport const ListMarketOverviewResponseSchema: GenMessage<ListMarketOverviewResponse> = /*@__PURE__*/\n messageDesc(file_marketoverview_v1_marketoverview, 4);\n\n/**\n * MarketOverviewBatch is a websocket payload carrying batched market overview\n * updates. It is published to a single all-markets channel at a fixed cadence.\n *\n * @generated from message marketoverview.v1.MarketOverviewBatch\n */\nexport type MarketOverviewBatch = Message<\"marketoverview.v1.MarketOverviewBatch\"> & {\n /**\n * Market overviews included in this batch.\n *\n * @generated from field: repeated marketoverview.v1.MarketOverview markets = 1;\n */\n markets: MarketOverview[];\n\n /**\n * Batch publish timestamp in nanoseconds since epoch.\n *\n * @generated from field: uint64 ts_ns = 2;\n */\n tsNs: bigint;\n};\n\n/**\n * Describes the message marketoverview.v1.MarketOverviewBatch.\n * Use `create(MarketOverviewBatchSchema)` to create a new message.\n */\nexport const MarketOverviewBatchSchema: GenMessage<MarketOverviewBatch> = /*@__PURE__*/\n messageDesc(file_marketoverview_v1_marketoverview, 5);\n\n/**\n * SparklineInterval identifies the time range and sampling resolution for a\n * sparkline.\n *\n * @generated from enum marketoverview.v1.SparklineInterval\n */\nexport enum SparklineInterval {\n /**\n * Unspecified interval. When requested, server may default to 24H.\n *\n * @generated from enum value: SPARKLINE_INTERVAL_UNSPECIFIED = 0;\n */\n SPARKLINE_INTERVAL_UNSPECIFIED = 0,\n\n /**\n * 1 hour sparkline. Typically returns up to 60 points (1-minute buckets).\n *\n * @generated from enum value: SPARKLINE_1H = 1;\n */\n SPARKLINE_1H = 1,\n\n /**\n * 24 hour sparkline. Typically returns up to 96 points (15-minute buckets).\n *\n * @generated from enum value: SPARKLINE_24H = 2;\n */\n SPARKLINE_24H = 2,\n\n /**\n * 1 week sparkline. Typically returns up to 168 points (1-hour buckets).\n *\n * @generated from enum value: SPARKLINE_1W = 3;\n */\n SPARKLINE_1W = 3,\n\n /**\n * 1 month sparkline. Typically returns up to 180 points (4-hour buckets).\n *\n * @generated from enum value: SPARKLINE_1M = 4;\n */\n SPARKLINE_1M = 4,\n}\n\n/**\n * Describes the enum marketoverview.v1.SparklineInterval.\n */\nexport const SparklineIntervalSchema: GenEnum<SparklineInterval> = /*@__PURE__*/\n enumDesc(file_marketoverview_v1_marketoverview, 0);\n\n/**\n * @generated from enum marketoverview.v1.MarketOrderBy\n */\nexport enum MarketOrderBy {\n /**\n * @generated from enum value: MARKET_ORDER_BY_UNSPECIFIED = 0;\n */\n MARKET_ORDER_BY_UNSPECIFIED = 0,\n\n /**\n * Sort by absolute 24h change (basis points).\n *\n * @generated from enum value: ORDER_BY_CHANGE_24H_BPS = 1;\n */\n ORDER_BY_CHANGE_24H_BPS = 1,\n\n /**\n * Sort by 24h quote volume scaled by the pair's quote_quantity_scale from\n * GetSpotConfig.\n *\n * @generated from enum value: ORDER_BY_VOLUME_24H_QUOTE = 2;\n */\n ORDER_BY_VOLUME_24H_QUOTE = 2,\n\n /**\n * Sort by last price in quote units scaled by 1e6.\n *\n * @generated from enum value: ORDER_BY_LAST_PRICE = 3;\n */\n ORDER_BY_LAST_PRICE = 3,\n\n /**\n * Sort by listing time (new listings first).\n *\n * @generated from enum value: ORDER_BY_DATE_ADDED = 4;\n */\n ORDER_BY_DATE_ADDED = 4,\n}\n\n/**\n * Describes the enum marketoverview.v1.MarketOrderBy.\n */\nexport const MarketOrderBySchema: GenEnum<MarketOrderBy> = /*@__PURE__*/\n enumDesc(file_marketoverview_v1_marketoverview, 1);\n\n/**\n * @generated from enum marketoverview.v1.SortDirection\n */\nexport enum SortDirection {\n /**\n * @generated from enum value: SORT_DIRECTION_UNSPECIFIED = 0;\n */\n SORT_DIRECTION_UNSPECIFIED = 0,\n\n /**\n * Ascending (oldest/lowest first).\n *\n * @generated from enum value: SORT_ASC = 1;\n */\n SORT_ASC = 1,\n\n /**\n * Descending (newest/highest first).\n *\n * @generated from enum value: SORT_DESC = 2;\n */\n SORT_DESC = 2,\n}\n\n/**\n * Describes the enum marketoverview.v1.SortDirection.\n */\nexport const SortDirectionSchema: GenEnum<SortDirection> = /*@__PURE__*/\n enumDesc(file_marketoverview_v1_marketoverview, 2);\n\n/**\n * ErrorCode is a stable domain error code enum for Market Overview.\n * It is used for consistent error surfaces across ConnectRPC and REST.\n *\n * @generated from enum marketoverview.v1.ErrorCode\n */\nexport enum ErrorCode {\n /**\n * @generated from enum value: ERROR_CODE_UNSPECIFIED = 0;\n */\n UNSPECIFIED = 0,\n\n /**\n * @generated from enum value: ERROR_CODE_BAD_REQUEST = 1;\n */\n BAD_REQUEST = 1,\n\n /**\n * @generated from enum value: ERROR_CODE_INVALID_ARGUMENT = 2;\n */\n INVALID_ARGUMENT = 2,\n\n /**\n * @generated from enum value: ERROR_CODE_NOT_FOUND = 3;\n */\n NOT_FOUND = 3,\n\n /**\n * @generated from enum value: ERROR_CODE_UNAVAILABLE = 4;\n */\n UNAVAILABLE = 4,\n\n /**\n * @generated from enum value: ERROR_CODE_UPSTREAM_ERROR = 5;\n */\n UPSTREAM_ERROR = 5,\n}\n\n/**\n * Describes the enum marketoverview.v1.ErrorCode.\n */\nexport const ErrorCodeSchema: GenEnum<ErrorCode> = /*@__PURE__*/\n enumDesc(file_marketoverview_v1_marketoverview, 3);\n\n/**\n * List ticker-style market overview rows with optional sparklines.\n * Supports symbol filtering, sorting, and pagination controls.\n *\n * @generated from service marketoverview.v1.MarketOverviewService\n */\nexport const MarketOverviewService: GenService<{\n /**\n * @generated from rpc marketoverview.v1.MarketOverviewService.ListMarketOverview\n */\n listMarketOverview: {\n methodKind: \"unary\";\n input: typeof ListMarketOverviewRequestSchema;\n output: typeof ListMarketOverviewResponseSchema;\n },\n}> = /*@__PURE__*/\n serviceDesc(file_marketoverview_v1_marketoverview, 0);\n\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAYA,MAAa,wCACX,uBAAS,wgFAAwgF,CAAC,0BAA0B,CAAC;;;;;AAoB/iF,MAAa,oBACX,0BAAY,uCAAuC,CAAC;;;;;AA2BtD,MAAa,kBACX,0BAAY,uCAAuC,CAAC;;;;;AA0HtD,MAAa,uBACX,0BAAY,uCAAuC,CAAC;;;;;AAiEtD,MAAa,kCACX,0BAAY,uCAAuC,CAAC;;;;;AAyBtD,MAAa,mCACX,0BAAY,uCAAuC,CAAC;;;;;AA4BtD,MAAa,4BACX,0BAAY,uCAAuC,CAAC;;;;;;;AAQtD,IAAY,oBAAL,yBAAA,mBAAA;;;;;;CAML,kBAAA,kBAAA,oCAAA,KAAA;;;;;;CAOA,kBAAA,kBAAA,kBAAA,KAAA;;;;;;CAOA,kBAAA,kBAAA,mBAAA,KAAA;;;;;;CAOA,kBAAA,kBAAA,kBAAA,KAAA;;;;;;CAOA,kBAAA,kBAAA,kBAAA,KAAA;;AACF,EAAA,CAAA,CAAA;;;;AAKA,MAAa,0BACX,uBAAS,uCAAuC,CAAC;;;;AAKnD,IAAY,gBAAL,yBAAA,eAAA;;;;CAIL,cAAA,cAAA,iCAAA,KAAA;;;;;;CAOA,cAAA,cAAA,6BAAA,KAAA;;;;;;;CAQA,cAAA,cAAA,+BAAA,KAAA;;;;;;CAOA,cAAA,cAAA,yBAAA,KAAA;;;;;;CAOA,cAAA,cAAA,yBAAA,KAAA;;AACF,EAAA,CAAA,CAAA;;;;AAKA,MAAa,sBACX,uBAAS,uCAAuC,CAAC;;;;AAKnD,IAAY,gBAAL,yBAAA,eAAA;;;;CAIL,cAAA,cAAA,gCAAA,KAAA;;;;;;CAOA,cAAA,cAAA,cAAA,KAAA;;;;;;CAOA,cAAA,cAAA,eAAA,KAAA;;AACF,EAAA,CAAA,CAAA;;;;AAKA,MAAa,sBACX,uBAAS,uCAAuC,CAAC;;;;;;;AAQnD,IAAY,YAAL,yBAAA,WAAA;;;;CAIL,UAAA,UAAA,iBAAA,KAAA;;;;CAKA,UAAA,UAAA,iBAAA,KAAA;;;;CAKA,UAAA,UAAA,sBAAA,KAAA;;;;CAKA,UAAA,UAAA,eAAA,KAAA;;;;CAKA,UAAA,UAAA,iBAAA,KAAA;;;;CAKA,UAAA,UAAA,oBAAA,KAAA;;AACF,EAAA,CAAA,CAAA;;;;AAKA,MAAa,kBACX,uBAAS,uCAAuC,CAAC;;;;;;;AAQnD,MAAa,wBAUX,0BAAY,uCAAuC,CAAC"}
@@ -15,11 +15,11 @@ declare const file_orderbook_v1_orderbook: GenFile;
15
15
  */
16
16
  type GetOrderBookRequest = Message<"orderbook.v1.GetOrderBookRequest"> & {
17
17
  /**
18
- * e.g. "BTC-USDT"; resolved to symbol_id server-side.
18
+ * Stable numeric pair ID from GetSpotConfig.
19
19
  *
20
- * @generated from field: string symbol = 1;
20
+ * @generated from field: uint32 symbol_id = 1;
21
21
  */
22
- symbol: string;
22
+ symbolId: number;
23
23
  /**
24
24
  * Requested depth per side (number of price levels). Default is 50.
25
25
  *
@@ -16,7 +16,7 @@ var orderbook_pb_exports = /* @__PURE__ */ __exportAll({
16
16
  /**
17
17
  * Describes the file orderbook/v1/orderbook.proto.
18
18
  */
19
- const file_orderbook_v1_orderbook = /*@__PURE__*/ fileDesc("ChxvcmRlcmJvb2svdjEvb3JkZXJib29rLnByb3RvEgxvcmRlcmJvb2sudjEiTQoTR2V0T3JkZXJCb29rUmVxdWVzdBIQCgZzeW1ib2wYASABKAlCABIkCgVkZXB0aBgCIAEoDjITLm9yZGVyYm9vay52MS5EZXB0aEIAIjUKClByaWNlTGV2ZWwSEwoLcHJpY2VfdGlja3MYASABKAMSEgoKcXR5X3NjYWxlZBgCIAEoAyKzAQoUR2V0T3JkZXJCb29rUmVzcG9uc2USEQoJc3ltYm9sX2lkGAEgASgNEhAKCGJvb2tfc2VxGAIgASgEEiYKBGJpZHMYAyADKAsyGC5vcmRlcmJvb2sudjEuUHJpY2VMZXZlbBImCgRhc2tzGAQgAygLMhgub3JkZXJib29rLnYxLlByaWNlTGV2ZWwSJgoCdHMYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wItgBCg5PcmRlckJvb2tEZWx0YRIRCglzeW1ib2xfaWQYASABKA0SFgoOYm9va19zZXFfc3RhcnQYAiABKAQSFAoMYm9va19zZXFfZW5kGAMgASgEEiYKBGJpZHMYBCADKAsyGC5vcmRlcmJvb2sudjEuUHJpY2VMZXZlbBImCgRhc2tzGAUgAygLMhgub3JkZXJib29rLnYxLlByaWNlTGV2ZWwSDQoFcmVzZXQYBiABKAgSJgoCdHMYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wKp8BCgVEZXB0aBIVChFERVBUSF9VTlNQRUNJRklFRBAAEgsKB0RFUFRIXzEQARILCgdERVBUSF81EAISDAoIREVQVEhfMTAQAxIMCghERVBUSF8yMBAEEgwKCERFUFRIXzUwEAUSDQoJREVQVEhfMTAwEAYSDQoJREVQVEhfMjAwEAcSDQoJREVQVEhfNTAwEAgSDgoKREVQVEhfMTAwMBAJMmsKEE9yZGVyYm9va1NlcnZpY2USVwoMR2V0T3JkZXJCb29rEiEub3JkZXJib29rLnYxLkdldE9yZGVyQm9va1JlcXVlc3QaIi5vcmRlcmJvb2sudjEuR2V0T3JkZXJCb29rUmVzcG9uc2UiAEJGWkRnaXRodWIuY29tL0ZhYnJpYy1MYWJzL3BvbHllc3Rlci1zZGstZ28vZ2VuL29yZGVyYm9vay92MTtvcmRlcmJvb2t2MWIGcHJvdG8z", [file_google_protobuf_timestamp, file_polyester_api_options]);
19
+ const file_orderbook_v1_orderbook = /*@__PURE__*/ fileDesc("ChxvcmRlcmJvb2svdjEvb3JkZXJib29rLnByb3RvEgxvcmRlcmJvb2sudjEiUAoTR2V0T3JkZXJCb29rUmVxdWVzdBITCglzeW1ib2xfaWQYASABKA1CABIkCgVkZXB0aBgCIAEoDjITLm9yZGVyYm9vay52MS5EZXB0aEIAIjUKClByaWNlTGV2ZWwSEwoLcHJpY2VfdGlja3MYASABKAMSEgoKcXR5X3NjYWxlZBgCIAEoAyKzAQoUR2V0T3JkZXJCb29rUmVzcG9uc2USEQoJc3ltYm9sX2lkGAEgASgNEhAKCGJvb2tfc2VxGAIgASgEEiYKBGJpZHMYAyADKAsyGC5vcmRlcmJvb2sudjEuUHJpY2VMZXZlbBImCgRhc2tzGAQgAygLMhgub3JkZXJib29rLnYxLlByaWNlTGV2ZWwSJgoCdHMYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wItgBCg5PcmRlckJvb2tEZWx0YRIRCglzeW1ib2xfaWQYASABKA0SFgoOYm9va19zZXFfc3RhcnQYAiABKAQSFAoMYm9va19zZXFfZW5kGAMgASgEEiYKBGJpZHMYBCADKAsyGC5vcmRlcmJvb2sudjEuUHJpY2VMZXZlbBImCgRhc2tzGAUgAygLMhgub3JkZXJib29rLnYxLlByaWNlTGV2ZWwSDQoFcmVzZXQYBiABKAgSJgoCdHMYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wKp8BCgVEZXB0aBIVChFERVBUSF9VTlNQRUNJRklFRBAAEgsKB0RFUFRIXzEQARILCgdERVBUSF81EAISDAoIREVQVEhfMTAQAxIMCghERVBUSF8yMBAEEgwKCERFUFRIXzUwEAUSDQoJREVQVEhfMTAwEAYSDQoJREVQVEhfMjAwEAcSDQoJREVQVEhfNTAwEAgSDgoKREVQVEhfMTAwMBAJMmsKEE9yZGVyYm9va1NlcnZpY2USVwoMR2V0T3JkZXJCb29rEiEub3JkZXJib29rLnYxLkdldE9yZGVyQm9va1JlcXVlc3QaIi5vcmRlcmJvb2sudjEuR2V0T3JkZXJCb29rUmVzcG9uc2UiAEJGWkRnaXRodWIuY29tL0ZhYnJpYy1MYWJzL3BvbHllc3Rlci1zZGstZ28vZ2VuL29yZGVyYm9vay92MTtvcmRlcmJvb2t2MWIGcHJvdG8z", [file_google_protobuf_timestamp, file_polyester_api_options]);
20
20
  /**
21
21
  * Describes the message orderbook.v1.GetOrderBookRequest.
22
22
  * Use `create(GetOrderBookRequestSchema)` to create a new message.
@@ -1 +1 @@
1
- {"version":3,"file":"orderbook_pb.js","names":[],"sources":["../../../../src/gen/orderbook/v1/orderbook_pb.ts"],"sourcesContent":["// @generated by protoc-gen-es v2.13.0 with parameter \"target=ts,import_extension=js\"\n// @generated from file orderbook/v1/orderbook.proto (package orderbook.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 orderbook/v1/orderbook.proto.\n */\nexport const file_orderbook_v1_orderbook: GenFile = /*@__PURE__*/\n fileDesc(\"ChxvcmRlcmJvb2svdjEvb3JkZXJib29rLnByb3RvEgxvcmRlcmJvb2sudjEiTQoTR2V0T3JkZXJCb29rUmVxdWVzdBIQCgZzeW1ib2wYASABKAlCABIkCgVkZXB0aBgCIAEoDjITLm9yZGVyYm9vay52MS5EZXB0aEIAIjUKClByaWNlTGV2ZWwSEwoLcHJpY2VfdGlja3MYASABKAMSEgoKcXR5X3NjYWxlZBgCIAEoAyKzAQoUR2V0T3JkZXJCb29rUmVzcG9uc2USEQoJc3ltYm9sX2lkGAEgASgNEhAKCGJvb2tfc2VxGAIgASgEEiYKBGJpZHMYAyADKAsyGC5vcmRlcmJvb2sudjEuUHJpY2VMZXZlbBImCgRhc2tzGAQgAygLMhgub3JkZXJib29rLnYxLlByaWNlTGV2ZWwSJgoCdHMYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wItgBCg5PcmRlckJvb2tEZWx0YRIRCglzeW1ib2xfaWQYASABKA0SFgoOYm9va19zZXFfc3RhcnQYAiABKAQSFAoMYm9va19zZXFfZW5kGAMgASgEEiYKBGJpZHMYBCADKAsyGC5vcmRlcmJvb2sudjEuUHJpY2VMZXZlbBImCgRhc2tzGAUgAygLMhgub3JkZXJib29rLnYxLlByaWNlTGV2ZWwSDQoFcmVzZXQYBiABKAgSJgoCdHMYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wKp8BCgVEZXB0aBIVChFERVBUSF9VTlNQRUNJRklFRBAAEgsKB0RFUFRIXzEQARILCgdERVBUSF81EAISDAoIREVQVEhfMTAQAxIMCghERVBUSF8yMBAEEgwKCERFUFRIXzUwEAUSDQoJREVQVEhfMTAwEAYSDQoJREVQVEhfMjAwEAcSDQoJREVQVEhfNTAwEAgSDgoKREVQVEhfMTAwMBAJMmsKEE9yZGVyYm9va1NlcnZpY2USVwoMR2V0T3JkZXJCb29rEiEub3JkZXJib29rLnYxLkdldE9yZGVyQm9va1JlcXVlc3QaIi5vcmRlcmJvb2sudjEuR2V0T3JkZXJCb29rUmVzcG9uc2UiAEJGWkRnaXRodWIuY29tL0ZhYnJpYy1MYWJzL3BvbHllc3Rlci1zZGstZ28vZ2VuL29yZGVyYm9vay92MTtvcmRlcmJvb2t2MWIGcHJvdG8z\", [file_google_protobuf_timestamp, file_polyester_api_options]);\n\n/**\n * GetOrderBookRequest describes a snapshot view request.\n *\n * @generated from message orderbook.v1.GetOrderBookRequest\n */\nexport type GetOrderBookRequest = Message<\"orderbook.v1.GetOrderBookRequest\"> & {\n /**\n * e.g. \"BTC-USDT\"; resolved to symbol_id server-side.\n *\n * @generated from field: string symbol = 1;\n */\n symbol: string;\n\n /**\n * Requested depth per side (number of price levels). Default is 50.\n *\n * @generated from field: orderbook.v1.Depth depth = 2;\n */\n depth: Depth;\n};\n\n/**\n * Describes the message orderbook.v1.GetOrderBookRequest.\n * Use `create(GetOrderBookRequestSchema)` to create a new message.\n */\nexport const GetOrderBookRequestSchema: GenMessage<GetOrderBookRequest> = /*@__PURE__*/\n messageDesc(file_orderbook_v1_orderbook, 0);\n\n/**\n * PriceLevel uses scaled integers for the binary (protobuf) API (low-latency).\n * REST surfaces expose decimal strings via DTO conversion.\n *\n * @generated from message orderbook.v1.PriceLevel\n */\nexport type PriceLevel = Message<\"orderbook.v1.PriceLevel\"> & {\n /**\n * Price in quote units scaled by 1e6.\n *\n * @generated from field: int64 price_ticks = 1;\n */\n priceTicks: bigint;\n\n /**\n * Quantity scaled by the pair's base_quantity_scale from GetSpotConfig.\n *\n * @generated from field: int64 qty_scaled = 2;\n */\n qtyScaled: bigint;\n};\n\n/**\n * Describes the message orderbook.v1.PriceLevel.\n * Use `create(PriceLevelSchema)` to create a new message.\n */\nexport const PriceLevelSchema: GenMessage<PriceLevel> = /*@__PURE__*/\n messageDesc(file_orderbook_v1_orderbook, 1);\n\n/**\n * GetOrderBookResponse is a depth snapshot for the binary (protobuf) API (scaled integers).\n * REST surfaces expose decimal strings via DTO conversion.\n *\n * @generated from message orderbook.v1.GetOrderBookResponse\n */\nexport type GetOrderBookResponse = Message<\"orderbook.v1.GetOrderBookResponse\"> & {\n /**\n * Numeric symbol identifier (client resolves to symbol string).\n *\n * @generated from field: uint32 symbol_id = 1;\n */\n symbolId: number;\n\n /**\n * Monotonic book sequence for this symbol.\n *\n * @generated from field: uint64 book_seq = 2;\n */\n bookSeq: bigint;\n\n /**\n * Best bid first; descending price.\n *\n * @generated from field: repeated orderbook.v1.PriceLevel bids = 3;\n */\n bids: PriceLevel[];\n\n /**\n * Best ask first; ascending price.\n *\n * @generated from field: repeated orderbook.v1.PriceLevel asks = 4;\n */\n asks: PriceLevel[];\n\n /**\n * Timestamp associated with this snapshot (best-effort).\n *\n * @generated from field: google.protobuf.Timestamp ts = 5;\n */\n ts?: Timestamp | undefined;\n};\n\n/**\n * Describes the message orderbook.v1.GetOrderBookResponse.\n * Use `create(GetOrderBookResponseSchema)` to create a new message.\n */\nexport const GetOrderBookResponseSchema: GenMessage<GetOrderBookResponse> = /*@__PURE__*/\n messageDesc(file_orderbook_v1_orderbook, 2);\n\n/**\n * OrderBookDelta is an incremental update to the orderbook state.\n * Uses scaled integers (binary protobuf) for realtime streaming performance.\n *\n * Semantics:\n * - For each side, each [price_ticks] entry is a SET at that price:\n * - qty_scaled > 0 => set/replace that level quantity\n * - qty_scaled == 0 => delete that level\n * - reset=true indicates the book should be cleared before applying any levels.\n *\n * Clients are expected to initialize from GetOrderBook (snapshot) and then\n * apply deltas in order. If a gap is detected, clients should refetch a\n * snapshot.\n *\n * @generated from message orderbook.v1.OrderBookDelta\n */\nexport type OrderBookDelta = Message<\"orderbook.v1.OrderBookDelta\"> & {\n /**\n * Numeric symbol identifier.\n *\n * @generated from field: uint32 symbol_id = 1;\n */\n symbolId: number;\n\n /**\n * Monotonic book sequence range covered by this update.\n * When reset=true, book_seq_start may be 0.\n *\n * @generated from field: uint64 book_seq_start = 2;\n */\n bookSeqStart: bigint;\n\n /**\n * Monotonic book sequence at the end of this update's range. Consumers can\n * retain it as the last applied sequence and ignore updates that do not advance it.\n *\n * @generated from field: uint64 book_seq_end = 3;\n */\n bookSeqEnd: bigint;\n\n /**\n * Bid-side updates (SET semantics at price_ticks).\n *\n * @generated from field: repeated orderbook.v1.PriceLevel bids = 4;\n */\n bids: PriceLevel[];\n\n /**\n * Ask-side updates (SET semantics at price_ticks).\n *\n * @generated from field: repeated orderbook.v1.PriceLevel asks = 5;\n */\n asks: PriceLevel[];\n\n /**\n * If true, consumers should clear their local book state before applying\n * updates.\n *\n * @generated from field: bool reset = 6;\n */\n reset: boolean;\n\n /**\n * Timestamp associated with this update (best-effort).\n *\n * @generated from field: google.protobuf.Timestamp ts = 7;\n */\n ts?: Timestamp | undefined;\n};\n\n/**\n * Describes the message orderbook.v1.OrderBookDelta.\n * Use `create(OrderBookDeltaSchema)` to create a new message.\n */\nexport const OrderBookDeltaSchema: GenMessage<OrderBookDelta> = /*@__PURE__*/\n messageDesc(file_orderbook_v1_orderbook, 3);\n\n/**\n * Depth specifies the number of price levels per side.\n *\n * @generated from enum orderbook.v1.Depth\n */\nexport enum Depth {\n /**\n * Default depth (50 levels per side).\n *\n * @generated from enum value: DEPTH_UNSPECIFIED = 0;\n */\n DEPTH_UNSPECIFIED = 0,\n\n /**\n * 1 level per side (top of book / best bid-ask).\n *\n * @generated from enum value: DEPTH_1 = 1;\n */\n DEPTH_1 = 1,\n\n /**\n * 5 levels per side.\n *\n * @generated from enum value: DEPTH_5 = 2;\n */\n DEPTH_5 = 2,\n\n /**\n * 10 levels per side.\n *\n * @generated from enum value: DEPTH_10 = 3;\n */\n DEPTH_10 = 3,\n\n /**\n * 20 levels per side.\n *\n * @generated from enum value: DEPTH_20 = 4;\n */\n DEPTH_20 = 4,\n\n /**\n * 50 levels per side.\n *\n * @generated from enum value: DEPTH_50 = 5;\n */\n DEPTH_50 = 5,\n\n /**\n * 100 levels per side.\n *\n * @generated from enum value: DEPTH_100 = 6;\n */\n DEPTH_100 = 6,\n\n /**\n * 200 levels per side.\n *\n * @generated from enum value: DEPTH_200 = 7;\n */\n DEPTH_200 = 7,\n\n /**\n * 500 levels per side.\n *\n * @generated from enum value: DEPTH_500 = 8;\n */\n DEPTH_500 = 8,\n\n /**\n * 1000 levels per side.\n *\n * @generated from enum value: DEPTH_1000 = 9;\n */\n DEPTH_1000 = 9,\n}\n\n/**\n * Describes the enum orderbook.v1.Depth.\n */\nexport const DepthSchema: GenEnum<Depth> = /*@__PURE__*/\n enumDesc(file_orderbook_v1_orderbook, 0);\n\n/**\n * @generated from service orderbook.v1.OrderbookService\n */\nexport const OrderbookService: GenService<{\n /**\n * Retrieve a spot order book depth snapshot for a symbol.\n * Supports selectable depth per side and returns best bid/ask levels.\n *\n * @generated from rpc orderbook.v1.OrderbookService.GetOrderBook\n */\n getOrderBook: {\n methodKind: \"unary\";\n input: typeof GetOrderBookRequestSchema;\n output: typeof GetOrderBookResponseSchema;\n },\n}> = /*@__PURE__*/\n serviceDesc(file_orderbook_v1_orderbook, 0);\n\n"],"mappings":";;;;;;;;;;;;;;;;;;AAcA,MAAa,8BACX,uBAAS,4tCAA4tC,CAAC,gCAAgC,0BAA0B,CAAC;;;;;AA2BnyC,MAAa,4BACX,0BAAY,6BAA6B,CAAC;;;;;AA4B5C,MAAa,mBACX,0BAAY,6BAA6B,CAAC;;;;;AAiD5C,MAAa,6BACX,0BAAY,6BAA6B,CAAC;;;;;AA4E5C,MAAa,uBACX,0BAAY,6BAA6B,CAAC;;;;;;AAO5C,IAAY,QAAL,yBAAA,OAAA;;;;;;CAML,MAAA,MAAA,uBAAA,KAAA;;;;;;CAOA,MAAA,MAAA,aAAA,KAAA;;;;;;CAOA,MAAA,MAAA,aAAA,KAAA;;;;;;CAOA,MAAA,MAAA,cAAA,KAAA;;;;;;CAOA,MAAA,MAAA,cAAA,KAAA;;;;;;CAOA,MAAA,MAAA,cAAA,KAAA;;;;;;CAOA,MAAA,MAAA,eAAA,KAAA;;;;;;CAOA,MAAA,MAAA,eAAA,KAAA;;;;;;CAOA,MAAA,MAAA,eAAA,KAAA;;;;;;CAOA,MAAA,MAAA,gBAAA,KAAA;;AACF,EAAA,CAAA,CAAA;;;;AAKA,MAAa,cACX,uBAAS,6BAA6B,CAAC;;;;AAKzC,MAAa,mBAaX,0BAAY,6BAA6B,CAAC"}
1
+ {"version":3,"file":"orderbook_pb.js","names":[],"sources":["../../../../src/gen/orderbook/v1/orderbook_pb.ts"],"sourcesContent":["// @generated by protoc-gen-es v2.13.0 with parameter \"target=ts,import_extension=js\"\n// @generated from file orderbook/v1/orderbook.proto (package orderbook.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 orderbook/v1/orderbook.proto.\n */\nexport const file_orderbook_v1_orderbook: GenFile = /*@__PURE__*/\n fileDesc(\"ChxvcmRlcmJvb2svdjEvb3JkZXJib29rLnByb3RvEgxvcmRlcmJvb2sudjEiUAoTR2V0T3JkZXJCb29rUmVxdWVzdBITCglzeW1ib2xfaWQYASABKA1CABIkCgVkZXB0aBgCIAEoDjITLm9yZGVyYm9vay52MS5EZXB0aEIAIjUKClByaWNlTGV2ZWwSEwoLcHJpY2VfdGlja3MYASABKAMSEgoKcXR5X3NjYWxlZBgCIAEoAyKzAQoUR2V0T3JkZXJCb29rUmVzcG9uc2USEQoJc3ltYm9sX2lkGAEgASgNEhAKCGJvb2tfc2VxGAIgASgEEiYKBGJpZHMYAyADKAsyGC5vcmRlcmJvb2sudjEuUHJpY2VMZXZlbBImCgRhc2tzGAQgAygLMhgub3JkZXJib29rLnYxLlByaWNlTGV2ZWwSJgoCdHMYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wItgBCg5PcmRlckJvb2tEZWx0YRIRCglzeW1ib2xfaWQYASABKA0SFgoOYm9va19zZXFfc3RhcnQYAiABKAQSFAoMYm9va19zZXFfZW5kGAMgASgEEiYKBGJpZHMYBCADKAsyGC5vcmRlcmJvb2sudjEuUHJpY2VMZXZlbBImCgRhc2tzGAUgAygLMhgub3JkZXJib29rLnYxLlByaWNlTGV2ZWwSDQoFcmVzZXQYBiABKAgSJgoCdHMYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wKp8BCgVEZXB0aBIVChFERVBUSF9VTlNQRUNJRklFRBAAEgsKB0RFUFRIXzEQARILCgdERVBUSF81EAISDAoIREVQVEhfMTAQAxIMCghERVBUSF8yMBAEEgwKCERFUFRIXzUwEAUSDQoJREVQVEhfMTAwEAYSDQoJREVQVEhfMjAwEAcSDQoJREVQVEhfNTAwEAgSDgoKREVQVEhfMTAwMBAJMmsKEE9yZGVyYm9va1NlcnZpY2USVwoMR2V0T3JkZXJCb29rEiEub3JkZXJib29rLnYxLkdldE9yZGVyQm9va1JlcXVlc3QaIi5vcmRlcmJvb2sudjEuR2V0T3JkZXJCb29rUmVzcG9uc2UiAEJGWkRnaXRodWIuY29tL0ZhYnJpYy1MYWJzL3BvbHllc3Rlci1zZGstZ28vZ2VuL29yZGVyYm9vay92MTtvcmRlcmJvb2t2MWIGcHJvdG8z\", [file_google_protobuf_timestamp, file_polyester_api_options]);\n\n/**\n * GetOrderBookRequest describes a snapshot view request.\n *\n * @generated from message orderbook.v1.GetOrderBookRequest\n */\nexport type GetOrderBookRequest = Message<\"orderbook.v1.GetOrderBookRequest\"> & {\n /**\n * Stable numeric pair ID from GetSpotConfig.\n *\n * @generated from field: uint32 symbol_id = 1;\n */\n symbolId: number;\n\n /**\n * Requested depth per side (number of price levels). Default is 50.\n *\n * @generated from field: orderbook.v1.Depth depth = 2;\n */\n depth: Depth;\n};\n\n/**\n * Describes the message orderbook.v1.GetOrderBookRequest.\n * Use `create(GetOrderBookRequestSchema)` to create a new message.\n */\nexport const GetOrderBookRequestSchema: GenMessage<GetOrderBookRequest> = /*@__PURE__*/\n messageDesc(file_orderbook_v1_orderbook, 0);\n\n/**\n * PriceLevel uses scaled integers for the binary (protobuf) API (low-latency).\n * REST surfaces expose decimal strings via DTO conversion.\n *\n * @generated from message orderbook.v1.PriceLevel\n */\nexport type PriceLevel = Message<\"orderbook.v1.PriceLevel\"> & {\n /**\n * Price in quote units scaled by 1e6.\n *\n * @generated from field: int64 price_ticks = 1;\n */\n priceTicks: bigint;\n\n /**\n * Quantity scaled by the pair's base_quantity_scale from GetSpotConfig.\n *\n * @generated from field: int64 qty_scaled = 2;\n */\n qtyScaled: bigint;\n};\n\n/**\n * Describes the message orderbook.v1.PriceLevel.\n * Use `create(PriceLevelSchema)` to create a new message.\n */\nexport const PriceLevelSchema: GenMessage<PriceLevel> = /*@__PURE__*/\n messageDesc(file_orderbook_v1_orderbook, 1);\n\n/**\n * GetOrderBookResponse is a depth snapshot for the binary (protobuf) API (scaled integers).\n * REST surfaces expose decimal strings via DTO conversion.\n *\n * @generated from message orderbook.v1.GetOrderBookResponse\n */\nexport type GetOrderBookResponse = Message<\"orderbook.v1.GetOrderBookResponse\"> & {\n /**\n * Numeric symbol identifier (client resolves to symbol string).\n *\n * @generated from field: uint32 symbol_id = 1;\n */\n symbolId: number;\n\n /**\n * Monotonic book sequence for this symbol.\n *\n * @generated from field: uint64 book_seq = 2;\n */\n bookSeq: bigint;\n\n /**\n * Best bid first; descending price.\n *\n * @generated from field: repeated orderbook.v1.PriceLevel bids = 3;\n */\n bids: PriceLevel[];\n\n /**\n * Best ask first; ascending price.\n *\n * @generated from field: repeated orderbook.v1.PriceLevel asks = 4;\n */\n asks: PriceLevel[];\n\n /**\n * Timestamp associated with this snapshot (best-effort).\n *\n * @generated from field: google.protobuf.Timestamp ts = 5;\n */\n ts?: Timestamp | undefined;\n};\n\n/**\n * Describes the message orderbook.v1.GetOrderBookResponse.\n * Use `create(GetOrderBookResponseSchema)` to create a new message.\n */\nexport const GetOrderBookResponseSchema: GenMessage<GetOrderBookResponse> = /*@__PURE__*/\n messageDesc(file_orderbook_v1_orderbook, 2);\n\n/**\n * OrderBookDelta is an incremental update to the orderbook state.\n * Uses scaled integers (binary protobuf) for realtime streaming performance.\n *\n * Semantics:\n * - For each side, each [price_ticks] entry is a SET at that price:\n * - qty_scaled > 0 => set/replace that level quantity\n * - qty_scaled == 0 => delete that level\n * - reset=true indicates the book should be cleared before applying any levels.\n *\n * Clients are expected to initialize from GetOrderBook (snapshot) and then\n * apply deltas in order. If a gap is detected, clients should refetch a\n * snapshot.\n *\n * @generated from message orderbook.v1.OrderBookDelta\n */\nexport type OrderBookDelta = Message<\"orderbook.v1.OrderBookDelta\"> & {\n /**\n * Numeric symbol identifier.\n *\n * @generated from field: uint32 symbol_id = 1;\n */\n symbolId: number;\n\n /**\n * Monotonic book sequence range covered by this update.\n * When reset=true, book_seq_start may be 0.\n *\n * @generated from field: uint64 book_seq_start = 2;\n */\n bookSeqStart: bigint;\n\n /**\n * Monotonic book sequence at the end of this update's range. Consumers can\n * retain it as the last applied sequence and ignore updates that do not advance it.\n *\n * @generated from field: uint64 book_seq_end = 3;\n */\n bookSeqEnd: bigint;\n\n /**\n * Bid-side updates (SET semantics at price_ticks).\n *\n * @generated from field: repeated orderbook.v1.PriceLevel bids = 4;\n */\n bids: PriceLevel[];\n\n /**\n * Ask-side updates (SET semantics at price_ticks).\n *\n * @generated from field: repeated orderbook.v1.PriceLevel asks = 5;\n */\n asks: PriceLevel[];\n\n /**\n * If true, consumers should clear their local book state before applying\n * updates.\n *\n * @generated from field: bool reset = 6;\n */\n reset: boolean;\n\n /**\n * Timestamp associated with this update (best-effort).\n *\n * @generated from field: google.protobuf.Timestamp ts = 7;\n */\n ts?: Timestamp | undefined;\n};\n\n/**\n * Describes the message orderbook.v1.OrderBookDelta.\n * Use `create(OrderBookDeltaSchema)` to create a new message.\n */\nexport const OrderBookDeltaSchema: GenMessage<OrderBookDelta> = /*@__PURE__*/\n messageDesc(file_orderbook_v1_orderbook, 3);\n\n/**\n * Depth specifies the number of price levels per side.\n *\n * @generated from enum orderbook.v1.Depth\n */\nexport enum Depth {\n /**\n * Default depth (50 levels per side).\n *\n * @generated from enum value: DEPTH_UNSPECIFIED = 0;\n */\n DEPTH_UNSPECIFIED = 0,\n\n /**\n * 1 level per side (top of book / best bid-ask).\n *\n * @generated from enum value: DEPTH_1 = 1;\n */\n DEPTH_1 = 1,\n\n /**\n * 5 levels per side.\n *\n * @generated from enum value: DEPTH_5 = 2;\n */\n DEPTH_5 = 2,\n\n /**\n * 10 levels per side.\n *\n * @generated from enum value: DEPTH_10 = 3;\n */\n DEPTH_10 = 3,\n\n /**\n * 20 levels per side.\n *\n * @generated from enum value: DEPTH_20 = 4;\n */\n DEPTH_20 = 4,\n\n /**\n * 50 levels per side.\n *\n * @generated from enum value: DEPTH_50 = 5;\n */\n DEPTH_50 = 5,\n\n /**\n * 100 levels per side.\n *\n * @generated from enum value: DEPTH_100 = 6;\n */\n DEPTH_100 = 6,\n\n /**\n * 200 levels per side.\n *\n * @generated from enum value: DEPTH_200 = 7;\n */\n DEPTH_200 = 7,\n\n /**\n * 500 levels per side.\n *\n * @generated from enum value: DEPTH_500 = 8;\n */\n DEPTH_500 = 8,\n\n /**\n * 1000 levels per side.\n *\n * @generated from enum value: DEPTH_1000 = 9;\n */\n DEPTH_1000 = 9,\n}\n\n/**\n * Describes the enum orderbook.v1.Depth.\n */\nexport const DepthSchema: GenEnum<Depth> = /*@__PURE__*/\n enumDesc(file_orderbook_v1_orderbook, 0);\n\n/**\n * @generated from service orderbook.v1.OrderbookService\n */\nexport const OrderbookService: GenService<{\n /**\n * Retrieve a spot order book depth snapshot for a symbol.\n * Supports selectable depth per side and returns best bid/ask levels.\n *\n * @generated from rpc orderbook.v1.OrderbookService.GetOrderBook\n */\n getOrderBook: {\n methodKind: \"unary\";\n input: typeof GetOrderBookRequestSchema;\n output: typeof GetOrderBookResponseSchema;\n },\n}> = /*@__PURE__*/\n serviceDesc(file_orderbook_v1_orderbook, 0);\n\n"],"mappings":";;;;;;;;;;;;;;;;;;AAcA,MAAa,8BACX,uBAAS,guCAAguC,CAAC,gCAAgC,0BAA0B,CAAC;;;;;AA2BvyC,MAAa,4BACX,0BAAY,6BAA6B,CAAC;;;;;AA4B5C,MAAa,mBACX,0BAAY,6BAA6B,CAAC;;;;;AAiD5C,MAAa,6BACX,0BAAY,6BAA6B,CAAC;;;;;AA4E5C,MAAa,uBACX,0BAAY,6BAA6B,CAAC;;;;;;AAO5C,IAAY,QAAL,yBAAA,OAAA;;;;;;CAML,MAAA,MAAA,uBAAA,KAAA;;;;;;CAOA,MAAA,MAAA,aAAA,KAAA;;;;;;CAOA,MAAA,MAAA,aAAA,KAAA;;;;;;CAOA,MAAA,MAAA,cAAA,KAAA;;;;;;CAOA,MAAA,MAAA,cAAA,KAAA;;;;;;CAOA,MAAA,MAAA,cAAA,KAAA;;;;;;CAOA,MAAA,MAAA,eAAA,KAAA;;;;;;CAOA,MAAA,MAAA,eAAA,KAAA;;;;;;CAOA,MAAA,MAAA,eAAA,KAAA;;;;;;CAOA,MAAA,MAAA,gBAAA,KAAA;;AACF,EAAA,CAAA,CAAA;;;;AAKA,MAAa,cACX,uBAAS,6BAA6B,CAAC;;;;AAKzC,MAAa,mBAaX,0BAAY,6BAA6B,CAAC"}