@riocrypto/common-server 1.0.2781 → 1.0.2782

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.
@@ -1,4 +1,4 @@
1
- import { Quote, Fiat, Crypto, BitsoBankAccount, Side, Country, Order, CryptoAddress, BankAccount, AuthRole, Auth, ImportOrderData, TreasuryProvider, FXProvider, EmarketsFXTrade, ExternalTradingAlgorithm, ExternalTrade, ExternalTradeType, ExternalTradingProvider, ExternalTradingAlgorithmType, STPMXNWithdrawal, AuthPermission, DeferredPaymentType, TwoWaySettlementType, OrderType, EmarketsSettlementType, EmarketsOrderType, BulkBankPayout, BulkCryptoPayout, BulkBankPayment, BulkCryptoPayment, OrderStatus, TWAPSession, TransnetworkFXTrade, TransnetworkSettlementType, TransnetworkOrderType, AuthMethod, StonexFXTrade } from "@riocrypto/common";
1
+ import { Quote, Fiat, Crypto, BitsoBankAccount, Side, Country, Order, CryptoAddress, BankAccount, AuthRole, Auth, ImportOrderData, TreasuryProvider, FXProvider, EmarketsFXTrade, ExternalTradingAlgorithm, ExternalTrade, ExternalTradeType, ExternalTradingProvider, ExternalTradingAlgorithmType, STPMXNWithdrawal, AuthPermission, DeferredPaymentType, TwoWaySettlementType, OrderType, EmarketsSettlementType, EmarketsOrderType, BulkBankPayout, BulkCryptoPayout, BulkBankPayment, BulkCryptoPayment, OrderStatus, TWAPSession, TransnetworkFXTrade, TransnetworkSettlementType, TransnetworkOrderType, AuthMethod, StonexFXTrade, CancelExternalTradeReason } from "@riocrypto/common";
2
2
  import { STPMXNWithdrawalDoc } from "../models/STP-mxn-withdrawal";
3
3
  declare class ClusterClient {
4
4
  private baseUrl;
@@ -125,26 +125,28 @@ declare class ClusterClient {
125
125
  receiverCLABE: string;
126
126
  amount: number;
127
127
  }): Promise<string>;
128
- placeEmarketsTrade({ amountToTrade, limitPrice, settlementType, orderType, side, isExternalTrade, }: {
128
+ placeEmarketsTrade({ externalTradeId, amountToTrade, limitPrice, settlementType, orderType, side, }: {
129
+ externalTradeId: string;
129
130
  amountToTrade: number;
130
131
  limitPrice: number;
131
132
  settlementType: EmarketsSettlementType;
132
133
  orderType: EmarketsOrderType;
133
134
  side: Side;
134
- isExternalTrade: boolean;
135
135
  }): Promise<EmarketsFXTrade>;
136
- placeTransnetworkTrade({ amountToTrade, limitPrice, settlementType, orderType, side, isExternalTrade, }: {
136
+ placeTransnetworkTrade({ externalTradeId, amountToTrade, limitPrice, settlementType, orderType, side, }: {
137
+ externalTradeId: string;
137
138
  amountToTrade: number;
138
139
  limitPrice: number;
139
140
  settlementType: TransnetworkSettlementType;
140
141
  orderType: TransnetworkOrderType;
141
142
  side: Side;
142
- isExternalTrade: boolean;
143
143
  }): Promise<TransnetworkFXTrade>;
144
144
  retryEmarketsTrade(id: string): Promise<void>;
145
145
  cancelEmarketsTrade(id: string): Promise<void>;
146
+ cancelTransnetworkTrade(id: string): Promise<void>;
146
147
  retryExternalTrade(id: string): Promise<void>;
147
- cancelExternalTrade(id: string): Promise<void>;
148
+ takeExternalTradeQuote(id: string, side: Side): Promise<void>;
149
+ cancelExternalTrade(id: string, reason?: CancelExternalTradeReason): Promise<void>;
148
150
  importExternalTrade(data: {
149
151
  provider: ExternalTradingProvider;
150
152
  originCurrency: Crypto | Fiat;
@@ -176,16 +178,19 @@ declare class ClusterClient {
176
178
  stopExternalTradingAlgorithm(id: string): Promise<ExternalTradingAlgorithm>;
177
179
  getExternalTradingAlgorithm(id: string): Promise<ExternalTradingAlgorithm>;
178
180
  getExternalTrade(id: string): Promise<ExternalTrade>;
179
- placeExternalTrade({ provider, type, originCurrency, destinationCurrency, requestedOriginAmount, requestedDestinationAmount, limitPrice, settlementType, arbitrageSessionId, }: {
181
+ placeExternalTrade({ provider, type, originCurrency, destinationCurrency, requestedOriginAmount, requestedDestinationAmount, limitPrice, twoWaySettlementDateOffset, arbitrageSessionId, fxTradeId, timeInForce, valueDate, }: {
180
182
  provider: ExternalTradingProvider;
181
183
  type: ExternalTradeType;
182
184
  originCurrency: Crypto | Fiat;
183
185
  destinationCurrency: Crypto | Fiat;
184
186
  requestedOriginAmount?: number;
185
187
  requestedDestinationAmount?: number;
186
- limitPrice: number;
187
- settlementType?: EmarketsSettlementType | TransnetworkSettlementType;
188
+ limitPrice?: number;
189
+ twoWaySettlementDateOffset: number;
188
190
  arbitrageSessionId?: string;
191
+ fxTradeId?: string;
192
+ timeInForce?: "day" | "gtc" | "ioc" | "fok";
193
+ valueDate?: string;
189
194
  }): Promise<ExternalTrade>;
190
195
  generateSTPDepositCLABE(userId: string): Promise<{
191
196
  CLABE: string;
@@ -482,14 +482,14 @@ class ClusterClient {
482
482
  return (_a = response.data) === null || _a === void 0 ? void 0 : _a.url;
483
483
  });
484
484
  }
485
- placeEmarketsTrade({ amountToTrade, limitPrice, settlementType, orderType, side, isExternalTrade, }) {
485
+ placeEmarketsTrade({ externalTradeId, amountToTrade, limitPrice, settlementType, orderType, side, }) {
486
486
  return __awaiter(this, void 0, void 0, function* () {
487
487
  const response = yield this.axios.post(`${this.baseUrl}/api/emarkets/bot/trades`, {
488
+ externalTradeId,
488
489
  amountToTrade,
489
490
  limitPrice,
490
491
  orderType,
491
492
  side,
492
- isExternalTrade,
493
493
  settlementType,
494
494
  }, {
495
495
  headers: {
@@ -499,14 +499,14 @@ class ClusterClient {
499
499
  return response.data;
500
500
  });
501
501
  }
502
- placeTransnetworkTrade({ amountToTrade, limitPrice, settlementType, orderType, side, isExternalTrade, }) {
502
+ placeTransnetworkTrade({ externalTradeId, amountToTrade, limitPrice, settlementType, orderType, side, }) {
503
503
  return __awaiter(this, void 0, void 0, function* () {
504
504
  const response = yield this.axios.post(`${this.baseUrl}/api/transnetwork/bot/trades`, {
505
+ externalTradeId,
505
506
  amountToTrade,
506
507
  limitPrice,
507
508
  orderType,
508
509
  side,
509
- isExternalTrade,
510
510
  settlementType,
511
511
  }, {
512
512
  headers: {
@@ -534,14 +534,28 @@ class ClusterClient {
534
534
  });
535
535
  });
536
536
  }
537
+ cancelTransnetworkTrade(id) {
538
+ return __awaiter(this, void 0, void 0, function* () {
539
+ yield this.axios.post(`${this.baseUrl}/api/transnetwork/bot/trades/${id}/cancel`, {}, {
540
+ headers: {
541
+ "x-cluster-api-key": this.clusterApiKey,
542
+ },
543
+ });
544
+ });
545
+ }
537
546
  retryExternalTrade(id) {
538
547
  return __awaiter(this, void 0, void 0, function* () {
539
548
  yield this.axios.post(`${this.baseUrl}/api/trading/external/trades/${id}/retry`, {}, { headers: { "x-cluster-api-key": this.clusterApiKey } });
540
549
  });
541
550
  }
542
- cancelExternalTrade(id) {
551
+ takeExternalTradeQuote(id, side) {
552
+ return __awaiter(this, void 0, void 0, function* () {
553
+ yield this.axios.post(`${this.baseUrl}/api/trading/external/trades/${id}/take-quote`, { side }, { headers: { "x-cluster-api-key": this.clusterApiKey } });
554
+ });
555
+ }
556
+ cancelExternalTrade(id, reason) {
543
557
  return __awaiter(this, void 0, void 0, function* () {
544
- yield this.axios.post(`${this.baseUrl}/api/trading/external/trades/${id}/cancel`, {}, { headers: { "x-cluster-api-key": this.clusterApiKey } });
558
+ yield this.axios.post(`${this.baseUrl}/api/trading/external/trades/${id}/cancel`, reason ? { reason } : {}, { headers: { "x-cluster-api-key": this.clusterApiKey } });
545
559
  });
546
560
  }
547
561
  importExternalTrade(data) {
@@ -640,7 +654,7 @@ class ClusterClient {
640
654
  return response.data;
641
655
  });
642
656
  }
643
- placeExternalTrade({ provider, type, originCurrency, destinationCurrency, requestedOriginAmount, requestedDestinationAmount, limitPrice, settlementType, arbitrageSessionId, }) {
657
+ placeExternalTrade({ provider, type, originCurrency, destinationCurrency, requestedOriginAmount, requestedDestinationAmount, limitPrice, twoWaySettlementDateOffset, arbitrageSessionId, fxTradeId, timeInForce, valueDate, }) {
644
658
  return __awaiter(this, void 0, void 0, function* () {
645
659
  const response = yield this.axios.post(`${this.baseUrl}/api/trading/external/trades`, {
646
660
  provider,
@@ -650,8 +664,11 @@ class ClusterClient {
650
664
  requestedOriginAmount,
651
665
  requestedDestinationAmount,
652
666
  limitPrice,
653
- settlementType,
667
+ twoWaySettlementDateOffset,
654
668
  arbitrageSessionId,
669
+ fxTradeId,
670
+ timeInForce,
671
+ valueDate,
655
672
  }, {
656
673
  headers: {
657
674
  "x-cluster-api-key": this.clusterApiKey,
@@ -3,8 +3,7 @@ import { Mongoose, Model, Document, HydratedDocument } from "mongoose";
3
3
  interface EmarketsFXTradeAttrs {
4
4
  createdAt: Date;
5
5
  status: EmarketsFXTradeStatus;
6
- FXTradeId?: string;
7
- isExternalTrade: boolean;
6
+ externalTradeId: string;
8
7
  side: Side;
9
8
  fiat: Fiat;
10
9
  amountToTrade: number;
@@ -20,8 +19,7 @@ interface EmarketsFXTradeDoc extends Document {
20
19
  createdAt: Date;
21
20
  side: Side;
22
21
  status: EmarketsFXTradeStatus;
23
- FXTradeId?: string;
24
- isExternalTrade: boolean;
22
+ externalTradeId: string;
25
23
  fiat: Fiat;
26
24
  amountToTrade: number;
27
25
  amountReceived?: number;
@@ -19,12 +19,9 @@ const buildEmarketsFXTrade = (mongoose) => {
19
19
  type: String,
20
20
  required: true,
21
21
  },
22
- FXTradeId: {
22
+ externalTradeId: {
23
23
  type: String,
24
24
  },
25
- isExternalTrade: {
26
- type: Boolean,
27
- },
28
25
  fiat: {
29
26
  type: String,
30
27
  required: true,
@@ -18,6 +18,7 @@ interface ExternalTradeAttrs {
18
18
  actualPrice?: number;
19
19
  associatedMidmarketPrice?: number;
20
20
  status: ExternalTradeStatus;
21
+ fxTradeId?: string;
21
22
  providerOptions?: {
22
23
  emarkets?: {
23
24
  settlementType?: EmarketsSettlementType;
@@ -58,6 +59,7 @@ interface ExternalTradeDoc extends Document {
58
59
  actualPrice?: number;
59
60
  associatedMidmarketPrice?: number;
60
61
  status: ExternalTradeStatus;
62
+ fxTradeId?: string;
61
63
  providerOptions?: {
62
64
  emarkets?: {
63
65
  settlementType?: EmarketsSettlementType;
@@ -29,6 +29,9 @@ const buildExternalTrade = (mongoose) => {
29
29
  type: String,
30
30
  required: true,
31
31
  },
32
+ fxTradeId: {
33
+ type: String,
34
+ },
32
35
  provider: {
33
36
  type: String,
34
37
  required: true,
@@ -1,4 +1,4 @@
1
- import { Fiat, FXProvider, FXTradeStatus, Side, Crypto, EmarketsSettlementType, TransnetworkSettlementType } from "@riocrypto/common";
1
+ import { Fiat, FXProvider, FXTradeStatus, Side, Crypto, ExternalTradeStatus } from "@riocrypto/common";
2
2
  import { Mongoose, Model, Document, HydratedDocument } from "mongoose";
3
3
  interface FXTradeAttrs {
4
4
  createdAt: Date;
@@ -6,17 +6,19 @@ interface FXTradeAttrs {
6
6
  orderIds: string[];
7
7
  amount: number;
8
8
  fiat: Fiat;
9
- settlementType?: EmarketsSettlementType | TransnetworkSettlementType;
10
9
  averageOfferedPrice: number;
11
10
  amountTraded: number;
12
11
  price?: number;
13
12
  provider: FXProvider;
13
+ twoWaySettlementDate: Date;
14
+ twoWaySettlementDateOffset: number;
14
15
  executedTrades: {
15
16
  amount: number;
16
17
  provider: FXProvider;
17
- price: number;
18
+ price?: number;
19
+ status: ExternalTradeStatus;
18
20
  matchedTradeId?: string;
19
- providerOrderId?: string;
21
+ externalTradeId?: string;
20
22
  }[];
21
23
  isRunning?: boolean;
22
24
  status: FXTradeStatus;
@@ -29,16 +31,18 @@ interface FXTradeDoc extends Document {
29
31
  amount: number;
30
32
  fiat: Fiat;
31
33
  amountTraded: number;
32
- settlementType?: EmarketsSettlementType | TransnetworkSettlementType;
33
34
  averageOfferedPrice: number;
34
35
  price?: number;
35
36
  provider: FXProvider;
37
+ twoWaySettlementDate: Date;
38
+ twoWaySettlementDateOffset: number;
36
39
  executedTrades: {
37
40
  amount: number;
38
41
  provider: FXProvider;
39
- price: number;
42
+ price?: number;
43
+ status: ExternalTradeStatus;
40
44
  matchedTradeId?: string;
41
- providerOrderId?: string;
45
+ externalTradeId?: string;
42
46
  }[];
43
47
  status: FXTradeStatus;
44
48
  isRunning?: boolean;
@@ -27,8 +27,11 @@ const buildFXTrade = (mongoose) => {
27
27
  type: String,
28
28
  required: true,
29
29
  },
30
- settlementType: {
31
- type: String,
30
+ twoWaySettlementDate: {
31
+ type: mongoose.Schema.Types.Date,
32
+ },
33
+ twoWaySettlementDateOffset: {
34
+ type: Number,
32
35
  },
33
36
  amountTraded: {
34
37
  type: Number,
@@ -3,8 +3,7 @@ import { Mongoose, Model, Document, HydratedDocument } from "mongoose";
3
3
  interface TransnetworkFXTradeAttrs {
4
4
  createdAt: Date;
5
5
  status: TransnetworkFXTradeStatus;
6
- FXTradeId?: string;
7
- isExternalTrade: boolean;
6
+ externalTradeId?: string;
8
7
  side: Side;
9
8
  fiat: Fiat;
10
9
  amountToTrade: number;
@@ -21,8 +20,7 @@ interface TransnetworkFXTradeDoc extends Document {
21
20
  createdAt: Date;
22
21
  side: Side;
23
22
  status: TransnetworkFXTradeStatus;
24
- FXTradeId?: string;
25
- isExternalTrade: boolean;
23
+ externalTradeId?: string;
26
24
  fiat: Fiat;
27
25
  amountToTrade: number;
28
26
  amountReceived?: number;
@@ -19,12 +19,9 @@ const buildTransnetworkFXTrade = (mongoose) => {
19
19
  type: String,
20
20
  required: true,
21
21
  },
22
- FXTradeId: {
22
+ externalTradeId: {
23
23
  type: String,
24
24
  },
25
- isExternalTrade: {
26
- type: Boolean,
27
- },
28
25
  fiat: {
29
26
  type: String,
30
27
  required: true,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@riocrypto/common-server",
3
- "version": "1.0.2781",
3
+ "version": "1.0.2782",
4
4
  "description": "",
5
5
  "main": "./build/index.js",
6
6
  "types": "./build/index.d.ts",
@@ -24,7 +24,7 @@
24
24
  "@google-cloud/secret-manager": "^5.6.0",
25
25
  "@google-cloud/storage": "^7.19.0",
26
26
  "@hyperdx/node-opentelemetry": "^0.10.3",
27
- "@riocrypto/common": "1.0.2583",
27
+ "@riocrypto/common": "1.0.2584",
28
28
  "@slack/web-api": "^7.15.0",
29
29
  "@types/express": "^4.17.25",
30
30
  "axios": "1.13.6",