@silvana-one/orderbook 1.1.12 → 1.1.15
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/README.md +103 -105
- package/dist/node/index.cjs +64 -20
- package/dist/node/news.d.ts +3 -2
- package/dist/node/news.js +1 -5
- package/dist/node/news.js.map +1 -1
- package/dist/node/orderbook.d.ts +51 -3
- package/dist/node/orderbook.js +62 -6
- package/dist/node/orderbook.js.map +1 -1
- package/dist/node/pricing.d.ts +3 -2
- package/dist/node/pricing.js +1 -5
- package/dist/node/pricing.js.map +1 -1
- package/dist/node/settlement.d.ts +3 -2
- package/dist/node/settlement.js +1 -5
- package/dist/node/settlement.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/tsconfig.web.tsbuildinfo +1 -1
- package/dist/web/news.d.ts +3 -2
- package/dist/web/news.js +1 -5
- package/dist/web/news.js.map +1 -1
- package/dist/web/orderbook.d.ts +51 -3
- package/dist/web/orderbook.js +62 -6
- package/dist/web/orderbook.js.map +1 -1
- package/dist/web/pricing.d.ts +3 -2
- package/dist/web/pricing.js +1 -5
- package/dist/web/pricing.js.map +1 -1
- package/dist/web/settlement.d.ts +3 -2
- package/dist/web/settlement.js +1 -5
- package/dist/web/settlement.js.map +1 -1
- package/package.json +14 -3
- package/src/news.ts +4 -8
- package/src/orderbook.ts +106 -8
- package/src/pricing.ts +4 -8
- package/src/settlement.ts +4 -8
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @silvana-one/orderbook
|
|
2
2
|
|
|
3
|
-
Silvana Orderbook Client
|
|
3
|
+
Silvana Orderbook Client for Node.js and Browser environments.
|
|
4
4
|
|
|
5
5
|
## Installation
|
|
6
6
|
|
|
@@ -8,111 +8,142 @@ Silvana Orderbook Client - A TypeScript/JavaScript client library for interactin
|
|
|
8
8
|
npm install @silvana-one/orderbook
|
|
9
9
|
```
|
|
10
10
|
|
|
11
|
+
For Node.js:
|
|
12
|
+
```bash
|
|
13
|
+
npm install @connectrpc/connect-node
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
For Browser:
|
|
17
|
+
```bash
|
|
18
|
+
npm install @connectrpc/connect-web
|
|
19
|
+
```
|
|
20
|
+
|
|
11
21
|
## Usage
|
|
12
22
|
|
|
13
|
-
###
|
|
23
|
+
### Node.js
|
|
14
24
|
|
|
15
25
|
```typescript
|
|
16
|
-
import {
|
|
26
|
+
import { createGrpcTransport } from "@connectrpc/connect-node";
|
|
27
|
+
import { OrderbookClient, OrderType, TimeInForce } from "@silvana-one/orderbook";
|
|
28
|
+
|
|
29
|
+
const transport = createGrpcTransport({
|
|
30
|
+
baseUrl: "https://api.silvana.one",
|
|
31
|
+
});
|
|
17
32
|
|
|
18
|
-
// Initialize the client
|
|
19
33
|
const client = new OrderbookClient({
|
|
20
|
-
|
|
21
|
-
token:
|
|
34
|
+
transport,
|
|
35
|
+
token: "your-jwt-token",
|
|
22
36
|
});
|
|
23
|
-
```
|
|
24
37
|
|
|
25
|
-
|
|
38
|
+
// Get markets
|
|
39
|
+
const markets = await client.getMarkets();
|
|
40
|
+
console.log(markets.markets);
|
|
26
41
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
marketId: 'BTC-USD',
|
|
42
|
+
// Submit an order
|
|
43
|
+
const order = await client.submitOrder({
|
|
44
|
+
marketId: "BTC-USD",
|
|
31
45
|
orderType: OrderType.BID,
|
|
32
|
-
price:
|
|
33
|
-
quantity:
|
|
46
|
+
price: "50000.00",
|
|
47
|
+
quantity: "0.1",
|
|
34
48
|
timeInForce: TimeInForce.GTC,
|
|
35
|
-
expiresAt: new Date('2024-12-31'),
|
|
36
|
-
traderOrderRef: 'my-order-123'
|
|
37
49
|
});
|
|
38
|
-
|
|
39
|
-
if (response.success) {
|
|
40
|
-
console.log('Order submitted:', response.order);
|
|
41
|
-
}
|
|
42
50
|
```
|
|
43
51
|
|
|
44
|
-
###
|
|
52
|
+
### Browser
|
|
45
53
|
|
|
46
54
|
```typescript
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
55
|
+
import { createGrpcWebTransport } from "@connectrpc/connect-web";
|
|
56
|
+
import { OrderbookClient, OrderType, TimeInForce } from "@silvana-one/orderbook";
|
|
57
|
+
|
|
58
|
+
const transport = createGrpcWebTransport({
|
|
59
|
+
baseUrl: "https://api.silvana.one",
|
|
52
60
|
});
|
|
53
61
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
fromTime: new Date('2024-01-01'),
|
|
58
|
-
toTime: new Date(),
|
|
59
|
-
limit: 100
|
|
62
|
+
const client = new OrderbookClient({
|
|
63
|
+
transport,
|
|
64
|
+
token: "your-jwt-token",
|
|
60
65
|
});
|
|
66
|
+
|
|
67
|
+
// Same API as Node.js
|
|
68
|
+
const markets = await client.getMarkets();
|
|
61
69
|
```
|
|
62
70
|
|
|
63
|
-
|
|
71
|
+
## Clients
|
|
72
|
+
|
|
73
|
+
### OrderbookClient
|
|
74
|
+
|
|
75
|
+
Main client for trading operations.
|
|
64
76
|
|
|
65
77
|
```typescript
|
|
66
|
-
|
|
67
|
-
const depth = await client.getOrderbookDepth({
|
|
68
|
-
marketId: 'BTC-USD',
|
|
69
|
-
depth: 20
|
|
70
|
-
});
|
|
78
|
+
import { OrderbookClient } from "@silvana-one/orderbook";
|
|
71
79
|
|
|
72
|
-
|
|
73
|
-
console.log('Offers:', depth.orderbook?.offers);
|
|
80
|
+
const client = new OrderbookClient({ transport, token });
|
|
74
81
|
|
|
75
|
-
//
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
});
|
|
82
|
+
// Trading
|
|
83
|
+
await client.getMarkets();
|
|
84
|
+
await client.getOrders({ marketId: "BTC-USD" });
|
|
85
|
+
await client.submitOrder({ ... });
|
|
86
|
+
await client.cancelOrder({ orderId: 123n });
|
|
87
|
+
|
|
88
|
+
// Market data
|
|
89
|
+
await client.getOrderbookDepth({ marketId: "BTC-USD", depth: 10 });
|
|
90
|
+
await client.getMarketData({ marketIds: ["BTC-USD"] });
|
|
91
|
+
|
|
92
|
+
// Streaming
|
|
93
|
+
for await (const update of client.subscribeOrderbook({ marketId: "BTC-USD" })) {
|
|
94
|
+
console.log(update);
|
|
95
|
+
}
|
|
79
96
|
```
|
|
80
97
|
|
|
81
|
-
###
|
|
98
|
+
### PricingClient
|
|
99
|
+
|
|
100
|
+
Client for price data and market feeds.
|
|
82
101
|
|
|
83
102
|
```typescript
|
|
84
|
-
|
|
85
|
-
const orderbookStream = client.subscribeOrderbook({
|
|
86
|
-
marketId: 'BTC-USD',
|
|
87
|
-
depth: 10
|
|
88
|
-
});
|
|
103
|
+
import { PricingClient } from "@silvana-one/orderbook";
|
|
89
104
|
|
|
90
|
-
|
|
91
|
-
console.log('Orderbook update:', update);
|
|
92
|
-
}
|
|
105
|
+
const client = new PricingClient({ transport });
|
|
93
106
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
});
|
|
107
|
+
await client.getPrice({ marketId: "BTC-USD" });
|
|
108
|
+
await client.getPrices({ marketIds: ["BTC-USD", "ETH-USD"] });
|
|
109
|
+
await client.getKlines({ marketId: "BTC-USD", interval: "1h", limit: 100 });
|
|
98
110
|
|
|
99
|
-
|
|
100
|
-
|
|
111
|
+
// Streaming
|
|
112
|
+
for await (const update of client.streamPrices({ marketIds: ["BTC-USD"] })) {
|
|
113
|
+
console.log(update);
|
|
101
114
|
}
|
|
102
115
|
```
|
|
103
116
|
|
|
104
|
-
###
|
|
117
|
+
### NewsClient
|
|
118
|
+
|
|
119
|
+
Client for news and market updates.
|
|
105
120
|
|
|
106
121
|
```typescript
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
});
|
|
122
|
+
import { NewsClient } from "@silvana-one/orderbook";
|
|
123
|
+
|
|
124
|
+
const client = new NewsClient({ transport });
|
|
125
|
+
|
|
126
|
+
await client.getNews({ tokens: ["BTC", "ETH"], limit: 10 });
|
|
110
127
|
|
|
111
|
-
|
|
112
|
-
|
|
128
|
+
// Streaming
|
|
129
|
+
for await (const news of client.streamNews({ tokens: ["BTC"] })) {
|
|
130
|
+
console.log(news);
|
|
113
131
|
}
|
|
114
132
|
```
|
|
115
133
|
|
|
134
|
+
### SettlementClient
|
|
135
|
+
|
|
136
|
+
Client for settlement operations (Canton node integration).
|
|
137
|
+
|
|
138
|
+
```typescript
|
|
139
|
+
import { SettlementClient } from "@silvana-one/orderbook";
|
|
140
|
+
|
|
141
|
+
const client = new SettlementClient({ transport });
|
|
142
|
+
|
|
143
|
+
await client.getPendingProposals({ auth, partyId: "party-1" });
|
|
144
|
+
await client.getSettlementStatus({ auth, settlementId: "settlement-1" });
|
|
145
|
+
```
|
|
146
|
+
|
|
116
147
|
## API Methods
|
|
117
148
|
|
|
118
149
|
### Order Management
|
|
@@ -136,56 +167,23 @@ if (cancelResponse.success) {
|
|
|
136
167
|
- `subscribeOrders()` - Stream order updates
|
|
137
168
|
- `subscribeSettlements()` - Stream settlement updates
|
|
138
169
|
|
|
139
|
-
## Types
|
|
170
|
+
## Types
|
|
140
171
|
|
|
141
|
-
|
|
172
|
+
All protobuf types are exported from the package:
|
|
142
173
|
|
|
143
174
|
```typescript
|
|
144
175
|
import {
|
|
176
|
+
Order,
|
|
145
177
|
OrderType,
|
|
146
178
|
OrderStatus,
|
|
147
179
|
TimeInForce,
|
|
148
180
|
MarketType,
|
|
149
181
|
SettlementStatus,
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
type Settlement,
|
|
154
|
-
type OrderbookDepth
|
|
155
|
-
} from '@silvana-one/orderbook';
|
|
156
|
-
```
|
|
157
|
-
|
|
158
|
-
## JWT Authentication
|
|
159
|
-
|
|
160
|
-
All methods require JWT authentication. The token should be signed with an Ed25519 private key and include the necessary claims for accessing the orderbook service.
|
|
161
|
-
|
|
162
|
-
```typescript
|
|
163
|
-
const token = generateJWT({
|
|
164
|
-
sub: 'trader-id',
|
|
165
|
-
exp: Date.now() + 3600000,
|
|
166
|
-
// ... other required claims
|
|
167
|
-
});
|
|
168
|
-
|
|
169
|
-
const client = new OrderbookClient({
|
|
170
|
-
baseUrl: 'http://orderbook-service:50052',
|
|
171
|
-
token
|
|
172
|
-
});
|
|
173
|
-
```
|
|
174
|
-
|
|
175
|
-
## Error Handling
|
|
176
|
-
|
|
177
|
-
All async methods may throw errors. It's recommended to wrap calls in try-catch blocks:
|
|
178
|
-
|
|
179
|
-
```typescript
|
|
180
|
-
try {
|
|
181
|
-
const response = await client.submitOrder({
|
|
182
|
-
// ... order parameters
|
|
183
|
-
});
|
|
184
|
-
} catch (error) {
|
|
185
|
-
console.error('Failed to submit order:', error);
|
|
186
|
-
}
|
|
182
|
+
Market,
|
|
183
|
+
Instrument,
|
|
184
|
+
} from "@silvana-one/orderbook";
|
|
187
185
|
```
|
|
188
186
|
|
|
189
187
|
## License
|
|
190
188
|
|
|
191
|
-
Apache-2.0
|
|
189
|
+
Apache-2.0
|
package/dist/node/index.cjs
CHANGED
|
@@ -178,7 +178,6 @@ __export(index_exports, {
|
|
|
178
178
|
module.exports = __toCommonJS(index_exports);
|
|
179
179
|
|
|
180
180
|
// dist/node/orderbook.js
|
|
181
|
-
var import_connect_node = require("@connectrpc/connect-node");
|
|
182
181
|
var import_connect = require("@connectrpc/connect");
|
|
183
182
|
var import_protobuf = require("@bufbuild/protobuf");
|
|
184
183
|
var import_wkt2 = require("@bufbuild/protobuf/wkt");
|
|
@@ -344,10 +343,7 @@ var OrderbookClient = class {
|
|
|
344
343
|
* @param config Client configuration
|
|
345
344
|
*/
|
|
346
345
|
constructor(config) {
|
|
347
|
-
|
|
348
|
-
baseUrl: config.baseUrl
|
|
349
|
-
});
|
|
350
|
-
this.client = (0, import_connect.createClient)(OrderbookService, transport);
|
|
346
|
+
this.client = (0, import_connect.createClient)(OrderbookService, config.transport);
|
|
351
347
|
this.token = config.token;
|
|
352
348
|
}
|
|
353
349
|
/**
|
|
@@ -536,6 +532,66 @@ var OrderbookClient = class {
|
|
|
536
532
|
return await this.client.createParty(request);
|
|
537
533
|
}, "createParty");
|
|
538
534
|
}
|
|
535
|
+
/**
|
|
536
|
+
* Get a single party by ID
|
|
537
|
+
*/
|
|
538
|
+
async getParty(params) {
|
|
539
|
+
return await this.wrapCall(async () => {
|
|
540
|
+
const request = (0, import_protobuf.create)(GetPartyRequestSchema, {
|
|
541
|
+
auth: this.createAuth(),
|
|
542
|
+
...params
|
|
543
|
+
});
|
|
544
|
+
return await this.client.getParty(request);
|
|
545
|
+
}, "getParty");
|
|
546
|
+
}
|
|
547
|
+
/**
|
|
548
|
+
* List parties with filters and pagination
|
|
549
|
+
*/
|
|
550
|
+
async getParties(params) {
|
|
551
|
+
return await this.wrapCall(async () => {
|
|
552
|
+
const request = (0, import_protobuf.create)(GetPartiesRequestSchema, {
|
|
553
|
+
auth: this.createAuth(),
|
|
554
|
+
...params
|
|
555
|
+
});
|
|
556
|
+
return await this.client.getParties(request);
|
|
557
|
+
}, "getParties");
|
|
558
|
+
}
|
|
559
|
+
/**
|
|
560
|
+
* Update an existing party (admin operation)
|
|
561
|
+
*/
|
|
562
|
+
async updateParty(params) {
|
|
563
|
+
return await this.wrapCall(async () => {
|
|
564
|
+
const request = (0, import_protobuf.create)(UpdatePartyRequestSchema, {
|
|
565
|
+
auth: this.createAuth(),
|
|
566
|
+
...params
|
|
567
|
+
});
|
|
568
|
+
return await this.client.updateParty(request);
|
|
569
|
+
}, "updateParty");
|
|
570
|
+
}
|
|
571
|
+
/**
|
|
572
|
+
* Deactivate a party (soft delete - admin operation)
|
|
573
|
+
*/
|
|
574
|
+
async deactivateParty(params) {
|
|
575
|
+
return await this.wrapCall(async () => {
|
|
576
|
+
const request = (0, import_protobuf.create)(DeactivatePartyRequestSchema, {
|
|
577
|
+
auth: this.createAuth(),
|
|
578
|
+
...params
|
|
579
|
+
});
|
|
580
|
+
return await this.client.deactivateParty(request);
|
|
581
|
+
}, "deactivateParty");
|
|
582
|
+
}
|
|
583
|
+
/**
|
|
584
|
+
* Get party change history (audit trail)
|
|
585
|
+
*/
|
|
586
|
+
async getPartyHistory(params) {
|
|
587
|
+
return await this.wrapCall(async () => {
|
|
588
|
+
const request = (0, import_protobuf.create)(GetPartyHistoryRequestSchema, {
|
|
589
|
+
auth: this.createAuth(),
|
|
590
|
+
...params
|
|
591
|
+
});
|
|
592
|
+
return await this.client.getPartyHistory(request);
|
|
593
|
+
}, "getPartyHistory");
|
|
594
|
+
}
|
|
539
595
|
/**
|
|
540
596
|
* Create a new instrument (admin operation)
|
|
541
597
|
*/
|
|
@@ -575,7 +631,6 @@ var OrderbookClient = class {
|
|
|
575
631
|
};
|
|
576
632
|
|
|
577
633
|
// dist/node/pricing.js
|
|
578
|
-
var import_connect_node2 = require("@connectrpc/connect-node");
|
|
579
634
|
var import_connect2 = require("@connectrpc/connect");
|
|
580
635
|
var import_protobuf2 = require("@bufbuild/protobuf");
|
|
581
636
|
var import_wkt4 = require("@bufbuild/protobuf/wkt");
|
|
@@ -627,10 +682,7 @@ var PricingClient = class {
|
|
|
627
682
|
* @param config Client configuration
|
|
628
683
|
*/
|
|
629
684
|
constructor(config) {
|
|
630
|
-
|
|
631
|
-
baseUrl: config.baseUrl
|
|
632
|
-
});
|
|
633
|
-
this.client = (0, import_connect2.createClient)(PricingService, transport);
|
|
685
|
+
this.client = (0, import_connect2.createClient)(PricingService, config.transport);
|
|
634
686
|
}
|
|
635
687
|
/**
|
|
636
688
|
* Wraps async calls with error handling
|
|
@@ -707,7 +759,6 @@ var PricingClient = class {
|
|
|
707
759
|
};
|
|
708
760
|
|
|
709
761
|
// dist/node/news.js
|
|
710
|
-
var import_connect_node3 = require("@connectrpc/connect-node");
|
|
711
762
|
var import_connect3 = require("@connectrpc/connect");
|
|
712
763
|
var import_protobuf3 = require("@bufbuild/protobuf");
|
|
713
764
|
|
|
@@ -738,10 +789,7 @@ var NewsClient = class {
|
|
|
738
789
|
* @param config Client configuration
|
|
739
790
|
*/
|
|
740
791
|
constructor(config) {
|
|
741
|
-
|
|
742
|
-
baseUrl: config.baseUrl
|
|
743
|
-
});
|
|
744
|
-
this.client = (0, import_connect3.createClient)(NewsService, transport);
|
|
792
|
+
this.client = (0, import_connect3.createClient)(NewsService, config.transport);
|
|
745
793
|
}
|
|
746
794
|
/**
|
|
747
795
|
* Wraps async calls with error handling
|
|
@@ -775,7 +823,6 @@ var NewsClient = class {
|
|
|
775
823
|
};
|
|
776
824
|
|
|
777
825
|
// dist/node/settlement.js
|
|
778
|
-
var import_connect_node4 = require("@connectrpc/connect-node");
|
|
779
826
|
var import_connect4 = require("@connectrpc/connect");
|
|
780
827
|
var import_protobuf4 = require("@bufbuild/protobuf");
|
|
781
828
|
|
|
@@ -883,10 +930,7 @@ var SettlementClient = class {
|
|
|
883
930
|
* @param config Client configuration
|
|
884
931
|
*/
|
|
885
932
|
constructor(config) {
|
|
886
|
-
|
|
887
|
-
baseUrl: config.baseUrl
|
|
888
|
-
});
|
|
889
|
-
this.client = (0, import_connect4.createClient)(SettlementService, transport);
|
|
933
|
+
this.client = (0, import_connect4.createClient)(SettlementService, config.transport);
|
|
890
934
|
}
|
|
891
935
|
/**
|
|
892
936
|
* Wraps async calls with error handling
|
package/dist/node/news.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { Transport } from "@connectrpc/connect";
|
|
1
2
|
export * from "./proto/silvana/news/v1/news_pb.js";
|
|
2
3
|
import { type GetNewsResponse } from "./proto/silvana/news/v1/news_pb.js";
|
|
3
4
|
/**
|
|
@@ -12,8 +13,8 @@ export declare class NewsError extends Error {
|
|
|
12
13
|
* News client configuration
|
|
13
14
|
*/
|
|
14
15
|
export interface NewsClientConfig {
|
|
15
|
-
/**
|
|
16
|
-
|
|
16
|
+
/** Transport instance (create with @connectrpc/connect-node or @connectrpc/connect-web) */
|
|
17
|
+
transport: Transport;
|
|
17
18
|
}
|
|
18
19
|
/**
|
|
19
20
|
* News client for interacting with the Silvana News Service
|
package/dist/node/news.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { createGrpcTransport } from "@connectrpc/connect-node";
|
|
2
1
|
import { createClient, ConnectError } from "@connectrpc/connect";
|
|
3
2
|
import { create } from "@bufbuild/protobuf";
|
|
4
3
|
// Export all types and schemas from the generated protobuf file
|
|
@@ -24,10 +23,7 @@ export class NewsClient {
|
|
|
24
23
|
* @param config Client configuration
|
|
25
24
|
*/
|
|
26
25
|
constructor(config) {
|
|
27
|
-
|
|
28
|
-
baseUrl: config.baseUrl,
|
|
29
|
-
});
|
|
30
|
-
this.client = createClient(NewsService, transport);
|
|
26
|
+
this.client = createClient(NewsService, config.transport);
|
|
31
27
|
}
|
|
32
28
|
/**
|
|
33
29
|
* Wraps async calls with error handling
|
package/dist/node/news.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"news.js","sourceRoot":"","sources":["../../src/news.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"news.js","sourceRoot":"","sources":["../../src/news.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEjE,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,gEAAgE;AAChE,cAAc,oCAAoC,CAAC;AAEnD,OAAO,EACL,WAAW,EAEX,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,oCAAoC,CAAC;AAE5C;;GAEG;AACH,MAAM,OAAO,SAAU,SAAQ,KAAK;IAClC,YACE,OAAe,EACR,IAAa,EACb,OAAa;QAEpB,KAAK,CAAC,OAAO,CAAC,CAAC;QAHR,SAAI,GAAJ,IAAI,CAAS;QACb,YAAO,GAAP,OAAO,CAAM;QAGpB,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;IAC1B,CAAC;CACF;AAUD;;GAEG;AACH,MAAM,OAAO,UAAU;IAGrB;;;OAGG;IACH,YAAY,MAAwB;QAClC,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;IAC5D,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,QAAQ,CACpB,SAA2B,EAC3B,aAAqB;QAErB,IAAI,CAAC;YACH,OAAO,MAAM,SAAS,EAAE,CAAC;QAC3B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,YAAY,EAAE,CAAC;gBAClC,MAAM,IAAI,SAAS,CACjB,GAAG,aAAa,YAAY,KAAK,CAAC,OAAO,EAAE,EAC3C,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAClB,KAAK,CAAC,QAAQ,CACf,CAAC;YACJ,CAAC;YACD,MAAM,IAAI,SAAS,CACjB,GAAG,aAAa,YAAY,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,EACtF,SAAS,EACT,KAAK,CACN,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,MAKb;QACC,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;YACpC,MAAM,OAAO,GAAG,MAAM,CAAC,oBAAoB,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC;YAC3D,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC5C,CAAC,EAAE,SAAS,CAAC,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,MAGV;QACC,MAAM,OAAO,GAAG,MAAM,CAAC,uBAAuB,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC;QAC9D,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC;CACF"}
|
package/dist/node/orderbook.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import type { Transport } from "@connectrpc/connect";
|
|
1
2
|
export * from "./proto/silvana/orderbook/v1/orderbook_pb.js";
|
|
2
|
-
import { type GetOrdersResponse, type GetOrderbookDepthResponse, type GetSettlementProposalsResponse, type GetInstrumentsResponse, type GetMarketsResponse, type GetOrderHistoryResponse, type GetMarketDataResponse, type GetSettlementsResponse, type SubmitOrderResponse, type CancelOrderResponse, type CreatePartyResponse, type CreateInstrumentResponse, type CreateMarketResponse, type UpdateMarketPriceFeedsResponse, OrderType, OrderStatus, TimeInForce, MarketType, SettlementStatus } from "./proto/silvana/orderbook/v1/orderbook_pb.js";
|
|
3
|
+
import { type GetOrdersResponse, type GetOrderbookDepthResponse, type GetSettlementProposalsResponse, type GetInstrumentsResponse, type GetMarketsResponse, type GetOrderHistoryResponse, type GetMarketDataResponse, type GetSettlementsResponse, type SubmitOrderResponse, type CancelOrderResponse, type CreatePartyResponse, type CreateInstrumentResponse, type CreateMarketResponse, type UpdateMarketPriceFeedsResponse, type GetPartyResponse, type GetPartiesResponse, type UpdatePartyResponse, type DeactivatePartyResponse, type GetPartyHistoryResponse, OrderType, OrderStatus, TimeInForce, MarketType, SettlementStatus } from "./proto/silvana/orderbook/v1/orderbook_pb.js";
|
|
3
4
|
export { OrderType, OrderStatus, TimeInForce, MarketType, SettlementStatus };
|
|
4
5
|
/**
|
|
5
6
|
* Custom error class for Orderbook client errors
|
|
@@ -13,8 +14,8 @@ export declare class OrderbookError extends Error {
|
|
|
13
14
|
* Orderbook client configuration
|
|
14
15
|
*/
|
|
15
16
|
export interface OrderbookClientConfig {
|
|
16
|
-
/**
|
|
17
|
-
|
|
17
|
+
/** Transport instance (create with @connectrpc/connect-node or @connectrpc/connect-web) */
|
|
18
|
+
transport: Transport;
|
|
18
19
|
/** JWT token for authentication */
|
|
19
20
|
token: string;
|
|
20
21
|
}
|
|
@@ -158,7 +159,54 @@ export declare class OrderbookClient {
|
|
|
158
159
|
userServiceCid?: string;
|
|
159
160
|
operatorConfigCid?: string;
|
|
160
161
|
metadata?: any;
|
|
162
|
+
userServiceRequestCid?: string;
|
|
163
|
+
userData: any;
|
|
161
164
|
}): Promise<CreatePartyResponse>;
|
|
165
|
+
/**
|
|
166
|
+
* Get a single party by ID
|
|
167
|
+
*/
|
|
168
|
+
getParty(params: {
|
|
169
|
+
partyId: string;
|
|
170
|
+
}): Promise<GetPartyResponse>;
|
|
171
|
+
/**
|
|
172
|
+
* List parties with filters and pagination
|
|
173
|
+
*/
|
|
174
|
+
getParties(params?: {
|
|
175
|
+
partyType?: string;
|
|
176
|
+
activeOnly?: boolean;
|
|
177
|
+
limit?: number;
|
|
178
|
+
offset?: number;
|
|
179
|
+
}): Promise<GetPartiesResponse>;
|
|
180
|
+
/**
|
|
181
|
+
* Update an existing party (admin operation)
|
|
182
|
+
*/
|
|
183
|
+
updateParty(params: {
|
|
184
|
+
partyId: string;
|
|
185
|
+
expectedVersion: bigint;
|
|
186
|
+
partyName?: string;
|
|
187
|
+
userServiceCid?: string;
|
|
188
|
+
operatorConfigCid?: string;
|
|
189
|
+
userServiceRequestCid?: string;
|
|
190
|
+
userData?: any;
|
|
191
|
+
metadata?: any;
|
|
192
|
+
changeReason?: string;
|
|
193
|
+
}): Promise<UpdatePartyResponse>;
|
|
194
|
+
/**
|
|
195
|
+
* Deactivate a party (soft delete - admin operation)
|
|
196
|
+
*/
|
|
197
|
+
deactivateParty(params: {
|
|
198
|
+
partyId: string;
|
|
199
|
+
expectedVersion: bigint;
|
|
200
|
+
changeReason: string;
|
|
201
|
+
}): Promise<DeactivatePartyResponse>;
|
|
202
|
+
/**
|
|
203
|
+
* Get party change history (audit trail)
|
|
204
|
+
*/
|
|
205
|
+
getPartyHistory(params: {
|
|
206
|
+
partyId: string;
|
|
207
|
+
limit?: number;
|
|
208
|
+
offset?: number;
|
|
209
|
+
}): Promise<GetPartyHistoryResponse>;
|
|
162
210
|
/**
|
|
163
211
|
* Create a new instrument (admin operation)
|
|
164
212
|
*/
|
package/dist/node/orderbook.js
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import { createGrpcTransport } from "@connectrpc/connect-node";
|
|
2
1
|
import { createClient, ConnectError } from "@connectrpc/connect";
|
|
3
2
|
import { create } from "@bufbuild/protobuf";
|
|
4
3
|
import { TimestampSchema } from "@bufbuild/protobuf/wkt";
|
|
5
4
|
// Export all types and schemas from the generated protobuf file
|
|
6
5
|
export * from "./proto/silvana/orderbook/v1/orderbook_pb.js";
|
|
7
|
-
import { OrderbookService, GetOrdersRequestSchema, GetOrderbookDepthRequestSchema, GetSettlementProposalsRequestSchema, GetInstrumentsRequestSchema, GetMarketsRequestSchema, GetOrderHistoryRequestSchema, GetMarketDataRequestSchema, GetSettlementsRequestSchema, SubmitOrderRequestSchema, CancelOrderRequestSchema, CreatePartyRequestSchema, CreateInstrumentRequestSchema, CreateMarketRequestSchema, UpdateMarketPriceFeedsRequestSchema, SubscribeOrderbookRequestSchema, SubscribeOrdersRequestSchema, SubscribeSettlementsRequestSchema, JWTAuthSchema, OrderType, OrderStatus, TimeInForce, MarketType, SettlementStatus, } from "./proto/silvana/orderbook/v1/orderbook_pb.js";
|
|
6
|
+
import { OrderbookService, GetOrdersRequestSchema, GetOrderbookDepthRequestSchema, GetSettlementProposalsRequestSchema, GetInstrumentsRequestSchema, GetMarketsRequestSchema, GetOrderHistoryRequestSchema, GetMarketDataRequestSchema, GetSettlementsRequestSchema, SubmitOrderRequestSchema, CancelOrderRequestSchema, CreatePartyRequestSchema, CreateInstrumentRequestSchema, CreateMarketRequestSchema, UpdateMarketPriceFeedsRequestSchema, GetPartyRequestSchema, GetPartiesRequestSchema, UpdatePartyRequestSchema, DeactivatePartyRequestSchema, GetPartyHistoryRequestSchema, SubscribeOrderbookRequestSchema, SubscribeOrdersRequestSchema, SubscribeSettlementsRequestSchema, JWTAuthSchema, OrderType, OrderStatus, TimeInForce, MarketType, SettlementStatus, } from "./proto/silvana/orderbook/v1/orderbook_pb.js";
|
|
8
7
|
// Re-export commonly used enums for convenience
|
|
9
8
|
export { OrderType, OrderStatus, TimeInForce, MarketType, SettlementStatus };
|
|
10
9
|
/**
|
|
@@ -35,10 +34,7 @@ export class OrderbookClient {
|
|
|
35
34
|
* @param config Client configuration
|
|
36
35
|
*/
|
|
37
36
|
constructor(config) {
|
|
38
|
-
|
|
39
|
-
baseUrl: config.baseUrl,
|
|
40
|
-
});
|
|
41
|
-
this.client = createClient(OrderbookService, transport);
|
|
37
|
+
this.client = createClient(OrderbookService, config.transport);
|
|
42
38
|
this.token = config.token;
|
|
43
39
|
}
|
|
44
40
|
/**
|
|
@@ -228,6 +224,66 @@ export class OrderbookClient {
|
|
|
228
224
|
return await this.client.createParty(request);
|
|
229
225
|
}, 'createParty');
|
|
230
226
|
}
|
|
227
|
+
/**
|
|
228
|
+
* Get a single party by ID
|
|
229
|
+
*/
|
|
230
|
+
async getParty(params) {
|
|
231
|
+
return await this.wrapCall(async () => {
|
|
232
|
+
const request = create(GetPartyRequestSchema, {
|
|
233
|
+
auth: this.createAuth(),
|
|
234
|
+
...params,
|
|
235
|
+
});
|
|
236
|
+
return await this.client.getParty(request);
|
|
237
|
+
}, 'getParty');
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* List parties with filters and pagination
|
|
241
|
+
*/
|
|
242
|
+
async getParties(params) {
|
|
243
|
+
return await this.wrapCall(async () => {
|
|
244
|
+
const request = create(GetPartiesRequestSchema, {
|
|
245
|
+
auth: this.createAuth(),
|
|
246
|
+
...params,
|
|
247
|
+
});
|
|
248
|
+
return await this.client.getParties(request);
|
|
249
|
+
}, 'getParties');
|
|
250
|
+
}
|
|
251
|
+
/**
|
|
252
|
+
* Update an existing party (admin operation)
|
|
253
|
+
*/
|
|
254
|
+
async updateParty(params) {
|
|
255
|
+
return await this.wrapCall(async () => {
|
|
256
|
+
const request = create(UpdatePartyRequestSchema, {
|
|
257
|
+
auth: this.createAuth(),
|
|
258
|
+
...params,
|
|
259
|
+
});
|
|
260
|
+
return await this.client.updateParty(request);
|
|
261
|
+
}, 'updateParty');
|
|
262
|
+
}
|
|
263
|
+
/**
|
|
264
|
+
* Deactivate a party (soft delete - admin operation)
|
|
265
|
+
*/
|
|
266
|
+
async deactivateParty(params) {
|
|
267
|
+
return await this.wrapCall(async () => {
|
|
268
|
+
const request = create(DeactivatePartyRequestSchema, {
|
|
269
|
+
auth: this.createAuth(),
|
|
270
|
+
...params,
|
|
271
|
+
});
|
|
272
|
+
return await this.client.deactivateParty(request);
|
|
273
|
+
}, 'deactivateParty');
|
|
274
|
+
}
|
|
275
|
+
/**
|
|
276
|
+
* Get party change history (audit trail)
|
|
277
|
+
*/
|
|
278
|
+
async getPartyHistory(params) {
|
|
279
|
+
return await this.wrapCall(async () => {
|
|
280
|
+
const request = create(GetPartyHistoryRequestSchema, {
|
|
281
|
+
auth: this.createAuth(),
|
|
282
|
+
...params,
|
|
283
|
+
});
|
|
284
|
+
return await this.client.getPartyHistory(request);
|
|
285
|
+
}, 'getPartyHistory');
|
|
286
|
+
}
|
|
231
287
|
/**
|
|
232
288
|
* Create a new instrument (admin operation)
|
|
233
289
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orderbook.js","sourceRoot":"","sources":["../../src/orderbook.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"orderbook.js","sourceRoot":"","sources":["../../src/orderbook.ts"],"names":[],"mappings":"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"}
|