@silvana-one/orderbook 1.1.8

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.
@@ -0,0 +1,220 @@
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
+ // Export all types and schemas from the generated protobuf file
6
+ export * from "./proto/silvana/orderbook/v1/orderbook_pb.js";
7
+ import { OrderbookService, GetOrdersRequestSchema, GetOrderbookDepthRequestSchema, GetSettlementProposalsRequestSchema, GetInstrumentsRequestSchema, GetMarketsRequestSchema, GetOrderHistoryRequestSchema, GetMarketDataRequestSchema, GetSettlementsRequestSchema, SubmitOrderRequestSchema, CancelOrderRequestSchema, SubscribeOrderbookRequestSchema, SubscribeOrdersRequestSchema, SubscribeSettlementsRequestSchema, JWTAuthSchema, OrderType, OrderStatus, TimeInForce, MarketType, SettlementStatus, } from "./proto/silvana/orderbook/v1/orderbook_pb.js";
8
+ // Re-export commonly used enums for convenience
9
+ export { OrderType, OrderStatus, TimeInForce, MarketType, SettlementStatus };
10
+ /**
11
+ * Converts a Date to a Timestamp message
12
+ */
13
+ function dateToTimestamp(date) {
14
+ const seconds = BigInt(Math.floor(date.getTime() / 1000));
15
+ const nanos = (date.getTime() % 1000) * 1000000;
16
+ return create(TimestampSchema, { seconds, nanos });
17
+ }
18
+ /**
19
+ * Custom error class for Orderbook client errors
20
+ */
21
+ export class OrderbookError extends Error {
22
+ constructor(message, code, details) {
23
+ super(message);
24
+ this.code = code;
25
+ this.details = details;
26
+ this.name = 'OrderbookError';
27
+ }
28
+ }
29
+ /**
30
+ * Orderbook client for interacting with the Silvana Orderbook Service
31
+ */
32
+ export class OrderbookClient {
33
+ /**
34
+ * Creates a new OrderbookClient instance
35
+ * @param config Client configuration
36
+ */
37
+ constructor(config) {
38
+ const transport = createGrpcTransport({
39
+ baseUrl: config.baseUrl,
40
+ });
41
+ this.client = createClient(OrderbookService, transport);
42
+ this.token = config.token;
43
+ }
44
+ /**
45
+ * Creates JWT auth object
46
+ */
47
+ createAuth() {
48
+ return create(JWTAuthSchema, { token: this.token });
49
+ }
50
+ /**
51
+ * Wraps async calls with error handling
52
+ */
53
+ async wrapCall(operation, operationName) {
54
+ try {
55
+ return await operation();
56
+ }
57
+ catch (error) {
58
+ if (error instanceof ConnectError) {
59
+ throw new OrderbookError(`${operationName} failed: ${error.message}`, String(error.code), error.metadata);
60
+ }
61
+ throw new OrderbookError(`${operationName} failed: ${error instanceof Error ? error.message : 'Unknown error'}`, 'UNKNOWN', error);
62
+ }
63
+ }
64
+ /**
65
+ * Get orders for the authenticated user
66
+ */
67
+ async getOrders(params) {
68
+ return await this.wrapCall(async () => {
69
+ const request = create(GetOrdersRequestSchema, {
70
+ auth: this.createAuth(),
71
+ ...params,
72
+ });
73
+ return await this.client.getOrders(request);
74
+ }, 'getOrders');
75
+ }
76
+ /**
77
+ * Get orderbook depth for a market
78
+ */
79
+ async getOrderbookDepth(params) {
80
+ const request = create(GetOrderbookDepthRequestSchema, {
81
+ auth: this.createAuth(),
82
+ ...params,
83
+ });
84
+ return await this.client.getOrderbookDepth(request);
85
+ }
86
+ /**
87
+ * Get settlement proposals for the authenticated user
88
+ */
89
+ async getSettlementProposals(params) {
90
+ return await this.wrapCall(async () => {
91
+ const request = create(GetSettlementProposalsRequestSchema, {
92
+ auth: this.createAuth(),
93
+ ...params,
94
+ });
95
+ return await this.client.getSettlementProposals(request);
96
+ }, 'getSettlementProposals');
97
+ }
98
+ /**
99
+ * Get available instruments
100
+ */
101
+ async getInstruments(params) {
102
+ const request = create(GetInstrumentsRequestSchema, {
103
+ auth: this.createAuth(),
104
+ ...params,
105
+ });
106
+ return await this.client.getInstruments(request);
107
+ }
108
+ /**
109
+ * Get available markets
110
+ */
111
+ async getMarkets(params) {
112
+ return await this.wrapCall(async () => {
113
+ const request = create(GetMarketsRequestSchema, {
114
+ auth: this.createAuth(),
115
+ ...params,
116
+ });
117
+ return await this.client.getMarkets(request);
118
+ }, 'getMarkets');
119
+ }
120
+ /**
121
+ * Get order history for the authenticated user
122
+ */
123
+ async getOrderHistory(params) {
124
+ const request = create(GetOrderHistoryRequestSchema, {
125
+ auth: this.createAuth(),
126
+ marketId: params.marketId,
127
+ fromTime: params.fromTime ? dateToTimestamp(params.fromTime) : undefined,
128
+ toTime: params.toTime ? dateToTimestamp(params.toTime) : undefined,
129
+ limit: params.limit,
130
+ offset: params.offset,
131
+ });
132
+ return await this.client.getOrderHistory(request);
133
+ }
134
+ /**
135
+ * Get market data
136
+ */
137
+ async getMarketData(params) {
138
+ const request = create(GetMarketDataRequestSchema, {
139
+ auth: this.createAuth(),
140
+ ...params,
141
+ });
142
+ return await this.client.getMarketData(request);
143
+ }
144
+ /**
145
+ * Get settlements (completed) for the authenticated user
146
+ */
147
+ async getSettlements(params) {
148
+ const request = create(GetSettlementsRequestSchema, {
149
+ auth: this.createAuth(),
150
+ marketId: params.marketId,
151
+ fromTime: params.fromTime ? dateToTimestamp(params.fromTime) : undefined,
152
+ toTime: params.toTime ? dateToTimestamp(params.toTime) : undefined,
153
+ limit: params.limit,
154
+ offset: params.offset,
155
+ });
156
+ return await this.client.getSettlements(request);
157
+ }
158
+ /**
159
+ * Submit a new order
160
+ */
161
+ async submitOrder(params) {
162
+ return await this.wrapCall(async () => {
163
+ const request = create(SubmitOrderRequestSchema, {
164
+ auth: this.createAuth(),
165
+ marketId: params.marketId,
166
+ orderType: params.orderType,
167
+ price: params.price,
168
+ quantity: params.quantity,
169
+ timeInForce: params.timeInForce,
170
+ expiresAt: params.expiresAt ? dateToTimestamp(params.expiresAt) : undefined,
171
+ traderOrderRef: params.traderOrderRef,
172
+ credentials: params.credentials,
173
+ requirements: params.requirements,
174
+ metadata: params.metadata,
175
+ });
176
+ return await this.client.submitOrder(request);
177
+ }, 'submitOrder');
178
+ }
179
+ /**
180
+ * Cancel an existing order
181
+ */
182
+ async cancelOrder(params) {
183
+ const request = create(CancelOrderRequestSchema, {
184
+ auth: this.createAuth(),
185
+ ...params,
186
+ });
187
+ return await this.client.cancelOrder(request);
188
+ }
189
+ /**
190
+ * Subscribe to orderbook updates (streaming)
191
+ */
192
+ subscribeOrderbook(params) {
193
+ const request = create(SubscribeOrderbookRequestSchema, {
194
+ auth: this.createAuth(),
195
+ ...params,
196
+ });
197
+ return this.client.subscribeOrderbook(request);
198
+ }
199
+ /**
200
+ * Subscribe to order updates (streaming)
201
+ */
202
+ subscribeOrders(params) {
203
+ const request = create(SubscribeOrdersRequestSchema, {
204
+ auth: this.createAuth(),
205
+ ...params,
206
+ });
207
+ return this.client.subscribeOrders(request);
208
+ }
209
+ /**
210
+ * Subscribe to settlement updates (streaming)
211
+ */
212
+ subscribeSettlements(params) {
213
+ const request = create(SubscribeSettlementsRequestSchema, {
214
+ auth: this.createAuth(),
215
+ ...params,
216
+ });
217
+ return this.client.subscribeSettlements(request);
218
+ }
219
+ }
220
+ //# sourceMappingURL=grpc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grpc.js","sourceRoot":"","sources":["../../src/grpc.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export * from "./grpc.js";
@@ -0,0 +1,2 @@
1
+ export * from "./grpc.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC"}