@polyester/sdk 0.27.1 → 0.27.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +16 -0
- package/dist/catalogs/readers.js +6 -6
- package/dist/catalogs/readers.js.map +1 -1
- package/dist/catalogs/snapshot-validation.js +3 -1
- package/dist/catalogs/snapshot-validation.js.map +1 -1
- package/dist/gen/ledger/read/v1/ledger_read_pb.d.ts +3 -3
- package/dist/gen/ledger/read/v1/ledger_read_pb.js.map +1 -1
- package/dist/gen/marketdata/v1/heatmap_pb.d.ts +6 -6
- package/dist/gen/marketdata/v1/heatmap_pb.js.map +1 -1
- package/dist/gen/marketdata/v1/marketdata_pb.d.ts +48 -28
- package/dist/gen/marketdata/v1/marketdata_pb.d.ts.map +1 -1
- package/dist/gen/marketdata/v1/marketdata_pb.js +1 -1
- package/dist/gen/marketdata/v1/marketdata_pb.js.map +1 -1
- package/dist/gen/marketoverview/v1/marketoverview_pb.d.ts +11 -10
- package/dist/gen/marketoverview/v1/marketoverview_pb.d.ts.map +1 -1
- package/dist/gen/marketoverview/v1/marketoverview_pb.js +1 -1
- package/dist/gen/marketoverview/v1/marketoverview_pb.js.map +1 -1
- package/dist/gen/orderbook/v1/orderbook_pb.d.ts +1 -1
- package/dist/gen/orderbook/v1/orderbook_pb.js.map +1 -1
- package/dist/gen/orders/v1/orders_pb.d.ts +38 -24
- package/dist/gen/orders/v1/orders_pb.d.ts.map +1 -1
- package/dist/gen/orders/v1/orders_pb.js +3 -3
- package/dist/gen/orders/v1/orders_pb.js.map +1 -1
- package/dist/gen/orders/v1/orders_read_pb.d.ts +17 -10
- package/dist/gen/orders/v1/orders_read_pb.d.ts.map +1 -1
- package/dist/gen/orders/v1/orders_read_pb.js +3 -3
- package/dist/gen/orders/v1/orders_read_pb.js.map +1 -1
- package/dist/gen/triggers/v1/triggers_pb.d.ts +40 -26
- package/dist/gen/triggers/v1/triggers_pb.d.ts.map +1 -1
- package/dist/gen/triggers/v1/triggers_pb.js +7 -1
- package/dist/gen/triggers/v1/triggers_pb.js.map +1 -1
- package/dist/services/candles/candles.schemas.d.ts.map +1 -1
- package/dist/services/candles/candles.schemas.js +13 -11
- package/dist/services/candles/candles.schemas.js.map +1 -1
- package/dist/services/heatmap/heatmap.schemas.d.ts +4 -4
- package/dist/services/lifecycle/lifecycle.schemas.d.ts +42 -42
- package/dist/services/market-data/market-data.schemas.js +14 -2
- package/dist/services/market-data/market-data.schemas.js.map +1 -1
- package/dist/services/market-overview/market-overview.schemas.d.ts.map +1 -1
- package/dist/services/market-overview/market-overview.schemas.js +2 -1
- package/dist/services/market-overview/market-overview.schemas.js.map +1 -1
- package/dist/services/orderbook/orderbook.schemas.d.ts +1 -1
- package/dist/services/orders/orders-batch.schemas.d.ts +17 -0
- package/dist/services/orders/orders-batch.schemas.d.ts.map +1 -1
- package/dist/services/orders/orders-batch.schemas.js +3 -1
- package/dist/services/orders/orders-batch.schemas.js.map +1 -1
- package/dist/services/orders/orders-output.schemas.d.ts +6 -6
- package/dist/services/orders/orders.d.ts +4 -4
- package/dist/services/orders/orders.js +4 -4
- package/dist/services/orders/orders.js.map +1 -1
- package/dist/services/subaccounts/subaccounts.schemas.d.ts +1 -1
- package/dist/services/triggers/trigger-input.schemas.d.ts +4 -4
- package/dist/services/triggers/triggers-output.schemas.d.ts +22 -18
- package/dist/services/triggers/triggers-output.schemas.d.ts.map +1 -1
- package/dist/services/triggers/triggers-output.schemas.js +4 -2
- package/dist/services/triggers/triggers-output.schemas.js.map +1 -1
- package/dist/services/triggers/triggers.codecs.js +6 -3
- package/dist/services/triggers/triggers.codecs.js.map +1 -1
- package/dist/shared/catalog-config.d.ts +4 -0
- package/dist/shared/catalog-config.d.ts.map +1 -1
- package/dist/shared/catalog-config.js.map +1 -1
- package/dist/shared/decimal-surface.d.ts +4 -0
- package/dist/shared/decimal-surface.d.ts.map +1 -1
- package/dist/shared/decimal-surface.js +6 -1
- package/dist/shared/decimal-surface.js.map +1 -1
- package/dist/utils/numbers.js.map +1 -1
- package/package.json +3 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"triggers_pb.js","names":[],"sources":["../../../../src/gen/triggers/v1/triggers_pb.ts"],"sourcesContent":["// @generated by protoc-gen-es v2.13.0 with parameter \"target=ts,import_extension=js\"\n// @generated from file triggers/v1/triggers.proto (package triggers.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 type { FeeAsset, SelfTradePreventionMode, Side, TriggerDirection, TriggerPriceSource } from \"../../orders/v1/orders_pb.js\";\nimport { file_orders_v1_orders } from \"../../orders/v1/orders_pb.js\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file triggers/v1/triggers.proto.\n */\nexport const file_triggers_v1_triggers: GenFile = /*@__PURE__*/\n fileDesc(\"Chp0cmlnZ2Vycy92MS90cmlnZ2Vycy5wcm90bxILdHJpZ2dlcnMudjEiEgoQVHJpZ2dlck1hcmtldElvYyI7Cg9UcmlnZ2VyTGltaXRHdGMSFQoLcHJpY2VfdGlja3MYASABKANCABIRCglwb3N0X29ubHkYAiABKAgiKAoPVHJpZ2dlckxpbWl0SW9jEhUKC3ByaWNlX3RpY2tzGAEgASgDQgAiKAoPVHJpZ2dlckxpbWl0Rm9rEhUKC3ByaWNlX3RpY2tzGAEgASgDQgAi+AEKGUNvbmRpdGlvbmFsQ2hpbGRFeGVjdXRpb24SMwoKbWFya2V0X2lvYxgBIAEoCzIdLnRyaWdnZXJzLnYxLlRyaWdnZXJNYXJrZXRJb2NIABIxCglsaW1pdF9ndGMYAiABKAsyHC50cmlnZ2Vycy52MS5UcmlnZ2VyTGltaXRHdGNIABIxCglsaW1pdF9pb2MYAyABKAsyHC50cmlnZ2Vycy52MS5UcmlnZ2VyTGltaXRJb2NIABIxCglsaW1pdF9mb2sYBCABKAsyHC50cmlnZ2Vycy52MS5UcmlnZ2VyTGltaXRGb2tIAEINCglleGVjdXRpb24SACKPAQoSQ29uZGl0aW9uYWxUcmlnZ2VyEh0KE3RyaWdnZXJfcHJpY2VfdGlja3MYASABKANCABIfCgRzaWRlGAIgASgOMg8ub3JkZXJzLnYxLlNpZGVCABI3CgVjaGlsZBgDIAEoCzImLnRyaWdnZXJzLnYxLkNvbmRpdGlvbmFsQ2hpbGRFeGVjdXRpb25CADoAIoUCChNUcmFpbGluZ1N0b3BUcmlnZ2VyEiMKF3RyYWlsaW5nX2Rpc3RhbmNlX3RpY2tzGAEgASgDQgBIABIhChV0cmFpbGluZ19kaXN0YW5jZV9icHMYAiABKAVCAEgAEiAKFmFjdGl2YXRpb25fcHJpY2VfdGlja3MYAyABKANCABIeChJtYXhfc2xpcHBhZ2VfdGlja3MYBCABKAVCAEgBEhwKEG1heF9zbGlwcGFnZV9icHMYBSABKAVCAEgBEh8KBHNpZGUYBiABKA4yDy5vcmRlcnMudjEuU2lkZUIAQhUKEXRyYWlsaW5nX2Rpc3RhbmNlEgBCDgoMbWF4X3NsaXBwYWdlIl0KDVR3YXBNYXJrZXRJb2MSHgoSbWF4X3NsaXBwYWdlX3RpY2tzGAEgASgFQgBIABIcChBtYXhfc2xpcHBhZ2VfYnBzGAIgASgFQgBIAEIOCgxtYXhfc2xpcHBhZ2UiJQoMVHdhcExpbWl0R3RjEhUKC3ByaWNlX3RpY2tzGAEgASgDQgAi0QEKC1R3YXBUcmlnZ2VyEh8KBHNpZGUYASABKA4yDy5vcmRlcnMudjEuU2lkZUIAEhMKC2R1cmF0aW9uX21zGAIgASgDEhkKEXNsaWNlX2ludGVydmFsX21zGAMgASgDEjAKCm1hcmtldF9pb2MYBCABKAsyGi50cmlnZ2Vycy52MS5Ud2FwTWFya2V0SW9jSAASLgoJbGltaXRfZ3RjGAUgASgLMhkudHJpZ2dlcnMudjEuVHdhcExpbWl0R3RjSAA6AEINCglleGVjdXRpb24SACKNAQoNTGFkZGVyVHJpZ2dlchIfCgRzaWRlGAEgASgOMg8ub3JkZXJzLnYxLlNpZGVCABIZCg9wcmljZV9taW5fdGlja3MYAiABKANCABIZCg9wcmljZV9tYXhfdGlja3MYAyABKANCABIQCgZsZXZlbHMYBCABKAVCABIRCglwb3N0X29ubHkYBSABKAg6ACLaAwoNVHJpZ2dlckludGVudBITCglzeW1ib2xfaWQYASABKA1CABIUCgpxdHlfc2NhbGVkGAIgASgDQgASKAoJZmVlX2Fzc2V0GAMgASgOMhMub3JkZXJzLnYxLkZlZUFzc2V0QgASSAoac2VsZl90cmFkZV9wcmV2ZW50aW9uX21vZGUYBCABKA4yIi5vcmRlcnMudjEuU2VsZlRyYWRlUHJldmVudGlvbk1vZGVCABIbChFjbGllbnRfdHJpZ2dlcl9pZBgFIAEoCUIAEjQKCXN0b3BfbG9zcxgKIAEoCzIfLnRyaWdnZXJzLnYxLkNvbmRpdGlvbmFsVHJpZ2dlckgAEjYKC3Rha2VfcHJvZml0GAsgASgLMh8udHJpZ2dlcnMudjEuQ29uZGl0aW9uYWxUcmlnZ2VySAASOQoNdHJhaWxpbmdfc3RvcBgMIAEoCzIgLnRyaWdnZXJzLnYxLlRyYWlsaW5nU3RvcFRyaWdnZXJIABIoCgR0d2FwGA0gASgLMhgudHJpZ2dlcnMudjEuVHdhcFRyaWdnZXJIABIsCgZsYWRkZXIYDiABKAsyGi50cmlnZ2Vycy52MS5MYWRkZXJUcmlnZ2VySABCDAoIc3RyYXRlZ3kSACJzChRDcmVhdGVUcmlnZ2VyUmVxdWVzdBIaCg1zdWJhY2NvdW50X2lkGAEgASgGSACIAQESLQoHdHJpZ2dlchgCIAEoCzIaLnRyaWdnZXJzLnYxLlRyaWdnZXJJbnRlbnRCAEIQCg5fc3ViYWNjb3VudF9pZCKSAQoVQ3JlYXRlVHJpZ2dlclJlc3BvbnNlEhIKCnRyaWdnZXJfaWQYASABKAYSGQoRY2xpZW50X3RyaWdnZXJfaWQYAiABKAkSLwoLYWNjZXB0ZWRfYXQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhkKEWFjY2VwdGVkX2F0X3RzX25zGAQgASgEIlcKEUdldFRyaWdnZXJSZXF1ZXN0EhQKCnRyaWdnZXJfaWQYASABKAZCABIaCg1zdWJhY2NvdW50X2lkGAIgASgGSACIAQFCEAoOX3N1YmFjY291bnRfaWQiOwoSR2V0VHJpZ2dlclJlc3BvbnNlEiUKB3RyaWdnZXIYASABKAsyFC50cmlnZ2Vycy52MS5UcmlnZ2VyIpECChNMaXN0VHJpZ2dlcnNSZXF1ZXN0EhoKDXN1YmFjY291bnRfaWQYASABKAZIAIgBARITCglzeW1ib2xfaWQYAiABKA1CABIsCgZzdGF0dXMYAyADKA4yGi50cmlnZ2Vycy52MS5UcmlnZ2VyU3RhdHVzQgASMAoMdHJpZ2dlcl90eXBlGAQgASgOMhgudHJpZ2dlcnMudjEuVHJpZ2dlclR5cGVCABIcCg9wYXJlbnRfb3JkZXJfaWQYBSABKAZIAYgBARIPCgVsaW1pdBgKIAEoDUIAEhQKCnBhZ2VfdG9rZW4YDCABKAlCAEIQCg5fc3ViYWNjb3VudF9pZEISChBfcGFyZW50X29yZGVyX2lkIlkKFExpc3RUcmlnZ2Vyc1Jlc3BvbnNlEiYKCHRyaWdnZXJzGAEgAygLMhQudHJpZ2dlcnMudjEuVHJpZ2dlchIZCg9uZXh0X3BhZ2VfdG9rZW4YAyABKAlCACK6AQoYTGlzdFRyaWdnZXJFdmVudHNSZXF1ZXN0EhQKCnRyaWdnZXJfaWQYASABKAZCABIaCg1zdWJhY2NvdW50X2lkGAIgASgGSACIAQESDwoFbGltaXQYAyABKA1CABIzCgpldmVudF90eXBlGAQgASgOMh0udHJpZ2dlcnMudjEuVHJpZ2dlckV2ZW50VHlwZUIAEhQKCnBhZ2VfdG9rZW4YBSABKAlCAEIQCg5fc3ViYWNjb3VudF9pZCKqAwoMVHJpZ2dlckV2ZW50EhIKCnRyaWdnZXJfaWQYASABKAYSFQoNc3ViYWNjb3VudF9pZBgCIAEoBhIRCglzeW1ib2xfaWQYAyABKA0SLgoMdHJpZ2dlcl90eXBlGAQgASgOMhgudHJpZ2dlcnMudjEuVHJpZ2dlclR5cGUSMQoKZXZlbnRfdHlwZRgFIAEoDjIdLnRyaWdnZXJzLnYxLlRyaWdnZXJFdmVudFR5cGUSDQoFdHNfbnMYCiABKAQSEQoJY2hpbGRfc2VxGAsgASgFEhYKDmNoaWxkX29yZGVyX2lkGAwgASgGEh8KEGZpcmVfcHJpY2VfdGlja3MYDSABKANCAEgBiAEBEjkKDWNhbmNlbF9yZWFzb24YFCABKA4yIC50cmlnZ2Vycy52MS5UcmlnZ2VyQ2FuY2VsUmVhc29uSAASOwoOZmFpbHVyZV9yZWFzb24YFSABKA4yIS50cmlnZ2Vycy52MS5UcmlnZ2VyRmFpbHVyZVJlYXNvbkgAQhEKD3Rlcm1pbmFsX3JlYXNvbkITChFfZmlyZV9wcmljZV90aWNrcyJhChlMaXN0VHJpZ2dlckV2ZW50c1Jlc3BvbnNlEikKBmV2ZW50cxgBIAMoCzIZLnRyaWdnZXJzLnYxLlRyaWdnZXJFdmVudBIZCg9uZXh0X3BhZ2VfdG9rZW4YAyABKAlCACJaChRDYW5jZWxUcmlnZ2VyUmVxdWVzdBIUCgp0cmlnZ2VyX2lkGAEgASgGQgASGgoNc3ViYWNjb3VudF9pZBgCIAEoBkgAiAEBQhAKDl9zdWJhY2NvdW50X2lkIo4BChVDYW5jZWxUcmlnZ2VyUmVzcG9uc2USEgoKdHJpZ2dlcl9pZBgBIAEoBhIqCgZzdGF0dXMYAiABKA4yGi50cmlnZ2Vycy52MS5UcmlnZ2VyU3RhdHVzEiYKAnRzGAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBINCgV0c19ucxgEIAEoBCLOAwoUTW9kaWZ5VHJpZ2dlclJlcXVlc3QSFAoKdHJpZ2dlcl9pZBgBIAEoBkIAEhoKDXN1YmFjY291bnRfaWQYAiABKAZIAogBARITCglzeW1ib2xfaWQYAyABKA1CABIiChN0cmlnZ2VyX3ByaWNlX3RpY2tzGAogASgDQgBIA4gBARIeChFsaW1pdF9wcmljZV90aWNrcxgLIAEoA0gEiAEBEiMKF3RyYWlsaW5nX2Rpc3RhbmNlX3RpY2tzGAwgASgDQgBIABIhChV0cmFpbGluZ19kaXN0YW5jZV9icHMYDSABKAVCAEgAEiUKFmFjdGl2YXRpb25fcHJpY2VfdGlja3MYDiABKANCAEgFiAEBEh4KEm1heF9zbGlwcGFnZV90aWNrcxgPIAEoBUIASAESHAoQbWF4X3NsaXBwYWdlX2JwcxgQIAEoBUIASAFCEwoRdHJhaWxpbmdfZGlzdGFuY2VCDgoMbWF4X3NsaXBwYWdlQhAKDl9zdWJhY2NvdW50X2lkQhYKFF90cmlnZ2VyX3ByaWNlX3RpY2tzQhQKEl9saW1pdF9wcmljZV90aWNrc0IZChdfYWN0aXZhdGlvbl9wcmljZV90aWNrcyKOAQoVTW9kaWZ5VHJpZ2dlclJlc3BvbnNlEhIKCnRyaWdnZXJfaWQYASABKAYSKgoGc3RhdHVzGAIgASgOMhoudHJpZ2dlcnMudjEuVHJpZ2dlclN0YXR1cxImCgJ0cxgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASDQoFdHNfbnMYBCABKAQiWQoTUGF1c2VUcmlnZ2VyUmVxdWVzdBIUCgp0cmlnZ2VyX2lkGAEgASgGQgASGgoNc3ViYWNjb3VudF9pZBgCIAEoBkgAiAEBQhAKDl9zdWJhY2NvdW50X2lkIo0BChRQYXVzZVRyaWdnZXJSZXNwb25zZRISCgp0cmlnZ2VyX2lkGAEgASgGEioKBnN0YXR1cxgCIAEoDjIaLnRyaWdnZXJzLnYxLlRyaWdnZXJTdGF0dXMSJgoCdHMYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEg0KBXRzX25zGAQgASgEIm8KFFJlc3VtZVRyaWdnZXJSZXF1ZXN0EhQKCnRyaWdnZXJfaWQYASABKAZCABIaCg1zdWJhY2NvdW50X2lkGAIgASgGSACIAQESEwoJc3ltYm9sX2lkGAMgASgNQgBCEAoOX3N1YmFjY291bnRfaWQijgEKFVJlc3VtZVRyaWdnZXJSZXNwb25zZRISCgp0cmlnZ2VyX2lkGAEgASgGEioKBnN0YXR1cxgCIAEoDjIaLnRyaWdnZXJzLnYxLlRyaWdnZXJTdGF0dXMSJgoCdHMYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEg0KBXRzX25zGAQgASgEIp8BCgtTdG9wRGV0YWlscxIbChN0cmlnZ2VyX3ByaWNlX3RpY2tzGAEgASgDEjsKFHRyaWdnZXJfcHJpY2Vfc291cmNlGAIgASgOMh0ub3JkZXJzLnYxLlRyaWdnZXJQcmljZVNvdXJjZRI2ChF0cmlnZ2VyX2RpcmVjdGlvbhgDIAEoDjIbLm9yZGVycy52MS5UcmlnZ2VyRGlyZWN0aW9uItICCg9UcmFpbGluZ0RldGFpbHMSHwoXdHJhaWxpbmdfZGlzdGFuY2VfdGlja3MYASABKAMSHgoWYWN0aXZhdGlvbl9wcmljZV90aWNrcxgCIAEoAxIYChBwZWFrX3ByaWNlX3RpY2tzGAMgASgDEhoKEnRyb3VnaF9wcmljZV90aWNrcxgEIAEoAxIdChV0cmFpbGluZ19kaXN0YW5jZV9icHMYBSABKAUSGgoSbWF4X3NsaXBwYWdlX3RpY2tzGAYgASgFEhgKEG1heF9zbGlwcGFnZV9icHMYByABKAUSOwoUdHJpZ2dlcl9wcmljZV9zb3VyY2UYCCABKA4yHS5vcmRlcnMudjEuVHJpZ2dlclByaWNlU291cmNlEjYKEXRyaWdnZXJfZGlyZWN0aW9uGAkgASgOMhsub3JkZXJzLnYxLlRyaWdnZXJEaXJlY3Rpb24ijAEKC1R3YXBEZXRhaWxzEhgKEHR3YXBfZHVyYXRpb25fbXMYASABKAMSHgoWdHdhcF9zbGljZV9pbnRlcnZhbF9tcxgCIAEoAxIRCglzbGljZV9pZHgYBCABKAUSEwoLc2xpY2VfY291bnQYBSABKAUSGwoTZXhlY3V0ZWRfcXR5X3NjYWxlZBgGIAEoAyLaAQoNTGFkZGVyRGV0YWlscxIeChZsYWRkZXJfcHJpY2VfbWluX3RpY2tzGAEgASgDEh4KFmxhZGRlcl9wcmljZV9tYXhfdGlja3MYAiABKAMSFQoNbGFkZGVyX2xldmVscxgDIAEoBRI8ChNsYWRkZXJfZGlzdHJpYnV0aW9uGAQgASgOMh8udHJpZ2dlcnMudjEuTGFkZGVyRGlzdHJpYnV0aW9uEhsKE2V4ZWN1dGVkX3F0eV9zY2FsZWQYBSABKAMSFwoPZXhlY3V0ZWRfbGV2ZWxzGAYgASgFIvQICgdUcmlnZ2VyEhIKCnRyaWdnZXJfaWQYASABKAYSFQoNc3ViYWNjb3VudF9pZBgCIAEoBhIRCglzeW1ib2xfaWQYAyABKA0SKgoGc3RhdHVzGAUgASgOMhoudHJpZ2dlcnMudjEuVHJpZ2dlclN0YXR1cxIcCg9wYXJlbnRfb3JkZXJfaWQYBiABKAZIA4gBARI5Cg1jYW5jZWxfcmVhc29uGAcgASgOMiAudHJpZ2dlcnMudjEuVHJpZ2dlckNhbmNlbFJlYXNvbkgAEjsKDmZhaWx1cmVfcmVhc29uGAggASgOMiEudHJpZ2dlcnMudjEuVHJpZ2dlckZhaWx1cmVSZWFzb25IABISCgpxdHlfc2NhbGVkGBQgASgDEiYKCWZlZV9hc3NldBgVIAEoDjITLm9yZGVycy52MS5GZWVBc3NldBJGChpzZWxmX3RyYWRlX3ByZXZlbnRpb25fbW9kZRgWIAEoDjIiLm9yZGVycy52MS5TZWxmVHJhZGVQcmV2ZW50aW9uTW9kZRI0CglzdG9wX2xvc3MYHiABKAsyHy50cmlnZ2Vycy52MS5Db25kaXRpb25hbFRyaWdnZXJIARI2Cgt0YWtlX3Byb2ZpdBgfIAEoCzIfLnRyaWdnZXJzLnYxLkNvbmRpdGlvbmFsVHJpZ2dlckgBEjkKDXRyYWlsaW5nX3N0b3AYICABKAsyIC50cmlnZ2Vycy52MS5UcmFpbGluZ1N0b3BUcmlnZ2VySAESKAoEdHdhcBghIAEoCzIYLnRyaWdnZXJzLnYxLlR3YXBUcmlnZ2VySAESLAoGbGFkZGVyGCIgASgLMhoudHJpZ2dlcnMudjEuTGFkZGVyVHJpZ2dlckgBEigKBHN0b3AYZCABKAsyGC50cmlnZ2Vycy52MS5TdG9wRGV0YWlsc0gCEjAKCHRyYWlsaW5nGGUgASgLMhwudHJpZ2dlcnMudjEuVHJhaWxpbmdEZXRhaWxzSAISLgoKdHdhcF9zdGF0ZRhmIAEoCzIYLnRyaWdnZXJzLnYxLlR3YXBEZXRhaWxzSAISMgoMbGFkZGVyX3N0YXRlGGcgASgLMhoudHJpZ2dlcnMudjEuTGFkZGVyRGV0YWlsc0gCEhkKEWNsaWVudF90cmlnZ2VyX2lkGDwgASgJEi4KCmNyZWF0ZWRfYXQYPSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYPiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEiwKCGFybWVkX2F0GD8gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIwCgxjb21wbGV0ZWRfYXQYQCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQhEKD3Rlcm1pbmFsX3JlYXNvbkIPCg1jb25maWd1cmF0aW9uQhEKD3J1bnRpbWVfZGV0YWlsc0ISChBfcGFyZW50X29yZGVyX2lkKnQKC1RyaWdnZXJUeXBlEhwKGFRSSUdHRVJfVFlQRV9VTlNQRUNJRklFRBAAEg0KCVNUT1BfTE9TUxABEg8KC1RBS0VfUFJPRklUEAISEQoNVFJBSUxJTkdfU1RPUBADEggKBFRXQVAQBBIKCgZMQURERVIQBSqyAQoNVHJpZ2dlclN0YXR1cxIWChJTVEFUVVNfVU5TUEVDSUZJRUQQABISCg5TVEFUVVNfQ1JFQVRFRBABEhAKDFNUQVRVU19BUk1FRBACEhIKDlNUQVRVU19SVU5OSU5HEAMSFAoQU1RBVFVTX0NPTVBMRVRFRBAEEhMKD1NUQVRVU19DQU5DRUxFRBAFEhEKDVNUQVRVU19GQUlMRUQQBhIRCg1TVEFUVVNfUEFVU0VEEAcqcwoQVHJpZ2dlckV2ZW50VHlwZRIVChFFVkVOVF9VTlNQRUNJRklFRBAAEg8KC0VWRU5UX0ZJUkVEEAESEgoORVZFTlRfQ0FOQ0VMRUQQAhIRCg1FVkVOVF9VUERBVEVEEAMSEAoMRVZFTlRfRkFJTEVEEAQqkQIKE1RyaWdnZXJDYW5jZWxSZWFzb24SJQohVFJJR0dFUl9DQU5DRUxfUkVBU09OX1VOU1BFQ0lGSUVEEAASJgoiVFJJR0dFUl9DQU5DRUxfUkVBU09OX1VTRVJfUkVRVUVTVBABEh0KGVRSSUdHRVJfQ0FOQ0VMX1JFQVNPTl9PQ08QAhIxCi1UUklHR0VSX0NBTkNFTF9SRUFTT05fUEFSRU5UX0NBTkNFTEVEX05PX0ZJTEwQAxIuCilUUklHR0VSX0NBTkNFTF9SRUFTT05fTUlTU0lOR19SRUFTT05fQ09ERRDmBxIpCiRUUklHR0VSX0NBTkNFTF9SRUFTT05fSU5URVJOQUxfRVJST1IQ5wcq5g4KFFRyaWdnZXJGYWlsdXJlUmVhc29uEiYKIlRSSUdHRVJfRkFJTFVSRV9SRUFTT05fVU5TUEVDSUZJRUQQABIpCiVUUklHR0VSX0ZBSUxVUkVfUkVBU09OX1VOS05PV05fU1lNQk9MEAESKAokVFJJR0dFUl9GQUlMVVJFX1JFQVNPTl9QQUlSX0RJU0FCTEVEEAISJwojVFJJR0dFUl9GQUlMVVJFX1JFQVNPTl9NSU5fTk9USU9OQUwQAxIkCiBUUklHR0VSX0ZBSUxVUkVfUkVBU09OX1RJQ0tfU0laRRAEEi0KKVRSSUdHRVJfRkFJTFVSRV9SRUFTT05fSU5TVUZGSUNJRU5UX0ZVTkRTEAUSJQohVFJJR0dFUl9GQUlMVVJFX1JFQVNPTl9SSVNLX0xJTUlUEAYSLgoqVFJJR0dFUl9GQUlMVVJFX1JFQVNPTl9EVVBMSUNBVEVfQ0xJRU5UX0lEEAcSKAokVFJJR0dFUl9GQUlMVVJFX1JFQVNPTl9NQVJLRVRfSEFMVEVEEAgSJgoiVFJJR0dFUl9GQUlMVVJFX1JFQVNPTl9FTkdJTkVfQlVTWRAJEioKJlRSSUdHRVJfRkFJTFVSRV9SRUFTT05fQUNDT1VOVF9VTktOT1dOEAoSKAokVFJJR0dFUl9GQUlMVVJFX1JFQVNPTl9PUkRFUl9VTktOT1dOEAsSKgomVFJJR0dFUl9GQUlMVVJFX1JFQVNPTl9QT1NUX09OTFlfQ1JPU1MQDBIuCipUUklHR0VSX0ZBSUxVUkVfUkVBU09OX1JFRFVDRV9PTkxZX0JMT0NLRUQQDRIvCitUUklHR0VSX0ZBSUxVUkVfUkVBU09OX1BSSUNFX0JBTkRfVklPTEFUSU9OEA4SLworVFJJR0dFUl9GQUlMVVJFX1JFQVNPTl9NQVJLRVRfQ0FQX1ZJT0xBVElPThAPEiUKIVRSSUdHRVJfRkFJTFVSRV9SRUFTT05fRU1QVFlfQk9PSxAQEjUKMVRSSUdHRVJfRkFJTFVSRV9SRUFTT05fRk9LX0lOU1VGRklDSUVOVF9MSVFVSURJVFkQERIwCixUUklHR0VSX0ZBSUxVUkVfUkVBU09OX0ZFRV9BU1NFVF9OT1RfQUxMT1dFRBASEjMKL1RSSUdHRVJfRkFJTFVSRV9SRUFTT05fTUFSS0VUX1BSSUNFX1VOQVZBSUxBQkxFEBMSJgoiVFJJR0dFUl9GQUlMVVJFX1JFQVNPTl9TVEFMRV9RVU9URRAUEicKI1RSSUdHRVJfRkFJTFVSRV9SRUFTT05fTUlOX1FVQU5USVRZEBUSJAogVFJJR0dFUl9GQUlMVVJFX1JFQVNPTl9TVEVQX1NJWkUQFhIpCiVUUklHR0VSX0ZBSUxVUkVfUkVBU09OX0lOVkFMSURfU0laSU5HEBcSNAowVFJJR0dFUl9GQUlMVVJFX1JFQVNPTl9NQVhfUVVPVEVfREVCSVRfVE9PX1NNQUxMEBgSLworVFJJR0dFUl9GQUlMVVJFX1JFQVNPTl9GRUVfQ0VJTElOR19FWENFRURFRBAZEjAKLFRSSUdHRVJfRkFJTFVSRV9SRUFTT05fVFJJR0dFUl9QUklDRV9JTlZBTElEECgSOwo3VFJJR0dFUl9GQUlMVVJFX1JFQVNPTl9UUklHR0VSX1BSSUNFX1NPVVJDRV9VTlNVUFBPUlRFRBApEjQKMFRSSUdHRVJfRkFJTFVSRV9SRUFTT05fVFJBSUxJTkdfRElTVEFOQ0VfSU5WQUxJRBAqEjgKNFRSSUdHRVJfRkFJTFVSRV9SRUFTT05fTU9ESUZJQ0FUSU9OX1JFUVVJUkVTX1JFUExBQ0UQKxIxCi1UUklHR0VSX0ZBSUxVUkVfUkVBU09OX09SREVSX0FMUkVBRFlfVEVSTUlOQUwQLBI5CjVUUklHR0VSX0ZBSUxVUkVfUkVBU09OX0NPTkZMSUNUX0lERU1QT1RFTkNZX0tFWV9SRVVTRRAtEicKI1RSSUdHRVJfRkFJTFVSRV9SRUFTT05fUkFURV9MSU1JVEVEEC4SMQotVFJJR0dFUl9GQUlMVVJFX1JFQVNPTl9QT0xJQ1lfU1BPVF9UUkFERV9ERU5ZEC8SLQopVFJJR0dFUl9GQUlMVVJFX1JFQVNPTl9QT0xJQ1lfTUFSS0VUX0RFTlkQMBIuCipUUklHR0VSX0ZBSUxVUkVfUkVBU09OX1BPTElDWV9NQVhfTk9USU9OQUwQMRIxCi1UUklHR0VSX0ZBSUxVUkVfUkVBU09OX1BPTElDWV9NQVhfT1BFTl9PUkRFUlMQMhIwCixUUklHR0VSX0ZBSUxVUkVfUkVBU09OX1BPTElDWV9UUkFESU5HX0hBTFRFRBAzEi8KKlRSSUdHRVJfRkFJTFVSRV9SRUFTT05fTUlTU0lOR19SRUFTT05fQ09ERRDmBxIqCiVUUklHR0VSX0ZBSUxVUkVfUkVBU09OX0lOVEVSTkFMX0VSUk9SEOcHKmwKEkxhZGRlckRpc3RyaWJ1dGlvbhIjCh9MQURERVJfRElTVFJJQlVUSU9OX1VOU1BFQ0lGSUVEEAASCgoGTElORUFSEAESDQoJR0VPTUVUUklDEAISFgoSV0VJR0hURURfRkFWT1JBQkxFEAMy3gUKD1RyaWdnZXJzU2VydmljZRJYCg1DcmVhdGVUcmlnZ2VyEiEudHJpZ2dlcnMudjEuQ3JlYXRlVHJpZ2dlclJlcXVlc3QaIi50cmlnZ2Vycy52MS5DcmVhdGVUcmlnZ2VyUmVzcG9uc2UiABJPCgpHZXRUcmlnZ2VyEh4udHJpZ2dlcnMudjEuR2V0VHJpZ2dlclJlcXVlc3QaHy50cmlnZ2Vycy52MS5HZXRUcmlnZ2VyUmVzcG9uc2UiABJVCgxMaXN0VHJpZ2dlcnMSIC50cmlnZ2Vycy52MS5MaXN0VHJpZ2dlcnNSZXF1ZXN0GiEudHJpZ2dlcnMudjEuTGlzdFRyaWdnZXJzUmVzcG9uc2UiABJkChFMaXN0VHJpZ2dlckV2ZW50cxIlLnRyaWdnZXJzLnYxLkxpc3RUcmlnZ2VyRXZlbnRzUmVxdWVzdBomLnRyaWdnZXJzLnYxLkxpc3RUcmlnZ2VyRXZlbnRzUmVzcG9uc2UiABJYCg1DYW5jZWxUcmlnZ2VyEiEudHJpZ2dlcnMudjEuQ2FuY2VsVHJpZ2dlclJlcXVlc3QaIi50cmlnZ2Vycy52MS5DYW5jZWxUcmlnZ2VyUmVzcG9uc2UiABJYCg1Nb2RpZnlUcmlnZ2VyEiEudHJpZ2dlcnMudjEuTW9kaWZ5VHJpZ2dlclJlcXVlc3QaIi50cmlnZ2Vycy52MS5Nb2RpZnlUcmlnZ2VyUmVzcG9uc2UiABJVCgxQYXVzZVRyaWdnZXISIC50cmlnZ2Vycy52MS5QYXVzZVRyaWdnZXJSZXF1ZXN0GiEudHJpZ2dlcnMudjEuUGF1c2VUcmlnZ2VyUmVzcG9uc2UiABJYCg1SZXN1bWVUcmlnZ2VyEiEudHJpZ2dlcnMudjEuUmVzdW1lVHJpZ2dlclJlcXVlc3QaIi50cmlnZ2Vycy52MS5SZXN1bWVUcmlnZ2VyUmVzcG9uc2UiAEJEWkJnaXRodWIuY29tL0ZhYnJpYy1MYWJzL3BvbHllc3Rlci1zZGstZ28vZ2VuL3RyaWdnZXJzL3YxO3RyaWdnZXJzdjFiBnByb3RvMw==\", [file_google_protobuf_timestamp, file_orders_v1_orders]);\n\n/**\n * TriggerMarketIoc configures an immediate market child.\n *\n * @generated from message triggers.v1.TriggerMarketIoc\n */\nexport type TriggerMarketIoc = Message<\"triggers.v1.TriggerMarketIoc\"> & {\n};\n\n/**\n * Describes the message triggers.v1.TriggerMarketIoc.\n * Use `create(TriggerMarketIocSchema)` to create a new message.\n */\nexport const TriggerMarketIocSchema: GenMessage<TriggerMarketIoc> = /*@__PURE__*/\n messageDesc(file_triggers_v1_triggers, 0);\n\n/**\n * TriggerLimitGtc configures a resting limit child.\n *\n * @generated from message triggers.v1.TriggerLimitGtc\n */\nexport type TriggerLimitGtc = Message<\"triggers.v1.TriggerLimitGtc\"> & {\n /**\n * Limit price in quote units scaled by 1e6.\n *\n * @generated from field: int64 price_ticks = 1;\n */\n priceTicks: bigint;\n\n /**\n * Reject instead of taking liquidity.\n *\n * @generated from field: bool post_only = 2;\n */\n postOnly: boolean;\n};\n\n/**\n * Describes the message triggers.v1.TriggerLimitGtc.\n * Use `create(TriggerLimitGtcSchema)` to create a new message.\n */\nexport const TriggerLimitGtcSchema: GenMessage<TriggerLimitGtc> = /*@__PURE__*/\n messageDesc(file_triggers_v1_triggers, 1);\n\n/**\n * TriggerLimitIoc configures an immediate-or-cancel limit child.\n *\n * @generated from message triggers.v1.TriggerLimitIoc\n */\nexport type TriggerLimitIoc = Message<\"triggers.v1.TriggerLimitIoc\"> & {\n /**\n * Limit price in quote units scaled by 1e6.\n *\n * @generated from field: int64 price_ticks = 1;\n */\n priceTicks: bigint;\n};\n\n/**\n * Describes the message triggers.v1.TriggerLimitIoc.\n * Use `create(TriggerLimitIocSchema)` to create a new message.\n */\nexport const TriggerLimitIocSchema: GenMessage<TriggerLimitIoc> = /*@__PURE__*/\n messageDesc(file_triggers_v1_triggers, 2);\n\n/**\n * TriggerLimitFok configures a fill-or-kill limit child.\n *\n * @generated from message triggers.v1.TriggerLimitFok\n */\nexport type TriggerLimitFok = Message<\"triggers.v1.TriggerLimitFok\"> & {\n /**\n * Limit price in quote units scaled by 1e6.\n *\n * @generated from field: int64 price_ticks = 1;\n */\n priceTicks: bigint;\n};\n\n/**\n * Describes the message triggers.v1.TriggerLimitFok.\n * Use `create(TriggerLimitFokSchema)` to create a new message.\n */\nexport const TriggerLimitFokSchema: GenMessage<TriggerLimitFok> = /*@__PURE__*/\n messageDesc(file_triggers_v1_triggers, 3);\n\n/**\n * ConditionalChildExecution selects the child submitted by a stop-loss or\n * take-profit trigger. BUY market children are not supported in spot.\n *\n * @generated from message triggers.v1.ConditionalChildExecution\n */\nexport type ConditionalChildExecution = Message<\"triggers.v1.ConditionalChildExecution\"> & {\n /**\n * @generated from oneof triggers.v1.ConditionalChildExecution.execution\n */\n execution: {\n /**\n * Market child with implicit IOC behavior.\n *\n * @generated from field: triggers.v1.TriggerMarketIoc market_ioc = 1;\n */\n value: TriggerMarketIoc;\n case: \"marketIoc\";\n } | {\n /**\n * Resting GTC limit child, optionally post-only.\n *\n * @generated from field: triggers.v1.TriggerLimitGtc limit_gtc = 2;\n */\n value: TriggerLimitGtc;\n case: \"limitGtc\";\n } | {\n /**\n * Immediate-or-cancel limit child.\n *\n * @generated from field: triggers.v1.TriggerLimitIoc limit_ioc = 3;\n */\n value: TriggerLimitIoc;\n case: \"limitIoc\";\n } | {\n /**\n * Fill-or-kill limit child.\n *\n * @generated from field: triggers.v1.TriggerLimitFok limit_fok = 4;\n */\n value: TriggerLimitFok;\n case: \"limitFok\";\n } | { case: undefined; value?: undefined };\n};\n\n/**\n * Describes the message triggers.v1.ConditionalChildExecution.\n * Use `create(ConditionalChildExecutionSchema)` to create a new message.\n */\nexport const ConditionalChildExecutionSchema: GenMessage<ConditionalChildExecution> = /*@__PURE__*/\n messageDesc(file_triggers_v1_triggers, 4);\n\n/**\n * ConditionalTrigger configures a standalone stop-loss or take-profit.\n *\n * @generated from message triggers.v1.ConditionalTrigger\n */\nexport type ConditionalTrigger = Message<\"triggers.v1.ConditionalTrigger\"> & {\n /**\n * Trigger threshold in quote units scaled by 1e6.\n *\n * @generated from field: int64 trigger_price_ticks = 1;\n */\n triggerPriceTicks: bigint;\n\n /**\n * Child order side.\n *\n * @generated from field: orders.v1.Side side = 2;\n */\n side: Side;\n\n /**\n * Child execution.\n *\n * @generated from field: triggers.v1.ConditionalChildExecution child = 3;\n */\n child?: ConditionalChildExecution | undefined;\n};\n\n/**\n * Describes the message triggers.v1.ConditionalTrigger.\n * Use `create(ConditionalTriggerSchema)` to create a new message.\n */\nexport const ConditionalTriggerSchema: GenMessage<ConditionalTrigger> = /*@__PURE__*/\n messageDesc(file_triggers_v1_triggers, 5);\n\n/**\n * TrailingStopTrigger configures a spot trailing-stop strategy.\n * Standalone triggers currently support SELL market-IOC children. Attached\n * trailing stops may use either side, opposite their parent order.\n *\n * @generated from message triggers.v1.TrailingStopTrigger\n */\nexport type TrailingStopTrigger = Message<\"triggers.v1.TrailingStopTrigger\"> & {\n /**\n * Required trailing distance.\n *\n * @generated from oneof triggers.v1.TrailingStopTrigger.trailing_distance\n */\n trailingDistance: {\n /**\n * Distance as a price delta in 1e-6 quote-unit ticks.\n *\n * @generated from field: int64 trailing_distance_ticks = 1;\n */\n value: bigint;\n case: \"trailingDistanceTicks\";\n } | {\n /**\n * Distance in basis points (1 bp = 0.01%).\n *\n * @generated from field: int32 trailing_distance_bps = 2;\n */\n value: number;\n case: \"trailingDistanceBps\";\n } | { case: undefined; value?: undefined };\n\n /**\n * Optional activation price in quote units scaled by 1e6.\n *\n * @generated from field: int64 activation_price_ticks = 3;\n */\n activationPriceTicks: bigint;\n\n /**\n * Optional protection applied when the market child fires.\n *\n * @generated from oneof triggers.v1.TrailingStopTrigger.max_slippage\n */\n maxSlippage: {\n /**\n * Maximum slippage as a price delta in 1e-6 quote-unit ticks.\n *\n * @generated from field: int32 max_slippage_ticks = 4;\n */\n value: number;\n case: \"maxSlippageTicks\";\n } | {\n /**\n * Maximum slippage in basis points (1 bp = 0.01%).\n *\n * @generated from field: int32 max_slippage_bps = 5;\n */\n value: number;\n case: \"maxSlippageBps\";\n } | { case: undefined; value?: undefined };\n\n /**\n * Child order side.\n *\n * @generated from field: orders.v1.Side side = 6;\n */\n side: Side;\n};\n\n/**\n * Describes the message triggers.v1.TrailingStopTrigger.\n * Use `create(TrailingStopTriggerSchema)` to create a new message.\n */\nexport const TrailingStopTriggerSchema: GenMessage<TrailingStopTrigger> = /*@__PURE__*/\n messageDesc(file_triggers_v1_triggers, 6);\n\n/**\n * TwapMarketIoc configures server-priced market-IOC slices.\n *\n * @generated from message triggers.v1.TwapMarketIoc\n */\nexport type TwapMarketIoc = Message<\"triggers.v1.TwapMarketIoc\"> & {\n /**\n * Optional protection for each slice, relative to the server-side reference\n * price at that slice's admission. If omitted, each slice uses the pair's\n * default market slippage. This does not bound price movement over the whole\n * TWAP duration or guarantee that every slice fills.\n *\n * @generated from oneof triggers.v1.TwapMarketIoc.max_slippage\n */\n maxSlippage: {\n /**\n * Maximum adverse price delta per slice in 1e-6 quote-unit ticks.\n *\n * @generated from field: int32 max_slippage_ticks = 1;\n */\n value: number;\n case: \"maxSlippageTicks\";\n } | {\n /**\n * Maximum adverse price movement per slice in basis points (1 bp = 0.01%).\n *\n * @generated from field: int32 max_slippage_bps = 2;\n */\n value: number;\n case: \"maxSlippageBps\";\n } | { case: undefined; value?: undefined };\n};\n\n/**\n * Describes the message triggers.v1.TwapMarketIoc.\n * Use `create(TwapMarketIocSchema)` to create a new message.\n */\nexport const TwapMarketIocSchema: GenMessage<TwapMarketIoc> = /*@__PURE__*/\n messageDesc(file_triggers_v1_triggers, 7);\n\n/**\n * TwapLimitGtc configures one resting limit slice at a time. A previous open\n * slice is canceled before the next interval.\n *\n * @generated from message triggers.v1.TwapLimitGtc\n */\nexport type TwapLimitGtc = Message<\"triggers.v1.TwapLimitGtc\"> & {\n /**\n * Slice limit price in quote units scaled by 1e6.\n *\n * @generated from field: int64 price_ticks = 1;\n */\n priceTicks: bigint;\n};\n\n/**\n * Describes the message triggers.v1.TwapLimitGtc.\n * Use `create(TwapLimitGtcSchema)` to create a new message.\n */\nexport const TwapLimitGtcSchema: GenMessage<TwapLimitGtc> = /*@__PURE__*/\n messageDesc(file_triggers_v1_triggers, 8);\n\n/**\n * TwapTrigger configures a proven TWAP execution mode.\n *\n * @generated from message triggers.v1.TwapTrigger\n */\nexport type TwapTrigger = Message<\"triggers.v1.TwapTrigger\"> & {\n /**\n * Child side.\n *\n * @generated from field: orders.v1.Side side = 1;\n */\n side: Side;\n\n /**\n * Total execution duration in milliseconds.\n *\n * @generated from field: int64 duration_ms = 2;\n */\n durationMs: bigint;\n\n /**\n * Interval between slices in milliseconds.\n *\n * @generated from field: int64 slice_interval_ms = 3;\n */\n sliceIntervalMs: bigint;\n\n /**\n * Proven slice execution behavior.\n *\n * @generated from oneof triggers.v1.TwapTrigger.execution\n */\n execution: {\n /**\n * Server-priced market IOC slices.\n *\n * @generated from field: triggers.v1.TwapMarketIoc market_ioc = 4;\n */\n value: TwapMarketIoc;\n case: \"marketIoc\";\n } | {\n /**\n * Limit GTC slices with cancel-before-next behavior.\n *\n * @generated from field: triggers.v1.TwapLimitGtc limit_gtc = 5;\n */\n value: TwapLimitGtc;\n case: \"limitGtc\";\n } | { case: undefined; value?: undefined };\n};\n\n/**\n * Describes the message triggers.v1.TwapTrigger.\n * Use `create(TwapTriggerSchema)` to create a new message.\n */\nexport const TwapTriggerSchema: GenMessage<TwapTrigger> = /*@__PURE__*/\n messageDesc(file_triggers_v1_triggers, 9);\n\n/**\n * LadderTrigger configures the supported LINEAR limit-GTC ladder. All levels\n * are admitted immediately and may rest concurrently.\n *\n * @generated from message triggers.v1.LadderTrigger\n */\nexport type LadderTrigger = Message<\"triggers.v1.LadderTrigger\"> & {\n /**\n * Child side.\n *\n * @generated from field: orders.v1.Side side = 1;\n */\n side: Side;\n\n /**\n * Minimum generated level price in quote units scaled by 1e6.\n *\n * @generated from field: int64 price_min_ticks = 2;\n */\n priceMinTicks: bigint;\n\n /**\n * Maximum generated level price in quote units scaled by 1e6.\n *\n * @generated from field: int64 price_max_ticks = 3;\n */\n priceMaxTicks: bigint;\n\n /**\n * Number of linearly distributed levels.\n *\n * @generated from field: int32 levels = 4;\n */\n levels: number;\n\n /**\n * Reject each level instead of taking liquidity.\n *\n * @generated from field: bool post_only = 5;\n */\n postOnly: boolean;\n};\n\n/**\n * Describes the message triggers.v1.LadderTrigger.\n * Use `create(LadderTriggerSchema)` to create a new message.\n */\nexport const LadderTriggerSchema: GenMessage<LadderTrigger> = /*@__PURE__*/\n messageDesc(file_triggers_v1_triggers, 10);\n\n/**\n * TriggerIntent contains one standalone trigger's immutable configuration.\n *\n * @generated from message triggers.v1.TriggerIntent\n */\nexport type TriggerIntent = Message<\"triggers.v1.TriggerIntent\"> & {\n /**\n * Stable numeric pair ID from GetSpotConfig.\n *\n * @generated from field: uint32 symbol_id = 1;\n */\n symbolId: number;\n\n /**\n * Total quantity scaled by the pair's base_quantity_scale.\n *\n * @generated from field: int64 qty_scaled = 2;\n */\n qtyScaled: bigint;\n\n /**\n * Fee asset for BUY children. SELL children must use QUOTE.\n *\n * @generated from field: orders.v1.FeeAsset fee_asset = 3;\n */\n feeAsset: FeeAsset;\n\n /**\n * Child self-trade prevention mode. Defaults to EXPIRE_MAKER.\n *\n * @generated from field: orders.v1.SelfTradePreventionMode self_trade_prevention_mode = 4;\n */\n selfTradePreventionMode: SelfTradePreventionMode;\n\n /**\n * Client-provided trigger ID for idempotency.\n *\n * @generated from field: string client_trigger_id = 5;\n */\n clientTriggerId: string;\n\n /**\n * Required trigger strategy.\n *\n * @generated from oneof triggers.v1.TriggerIntent.strategy\n */\n strategy: {\n /**\n * Standalone stop-loss.\n *\n * @generated from field: triggers.v1.ConditionalTrigger stop_loss = 10;\n */\n value: ConditionalTrigger;\n case: \"stopLoss\";\n } | {\n /**\n * Standalone take-profit.\n *\n * @generated from field: triggers.v1.ConditionalTrigger take_profit = 11;\n */\n value: ConditionalTrigger;\n case: \"takeProfit\";\n } | {\n /**\n * SELL market-IOC trailing stop.\n *\n * @generated from field: triggers.v1.TrailingStopTrigger trailing_stop = 12;\n */\n value: TrailingStopTrigger;\n case: \"trailingStop\";\n } | {\n /**\n * TWAP strategy.\n *\n * @generated from field: triggers.v1.TwapTrigger twap = 13;\n */\n value: TwapTrigger;\n case: \"twap\";\n } | {\n /**\n * LINEAR limit-GTC ladder.\n *\n * @generated from field: triggers.v1.LadderTrigger ladder = 14;\n */\n value: LadderTrigger;\n case: \"ladder\";\n } | { case: undefined; value?: undefined };\n};\n\n/**\n * Describes the message triggers.v1.TriggerIntent.\n * Use `create(TriggerIntentSchema)` to create a new message.\n */\nexport const TriggerIntentSchema: GenMessage<TriggerIntent> = /*@__PURE__*/\n messageDesc(file_triggers_v1_triggers, 11);\n\n/**\n * CreateTriggerRequest submits one standalone trigger intent for admission.\n *\n * @generated from message triggers.v1.CreateTriggerRequest\n */\nexport type CreateTriggerRequest = Message<\"triggers.v1.CreateTriggerRequest\"> & {\n /**\n * Target sub-account. When omitted, uses the caller's root account.\n *\n * @generated from field: optional fixed64 subaccount_id = 1;\n */\n subaccountId?: bigint | undefined;\n\n /**\n * Trigger to admit.\n *\n * @generated from field: triggers.v1.TriggerIntent trigger = 2;\n */\n trigger?: TriggerIntent | undefined;\n};\n\n/**\n * Describes the message triggers.v1.CreateTriggerRequest.\n * Use `create(CreateTriggerRequestSchema)` to create a new message.\n */\nexport const CreateTriggerRequestSchema: GenMessage<CreateTriggerRequest> = /*@__PURE__*/\n messageDesc(file_triggers_v1_triggers, 12);\n\n/**\n * CreateTriggerResponse acknowledges trigger creation only. Arming and child\n * execution happen asynchronously and are visible through trigger reads/events.\n *\n * @generated from message triggers.v1.CreateTriggerResponse\n */\nexport type CreateTriggerResponse = Message<\"triggers.v1.CreateTriggerResponse\"> & {\n /**\n * Assigned trigger ID.\n *\n * @generated from field: fixed64 trigger_id = 1;\n */\n triggerId: bigint;\n\n /**\n * Echoed client trigger ID.\n *\n * @generated from field: string client_trigger_id = 2;\n */\n clientTriggerId: string;\n\n /**\n * Time creation admission completed.\n *\n * @generated from field: google.protobuf.Timestamp accepted_at = 3;\n */\n acceptedAt?: Timestamp | undefined;\n\n /**\n * Admission completion time in nanoseconds since epoch (UTC).\n *\n * @generated from field: uint64 accepted_at_ts_ns = 4;\n */\n acceptedAtTsNs: bigint;\n};\n\n/**\n * Describes the message triggers.v1.CreateTriggerResponse.\n * Use `create(CreateTriggerResponseSchema)` to create a new message.\n */\nexport const CreateTriggerResponseSchema: GenMessage<CreateTriggerResponse> = /*@__PURE__*/\n messageDesc(file_triggers_v1_triggers, 13);\n\n/**\n * GetTriggerRequest retrieves one trigger by ID.\n *\n * @generated from message triggers.v1.GetTriggerRequest\n */\nexport type GetTriggerRequest = Message<\"triggers.v1.GetTriggerRequest\"> & {\n /**\n * Trigger ID to retrieve.\n *\n * @generated from field: fixed64 trigger_id = 1;\n */\n triggerId: bigint;\n\n /**\n * Optional sub-account for authorization.\n *\n * @generated from field: optional fixed64 subaccount_id = 2;\n */\n subaccountId?: bigint | undefined;\n};\n\n/**\n * Describes the message triggers.v1.GetTriggerRequest.\n * Use `create(GetTriggerRequestSchema)` to create a new message.\n */\nexport const GetTriggerRequestSchema: GenMessage<GetTriggerRequest> = /*@__PURE__*/\n messageDesc(file_triggers_v1_triggers, 14);\n\n/**\n * GetTriggerResponse returns the requested trigger.\n *\n * @generated from message triggers.v1.GetTriggerResponse\n */\nexport type GetTriggerResponse = Message<\"triggers.v1.GetTriggerResponse\"> & {\n /**\n * Trigger state and configuration.\n *\n * @generated from field: triggers.v1.Trigger trigger = 1;\n */\n trigger?: Trigger | undefined;\n};\n\n/**\n * Describes the message triggers.v1.GetTriggerResponse.\n * Use `create(GetTriggerResponseSchema)` to create a new message.\n */\nexport const GetTriggerResponseSchema: GenMessage<GetTriggerResponse> = /*@__PURE__*/\n messageDesc(file_triggers_v1_triggers, 15);\n\n/**\n * ListTriggersRequest lists triggers for an account.\n *\n * @generated from message triggers.v1.ListTriggersRequest\n */\nexport type ListTriggersRequest = Message<\"triggers.v1.ListTriggersRequest\"> & {\n /**\n * Optional sub-account to list triggers for. When empty or omitted, uses the\n * caller's root account.\n *\n * @generated from field: optional fixed64 subaccount_id = 1;\n */\n subaccountId?: bigint | undefined;\n\n /**\n * Optional filter by stable numeric pair ID. Zero means all symbols.\n *\n * @generated from field: uint32 symbol_id = 2;\n */\n symbolId: number;\n\n /**\n * Optional filter by status (can specify multiple).\n *\n * @generated from field: repeated triggers.v1.TriggerStatus status = 3;\n */\n status: TriggerStatus[];\n\n /**\n * Optional filter by type.\n *\n * @generated from field: triggers.v1.TriggerType trigger_type = 4;\n */\n triggerType: TriggerType;\n\n /**\n * Optional filter by attached parent order ID.\n *\n * @generated from field: optional fixed64 parent_order_id = 5;\n */\n parentOrderId?: bigint | undefined;\n\n /**\n * Maximum number of triggers to return. Defaults to 100 when omitted;\n * maximum is 1000.\n *\n * @generated from field: uint32 limit = 10;\n */\n limit: number;\n\n /**\n * Opaque keyset cursor from a previous response. The cursor is exclusive and\n * bound to the authenticated account, sub-account scope, filters, and newest\n * first sort order.\n *\n * @generated from field: string page_token = 12;\n */\n pageToken: string;\n};\n\n/**\n * Describes the message triggers.v1.ListTriggersRequest.\n * Use `create(ListTriggersRequestSchema)` to create a new message.\n */\nexport const ListTriggersRequestSchema: GenMessage<ListTriggersRequest> = /*@__PURE__*/\n messageDesc(file_triggers_v1_triggers, 16);\n\n/**\n * ListTriggersResponse returns triggers ordered newest-first.\n *\n * @generated from message triggers.v1.ListTriggersResponse\n */\nexport type ListTriggersResponse = Message<\"triggers.v1.ListTriggersResponse\"> & {\n /**\n * Triggers ordered by creation time descending, then trigger ID descending.\n *\n * @generated from field: repeated triggers.v1.Trigger triggers = 1;\n */\n triggers: Trigger[];\n\n /**\n * Opaque cursor for the next page. Empty when no more results exist.\n *\n * @generated from field: string next_page_token = 3;\n */\n nextPageToken: string;\n};\n\n/**\n * Describes the message triggers.v1.ListTriggersResponse.\n * Use `create(ListTriggersResponseSchema)` to create a new message.\n */\nexport const ListTriggersResponseSchema: GenMessage<ListTriggersResponse> = /*@__PURE__*/\n messageDesc(file_triggers_v1_triggers, 17);\n\n/**\n * ListTriggerEventsRequest lists historical events for one trigger.\n *\n * @generated from message triggers.v1.ListTriggerEventsRequest\n */\nexport type ListTriggerEventsRequest = Message<\"triggers.v1.ListTriggerEventsRequest\"> & {\n /**\n * Trigger ID to list events for.\n *\n * @generated from field: fixed64 trigger_id = 1;\n */\n triggerId: bigint;\n\n /**\n * Optional sub-account (authorization). When empty or omitted, uses the\n * caller's root account.\n *\n * @generated from field: optional fixed64 subaccount_id = 2;\n */\n subaccountId?: bigint | undefined;\n\n /**\n * Maximum number of events to return. Defaults to 100 when omitted; maximum\n * is 1000.\n *\n * @generated from field: uint32 limit = 3;\n */\n limit: number;\n\n /**\n * Optional event category filter. When unspecified, returns all event\n * categories. Use EVENT_FIRED to enumerate child-order actions.\n *\n * @generated from field: triggers.v1.TriggerEventType event_type = 4;\n */\n eventType: TriggerEventType;\n\n /**\n * Opaque keyset cursor from a previous response. The cursor is exclusive and\n * bound to the authenticated account, trigger, sub-account scope, event\n * filter, and newest-first sort order.\n *\n * @generated from field: string page_token = 5;\n */\n pageToken: string;\n};\n\n/**\n * Describes the message triggers.v1.ListTriggerEventsRequest.\n * Use `create(ListTriggerEventsRequestSchema)` to create a new message.\n */\nexport const ListTriggerEventsRequestSchema: GenMessage<ListTriggerEventsRequest> = /*@__PURE__*/\n messageDesc(file_triggers_v1_triggers, 18);\n\n/**\n * TriggerEvent describes one historical trigger lifecycle event.\n *\n * @generated from message triggers.v1.TriggerEvent\n */\nexport type TriggerEvent = Message<\"triggers.v1.TriggerEvent\"> & {\n /**\n * Trigger ID associated with the event.\n *\n * @generated from field: fixed64 trigger_id = 1;\n */\n triggerId: bigint;\n\n /**\n * Public account or sub-account ID associated with the trigger.\n *\n * @generated from field: fixed64 subaccount_id = 2;\n */\n subaccountId: bigint;\n\n /**\n * Trading symbol numeric identifier.\n *\n * @generated from field: uint32 symbol_id = 3;\n */\n symbolId: number;\n\n /**\n * Trigger type at the time of the event.\n *\n * @generated from field: triggers.v1.TriggerType trigger_type = 4;\n */\n triggerType: TriggerType;\n\n /**\n * Event category.\n *\n * @generated from field: triggers.v1.TriggerEventType event_type = 5;\n */\n eventType: TriggerEventType;\n\n /**\n * Event timestamp in nanoseconds since epoch (UTC).\n *\n * @generated from field: uint64 ts_ns = 10;\n */\n tsNs: bigint;\n\n /**\n * Child sequence number for multi-child trigger strategies.\n *\n * @generated from field: int32 child_seq = 11;\n */\n childSeq: number;\n\n /**\n * Child order ID created by this event, if any.\n *\n * @generated from field: fixed64 child_order_id = 12;\n */\n childOrderId: bigint;\n\n /**\n * Price that caused a conditional trigger to fire, in quote units scaled by\n * 1e6. Absent for time-scheduled triggers such as TWAP.\n *\n * @generated from field: optional int64 fire_price_ticks = 13;\n */\n firePriceTicks?: bigint | undefined;\n\n /**\n * Terminal reason for canceled or failed events. Other event types leave it unset.\n *\n * @generated from oneof triggers.v1.TriggerEvent.terminal_reason\n */\n terminalReason: {\n /**\n * Why an admitted trigger was canceled.\n *\n * @generated from field: triggers.v1.TriggerCancelReason cancel_reason = 20;\n */\n value: TriggerCancelReason;\n case: \"cancelReason\";\n } | {\n /**\n * Why an admitted trigger failed.\n *\n * @generated from field: triggers.v1.TriggerFailureReason failure_reason = 21;\n */\n value: TriggerFailureReason;\n case: \"failureReason\";\n } | { case: undefined; value?: undefined };\n};\n\n/**\n * Describes the message triggers.v1.TriggerEvent.\n * Use `create(TriggerEventSchema)` to create a new message.\n */\nexport const TriggerEventSchema: GenMessage<TriggerEvent> = /*@__PURE__*/\n messageDesc(file_triggers_v1_triggers, 19);\n\n/**\n * ListTriggerEventsResponse returns historical events ordered newest-first.\n *\n * @generated from message triggers.v1.ListTriggerEventsResponse\n */\nexport type ListTriggerEventsResponse = Message<\"triggers.v1.ListTriggerEventsResponse\"> & {\n /**\n * Events ordered by event time descending, child sequence descending, and\n * stable event tie-breakers descending.\n *\n * @generated from field: repeated triggers.v1.TriggerEvent events = 1;\n */\n events: TriggerEvent[];\n\n /**\n * Opaque cursor for the next page. Empty when no more results exist.\n *\n * @generated from field: string next_page_token = 3;\n */\n nextPageToken: string;\n};\n\n/**\n * Describes the message triggers.v1.ListTriggerEventsResponse.\n * Use `create(ListTriggerEventsResponseSchema)` to create a new message.\n */\nexport const ListTriggerEventsResponseSchema: GenMessage<ListTriggerEventsResponse> = /*@__PURE__*/\n messageDesc(file_triggers_v1_triggers, 20);\n\n/**\n * CancelTriggerRequest cancels an active trigger by ID.\n *\n * @generated from message triggers.v1.CancelTriggerRequest\n */\nexport type CancelTriggerRequest = Message<\"triggers.v1.CancelTriggerRequest\"> & {\n /**\n * Trigger ID to cancel.\n *\n * @generated from field: fixed64 trigger_id = 1;\n */\n triggerId: bigint;\n\n /**\n * Optional sub-account for authorization.\n *\n * @generated from field: optional fixed64 subaccount_id = 2;\n */\n subaccountId?: bigint | undefined;\n};\n\n/**\n * Describes the message triggers.v1.CancelTriggerRequest.\n * Use `create(CancelTriggerRequestSchema)` to create a new message.\n */\nexport const CancelTriggerRequestSchema: GenMessage<CancelTriggerRequest> = /*@__PURE__*/\n messageDesc(file_triggers_v1_triggers, 21);\n\n/**\n * CancelTriggerResponse returns the final status after cancellation.\n *\n * @generated from message triggers.v1.CancelTriggerResponse\n */\nexport type CancelTriggerResponse = Message<\"triggers.v1.CancelTriggerResponse\"> & {\n /**\n * Trigger ID that was canceled.\n *\n * @generated from field: fixed64 trigger_id = 1;\n */\n triggerId: bigint;\n\n /**\n * Final status (should be STATUS_CANCELED).\n *\n * @generated from field: triggers.v1.TriggerStatus status = 2;\n */\n status: TriggerStatus;\n\n /**\n * Server timestamp.\n *\n * @generated from field: google.protobuf.Timestamp ts = 3;\n */\n ts?: Timestamp | undefined;\n\n /**\n * Server timestamp in nanoseconds since epoch (UTC).\n *\n * @generated from field: uint64 ts_ns = 4;\n */\n tsNs: bigint;\n};\n\n/**\n * Describes the message triggers.v1.CancelTriggerResponse.\n * Use `create(CancelTriggerResponseSchema)` to create a new message.\n */\nexport const CancelTriggerResponseSchema: GenMessage<CancelTriggerResponse> = /*@__PURE__*/\n messageDesc(file_triggers_v1_triggers, 22);\n\n/**\n * ModifyTriggerRequest applies a limited patch to an existing trigger.\n *\n * @generated from message triggers.v1.ModifyTriggerRequest\n */\nexport type ModifyTriggerRequest = Message<\"triggers.v1.ModifyTriggerRequest\"> & {\n /**\n * Trigger ID to modify.\n *\n * @generated from field: fixed64 trigger_id = 1;\n */\n triggerId: bigint;\n\n /**\n * Optional sub-account for authorization.\n *\n * @generated from field: optional fixed64 subaccount_id = 2;\n */\n subaccountId?: bigint | undefined;\n\n /**\n * Trading symbol numeric identifier. Required for API-key market policy and\n * must match the stored trigger.\n *\n * @generated from field: uint32 symbol_id = 3;\n */\n symbolId: number;\n\n /**\n * Patch fields for safe price, trailing-distance, and slippage edits.\n * For stop/take-profit:\n * Updated trigger price in quote units scaled by 1e6.\n *\n * @generated from field: optional int64 trigger_price_ticks = 10;\n */\n triggerPriceTicks?: bigint | undefined;\n\n /**\n * Updated limit price in quote units scaled by 1e6 for LIMIT child orders.\n *\n * @generated from field: optional int64 limit_price_ticks = 11;\n */\n limitPriceTicks?: bigint | undefined;\n\n /**\n * For trailing stop:\n *\n * @generated from oneof triggers.v1.ModifyTriggerRequest.trailing_distance\n */\n trailingDistance: {\n /**\n * Updated trailing distance as a price delta in 1e-6 quote-unit ticks.\n *\n * @generated from field: int64 trailing_distance_ticks = 12;\n */\n value: bigint;\n case: \"trailingDistanceTicks\";\n } | {\n /**\n * Updated trailing distance in basis points (1 bp = 0.01%).\n *\n * @generated from field: int32 trailing_distance_bps = 13;\n */\n value: number;\n case: \"trailingDistanceBps\";\n } | { case: undefined; value?: undefined };\n\n /**\n * Updated activation price in quote units scaled by 1e6. Set to zero to\n * clear an existing activation price; omit to leave it unchanged.\n *\n * @generated from field: optional int64 activation_price_ticks = 14;\n */\n activationPriceTicks?: bigint | undefined;\n\n /**\n * Optional price protection. Select either field with a zero value to clear\n * an existing max-slippage cap; omit the oneof to leave it unchanged.\n *\n * @generated from oneof triggers.v1.ModifyTriggerRequest.max_slippage\n */\n maxSlippage: {\n /**\n * Updated maximum allowed slippage as a price delta in 1e-6 quote-unit\n * ticks. Set to zero to clear the cap.\n *\n * @generated from field: int32 max_slippage_ticks = 15;\n */\n value: number;\n case: \"maxSlippageTicks\";\n } | {\n /**\n * Updated maximum allowed slippage in basis points (1 bp = 0.01%). Set to\n * zero to clear the cap.\n *\n * @generated from field: int32 max_slippage_bps = 16;\n */\n value: number;\n case: \"maxSlippageBps\";\n } | { case: undefined; value?: undefined };\n};\n\n/**\n * Describes the message triggers.v1.ModifyTriggerRequest.\n * Use `create(ModifyTriggerRequestSchema)` to create a new message.\n */\nexport const ModifyTriggerRequestSchema: GenMessage<ModifyTriggerRequest> = /*@__PURE__*/\n messageDesc(file_triggers_v1_triggers, 23);\n\n/**\n * ModifyTriggerResponse returns the trigger status after modification.\n *\n * @generated from message triggers.v1.ModifyTriggerResponse\n */\nexport type ModifyTriggerResponse = Message<\"triggers.v1.ModifyTriggerResponse\"> & {\n /**\n * Modified trigger ID.\n *\n * @generated from field: fixed64 trigger_id = 1;\n */\n triggerId: bigint;\n\n /**\n * Current trigger status after modification.\n *\n * @generated from field: triggers.v1.TriggerStatus status = 2;\n */\n status: TriggerStatus;\n\n /**\n * Server timestamp.\n *\n * @generated from field: google.protobuf.Timestamp ts = 3;\n */\n ts?: Timestamp | undefined;\n\n /**\n * Server timestamp in nanoseconds since epoch (UTC).\n *\n * @generated from field: uint64 ts_ns = 4;\n */\n tsNs: bigint;\n};\n\n/**\n * Describes the message triggers.v1.ModifyTriggerResponse.\n * Use `create(ModifyTriggerResponseSchema)` to create a new message.\n */\nexport const ModifyTriggerResponseSchema: GenMessage<ModifyTriggerResponse> = /*@__PURE__*/\n messageDesc(file_triggers_v1_triggers, 24);\n\n/**\n * PauseTriggerRequest pauses an active trigger by ID.\n *\n * @generated from message triggers.v1.PauseTriggerRequest\n */\nexport type PauseTriggerRequest = Message<\"triggers.v1.PauseTriggerRequest\"> & {\n /**\n * Trigger ID to pause.\n *\n * @generated from field: fixed64 trigger_id = 1;\n */\n triggerId: bigint;\n\n /**\n * Optional sub-account for authorization.\n *\n * @generated from field: optional fixed64 subaccount_id = 2;\n */\n subaccountId?: bigint | undefined;\n};\n\n/**\n * Describes the message triggers.v1.PauseTriggerRequest.\n * Use `create(PauseTriggerRequestSchema)` to create a new message.\n */\nexport const PauseTriggerRequestSchema: GenMessage<PauseTriggerRequest> = /*@__PURE__*/\n messageDesc(file_triggers_v1_triggers, 25);\n\n/**\n * PauseTriggerResponse returns the trigger status after pausing.\n *\n * @generated from message triggers.v1.PauseTriggerResponse\n */\nexport type PauseTriggerResponse = Message<\"triggers.v1.PauseTriggerResponse\"> & {\n /**\n * Paused trigger ID.\n *\n * @generated from field: fixed64 trigger_id = 1;\n */\n triggerId: bigint;\n\n /**\n * Current trigger status after pausing.\n *\n * @generated from field: triggers.v1.TriggerStatus status = 2;\n */\n status: TriggerStatus;\n\n /**\n * Server timestamp.\n *\n * @generated from field: google.protobuf.Timestamp ts = 3;\n */\n ts?: Timestamp | undefined;\n\n /**\n * Server timestamp in nanoseconds since epoch (UTC).\n *\n * @generated from field: uint64 ts_ns = 4;\n */\n tsNs: bigint;\n};\n\n/**\n * Describes the message triggers.v1.PauseTriggerResponse.\n * Use `create(PauseTriggerResponseSchema)` to create a new message.\n */\nexport const PauseTriggerResponseSchema: GenMessage<PauseTriggerResponse> = /*@__PURE__*/\n messageDesc(file_triggers_v1_triggers, 26);\n\n/**\n * ResumeTriggerRequest resumes a paused trigger by ID.\n *\n * @generated from message triggers.v1.ResumeTriggerRequest\n */\nexport type ResumeTriggerRequest = Message<\"triggers.v1.ResumeTriggerRequest\"> & {\n /**\n * Trigger ID to resume.\n *\n * @generated from field: fixed64 trigger_id = 1;\n */\n triggerId: bigint;\n\n /**\n * Optional sub-account for authorization.\n *\n * @generated from field: optional fixed64 subaccount_id = 2;\n */\n subaccountId?: bigint | undefined;\n\n /**\n * Trading symbol numeric identifier. Required for API-key market policy and\n * must match the stored trigger.\n *\n * @generated from field: uint32 symbol_id = 3;\n */\n symbolId: number;\n};\n\n/**\n * Describes the message triggers.v1.ResumeTriggerRequest.\n * Use `create(ResumeTriggerRequestSchema)` to create a new message.\n */\nexport const ResumeTriggerRequestSchema: GenMessage<ResumeTriggerRequest> = /*@__PURE__*/\n messageDesc(file_triggers_v1_triggers, 27);\n\n/**\n * ResumeTriggerResponse returns the trigger status after resuming.\n *\n * @generated from message triggers.v1.ResumeTriggerResponse\n */\nexport type ResumeTriggerResponse = Message<\"triggers.v1.ResumeTriggerResponse\"> & {\n /**\n * Resumed trigger ID.\n *\n * @generated from field: fixed64 trigger_id = 1;\n */\n triggerId: bigint;\n\n /**\n * Current trigger status after resuming.\n *\n * @generated from field: triggers.v1.TriggerStatus status = 2;\n */\n status: TriggerStatus;\n\n /**\n * Server timestamp.\n *\n * @generated from field: google.protobuf.Timestamp ts = 3;\n */\n ts?: Timestamp | undefined;\n\n /**\n * Server timestamp in nanoseconds since epoch (UTC).\n *\n * @generated from field: uint64 ts_ns = 4;\n */\n tsNs: bigint;\n};\n\n/**\n * Describes the message triggers.v1.ResumeTriggerResponse.\n * Use `create(ResumeTriggerResponseSchema)` to create a new message.\n */\nexport const ResumeTriggerResponseSchema: GenMessage<ResumeTriggerResponse> = /*@__PURE__*/\n messageDesc(file_triggers_v1_triggers, 28);\n\n/**\n * StopDetails contains configuration for STOP_LOSS and TAKE_PROFIT triggers.\n *\n * @generated from message triggers.v1.StopDetails\n */\nexport type StopDetails = Message<\"triggers.v1.StopDetails\"> & {\n /**\n * Trigger threshold price in quote units scaled by 1e6.\n *\n * @generated from field: int64 trigger_price_ticks = 1;\n */\n triggerPriceTicks: bigint;\n\n /**\n * Price source used for trigger evaluation.\n *\n * @generated from field: orders.v1.TriggerPriceSource trigger_price_source = 2;\n */\n triggerPriceSource: TriggerPriceSource;\n\n /**\n * Direction the price must cross to fire the trigger.\n *\n * @generated from field: orders.v1.TriggerDirection trigger_direction = 3;\n */\n triggerDirection: TriggerDirection;\n};\n\n/**\n * Describes the message triggers.v1.StopDetails.\n * Use `create(StopDetailsSchema)` to create a new message.\n */\nexport const StopDetailsSchema: GenMessage<StopDetails> = /*@__PURE__*/\n messageDesc(file_triggers_v1_triggers, 29);\n\n/**\n * TrailingDetails contains configuration and runtime state for TRAILING_STOP\n * triggers.\n *\n * @generated from message triggers.v1.TrailingDetails\n */\nexport type TrailingDetails = Message<\"triggers.v1.TrailingDetails\"> & {\n /**\n * Trailing distance as a price delta in 1e-6 quote-unit ticks.\n *\n * @generated from field: int64 trailing_distance_ticks = 1;\n */\n trailingDistanceTicks: bigint;\n\n /**\n * Optional activation price: trailing only starts after this price is\n * reached. Expressed in quote units scaled by 1e6.\n *\n * @generated from field: int64 activation_price_ticks = 2;\n */\n activationPriceTicks: bigint;\n\n /**\n * Current peak price in quote units scaled by 1e6 for sell trailing stops.\n *\n * @generated from field: int64 peak_price_ticks = 3;\n */\n peakPriceTicks: bigint;\n\n /**\n * Current trough price in quote units scaled by 1e6 for buy trailing stops.\n *\n * @generated from field: int64 trough_price_ticks = 4;\n */\n troughPriceTicks: bigint;\n\n /**\n * Trailing distance in basis points (1 bp = 0.01%).\n *\n * @generated from field: int32 trailing_distance_bps = 5;\n */\n trailingDistanceBps: number;\n\n /**\n * Optional maximum allowed slippage as a price delta in 1e-6 quote-unit ticks.\n *\n * @generated from field: int32 max_slippage_ticks = 6;\n */\n maxSlippageTicks: number;\n\n /**\n * Optional maximum allowed slippage in basis points (1 bp = 0.01%).\n *\n * @generated from field: int32 max_slippage_bps = 7;\n */\n maxSlippageBps: number;\n\n /**\n * Price source used for trigger evaluation. Fixed for the lifetime of the\n * trigger and exposed for completeness.\n *\n * @generated from field: orders.v1.TriggerPriceSource trigger_price_source = 8;\n */\n triggerPriceSource: TriggerPriceSource;\n\n /**\n * Direction the price must cross to fire the trigger. Fixed for the lifetime\n * of the trigger and exposed for completeness.\n *\n * @generated from field: orders.v1.TriggerDirection trigger_direction = 9;\n */\n triggerDirection: TriggerDirection;\n};\n\n/**\n * Describes the message triggers.v1.TrailingDetails.\n * Use `create(TrailingDetailsSchema)` to create a new message.\n */\nexport const TrailingDetailsSchema: GenMessage<TrailingDetails> = /*@__PURE__*/\n messageDesc(file_triggers_v1_triggers, 30);\n\n/**\n * TwapDetails contains configuration and runtime state for TWAP triggers.\n *\n * @generated from message triggers.v1.TwapDetails\n */\nexport type TwapDetails = Message<\"triggers.v1.TwapDetails\"> & {\n /**\n * Total duration of TWAP execution in milliseconds.\n *\n * @generated from field: int64 twap_duration_ms = 1;\n */\n twapDurationMs: bigint;\n\n /**\n * Interval between TWAP slices in milliseconds.\n *\n * @generated from field: int64 twap_slice_interval_ms = 2;\n */\n twapSliceIntervalMs: bigint;\n\n /**\n * Current slice index, zero-based.\n *\n * @generated from field: int32 slice_idx = 4;\n */\n sliceIdx: number;\n\n /**\n * Total number of planned slices.\n *\n * @generated from field: int32 slice_count = 5;\n */\n sliceCount: number;\n\n /**\n * Cumulative filled child-order base quantity scaled by the pair's\n * base_quantity_scale from GetSpotConfig.\n *\n * @generated from field: int64 executed_qty_scaled = 6;\n */\n executedQtyScaled: bigint;\n};\n\n/**\n * Describes the message triggers.v1.TwapDetails.\n * Use `create(TwapDetailsSchema)` to create a new message.\n */\nexport const TwapDetailsSchema: GenMessage<TwapDetails> = /*@__PURE__*/\n messageDesc(file_triggers_v1_triggers, 31);\n\n/**\n * LadderDetails contains configuration and aggregate execution progress for LADDER triggers.\n *\n * @generated from message triggers.v1.LadderDetails\n */\nexport type LadderDetails = Message<\"triggers.v1.LadderDetails\"> & {\n /**\n * Minimum price in quote units scaled by 1e6 for the ladder range.\n *\n * @generated from field: int64 ladder_price_min_ticks = 1;\n */\n ladderPriceMinTicks: bigint;\n\n /**\n * Maximum price in quote units scaled by 1e6 for the ladder range.\n *\n * @generated from field: int64 ladder_price_max_ticks = 2;\n */\n ladderPriceMaxTicks: bigint;\n\n /**\n * Number of price levels in the ladder.\n *\n * @generated from field: int32 ladder_levels = 3;\n */\n ladderLevels: number;\n\n /**\n * Quantity distribution across ladder levels.\n *\n * @generated from field: triggers.v1.LadderDistribution ladder_distribution = 4;\n */\n ladderDistribution: LadderDistribution;\n\n /**\n * Cumulative filled child-order base quantity scaled by the pair's\n * base_quantity_scale from GetSpotConfig. Zero means no quantity executed,\n * including when the parent completed because all children were canceled.\n *\n * @generated from field: int64 executed_qty_scaled = 5;\n */\n executedQtyScaled: bigint;\n\n /**\n * Number of distinct ladder levels with at least one fill. A partially\n * filled level counts once, including across replacement child orders.\n * This is not the number of fully filled levels.\n *\n * @generated from field: int32 executed_levels = 6;\n */\n executedLevels: number;\n};\n\n/**\n * Describes the message triggers.v1.LadderDetails.\n * Use `create(LadderDetailsSchema)` to create a new message.\n */\nexport const LadderDetailsSchema: GenMessage<LadderDetails> = /*@__PURE__*/\n messageDesc(file_triggers_v1_triggers, 32);\n\n/**\n * Trigger represents current trigger configuration, lifecycle state, and\n * aggregate strategy progress. Use ListTriggerEvents to enumerate child-order\n * actions and inspect append-only lifecycle history.\n *\n * @generated from message triggers.v1.Trigger\n */\nexport type Trigger = Message<\"triggers.v1.Trigger\"> & {\n /**\n * Trigger ID.\n *\n * @generated from field: fixed64 trigger_id = 1;\n */\n triggerId: bigint;\n\n /**\n * Public account or sub-account ID associated with the trigger.\n *\n * @generated from field: fixed64 subaccount_id = 2;\n */\n subaccountId: bigint;\n\n /**\n * Trading symbol numeric identifier.\n *\n * @generated from field: uint32 symbol_id = 3;\n */\n symbolId: number;\n\n /**\n * Current trigger lifecycle status.\n *\n * @generated from field: triggers.v1.TriggerStatus status = 5;\n */\n status: TriggerStatus;\n\n /**\n * Parent order ID for attached-risk triggers; empty for standalone triggers.\n *\n * @generated from field: optional fixed64 parent_order_id = 6;\n */\n parentOrderId?: bigint | undefined;\n\n /**\n * Terminal reason for canceled or failed triggers. Other statuses leave it unset.\n *\n * @generated from oneof triggers.v1.Trigger.terminal_reason\n */\n terminalReason: {\n /**\n * Why an admitted trigger was canceled.\n *\n * @generated from field: triggers.v1.TriggerCancelReason cancel_reason = 7;\n */\n value: TriggerCancelReason;\n case: \"cancelReason\";\n } | {\n /**\n * Why an admitted trigger failed.\n *\n * @generated from field: triggers.v1.TriggerFailureReason failure_reason = 8;\n */\n value: TriggerFailureReason;\n case: \"failureReason\";\n } | { case: undefined; value?: undefined };\n\n /**\n * Child quantity scaled by the pair's base_quantity_scale from GetSpotConfig.\n *\n * @generated from field: int64 qty_scaled = 20;\n */\n qtyScaled: bigint;\n\n /**\n * Fee asset for BUY child orders.\n *\n * @generated from field: orders.v1.FeeAsset fee_asset = 21;\n */\n feeAsset: FeeAsset;\n\n /**\n * Self-trade prevention mode for child orders.\n *\n * @generated from field: orders.v1.SelfTradePreventionMode self_trade_prevention_mode = 22;\n */\n selfTradePreventionMode: SelfTradePreventionMode;\n\n /**\n * Immutable strategy configuration. The selected variant is the trigger\n * category and uses the same shape accepted by CreateTrigger.\n *\n * @generated from oneof triggers.v1.Trigger.configuration\n */\n configuration: {\n /**\n * Stop-loss configuration.\n *\n * @generated from field: triggers.v1.ConditionalTrigger stop_loss = 30;\n */\n value: ConditionalTrigger;\n case: \"stopLoss\";\n } | {\n /**\n * Take-profit configuration.\n *\n * @generated from field: triggers.v1.ConditionalTrigger take_profit = 31;\n */\n value: ConditionalTrigger;\n case: \"takeProfit\";\n } | {\n /**\n * Trailing-stop configuration.\n *\n * @generated from field: triggers.v1.TrailingStopTrigger trailing_stop = 32;\n */\n value: TrailingStopTrigger;\n case: \"trailingStop\";\n } | {\n /**\n * TWAP configuration.\n *\n * @generated from field: triggers.v1.TwapTrigger twap = 33;\n */\n value: TwapTrigger;\n case: \"twap\";\n } | {\n /**\n * Ladder configuration.\n *\n * @generated from field: triggers.v1.LadderTrigger ladder = 34;\n */\n value: LadderTrigger;\n case: \"ladder\";\n } | { case: undefined; value?: undefined };\n\n /**\n * Type-specific runtime state.\n *\n * @generated from oneof triggers.v1.Trigger.runtime_details\n */\n runtimeDetails: {\n /**\n * Stop-loss or take-profit trigger details.\n *\n * @generated from field: triggers.v1.StopDetails stop = 100;\n */\n value: StopDetails;\n case: \"stop\";\n } | {\n /**\n * Trailing-stop trigger details.\n *\n * @generated from field: triggers.v1.TrailingDetails trailing = 101;\n */\n value: TrailingDetails;\n case: \"trailing\";\n } | {\n /**\n * TWAP trigger details.\n *\n * @generated from field: triggers.v1.TwapDetails twap_state = 102;\n */\n value: TwapDetails;\n case: \"twapState\";\n } | {\n /**\n * Ladder trigger details.\n *\n * @generated from field: triggers.v1.LadderDetails ladder_state = 103;\n */\n value: LadderDetails;\n case: \"ladderState\";\n } | { case: undefined; value?: undefined };\n\n /**\n * Client-provided trigger ID for idempotency and correlation.\n *\n * @generated from field: string client_trigger_id = 60;\n */\n clientTriggerId: string;\n\n /**\n * Creation timestamp.\n *\n * @generated from field: google.protobuf.Timestamp created_at = 61;\n */\n createdAt?: Timestamp | undefined;\n\n /**\n * Last update timestamp.\n *\n * @generated from field: google.protobuf.Timestamp updated_at = 62;\n */\n updatedAt?: Timestamp | undefined;\n\n /**\n * Timestamp when the trigger became armed.\n *\n * @generated from field: google.protobuf.Timestamp armed_at = 63;\n */\n armedAt?: Timestamp | undefined;\n\n /**\n * Timestamp when the trigger reached a terminal successful state.\n *\n * @generated from field: google.protobuf.Timestamp completed_at = 64;\n */\n completedAt?: Timestamp | undefined;\n};\n\n/**\n * Describes the message triggers.v1.Trigger.\n * Use `create(TriggerSchema)` to create a new message.\n */\nexport const TriggerSchema: GenMessage<Trigger> = /*@__PURE__*/\n messageDesc(file_triggers_v1_triggers, 33);\n\n/**\n * TriggerType defines the category of standalone trigger.\n *\n * @generated from enum triggers.v1.TriggerType\n */\nexport enum TriggerType {\n /**\n * Trigger type was not provided.\n *\n * @generated from enum value: TRIGGER_TYPE_UNSPECIFIED = 0;\n */\n TRIGGER_TYPE_UNSPECIFIED = 0,\n\n /**\n * Stop-loss: fires when the price crosses a threshold.\n *\n * @generated from enum value: STOP_LOSS = 1;\n */\n STOP_LOSS = 1,\n\n /**\n * Take-profit: fires when the price crosses a threshold.\n *\n * @generated from enum value: TAKE_PROFIT = 2;\n */\n TAKE_PROFIT = 2,\n\n /**\n * Trailing stop: dynamic stop that trails price by a distance.\n *\n * @generated from enum value: TRAILING_STOP = 3;\n */\n TRAILING_STOP = 3,\n\n /**\n * TWAP: Time-Weighted Average Price execution over a duration.\n *\n * @generated from enum value: TWAP = 4;\n */\n TWAP = 4,\n\n /**\n * Ladder/Scaled: Multiple orders placed across a price range.\n *\n * @generated from enum value: LADDER = 5;\n */\n LADDER = 5,\n}\n\n/**\n * Describes the enum triggers.v1.TriggerType.\n */\nexport const TriggerTypeSchema: GenEnum<TriggerType> = /*@__PURE__*/\n enumDesc(file_triggers_v1_triggers, 0);\n\n/**\n * TriggerStatus represents the lifecycle state of a trigger.\n *\n * @generated from enum triggers.v1.TriggerStatus\n */\nexport enum TriggerStatus {\n /**\n * Trigger status was not provided.\n *\n * @generated from enum value: STATUS_UNSPECIFIED = 0;\n */\n STATUS_UNSPECIFIED = 0,\n\n /**\n * Trigger was created and is pending activation.\n *\n * @generated from enum value: STATUS_CREATED = 1;\n */\n STATUS_CREATED = 1,\n\n /**\n * Trigger admitted and actively evaluating conditions.\n *\n * @generated from enum value: STATUS_ARMED = 2;\n */\n STATUS_ARMED = 2,\n\n /**\n * Trigger is actively executing (for example, TWAP slices in progress).\n *\n * @generated from enum value: STATUS_RUNNING = 3;\n */\n STATUS_RUNNING = 3,\n\n /**\n * Trigger completed successfully (all child orders placed/filled).\n *\n * @generated from enum value: STATUS_COMPLETED = 4;\n */\n STATUS_COMPLETED = 4,\n\n /**\n * Trigger was canceled by user.\n *\n * @generated from enum value: STATUS_CANCELED = 5;\n */\n STATUS_CANCELED = 5,\n\n /**\n * Trigger failed (for example, reservation failure, child order rejection).\n *\n * @generated from enum value: STATUS_FAILED = 6;\n */\n STATUS_FAILED = 6,\n\n /**\n * Trigger is paused (user-initiated, can be resumed).\n *\n * @generated from enum value: STATUS_PAUSED = 7;\n */\n STATUS_PAUSED = 7,\n}\n\n/**\n * Describes the enum triggers.v1.TriggerStatus.\n */\nexport const TriggerStatusSchema: GenEnum<TriggerStatus> = /*@__PURE__*/\n enumDesc(file_triggers_v1_triggers, 1);\n\n/**\n * TriggerEventType defines append-only trigger lifecycle events for history.\n *\n * @generated from enum triggers.v1.TriggerEventType\n */\nexport enum TriggerEventType {\n /**\n * Trigger event type was not provided.\n *\n * @generated from enum value: EVENT_UNSPECIFIED = 0;\n */\n EVENT_UNSPECIFIED = 0,\n\n /**\n * Trigger fired and may have created a child order.\n *\n * @generated from enum value: EVENT_FIRED = 1;\n */\n EVENT_FIRED = 1,\n\n /**\n * Trigger was canceled.\n *\n * @generated from enum value: EVENT_CANCELED = 2;\n */\n EVENT_CANCELED = 2,\n\n /**\n * Trigger configuration or lifecycle state was updated.\n *\n * @generated from enum value: EVENT_UPDATED = 3;\n */\n EVENT_UPDATED = 3,\n\n /**\n * Trigger became terminal after its next child order could not be admitted.\n *\n * @generated from enum value: EVENT_FAILED = 4;\n */\n EVENT_FAILED = 4,\n}\n\n/**\n * Describes the enum triggers.v1.TriggerEventType.\n */\nexport const TriggerEventTypeSchema: GenEnum<TriggerEventType> = /*@__PURE__*/\n enumDesc(file_triggers_v1_triggers, 2);\n\n/**\n * TriggerCancelReason identifies why an admitted trigger became canceled.\n *\n * @generated from enum triggers.v1.TriggerCancelReason\n */\nexport enum TriggerCancelReason {\n /**\n * No cancellation reason was provided.\n *\n * @generated from enum value: TRIGGER_CANCEL_REASON_UNSPECIFIED = 0;\n */\n UNSPECIFIED = 0,\n\n /**\n * The user explicitly canceled the trigger.\n *\n * @generated from enum value: TRIGGER_CANCEL_REASON_USER_REQUEST = 1;\n */\n USER_REQUEST = 1,\n\n /**\n * A linked one-cancels-the-other trigger fired.\n *\n * @generated from enum value: TRIGGER_CANCEL_REASON_OCO = 2;\n */\n OCO = 2,\n\n /**\n * The parent order ended without a fill, so its attached trigger was canceled.\n *\n * @generated from enum value: TRIGGER_CANCEL_REASON_PARENT_CANCELED_NO_FILL = 3;\n */\n PARENT_CANCELED_NO_FILL = 3,\n\n /**\n * The terminal state did not contain a cancellation reason.\n *\n * @generated from enum value: TRIGGER_CANCEL_REASON_MISSING_REASON_CODE = 998;\n */\n MISSING_REASON_CODE = 998,\n\n /**\n * An internal invariant or processing failure canceled the trigger.\n *\n * @generated from enum value: TRIGGER_CANCEL_REASON_INTERNAL_ERROR = 999;\n */\n INTERNAL_ERROR = 999,\n}\n\n/**\n * Describes the enum triggers.v1.TriggerCancelReason.\n */\nexport const TriggerCancelReasonSchema: GenEnum<TriggerCancelReason> = /*@__PURE__*/\n enumDesc(file_triggers_v1_triggers, 3);\n\n/**\n * TriggerFailureReason identifies why an admitted trigger became failed.\n *\n * @generated from enum triggers.v1.TriggerFailureReason\n */\nexport enum TriggerFailureReason {\n /**\n * No failure reason was provided.\n *\n * @generated from enum value: TRIGGER_FAILURE_REASON_UNSPECIFIED = 0;\n */\n UNSPECIFIED = 0,\n\n /**\n * The requested trading pair was not recognized.\n *\n * @generated from enum value: TRIGGER_FAILURE_REASON_UNKNOWN_SYMBOL = 1;\n */\n UNKNOWN_SYMBOL = 1,\n\n /**\n * The trading pair was not accepting new orders.\n *\n * @generated from enum value: TRIGGER_FAILURE_REASON_PAIR_DISABLED = 2;\n */\n PAIR_DISABLED = 2,\n\n /**\n * The child order value was below the pair's minimum notional.\n *\n * @generated from enum value: TRIGGER_FAILURE_REASON_MIN_NOTIONAL = 3;\n */\n MIN_NOTIONAL = 3,\n\n /**\n * The child order price was not aligned to the pair's tick size.\n *\n * @generated from enum value: TRIGGER_FAILURE_REASON_TICK_SIZE = 4;\n */\n TICK_SIZE = 4,\n\n /**\n * The account did not have enough available funds for the child order.\n *\n * @generated from enum value: TRIGGER_FAILURE_REASON_INSUFFICIENT_FUNDS = 5;\n */\n INSUFFICIENT_FUNDS = 5,\n\n /**\n * The child order would have exceeded an account risk limit.\n *\n * @generated from enum value: TRIGGER_FAILURE_REASON_RISK_LIMIT = 6;\n */\n RISK_LIMIT = 6,\n\n /**\n * The child order reused a client order ID that was already accepted.\n *\n * @generated from enum value: TRIGGER_FAILURE_REASON_DUPLICATE_CLIENT_ID = 7;\n */\n DUPLICATE_CLIENT_ID = 7,\n\n /**\n * Trading was halted for the requested market.\n *\n * @generated from enum value: TRIGGER_FAILURE_REASON_MARKET_HALTED = 8;\n */\n MARKET_HALTED = 8,\n\n /**\n * The market could not accept the child order at that time.\n *\n * @generated from enum value: TRIGGER_FAILURE_REASON_ENGINE_BUSY = 9;\n */\n ENGINE_BUSY = 9,\n\n /**\n * The account associated with the trigger was not recognized.\n *\n * @generated from enum value: TRIGGER_FAILURE_REASON_ACCOUNT_UNKNOWN = 10;\n */\n ACCOUNT_UNKNOWN = 10,\n\n /**\n * An order referenced by the trigger was not found.\n *\n * @generated from enum value: TRIGGER_FAILURE_REASON_ORDER_UNKNOWN = 11;\n */\n ORDER_UNKNOWN = 11,\n\n /**\n * The post-only child order would have immediately taken liquidity.\n *\n * @generated from enum value: TRIGGER_FAILURE_REASON_POST_ONLY_CROSS = 12;\n */\n POST_ONLY_CROSS = 12,\n\n /**\n * The reduce-only child order would not have reduced the position.\n *\n * @generated from enum value: TRIGGER_FAILURE_REASON_REDUCE_ONLY_BLOCKED = 13;\n */\n REDUCE_ONLY_BLOCKED = 13,\n\n /**\n * The child order price was outside the allowed market price band.\n *\n * @generated from enum value: TRIGGER_FAILURE_REASON_PRICE_BAND_VIOLATION = 14;\n */\n PRICE_BAND_VIOLATION = 14,\n\n /**\n * The market child order exceeded the configured execution cap.\n *\n * @generated from enum value: TRIGGER_FAILURE_REASON_MARKET_CAP_VIOLATION = 15;\n */\n MARKET_CAP_VIOLATION = 15,\n\n /**\n * The order book had no liquidity available for the child order.\n *\n * @generated from enum value: TRIGGER_FAILURE_REASON_EMPTY_BOOK = 16;\n */\n EMPTY_BOOK = 16,\n\n /**\n * The order book could not fill the entire fill-or-kill child order.\n *\n * @generated from enum value: TRIGGER_FAILURE_REASON_FOK_INSUFFICIENT_LIQUIDITY = 17;\n */\n FOK_INSUFFICIENT_LIQUIDITY = 17,\n\n /**\n * The selected fee asset was not permitted for the child order.\n *\n * @generated from enum value: TRIGGER_FAILURE_REASON_FEE_ASSET_NOT_ALLOWED = 18;\n */\n FEE_ASSET_NOT_ALLOWED = 18,\n\n /**\n * A current market price was unavailable for sizing or validation.\n *\n * @generated from enum value: TRIGGER_FAILURE_REASON_MARKET_PRICE_UNAVAILABLE = 19;\n */\n MARKET_PRICE_UNAVAILABLE = 19,\n\n /**\n * The quote used to size or validate the child order was no longer current.\n *\n * @generated from enum value: TRIGGER_FAILURE_REASON_STALE_QUOTE = 20;\n */\n STALE_QUOTE = 20,\n\n /**\n * The child order quantity was below the pair's minimum quantity.\n *\n * @generated from enum value: TRIGGER_FAILURE_REASON_MIN_QUANTITY = 21;\n */\n MIN_QUANTITY = 21,\n\n /**\n * The child order quantity was not aligned to the pair's step size.\n *\n * @generated from enum value: TRIGGER_FAILURE_REASON_STEP_SIZE = 22;\n */\n STEP_SIZE = 22,\n\n /**\n * The child order sizing fields did not form a valid sizing request.\n *\n * @generated from enum value: TRIGGER_FAILURE_REASON_INVALID_SIZING = 23;\n */\n INVALID_SIZING = 23,\n\n /**\n * The maximum quote debit could not fund the minimum valid child order.\n *\n * @generated from enum value: TRIGGER_FAILURE_REASON_MAX_QUOTE_DEBIT_TOO_SMALL = 24;\n */\n MAX_QUOTE_DEBIT_TOO_SMALL = 24,\n\n /**\n * The applicable fee rate exceeded the maximum accepted by the trigger.\n *\n * @generated from enum value: TRIGGER_FAILURE_REASON_FEE_CEILING_EXCEEDED = 25;\n */\n FEE_CEILING_EXCEEDED = 25,\n\n /**\n * The configured trigger price was invalid.\n *\n * @generated from enum value: TRIGGER_FAILURE_REASON_TRIGGER_PRICE_INVALID = 40;\n */\n TRIGGER_PRICE_INVALID = 40,\n\n /**\n * The selected trigger price source was not supported.\n *\n * @generated from enum value: TRIGGER_FAILURE_REASON_TRIGGER_PRICE_SOURCE_UNSUPPORTED = 41;\n */\n TRIGGER_PRICE_SOURCE_UNSUPPORTED = 41,\n\n /**\n * The configured trailing distance was invalid.\n *\n * @generated from enum value: TRIGGER_FAILURE_REASON_TRAILING_DISTANCE_INVALID = 42;\n */\n TRAILING_DISTANCE_INVALID = 42,\n\n /**\n * The requested modification required replacing the trigger instead.\n *\n * @generated from enum value: TRIGGER_FAILURE_REASON_MODIFICATION_REQUIRES_REPLACE = 43;\n */\n MODIFICATION_REQUIRES_REPLACE = 43,\n\n /**\n * The referenced order had already reached a terminal state.\n *\n * @generated from enum value: TRIGGER_FAILURE_REASON_ORDER_ALREADY_TERMINAL = 44;\n */\n ORDER_ALREADY_TERMINAL = 44,\n\n /**\n * An idempotency key was reused with different request details.\n *\n * @generated from enum value: TRIGGER_FAILURE_REASON_CONFLICT_IDEMPOTENCY_KEY_REUSE = 45;\n */\n CONFLICT_IDEMPOTENCY_KEY_REUSE = 45,\n\n /**\n * The request exceeded an applicable rate limit.\n *\n * @generated from enum value: TRIGGER_FAILURE_REASON_RATE_LIMITED = 46;\n */\n RATE_LIMITED = 46,\n\n /**\n * Account policy did not permit spot trading.\n *\n * @generated from enum value: TRIGGER_FAILURE_REASON_POLICY_SPOT_TRADE_DENY = 47;\n */\n POLICY_SPOT_TRADE_DENY = 47,\n\n /**\n * Account policy did not permit trading in this market.\n *\n * @generated from enum value: TRIGGER_FAILURE_REASON_POLICY_MARKET_DENY = 48;\n */\n POLICY_MARKET_DENY = 48,\n\n /**\n * The child order would have exceeded the policy notional limit.\n *\n * @generated from enum value: TRIGGER_FAILURE_REASON_POLICY_MAX_NOTIONAL = 49;\n */\n POLICY_MAX_NOTIONAL = 49,\n\n /**\n * The child order would have exceeded the policy open-order limit.\n *\n * @generated from enum value: TRIGGER_FAILURE_REASON_POLICY_MAX_OPEN_ORDERS = 50;\n */\n POLICY_MAX_OPEN_ORDERS = 50,\n\n /**\n * Account policy had halted trading.\n *\n * @generated from enum value: TRIGGER_FAILURE_REASON_POLICY_TRADING_HALTED = 51;\n */\n POLICY_TRADING_HALTED = 51,\n\n /**\n * The terminal state did not contain a failure reason.\n *\n * @generated from enum value: TRIGGER_FAILURE_REASON_MISSING_REASON_CODE = 998;\n */\n MISSING_REASON_CODE = 998,\n\n /**\n * An internal invariant or processing failure caused the trigger to fail.\n *\n * @generated from enum value: TRIGGER_FAILURE_REASON_INTERNAL_ERROR = 999;\n */\n INTERNAL_ERROR = 999,\n}\n\n/**\n * Describes the enum triggers.v1.TriggerFailureReason.\n */\nexport const TriggerFailureReasonSchema: GenEnum<TriggerFailureReason> = /*@__PURE__*/\n enumDesc(file_triggers_v1_triggers, 4);\n\n/**\n * LadderDistribution defines how quantity is distributed across ladder levels.\n *\n * @generated from enum triggers.v1.LadderDistribution\n */\nexport enum LadderDistribution {\n /**\n * Ladder distribution was not provided.\n *\n * @generated from enum value: LADDER_DISTRIBUTION_UNSPECIFIED = 0;\n */\n LADDER_DISTRIBUTION_UNSPECIFIED = 0,\n\n /**\n * Equal quantity at each level.\n *\n * @generated from enum value: LINEAR = 1;\n */\n LINEAR = 1,\n\n /**\n * More quantity toward the edges (U-shape).\n *\n * @generated from enum value: GEOMETRIC = 2;\n */\n GEOMETRIC = 2,\n\n /**\n * More quantity at favorable prices.\n *\n * @generated from enum value: WEIGHTED_FAVORABLE = 3;\n */\n WEIGHTED_FAVORABLE = 3,\n}\n\n/**\n * Describes the enum triggers.v1.LadderDistribution.\n */\nexport const LadderDistributionSchema: GenEnum<LadderDistribution> = /*@__PURE__*/\n enumDesc(file_triggers_v1_triggers, 5);\n\n/**\n * @generated from service triggers.v1.TriggersService\n */\nexport const TriggersService: GenService<{\n /**\n * Create a standalone trigger (stop order, TWAP, ladder).\n *\n * @generated from rpc triggers.v1.TriggersService.CreateTrigger\n */\n createTrigger: {\n methodKind: \"unary\";\n input: typeof CreateTriggerRequestSchema;\n output: typeof CreateTriggerResponseSchema;\n },\n /**\n * Get a trigger by ID.\n *\n * @generated from rpc triggers.v1.TriggersService.GetTrigger\n */\n getTrigger: {\n methodKind: \"unary\";\n input: typeof GetTriggerRequestSchema;\n output: typeof GetTriggerResponseSchema;\n },\n /**\n * List triggers for a sub-account with optional filters.\n *\n * @generated from rpc triggers.v1.TriggersService.ListTriggers\n */\n listTriggers: {\n methodKind: \"unary\";\n input: typeof ListTriggersRequestSchema;\n output: typeof ListTriggersResponseSchema;\n },\n /**\n * List trigger events (append-only history).\n *\n * @generated from rpc triggers.v1.TriggersService.ListTriggerEvents\n */\n listTriggerEvents: {\n methodKind: \"unary\";\n input: typeof ListTriggerEventsRequestSchema;\n output: typeof ListTriggerEventsResponseSchema;\n },\n /**\n * Cancel a trigger.\n *\n * @generated from rpc triggers.v1.TriggersService.CancelTrigger\n */\n cancelTrigger: {\n methodKind: \"unary\";\n input: typeof CancelTriggerRequestSchema;\n output: typeof CancelTriggerResponseSchema;\n },\n /**\n * Modify a trigger (limited patch).\n *\n * @generated from rpc triggers.v1.TriggersService.ModifyTrigger\n */\n modifyTrigger: {\n methodKind: \"unary\";\n input: typeof ModifyTriggerRequestSchema;\n output: typeof ModifyTriggerResponseSchema;\n },\n /**\n * Pause a trigger (sets status=PAUSED).\n *\n * @generated from rpc triggers.v1.TriggersService.PauseTrigger\n */\n pauseTrigger: {\n methodKind: \"unary\";\n input: typeof PauseTriggerRequestSchema;\n output: typeof PauseTriggerResponseSchema;\n },\n /**\n * Resume a paused trigger (sets status back to ARMED/RUNNING as appropriate).\n *\n * @generated from rpc triggers.v1.TriggersService.ResumeTrigger\n */\n resumeTrigger: {\n methodKind: \"unary\";\n input: typeof ResumeTriggerRequestSchema;\n output: typeof ResumeTriggerResponseSchema;\n },\n}> = /*@__PURE__*/\n serviceDesc(file_triggers_v1_triggers, 0);\n\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"triggers_pb.js","names":[],"sources":["../../../../src/gen/triggers/v1/triggers_pb.ts"],"sourcesContent":["// @generated by protoc-gen-es v2.13.0 with parameter \"target=ts,import_extension=js\"\n// @generated from file triggers/v1/triggers.proto (package triggers.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 type { FeeAsset, SelfTradePreventionMode, Side, TriggerDirection, TriggerPriceSource } from \"../../orders/v1/orders_pb.js\";\nimport { file_orders_v1_orders } from \"../../orders/v1/orders_pb.js\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file triggers/v1/triggers.proto.\n */\nexport const file_triggers_v1_triggers: GenFile = /*@__PURE__*/\n fileDesc(\"Chp0cmlnZ2Vycy92MS90cmlnZ2Vycy5wcm90bxILdHJpZ2dlcnMudjEiEgoQVHJpZ2dlck1hcmtldElvYyI7Cg9UcmlnZ2VyTGltaXRHdGMSFQoLcHJpY2VfdGlja3MYASABKANCABIRCglwb3N0X29ubHkYAiABKAgiKAoPVHJpZ2dlckxpbWl0SW9jEhUKC3ByaWNlX3RpY2tzGAEgASgDQgAiKAoPVHJpZ2dlckxpbWl0Rm9rEhUKC3ByaWNlX3RpY2tzGAEgASgDQgAi+AEKGUNvbmRpdGlvbmFsQ2hpbGRFeGVjdXRpb24SMwoKbWFya2V0X2lvYxgBIAEoCzIdLnRyaWdnZXJzLnYxLlRyaWdnZXJNYXJrZXRJb2NIABIxCglsaW1pdF9ndGMYAiABKAsyHC50cmlnZ2Vycy52MS5UcmlnZ2VyTGltaXRHdGNIABIxCglsaW1pdF9pb2MYAyABKAsyHC50cmlnZ2Vycy52MS5UcmlnZ2VyTGltaXRJb2NIABIxCglsaW1pdF9mb2sYBCABKAsyHC50cmlnZ2Vycy52MS5UcmlnZ2VyTGltaXRGb2tIAEINCglleGVjdXRpb24SACKPAQoSQ29uZGl0aW9uYWxUcmlnZ2VyEh0KE3RyaWdnZXJfcHJpY2VfdGlja3MYASABKANCABIfCgRzaWRlGAIgASgOMg8ub3JkZXJzLnYxLlNpZGVCABI3CgVjaGlsZBgDIAEoCzImLnRyaWdnZXJzLnYxLkNvbmRpdGlvbmFsQ2hpbGRFeGVjdXRpb25CADoAIoUCChNUcmFpbGluZ1N0b3BUcmlnZ2VyEiMKF3RyYWlsaW5nX2Rpc3RhbmNlX3RpY2tzGAEgASgDQgBIABIhChV0cmFpbGluZ19kaXN0YW5jZV9icHMYAiABKAVCAEgAEiAKFmFjdGl2YXRpb25fcHJpY2VfdGlja3MYAyABKANCABIeChJtYXhfc2xpcHBhZ2VfdGlja3MYBCABKAVCAEgBEhwKEG1heF9zbGlwcGFnZV9icHMYBSABKAVCAEgBEh8KBHNpZGUYBiABKA4yDy5vcmRlcnMudjEuU2lkZUIAQhUKEXRyYWlsaW5nX2Rpc3RhbmNlEgBCDgoMbWF4X3NsaXBwYWdlIl0KDVR3YXBNYXJrZXRJb2MSHgoSbWF4X3NsaXBwYWdlX3RpY2tzGAEgASgFQgBIABIcChBtYXhfc2xpcHBhZ2VfYnBzGAIgASgFQgBIAEIOCgxtYXhfc2xpcHBhZ2UiJQoMVHdhcExpbWl0R3RjEhUKC3ByaWNlX3RpY2tzGAEgASgDQgAi0QEKC1R3YXBUcmlnZ2VyEh8KBHNpZGUYASABKA4yDy5vcmRlcnMudjEuU2lkZUIAEhMKC2R1cmF0aW9uX21zGAIgASgDEhkKEXNsaWNlX2ludGVydmFsX21zGAMgASgDEjAKCm1hcmtldF9pb2MYBCABKAsyGi50cmlnZ2Vycy52MS5Ud2FwTWFya2V0SW9jSAASLgoJbGltaXRfZ3RjGAUgASgLMhkudHJpZ2dlcnMudjEuVHdhcExpbWl0R3RjSAA6AEINCglleGVjdXRpb24SACKNAQoNTGFkZGVyVHJpZ2dlchIfCgRzaWRlGAEgASgOMg8ub3JkZXJzLnYxLlNpZGVCABIZCg9wcmljZV9taW5fdGlja3MYAiABKANCABIZCg9wcmljZV9tYXhfdGlja3MYAyABKANCABIQCgZsZXZlbHMYBCABKAVCABIRCglwb3N0X29ubHkYBSABKAg6ACLaAwoNVHJpZ2dlckludGVudBITCglzeW1ib2xfaWQYASABKA1CABIUCgpxdHlfc2NhbGVkGAIgASgDQgASKAoJZmVlX2Fzc2V0GAMgASgOMhMub3JkZXJzLnYxLkZlZUFzc2V0QgASSAoac2VsZl90cmFkZV9wcmV2ZW50aW9uX21vZGUYBCABKA4yIi5vcmRlcnMudjEuU2VsZlRyYWRlUHJldmVudGlvbk1vZGVCABIbChFjbGllbnRfdHJpZ2dlcl9pZBgFIAEoCUIAEjQKCXN0b3BfbG9zcxgKIAEoCzIfLnRyaWdnZXJzLnYxLkNvbmRpdGlvbmFsVHJpZ2dlckgAEjYKC3Rha2VfcHJvZml0GAsgASgLMh8udHJpZ2dlcnMudjEuQ29uZGl0aW9uYWxUcmlnZ2VySAASOQoNdHJhaWxpbmdfc3RvcBgMIAEoCzIgLnRyaWdnZXJzLnYxLlRyYWlsaW5nU3RvcFRyaWdnZXJIABIoCgR0d2FwGA0gASgLMhgudHJpZ2dlcnMudjEuVHdhcFRyaWdnZXJIABIsCgZsYWRkZXIYDiABKAsyGi50cmlnZ2Vycy52MS5MYWRkZXJUcmlnZ2VySABCDAoIc3RyYXRlZ3kSACJzChRDcmVhdGVUcmlnZ2VyUmVxdWVzdBIaCg1zdWJhY2NvdW50X2lkGAEgASgGSACIAQESLQoHdHJpZ2dlchgCIAEoCzIaLnRyaWdnZXJzLnYxLlRyaWdnZXJJbnRlbnRCAEIQCg5fc3ViYWNjb3VudF9pZCKSAQoVQ3JlYXRlVHJpZ2dlclJlc3BvbnNlEhIKCnRyaWdnZXJfaWQYASABKAYSGQoRY2xpZW50X3RyaWdnZXJfaWQYAiABKAkSLwoLYWNjZXB0ZWRfYXQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhkKEWFjY2VwdGVkX2F0X3RzX25zGAQgASgEIlcKEUdldFRyaWdnZXJSZXF1ZXN0EhQKCnRyaWdnZXJfaWQYASABKAZCABIaCg1zdWJhY2NvdW50X2lkGAIgASgGSACIAQFCEAoOX3N1YmFjY291bnRfaWQiOwoSR2V0VHJpZ2dlclJlc3BvbnNlEiUKB3RyaWdnZXIYASABKAsyFC50cmlnZ2Vycy52MS5UcmlnZ2VyIpECChNMaXN0VHJpZ2dlcnNSZXF1ZXN0EhoKDXN1YmFjY291bnRfaWQYASABKAZIAIgBARITCglzeW1ib2xfaWQYAiABKA1CABIsCgZzdGF0dXMYAyADKA4yGi50cmlnZ2Vycy52MS5UcmlnZ2VyU3RhdHVzQgASMAoMdHJpZ2dlcl90eXBlGAQgASgOMhgudHJpZ2dlcnMudjEuVHJpZ2dlclR5cGVCABIcCg9wYXJlbnRfb3JkZXJfaWQYBSABKAZIAYgBARIPCgVsaW1pdBgKIAEoDUIAEhQKCnBhZ2VfdG9rZW4YDCABKAlCAEIQCg5fc3ViYWNjb3VudF9pZEISChBfcGFyZW50X29yZGVyX2lkIlkKFExpc3RUcmlnZ2Vyc1Jlc3BvbnNlEiYKCHRyaWdnZXJzGAEgAygLMhQudHJpZ2dlcnMudjEuVHJpZ2dlchIZCg9uZXh0X3BhZ2VfdG9rZW4YAyABKAlCACK6AQoYTGlzdFRyaWdnZXJFdmVudHNSZXF1ZXN0EhQKCnRyaWdnZXJfaWQYASABKAZCABIaCg1zdWJhY2NvdW50X2lkGAIgASgGSACIAQESDwoFbGltaXQYAyABKA1CABIzCgpldmVudF90eXBlGAQgASgOMh0udHJpZ2dlcnMudjEuVHJpZ2dlckV2ZW50VHlwZUIAEhQKCnBhZ2VfdG9rZW4YBSABKAlCAEIQCg5fc3ViYWNjb3VudF9pZCKqAwoMVHJpZ2dlckV2ZW50EhIKCnRyaWdnZXJfaWQYASABKAYSFQoNc3ViYWNjb3VudF9pZBgCIAEoBhIRCglzeW1ib2xfaWQYAyABKA0SLgoMdHJpZ2dlcl90eXBlGAQgASgOMhgudHJpZ2dlcnMudjEuVHJpZ2dlclR5cGUSMQoKZXZlbnRfdHlwZRgFIAEoDjIdLnRyaWdnZXJzLnYxLlRyaWdnZXJFdmVudFR5cGUSDQoFdHNfbnMYCiABKAQSEQoJY2hpbGRfc2VxGAsgASgFEhYKDmNoaWxkX29yZGVyX2lkGAwgASgGEh8KEGZpcmVfcHJpY2VfdGlja3MYDSABKANCAEgBiAEBEjkKDWNhbmNlbF9yZWFzb24YFCABKA4yIC50cmlnZ2Vycy52MS5UcmlnZ2VyQ2FuY2VsUmVhc29uSAASOwoOZmFpbHVyZV9yZWFzb24YFSABKA4yIS50cmlnZ2Vycy52MS5UcmlnZ2VyRmFpbHVyZVJlYXNvbkgAQhEKD3Rlcm1pbmFsX3JlYXNvbkITChFfZmlyZV9wcmljZV90aWNrcyJhChlMaXN0VHJpZ2dlckV2ZW50c1Jlc3BvbnNlEikKBmV2ZW50cxgBIAMoCzIZLnRyaWdnZXJzLnYxLlRyaWdnZXJFdmVudBIZCg9uZXh0X3BhZ2VfdG9rZW4YAyABKAlCACJaChRDYW5jZWxUcmlnZ2VyUmVxdWVzdBIUCgp0cmlnZ2VyX2lkGAEgASgGQgASGgoNc3ViYWNjb3VudF9pZBgCIAEoBkgAiAEBQhAKDl9zdWJhY2NvdW50X2lkIo4BChVDYW5jZWxUcmlnZ2VyUmVzcG9uc2USEgoKdHJpZ2dlcl9pZBgBIAEoBhIqCgZzdGF0dXMYAiABKA4yGi50cmlnZ2Vycy52MS5UcmlnZ2VyU3RhdHVzEiYKAnRzGAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBINCgV0c19ucxgEIAEoBCLOAwoUTW9kaWZ5VHJpZ2dlclJlcXVlc3QSFAoKdHJpZ2dlcl9pZBgBIAEoBkIAEhoKDXN1YmFjY291bnRfaWQYAiABKAZIAogBARITCglzeW1ib2xfaWQYAyABKA1CABIiChN0cmlnZ2VyX3ByaWNlX3RpY2tzGAogASgDQgBIA4gBARIeChFsaW1pdF9wcmljZV90aWNrcxgLIAEoA0gEiAEBEiMKF3RyYWlsaW5nX2Rpc3RhbmNlX3RpY2tzGAwgASgDQgBIABIhChV0cmFpbGluZ19kaXN0YW5jZV9icHMYDSABKAVCAEgAEiUKFmFjdGl2YXRpb25fcHJpY2VfdGlja3MYDiABKANCAEgFiAEBEh4KEm1heF9zbGlwcGFnZV90aWNrcxgPIAEoBUIASAESHAoQbWF4X3NsaXBwYWdlX2JwcxgQIAEoBUIASAFCEwoRdHJhaWxpbmdfZGlzdGFuY2VCDgoMbWF4X3NsaXBwYWdlQhAKDl9zdWJhY2NvdW50X2lkQhYKFF90cmlnZ2VyX3ByaWNlX3RpY2tzQhQKEl9saW1pdF9wcmljZV90aWNrc0IZChdfYWN0aXZhdGlvbl9wcmljZV90aWNrcyKOAQoVTW9kaWZ5VHJpZ2dlclJlc3BvbnNlEhIKCnRyaWdnZXJfaWQYASABKAYSKgoGc3RhdHVzGAIgASgOMhoudHJpZ2dlcnMudjEuVHJpZ2dlclN0YXR1cxImCgJ0cxgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASDQoFdHNfbnMYBCABKAQiWQoTUGF1c2VUcmlnZ2VyUmVxdWVzdBIUCgp0cmlnZ2VyX2lkGAEgASgGQgASGgoNc3ViYWNjb3VudF9pZBgCIAEoBkgAiAEBQhAKDl9zdWJhY2NvdW50X2lkIo0BChRQYXVzZVRyaWdnZXJSZXNwb25zZRISCgp0cmlnZ2VyX2lkGAEgASgGEioKBnN0YXR1cxgCIAEoDjIaLnRyaWdnZXJzLnYxLlRyaWdnZXJTdGF0dXMSJgoCdHMYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEg0KBXRzX25zGAQgASgEIm8KFFJlc3VtZVRyaWdnZXJSZXF1ZXN0EhQKCnRyaWdnZXJfaWQYASABKAZCABIaCg1zdWJhY2NvdW50X2lkGAIgASgGSACIAQESEwoJc3ltYm9sX2lkGAMgASgNQgBCEAoOX3N1YmFjY291bnRfaWQijgEKFVJlc3VtZVRyaWdnZXJSZXNwb25zZRISCgp0cmlnZ2VyX2lkGAEgASgGEioKBnN0YXR1cxgCIAEoDjIaLnRyaWdnZXJzLnYxLlRyaWdnZXJTdGF0dXMSJgoCdHMYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEg0KBXRzX25zGAQgASgEIp8BCgtTdG9wRGV0YWlscxIbChN0cmlnZ2VyX3ByaWNlX3RpY2tzGAEgASgDEjsKFHRyaWdnZXJfcHJpY2Vfc291cmNlGAIgASgOMh0ub3JkZXJzLnYxLlRyaWdnZXJQcmljZVNvdXJjZRI2ChF0cmlnZ2VyX2RpcmVjdGlvbhgDIAEoDjIbLm9yZGVycy52MS5UcmlnZ2VyRGlyZWN0aW9uIo4DCg9UcmFpbGluZ0RldGFpbHMSHwoXdHJhaWxpbmdfZGlzdGFuY2VfdGlja3MYASABKAMSHgoWYWN0aXZhdGlvbl9wcmljZV90aWNrcxgCIAEoAxIYChBwZWFrX3ByaWNlX3RpY2tzGAMgASgDEhoKEnRyb3VnaF9wcmljZV90aWNrcxgEIAEoAxIdChV0cmFpbGluZ19kaXN0YW5jZV9icHMYBSABKAUSGgoSbWF4X3NsaXBwYWdlX3RpY2tzGAYgASgFEhgKEG1heF9zbGlwcGFnZV9icHMYByABKAUSOwoUdHJpZ2dlcl9wcmljZV9zb3VyY2UYCCABKA4yHS5vcmRlcnMudjEuVHJpZ2dlclByaWNlU291cmNlEjYKEXRyaWdnZXJfZGlyZWN0aW9uGAkgASgOMhsub3JkZXJzLnYxLlRyaWdnZXJEaXJlY3Rpb24SIgoTdHJpZ2dlcl9wcmljZV90aWNrcxgKIAEoA0IASACIAQFCFgoUX3RyaWdnZXJfcHJpY2VfdGlja3MijAEKC1R3YXBEZXRhaWxzEhgKEHR3YXBfZHVyYXRpb25fbXMYASABKAMSHgoWdHdhcF9zbGljZV9pbnRlcnZhbF9tcxgCIAEoAxIRCglzbGljZV9pZHgYBCABKAUSEwoLc2xpY2VfY291bnQYBSABKAUSGwoTZXhlY3V0ZWRfcXR5X3NjYWxlZBgGIAEoAyLaAQoNTGFkZGVyRGV0YWlscxIeChZsYWRkZXJfcHJpY2VfbWluX3RpY2tzGAEgASgDEh4KFmxhZGRlcl9wcmljZV9tYXhfdGlja3MYAiABKAMSFQoNbGFkZGVyX2xldmVscxgDIAEoBRI8ChNsYWRkZXJfZGlzdHJpYnV0aW9uGAQgASgOMh8udHJpZ2dlcnMudjEuTGFkZGVyRGlzdHJpYnV0aW9uEhsKE2V4ZWN1dGVkX3F0eV9zY2FsZWQYBSABKAMSFwoPZXhlY3V0ZWRfbGV2ZWxzGAYgASgFIvQICgdUcmlnZ2VyEhIKCnRyaWdnZXJfaWQYASABKAYSFQoNc3ViYWNjb3VudF9pZBgCIAEoBhIRCglzeW1ib2xfaWQYAyABKA0SKgoGc3RhdHVzGAUgASgOMhoudHJpZ2dlcnMudjEuVHJpZ2dlclN0YXR1cxIcCg9wYXJlbnRfb3JkZXJfaWQYBiABKAZIA4gBARI5Cg1jYW5jZWxfcmVhc29uGAcgASgOMiAudHJpZ2dlcnMudjEuVHJpZ2dlckNhbmNlbFJlYXNvbkgAEjsKDmZhaWx1cmVfcmVhc29uGAggASgOMiEudHJpZ2dlcnMudjEuVHJpZ2dlckZhaWx1cmVSZWFzb25IABISCgpxdHlfc2NhbGVkGBQgASgDEiYKCWZlZV9hc3NldBgVIAEoDjITLm9yZGVycy52MS5GZWVBc3NldBJGChpzZWxmX3RyYWRlX3ByZXZlbnRpb25fbW9kZRgWIAEoDjIiLm9yZGVycy52MS5TZWxmVHJhZGVQcmV2ZW50aW9uTW9kZRI0CglzdG9wX2xvc3MYHiABKAsyHy50cmlnZ2Vycy52MS5Db25kaXRpb25hbFRyaWdnZXJIARI2Cgt0YWtlX3Byb2ZpdBgfIAEoCzIfLnRyaWdnZXJzLnYxLkNvbmRpdGlvbmFsVHJpZ2dlckgBEjkKDXRyYWlsaW5nX3N0b3AYICABKAsyIC50cmlnZ2Vycy52MS5UcmFpbGluZ1N0b3BUcmlnZ2VySAESKAoEdHdhcBghIAEoCzIYLnRyaWdnZXJzLnYxLlR3YXBUcmlnZ2VySAESLAoGbGFkZGVyGCIgASgLMhoudHJpZ2dlcnMudjEuTGFkZGVyVHJpZ2dlckgBEigKBHN0b3AYZCABKAsyGC50cmlnZ2Vycy52MS5TdG9wRGV0YWlsc0gCEjAKCHRyYWlsaW5nGGUgASgLMhwudHJpZ2dlcnMudjEuVHJhaWxpbmdEZXRhaWxzSAISLgoKdHdhcF9zdGF0ZRhmIAEoCzIYLnRyaWdnZXJzLnYxLlR3YXBEZXRhaWxzSAISMgoMbGFkZGVyX3N0YXRlGGcgASgLMhoudHJpZ2dlcnMudjEuTGFkZGVyRGV0YWlsc0gCEhkKEWNsaWVudF90cmlnZ2VyX2lkGDwgASgJEi4KCmNyZWF0ZWRfYXQYPSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYPiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEiwKCGFybWVkX2F0GD8gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIwCgxjb21wbGV0ZWRfYXQYQCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQhEKD3Rlcm1pbmFsX3JlYXNvbkIPCg1jb25maWd1cmF0aW9uQhEKD3J1bnRpbWVfZGV0YWlsc0ISChBfcGFyZW50X29yZGVyX2lkKnQKC1RyaWdnZXJUeXBlEhwKGFRSSUdHRVJfVFlQRV9VTlNQRUNJRklFRBAAEg0KCVNUT1BfTE9TUxABEg8KC1RBS0VfUFJPRklUEAISEQoNVFJBSUxJTkdfU1RPUBADEggKBFRXQVAQBBIKCgZMQURERVIQBSqyAQoNVHJpZ2dlclN0YXR1cxIWChJTVEFUVVNfVU5TUEVDSUZJRUQQABISCg5TVEFUVVNfQ1JFQVRFRBABEhAKDFNUQVRVU19BUk1FRBACEhIKDlNUQVRVU19SVU5OSU5HEAMSFAoQU1RBVFVTX0NPTVBMRVRFRBAEEhMKD1NUQVRVU19DQU5DRUxFRBAFEhEKDVNUQVRVU19GQUlMRUQQBhIRCg1TVEFUVVNfUEFVU0VEEAcqiAEKEFRyaWdnZXJFdmVudFR5cGUSFQoRRVZFTlRfVU5TUEVDSUZJRUQQABIPCgtFVkVOVF9GSVJFRBABEhIKDkVWRU5UX0NBTkNFTEVEEAISEQoNRVZFTlRfVVBEQVRFRBADEhAKDEVWRU5UX0ZBSUxFRBAEEhMKD0VWRU5UX0FDVElWQVRFRBAFKpECChNUcmlnZ2VyQ2FuY2VsUmVhc29uEiUKIVRSSUdHRVJfQ0FOQ0VMX1JFQVNPTl9VTlNQRUNJRklFRBAAEiYKIlRSSUdHRVJfQ0FOQ0VMX1JFQVNPTl9VU0VSX1JFUVVFU1QQARIdChlUUklHR0VSX0NBTkNFTF9SRUFTT05fT0NPEAISMQotVFJJR0dFUl9DQU5DRUxfUkVBU09OX1BBUkVOVF9DQU5DRUxFRF9OT19GSUxMEAMSLgopVFJJR0dFUl9DQU5DRUxfUkVBU09OX01JU1NJTkdfUkVBU09OX0NPREUQ5gcSKQokVFJJR0dFUl9DQU5DRUxfUkVBU09OX0lOVEVSTkFMX0VSUk9SEOcHKuYOChRUcmlnZ2VyRmFpbHVyZVJlYXNvbhImCiJUUklHR0VSX0ZBSUxVUkVfUkVBU09OX1VOU1BFQ0lGSUVEEAASKQolVFJJR0dFUl9GQUlMVVJFX1JFQVNPTl9VTktOT1dOX1NZTUJPTBABEigKJFRSSUdHRVJfRkFJTFVSRV9SRUFTT05fUEFJUl9ESVNBQkxFRBACEicKI1RSSUdHRVJfRkFJTFVSRV9SRUFTT05fTUlOX05PVElPTkFMEAMSJAogVFJJR0dFUl9GQUlMVVJFX1JFQVNPTl9USUNLX1NJWkUQBBItCilUUklHR0VSX0ZBSUxVUkVfUkVBU09OX0lOU1VGRklDSUVOVF9GVU5EUxAFEiUKIVRSSUdHRVJfRkFJTFVSRV9SRUFTT05fUklTS19MSU1JVBAGEi4KKlRSSUdHRVJfRkFJTFVSRV9SRUFTT05fRFVQTElDQVRFX0NMSUVOVF9JRBAHEigKJFRSSUdHRVJfRkFJTFVSRV9SRUFTT05fTUFSS0VUX0hBTFRFRBAIEiYKIlRSSUdHRVJfRkFJTFVSRV9SRUFTT05fRU5HSU5FX0JVU1kQCRIqCiZUUklHR0VSX0ZBSUxVUkVfUkVBU09OX0FDQ09VTlRfVU5LTk9XThAKEigKJFRSSUdHRVJfRkFJTFVSRV9SRUFTT05fT1JERVJfVU5LTk9XThALEioKJlRSSUdHRVJfRkFJTFVSRV9SRUFTT05fUE9TVF9PTkxZX0NST1NTEAwSLgoqVFJJR0dFUl9GQUlMVVJFX1JFQVNPTl9SRURVQ0VfT05MWV9CTE9DS0VEEA0SLworVFJJR0dFUl9GQUlMVVJFX1JFQVNPTl9QUklDRV9CQU5EX1ZJT0xBVElPThAOEi8KK1RSSUdHRVJfRkFJTFVSRV9SRUFTT05fTUFSS0VUX0NBUF9WSU9MQVRJT04QDxIlCiFUUklHR0VSX0ZBSUxVUkVfUkVBU09OX0VNUFRZX0JPT0sQEBI1CjFUUklHR0VSX0ZBSUxVUkVfUkVBU09OX0ZPS19JTlNVRkZJQ0lFTlRfTElRVUlESVRZEBESMAosVFJJR0dFUl9GQUlMVVJFX1JFQVNPTl9GRUVfQVNTRVRfTk9UX0FMTE9XRUQQEhIzCi9UUklHR0VSX0ZBSUxVUkVfUkVBU09OX01BUktFVF9QUklDRV9VTkFWQUlMQUJMRRATEiYKIlRSSUdHRVJfRkFJTFVSRV9SRUFTT05fU1RBTEVfUVVPVEUQFBInCiNUUklHR0VSX0ZBSUxVUkVfUkVBU09OX01JTl9RVUFOVElUWRAVEiQKIFRSSUdHRVJfRkFJTFVSRV9SRUFTT05fU1RFUF9TSVpFEBYSKQolVFJJR0dFUl9GQUlMVVJFX1JFQVNPTl9JTlZBTElEX1NJWklORxAXEjQKMFRSSUdHRVJfRkFJTFVSRV9SRUFTT05fTUFYX1FVT1RFX0RFQklUX1RPT19TTUFMTBAYEi8KK1RSSUdHRVJfRkFJTFVSRV9SRUFTT05fRkVFX0NFSUxJTkdfRVhDRUVERUQQGRIwCixUUklHR0VSX0ZBSUxVUkVfUkVBU09OX1RSSUdHRVJfUFJJQ0VfSU5WQUxJRBAoEjsKN1RSSUdHRVJfRkFJTFVSRV9SRUFTT05fVFJJR0dFUl9QUklDRV9TT1VSQ0VfVU5TVVBQT1JURUQQKRI0CjBUUklHR0VSX0ZBSUxVUkVfUkVBU09OX1RSQUlMSU5HX0RJU1RBTkNFX0lOVkFMSUQQKhI4CjRUUklHR0VSX0ZBSUxVUkVfUkVBU09OX01PRElGSUNBVElPTl9SRVFVSVJFU19SRVBMQUNFECsSMQotVFJJR0dFUl9GQUlMVVJFX1JFQVNPTl9PUkRFUl9BTFJFQURZX1RFUk1JTkFMECwSOQo1VFJJR0dFUl9GQUlMVVJFX1JFQVNPTl9DT05GTElDVF9JREVNUE9URU5DWV9LRVlfUkVVU0UQLRInCiNUUklHR0VSX0ZBSUxVUkVfUkVBU09OX1JBVEVfTElNSVRFRBAuEjEKLVRSSUdHRVJfRkFJTFVSRV9SRUFTT05fUE9MSUNZX1NQT1RfVFJBREVfREVOWRAvEi0KKVRSSUdHRVJfRkFJTFVSRV9SRUFTT05fUE9MSUNZX01BUktFVF9ERU5ZEDASLgoqVFJJR0dFUl9GQUlMVVJFX1JFQVNPTl9QT0xJQ1lfTUFYX05PVElPTkFMEDESMQotVFJJR0dFUl9GQUlMVVJFX1JFQVNPTl9QT0xJQ1lfTUFYX09QRU5fT1JERVJTEDISMAosVFJJR0dFUl9GQUlMVVJFX1JFQVNPTl9QT0xJQ1lfVFJBRElOR19IQUxURUQQMxIvCipUUklHR0VSX0ZBSUxVUkVfUkVBU09OX01JU1NJTkdfUkVBU09OX0NPREUQ5gcSKgolVFJJR0dFUl9GQUlMVVJFX1JFQVNPTl9JTlRFUk5BTF9FUlJPUhDnBypsChJMYWRkZXJEaXN0cmlidXRpb24SIwofTEFEREVSX0RJU1RSSUJVVElPTl9VTlNQRUNJRklFRBAAEgoKBkxJTkVBUhABEg0KCUdFT01FVFJJQxACEhYKEldFSUdIVEVEX0ZBVk9SQUJMRRADMt4FCg9UcmlnZ2Vyc1NlcnZpY2USWAoNQ3JlYXRlVHJpZ2dlchIhLnRyaWdnZXJzLnYxLkNyZWF0ZVRyaWdnZXJSZXF1ZXN0GiIudHJpZ2dlcnMudjEuQ3JlYXRlVHJpZ2dlclJlc3BvbnNlIgASTwoKR2V0VHJpZ2dlchIeLnRyaWdnZXJzLnYxLkdldFRyaWdnZXJSZXF1ZXN0Gh8udHJpZ2dlcnMudjEuR2V0VHJpZ2dlclJlc3BvbnNlIgASVQoMTGlzdFRyaWdnZXJzEiAudHJpZ2dlcnMudjEuTGlzdFRyaWdnZXJzUmVxdWVzdBohLnRyaWdnZXJzLnYxLkxpc3RUcmlnZ2Vyc1Jlc3BvbnNlIgASZAoRTGlzdFRyaWdnZXJFdmVudHMSJS50cmlnZ2Vycy52MS5MaXN0VHJpZ2dlckV2ZW50c1JlcXVlc3QaJi50cmlnZ2Vycy52MS5MaXN0VHJpZ2dlckV2ZW50c1Jlc3BvbnNlIgASWAoNQ2FuY2VsVHJpZ2dlchIhLnRyaWdnZXJzLnYxLkNhbmNlbFRyaWdnZXJSZXF1ZXN0GiIudHJpZ2dlcnMudjEuQ2FuY2VsVHJpZ2dlclJlc3BvbnNlIgASWAoNTW9kaWZ5VHJpZ2dlchIhLnRyaWdnZXJzLnYxLk1vZGlmeVRyaWdnZXJSZXF1ZXN0GiIudHJpZ2dlcnMudjEuTW9kaWZ5VHJpZ2dlclJlc3BvbnNlIgASVQoMUGF1c2VUcmlnZ2VyEiAudHJpZ2dlcnMudjEuUGF1c2VUcmlnZ2VyUmVxdWVzdBohLnRyaWdnZXJzLnYxLlBhdXNlVHJpZ2dlclJlc3BvbnNlIgASWAoNUmVzdW1lVHJpZ2dlchIhLnRyaWdnZXJzLnYxLlJlc3VtZVRyaWdnZXJSZXF1ZXN0GiIudHJpZ2dlcnMudjEuUmVzdW1lVHJpZ2dlclJlc3BvbnNlIgBCRFpCZ2l0aHViLmNvbS9GYWJyaWMtTGFicy9wb2x5ZXN0ZXItc2RrLWdvL2dlbi90cmlnZ2Vycy92MTt0cmlnZ2Vyc3YxYgZwcm90bzM=\", [file_google_protobuf_timestamp, file_orders_v1_orders]);\n\n/**\n * TriggerMarketIoc configures an immediate market child.\n *\n * @generated from message triggers.v1.TriggerMarketIoc\n */\nexport type TriggerMarketIoc = Message<\"triggers.v1.TriggerMarketIoc\"> & {\n};\n\n/**\n * Describes the message triggers.v1.TriggerMarketIoc.\n * Use `create(TriggerMarketIocSchema)` to create a new message.\n */\nexport const TriggerMarketIocSchema: GenMessage<TriggerMarketIoc> = /*@__PURE__*/\n messageDesc(file_triggers_v1_triggers, 0);\n\n/**\n * TriggerLimitGtc configures a resting limit child.\n *\n * @generated from message triggers.v1.TriggerLimitGtc\n */\nexport type TriggerLimitGtc = Message<\"triggers.v1.TriggerLimitGtc\"> & {\n /**\n * Limit price in quote units scaled by 1e9.\n *\n * @generated from field: int64 price_ticks = 1;\n */\n priceTicks: bigint;\n\n /**\n * Reject instead of taking liquidity.\n *\n * @generated from field: bool post_only = 2;\n */\n postOnly: boolean;\n};\n\n/**\n * Describes the message triggers.v1.TriggerLimitGtc.\n * Use `create(TriggerLimitGtcSchema)` to create a new message.\n */\nexport const TriggerLimitGtcSchema: GenMessage<TriggerLimitGtc> = /*@__PURE__*/\n messageDesc(file_triggers_v1_triggers, 1);\n\n/**\n * TriggerLimitIoc configures an immediate-or-cancel limit child.\n *\n * @generated from message triggers.v1.TriggerLimitIoc\n */\nexport type TriggerLimitIoc = Message<\"triggers.v1.TriggerLimitIoc\"> & {\n /**\n * Limit price in quote units scaled by 1e9.\n *\n * @generated from field: int64 price_ticks = 1;\n */\n priceTicks: bigint;\n};\n\n/**\n * Describes the message triggers.v1.TriggerLimitIoc.\n * Use `create(TriggerLimitIocSchema)` to create a new message.\n */\nexport const TriggerLimitIocSchema: GenMessage<TriggerLimitIoc> = /*@__PURE__*/\n messageDesc(file_triggers_v1_triggers, 2);\n\n/**\n * TriggerLimitFok configures a fill-or-kill limit child.\n *\n * @generated from message triggers.v1.TriggerLimitFok\n */\nexport type TriggerLimitFok = Message<\"triggers.v1.TriggerLimitFok\"> & {\n /**\n * Limit price in quote units scaled by 1e9.\n *\n * @generated from field: int64 price_ticks = 1;\n */\n priceTicks: bigint;\n};\n\n/**\n * Describes the message triggers.v1.TriggerLimitFok.\n * Use `create(TriggerLimitFokSchema)` to create a new message.\n */\nexport const TriggerLimitFokSchema: GenMessage<TriggerLimitFok> = /*@__PURE__*/\n messageDesc(file_triggers_v1_triggers, 3);\n\n/**\n * ConditionalChildExecution selects the child submitted by a stop-loss or\n * take-profit trigger. BUY market children are not supported in spot.\n *\n * @generated from message triggers.v1.ConditionalChildExecution\n */\nexport type ConditionalChildExecution = Message<\"triggers.v1.ConditionalChildExecution\"> & {\n /**\n * @generated from oneof triggers.v1.ConditionalChildExecution.execution\n */\n execution: {\n /**\n * Market child with implicit IOC behavior.\n *\n * @generated from field: triggers.v1.TriggerMarketIoc market_ioc = 1;\n */\n value: TriggerMarketIoc;\n case: \"marketIoc\";\n } | {\n /**\n * Resting GTC limit child, optionally post-only.\n *\n * @generated from field: triggers.v1.TriggerLimitGtc limit_gtc = 2;\n */\n value: TriggerLimitGtc;\n case: \"limitGtc\";\n } | {\n /**\n * Immediate-or-cancel limit child.\n *\n * @generated from field: triggers.v1.TriggerLimitIoc limit_ioc = 3;\n */\n value: TriggerLimitIoc;\n case: \"limitIoc\";\n } | {\n /**\n * Fill-or-kill limit child.\n *\n * @generated from field: triggers.v1.TriggerLimitFok limit_fok = 4;\n */\n value: TriggerLimitFok;\n case: \"limitFok\";\n } | { case: undefined; value?: undefined };\n};\n\n/**\n * Describes the message triggers.v1.ConditionalChildExecution.\n * Use `create(ConditionalChildExecutionSchema)` to create a new message.\n */\nexport const ConditionalChildExecutionSchema: GenMessage<ConditionalChildExecution> = /*@__PURE__*/\n messageDesc(file_triggers_v1_triggers, 4);\n\n/**\n * ConditionalTrigger configures a standalone stop-loss or take-profit.\n *\n * @generated from message triggers.v1.ConditionalTrigger\n */\nexport type ConditionalTrigger = Message<\"triggers.v1.ConditionalTrigger\"> & {\n /**\n * Trigger threshold in quote units scaled by 1e9.\n *\n * @generated from field: int64 trigger_price_ticks = 1;\n */\n triggerPriceTicks: bigint;\n\n /**\n * Child order side.\n *\n * @generated from field: orders.v1.Side side = 2;\n */\n side: Side;\n\n /**\n * Child execution.\n *\n * @generated from field: triggers.v1.ConditionalChildExecution child = 3;\n */\n child?: ConditionalChildExecution | undefined;\n};\n\n/**\n * Describes the message triggers.v1.ConditionalTrigger.\n * Use `create(ConditionalTriggerSchema)` to create a new message.\n */\nexport const ConditionalTriggerSchema: GenMessage<ConditionalTrigger> = /*@__PURE__*/\n messageDesc(file_triggers_v1_triggers, 5);\n\n/**\n * TrailingStopTrigger configures a spot trailing-stop strategy.\n * Standalone triggers currently support SELL market-IOC children. Attached\n * trailing stops may use either side, opposite their parent order.\n *\n * @generated from message triggers.v1.TrailingStopTrigger\n */\nexport type TrailingStopTrigger = Message<\"triggers.v1.TrailingStopTrigger\"> & {\n /**\n * Required trailing distance.\n *\n * @generated from oneof triggers.v1.TrailingStopTrigger.trailing_distance\n */\n trailingDistance: {\n /**\n * Distance as a price delta in 1e-9 quote-unit ticks.\n *\n * @generated from field: int64 trailing_distance_ticks = 1;\n */\n value: bigint;\n case: \"trailingDistanceTicks\";\n } | {\n /**\n * Distance in basis points (1 bp = 0.01%).\n *\n * @generated from field: int32 trailing_distance_bps = 2;\n */\n value: number;\n case: \"trailingDistanceBps\";\n } | { case: undefined; value?: undefined };\n\n /**\n * Optional activation price in quote units scaled by 1e9.\n *\n * @generated from field: int64 activation_price_ticks = 3;\n */\n activationPriceTicks: bigint;\n\n /**\n * Optional protection applied when the market child fires.\n *\n * @generated from oneof triggers.v1.TrailingStopTrigger.max_slippage\n */\n maxSlippage: {\n /**\n * Maximum slippage as a price delta in 1e-9 quote-unit ticks.\n *\n * @generated from field: int32 max_slippage_ticks = 4;\n */\n value: number;\n case: \"maxSlippageTicks\";\n } | {\n /**\n * Maximum slippage in basis points (1 bp = 0.01%).\n *\n * @generated from field: int32 max_slippage_bps = 5;\n */\n value: number;\n case: \"maxSlippageBps\";\n } | { case: undefined; value?: undefined };\n\n /**\n * Child order side.\n *\n * @generated from field: orders.v1.Side side = 6;\n */\n side: Side;\n};\n\n/**\n * Describes the message triggers.v1.TrailingStopTrigger.\n * Use `create(TrailingStopTriggerSchema)` to create a new message.\n */\nexport const TrailingStopTriggerSchema: GenMessage<TrailingStopTrigger> = /*@__PURE__*/\n messageDesc(file_triggers_v1_triggers, 6);\n\n/**\n * TwapMarketIoc configures server-priced market-IOC slices.\n *\n * @generated from message triggers.v1.TwapMarketIoc\n */\nexport type TwapMarketIoc = Message<\"triggers.v1.TwapMarketIoc\"> & {\n /**\n * Optional protection for each slice, relative to the server-side reference\n * price at that slice's admission. If omitted, each slice uses the pair's\n * default market slippage. This does not bound price movement over the whole\n * TWAP duration or guarantee that every slice fills.\n *\n * @generated from oneof triggers.v1.TwapMarketIoc.max_slippage\n */\n maxSlippage: {\n /**\n * Maximum adverse price delta per slice in 1e-9 quote-unit ticks.\n *\n * @generated from field: int32 max_slippage_ticks = 1;\n */\n value: number;\n case: \"maxSlippageTicks\";\n } | {\n /**\n * Maximum adverse price movement per slice in basis points (1 bp = 0.01%).\n *\n * @generated from field: int32 max_slippage_bps = 2;\n */\n value: number;\n case: \"maxSlippageBps\";\n } | { case: undefined; value?: undefined };\n};\n\n/**\n * Describes the message triggers.v1.TwapMarketIoc.\n * Use `create(TwapMarketIocSchema)` to create a new message.\n */\nexport const TwapMarketIocSchema: GenMessage<TwapMarketIoc> = /*@__PURE__*/\n messageDesc(file_triggers_v1_triggers, 7);\n\n/**\n * TwapLimitGtc configures one resting limit slice at a time. A previous open\n * slice is canceled before the next interval.\n *\n * @generated from message triggers.v1.TwapLimitGtc\n */\nexport type TwapLimitGtc = Message<\"triggers.v1.TwapLimitGtc\"> & {\n /**\n * Slice limit price in quote units scaled by 1e9.\n *\n * @generated from field: int64 price_ticks = 1;\n */\n priceTicks: bigint;\n};\n\n/**\n * Describes the message triggers.v1.TwapLimitGtc.\n * Use `create(TwapLimitGtcSchema)` to create a new message.\n */\nexport const TwapLimitGtcSchema: GenMessage<TwapLimitGtc> = /*@__PURE__*/\n messageDesc(file_triggers_v1_triggers, 8);\n\n/**\n * TwapTrigger configures a proven TWAP execution mode.\n *\n * @generated from message triggers.v1.TwapTrigger\n */\nexport type TwapTrigger = Message<\"triggers.v1.TwapTrigger\"> & {\n /**\n * Child side.\n *\n * @generated from field: orders.v1.Side side = 1;\n */\n side: Side;\n\n /**\n * Total execution duration in milliseconds.\n *\n * @generated from field: int64 duration_ms = 2;\n */\n durationMs: bigint;\n\n /**\n * Interval between slices in milliseconds.\n *\n * @generated from field: int64 slice_interval_ms = 3;\n */\n sliceIntervalMs: bigint;\n\n /**\n * Proven slice execution behavior.\n *\n * @generated from oneof triggers.v1.TwapTrigger.execution\n */\n execution: {\n /**\n * Server-priced market IOC slices.\n *\n * @generated from field: triggers.v1.TwapMarketIoc market_ioc = 4;\n */\n value: TwapMarketIoc;\n case: \"marketIoc\";\n } | {\n /**\n * Limit GTC slices with cancel-before-next behavior.\n *\n * @generated from field: triggers.v1.TwapLimitGtc limit_gtc = 5;\n */\n value: TwapLimitGtc;\n case: \"limitGtc\";\n } | { case: undefined; value?: undefined };\n};\n\n/**\n * Describes the message triggers.v1.TwapTrigger.\n * Use `create(TwapTriggerSchema)` to create a new message.\n */\nexport const TwapTriggerSchema: GenMessage<TwapTrigger> = /*@__PURE__*/\n messageDesc(file_triggers_v1_triggers, 9);\n\n/**\n * LadderTrigger configures the supported LINEAR limit-GTC ladder. All levels\n * are admitted immediately and may rest concurrently.\n *\n * @generated from message triggers.v1.LadderTrigger\n */\nexport type LadderTrigger = Message<\"triggers.v1.LadderTrigger\"> & {\n /**\n * Child side.\n *\n * @generated from field: orders.v1.Side side = 1;\n */\n side: Side;\n\n /**\n * Minimum generated level price in quote units scaled by 1e9.\n *\n * @generated from field: int64 price_min_ticks = 2;\n */\n priceMinTicks: bigint;\n\n /**\n * Maximum generated level price in quote units scaled by 1e9.\n *\n * @generated from field: int64 price_max_ticks = 3;\n */\n priceMaxTicks: bigint;\n\n /**\n * Number of linearly distributed levels.\n *\n * @generated from field: int32 levels = 4;\n */\n levels: number;\n\n /**\n * Reject each level instead of taking liquidity.\n *\n * @generated from field: bool post_only = 5;\n */\n postOnly: boolean;\n};\n\n/**\n * Describes the message triggers.v1.LadderTrigger.\n * Use `create(LadderTriggerSchema)` to create a new message.\n */\nexport const LadderTriggerSchema: GenMessage<LadderTrigger> = /*@__PURE__*/\n messageDesc(file_triggers_v1_triggers, 10);\n\n/**\n * TriggerIntent contains one standalone trigger's immutable configuration.\n *\n * @generated from message triggers.v1.TriggerIntent\n */\nexport type TriggerIntent = Message<\"triggers.v1.TriggerIntent\"> & {\n /**\n * Stable numeric pair ID from GetSpotConfig.\n *\n * @generated from field: uint32 symbol_id = 1;\n */\n symbolId: number;\n\n /**\n * Total quantity scaled by the pair's base_quantity_scale.\n *\n * @generated from field: int64 qty_scaled = 2;\n */\n qtyScaled: bigint;\n\n /**\n * Fee asset for BUY children. SELL children must use QUOTE.\n *\n * @generated from field: orders.v1.FeeAsset fee_asset = 3;\n */\n feeAsset: FeeAsset;\n\n /**\n * Child self-trade prevention mode. Defaults to EXPIRE_MAKER.\n *\n * @generated from field: orders.v1.SelfTradePreventionMode self_trade_prevention_mode = 4;\n */\n selfTradePreventionMode: SelfTradePreventionMode;\n\n /**\n * Client-provided trigger ID for idempotency.\n *\n * @generated from field: string client_trigger_id = 5;\n */\n clientTriggerId: string;\n\n /**\n * Required trigger strategy.\n *\n * @generated from oneof triggers.v1.TriggerIntent.strategy\n */\n strategy: {\n /**\n * Standalone stop-loss.\n *\n * @generated from field: triggers.v1.ConditionalTrigger stop_loss = 10;\n */\n value: ConditionalTrigger;\n case: \"stopLoss\";\n } | {\n /**\n * Standalone take-profit.\n *\n * @generated from field: triggers.v1.ConditionalTrigger take_profit = 11;\n */\n value: ConditionalTrigger;\n case: \"takeProfit\";\n } | {\n /**\n * SELL market-IOC trailing stop.\n *\n * @generated from field: triggers.v1.TrailingStopTrigger trailing_stop = 12;\n */\n value: TrailingStopTrigger;\n case: \"trailingStop\";\n } | {\n /**\n * TWAP strategy.\n *\n * @generated from field: triggers.v1.TwapTrigger twap = 13;\n */\n value: TwapTrigger;\n case: \"twap\";\n } | {\n /**\n * LINEAR limit-GTC ladder.\n *\n * @generated from field: triggers.v1.LadderTrigger ladder = 14;\n */\n value: LadderTrigger;\n case: \"ladder\";\n } | { case: undefined; value?: undefined };\n};\n\n/**\n * Describes the message triggers.v1.TriggerIntent.\n * Use `create(TriggerIntentSchema)` to create a new message.\n */\nexport const TriggerIntentSchema: GenMessage<TriggerIntent> = /*@__PURE__*/\n messageDesc(file_triggers_v1_triggers, 11);\n\n/**\n * CreateTriggerRequest submits one standalone trigger intent for admission.\n *\n * @generated from message triggers.v1.CreateTriggerRequest\n */\nexport type CreateTriggerRequest = Message<\"triggers.v1.CreateTriggerRequest\"> & {\n /**\n * Target sub-account. When omitted, uses the caller's root account.\n *\n * @generated from field: optional fixed64 subaccount_id = 1;\n */\n subaccountId?: bigint | undefined;\n\n /**\n * Trigger to admit.\n *\n * @generated from field: triggers.v1.TriggerIntent trigger = 2;\n */\n trigger?: TriggerIntent | undefined;\n};\n\n/**\n * Describes the message triggers.v1.CreateTriggerRequest.\n * Use `create(CreateTriggerRequestSchema)` to create a new message.\n */\nexport const CreateTriggerRequestSchema: GenMessage<CreateTriggerRequest> = /*@__PURE__*/\n messageDesc(file_triggers_v1_triggers, 12);\n\n/**\n * CreateTriggerResponse acknowledges trigger creation only. Arming and child\n * execution happen asynchronously and are visible through trigger reads/events.\n *\n * @generated from message triggers.v1.CreateTriggerResponse\n */\nexport type CreateTriggerResponse = Message<\"triggers.v1.CreateTriggerResponse\"> & {\n /**\n * Assigned trigger ID.\n *\n * @generated from field: fixed64 trigger_id = 1;\n */\n triggerId: bigint;\n\n /**\n * Echoed client trigger ID.\n *\n * @generated from field: string client_trigger_id = 2;\n */\n clientTriggerId: string;\n\n /**\n * Time creation admission completed.\n *\n * @generated from field: google.protobuf.Timestamp accepted_at = 3;\n */\n acceptedAt?: Timestamp | undefined;\n\n /**\n * Admission completion time in nanoseconds since epoch (UTC).\n *\n * @generated from field: uint64 accepted_at_ts_ns = 4;\n */\n acceptedAtTsNs: bigint;\n};\n\n/**\n * Describes the message triggers.v1.CreateTriggerResponse.\n * Use `create(CreateTriggerResponseSchema)` to create a new message.\n */\nexport const CreateTriggerResponseSchema: GenMessage<CreateTriggerResponse> = /*@__PURE__*/\n messageDesc(file_triggers_v1_triggers, 13);\n\n/**\n * GetTriggerRequest retrieves one trigger by ID.\n *\n * @generated from message triggers.v1.GetTriggerRequest\n */\nexport type GetTriggerRequest = Message<\"triggers.v1.GetTriggerRequest\"> & {\n /**\n * Trigger ID to retrieve.\n *\n * @generated from field: fixed64 trigger_id = 1;\n */\n triggerId: bigint;\n\n /**\n * Optional sub-account for authorization.\n *\n * @generated from field: optional fixed64 subaccount_id = 2;\n */\n subaccountId?: bigint | undefined;\n};\n\n/**\n * Describes the message triggers.v1.GetTriggerRequest.\n * Use `create(GetTriggerRequestSchema)` to create a new message.\n */\nexport const GetTriggerRequestSchema: GenMessage<GetTriggerRequest> = /*@__PURE__*/\n messageDesc(file_triggers_v1_triggers, 14);\n\n/**\n * GetTriggerResponse returns the requested trigger.\n *\n * @generated from message triggers.v1.GetTriggerResponse\n */\nexport type GetTriggerResponse = Message<\"triggers.v1.GetTriggerResponse\"> & {\n /**\n * Trigger state and configuration.\n *\n * @generated from field: triggers.v1.Trigger trigger = 1;\n */\n trigger?: Trigger | undefined;\n};\n\n/**\n * Describes the message triggers.v1.GetTriggerResponse.\n * Use `create(GetTriggerResponseSchema)` to create a new message.\n */\nexport const GetTriggerResponseSchema: GenMessage<GetTriggerResponse> = /*@__PURE__*/\n messageDesc(file_triggers_v1_triggers, 15);\n\n/**\n * ListTriggersRequest lists triggers for an account.\n *\n * @generated from message triggers.v1.ListTriggersRequest\n */\nexport type ListTriggersRequest = Message<\"triggers.v1.ListTriggersRequest\"> & {\n /**\n * Optional sub-account to list triggers for. When empty or omitted, uses the\n * caller's root account.\n *\n * @generated from field: optional fixed64 subaccount_id = 1;\n */\n subaccountId?: bigint | undefined;\n\n /**\n * Optional filter by stable numeric pair ID. Zero means all symbols.\n *\n * @generated from field: uint32 symbol_id = 2;\n */\n symbolId: number;\n\n /**\n * Optional filter by status (can specify multiple).\n *\n * @generated from field: repeated triggers.v1.TriggerStatus status = 3;\n */\n status: TriggerStatus[];\n\n /**\n * Optional filter by type.\n *\n * @generated from field: triggers.v1.TriggerType trigger_type = 4;\n */\n triggerType: TriggerType;\n\n /**\n * Optional filter by attached parent order ID.\n *\n * @generated from field: optional fixed64 parent_order_id = 5;\n */\n parentOrderId?: bigint | undefined;\n\n /**\n * Maximum number of triggers to return. Defaults to 100 when omitted;\n * maximum is 1000.\n *\n * @generated from field: uint32 limit = 10;\n */\n limit: number;\n\n /**\n * Opaque keyset cursor from a previous response. The cursor is exclusive and\n * bound to the authenticated account, sub-account scope, filters, and newest\n * first sort order.\n *\n * @generated from field: string page_token = 12;\n */\n pageToken: string;\n};\n\n/**\n * Describes the message triggers.v1.ListTriggersRequest.\n * Use `create(ListTriggersRequestSchema)` to create a new message.\n */\nexport const ListTriggersRequestSchema: GenMessage<ListTriggersRequest> = /*@__PURE__*/\n messageDesc(file_triggers_v1_triggers, 16);\n\n/**\n * ListTriggersResponse returns triggers ordered newest-first.\n *\n * @generated from message triggers.v1.ListTriggersResponse\n */\nexport type ListTriggersResponse = Message<\"triggers.v1.ListTriggersResponse\"> & {\n /**\n * Triggers ordered by creation time descending, then trigger ID descending.\n *\n * @generated from field: repeated triggers.v1.Trigger triggers = 1;\n */\n triggers: Trigger[];\n\n /**\n * Opaque cursor for the next page. Empty when no more results exist.\n *\n * @generated from field: string next_page_token = 3;\n */\n nextPageToken: string;\n};\n\n/**\n * Describes the message triggers.v1.ListTriggersResponse.\n * Use `create(ListTriggersResponseSchema)` to create a new message.\n */\nexport const ListTriggersResponseSchema: GenMessage<ListTriggersResponse> = /*@__PURE__*/\n messageDesc(file_triggers_v1_triggers, 17);\n\n/**\n * ListTriggerEventsRequest lists historical events for one trigger.\n *\n * @generated from message triggers.v1.ListTriggerEventsRequest\n */\nexport type ListTriggerEventsRequest = Message<\"triggers.v1.ListTriggerEventsRequest\"> & {\n /**\n * Trigger ID to list events for.\n *\n * @generated from field: fixed64 trigger_id = 1;\n */\n triggerId: bigint;\n\n /**\n * Optional sub-account (authorization). When empty or omitted, uses the\n * caller's root account.\n *\n * @generated from field: optional fixed64 subaccount_id = 2;\n */\n subaccountId?: bigint | undefined;\n\n /**\n * Maximum number of events to return. Defaults to 100 when omitted; maximum\n * is 1000.\n *\n * @generated from field: uint32 limit = 3;\n */\n limit: number;\n\n /**\n * Optional event category filter. When unspecified, returns all event\n * categories. Use EVENT_FIRED to enumerate child-order actions.\n *\n * @generated from field: triggers.v1.TriggerEventType event_type = 4;\n */\n eventType: TriggerEventType;\n\n /**\n * Opaque keyset cursor from a previous response. The cursor is exclusive and\n * bound to the authenticated account, trigger, sub-account scope, event\n * filter, and newest-first sort order.\n *\n * @generated from field: string page_token = 5;\n */\n pageToken: string;\n};\n\n/**\n * Describes the message triggers.v1.ListTriggerEventsRequest.\n * Use `create(ListTriggerEventsRequestSchema)` to create a new message.\n */\nexport const ListTriggerEventsRequestSchema: GenMessage<ListTriggerEventsRequest> = /*@__PURE__*/\n messageDesc(file_triggers_v1_triggers, 18);\n\n/**\n * TriggerEvent describes one historical trigger lifecycle event.\n *\n * @generated from message triggers.v1.TriggerEvent\n */\nexport type TriggerEvent = Message<\"triggers.v1.TriggerEvent\"> & {\n /**\n * Trigger ID associated with the event.\n *\n * @generated from field: fixed64 trigger_id = 1;\n */\n triggerId: bigint;\n\n /**\n * Public account or sub-account ID associated with the trigger.\n *\n * @generated from field: fixed64 subaccount_id = 2;\n */\n subaccountId: bigint;\n\n /**\n * Trading symbol numeric identifier.\n *\n * @generated from field: uint32 symbol_id = 3;\n */\n symbolId: number;\n\n /**\n * Trigger type at the time of the event.\n *\n * @generated from field: triggers.v1.TriggerType trigger_type = 4;\n */\n triggerType: TriggerType;\n\n /**\n * Event category.\n *\n * @generated from field: triggers.v1.TriggerEventType event_type = 5;\n */\n eventType: TriggerEventType;\n\n /**\n * Event timestamp in nanoseconds since epoch (UTC).\n *\n * @generated from field: uint64 ts_ns = 10;\n */\n tsNs: bigint;\n\n /**\n * Child sequence number for multi-child trigger strategies.\n *\n * @generated from field: int32 child_seq = 11;\n */\n childSeq: number;\n\n /**\n * Child order ID created by this event, if any.\n *\n * @generated from field: fixed64 child_order_id = 12;\n */\n childOrderId: bigint;\n\n /**\n * Price that caused a conditional trigger to fire, in quote units scaled by\n * 1e9. Absent for time-scheduled triggers such as TWAP.\n *\n * @generated from field: optional int64 fire_price_ticks = 13;\n */\n firePriceTicks?: bigint | undefined;\n\n /**\n * Terminal reason for canceled or failed events. Other event types leave it unset.\n *\n * @generated from oneof triggers.v1.TriggerEvent.terminal_reason\n */\n terminalReason: {\n /**\n * Why an admitted trigger was canceled.\n *\n * @generated from field: triggers.v1.TriggerCancelReason cancel_reason = 20;\n */\n value: TriggerCancelReason;\n case: \"cancelReason\";\n } | {\n /**\n * Why an admitted trigger failed.\n *\n * @generated from field: triggers.v1.TriggerFailureReason failure_reason = 21;\n */\n value: TriggerFailureReason;\n case: \"failureReason\";\n } | { case: undefined; value?: undefined };\n};\n\n/**\n * Describes the message triggers.v1.TriggerEvent.\n * Use `create(TriggerEventSchema)` to create a new message.\n */\nexport const TriggerEventSchema: GenMessage<TriggerEvent> = /*@__PURE__*/\n messageDesc(file_triggers_v1_triggers, 19);\n\n/**\n * ListTriggerEventsResponse returns historical events ordered newest-first.\n *\n * @generated from message triggers.v1.ListTriggerEventsResponse\n */\nexport type ListTriggerEventsResponse = Message<\"triggers.v1.ListTriggerEventsResponse\"> & {\n /**\n * Events ordered by event time descending, child sequence descending, and\n * stable event tie-breakers descending.\n *\n * @generated from field: repeated triggers.v1.TriggerEvent events = 1;\n */\n events: TriggerEvent[];\n\n /**\n * Opaque cursor for the next page. Empty when no more results exist.\n *\n * @generated from field: string next_page_token = 3;\n */\n nextPageToken: string;\n};\n\n/**\n * Describes the message triggers.v1.ListTriggerEventsResponse.\n * Use `create(ListTriggerEventsResponseSchema)` to create a new message.\n */\nexport const ListTriggerEventsResponseSchema: GenMessage<ListTriggerEventsResponse> = /*@__PURE__*/\n messageDesc(file_triggers_v1_triggers, 20);\n\n/**\n * CancelTriggerRequest cancels an active trigger by ID.\n *\n * @generated from message triggers.v1.CancelTriggerRequest\n */\nexport type CancelTriggerRequest = Message<\"triggers.v1.CancelTriggerRequest\"> & {\n /**\n * Trigger ID to cancel.\n *\n * @generated from field: fixed64 trigger_id = 1;\n */\n triggerId: bigint;\n\n /**\n * Optional sub-account for authorization.\n *\n * @generated from field: optional fixed64 subaccount_id = 2;\n */\n subaccountId?: bigint | undefined;\n};\n\n/**\n * Describes the message triggers.v1.CancelTriggerRequest.\n * Use `create(CancelTriggerRequestSchema)` to create a new message.\n */\nexport const CancelTriggerRequestSchema: GenMessage<CancelTriggerRequest> = /*@__PURE__*/\n messageDesc(file_triggers_v1_triggers, 21);\n\n/**\n * CancelTriggerResponse returns the final status after cancellation.\n *\n * @generated from message triggers.v1.CancelTriggerResponse\n */\nexport type CancelTriggerResponse = Message<\"triggers.v1.CancelTriggerResponse\"> & {\n /**\n * Trigger ID that was canceled.\n *\n * @generated from field: fixed64 trigger_id = 1;\n */\n triggerId: bigint;\n\n /**\n * Final status (should be STATUS_CANCELED).\n *\n * @generated from field: triggers.v1.TriggerStatus status = 2;\n */\n status: TriggerStatus;\n\n /**\n * Server timestamp.\n *\n * @generated from field: google.protobuf.Timestamp ts = 3;\n */\n ts?: Timestamp | undefined;\n\n /**\n * Server timestamp in nanoseconds since epoch (UTC).\n *\n * @generated from field: uint64 ts_ns = 4;\n */\n tsNs: bigint;\n};\n\n/**\n * Describes the message triggers.v1.CancelTriggerResponse.\n * Use `create(CancelTriggerResponseSchema)` to create a new message.\n */\nexport const CancelTriggerResponseSchema: GenMessage<CancelTriggerResponse> = /*@__PURE__*/\n messageDesc(file_triggers_v1_triggers, 22);\n\n/**\n * ModifyTriggerRequest applies a limited patch to an existing trigger.\n *\n * @generated from message triggers.v1.ModifyTriggerRequest\n */\nexport type ModifyTriggerRequest = Message<\"triggers.v1.ModifyTriggerRequest\"> & {\n /**\n * Trigger ID to modify.\n *\n * @generated from field: fixed64 trigger_id = 1;\n */\n triggerId: bigint;\n\n /**\n * Optional sub-account for authorization.\n *\n * @generated from field: optional fixed64 subaccount_id = 2;\n */\n subaccountId?: bigint | undefined;\n\n /**\n * Trading symbol numeric identifier. Required for API-key market policy and\n * must match the stored trigger.\n *\n * @generated from field: uint32 symbol_id = 3;\n */\n symbolId: number;\n\n /**\n * Patch fields for safe price, trailing-distance, and slippage edits.\n * For stop/take-profit:\n * Updated trigger price in quote units scaled by 1e9.\n *\n * @generated from field: optional int64 trigger_price_ticks = 10;\n */\n triggerPriceTicks?: bigint | undefined;\n\n /**\n * Updated limit price in quote units scaled by 1e9 for LIMIT child orders.\n *\n * @generated from field: optional int64 limit_price_ticks = 11;\n */\n limitPriceTicks?: bigint | undefined;\n\n /**\n * For trailing stop:\n *\n * @generated from oneof triggers.v1.ModifyTriggerRequest.trailing_distance\n */\n trailingDistance: {\n /**\n * Updated trailing distance as a price delta in 1e-9 quote-unit ticks.\n *\n * @generated from field: int64 trailing_distance_ticks = 12;\n */\n value: bigint;\n case: \"trailingDistanceTicks\";\n } | {\n /**\n * Updated trailing distance in basis points (1 bp = 0.01%).\n *\n * @generated from field: int32 trailing_distance_bps = 13;\n */\n value: number;\n case: \"trailingDistanceBps\";\n } | { case: undefined; value?: undefined };\n\n /**\n * Updated activation price in quote units scaled by 1e9. Set to zero to\n * clear an existing activation price; omit to leave it unchanged.\n *\n * @generated from field: optional int64 activation_price_ticks = 14;\n */\n activationPriceTicks?: bigint | undefined;\n\n /**\n * Optional price protection. Select either field with a zero value to clear\n * an existing max-slippage cap; omit the oneof to leave it unchanged.\n *\n * @generated from oneof triggers.v1.ModifyTriggerRequest.max_slippage\n */\n maxSlippage: {\n /**\n * Updated maximum allowed slippage as a price delta in 1e-9 quote-unit\n * ticks. Set to zero to clear the cap.\n *\n * @generated from field: int32 max_slippage_ticks = 15;\n */\n value: number;\n case: \"maxSlippageTicks\";\n } | {\n /**\n * Updated maximum allowed slippage in basis points (1 bp = 0.01%). Set to\n * zero to clear the cap.\n *\n * @generated from field: int32 max_slippage_bps = 16;\n */\n value: number;\n case: \"maxSlippageBps\";\n } | { case: undefined; value?: undefined };\n};\n\n/**\n * Describes the message triggers.v1.ModifyTriggerRequest.\n * Use `create(ModifyTriggerRequestSchema)` to create a new message.\n */\nexport const ModifyTriggerRequestSchema: GenMessage<ModifyTriggerRequest> = /*@__PURE__*/\n messageDesc(file_triggers_v1_triggers, 23);\n\n/**\n * ModifyTriggerResponse returns the trigger status after modification.\n *\n * @generated from message triggers.v1.ModifyTriggerResponse\n */\nexport type ModifyTriggerResponse = Message<\"triggers.v1.ModifyTriggerResponse\"> & {\n /**\n * Modified trigger ID.\n *\n * @generated from field: fixed64 trigger_id = 1;\n */\n triggerId: bigint;\n\n /**\n * Current trigger status after modification.\n *\n * @generated from field: triggers.v1.TriggerStatus status = 2;\n */\n status: TriggerStatus;\n\n /**\n * Server timestamp.\n *\n * @generated from field: google.protobuf.Timestamp ts = 3;\n */\n ts?: Timestamp | undefined;\n\n /**\n * Server timestamp in nanoseconds since epoch (UTC).\n *\n * @generated from field: uint64 ts_ns = 4;\n */\n tsNs: bigint;\n};\n\n/**\n * Describes the message triggers.v1.ModifyTriggerResponse.\n * Use `create(ModifyTriggerResponseSchema)` to create a new message.\n */\nexport const ModifyTriggerResponseSchema: GenMessage<ModifyTriggerResponse> = /*@__PURE__*/\n messageDesc(file_triggers_v1_triggers, 24);\n\n/**\n * PauseTriggerRequest pauses an active trigger by ID.\n *\n * @generated from message triggers.v1.PauseTriggerRequest\n */\nexport type PauseTriggerRequest = Message<\"triggers.v1.PauseTriggerRequest\"> & {\n /**\n * Trigger ID to pause.\n *\n * @generated from field: fixed64 trigger_id = 1;\n */\n triggerId: bigint;\n\n /**\n * Optional sub-account for authorization.\n *\n * @generated from field: optional fixed64 subaccount_id = 2;\n */\n subaccountId?: bigint | undefined;\n};\n\n/**\n * Describes the message triggers.v1.PauseTriggerRequest.\n * Use `create(PauseTriggerRequestSchema)` to create a new message.\n */\nexport const PauseTriggerRequestSchema: GenMessage<PauseTriggerRequest> = /*@__PURE__*/\n messageDesc(file_triggers_v1_triggers, 25);\n\n/**\n * PauseTriggerResponse returns the trigger status after pausing.\n *\n * @generated from message triggers.v1.PauseTriggerResponse\n */\nexport type PauseTriggerResponse = Message<\"triggers.v1.PauseTriggerResponse\"> & {\n /**\n * Paused trigger ID.\n *\n * @generated from field: fixed64 trigger_id = 1;\n */\n triggerId: bigint;\n\n /**\n * Current trigger status after pausing.\n *\n * @generated from field: triggers.v1.TriggerStatus status = 2;\n */\n status: TriggerStatus;\n\n /**\n * Server timestamp.\n *\n * @generated from field: google.protobuf.Timestamp ts = 3;\n */\n ts?: Timestamp | undefined;\n\n /**\n * Server timestamp in nanoseconds since epoch (UTC).\n *\n * @generated from field: uint64 ts_ns = 4;\n */\n tsNs: bigint;\n};\n\n/**\n * Describes the message triggers.v1.PauseTriggerResponse.\n * Use `create(PauseTriggerResponseSchema)` to create a new message.\n */\nexport const PauseTriggerResponseSchema: GenMessage<PauseTriggerResponse> = /*@__PURE__*/\n messageDesc(file_triggers_v1_triggers, 26);\n\n/**\n * ResumeTriggerRequest resumes a paused trigger by ID.\n *\n * @generated from message triggers.v1.ResumeTriggerRequest\n */\nexport type ResumeTriggerRequest = Message<\"triggers.v1.ResumeTriggerRequest\"> & {\n /**\n * Trigger ID to resume.\n *\n * @generated from field: fixed64 trigger_id = 1;\n */\n triggerId: bigint;\n\n /**\n * Optional sub-account for authorization.\n *\n * @generated from field: optional fixed64 subaccount_id = 2;\n */\n subaccountId?: bigint | undefined;\n\n /**\n * Trading symbol numeric identifier. Required for API-key market policy and\n * must match the stored trigger.\n *\n * @generated from field: uint32 symbol_id = 3;\n */\n symbolId: number;\n};\n\n/**\n * Describes the message triggers.v1.ResumeTriggerRequest.\n * Use `create(ResumeTriggerRequestSchema)` to create a new message.\n */\nexport const ResumeTriggerRequestSchema: GenMessage<ResumeTriggerRequest> = /*@__PURE__*/\n messageDesc(file_triggers_v1_triggers, 27);\n\n/**\n * ResumeTriggerResponse returns the trigger status after resuming.\n *\n * @generated from message triggers.v1.ResumeTriggerResponse\n */\nexport type ResumeTriggerResponse = Message<\"triggers.v1.ResumeTriggerResponse\"> & {\n /**\n * Resumed trigger ID.\n *\n * @generated from field: fixed64 trigger_id = 1;\n */\n triggerId: bigint;\n\n /**\n * Current trigger status after resuming.\n *\n * @generated from field: triggers.v1.TriggerStatus status = 2;\n */\n status: TriggerStatus;\n\n /**\n * Server timestamp.\n *\n * @generated from field: google.protobuf.Timestamp ts = 3;\n */\n ts?: Timestamp | undefined;\n\n /**\n * Server timestamp in nanoseconds since epoch (UTC).\n *\n * @generated from field: uint64 ts_ns = 4;\n */\n tsNs: bigint;\n};\n\n/**\n * Describes the message triggers.v1.ResumeTriggerResponse.\n * Use `create(ResumeTriggerResponseSchema)` to create a new message.\n */\nexport const ResumeTriggerResponseSchema: GenMessage<ResumeTriggerResponse> = /*@__PURE__*/\n messageDesc(file_triggers_v1_triggers, 28);\n\n/**\n * StopDetails contains configuration for STOP_LOSS and TAKE_PROFIT triggers.\n *\n * @generated from message triggers.v1.StopDetails\n */\nexport type StopDetails = Message<\"triggers.v1.StopDetails\"> & {\n /**\n * Trigger threshold price in quote units scaled by 1e9.\n *\n * @generated from field: int64 trigger_price_ticks = 1;\n */\n triggerPriceTicks: bigint;\n\n /**\n * Price source used for trigger evaluation.\n *\n * @generated from field: orders.v1.TriggerPriceSource trigger_price_source = 2;\n */\n triggerPriceSource: TriggerPriceSource;\n\n /**\n * Direction the price must cross to fire the trigger.\n *\n * @generated from field: orders.v1.TriggerDirection trigger_direction = 3;\n */\n triggerDirection: TriggerDirection;\n};\n\n/**\n * Describes the message triggers.v1.StopDetails.\n * Use `create(StopDetailsSchema)` to create a new message.\n */\nexport const StopDetailsSchema: GenMessage<StopDetails> = /*@__PURE__*/\n messageDesc(file_triggers_v1_triggers, 29);\n\n/**\n * TrailingDetails contains configuration and runtime state for TRAILING_STOP\n * triggers.\n *\n * @generated from message triggers.v1.TrailingDetails\n */\nexport type TrailingDetails = Message<\"triggers.v1.TrailingDetails\"> & {\n /**\n * Trailing distance as a price delta in 1e-9 quote-unit ticks.\n *\n * @generated from field: int64 trailing_distance_ticks = 1;\n */\n trailingDistanceTicks: bigint;\n\n /**\n * Optional activation price: trailing only starts after this price is\n * reached. Expressed in quote units scaled by 1e9.\n *\n * @generated from field: int64 activation_price_ticks = 2;\n */\n activationPriceTicks: bigint;\n\n /**\n * Current peak price in quote units scaled by 1e9 for sell trailing stops.\n *\n * @generated from field: int64 peak_price_ticks = 3;\n */\n peakPriceTicks: bigint;\n\n /**\n * Current trough price in quote units scaled by 1e9 for buy trailing stops.\n *\n * @generated from field: int64 trough_price_ticks = 4;\n */\n troughPriceTicks: bigint;\n\n /**\n * Trailing distance in basis points (1 bp = 0.01%).\n *\n * @generated from field: int32 trailing_distance_bps = 5;\n */\n trailingDistanceBps: number;\n\n /**\n * Optional maximum allowed slippage as a price delta in 1e-9 quote-unit ticks.\n *\n * @generated from field: int32 max_slippage_ticks = 6;\n */\n maxSlippageTicks: number;\n\n /**\n * Optional maximum allowed slippage in basis points (1 bp = 0.01%).\n *\n * @generated from field: int32 max_slippage_bps = 7;\n */\n maxSlippageBps: number;\n\n /**\n * Price source used for trigger evaluation. Fixed for the lifetime of the\n * trigger and exposed for completeness.\n *\n * @generated from field: orders.v1.TriggerPriceSource trigger_price_source = 8;\n */\n triggerPriceSource: TriggerPriceSource;\n\n /**\n * Direction the price must cross to fire the trigger. Fixed for the lifetime\n * of the trigger and exposed for completeness.\n *\n * @generated from field: orders.v1.TriggerDirection trigger_direction = 9;\n */\n triggerDirection: TriggerDirection;\n\n /**\n * Current trailing trigger threshold in quote units scaled by 1e9. This is\n * evaluator-authored runtime state and moves when the peak or trough changes.\n * It is absent until the trailing trigger is armed and a positive threshold exists.\n *\n * @generated from field: optional int64 trigger_price_ticks = 10;\n */\n triggerPriceTicks?: bigint | undefined;\n};\n\n/**\n * Describes the message triggers.v1.TrailingDetails.\n * Use `create(TrailingDetailsSchema)` to create a new message.\n */\nexport const TrailingDetailsSchema: GenMessage<TrailingDetails> = /*@__PURE__*/\n messageDesc(file_triggers_v1_triggers, 30);\n\n/**\n * TwapDetails contains configuration and runtime state for TWAP triggers.\n *\n * @generated from message triggers.v1.TwapDetails\n */\nexport type TwapDetails = Message<\"triggers.v1.TwapDetails\"> & {\n /**\n * Total duration of TWAP execution in milliseconds.\n *\n * @generated from field: int64 twap_duration_ms = 1;\n */\n twapDurationMs: bigint;\n\n /**\n * Interval between TWAP slices in milliseconds.\n *\n * @generated from field: int64 twap_slice_interval_ms = 2;\n */\n twapSliceIntervalMs: bigint;\n\n /**\n * Current slice index, zero-based.\n *\n * @generated from field: int32 slice_idx = 4;\n */\n sliceIdx: number;\n\n /**\n * Total number of planned slices.\n *\n * @generated from field: int32 slice_count = 5;\n */\n sliceCount: number;\n\n /**\n * Cumulative filled child-order base quantity scaled by the pair's\n * base_quantity_scale from GetSpotConfig.\n *\n * @generated from field: int64 executed_qty_scaled = 6;\n */\n executedQtyScaled: bigint;\n};\n\n/**\n * Describes the message triggers.v1.TwapDetails.\n * Use `create(TwapDetailsSchema)` to create a new message.\n */\nexport const TwapDetailsSchema: GenMessage<TwapDetails> = /*@__PURE__*/\n messageDesc(file_triggers_v1_triggers, 31);\n\n/**\n * LadderDetails contains configuration and aggregate execution progress for LADDER triggers.\n *\n * @generated from message triggers.v1.LadderDetails\n */\nexport type LadderDetails = Message<\"triggers.v1.LadderDetails\"> & {\n /**\n * Minimum price in quote units scaled by 1e9 for the ladder range.\n *\n * @generated from field: int64 ladder_price_min_ticks = 1;\n */\n ladderPriceMinTicks: bigint;\n\n /**\n * Maximum price in quote units scaled by 1e9 for the ladder range.\n *\n * @generated from field: int64 ladder_price_max_ticks = 2;\n */\n ladderPriceMaxTicks: bigint;\n\n /**\n * Number of price levels in the ladder.\n *\n * @generated from field: int32 ladder_levels = 3;\n */\n ladderLevels: number;\n\n /**\n * Quantity distribution across ladder levels.\n *\n * @generated from field: triggers.v1.LadderDistribution ladder_distribution = 4;\n */\n ladderDistribution: LadderDistribution;\n\n /**\n * Cumulative filled child-order base quantity scaled by the pair's\n * base_quantity_scale from GetSpotConfig. Zero means no quantity executed,\n * including when the parent completed because all children were canceled.\n *\n * @generated from field: int64 executed_qty_scaled = 5;\n */\n executedQtyScaled: bigint;\n\n /**\n * Number of distinct ladder levels with at least one fill. A partially\n * filled level counts once, including across replacement child orders.\n * This is not the number of fully filled levels.\n *\n * @generated from field: int32 executed_levels = 6;\n */\n executedLevels: number;\n};\n\n/**\n * Describes the message triggers.v1.LadderDetails.\n * Use `create(LadderDetailsSchema)` to create a new message.\n */\nexport const LadderDetailsSchema: GenMessage<LadderDetails> = /*@__PURE__*/\n messageDesc(file_triggers_v1_triggers, 32);\n\n/**\n * Trigger represents current trigger configuration, lifecycle state, and\n * aggregate strategy progress. Use ListTriggerEvents to enumerate child-order\n * actions and inspect append-only lifecycle history.\n *\n * @generated from message triggers.v1.Trigger\n */\nexport type Trigger = Message<\"triggers.v1.Trigger\"> & {\n /**\n * Trigger ID.\n *\n * @generated from field: fixed64 trigger_id = 1;\n */\n triggerId: bigint;\n\n /**\n * Public account or sub-account ID associated with the trigger.\n *\n * @generated from field: fixed64 subaccount_id = 2;\n */\n subaccountId: bigint;\n\n /**\n * Trading symbol numeric identifier.\n *\n * @generated from field: uint32 symbol_id = 3;\n */\n symbolId: number;\n\n /**\n * Current trigger lifecycle status.\n *\n * @generated from field: triggers.v1.TriggerStatus status = 5;\n */\n status: TriggerStatus;\n\n /**\n * Parent order ID for attached-risk triggers; empty for standalone triggers.\n *\n * @generated from field: optional fixed64 parent_order_id = 6;\n */\n parentOrderId?: bigint | undefined;\n\n /**\n * Terminal reason for canceled or failed triggers. Other statuses leave it unset.\n *\n * @generated from oneof triggers.v1.Trigger.terminal_reason\n */\n terminalReason: {\n /**\n * Why an admitted trigger was canceled.\n *\n * @generated from field: triggers.v1.TriggerCancelReason cancel_reason = 7;\n */\n value: TriggerCancelReason;\n case: \"cancelReason\";\n } | {\n /**\n * Why an admitted trigger failed.\n *\n * @generated from field: triggers.v1.TriggerFailureReason failure_reason = 8;\n */\n value: TriggerFailureReason;\n case: \"failureReason\";\n } | { case: undefined; value?: undefined };\n\n /**\n * Child quantity scaled by the pair's base_quantity_scale from GetSpotConfig.\n *\n * @generated from field: int64 qty_scaled = 20;\n */\n qtyScaled: bigint;\n\n /**\n * Fee asset for BUY child orders.\n *\n * @generated from field: orders.v1.FeeAsset fee_asset = 21;\n */\n feeAsset: FeeAsset;\n\n /**\n * Self-trade prevention mode for child orders.\n *\n * @generated from field: orders.v1.SelfTradePreventionMode self_trade_prevention_mode = 22;\n */\n selfTradePreventionMode: SelfTradePreventionMode;\n\n /**\n * Immutable strategy configuration. The selected variant is the trigger\n * category and uses the same shape accepted by CreateTrigger.\n *\n * @generated from oneof triggers.v1.Trigger.configuration\n */\n configuration: {\n /**\n * Stop-loss configuration.\n *\n * @generated from field: triggers.v1.ConditionalTrigger stop_loss = 30;\n */\n value: ConditionalTrigger;\n case: \"stopLoss\";\n } | {\n /**\n * Take-profit configuration.\n *\n * @generated from field: triggers.v1.ConditionalTrigger take_profit = 31;\n */\n value: ConditionalTrigger;\n case: \"takeProfit\";\n } | {\n /**\n * Trailing-stop configuration.\n *\n * @generated from field: triggers.v1.TrailingStopTrigger trailing_stop = 32;\n */\n value: TrailingStopTrigger;\n case: \"trailingStop\";\n } | {\n /**\n * TWAP configuration.\n *\n * @generated from field: triggers.v1.TwapTrigger twap = 33;\n */\n value: TwapTrigger;\n case: \"twap\";\n } | {\n /**\n * Ladder configuration.\n *\n * @generated from field: triggers.v1.LadderTrigger ladder = 34;\n */\n value: LadderTrigger;\n case: \"ladder\";\n } | { case: undefined; value?: undefined };\n\n /**\n * Type-specific runtime state.\n *\n * @generated from oneof triggers.v1.Trigger.runtime_details\n */\n runtimeDetails: {\n /**\n * Stop-loss or take-profit trigger details.\n *\n * @generated from field: triggers.v1.StopDetails stop = 100;\n */\n value: StopDetails;\n case: \"stop\";\n } | {\n /**\n * Trailing-stop trigger details.\n *\n * @generated from field: triggers.v1.TrailingDetails trailing = 101;\n */\n value: TrailingDetails;\n case: \"trailing\";\n } | {\n /**\n * TWAP trigger details.\n *\n * @generated from field: triggers.v1.TwapDetails twap_state = 102;\n */\n value: TwapDetails;\n case: \"twapState\";\n } | {\n /**\n * Ladder trigger details.\n *\n * @generated from field: triggers.v1.LadderDetails ladder_state = 103;\n */\n value: LadderDetails;\n case: \"ladderState\";\n } | { case: undefined; value?: undefined };\n\n /**\n * Client-provided trigger ID for idempotency and correlation.\n *\n * @generated from field: string client_trigger_id = 60;\n */\n clientTriggerId: string;\n\n /**\n * Creation timestamp.\n *\n * @generated from field: google.protobuf.Timestamp created_at = 61;\n */\n createdAt?: Timestamp | undefined;\n\n /**\n * Last update timestamp.\n *\n * @generated from field: google.protobuf.Timestamp updated_at = 62;\n */\n updatedAt?: Timestamp | undefined;\n\n /**\n * Timestamp when the trigger became armed.\n *\n * @generated from field: google.protobuf.Timestamp armed_at = 63;\n */\n armedAt?: Timestamp | undefined;\n\n /**\n * Timestamp when the trigger reached a terminal successful state.\n *\n * @generated from field: google.protobuf.Timestamp completed_at = 64;\n */\n completedAt?: Timestamp | undefined;\n};\n\n/**\n * Describes the message triggers.v1.Trigger.\n * Use `create(TriggerSchema)` to create a new message.\n */\nexport const TriggerSchema: GenMessage<Trigger> = /*@__PURE__*/\n messageDesc(file_triggers_v1_triggers, 33);\n\n/**\n * TriggerType defines the category of standalone trigger.\n *\n * @generated from enum triggers.v1.TriggerType\n */\nexport enum TriggerType {\n /**\n * Trigger type was not provided.\n *\n * @generated from enum value: TRIGGER_TYPE_UNSPECIFIED = 0;\n */\n TRIGGER_TYPE_UNSPECIFIED = 0,\n\n /**\n * Stop-loss: fires when the price crosses a threshold.\n *\n * @generated from enum value: STOP_LOSS = 1;\n */\n STOP_LOSS = 1,\n\n /**\n * Take-profit: fires when the price crosses a threshold.\n *\n * @generated from enum value: TAKE_PROFIT = 2;\n */\n TAKE_PROFIT = 2,\n\n /**\n * Trailing stop: dynamic stop that trails price by a distance.\n *\n * @generated from enum value: TRAILING_STOP = 3;\n */\n TRAILING_STOP = 3,\n\n /**\n * TWAP: Time-Weighted Average Price execution over a duration.\n *\n * @generated from enum value: TWAP = 4;\n */\n TWAP = 4,\n\n /**\n * Ladder/Scaled: Multiple orders placed across a price range.\n *\n * @generated from enum value: LADDER = 5;\n */\n LADDER = 5,\n}\n\n/**\n * Describes the enum triggers.v1.TriggerType.\n */\nexport const TriggerTypeSchema: GenEnum<TriggerType> = /*@__PURE__*/\n enumDesc(file_triggers_v1_triggers, 0);\n\n/**\n * TriggerStatus represents the lifecycle state of a trigger.\n *\n * @generated from enum triggers.v1.TriggerStatus\n */\nexport enum TriggerStatus {\n /**\n * Trigger status was not provided.\n *\n * @generated from enum value: STATUS_UNSPECIFIED = 0;\n */\n STATUS_UNSPECIFIED = 0,\n\n /**\n * Trigger was created and is pending activation.\n *\n * @generated from enum value: STATUS_CREATED = 1;\n */\n STATUS_CREATED = 1,\n\n /**\n * Trigger admitted and actively evaluating conditions.\n *\n * @generated from enum value: STATUS_ARMED = 2;\n */\n STATUS_ARMED = 2,\n\n /**\n * Trigger is actively executing (for example, TWAP slices in progress).\n *\n * @generated from enum value: STATUS_RUNNING = 3;\n */\n STATUS_RUNNING = 3,\n\n /**\n * Trigger completed successfully (all child orders placed/filled).\n *\n * @generated from enum value: STATUS_COMPLETED = 4;\n */\n STATUS_COMPLETED = 4,\n\n /**\n * Trigger was canceled by user.\n *\n * @generated from enum value: STATUS_CANCELED = 5;\n */\n STATUS_CANCELED = 5,\n\n /**\n * Trigger failed (for example, reservation failure, child order rejection).\n *\n * @generated from enum value: STATUS_FAILED = 6;\n */\n STATUS_FAILED = 6,\n\n /**\n * Trigger is paused (user-initiated, can be resumed).\n *\n * @generated from enum value: STATUS_PAUSED = 7;\n */\n STATUS_PAUSED = 7,\n}\n\n/**\n * Describes the enum triggers.v1.TriggerStatus.\n */\nexport const TriggerStatusSchema: GenEnum<TriggerStatus> = /*@__PURE__*/\n enumDesc(file_triggers_v1_triggers, 1);\n\n/**\n * TriggerEventType defines append-only trigger lifecycle events for history.\n *\n * @generated from enum triggers.v1.TriggerEventType\n */\nexport enum TriggerEventType {\n /**\n * Trigger event type was not provided.\n *\n * @generated from enum value: EVENT_UNSPECIFIED = 0;\n */\n EVENT_UNSPECIFIED = 0,\n\n /**\n * Trigger fired and may have created a child order.\n *\n * @generated from enum value: EVENT_FIRED = 1;\n */\n EVENT_FIRED = 1,\n\n /**\n * Trigger was canceled.\n *\n * @generated from enum value: EVENT_CANCELED = 2;\n */\n EVENT_CANCELED = 2,\n\n /**\n * Trigger configuration or lifecycle state was updated.\n *\n * @generated from enum value: EVENT_UPDATED = 3;\n */\n EVENT_UPDATED = 3,\n\n /**\n * Trigger became terminal after its next child order could not be admitted.\n *\n * @generated from enum value: EVENT_FAILED = 4;\n */\n EVENT_FAILED = 4,\n\n /**\n * A standalone trailing trigger's activation condition was satisfied and tracking began.\n *\n * @generated from enum value: EVENT_ACTIVATED = 5;\n */\n EVENT_ACTIVATED = 5,\n}\n\n/**\n * Describes the enum triggers.v1.TriggerEventType.\n */\nexport const TriggerEventTypeSchema: GenEnum<TriggerEventType> = /*@__PURE__*/\n enumDesc(file_triggers_v1_triggers, 2);\n\n/**\n * TriggerCancelReason identifies why an admitted trigger became canceled.\n *\n * @generated from enum triggers.v1.TriggerCancelReason\n */\nexport enum TriggerCancelReason {\n /**\n * No cancellation reason was provided.\n *\n * @generated from enum value: TRIGGER_CANCEL_REASON_UNSPECIFIED = 0;\n */\n UNSPECIFIED = 0,\n\n /**\n * The user explicitly canceled the trigger.\n *\n * @generated from enum value: TRIGGER_CANCEL_REASON_USER_REQUEST = 1;\n */\n USER_REQUEST = 1,\n\n /**\n * A linked one-cancels-the-other trigger fired.\n *\n * @generated from enum value: TRIGGER_CANCEL_REASON_OCO = 2;\n */\n OCO = 2,\n\n /**\n * The parent order ended without a fill, so its attached trigger was canceled.\n *\n * @generated from enum value: TRIGGER_CANCEL_REASON_PARENT_CANCELED_NO_FILL = 3;\n */\n PARENT_CANCELED_NO_FILL = 3,\n\n /**\n * The terminal state did not contain a cancellation reason.\n *\n * @generated from enum value: TRIGGER_CANCEL_REASON_MISSING_REASON_CODE = 998;\n */\n MISSING_REASON_CODE = 998,\n\n /**\n * An internal invariant or processing failure canceled the trigger.\n *\n * @generated from enum value: TRIGGER_CANCEL_REASON_INTERNAL_ERROR = 999;\n */\n INTERNAL_ERROR = 999,\n}\n\n/**\n * Describes the enum triggers.v1.TriggerCancelReason.\n */\nexport const TriggerCancelReasonSchema: GenEnum<TriggerCancelReason> = /*@__PURE__*/\n enumDesc(file_triggers_v1_triggers, 3);\n\n/**\n * TriggerFailureReason identifies why an admitted trigger became failed.\n *\n * @generated from enum triggers.v1.TriggerFailureReason\n */\nexport enum TriggerFailureReason {\n /**\n * No failure reason was provided.\n *\n * @generated from enum value: TRIGGER_FAILURE_REASON_UNSPECIFIED = 0;\n */\n UNSPECIFIED = 0,\n\n /**\n * The requested trading pair was not recognized.\n *\n * @generated from enum value: TRIGGER_FAILURE_REASON_UNKNOWN_SYMBOL = 1;\n */\n UNKNOWN_SYMBOL = 1,\n\n /**\n * The trading pair was not accepting new orders.\n *\n * @generated from enum value: TRIGGER_FAILURE_REASON_PAIR_DISABLED = 2;\n */\n PAIR_DISABLED = 2,\n\n /**\n * The child order value was below the pair's minimum notional.\n *\n * @generated from enum value: TRIGGER_FAILURE_REASON_MIN_NOTIONAL = 3;\n */\n MIN_NOTIONAL = 3,\n\n /**\n * The child order price was not aligned to the pair's tick size.\n *\n * @generated from enum value: TRIGGER_FAILURE_REASON_TICK_SIZE = 4;\n */\n TICK_SIZE = 4,\n\n /**\n * The account did not have enough available funds for the child order.\n *\n * @generated from enum value: TRIGGER_FAILURE_REASON_INSUFFICIENT_FUNDS = 5;\n */\n INSUFFICIENT_FUNDS = 5,\n\n /**\n * The child order would have exceeded an account risk limit.\n *\n * @generated from enum value: TRIGGER_FAILURE_REASON_RISK_LIMIT = 6;\n */\n RISK_LIMIT = 6,\n\n /**\n * The child order reused a client order ID that was already accepted.\n *\n * @generated from enum value: TRIGGER_FAILURE_REASON_DUPLICATE_CLIENT_ID = 7;\n */\n DUPLICATE_CLIENT_ID = 7,\n\n /**\n * Trading was halted for the requested market.\n *\n * @generated from enum value: TRIGGER_FAILURE_REASON_MARKET_HALTED = 8;\n */\n MARKET_HALTED = 8,\n\n /**\n * The market could not accept the child order at that time.\n *\n * @generated from enum value: TRIGGER_FAILURE_REASON_ENGINE_BUSY = 9;\n */\n ENGINE_BUSY = 9,\n\n /**\n * The account associated with the trigger was not recognized.\n *\n * @generated from enum value: TRIGGER_FAILURE_REASON_ACCOUNT_UNKNOWN = 10;\n */\n ACCOUNT_UNKNOWN = 10,\n\n /**\n * An order referenced by the trigger was not found.\n *\n * @generated from enum value: TRIGGER_FAILURE_REASON_ORDER_UNKNOWN = 11;\n */\n ORDER_UNKNOWN = 11,\n\n /**\n * The post-only child order would have immediately taken liquidity.\n *\n * @generated from enum value: TRIGGER_FAILURE_REASON_POST_ONLY_CROSS = 12;\n */\n POST_ONLY_CROSS = 12,\n\n /**\n * The reduce-only child order would not have reduced the position.\n *\n * @generated from enum value: TRIGGER_FAILURE_REASON_REDUCE_ONLY_BLOCKED = 13;\n */\n REDUCE_ONLY_BLOCKED = 13,\n\n /**\n * The child order price was outside the allowed market price band.\n *\n * @generated from enum value: TRIGGER_FAILURE_REASON_PRICE_BAND_VIOLATION = 14;\n */\n PRICE_BAND_VIOLATION = 14,\n\n /**\n * The market child order exceeded the configured execution cap.\n *\n * @generated from enum value: TRIGGER_FAILURE_REASON_MARKET_CAP_VIOLATION = 15;\n */\n MARKET_CAP_VIOLATION = 15,\n\n /**\n * The order book had no liquidity available for the child order.\n *\n * @generated from enum value: TRIGGER_FAILURE_REASON_EMPTY_BOOK = 16;\n */\n EMPTY_BOOK = 16,\n\n /**\n * The order book could not fill the entire fill-or-kill child order.\n *\n * @generated from enum value: TRIGGER_FAILURE_REASON_FOK_INSUFFICIENT_LIQUIDITY = 17;\n */\n FOK_INSUFFICIENT_LIQUIDITY = 17,\n\n /**\n * The selected fee asset was not permitted for the child order.\n *\n * @generated from enum value: TRIGGER_FAILURE_REASON_FEE_ASSET_NOT_ALLOWED = 18;\n */\n FEE_ASSET_NOT_ALLOWED = 18,\n\n /**\n * A current market price was unavailable for sizing or validation.\n *\n * @generated from enum value: TRIGGER_FAILURE_REASON_MARKET_PRICE_UNAVAILABLE = 19;\n */\n MARKET_PRICE_UNAVAILABLE = 19,\n\n /**\n * The quote used to size or validate the child order was no longer current.\n *\n * @generated from enum value: TRIGGER_FAILURE_REASON_STALE_QUOTE = 20;\n */\n STALE_QUOTE = 20,\n\n /**\n * The child order quantity was below the pair's minimum quantity.\n *\n * @generated from enum value: TRIGGER_FAILURE_REASON_MIN_QUANTITY = 21;\n */\n MIN_QUANTITY = 21,\n\n /**\n * The child order quantity was not aligned to the pair's step size.\n *\n * @generated from enum value: TRIGGER_FAILURE_REASON_STEP_SIZE = 22;\n */\n STEP_SIZE = 22,\n\n /**\n * The child order sizing fields did not form a valid sizing request.\n *\n * @generated from enum value: TRIGGER_FAILURE_REASON_INVALID_SIZING = 23;\n */\n INVALID_SIZING = 23,\n\n /**\n * The maximum quote debit could not fund the minimum valid child order.\n *\n * @generated from enum value: TRIGGER_FAILURE_REASON_MAX_QUOTE_DEBIT_TOO_SMALL = 24;\n */\n MAX_QUOTE_DEBIT_TOO_SMALL = 24,\n\n /**\n * The applicable fee rate exceeded the maximum accepted by the trigger.\n *\n * @generated from enum value: TRIGGER_FAILURE_REASON_FEE_CEILING_EXCEEDED = 25;\n */\n FEE_CEILING_EXCEEDED = 25,\n\n /**\n * The configured trigger price was invalid.\n *\n * @generated from enum value: TRIGGER_FAILURE_REASON_TRIGGER_PRICE_INVALID = 40;\n */\n TRIGGER_PRICE_INVALID = 40,\n\n /**\n * The selected trigger price source was not supported.\n *\n * @generated from enum value: TRIGGER_FAILURE_REASON_TRIGGER_PRICE_SOURCE_UNSUPPORTED = 41;\n */\n TRIGGER_PRICE_SOURCE_UNSUPPORTED = 41,\n\n /**\n * The configured trailing distance was invalid.\n *\n * @generated from enum value: TRIGGER_FAILURE_REASON_TRAILING_DISTANCE_INVALID = 42;\n */\n TRAILING_DISTANCE_INVALID = 42,\n\n /**\n * The requested modification required replacing the trigger instead.\n *\n * @generated from enum value: TRIGGER_FAILURE_REASON_MODIFICATION_REQUIRES_REPLACE = 43;\n */\n MODIFICATION_REQUIRES_REPLACE = 43,\n\n /**\n * The referenced order had already reached a terminal state.\n *\n * @generated from enum value: TRIGGER_FAILURE_REASON_ORDER_ALREADY_TERMINAL = 44;\n */\n ORDER_ALREADY_TERMINAL = 44,\n\n /**\n * An idempotency key was reused with different request details.\n *\n * @generated from enum value: TRIGGER_FAILURE_REASON_CONFLICT_IDEMPOTENCY_KEY_REUSE = 45;\n */\n CONFLICT_IDEMPOTENCY_KEY_REUSE = 45,\n\n /**\n * The request exceeded an applicable rate limit.\n *\n * @generated from enum value: TRIGGER_FAILURE_REASON_RATE_LIMITED = 46;\n */\n RATE_LIMITED = 46,\n\n /**\n * Account policy did not permit spot trading.\n *\n * @generated from enum value: TRIGGER_FAILURE_REASON_POLICY_SPOT_TRADE_DENY = 47;\n */\n POLICY_SPOT_TRADE_DENY = 47,\n\n /**\n * Account policy did not permit trading in this market.\n *\n * @generated from enum value: TRIGGER_FAILURE_REASON_POLICY_MARKET_DENY = 48;\n */\n POLICY_MARKET_DENY = 48,\n\n /**\n * The child order would have exceeded the policy notional limit.\n *\n * @generated from enum value: TRIGGER_FAILURE_REASON_POLICY_MAX_NOTIONAL = 49;\n */\n POLICY_MAX_NOTIONAL = 49,\n\n /**\n * The child order would have exceeded the policy open-order limit.\n *\n * @generated from enum value: TRIGGER_FAILURE_REASON_POLICY_MAX_OPEN_ORDERS = 50;\n */\n POLICY_MAX_OPEN_ORDERS = 50,\n\n /**\n * Account policy had halted trading.\n *\n * @generated from enum value: TRIGGER_FAILURE_REASON_POLICY_TRADING_HALTED = 51;\n */\n POLICY_TRADING_HALTED = 51,\n\n /**\n * The terminal state did not contain a failure reason.\n *\n * @generated from enum value: TRIGGER_FAILURE_REASON_MISSING_REASON_CODE = 998;\n */\n MISSING_REASON_CODE = 998,\n\n /**\n * An internal invariant or processing failure caused the trigger to fail.\n *\n * @generated from enum value: TRIGGER_FAILURE_REASON_INTERNAL_ERROR = 999;\n */\n INTERNAL_ERROR = 999,\n}\n\n/**\n * Describes the enum triggers.v1.TriggerFailureReason.\n */\nexport const TriggerFailureReasonSchema: GenEnum<TriggerFailureReason> = /*@__PURE__*/\n enumDesc(file_triggers_v1_triggers, 4);\n\n/**\n * LadderDistribution defines how quantity is distributed across ladder levels.\n *\n * @generated from enum triggers.v1.LadderDistribution\n */\nexport enum LadderDistribution {\n /**\n * Ladder distribution was not provided.\n *\n * @generated from enum value: LADDER_DISTRIBUTION_UNSPECIFIED = 0;\n */\n LADDER_DISTRIBUTION_UNSPECIFIED = 0,\n\n /**\n * Equal quantity at each level.\n *\n * @generated from enum value: LINEAR = 1;\n */\n LINEAR = 1,\n\n /**\n * More quantity toward the edges (U-shape).\n *\n * @generated from enum value: GEOMETRIC = 2;\n */\n GEOMETRIC = 2,\n\n /**\n * More quantity at favorable prices.\n *\n * @generated from enum value: WEIGHTED_FAVORABLE = 3;\n */\n WEIGHTED_FAVORABLE = 3,\n}\n\n/**\n * Describes the enum triggers.v1.LadderDistribution.\n */\nexport const LadderDistributionSchema: GenEnum<LadderDistribution> = /*@__PURE__*/\n enumDesc(file_triggers_v1_triggers, 5);\n\n/**\n * @generated from service triggers.v1.TriggersService\n */\nexport const TriggersService: GenService<{\n /**\n * Create a standalone trigger (stop order, TWAP, ladder).\n *\n * @generated from rpc triggers.v1.TriggersService.CreateTrigger\n */\n createTrigger: {\n methodKind: \"unary\";\n input: typeof CreateTriggerRequestSchema;\n output: typeof CreateTriggerResponseSchema;\n },\n /**\n * Get a trigger by ID.\n *\n * @generated from rpc triggers.v1.TriggersService.GetTrigger\n */\n getTrigger: {\n methodKind: \"unary\";\n input: typeof GetTriggerRequestSchema;\n output: typeof GetTriggerResponseSchema;\n },\n /**\n * List triggers for a sub-account with optional filters.\n *\n * @generated from rpc triggers.v1.TriggersService.ListTriggers\n */\n listTriggers: {\n methodKind: \"unary\";\n input: typeof ListTriggersRequestSchema;\n output: typeof ListTriggersResponseSchema;\n },\n /**\n * List trigger events (append-only history).\n *\n * @generated from rpc triggers.v1.TriggersService.ListTriggerEvents\n */\n listTriggerEvents: {\n methodKind: \"unary\";\n input: typeof ListTriggerEventsRequestSchema;\n output: typeof ListTriggerEventsResponseSchema;\n },\n /**\n * Cancel a trigger.\n *\n * @generated from rpc triggers.v1.TriggersService.CancelTrigger\n */\n cancelTrigger: {\n methodKind: \"unary\";\n input: typeof CancelTriggerRequestSchema;\n output: typeof CancelTriggerResponseSchema;\n },\n /**\n * Modify a trigger (limited patch).\n *\n * @generated from rpc triggers.v1.TriggersService.ModifyTrigger\n */\n modifyTrigger: {\n methodKind: \"unary\";\n input: typeof ModifyTriggerRequestSchema;\n output: typeof ModifyTriggerResponseSchema;\n },\n /**\n * Pause a trigger (sets status=PAUSED).\n *\n * @generated from rpc triggers.v1.TriggersService.PauseTrigger\n */\n pauseTrigger: {\n methodKind: \"unary\";\n input: typeof PauseTriggerRequestSchema;\n output: typeof PauseTriggerResponseSchema;\n },\n /**\n * Resume a paused trigger (sets status back to ARMED/RUNNING as appropriate).\n *\n * @generated from rpc triggers.v1.TriggersService.ResumeTrigger\n */\n resumeTrigger: {\n methodKind: \"unary\";\n input: typeof ResumeTriggerRequestSchema;\n output: typeof ResumeTriggerResponseSchema;\n },\n}> = /*@__PURE__*/\n serviceDesc(file_triggers_v1_triggers, 0);\n\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"candles.schemas.d.ts","names":[],"sources":["../../../src/services/candles/candles.schemas.ts"],"mappings":";;;;;cAQa,iBAAe,EAAA;KAEhB,YAAY,EAAE,mBAAmB;KAiBxC;EAAkB;EAAiB;;iBAsBxB,sBAAsB,QAAQ,YAAS,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAqB1C,iCAAwB;iBAuCrB,2BAA2B,QAAQ,YAAS,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"candles.schemas.d.ts","names":[],"sources":["../../../src/services/candles/candles.schemas.ts"],"mappings":";;;;;cAQa,iBAAe,EAAA;KAEhB,YAAY,EAAE,mBAAmB;KAiBxC;EAAkB;EAAiB;;iBAsBxB,sBAAsB,QAAQ,YAAS,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAqB1C,iCAAwB;iBAuCrB,2BAA2B,QAAQ,YAAS,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAmC5C,8BAA8B,QAAQ,YAAS,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA4CnD,SAAS,EAAE,YAAY,kBAAkB;KAGzC,YAAY,EAAE,YAAY,kBAAkB;KAC5C,iBAAiB,EAAE,YAAY,kBAAkB;KAGjD,oBAAoB,EAAE,YAAY,kBAAkB;iBAyBhD,gCAA4B,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAIhC,kBAAkB,EAAE,WAAW,kBAAkB;KAEjD,yBAAyB,EAAE,WAAW,kBAAkB"}
|
|
@@ -41,7 +41,7 @@ function createCandleRowSchema(scales) {
|
|
|
41
41
|
high: scaledToDecimalOutput(data.high, priceScale),
|
|
42
42
|
low: scaledToDecimalOutput(data.low, priceScale),
|
|
43
43
|
close: scaledToDecimalOutput(data.close, priceScale),
|
|
44
|
-
volume: scaledToDecimalOutput(data.volume, scales.
|
|
44
|
+
volume: scaledToDecimalOutput(data.volume, scales.marketDataVolume(data.symbolId)),
|
|
45
45
|
quoteVolume: data.quoteVolume,
|
|
46
46
|
isClosed: data.isClosed
|
|
47
47
|
};
|
|
@@ -82,7 +82,8 @@ function scaledArrayToDecimal(values, scale) {
|
|
|
82
82
|
function createCandleColumnarSchema(scales) {
|
|
83
83
|
return v.pipe(CandleColumnarRawSchema, v.transform((d) => {
|
|
84
84
|
const priceScale = scales.price();
|
|
85
|
-
const
|
|
85
|
+
const referencePriceScale = scales.referencePrice(d.symbolId);
|
|
86
|
+
const volumeScale = scales.marketDataVolume(d.symbolId);
|
|
86
87
|
const referenceTsSec = d.referenceTsSec ?? [];
|
|
87
88
|
const hasReference = referenceTsSec.length > 0;
|
|
88
89
|
return {
|
|
@@ -98,10 +99,10 @@ function createCandleColumnarSchema(scales) {
|
|
|
98
99
|
nextPageToken: d.nextPageToken,
|
|
99
100
|
reference: hasReference ? {
|
|
100
101
|
time: referenceTsSec.map((t) => Number(t)),
|
|
101
|
-
open: scaledArrayToDecimal(d.referenceOpen ?? [],
|
|
102
|
-
high: scaledArrayToDecimal(d.referenceHigh ?? [],
|
|
103
|
-
low: scaledArrayToDecimal(d.referenceLow ?? [],
|
|
104
|
-
close: scaledArrayToDecimal(d.referenceClose ?? [],
|
|
102
|
+
open: scaledArrayToDecimal(d.referenceOpen ?? [], referencePriceScale),
|
|
103
|
+
high: scaledArrayToDecimal(d.referenceHigh ?? [], referencePriceScale),
|
|
104
|
+
low: scaledArrayToDecimal(d.referenceLow ?? [], referencePriceScale),
|
|
105
|
+
close: scaledArrayToDecimal(d.referenceClose ?? [], referencePriceScale),
|
|
105
106
|
volume: scaledArrayToDecimal(d.referenceVolume ?? [], volumeScale)
|
|
106
107
|
} : null
|
|
107
108
|
};
|
|
@@ -110,7 +111,8 @@ function createCandleColumnarSchema(scales) {
|
|
|
110
111
|
function createCandleColumnarIntSchema(scales) {
|
|
111
112
|
return v.pipe(CandleColumnarRawSchema, v.transform((d) => {
|
|
112
113
|
const priceScale = scales.price();
|
|
113
|
-
const
|
|
114
|
+
const referencePriceScale = scales.referencePrice(d.symbolId);
|
|
115
|
+
const volumeScale = scales.marketDataVolume(d.symbolId);
|
|
114
116
|
const referenceTsSec = d.referenceTsSec ?? [];
|
|
115
117
|
return {
|
|
116
118
|
symbolId: d.symbolId,
|
|
@@ -125,10 +127,10 @@ function createCandleColumnarIntSchema(scales) {
|
|
|
125
127
|
nextPageToken: d.nextPageToken,
|
|
126
128
|
reference: referenceTsSec.length > 0 ? {
|
|
127
129
|
tsSec: referenceTsSec.map((t) => Number(t)),
|
|
128
|
-
open: scaledArrayToDecimal(d.referenceOpen ?? [],
|
|
129
|
-
high: scaledArrayToDecimal(d.referenceHigh ?? [],
|
|
130
|
-
low: scaledArrayToDecimal(d.referenceLow ?? [],
|
|
131
|
-
close: scaledArrayToDecimal(d.referenceClose ?? [],
|
|
130
|
+
open: scaledArrayToDecimal(d.referenceOpen ?? [], referencePriceScale),
|
|
131
|
+
high: scaledArrayToDecimal(d.referenceHigh ?? [], referencePriceScale),
|
|
132
|
+
low: scaledArrayToDecimal(d.referenceLow ?? [], referencePriceScale),
|
|
133
|
+
close: scaledArrayToDecimal(d.referenceClose ?? [], referencePriceScale),
|
|
132
134
|
volume: scaledArrayToDecimal(d.referenceVolume ?? [], volumeScale)
|
|
133
135
|
} : null
|
|
134
136
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"candles.schemas.js","names":[],"sources":["../../../src/services/candles/candles.schemas.ts"],"sourcesContent":["import { SymbolIdInputSchema } from \"../shared.js\";\nimport * as v from \"valibot\";\nimport type { DecodedEnum } from \"../../utils/types.js\";\nimport { OptionalTimestampSecondsInputSchema } from \"../../shared/schemas.js\";\nimport { enumLabel } from \"../../shared/proto-enum-codec.js\";\nimport { scaledToDecimalOutput, type SdkScales } from \"../../shared/decimal-surface.js\";\nimport { TIMEFRAMES, TimeframeCodec } from \"./candles.codecs.js\";\n\nexport const TimeframeSchema = v.picklist(TIMEFRAMES);\n\nexport type Timeframe = v.InferOutput<typeof TimeframeSchema>;\n\nfunction timeframeFromProto(value: number): DecodedEnum<Timeframe> {\n return enumLabel(TimeframeCodec.protoToOutput, value);\n}\n\nconst TimeframeInputSchema = v.pipe(\n TimeframeSchema,\n v.transform((value) => TimeframeCodec.inputToProto[value]),\n);\n\nconst OptionalPositiveNumberSchema = v.optional(\n v.pipe(v.number(), v.integer(), v.gtValue(0), v.maxValue(10_000)),\n);\n\nconst OptionalBooleanSchema = v.optional(v.boolean(), false);\n\ntype TimestampInit = { seconds: bigint; nanos: number };\n\nfunction timestampFromTsSec(tsSec: bigint): TimestampInit {\n return { seconds: tsSec, nanos: 0 };\n}\n\nconst CandleRowRawSchema = v.object({\n symbolId: v.number(),\n timeframe: v.pipe(\n v.number(),\n v.transform((v) => timeframeFromProto(v)),\n ),\n tsSec: v.bigint(),\n open: v.bigint(),\n high: v.bigint(),\n low: v.bigint(),\n close: v.bigint(),\n volume: v.bigint(),\n quoteVolume: v.string(),\n isClosed: v.optional(v.boolean(), false),\n});\n\nexport function createCandleRowSchema(scales: SdkScales) {\n return v.pipe(\n CandleRowRawSchema,\n v.transform((data) => {\n const priceScale = scales.price();\n return {\n symbolId: data.symbolId,\n timeframe: data.timeframe,\n time: Number(data.tsSec),\n open: scaledToDecimalOutput(data.open, priceScale),\n high: scaledToDecimalOutput(data.high, priceScale),\n low: scaledToDecimalOutput(data.low, priceScale),\n close: scaledToDecimalOutput(data.close, priceScale),\n volume: scaledToDecimalOutput(data.volume, scales.baseQty(data.symbolId)),\n quoteVolume: data.quoteVolume,\n isClosed: data.isClosed,\n };\n }),\n );\n}\n\nexport const createCandleRowIntSchema = createCandleRowSchema;\n\nexport const CandlePointSchema = v.object({\n tsSec: v.bigint(),\n open: v.bigint(),\n high: v.bigint(),\n low: v.bigint(),\n close: v.bigint(),\n volume: v.bigint(),\n quoteVolume: v.string(),\n isClosed: v.optional(v.boolean(), false),\n});\n\nconst CandleColumnarRawSchema = v.object({\n symbolId: v.number(),\n timeframe: v.pipe(\n v.number(),\n v.transform((v) => timeframeFromProto(v)),\n ),\n tsSec: v.array(v.bigint()),\n open: v.array(v.bigint()),\n high: v.array(v.bigint()),\n low: v.array(v.bigint()),\n close: v.array(v.bigint()),\n volume: v.array(v.bigint()),\n quoteVolume: v.array(v.string()),\n referenceTsSec: v.optional(v.array(v.bigint()), []),\n referenceOpen: v.optional(v.array(v.bigint()), []),\n referenceHigh: v.optional(v.array(v.bigint()), []),\n referenceLow: v.optional(v.array(v.bigint()), []),\n referenceClose: v.optional(v.array(v.bigint()), []),\n referenceVolume: v.optional(v.array(v.bigint()), []),\n nextPageToken: v.optional(v.string(), \"\"),\n});\n\nfunction scaledArrayToDecimal(values: bigint[], scale: number): string[] {\n return values.map((value) => scaledToDecimalOutput(value, scale));\n}\n\nexport function createCandleColumnarSchema(scales: SdkScales) {\n return v.pipe(\n CandleColumnarRawSchema,\n v.transform((d) => {\n const priceScale = scales.price();\n const volumeScale = scales.baseQty(d.symbolId);\n const referenceTsSec = d.referenceTsSec ?? [];\n const hasReference = referenceTsSec.length > 0;\n return {\n symbolId: d.symbolId,\n timeframe: d.timeframe,\n time: d.tsSec.map((t) => Number(t)),\n open: scaledArrayToDecimal(d.open, priceScale),\n high: scaledArrayToDecimal(d.high, priceScale),\n low: scaledArrayToDecimal(d.low, priceScale),\n close: scaledArrayToDecimal(d.close, priceScale),\n volume: scaledArrayToDecimal(d.volume, volumeScale),\n quoteVolume: d.quoteVolume,\n nextPageToken: d.nextPageToken,\n reference: hasReference\n ? {\n time: referenceTsSec.map((t) => Number(t)),\n open: scaledArrayToDecimal(d.referenceOpen ?? [], priceScale),\n high: scaledArrayToDecimal(d.referenceHigh ?? [], priceScale),\n low: scaledArrayToDecimal(d.referenceLow ?? [], priceScale),\n close: scaledArrayToDecimal(d.referenceClose ?? [], priceScale),\n volume: scaledArrayToDecimal(d.referenceVolume ?? [], volumeScale),\n }\n : null,\n };\n }),\n );\n}\n\nexport function createCandleColumnarIntSchema(scales: SdkScales) {\n return v.pipe(\n CandleColumnarRawSchema,\n v.transform((d) => {\n const priceScale = scales.price();\n const volumeScale = scales.baseQty(d.symbolId);\n const referenceTsSec = d.referenceTsSec ?? [];\n return {\n symbolId: d.symbolId,\n timeframe: d.timeframe,\n tsSec: d.tsSec.map((t) => Number(t)),\n open: scaledArrayToDecimal(d.open, priceScale),\n high: scaledArrayToDecimal(d.high, priceScale),\n low: scaledArrayToDecimal(d.low, priceScale),\n close: scaledArrayToDecimal(d.close, priceScale),\n volume: scaledArrayToDecimal(d.volume, volumeScale),\n quoteVolume: d.quoteVolume,\n nextPageToken: d.nextPageToken,\n reference:\n referenceTsSec.length > 0\n ? {\n tsSec: referenceTsSec.map((t) => Number(t)),\n open: scaledArrayToDecimal(d.referenceOpen ?? [], priceScale),\n high: scaledArrayToDecimal(d.referenceHigh ?? [], priceScale),\n low: scaledArrayToDecimal(d.referenceLow ?? [], priceScale),\n close: scaledArrayToDecimal(d.referenceClose ?? [], priceScale),\n volume: scaledArrayToDecimal(d.referenceVolume ?? [], volumeScale),\n }\n : null,\n };\n }),\n );\n}\n\nexport type Candle = v.InferOutput<ReturnType<typeof createCandleRowSchema>>;\nexport type CandleInput = v.InferInput<ReturnType<typeof createCandleRowSchema>>;\nexport type CandleIntInput = v.InferInput<ReturnType<typeof createCandleRowIntSchema>>;\nexport type CandleInt = v.InferOutput<ReturnType<typeof createCandleRowIntSchema>>;\nexport type CandleColumnar = v.InferOutput<ReturnType<typeof createCandleColumnarSchema>>;\nexport type CandleColumnarInput = v.InferInput<ReturnType<typeof createCandleColumnarSchema>>;\nexport type CandleColumnarIntInput = v.InferInput<ReturnType<typeof createCandleColumnarIntSchema>>;\nexport type CandleColumnarInt = v.InferOutput<ReturnType<typeof createCandleColumnarIntSchema>>;\n\nexport const ListCandlesInputSchema = v.pipe(\n v.object({\n symbolId: SymbolIdInputSchema,\n timeframe: TimeframeInputSchema,\n limit: OptionalPositiveNumberSchema,\n includeIncomplete: v.optional(v.boolean(), false),\n includeReference: OptionalBooleanSchema,\n startTsSec: OptionalTimestampSecondsInputSchema,\n endTsSec: OptionalTimestampSecondsInputSchema,\n pageToken: v.optional(v.pipe(v.string(), v.trim()), \"\"),\n }),\n v.transform((d) => ({\n symbolId: d.symbolId,\n timeframe: d.timeframe,\n limit: d.limit,\n includeIncomplete: d.includeIncomplete,\n includeReference: d.includeReference,\n startTime: d.startTsSec != null ? timestampFromTsSec(d.startTsSec) : undefined,\n endTime: d.endTsSec != null ? timestampFromTsSec(d.endTsSec) : undefined,\n pageToken: d.pageToken,\n })),\n);\n\nexport function createListCandlesInputSchema() {\n return ListCandlesInputSchema;\n}\n\nexport type GetCandlesInput = v.InferInput<ReturnType<typeof createListCandlesInputSchema>>;\nexport const createGetCandlesColumnsInputSchema = createListCandlesInputSchema;\nexport type GetCandlesColumnsInput = v.InferInput<ReturnType<typeof createListCandlesInputSchema>>;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"candles.schemas.js","names":[],"sources":["../../../src/services/candles/candles.schemas.ts"],"sourcesContent":["import { SymbolIdInputSchema } from \"../shared.js\";\nimport * as v from \"valibot\";\nimport type { DecodedEnum } from \"../../utils/types.js\";\nimport { OptionalTimestampSecondsInputSchema } from \"../../shared/schemas.js\";\nimport { enumLabel } from \"../../shared/proto-enum-codec.js\";\nimport { scaledToDecimalOutput, type SdkScales } from \"../../shared/decimal-surface.js\";\nimport { TIMEFRAMES, TimeframeCodec } from \"./candles.codecs.js\";\n\nexport const TimeframeSchema = v.picklist(TIMEFRAMES);\n\nexport type Timeframe = v.InferOutput<typeof TimeframeSchema>;\n\nfunction timeframeFromProto(value: number): DecodedEnum<Timeframe> {\n return enumLabel(TimeframeCodec.protoToOutput, value);\n}\n\nconst TimeframeInputSchema = v.pipe(\n TimeframeSchema,\n v.transform((value) => TimeframeCodec.inputToProto[value]),\n);\n\nconst OptionalPositiveNumberSchema = v.optional(\n v.pipe(v.number(), v.integer(), v.gtValue(0), v.maxValue(10_000)),\n);\n\nconst OptionalBooleanSchema = v.optional(v.boolean(), false);\n\ntype TimestampInit = { seconds: bigint; nanos: number };\n\nfunction timestampFromTsSec(tsSec: bigint): TimestampInit {\n return { seconds: tsSec, nanos: 0 };\n}\n\nconst CandleRowRawSchema = v.object({\n symbolId: v.number(),\n timeframe: v.pipe(\n v.number(),\n v.transform((v) => timeframeFromProto(v)),\n ),\n tsSec: v.bigint(),\n open: v.bigint(),\n high: v.bigint(),\n low: v.bigint(),\n close: v.bigint(),\n volume: v.bigint(),\n quoteVolume: v.string(),\n isClosed: v.optional(v.boolean(), false),\n});\n\nexport function createCandleRowSchema(scales: SdkScales) {\n return v.pipe(\n CandleRowRawSchema,\n v.transform((data) => {\n const priceScale = scales.price();\n return {\n symbolId: data.symbolId,\n timeframe: data.timeframe,\n time: Number(data.tsSec),\n open: scaledToDecimalOutput(data.open, priceScale),\n high: scaledToDecimalOutput(data.high, priceScale),\n low: scaledToDecimalOutput(data.low, priceScale),\n close: scaledToDecimalOutput(data.close, priceScale),\n volume: scaledToDecimalOutput(data.volume, scales.marketDataVolume(data.symbolId)),\n quoteVolume: data.quoteVolume,\n isClosed: data.isClosed,\n };\n }),\n );\n}\n\nexport const createCandleRowIntSchema = createCandleRowSchema;\n\nexport const CandlePointSchema = v.object({\n tsSec: v.bigint(),\n open: v.bigint(),\n high: v.bigint(),\n low: v.bigint(),\n close: v.bigint(),\n volume: v.bigint(),\n quoteVolume: v.string(),\n isClosed: v.optional(v.boolean(), false),\n});\n\nconst CandleColumnarRawSchema = v.object({\n symbolId: v.number(),\n timeframe: v.pipe(\n v.number(),\n v.transform((v) => timeframeFromProto(v)),\n ),\n tsSec: v.array(v.bigint()),\n open: v.array(v.bigint()),\n high: v.array(v.bigint()),\n low: v.array(v.bigint()),\n close: v.array(v.bigint()),\n volume: v.array(v.bigint()),\n quoteVolume: v.array(v.string()),\n referenceTsSec: v.optional(v.array(v.bigint()), []),\n referenceOpen: v.optional(v.array(v.bigint()), []),\n referenceHigh: v.optional(v.array(v.bigint()), []),\n referenceLow: v.optional(v.array(v.bigint()), []),\n referenceClose: v.optional(v.array(v.bigint()), []),\n referenceVolume: v.optional(v.array(v.bigint()), []),\n nextPageToken: v.optional(v.string(), \"\"),\n});\n\nfunction scaledArrayToDecimal(values: bigint[], scale: number): string[] {\n return values.map((value) => scaledToDecimalOutput(value, scale));\n}\n\nexport function createCandleColumnarSchema(scales: SdkScales) {\n return v.pipe(\n CandleColumnarRawSchema,\n v.transform((d) => {\n const priceScale = scales.price();\n const referencePriceScale = scales.referencePrice(d.symbolId);\n const volumeScale = scales.marketDataVolume(d.symbolId);\n const referenceTsSec = d.referenceTsSec ?? [];\n const hasReference = referenceTsSec.length > 0;\n return {\n symbolId: d.symbolId,\n timeframe: d.timeframe,\n time: d.tsSec.map((t) => Number(t)),\n open: scaledArrayToDecimal(d.open, priceScale),\n high: scaledArrayToDecimal(d.high, priceScale),\n low: scaledArrayToDecimal(d.low, priceScale),\n close: scaledArrayToDecimal(d.close, priceScale),\n volume: scaledArrayToDecimal(d.volume, volumeScale),\n quoteVolume: d.quoteVolume,\n nextPageToken: d.nextPageToken,\n reference: hasReference\n ? {\n time: referenceTsSec.map((t) => Number(t)),\n open: scaledArrayToDecimal(d.referenceOpen ?? [], referencePriceScale),\n high: scaledArrayToDecimal(d.referenceHigh ?? [], referencePriceScale),\n low: scaledArrayToDecimal(d.referenceLow ?? [], referencePriceScale),\n close: scaledArrayToDecimal(d.referenceClose ?? [], referencePriceScale),\n volume: scaledArrayToDecimal(d.referenceVolume ?? [], volumeScale),\n }\n : null,\n };\n }),\n );\n}\n\nexport function createCandleColumnarIntSchema(scales: SdkScales) {\n return v.pipe(\n CandleColumnarRawSchema,\n v.transform((d) => {\n const priceScale = scales.price();\n const referencePriceScale = scales.referencePrice(d.symbolId);\n const volumeScale = scales.marketDataVolume(d.symbolId);\n const referenceTsSec = d.referenceTsSec ?? [];\n return {\n symbolId: d.symbolId,\n timeframe: d.timeframe,\n tsSec: d.tsSec.map((t) => Number(t)),\n open: scaledArrayToDecimal(d.open, priceScale),\n high: scaledArrayToDecimal(d.high, priceScale),\n low: scaledArrayToDecimal(d.low, priceScale),\n close: scaledArrayToDecimal(d.close, priceScale),\n volume: scaledArrayToDecimal(d.volume, volumeScale),\n quoteVolume: d.quoteVolume,\n nextPageToken: d.nextPageToken,\n reference:\n referenceTsSec.length > 0\n ? {\n tsSec: referenceTsSec.map((t) => Number(t)),\n open: scaledArrayToDecimal(\n d.referenceOpen ?? [],\n referencePriceScale,\n ),\n high: scaledArrayToDecimal(\n d.referenceHigh ?? [],\n referencePriceScale,\n ),\n low: scaledArrayToDecimal(d.referenceLow ?? [], referencePriceScale),\n close: scaledArrayToDecimal(\n d.referenceClose ?? [],\n referencePriceScale,\n ),\n volume: scaledArrayToDecimal(d.referenceVolume ?? [], volumeScale),\n }\n : null,\n };\n }),\n );\n}\n\nexport type Candle = v.InferOutput<ReturnType<typeof createCandleRowSchema>>;\nexport type CandleInput = v.InferInput<ReturnType<typeof createCandleRowSchema>>;\nexport type CandleIntInput = v.InferInput<ReturnType<typeof createCandleRowIntSchema>>;\nexport type CandleInt = v.InferOutput<ReturnType<typeof createCandleRowIntSchema>>;\nexport type CandleColumnar = v.InferOutput<ReturnType<typeof createCandleColumnarSchema>>;\nexport type CandleColumnarInput = v.InferInput<ReturnType<typeof createCandleColumnarSchema>>;\nexport type CandleColumnarIntInput = v.InferInput<ReturnType<typeof createCandleColumnarIntSchema>>;\nexport type CandleColumnarInt = v.InferOutput<ReturnType<typeof createCandleColumnarIntSchema>>;\n\nexport const ListCandlesInputSchema = v.pipe(\n v.object({\n symbolId: SymbolIdInputSchema,\n timeframe: TimeframeInputSchema,\n limit: OptionalPositiveNumberSchema,\n includeIncomplete: v.optional(v.boolean(), false),\n includeReference: OptionalBooleanSchema,\n startTsSec: OptionalTimestampSecondsInputSchema,\n endTsSec: OptionalTimestampSecondsInputSchema,\n pageToken: v.optional(v.pipe(v.string(), v.trim()), \"\"),\n }),\n v.transform((d) => ({\n symbolId: d.symbolId,\n timeframe: d.timeframe,\n limit: d.limit,\n includeIncomplete: d.includeIncomplete,\n includeReference: d.includeReference,\n startTime: d.startTsSec != null ? timestampFromTsSec(d.startTsSec) : undefined,\n endTime: d.endTsSec != null ? timestampFromTsSec(d.endTsSec) : undefined,\n pageToken: d.pageToken,\n })),\n);\n\nexport function createListCandlesInputSchema() {\n return ListCandlesInputSchema;\n}\n\nexport type GetCandlesInput = v.InferInput<ReturnType<typeof createListCandlesInputSchema>>;\nexport const createGetCandlesColumnsInputSchema = createListCandlesInputSchema;\nexport type GetCandlesColumnsInput = v.InferInput<ReturnType<typeof createListCandlesInputSchema>>;\n"],"mappings":"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"}
|
|
@@ -14,7 +14,7 @@ type TimestampInit = {
|
|
|
14
14
|
declare const GetOrderbookHeatmapInputSchema: v.SchemaWithPipe<readonly [v.ObjectSchema<{
|
|
15
15
|
readonly symbolId: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.GtValueAction<number, 0, undefined>, v.MaxValueAction<number, 4294967295, undefined>]>;
|
|
16
16
|
readonly interval: v.SchemaWithPipe<readonly [v.OptionalSchema<v.PicklistSchema<readonly ["1s", "1m", "5m", "1h"], undefined>, "1s">, v.TransformAction<"1s" | "1m" | "5m" | "1h", HeatmapInterval>]>;
|
|
17
|
-
readonly depth: v.SchemaWithPipe<readonly [v.OptionalSchema<v.PicklistSchema<readonly [1, 5, 10, 20, 50, 100, 200, 500, 1000], undefined>, 50>, v.TransformAction<1 | 10 | 5 | 20 | 200 | 500 | 100 |
|
|
17
|
+
readonly depth: v.SchemaWithPipe<readonly [v.OptionalSchema<v.PicklistSchema<readonly [1, 5, 10, 20, 50, 100, 200, 500, 1000], undefined>, 50>, v.TransformAction<1 | 10 | 5 | 20 | 200 | 500 | 100 | 1000 | 50, HeatmapDepth>]>;
|
|
18
18
|
readonly quantityMode: v.SchemaWithPipe<readonly [v.OptionalSchema<v.PicklistSchema<readonly ["close", "peak"], undefined>, "close">, v.TransformAction<"close" | "peak", HeatmapQuantityMode>]>;
|
|
19
19
|
readonly limit: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.GtValueAction<number, 0, undefined>, v.MaxValueAction<number, 20000, undefined>]>;
|
|
20
20
|
readonly startTsSec: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>, v.MaxValueAction<number, number, undefined>, v.TransformAction<number, bigint>]>, undefined>;
|
|
@@ -227,7 +227,7 @@ type OrderbookHeatmapDeltaChain = ReturnType<typeof convertHeatmapDeltaChain>;
|
|
|
227
227
|
declare function createOrderbookHeatmapResponseSchema(scales: SdkScales): v.SchemaWithPipe<readonly [v.ObjectSchema<{
|
|
228
228
|
readonly symbolId: v.NumberSchema<undefined>;
|
|
229
229
|
readonly interval: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.TransformAction<number, DecodedEnum<"1s" | "1m" | "5m" | "1h">>]>;
|
|
230
|
-
readonly depth: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.TransformAction<number, 1 | "unspecified" | 10 | 5 | 20 | 200 | 500 | 100 |
|
|
230
|
+
readonly depth: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.TransformAction<number, 1 | "unspecified" | 10 | 5 | 20 | 200 | 500 | 100 | 1000 | 50>]>;
|
|
231
231
|
readonly chain: v.OptionalSchema<v.ObjectSchema<{
|
|
232
232
|
readonly baseKeyframe: v.OptionalSchema<v.ObjectSchema<{
|
|
233
233
|
readonly tsSec: v.SchemaWithPipe<readonly [v.BigintSchema<undefined>, v.TransformAction<bigint, number>]>;
|
|
@@ -287,7 +287,7 @@ declare function createOrderbookHeatmapResponseSchema(scales: SdkScales): v.Sche
|
|
|
287
287
|
}, undefined>, v.TransformAction<{
|
|
288
288
|
symbolId: number;
|
|
289
289
|
interval: DecodedEnum<"1s" | "1m" | "5m" | "1h">;
|
|
290
|
-
depth: 1 | "unspecified" | 10 | 5 | 20 | 200 | 500 | 100 |
|
|
290
|
+
depth: 1 | "unspecified" | 10 | 5 | 20 | 200 | 500 | 100 | 1000 | 50;
|
|
291
291
|
chain?: {
|
|
292
292
|
baseKeyframe?: {
|
|
293
293
|
tsSec: number;
|
|
@@ -347,7 +347,7 @@ declare function createOrderbookHeatmapResponseSchema(scales: SdkScales): v.Sche
|
|
|
347
347
|
}, {
|
|
348
348
|
symbolId: number;
|
|
349
349
|
interval: DecodedEnum<"1s" | "1m" | "5m" | "1h">;
|
|
350
|
-
depth: 1 | "unspecified" | 10 | 5 | 20 | 200 | 500 | 100 |
|
|
350
|
+
depth: 1 | "unspecified" | 10 | 5 | 20 | 200 | 500 | 100 | 1000 | 50;
|
|
351
351
|
chain: {
|
|
352
352
|
baseKeyframe: {
|
|
353
353
|
tsSec: number;
|