@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.
- package/dist/index.js +34 -16
- 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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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) {
|