@silvana-one/orderbook 1.1.30 → 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 +641 -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 +387 -4
  19. package/dist/node/proto/silvana/settlement/v1/settlement_pb.js +191 -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 +387 -4
  42. package/dist/web/proto/silvana/settlement/v1/settlement_pb.js +191 -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 +496 -47
  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;
@@ -1500,11 +1722,31 @@ export type GetSettlementStatusResponse = Message<"silvana.settlement.v1.GetSett
1500
1722
  */
1501
1723
  trafficCompensationSeller?: DvpStepStatus;
1502
1724
  /**
1503
- * Preconfirmation step (optional)
1725
+ * Preconfirmation step (combined, kept for backward compat)
1504
1726
  *
1505
1727
  * @generated from field: silvana.settlement.v1.DvpStepStatus preconfirmation = 21;
1506
1728
  */
1507
1729
  preconfirmation?: DvpStepStatus;
1730
+ /**
1731
+ * Split preconfirmation into buyer/seller
1732
+ *
1733
+ * @generated from field: silvana.settlement.v1.DvpStepStatus preconfirmation_buyer = 22;
1734
+ */
1735
+ preconfirmationBuyer?: DvpStepStatus;
1736
+ /**
1737
+ * @generated from field: silvana.settlement.v1.DvpStepStatus preconfirmation_seller = 23;
1738
+ */
1739
+ preconfirmationSeller?: DvpStepStatus;
1740
+ /**
1741
+ * Server-computed next actions for each party
1742
+ *
1743
+ * @generated from field: silvana.settlement.v1.NextAction buyer_next_action = 24;
1744
+ */
1745
+ buyerNextAction: NextAction;
1746
+ /**
1747
+ * @generated from field: silvana.settlement.v1.NextAction seller_next_action = 25;
1748
+ */
1749
+ sellerNextAction: NextAction;
1508
1750
  };
1509
1751
  /**
1510
1752
  * Describes the message silvana.settlement.v1.GetSettlementStatusResponse.
@@ -1809,6 +2051,12 @@ export type RecordTransactionRequest = Message<"silvana.settlement.v1.RecordTran
1809
2051
  * @generated from field: optional string amount = 12;
1810
2052
  */
1811
2053
  amount?: string;
2054
+ /**
2055
+ * instrument_id from instruments table
2056
+ *
2057
+ * @generated from field: optional string token = 27;
2058
+ */
2059
+ token?: string;
1812
2060
  /**
1813
2061
  * @generated from field: optional string rewards_amount = 13;
1814
2062
  */
@@ -2013,6 +2261,12 @@ export type TransactionHistoryEntry = Message<"silvana.settlement.v1.Transaction
2013
2261
  * @generated from field: optional string amount = 12;
2014
2262
  */
2015
2263
  amount?: string;
2264
+ /**
2265
+ * instrument_id from instruments table
2266
+ *
2267
+ * @generated from field: optional string token = 27;
2268
+ */
2269
+ token?: string;
2016
2270
  /**
2017
2271
  * @generated from field: optional string rewards_amount = 13;
2018
2272
  */
@@ -2613,7 +2867,11 @@ export declare enum TransactionType {
2613
2867
  /**
2614
2868
  * @generated from enum value: TRANSACTION_TYPE_OTHER = 13;
2615
2869
  */
2616
- OTHER = 13
2870
+ OTHER = 13,
2871
+ /**
2872
+ * @generated from enum value: TRANSACTION_TYPE_TRANSFER = 14;
2873
+ */
2874
+ TRANSFER = 14
2617
2875
  }
2618
2876
  /**
2619
2877
  * Describes the enum silvana.settlement.v1.TransactionType.
@@ -2933,6 +3191,131 @@ export declare enum RecordedByRole {
2933
3191
  * Describes the enum silvana.settlement.v1.RecordedByRole.
2934
3192
  */
2935
3193
  export declare const RecordedByRoleSchema: GenEnum<RecordedByRole>;
3194
+ /**
3195
+ * Next action for a party in the settlement flow
3196
+ *
3197
+ * @generated from enum silvana.settlement.v1.NextAction
3198
+ */
3199
+ export declare enum NextAction {
3200
+ /**
3201
+ * No action needed (terminal state or all done)
3202
+ *
3203
+ * @generated from enum value: NEXT_ACTION_NONE = 0;
3204
+ */
3205
+ NONE = 0,
3206
+ /**
3207
+ * Confirm the settlement
3208
+ *
3209
+ * @generated from enum value: NEXT_ACTION_PRECONFIRM = 1;
3210
+ */
3211
+ PRECONFIRM = 1,
3212
+ /**
3213
+ * Pay DVP processing fee
3214
+ *
3215
+ * @generated from enum value: NEXT_ACTION_PAY_DVP_FEE = 2;
3216
+ */
3217
+ PAY_DVP_FEE = 2,
3218
+ /**
3219
+ * Buyer: create DVP proposal
3220
+ *
3221
+ * @generated from enum value: NEXT_ACTION_CREATE_DVP = 3;
3222
+ */
3223
+ CREATE_DVP = 3,
3224
+ /**
3225
+ * Seller: accept DVP proposal
3226
+ *
3227
+ * @generated from enum value: NEXT_ACTION_ACCEPT_DVP = 4;
3228
+ */
3229
+ ACCEPT_DVP = 4,
3230
+ /**
3231
+ * Pay allocation processing fee
3232
+ *
3233
+ * @generated from enum value: NEXT_ACTION_PAY_ALLOC_FEE = 5;
3234
+ */
3235
+ PAY_ALLOC_FEE = 5,
3236
+ /**
3237
+ * Allocate tokens
3238
+ *
3239
+ * @generated from enum value: NEXT_ACTION_ALLOCATE = 6;
3240
+ */
3241
+ ALLOCATE = 6,
3242
+ /**
3243
+ * Waiting for counterparty/operator
3244
+ *
3245
+ * @generated from enum value: NEXT_ACTION_WAIT = 7;
3246
+ */
3247
+ WAIT = 7
3248
+ }
3249
+ /**
3250
+ * Describes the enum silvana.settlement.v1.NextAction.
3251
+ */
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>;
2936
3319
  /**
2937
3320
  * Result of a settlement event
2938
3321
  *