@silvana-one/orderbook 1.1.8 → 1.1.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/dist/node/index.cjs +262 -5
  2. package/dist/node/index.d.ts +2 -1
  3. package/dist/node/index.js +2 -1
  4. package/dist/node/index.js.map +1 -1
  5. package/dist/node/{grpc.d.ts → orderbook.d.ts} +48 -1
  6. package/dist/{web/grpc.js → node/orderbook.js} +50 -2
  7. package/dist/node/orderbook.js.map +1 -0
  8. package/dist/node/pricing.d.ts +81 -0
  9. package/dist/node/pricing.js +115 -0
  10. package/dist/node/pricing.js.map +1 -0
  11. package/dist/node/proto/silvana/orderbook/v1/orderbook_pb.d.ts +398 -0
  12. package/dist/node/proto/silvana/orderbook/v1/orderbook_pb.js +47 -2
  13. package/dist/node/proto/silvana/orderbook/v1/orderbook_pb.js.map +1 -1
  14. package/dist/node/proto/silvana/pricing/v1/pricing_pb.d.ts +794 -0
  15. package/dist/node/proto/silvana/pricing/v1/pricing_pb.js +119 -0
  16. package/dist/node/proto/silvana/pricing/v1/pricing_pb.js.map +1 -0
  17. package/dist/tsconfig.tsbuildinfo +1 -1
  18. package/dist/tsconfig.web.tsbuildinfo +1 -1
  19. package/dist/web/index.d.ts +2 -1
  20. package/dist/web/index.js +2 -1
  21. package/dist/web/index.js.map +1 -1
  22. package/dist/web/{grpc.d.ts → orderbook.d.ts} +48 -1
  23. package/dist/{node/grpc.js → web/orderbook.js} +50 -2
  24. package/dist/web/orderbook.js.map +1 -0
  25. package/dist/web/pricing.d.ts +81 -0
  26. package/dist/web/pricing.js +115 -0
  27. package/dist/web/pricing.js.map +1 -0
  28. package/dist/web/proto/silvana/orderbook/v1/orderbook_pb.d.ts +398 -0
  29. package/dist/web/proto/silvana/orderbook/v1/orderbook_pb.js +47 -2
  30. package/dist/web/proto/silvana/orderbook/v1/orderbook_pb.js.map +1 -1
  31. package/dist/web/proto/silvana/pricing/v1/pricing_pb.d.ts +794 -0
  32. package/dist/web/proto/silvana/pricing/v1/pricing_pb.js +119 -0
  33. package/dist/web/proto/silvana/pricing/v1/pricing_pb.js.map +1 -0
  34. package/package.json +4 -2
  35. package/src/index.ts +2 -1
  36. package/src/{grpc.ts → orderbook.ts} +91 -0
  37. package/src/pricing.ts +187 -0
  38. package/src/proto/silvana/orderbook/v1/orderbook_pb.ts +475 -2
  39. package/src/proto/silvana/pricing/v1/pricing_pb.ts +950 -0
  40. package/dist/node/grpc.js.map +0 -1
  41. package/dist/web/grpc.js.map +0 -1
@@ -0,0 +1,119 @@
1
+ // @generated by protoc-gen-es v2.10.1 with parameter "target=ts,js_import_style=module"
2
+ // @generated from file proto/silvana/pricing/v1/pricing.proto (package silvana.pricing.v1, syntax proto3)
3
+ /* eslint-disable */
4
+ import { fileDesc, messageDesc, serviceDesc } from "@bufbuild/protobuf/codegenv2";
5
+ import { file_google_protobuf_struct, file_google_protobuf_timestamp } from "@bufbuild/protobuf/wkt";
6
+ /**
7
+ * Describes the file proto/silvana/pricing/v1/pricing.proto.
8
+ */
9
+ export const file_proto_silvana_pricing_v1_pricing = /*@__PURE__*/ fileDesc("CiZwcm90by9zaWx2YW5hL3ByaWNpbmcvdjEvcHJpY2luZy5wcm90bxISc2lsdmFuYS5wcmljaW5nLnYxIkQKD0dldFByaWNlUmVxdWVzdBIRCgltYXJrZXRfaWQYASABKAkSEwoGc291cmNlGAIgASgJSACIAQFCCQoHX3NvdXJjZSLMAgoQR2V0UHJpY2VSZXNwb25zZRIRCgltYXJrZXRfaWQYASABKAkSEAoDYmlkGAIgASgBSACIAQESEAoDYXNrGAMgASgBSAGIAQESDAoEbGFzdBgEIAEoARIXCgp2b2x1bWVfMjRoGAUgASgBSAKIAQESHwoSY2hhbmdlXzI0aF9wZXJjZW50GAYgASgBSAOIAQESFQoIaGlnaF8yNGgYByABKAFIBIgBARIUCgdsb3dfMjRoGAggASgBSAWIAQESDgoGc291cmNlGAkgASgJEi0KCXRpbWVzdGFtcBgKIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCBgoEX2JpZEIGCgRfYXNrQg0KC192b2x1bWVfMjRoQhUKE19jaGFuZ2VfMjRoX3BlcmNlbnRCCwoJX2hpZ2hfMjRoQgoKCF9sb3dfMjRoIkYKEEdldFByaWNlc1JlcXVlc3QSEgoKbWFya2V0X2lkcxgBIAMoCRITCgZzb3VyY2UYAiABKAlIAIgBAUIJCgdfc291cmNlIj4KEUdldFByaWNlc1Jlc3BvbnNlEikKBnByaWNlcxgBIAMoCzIZLnNpbHZhbmEucHJpY2luZy52MS5QcmljZSLBAgoFUHJpY2USEQoJbWFya2V0X2lkGAEgASgJEhAKA2JpZBgCIAEoAUgAiAEBEhAKA2FzaxgDIAEoAUgBiAEBEgwKBGxhc3QYBCABKAESFwoKdm9sdW1lXzI0aBgFIAEoAUgCiAEBEh8KEmNoYW5nZV8yNGhfcGVyY2VudBgGIAEoAUgDiAEBEhUKCGhpZ2hfMjRoGAcgASgBSASIAQESFAoHbG93XzI0aBgIIAEoAUgFiAEBEg4KBnNvdXJjZRgJIAEoCRItCgl0aW1lc3RhbXAYCiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQgYKBF9iaWRCBgoEX2Fza0INCgtfdm9sdW1lXzI0aEIVChNfY2hhbmdlXzI0aF9wZXJjZW50QgsKCV9oaWdoXzI0aEIKCghfbG93XzI0aCL5AQoQR2V0S2xpbmVzUmVxdWVzdBIRCgltYXJrZXRfaWQYASABKAkSEAoIaW50ZXJ2YWwYAiABKAkSEgoFbGltaXQYAyABKAVIAIgBARIzCgpzdGFydF90aW1lGAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgBiAEBEjEKCGVuZF90aW1lGAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgCiAEBEhMKBnNvdXJjZRgGIAEoCUgDiAEBQggKBl9saW1pdEINCgtfc3RhcnRfdGltZUILCglfZW5kX3RpbWVCCQoHX3NvdXJjZSJzChFHZXRLbGluZXNSZXNwb25zZRIRCgltYXJrZXRfaWQYASABKAkSEAoIaW50ZXJ2YWwYAiABKAkSKQoGa2xpbmVzGAMgAygLMhkuc2lsdmFuYS5wcmljaW5nLnYxLktsaW5lEg4KBnNvdXJjZRgEIAEoCSLUAQoFS2xpbmUSLQoJb3Blbl90aW1lGAEgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIMCgRvcGVuGAIgASgBEgwKBGhpZ2gYAyABKAESCwoDbG93GAQgASgBEg0KBWNsb3NlGAUgASgBEg4KBnZvbHVtZRgGIAEoARIuCgpjbG9zZV90aW1lGAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIUCgxxdW90ZV92b2x1bWUYCCABKAESDgoGdHJhZGVzGAkgASgFImYKE0dldE9yZGVyQm9va1JlcXVlc3QSEQoJbWFya2V0X2lkGAEgASgJEhIKBWRlcHRoGAIgASgFSACIAQESEwoGc291cmNlGAMgASgJSAGIAQFCCAoGX2RlcHRoQgkKB19zb3VyY2UizAEKFEdldE9yZGVyQm9va1Jlc3BvbnNlEhEKCW1hcmtldF9pZBgBIAEoCRIwCgRiaWRzGAIgAygLMiIuc2lsdmFuYS5wcmljaW5nLnYxLk9yZGVyQm9va0xldmVsEjAKBGFza3MYAyADKAsyIi5zaWx2YW5hLnByaWNpbmcudjEuT3JkZXJCb29rTGV2ZWwSLQoJdGltZXN0YW1wGAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIOCgZzb3VyY2UYBSABKAkiMQoOT3JkZXJCb29rTGV2ZWwSDQoFcHJpY2UYASABKAESEAoIcXVhbnRpdHkYAiABKAEijwEKE1N0cmVhbVByaWNlc1JlcXVlc3QSEgoKbWFya2V0X2lkcxgBIAMoCRIeChFpbmNsdWRlX29yZGVyYm9vaxgCIAEoCEgAiAEBEhsKDmluY2x1ZGVfdHJhZGVzGAMgASgISAGIAQFCFAoSX2luY2x1ZGVfb3JkZXJib29rQhEKD19pbmNsdWRlX3RyYWRlcyLMAgoLUHJpY2VVcGRhdGUSEQoJbWFya2V0X2lkGAEgASgJEg0KBXByaWNlGAIgASgBEhAKA2JpZBgDIAEoAUgAiAEBEhAKA2FzaxgEIAEoAUgBiAEBEhMKBnZvbHVtZRgFIAEoAUgCiAEBEg4KBnNvdXJjZRgGIAEoCRItCgl0aW1lc3RhbXAYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjsKCW9yZGVyYm9vaxgIIAEoCzIjLnNpbHZhbmEucHJpY2luZy52MS5PcmRlckJvb2tVcGRhdGVIA4gBARIzCgV0cmFkZRgJIAEoCzIfLnNpbHZhbmEucHJpY2luZy52MS5UcmFkZVVwZGF0ZUgEiAEBQgYKBF9iaWRCBgoEX2Fza0IJCgdfdm9sdW1lQgwKCl9vcmRlcmJvb2tCCAoGX3RyYWRlInUKD09yZGVyQm9va1VwZGF0ZRIwCgRiaWRzGAEgAygLMiIuc2lsdmFuYS5wcmljaW5nLnYxLk9yZGVyQm9va0xldmVsEjAKBGFza3MYAiADKAsyIi5zaWx2YW5hLnByaWNpbmcudjEuT3JkZXJCb29rTGV2ZWwidQoLVHJhZGVVcGRhdGUSDQoFcHJpY2UYASABKAESEAoIcXVhbnRpdHkYAiABKAESFgoOaXNfYnV5ZXJfbWFrZXIYAyABKAgSLQoJdGltZXN0YW1wGAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCJdChVHZXRQaXZvdFBvaW50c1JlcXVlc3QSEQoJbWFya2V0X2lkGAEgASgJEhEKCXRpbWVmcmFtZRgCIAEoCRITCgZzb3VyY2UYAyABKAlIAIgBAUIJCgdfc291cmNlIqADChZHZXRQaXZvdFBvaW50c1Jlc3BvbnNlEhEKCW1hcmtldF9pZBgBIAEoCRIwCgdjbGFzc2ljGAIgASgLMh8uc2lsdmFuYS5wcmljaW5nLnYxLlBpdm90UG9pbnRzEjcKCWZpYm9uYWNjaRgDIAEoCzIfLnNpbHZhbmEucHJpY2luZy52MS5QaXZvdFBvaW50c0gAiAEBEjcKCWNhbWFyaWxsYRgEIAEoCzIfLnNpbHZhbmEucHJpY2luZy52MS5QaXZvdFBvaW50c0gBiAEBEjQKBndvb2RpZRgFIAEoCzIfLnNpbHZhbmEucHJpY2luZy52MS5QaXZvdFBvaW50c0gCiAEBEjQKBmRlbWFyaxgGIAEoCzIfLnNpbHZhbmEucHJpY2luZy52MS5QaXZvdFBvaW50c0gDiAEBEjEKDWNhbGN1bGF0ZWRfYXQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQgwKCl9maWJvbmFjY2lCDAoKX2NhbWFyaWxsYUIJCgdfd29vZGllQgkKB19kZW1hcmsilAEKC1Bpdm90UG9pbnRzEg0KBXBpdm90GAEgASgBEgoKAnIxGAIgASgBEgoKAnIyGAMgASgBEgoKAnIzGAQgASgBEgoKAnMxGAUgASgBEgoKAnMyGAYgASgBEgoKAnMzGAcgASgBEg8KAnI0GAggASgBSACIAQESDwoCczQYCSABKAFIAYgBAUIFCgNfcjRCBQoDX3M0ItQDCg9QcmljZUZlZWRDb25maWcSPgoGZGlyZWN0GAEgAygLMi4uc2lsdmFuYS5wcmljaW5nLnYxLlByaWNlRmVlZENvbmZpZy5EaXJlY3RGZWVkEkkKCXN5bnRoZXRpYxgCIAEoCzIxLnNpbHZhbmEucHJpY2luZy52MS5QcmljZUZlZWRDb25maWcuU3ludGhldGljRmVlZEgAiAEBGowBCgpEaXJlY3RGZWVkEg4KBnNvdXJjZRgBIAEoCRIOCgZzeW1ib2wYAiABKAkSDwoHZW5hYmxlZBgDIAEoCBIQCghwcmlvcml0eRgEIAEoBRIuCghtZXRhZGF0YRgFIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAIgBAUILCglfbWV0YWRhdGEamAEKDVN5bnRoZXRpY0ZlZWQSDAoEdHlwZRgBIAEoCRITCgtiYXNlX21hcmtldBgCIAEoCRIUCgxxdW90ZV9tYXJrZXQYAyABKAkSEQoJb3BlcmF0aW9uGAQgASgJEi4KCG1ldGFkYXRhGAUgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBQgsKCV9tZXRhZGF0YUIMCgpfc3ludGhldGljMsMECg5QcmljaW5nU2VydmljZRJVCghHZXRQcmljZRIjLnNpbHZhbmEucHJpY2luZy52MS5HZXRQcmljZVJlcXVlc3QaJC5zaWx2YW5hLnByaWNpbmcudjEuR2V0UHJpY2VSZXNwb25zZRJYCglHZXRQcmljZXMSJC5zaWx2YW5hLnByaWNpbmcudjEuR2V0UHJpY2VzUmVxdWVzdBolLnNpbHZhbmEucHJpY2luZy52MS5HZXRQcmljZXNSZXNwb25zZRJYCglHZXRLbGluZXMSJC5zaWx2YW5hLnByaWNpbmcudjEuR2V0S2xpbmVzUmVxdWVzdBolLnNpbHZhbmEucHJpY2luZy52MS5HZXRLbGluZXNSZXNwb25zZRJhCgxHZXRPcmRlckJvb2sSJy5zaWx2YW5hLnByaWNpbmcudjEuR2V0T3JkZXJCb29rUmVxdWVzdBooLnNpbHZhbmEucHJpY2luZy52MS5HZXRPcmRlckJvb2tSZXNwb25zZRJaCgxTdHJlYW1QcmljZXMSJy5zaWx2YW5hLnByaWNpbmcudjEuU3RyZWFtUHJpY2VzUmVxdWVzdBofLnNpbHZhbmEucHJpY2luZy52MS5QcmljZVVwZGF0ZTABEmcKDkdldFBpdm90UG9pbnRzEikuc2lsdmFuYS5wcmljaW5nLnYxLkdldFBpdm90UG9pbnRzUmVxdWVzdBoqLnNpbHZhbmEucHJpY2luZy52MS5HZXRQaXZvdFBvaW50c1Jlc3BvbnNlQjJaMGdpdGh1Yi5jb20vU2lsdmFuYU9uZS9jYW50b24tYWdlbnQvcHJvdG87cHJpY2luZ2IGcHJvdG8z", [file_google_protobuf_timestamp, file_google_protobuf_struct]);
10
+ /**
11
+ * Describes the message silvana.pricing.v1.GetPriceRequest.
12
+ * Use `create(GetPriceRequestSchema)` to create a new message.
13
+ */
14
+ export const GetPriceRequestSchema = /*@__PURE__*/ messageDesc(file_proto_silvana_pricing_v1_pricing, 0);
15
+ /**
16
+ * Describes the message silvana.pricing.v1.GetPriceResponse.
17
+ * Use `create(GetPriceResponseSchema)` to create a new message.
18
+ */
19
+ export const GetPriceResponseSchema = /*@__PURE__*/ messageDesc(file_proto_silvana_pricing_v1_pricing, 1);
20
+ /**
21
+ * Describes the message silvana.pricing.v1.GetPricesRequest.
22
+ * Use `create(GetPricesRequestSchema)` to create a new message.
23
+ */
24
+ export const GetPricesRequestSchema = /*@__PURE__*/ messageDesc(file_proto_silvana_pricing_v1_pricing, 2);
25
+ /**
26
+ * Describes the message silvana.pricing.v1.GetPricesResponse.
27
+ * Use `create(GetPricesResponseSchema)` to create a new message.
28
+ */
29
+ export const GetPricesResponseSchema = /*@__PURE__*/ messageDesc(file_proto_silvana_pricing_v1_pricing, 3);
30
+ /**
31
+ * Describes the message silvana.pricing.v1.Price.
32
+ * Use `create(PriceSchema)` to create a new message.
33
+ */
34
+ export const PriceSchema = /*@__PURE__*/ messageDesc(file_proto_silvana_pricing_v1_pricing, 4);
35
+ /**
36
+ * Describes the message silvana.pricing.v1.GetKlinesRequest.
37
+ * Use `create(GetKlinesRequestSchema)` to create a new message.
38
+ */
39
+ export const GetKlinesRequestSchema = /*@__PURE__*/ messageDesc(file_proto_silvana_pricing_v1_pricing, 5);
40
+ /**
41
+ * Describes the message silvana.pricing.v1.GetKlinesResponse.
42
+ * Use `create(GetKlinesResponseSchema)` to create a new message.
43
+ */
44
+ export const GetKlinesResponseSchema = /*@__PURE__*/ messageDesc(file_proto_silvana_pricing_v1_pricing, 6);
45
+ /**
46
+ * Describes the message silvana.pricing.v1.Kline.
47
+ * Use `create(KlineSchema)` to create a new message.
48
+ */
49
+ export const KlineSchema = /*@__PURE__*/ messageDesc(file_proto_silvana_pricing_v1_pricing, 7);
50
+ /**
51
+ * Describes the message silvana.pricing.v1.GetOrderBookRequest.
52
+ * Use `create(GetOrderBookRequestSchema)` to create a new message.
53
+ */
54
+ export const GetOrderBookRequestSchema = /*@__PURE__*/ messageDesc(file_proto_silvana_pricing_v1_pricing, 8);
55
+ /**
56
+ * Describes the message silvana.pricing.v1.GetOrderBookResponse.
57
+ * Use `create(GetOrderBookResponseSchema)` to create a new message.
58
+ */
59
+ export const GetOrderBookResponseSchema = /*@__PURE__*/ messageDesc(file_proto_silvana_pricing_v1_pricing, 9);
60
+ /**
61
+ * Describes the message silvana.pricing.v1.OrderBookLevel.
62
+ * Use `create(OrderBookLevelSchema)` to create a new message.
63
+ */
64
+ export const OrderBookLevelSchema = /*@__PURE__*/ messageDesc(file_proto_silvana_pricing_v1_pricing, 10);
65
+ /**
66
+ * Describes the message silvana.pricing.v1.StreamPricesRequest.
67
+ * Use `create(StreamPricesRequestSchema)` to create a new message.
68
+ */
69
+ export const StreamPricesRequestSchema = /*@__PURE__*/ messageDesc(file_proto_silvana_pricing_v1_pricing, 11);
70
+ /**
71
+ * Describes the message silvana.pricing.v1.PriceUpdate.
72
+ * Use `create(PriceUpdateSchema)` to create a new message.
73
+ */
74
+ export const PriceUpdateSchema = /*@__PURE__*/ messageDesc(file_proto_silvana_pricing_v1_pricing, 12);
75
+ /**
76
+ * Describes the message silvana.pricing.v1.OrderBookUpdate.
77
+ * Use `create(OrderBookUpdateSchema)` to create a new message.
78
+ */
79
+ export const OrderBookUpdateSchema = /*@__PURE__*/ messageDesc(file_proto_silvana_pricing_v1_pricing, 13);
80
+ /**
81
+ * Describes the message silvana.pricing.v1.TradeUpdate.
82
+ * Use `create(TradeUpdateSchema)` to create a new message.
83
+ */
84
+ export const TradeUpdateSchema = /*@__PURE__*/ messageDesc(file_proto_silvana_pricing_v1_pricing, 14);
85
+ /**
86
+ * Describes the message silvana.pricing.v1.GetPivotPointsRequest.
87
+ * Use `create(GetPivotPointsRequestSchema)` to create a new message.
88
+ */
89
+ export const GetPivotPointsRequestSchema = /*@__PURE__*/ messageDesc(file_proto_silvana_pricing_v1_pricing, 15);
90
+ /**
91
+ * Describes the message silvana.pricing.v1.GetPivotPointsResponse.
92
+ * Use `create(GetPivotPointsResponseSchema)` to create a new message.
93
+ */
94
+ export const GetPivotPointsResponseSchema = /*@__PURE__*/ messageDesc(file_proto_silvana_pricing_v1_pricing, 16);
95
+ /**
96
+ * Describes the message silvana.pricing.v1.PivotPoints.
97
+ * Use `create(PivotPointsSchema)` to create a new message.
98
+ */
99
+ export const PivotPointsSchema = /*@__PURE__*/ messageDesc(file_proto_silvana_pricing_v1_pricing, 17);
100
+ /**
101
+ * Describes the message silvana.pricing.v1.PriceFeedConfig.
102
+ * Use `create(PriceFeedConfigSchema)` to create a new message.
103
+ */
104
+ export const PriceFeedConfigSchema = /*@__PURE__*/ messageDesc(file_proto_silvana_pricing_v1_pricing, 18);
105
+ /**
106
+ * Describes the message silvana.pricing.v1.PriceFeedConfig.DirectFeed.
107
+ * Use `create(PriceFeedConfig_DirectFeedSchema)` to create a new message.
108
+ */
109
+ export const PriceFeedConfig_DirectFeedSchema = /*@__PURE__*/ messageDesc(file_proto_silvana_pricing_v1_pricing, 18, 0);
110
+ /**
111
+ * Describes the message silvana.pricing.v1.PriceFeedConfig.SyntheticFeed.
112
+ * Use `create(PriceFeedConfig_SyntheticFeedSchema)` to create a new message.
113
+ */
114
+ export const PriceFeedConfig_SyntheticFeedSchema = /*@__PURE__*/ messageDesc(file_proto_silvana_pricing_v1_pricing, 18, 1);
115
+ /**
116
+ * @generated from service silvana.pricing.v1.PricingService
117
+ */
118
+ export const PricingService = /*@__PURE__*/ serviceDesc(file_proto_silvana_pricing_v1_pricing, 0);
119
+ //# sourceMappingURL=pricing_pb.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pricing_pb.js","sourceRoot":"","sources":["../../../../../../src/proto/silvana/pricing/v1/pricing_pb.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@silvana-one/orderbook",
3
3
  "description": "Silvana Orderbook Client",
4
- "version": "1.1.8",
4
+ "version": "1.1.9",
5
5
  "author": "DFST",
6
6
  "bugs": "https://github.com/SilvanaOne/silvana-lib/issues",
7
7
  "dependencies": {
@@ -49,7 +49,9 @@
49
49
  },
50
50
  "repository": "SilvanaOne/silvana-lib.git",
51
51
  "scripts": {
52
- "proto": "rm -rf src/proto && cp -R ../../../canton-agent/proto/silvana/orderbook proto/silvana && buf generate --template buf.gen.orderbook.yaml",
52
+ "proto:orderbook": "rm -rf src/proto/silvana/orderbook && mkdir -p proto/silvana && cp -R ../../../canton-agent/proto/silvana/orderbook proto/silvana && buf generate --template buf.gen.orderbook.yaml",
53
+ "proto:pricing": "rm -rf src/proto/silvana/pricing && mkdir -p proto/silvana && cp -R ../../../canton-agent/proto/silvana/pricing proto/silvana && buf generate --template buf.gen.pricing.yaml",
54
+ "proto": "npm run proto:orderbook && npm run proto:pricing",
53
55
  "build": "rm -rf dist && tsc && tsc --build tsconfig.web.json && node build-cjs.js",
54
56
  "release": "npm publish --access public",
55
57
  "test": "NODE_NO_WARNINGS=1 node --loader=ts-node/esm --enable-source-maps -r dotenv/config --require dotenv/config --env-file=.env --test"
package/src/index.ts CHANGED
@@ -1 +1,2 @@
1
- export * from "./grpc.js";
1
+ export * from "./orderbook.js";
2
+ export * from "./pricing.js";
@@ -18,6 +18,10 @@ import {
18
18
  type GetSettlementsResponse,
19
19
  type SubmitOrderResponse,
20
20
  type CancelOrderResponse,
21
+ type CreatePartyResponse,
22
+ type CreateInstrumentResponse,
23
+ type CreateMarketResponse,
24
+ type UpdateMarketPriceFeedsResponse,
21
25
  GetOrdersRequestSchema,
22
26
  GetOrderbookDepthRequestSchema,
23
27
  GetSettlementProposalsRequestSchema,
@@ -28,6 +32,10 @@ import {
28
32
  GetSettlementsRequestSchema,
29
33
  SubmitOrderRequestSchema,
30
34
  CancelOrderRequestSchema,
35
+ CreatePartyRequestSchema,
36
+ CreateInstrumentRequestSchema,
37
+ CreateMarketRequestSchema,
38
+ UpdateMarketPriceFeedsRequestSchema,
31
39
  SubscribeOrderbookRequestSchema,
32
40
  SubscribeOrdersRequestSchema,
33
41
  SubscribeSettlementsRequestSchema,
@@ -353,4 +361,87 @@ export class OrderbookClient {
353
361
  });
354
362
  return this.client.subscribeSettlements(request);
355
363
  }
364
+
365
+ /**
366
+ * Create a new party (admin operation)
367
+ */
368
+ async createParty(params: {
369
+ partyId: string;
370
+ partyName: string;
371
+ partyType: string;
372
+ userServiceCid?: string;
373
+ operatorConfigCid?: string;
374
+ metadata?: any;
375
+ }): Promise<CreatePartyResponse> {
376
+ return await this.wrapCall(async () => {
377
+ const request = create(CreatePartyRequestSchema, {
378
+ auth: this.createAuth(),
379
+ ...params,
380
+ });
381
+ return await this.client.createParty(request);
382
+ }, 'createParty');
383
+ }
384
+
385
+ /**
386
+ * Create a new instrument (admin operation)
387
+ */
388
+ async createInstrument(params: {
389
+ instrumentId: string;
390
+ instrumentType: string;
391
+ name: string;
392
+ symbol: string;
393
+ description?: string;
394
+ issuer?: string;
395
+ registry?: string;
396
+ metadata?: any;
397
+ }): Promise<CreateInstrumentResponse> {
398
+ return await this.wrapCall(async () => {
399
+ const request = create(CreateInstrumentRequestSchema, {
400
+ auth: this.createAuth(),
401
+ ...params,
402
+ });
403
+ return await this.client.createInstrument(request);
404
+ }, 'createInstrument');
405
+ }
406
+
407
+ /**
408
+ * Create a new market (admin operation)
409
+ */
410
+ async createMarket(params: {
411
+ marketId: string;
412
+ marketType: MarketType;
413
+ baseInstrument?: string;
414
+ quoteInstrument?: string;
415
+ minOrderSize: string;
416
+ maxOrderSize?: string;
417
+ tickSize: string;
418
+ makerFee: string;
419
+ takerFee: string;
420
+ metadata?: any;
421
+ priceFeeds?: any;
422
+ }): Promise<CreateMarketResponse> {
423
+ return await this.wrapCall(async () => {
424
+ const request = create(CreateMarketRequestSchema, {
425
+ auth: this.createAuth(),
426
+ ...params,
427
+ });
428
+ return await this.client.createMarket(request);
429
+ }, 'createMarket');
430
+ }
431
+
432
+ /**
433
+ * Update market price feeds (admin operation)
434
+ */
435
+ async updateMarketPriceFeeds(params: {
436
+ marketId: string;
437
+ priceFeeds: any;
438
+ }): Promise<UpdateMarketPriceFeedsResponse> {
439
+ return await this.wrapCall(async () => {
440
+ const request = create(UpdateMarketPriceFeedsRequestSchema, {
441
+ auth: this.createAuth(),
442
+ ...params,
443
+ });
444
+ return await this.client.updateMarketPriceFeeds(request);
445
+ }, 'updateMarketPriceFeeds');
446
+ }
356
447
  }
package/src/pricing.ts ADDED
@@ -0,0 +1,187 @@
1
+ import { createGrpcTransport } from "@connectrpc/connect-node";
2
+ import { createClient, ConnectError } from "@connectrpc/connect";
3
+ import { create } from "@bufbuild/protobuf";
4
+ import { TimestampSchema } from "@bufbuild/protobuf/wkt";
5
+
6
+ // Export all types and schemas from the generated protobuf file
7
+ export * from "./proto/silvana/pricing/v1/pricing_pb.js";
8
+
9
+ import {
10
+ PricingService,
11
+ type GetPriceResponse,
12
+ type GetPricesResponse,
13
+ type GetKlinesResponse,
14
+ type GetOrderBookResponse,
15
+ type GetPivotPointsResponse,
16
+ GetPriceRequestSchema,
17
+ GetPricesRequestSchema,
18
+ GetKlinesRequestSchema,
19
+ GetOrderBookRequestSchema,
20
+ StreamPricesRequestSchema,
21
+ GetPivotPointsRequestSchema,
22
+ } from "./proto/silvana/pricing/v1/pricing_pb.js";
23
+
24
+ /**
25
+ * Converts a Date to a Timestamp message
26
+ */
27
+ function dateToTimestamp(date: Date) {
28
+ const seconds = BigInt(Math.floor(date.getTime() / 1000));
29
+ const nanos = (date.getTime() % 1000) * 1000000;
30
+ return create(TimestampSchema, { seconds, nanos });
31
+ }
32
+
33
+ /**
34
+ * Custom error class for Pricing client errors
35
+ */
36
+ export class PricingError extends Error {
37
+ constructor(
38
+ message: string,
39
+ public code?: string,
40
+ public details?: any
41
+ ) {
42
+ super(message);
43
+ this.name = 'PricingError';
44
+ }
45
+ }
46
+
47
+ /**
48
+ * Pricing client configuration
49
+ */
50
+ export interface PricingClientConfig {
51
+ /** Base URL of the pricing service (e.g., "http://localhost:50053") */
52
+ baseUrl: string;
53
+ }
54
+
55
+ /**
56
+ * Pricing client for interacting with the Silvana Pricing Service
57
+ */
58
+ export class PricingClient {
59
+ private client: ReturnType<typeof createClient<typeof PricingService>>;
60
+
61
+ /**
62
+ * Creates a new PricingClient instance
63
+ * @param config Client configuration
64
+ */
65
+ constructor(config: PricingClientConfig) {
66
+ const transport = createGrpcTransport({
67
+ baseUrl: config.baseUrl,
68
+ });
69
+
70
+ this.client = createClient(PricingService, transport);
71
+ }
72
+
73
+ /**
74
+ * Wraps async calls with error handling
75
+ */
76
+ private async wrapCall<T>(
77
+ operation: () => Promise<T>,
78
+ operationName: string
79
+ ): Promise<T> {
80
+ try {
81
+ return await operation();
82
+ } catch (error) {
83
+ if (error instanceof ConnectError) {
84
+ throw new PricingError(
85
+ `${operationName} failed: ${error.message}`,
86
+ String(error.code),
87
+ error.metadata
88
+ );
89
+ }
90
+ throw new PricingError(
91
+ `${operationName} failed: ${error instanceof Error ? error.message : 'Unknown error'}`,
92
+ 'UNKNOWN',
93
+ error
94
+ );
95
+ }
96
+ }
97
+
98
+ /**
99
+ * Get current price for a market
100
+ */
101
+ async getPrice(params: {
102
+ marketId: string;
103
+ source?: string;
104
+ }): Promise<GetPriceResponse> {
105
+ return await this.wrapCall(async () => {
106
+ const request = create(GetPriceRequestSchema, params);
107
+ return await this.client.getPrice(request);
108
+ }, 'getPrice');
109
+ }
110
+
111
+ /**
112
+ * Get multiple market prices
113
+ */
114
+ async getPrices(params: {
115
+ marketIds: string[];
116
+ source?: string;
117
+ }): Promise<GetPricesResponse> {
118
+ return await this.wrapCall(async () => {
119
+ const request = create(GetPricesRequestSchema, params);
120
+ return await this.client.getPrices(request);
121
+ }, 'getPrices');
122
+ }
123
+
124
+ /**
125
+ * Get kline/candle data
126
+ */
127
+ async getKlines(params: {
128
+ marketId: string;
129
+ interval: string;
130
+ limit?: number;
131
+ startTime?: Date;
132
+ endTime?: Date;
133
+ source?: string;
134
+ }): Promise<GetKlinesResponse> {
135
+ return await this.wrapCall(async () => {
136
+ const request = create(GetKlinesRequestSchema, {
137
+ marketId: params.marketId,
138
+ interval: params.interval,
139
+ limit: params.limit,
140
+ startTime: params.startTime ? dateToTimestamp(params.startTime) : undefined,
141
+ endTime: params.endTime ? dateToTimestamp(params.endTime) : undefined,
142
+ source: params.source,
143
+ });
144
+ return await this.client.getKlines(request);
145
+ }, 'getKlines');
146
+ }
147
+
148
+ /**
149
+ * Get order book snapshot
150
+ */
151
+ async getOrderBook(params: {
152
+ marketId: string;
153
+ depth?: number;
154
+ source?: string;
155
+ }): Promise<GetOrderBookResponse> {
156
+ return await this.wrapCall(async () => {
157
+ const request = create(GetOrderBookRequestSchema, params);
158
+ return await this.client.getOrderBook(request);
159
+ }, 'getOrderBook');
160
+ }
161
+
162
+ /**
163
+ * Stream real-time price updates
164
+ */
165
+ streamPrices(params: {
166
+ marketIds: string[];
167
+ includeOrderbook?: boolean;
168
+ includeTrades?: boolean;
169
+ }) {
170
+ const request = create(StreamPricesRequestSchema, params);
171
+ return this.client.streamPrices(request);
172
+ }
173
+
174
+ /**
175
+ * Get calculated pivot points
176
+ */
177
+ async getPivotPoints(params: {
178
+ marketId: string;
179
+ timeframe: string;
180
+ source?: string;
181
+ }): Promise<GetPivotPointsResponse> {
182
+ return await this.wrapCall(async () => {
183
+ const request = create(GetPivotPointsRequestSchema, params);
184
+ return await this.client.getPivotPoints(request);
185
+ }, 'getPivotPoints');
186
+ }
187
+ }