@silvana-one/orderbook 1.1.31 → 1.1.32

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 (54) hide show
  1. package/README.md +150 -54
  2. package/dist/node/index.cjs +630 -41
  3. package/dist/node/index.d.ts +1 -0
  4. package/dist/node/index.js +1 -0
  5. package/dist/node/index.js.map +1 -1
  6. package/dist/node/ledger.d.ts +95 -0
  7. package/dist/node/ledger.js +170 -0
  8. package/dist/node/ledger.js.map +1 -0
  9. package/dist/node/orderbook.d.ts +58 -2
  10. package/dist/node/orderbook.js +74 -2
  11. package/dist/node/orderbook.js.map +1 -1
  12. package/dist/node/proto/silvana/ledger/v1/ledger_pb.d.ts +2171 -0
  13. package/dist/node/proto/silvana/ledger/v1/ledger_pb.js +559 -0
  14. package/dist/node/proto/silvana/ledger/v1/ledger_pb.js.map +1 -0
  15. package/dist/node/proto/silvana/orderbook/v1/orderbook_pb.d.ts +513 -3
  16. package/dist/node/proto/silvana/orderbook/v1/orderbook_pb.js +95 -1
  17. package/dist/node/proto/silvana/orderbook/v1/orderbook_pb.js.map +1 -1
  18. package/dist/node/proto/silvana/settlement/v1/settlement_pb.d.ts +307 -3
  19. package/dist/node/proto/silvana/settlement/v1/settlement_pb.js +131 -44
  20. package/dist/node/proto/silvana/settlement/v1/settlement_pb.js.map +1 -1
  21. package/dist/node/settlement.d.ts +1 -1
  22. package/dist/node/settlement.js +1 -1
  23. package/dist/node/settlement.js.map +1 -1
  24. package/dist/tsconfig.tsbuildinfo +1 -1
  25. package/dist/tsconfig.web.tsbuildinfo +1 -1
  26. package/dist/web/index.d.ts +1 -0
  27. package/dist/web/index.js +1 -0
  28. package/dist/web/index.js.map +1 -1
  29. package/dist/web/ledger.d.ts +95 -0
  30. package/dist/web/ledger.js +170 -0
  31. package/dist/web/ledger.js.map +1 -0
  32. package/dist/web/orderbook.d.ts +58 -2
  33. package/dist/web/orderbook.js +74 -2
  34. package/dist/web/orderbook.js.map +1 -1
  35. package/dist/web/proto/silvana/ledger/v1/ledger_pb.d.ts +2171 -0
  36. package/dist/web/proto/silvana/ledger/v1/ledger_pb.js +559 -0
  37. package/dist/web/proto/silvana/ledger/v1/ledger_pb.js.map +1 -0
  38. package/dist/web/proto/silvana/orderbook/v1/orderbook_pb.d.ts +513 -3
  39. package/dist/web/proto/silvana/orderbook/v1/orderbook_pb.js +95 -1
  40. package/dist/web/proto/silvana/orderbook/v1/orderbook_pb.js.map +1 -1
  41. package/dist/web/proto/silvana/settlement/v1/settlement_pb.d.ts +307 -3
  42. package/dist/web/proto/silvana/settlement/v1/settlement_pb.js +131 -44
  43. package/dist/web/proto/silvana/settlement/v1/settlement_pb.js.map +1 -1
  44. package/dist/web/settlement.d.ts +1 -1
  45. package/dist/web/settlement.js +1 -1
  46. package/dist/web/settlement.js.map +1 -1
  47. package/package.json +7 -6
  48. package/src/index.ts +1 -0
  49. package/src/ledger.ts +267 -0
  50. package/src/orderbook.ts +123 -1
  51. package/src/proto/silvana/ledger/v1/ledger_pb.ts +2531 -0
  52. package/src/proto/silvana/orderbook/v1/orderbook_pb.ts +611 -4
  53. package/src/proto/silvana/settlement/v1/settlement_pb.ts +402 -46
  54. package/src/settlement.ts +12 -0
@@ -537,6 +537,12 @@ export type SettlementHandshake = Message<"silvana.settlement.v1.SettlementHands
537
537
  * @generated from field: optional google.protobuf.Struct capabilities = 5;
538
538
  */
539
539
  capabilities?: JsonObject;
540
+ /**
541
+ * If set, this agent is a liquidity provider
542
+ *
543
+ * @generated from field: optional string liquidity_provider_name = 6;
544
+ */
545
+ liquidityProviderName?: string;
540
546
  };
541
547
  /**
542
548
  * Describes the message silvana.settlement.v1.SettlementHandshake.
@@ -659,6 +665,198 @@ export type LiquidityProviderPong = Message<"silvana.settlement.v1.LiquidityProv
659
665
  * Use `create(LiquidityProviderPongSchema)` to create a new message.
660
666
  */
661
667
  export declare const LiquidityProviderPongSchema: GenMessage<LiquidityProviderPong>;
668
+ /**
669
+ * RFQ request from server to LP agent (via stream) — anonymous: no requesting party
670
+ *
671
+ * @generated from message silvana.settlement.v1.RfqRequest
672
+ */
673
+ export type RfqRequest = Message<"silvana.settlement.v1.RfqRequest"> & {
674
+ /**
675
+ * UUIDv7 — unique per RFQ session
676
+ *
677
+ * @generated from field: string rfq_id = 1;
678
+ */
679
+ rfqId: string;
680
+ /**
681
+ * @generated from field: string market_id = 2;
682
+ */
683
+ marketId: string;
684
+ /**
685
+ * What the USER wants to do (buy/sell)
686
+ *
687
+ * @generated from field: silvana.settlement.v1.RfqDirection direction = 3;
688
+ */
689
+ direction: RfqDirection;
690
+ /**
691
+ * DECIMAL(38,10) as string — base instrument quantity
692
+ *
693
+ * @generated from field: string quantity = 4;
694
+ */
695
+ quantity: string;
696
+ /**
697
+ * Server-enforced deadline for LP response
698
+ *
699
+ * @generated from field: google.protobuf.Timestamp respond_by = 5;
700
+ */
701
+ respondBy?: Timestamp;
702
+ /**
703
+ * @generated from field: google.protobuf.Timestamp created_at = 6;
704
+ */
705
+ createdAt?: Timestamp;
706
+ };
707
+ /**
708
+ * Describes the message silvana.settlement.v1.RfqRequest.
709
+ * Use `create(RfqRequestSchema)` to create a new message.
710
+ */
711
+ export declare const RfqRequestSchema: GenMessage<RfqRequest>;
712
+ /**
713
+ * RFQ quote response from LP agent to server (via stream)
714
+ *
715
+ * @generated from message silvana.settlement.v1.RfqQuote
716
+ */
717
+ export type RfqQuote = Message<"silvana.settlement.v1.RfqQuote"> & {
718
+ /**
719
+ * Must match RfqRequest.rfq_id
720
+ *
721
+ * @generated from field: string rfq_id = 1;
722
+ */
723
+ rfqId: string;
724
+ /**
725
+ * UUIDv7 — unique per quote
726
+ *
727
+ * @generated from field: string quote_id = 2;
728
+ */
729
+ quoteId: string;
730
+ /**
731
+ * @generated from field: string market_id = 3;
732
+ */
733
+ marketId: string;
734
+ /**
735
+ * Echoes the request direction
736
+ *
737
+ * @generated from field: silvana.settlement.v1.RfqDirection direction = 4;
738
+ */
739
+ direction: RfqDirection;
740
+ /**
741
+ * DECIMAL(38,10) as string — base quantity being quoted
742
+ *
743
+ * @generated from field: string quantity = 5;
744
+ */
745
+ quantity: string;
746
+ /**
747
+ * DECIMAL(38,10) as string — price per unit of base
748
+ *
749
+ * @generated from field: string price = 6;
750
+ */
751
+ price: string;
752
+ /**
753
+ * DECIMAL(38,10) as string — total quote instrument amount (price × quantity)
754
+ *
755
+ * @generated from field: string quote_quantity = 7;
756
+ */
757
+ quoteQuantity: string;
758
+ /**
759
+ * How many seconds this quote is valid
760
+ *
761
+ * @generated from field: uint32 valid_for_secs = 8;
762
+ */
763
+ validForSecs: number;
764
+ /**
765
+ * Absolute expiry
766
+ *
767
+ * @generated from field: google.protobuf.Timestamp valid_until = 9;
768
+ */
769
+ validUntil?: Timestamp;
770
+ /**
771
+ * LP's Canton party ID (the counterparty for DVP)
772
+ *
773
+ * @generated from field: string lp_party_id = 10;
774
+ */
775
+ lpPartyId: string;
776
+ /**
777
+ * LP display name
778
+ *
779
+ * @generated from field: string lp_name = 11;
780
+ */
781
+ lpName: string;
782
+ /**
783
+ * @generated from field: google.protobuf.Timestamp quoted_at = 12;
784
+ */
785
+ quotedAt?: Timestamp;
786
+ /**
787
+ * Seconds from DVP creation for allocation deadline
788
+ *
789
+ * @generated from field: optional uint32 allocate_before_secs = 13;
790
+ */
791
+ allocateBeforeSecs?: number;
792
+ /**
793
+ * Seconds from DVP creation for settlement deadline
794
+ *
795
+ * @generated from field: optional uint32 settle_before_secs = 14;
796
+ */
797
+ settleBeforeSecs?: number;
798
+ };
799
+ /**
800
+ * Describes the message silvana.settlement.v1.RfqQuote.
801
+ * Use `create(RfqQuoteSchema)` to create a new message.
802
+ */
803
+ export declare const RfqQuoteSchema: GenMessage<RfqQuote>;
804
+ /**
805
+ * RFQ rejection from LP agent to server (via stream)
806
+ *
807
+ * @generated from message silvana.settlement.v1.RfqReject
808
+ */
809
+ export type RfqReject = Message<"silvana.settlement.v1.RfqReject"> & {
810
+ /**
811
+ * Must match RfqRequest.rfq_id
812
+ *
813
+ * @generated from field: string rfq_id = 1;
814
+ */
815
+ rfqId: string;
816
+ /**
817
+ * LP's Canton party ID
818
+ *
819
+ * @generated from field: string lp_party_id = 2;
820
+ */
821
+ lpPartyId: string;
822
+ /**
823
+ * LP display name
824
+ *
825
+ * @generated from field: string lp_name = 3;
826
+ */
827
+ lpName: string;
828
+ /**
829
+ * @generated from field: silvana.settlement.v1.RfqRejectionReason reason = 4;
830
+ */
831
+ reason: RfqRejectionReason;
832
+ /**
833
+ * Human-readable detail
834
+ *
835
+ * @generated from field: optional string reason_detail = 5;
836
+ */
837
+ reasonDetail?: string;
838
+ /**
839
+ * @generated from field: google.protobuf.Timestamp rejected_at = 6;
840
+ */
841
+ rejectedAt?: Timestamp;
842
+ /**
843
+ * LP's min acceptable quantity (set on AmountTooSmall/AmountTooLarge)
844
+ *
845
+ * @generated from field: optional string min_quantity = 7;
846
+ */
847
+ minQuantity?: string;
848
+ /**
849
+ * LP's max acceptable quantity (set on AmountTooSmall/AmountTooLarge)
850
+ *
851
+ * @generated from field: optional string max_quantity = 8;
852
+ */
853
+ maxQuantity?: string;
854
+ };
855
+ /**
856
+ * Describes the message silvana.settlement.v1.RfqReject.
857
+ * Use `create(RfqRejectSchema)` to create a new message.
858
+ */
859
+ export declare const RfqRejectSchema: GenMessage<RfqReject>;
662
860
  /**
663
861
  * Stream message from server to Canton node
664
862
  *
@@ -738,12 +936,20 @@ export type ServerToCantonMessage = Message<"silvana.settlement.v1.ServerToCanto
738
936
  case: "query";
739
937
  } | {
740
938
  /**
741
- * Pong acknowledgment for LP activity ping
939
+ * Pong acknowledgment for LP activity ping (deprecated)
742
940
  *
743
941
  * @generated from field: silvana.settlement.v1.LiquidityProviderPong lp_pong = 14;
744
942
  */
745
943
  value: LiquidityProviderPong;
746
944
  case: "lpPong";
945
+ } | {
946
+ /**
947
+ * RFQ request to LP agent
948
+ *
949
+ * @generated from field: silvana.settlement.v1.RfqRequest rfq_request = 15;
950
+ */
951
+ value: RfqRequest;
952
+ case: "rfqRequest";
747
953
  } | {
748
954
  case: undefined;
749
955
  value?: undefined;
@@ -837,12 +1043,28 @@ export type CantonToServerMessage = Message<"silvana.settlement.v1.CantonToServe
837
1043
  case: "status";
838
1044
  } | {
839
1045
  /**
840
- * Ping from settlement agent for LP activity
1046
+ * Ping from settlement agent (deprecated)
841
1047
  *
842
1048
  * @generated from field: silvana.settlement.v1.LiquidityProviderPing lp_ping = 14;
843
1049
  */
844
1050
  value: LiquidityProviderPing;
845
1051
  case: "lpPing";
1052
+ } | {
1053
+ /**
1054
+ * LP quote response
1055
+ *
1056
+ * @generated from field: silvana.settlement.v1.RfqQuote rfq_quote = 15;
1057
+ */
1058
+ value: RfqQuote;
1059
+ case: "rfqQuote";
1060
+ } | {
1061
+ /**
1062
+ * LP rejection response
1063
+ *
1064
+ * @generated from field: silvana.settlement.v1.RfqReject rfq_reject = 16;
1065
+ */
1066
+ value: RfqReject;
1067
+ case: "rfqReject";
846
1068
  } | {
847
1069
  case: undefined;
848
1070
  value?: undefined;
@@ -1829,6 +2051,12 @@ export type RecordTransactionRequest = Message<"silvana.settlement.v1.RecordTran
1829
2051
  * @generated from field: optional string amount = 12;
1830
2052
  */
1831
2053
  amount?: string;
2054
+ /**
2055
+ * instrument_id from instruments table
2056
+ *
2057
+ * @generated from field: optional string token = 27;
2058
+ */
2059
+ token?: string;
1832
2060
  /**
1833
2061
  * @generated from field: optional string rewards_amount = 13;
1834
2062
  */
@@ -2033,6 +2261,12 @@ export type TransactionHistoryEntry = Message<"silvana.settlement.v1.Transaction
2033
2261
  * @generated from field: optional string amount = 12;
2034
2262
  */
2035
2263
  amount?: string;
2264
+ /**
2265
+ * instrument_id from instruments table
2266
+ *
2267
+ * @generated from field: optional string token = 27;
2268
+ */
2269
+ token?: string;
2036
2270
  /**
2037
2271
  * @generated from field: optional string rewards_amount = 13;
2038
2272
  */
@@ -2633,7 +2867,11 @@ export declare enum TransactionType {
2633
2867
  /**
2634
2868
  * @generated from enum value: TRANSACTION_TYPE_OTHER = 13;
2635
2869
  */
2636
- OTHER = 13
2870
+ OTHER = 13,
2871
+ /**
2872
+ * @generated from enum value: TRANSACTION_TYPE_TRANSFER = 14;
2873
+ */
2874
+ TRANSFER = 14
2637
2875
  }
2638
2876
  /**
2639
2877
  * Describes the enum silvana.settlement.v1.TransactionType.
@@ -3012,6 +3250,72 @@ export declare enum NextAction {
3012
3250
  * Describes the enum silvana.settlement.v1.NextAction.
3013
3251
  */
3014
3252
  export declare const NextActionSchema: GenEnum<NextAction>;
3253
+ /**
3254
+ * Direction the user wants to trade
3255
+ *
3256
+ * @generated from enum silvana.settlement.v1.RfqDirection
3257
+ */
3258
+ export declare enum RfqDirection {
3259
+ /**
3260
+ * @generated from enum value: RFQ_DIRECTION_UNSPECIFIED = 0;
3261
+ */
3262
+ UNSPECIFIED = 0,
3263
+ /**
3264
+ * User wants to buy base instrument
3265
+ *
3266
+ * @generated from enum value: RFQ_DIRECTION_BUY = 1;
3267
+ */
3268
+ BUY = 1,
3269
+ /**
3270
+ * User wants to sell base instrument
3271
+ *
3272
+ * @generated from enum value: RFQ_DIRECTION_SELL = 2;
3273
+ */
3274
+ SELL = 2
3275
+ }
3276
+ /**
3277
+ * Describes the enum silvana.settlement.v1.RfqDirection.
3278
+ */
3279
+ export declare const RfqDirectionSchema: GenEnum<RfqDirection>;
3280
+ /**
3281
+ * RFQ rejection reason
3282
+ *
3283
+ * @generated from enum silvana.settlement.v1.RfqRejectionReason
3284
+ */
3285
+ export declare enum RfqRejectionReason {
3286
+ /**
3287
+ * @generated from enum value: RFQ_REJECTION_REASON_UNSPECIFIED = 0;
3288
+ */
3289
+ UNSPECIFIED = 0,
3290
+ /**
3291
+ * @generated from enum value: RFQ_REJECTION_REASON_MARKET_NOT_SUPPORTED = 1;
3292
+ */
3293
+ MARKET_NOT_SUPPORTED = 1,
3294
+ /**
3295
+ * @generated from enum value: RFQ_REJECTION_REASON_AMOUNT_TOO_LARGE = 2;
3296
+ */
3297
+ AMOUNT_TOO_LARGE = 2,
3298
+ /**
3299
+ * @generated from enum value: RFQ_REJECTION_REASON_AMOUNT_TOO_SMALL = 3;
3300
+ */
3301
+ AMOUNT_TOO_SMALL = 3,
3302
+ /**
3303
+ * @generated from enum value: RFQ_REJECTION_REASON_INSUFFICIENT_INVENTORY = 4;
3304
+ */
3305
+ INSUFFICIENT_INVENTORY = 4,
3306
+ /**
3307
+ * @generated from enum value: RFQ_REJECTION_REASON_MARKET_CONDITIONS = 5;
3308
+ */
3309
+ MARKET_CONDITIONS = 5,
3310
+ /**
3311
+ * @generated from enum value: RFQ_REJECTION_REASON_TEMPORARILY_UNAVAILABLE = 6;
3312
+ */
3313
+ TEMPORARILY_UNAVAILABLE = 6
3314
+ }
3315
+ /**
3316
+ * Describes the enum silvana.settlement.v1.RfqRejectionReason.
3317
+ */
3318
+ export declare const RfqRejectionReasonSchema: GenEnum<RfqRejectionReason>;
3015
3319
  /**
3016
3320
  * Result of a settlement event
3017
3321
  *