@riocrypto/common-server 1.0.2670 → 1.0.2673
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 } 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 } from "@riocrypto/common";
|
|
2
2
|
import { STPMXNWithdrawalDoc } from "../models/STP-mxn-withdrawal";
|
|
3
3
|
declare class ClusterClient {
|
|
4
4
|
private baseUrl;
|
|
@@ -124,6 +124,14 @@ declare class ClusterClient {
|
|
|
124
124
|
side: Side;
|
|
125
125
|
isExternalTrade: boolean;
|
|
126
126
|
}): Promise<EmarketsFXTrade>;
|
|
127
|
+
placeTransnetworkTrade({ amountToTrade, limitPrice, settlementType, orderType, side, isExternalTrade, }: {
|
|
128
|
+
amountToTrade: number;
|
|
129
|
+
limitPrice: number;
|
|
130
|
+
settlementType: TransnetworkSettlementType;
|
|
131
|
+
orderType: TransnetworkOrderType;
|
|
132
|
+
side: Side;
|
|
133
|
+
isExternalTrade: boolean;
|
|
134
|
+
}): Promise<TransnetworkFXTrade>;
|
|
127
135
|
retryEmarketsTrade(id: string): Promise<void>;
|
|
128
136
|
cancelEmarketsTrade(id: string): Promise<void>;
|
|
129
137
|
retryExternalTrade(id: string): Promise<void>;
|
|
@@ -453,6 +453,23 @@ class ClusterClient {
|
|
|
453
453
|
return response.data;
|
|
454
454
|
});
|
|
455
455
|
}
|
|
456
|
+
placeTransnetworkTrade({ amountToTrade, limitPrice, settlementType, orderType, side, isExternalTrade, }) {
|
|
457
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
458
|
+
const response = yield this.axios.post(`${this.baseUrl}/api/transnetwork/bot/trades`, {
|
|
459
|
+
amountToTrade,
|
|
460
|
+
limitPrice,
|
|
461
|
+
orderType,
|
|
462
|
+
side,
|
|
463
|
+
isExternalTrade,
|
|
464
|
+
settlementType,
|
|
465
|
+
}, {
|
|
466
|
+
headers: {
|
|
467
|
+
"x-cluster-api-key": this.clusterApiKey,
|
|
468
|
+
},
|
|
469
|
+
});
|
|
470
|
+
return response.data;
|
|
471
|
+
});
|
|
472
|
+
}
|
|
456
473
|
retryEmarketsTrade(id) {
|
|
457
474
|
return __awaiter(this, void 0, void 0, function* () {
|
|
458
475
|
yield this.axios.post(`${this.baseUrl}/api/emarkets/bot/trades/${id}/retry`, {}, {
|
|
@@ -28,7 +28,17 @@ const getBulkPaymentFromReference = (reference, mongoose) => __awaiter(void 0, v
|
|
|
28
28
|
],
|
|
29
29
|
},
|
|
30
30
|
});
|
|
31
|
-
//
|
|
31
|
+
// First try exact match on stored reference field (most reliable)
|
|
32
|
+
const exactMatch = bulkPayments.find((bp) => { var _a; return ((_a = bp.reference) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === referenceText; });
|
|
33
|
+
if (exactMatch) {
|
|
34
|
+
return exactMatch;
|
|
35
|
+
}
|
|
36
|
+
// Bulk payment references must contain "bp" prefix to avoid false positives
|
|
37
|
+
// with order references that don't have this prefix
|
|
38
|
+
if (!referenceText.includes("bp")) {
|
|
39
|
+
throw new Error("Bulk payment not found");
|
|
40
|
+
}
|
|
41
|
+
// Match by ID pattern: 2 chars from random portion (8-9) + last 6 chars
|
|
32
42
|
const bulkPayment = bulkPayments.find((bulkPayment) => {
|
|
33
43
|
const bulkPaymentId = bulkPayment.id.toString().toLowerCase();
|
|
34
44
|
const randomPrefix = bulkPaymentId.slice(8, 10);
|
|
@@ -47,14 +47,13 @@ const getOrderFromReference = (reference, mongoose) => __awaiter(void 0, void 0,
|
|
|
47
47
|
break;
|
|
48
48
|
}
|
|
49
49
|
// Check each order ID against the reference
|
|
50
|
-
// Reference format: 2 chars from random portion (8-9) + last 6 chars
|
|
50
|
+
// Reference format: 2 chars from random portion (8-9) + last 6 chars
|
|
51
51
|
for (const order of orders) {
|
|
52
52
|
const orderId = order._id.toString().toLowerCase();
|
|
53
53
|
const randomPrefix = orderId.slice(8, 10);
|
|
54
54
|
const last6 = orderId.slice(-6);
|
|
55
55
|
const reference8Chars = randomPrefix + last6;
|
|
56
56
|
if (referenceText.includes(reference8Chars)) {
|
|
57
|
-
// Found a match, now fetch the full order document
|
|
58
57
|
foundOrder = yield Order.findById(order._id);
|
|
59
58
|
break;
|
|
60
59
|
}
|