@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
- // Reference format: 2 chars from random portion (8-9) + last 6 chars of ID
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 of order ID
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
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@riocrypto/common-server",
3
- "version": "1.0.2670",
3
+ "version": "1.0.2673",
4
4
  "description": "",
5
5
  "main": "./build/index.js",
6
6
  "types": "./build/index.d.ts",