From 72a7c07edb7dadac34ebfb595c5cb3bcea1a7e07 Mon Sep 17 00:00:00 2001 From: Gary Wang Date: Sat, 29 Aug 2020 17:49:32 -0700 Subject: [PATCH] Update to new dex program and ABI --- src/instructions.js | 9 +++++++-- src/queue.ts | 2 ++ src/slab.test.js | 2 +- src/slab.ts | 3 ++- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/instructions.js b/src/instructions.js index f31f610..f967506 100644 --- a/src/instructions.js +++ b/src/instructions.js @@ -7,11 +7,15 @@ import { u64, VersionedLayout, } from './layout'; -import { PublicKey, TransactionInstruction } from '@solana/web3.js'; +import { + PublicKey, + SYSVAR_RENT_PUBKEY, + TransactionInstruction, +} from '@solana/web3.js'; import { TOKEN_PROGRAM_ID } from './token-instructions'; export const DEX_PROGRAM_ID = new PublicKey( - '9JipvuvjcirpYf8mzYQtozXeYtQLWY67LaZCiANSMNgs', + 'DwLanAMC2Z6v5uRAT3gE73trckVihyscbiWadGUnH8MQ', ); export const INSTRUCTION_LAYOUT = new VersionedLayout( @@ -132,6 +136,7 @@ export class DexInstructions { { pubkey: baseVault, isSigner: false, isWritable: true }, { pubkey: quoteVault, isSigner: false, isWritable: true }, { pubkey: TOKEN_PROGRAM_ID, isSigner: false, isWritable: false }, + { pubkey: SYSVAR_RENT_PUBKEY, isSigner: false, isWritable: false }, ], programId, data: encodeInstruction({ diff --git a/src/queue.ts b/src/queue.ts index 1575611..f7d8c90 100644 --- a/src/queue.ts +++ b/src/queue.ts @@ -37,6 +37,7 @@ const REQUEST = struct([ u64('nativeQuoteQuantityLocked'), u128('orderId'), publicKeyLayout('openOrders'), + u64('clientOrderId'), ]); const EVENT_QUEUE_HEADER = struct([ @@ -67,6 +68,7 @@ const EVENT = struct([ u64('nativeFeeOrRebate'), u128('orderId'), publicKeyLayout('openOrders'), + u64('clientOrderId'), ]); export interface Event { diff --git a/src/slab.test.js b/src/slab.test.js index c12d135..e6c6395 100644 --- a/src/slab.test.js +++ b/src/slab.test.js @@ -2,7 +2,7 @@ import { Slab } from './slab'; import BN from 'bn.js'; const SLAB_BUFFER = Buffer.from( - '0900000000000000020000000000000008000000000000000400000000000000010000001e00000000000040952fe4da5c1f3c860200000004000000030000000d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d7b000000000000000200000002000000000000a0ca17726dae0f1e4301000000111111111111111111111111111111111111111111111111111111111111111141010000000000000200000001000000d20a3f4eeee073c3f60fe98e010000000d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d7b00000000000000020000000300000000000040952fe4da5c1f3c8602000000131313131313131313131313131313131313131313131313131313131313131340e2010000000000010000001f0000000500000000000000000000000000000005000000060000000d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d7b00000000000000020000000400000004000000000000000000000000000000171717171717171717171717171717171717171717171717171717171717171702000000000000000100000020000000000000a0ca17726dae0f1e430100000001000000020000000d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d7b000000000000000400000000000000040000000000000000000000000000001717171717171717171717171717171717171717171717171717171717171717020000000000000003000000070000000500000000000000000000000000000017171717171717171717171717171717171717171717171717171717171717170200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', + '0900000000000000020000000000000008000000000000000400000000000000010000001e00000000000040952fe4da5c1f3c860200000004000000030000000d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d7b0000000000000000000000000000000200000002000000000000a0ca17726dae0f1e43010000001111111111111111111111111111111111111111111111111111111111111111410100000000000000000000000000000200000001000000d20a3f4eeee073c3f60fe98e010000000d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d7b000000000000000000000000000000020000000300000000000040952fe4da5c1f3c8602000000131313131313131313131313131313131313131313131313131313131313131340e20100000000000000000000000000010000001f0000000500000000000000000000000000000005000000060000000d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d7b0000000000000000000000000000000200000004000000040000000000000000000000000000001717171717171717171717171717171717171717171717171717171717171717020000000000000000000000000000000100000020000000000000a0ca17726dae0f1e430100000001000000020000000d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d7b000000000000000000000000000000040000000000000004000000000000000000000000000000171717171717171717171717171717171717171717171717171717171717171702000000000000000000000000000000030000000700000005000000000000000000000000000000171717171717171717171717171717171717171717171717171717171717171702000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', 'hex', ); diff --git a/src/slab.ts b/src/slab.ts index 984eff7..83869b8 100644 --- a/src/slab.ts +++ b/src/slab.ts @@ -22,7 +22,7 @@ const SLAB_HEADER_LAYOUT = struct( 'header', ); -const SLAB_NODE_LAYOUT = union(u32('tag'), blob(60), 'node'); +const SLAB_NODE_LAYOUT = union(u32('tag'), blob(68), 'node'); SLAB_NODE_LAYOUT.addVariant(0, struct([]), 'uninitialized'); SLAB_NODE_LAYOUT.addVariant( 1, @@ -43,6 +43,7 @@ SLAB_NODE_LAYOUT.addVariant( u128('key'), // (price, seqNum) publicKeyLayout('owner'), // Open orders account u64('quantity'), // In units of lot size + u64('clientOrderId'), ]), 'leafNode', );