@deriverse/kit 1.0.7 → 1.0.8

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 (2) hide show
  1. package/dist/index.js +34 -16
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -175,23 +175,29 @@ function findAssociatedTokenAddress(owner, tokenProgramId, mint) {
175
175
  return address;
176
176
  });
177
177
  }
178
- function getMultipleSpotOrders(data, firstEntry) {
178
+ function getMultipleSpotOrders(data, firstEntry, clientId) {
179
179
  let orders = [];
180
180
  let entry = firstEntry;
181
181
  while (entry != nullOrder) {
182
182
  const offset = entry * 64 + structure_models_1.SpotTradeAccountHeaderModel.LENGTH;
183
- let order = structure_models_1.OrderModel.fromBuffer(data, offset);
183
+ const order = structure_models_1.OrderModel.fromBuffer(data, offset);
184
+ if (order.clientId != clientId) {
185
+ break;
186
+ }
184
187
  orders.push(order);
185
188
  entry = order.clNext;
186
189
  }
187
190
  return orders;
188
191
  }
189
- function getMultiplePerpOrders(data, firstEntry) {
192
+ function getMultiplePerpOrders(data, firstEntry, clientId) {
190
193
  let orders = [];
191
194
  let entry = firstEntry;
192
195
  while (entry != nullOrder) {
193
196
  const offset = entry * 64 + structure_models_1.PerpTradeAccountHeaderModel.LENGTH;
194
- let order = structure_models_1.OrderModel.fromBuffer(data, offset);
197
+ const order = structure_models_1.OrderModel.fromBuffer(data, offset);
198
+ if (order.clientId != clientId) {
199
+ break;
200
+ }
195
201
  orders.push(order);
196
202
  entry = order.clNext;
197
203
  }
@@ -1405,12 +1411,12 @@ class Engine {
1405
1411
  const crncyTokenDec = this.tokenDec(instr.header.crncyTokenId);
1406
1412
  if (args.bidsCount > 1 && args.asksCount > 1) {
1407
1413
  let infos = yield this.rpc.getMultipleAccounts([bidOrdersAccount, askOrdersAccount], { commitment: this.commitment, encoding: 'base64' }).send();
1408
- let bids = getMultipleSpotOrders(infos.value[0].data, args.bidsEntry);
1414
+ let bids = getMultipleSpotOrders(infos.value[0].data, args.bidsEntry, this.originalClientId);
1409
1415
  for (let i = 0; i < bids.length; ++i) {
1410
1416
  bids[i].qty /= assetTokenDec;
1411
1417
  bids[i].sum /= crncyTokenDec;
1412
1418
  }
1413
- let asks = getMultipleSpotOrders(infos.value[1].data, args.asksEntry);
1419
+ let asks = getMultipleSpotOrders(infos.value[1].data, args.asksEntry, this.originalClientId);
1414
1420
  for (let i = 0; i < asks.length; ++i) {
1415
1421
  asks[i].qty /= assetTokenDec;
1416
1422
  asks[i].sum /= crncyTokenDec;
@@ -1432,7 +1438,7 @@ class Engine {
1432
1438
  encoding: 'base64'
1433
1439
  }).send();
1434
1440
  bidContextSlot = Number(info.context.slot);
1435
- bids = getMultipleSpotOrders(info.value.data, args.bidsEntry);
1441
+ bids = getMultipleSpotOrders(info.value.data, args.bidsEntry, this.originalClientId);
1436
1442
  }
1437
1443
  else if (args.bidsCount == 1) {
1438
1444
  let info = yield this.rpc.getAccountInfo(bidOrdersAccount, {
@@ -1443,7 +1449,10 @@ class Engine {
1443
1449
  length: 64
1444
1450
  }
1445
1451
  }).send();
1446
- bids = [structure_models_1.OrderModel.fromBuffer(info.value.data)];
1452
+ const order = structure_models_1.OrderModel.fromBuffer(info.value.data);
1453
+ if (order.clientId == this.originalClientId) {
1454
+ bids = [order];
1455
+ }
1447
1456
  bidContextSlot = Number(info.context.slot);
1448
1457
  }
1449
1458
  if (args.asksCount > 1) {
@@ -1452,7 +1461,7 @@ class Engine {
1452
1461
  encoding: 'base64'
1453
1462
  }).send();
1454
1463
  askContextSlot = Number(info.context.slot);
1455
- asks = getMultipleSpotOrders(info.value.data, args.bidsEntry);
1464
+ asks = getMultipleSpotOrders(info.value.data, args.bidsEntry, this.originalClientId);
1456
1465
  }
1457
1466
  else if (args.asksCount == 1) {
1458
1467
  let info = yield this.rpc.getAccountInfo(askOrdersAccount, {
@@ -1463,7 +1472,10 @@ class Engine {
1463
1472
  length: 64
1464
1473
  }
1465
1474
  }).send();
1466
- asks = [structure_models_1.OrderModel.fromBuffer(info.value.data)];
1475
+ const order = structure_models_1.OrderModel.fromBuffer(info.value.data);
1476
+ if (order.clientId == this.originalClientId) {
1477
+ asks = [order];
1478
+ }
1467
1479
  askContextSlot = Number(info.context.slot);
1468
1480
  }
1469
1481
  for (let i = 0; i < bids.length; ++i) {
@@ -1504,12 +1516,12 @@ class Engine {
1504
1516
  const crncyTokenDec = this.tokenDec(instr.header.crncyTokenId);
1505
1517
  if (args.bidsCount > 1 && args.asksCount > 1) {
1506
1518
  let infos = yield this.rpc.getMultipleAccounts([bidOrdersAccount, askOrdersAccount], { commitment: this.commitment, encoding: 'base64' }).send();
1507
- let bids = getMultiplePerpOrders(infos.value[0].data, args.bidsEntry);
1519
+ let bids = getMultiplePerpOrders(infos.value[0].data, args.bidsEntry, this.originalClientId);
1508
1520
  for (let i = 0; i < bids.length; ++i) {
1509
1521
  bids[i].qty /= assetTokenDec;
1510
1522
  bids[i].sum /= crncyTokenDec;
1511
1523
  }
1512
- let asks = getMultiplePerpOrders(infos.value[1].data, args.asksEntry);
1524
+ let asks = getMultiplePerpOrders(infos.value[1].data, args.asksEntry, this.originalClientId);
1513
1525
  for (let i = 0; i < asks.length; ++i) {
1514
1526
  asks[i].qty /= assetTokenDec;
1515
1527
  asks[i].sum /= crncyTokenDec;
@@ -1528,7 +1540,7 @@ class Engine {
1528
1540
  if (args.bidsCount > 1) {
1529
1541
  let info = yield this.rpc.getAccountInfo(bidOrdersAccount, { commitment: this.commitment, encoding: 'base64' }).send();
1530
1542
  bidContextSlot = Number(info.context.slot);
1531
- bids = getMultiplePerpOrders(info.value.data, args.bidsEntry);
1543
+ bids = getMultiplePerpOrders(info.value.data, args.bidsEntry, this.originalClientId);
1532
1544
  }
1533
1545
  else if (args.bidsCount == 1) {
1534
1546
  let info = yield this.rpc.getAccountInfo(bidOrdersAccount, {
@@ -1539,13 +1551,16 @@ class Engine {
1539
1551
  length: 64
1540
1552
  }
1541
1553
  }).send();
1542
- bids = [structure_models_1.OrderModel.fromBuffer(info.value.data)];
1554
+ const order = structure_models_1.OrderModel.fromBuffer(info.value.data);
1555
+ if (order.clientId == this.originalClientId) {
1556
+ bids = [order];
1557
+ }
1543
1558
  bidContextSlot = Number(info.context.slot);
1544
1559
  }
1545
1560
  if (args.asksCount > 1) {
1546
1561
  let info = yield this.rpc.getAccountInfo(askOrdersAccount, { commitment: this.commitment, encoding: 'base64' }).send();
1547
1562
  askContextSlot = Number(info.context.slot);
1548
- asks = getMultiplePerpOrders(info.value.data, args.bidsEntry);
1563
+ asks = getMultiplePerpOrders(info.value.data, args.bidsEntry, this.originalClientId);
1549
1564
  }
1550
1565
  else if (args.asksCount == 1) {
1551
1566
  let info = yield this.rpc.getAccountInfo(askOrdersAccount, {
@@ -1556,7 +1571,10 @@ class Engine {
1556
1571
  length: 64
1557
1572
  }
1558
1573
  }).send();
1559
- asks = [structure_models_1.OrderModel.fromBuffer(info.value.data)];
1574
+ const order = structure_models_1.OrderModel.fromBuffer(info.value.data);
1575
+ if (order.clientId == this.originalClientId) {
1576
+ asks = [order];
1577
+ }
1560
1578
  askContextSlot = Number(info.context.slot);
1561
1579
  }
1562
1580
  for (let i = 0; i < bids.length; ++i) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deriverse/kit",
3
- "version": "1.0.7",
3
+ "version": "1.0.8",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",