Include clientOrderId in the orderbook slab iterator

This commit is contained in:
Nathaniel Parke 2020-09-01 16:33:53 +08:00
parent 6fce4c5c24
commit 3a5a8f0507
3 changed files with 20 additions and 1 deletions

10
shell
View File

@ -0,0 +1,10 @@
const lib = require('./lib/index');
const solana = require('@solana/web3.js');
const Market = lib.Market;
const Orderbook = lib.Orderbook;
const OpenOrders = lib.OpenOrders;
const DexInstructions = lib.DexInstructions;
const DEX_PROGRAM_ID = lib.DEX_PROGRAM_ID;
const decodeEventQueue = lib.decodeEventQueue;
const decodeRequestQueue = lib.decodeRequestQueue;
const TokenInstructions = lib.TokenInstructions;

View File

@ -842,10 +842,18 @@ export class Orderbook {
}
*[Symbol.iterator](): Generator<Order> {
for (const { key, ownerSlot, owner, quantity, feeTier } of this.slab) {
for (const {
key,
ownerSlot,
owner,
quantity,
feeTier,
clientOrderId,
} of this.slab) {
const price = getPriceFromKey(key);
yield {
orderId: key,
clientId: clientOrderId,
openOrdersAddress: owner,
openOrdersSlot: ownerSlot,
feeTier,

View File

@ -121,6 +121,7 @@ export class Slab {
owner: PublicKey;
quantity: BN;
feeTier: number;
clientOrderId: BN;
}> {
if (this.header.leafCount === 0) {
return;