Socket
Socket
Sign inDemoInstall

@project-serum/serum

Package Overview
Dependencies
71
Maintainers
5
Versions
135
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.13.62 to 0.13.63

15

lib/instructions.d.ts
export function encodeInstruction(instruction: any): Buffer;
export function encodeInstructionV2(instruction: any): Buffer;
export function decodeInstruction(message: any): any;

@@ -10,2 +11,3 @@ export const SETTLE_FUNDS_BASE_WALLET_INDEX: 5;

export const INSTRUCTION_LAYOUT: VersionedLayout;
export const INSTRUCTION_LAYOUT_V2: VersionedLayout;
export class DexInstructions {

@@ -48,3 +50,3 @@ static initializeMarket({ market, requestQueue, eventQueue, bids, asks, baseVault, quoteVault, baseMint, quoteMint, baseLotSize, quoteLotSize, feeRateBps, vaultSignerNonce, quoteDustThreshold, programId, authority, pruneAuthority, crankAuthority, }: {

}): TransactionInstruction;
static newOrderV3({ market, openOrders, payer, owner, requestQueue, eventQueue, bids, asks, baseVault, quoteVault, side, limitPrice, maxBaseQuantity, maxQuoteQuantity, orderType, clientId, programId, selfTradeBehavior, feeDiscountPubkey, }: {
static newOrderV3({ market, openOrders, payer, owner, requestQueue, eventQueue, bids, asks, baseVault, quoteVault, side, limitPrice, maxBaseQuantity, maxQuoteQuantity, orderType, clientId, programId, selfTradeBehavior, feeDiscountPubkey, maxTs, }: {
market: any;

@@ -69,2 +71,3 @@ openOrders: any;

feeDiscountPubkey?: any;
maxTs?: any;
}): TransactionInstruction;

@@ -128,2 +131,12 @@ static matchOrders({ market, requestQueue, eventQueue, bids, asks, baseVault, quoteVault, limit, programId, }: {

}): TransactionInstruction;
static cancelOrdersByClientIds({ market, openOrders, owner, bids, asks, eventQueue, clientIds, programId, }: {
market: any;
openOrders: any;
owner: any;
bids: any;
asks: any;
eventQueue: any;
clientIds: any;
programId: any;
}): TransactionInstruction;
static settleFunds({ market, openOrders, owner, baseVault, quoteVault, baseWallet, quoteWallet, vaultSigner, programId, referrerQuoteWallet, }: {

@@ -130,0 +143,0 @@ market: any;

"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.DexInstructions = exports.decodeInstruction = exports.encodeInstruction = exports.INSTRUCTION_LAYOUT = exports.NEW_ORDER_V3_OWNER_INDEX = exports.NEW_ORDER_V3_OPEN_ORDERS_INDEX = exports.NEW_ORDER_OWNER_INDEX = exports.NEW_ORDER_OPEN_ORDERS_INDEX = exports.SETTLE_FUNDS_QUOTE_WALLET_INDEX = exports.SETTLE_FUNDS_BASE_WALLET_INDEX = void 0;
exports.DexInstructions = exports.decodeInstruction = exports.encodeInstructionV2 = exports.encodeInstruction = exports.INSTRUCTION_LAYOUT_V2 = exports.INSTRUCTION_LAYOUT = exports.NEW_ORDER_V3_OWNER_INDEX = exports.NEW_ORDER_V3_OPEN_ORDERS_INDEX = exports.NEW_ORDER_OWNER_INDEX = exports.NEW_ORDER_OPEN_ORDERS_INDEX = exports.SETTLE_FUNDS_QUOTE_WALLET_INDEX = exports.SETTLE_FUNDS_BASE_WALLET_INDEX = void 0;
const buffer_layout_1 = require("buffer-layout");

@@ -8,2 +11,3 @@ const layout_1 = require("./layout");

const token_instructions_1 = require("./token-instructions");
const bn_js_1 = __importDefault(require("bn.js"));
// NOTE: Update these if the position of arguments for the settleFunds instruction changes

@@ -59,2 +63,24 @@ exports.SETTLE_FUNDS_BASE_WALLET_INDEX = 5;

exports.INSTRUCTION_LAYOUT.inner.addVariant(17, buffer_layout_1.struct([buffer_layout_1.u16('limit')]), 'consumeEventsPermissioned');
exports.INSTRUCTION_LAYOUT.inner.addVariant(18, buffer_layout_1.struct([
layout_1.u64('clientId0'),
layout_1.u64('clientId1'),
layout_1.u64('clientId2'),
layout_1.u64('clientId3'),
layout_1.u64('clientId4'),
layout_1.u64('clientId5'),
layout_1.u64('clientId6'),
layout_1.u64('clientId7')
]), 'cancelOrdersByClientIds');
exports.INSTRUCTION_LAYOUT_V2 = new layout_1.VersionedLayout(0, buffer_layout_1.union(buffer_layout_1.u32('instruction')));
exports.INSTRUCTION_LAYOUT_V2.inner.addVariant(10, buffer_layout_1.struct([
layout_1.sideLayout('side'),
layout_1.u64('limitPrice'),
layout_1.u64('maxBaseQuantity'),
layout_1.u64('maxQuoteQuantity'),
layout_1.selfTradeBehaviorLayout('selfTradeBehavior'),
layout_1.orderTypeLayout('orderType'),
layout_1.u64('clientId'),
buffer_layout_1.u16('limit'),
layout_1.i64('maxTs'),
]), 'newOrderV3');
function encodeInstruction(instruction) {

@@ -65,2 +91,7 @@ const b = Buffer.alloc(100);

exports.encodeInstruction = encodeInstruction;
function encodeInstructionV2(instruction) {
const b = Buffer.alloc(100);
return b.slice(0, exports.INSTRUCTION_LAYOUT_V2.encode(instruction, b));
}
exports.encodeInstructionV2 = encodeInstructionV2;
function decodeInstruction(message) {

@@ -141,3 +172,3 @@ return exports.INSTRUCTION_LAYOUT.decode(message);

}
static newOrderV3({ market, openOrders, payer, owner, requestQueue, eventQueue, bids, asks, baseVault, quoteVault, side, limitPrice, maxBaseQuantity, maxQuoteQuantity, orderType, clientId, programId, selfTradeBehavior, feeDiscountPubkey = null, }) {
static newOrderV3({ market, openOrders, payer, owner, requestQueue, eventQueue, bids, asks, baseVault, quoteVault, side, limitPrice, maxBaseQuantity, maxQuoteQuantity, orderType, clientId, programId, selfTradeBehavior, feeDiscountPubkey = null, maxTs = null, }) {
const keys = [

@@ -164,6 +195,7 @@ { pubkey: market, isSigner: false, isWritable: true },

}
const encoder = maxTs ? encodeInstructionV2 : encodeInstruction;
return new web3_js_1.TransactionInstruction({
keys,
programId,
data: encodeInstruction({
data: encoder({
newOrderV3: {

@@ -178,2 +210,3 @@ side,

limit: 65535,
maxTs: new bn_js_1.default(maxTs !== null && maxTs !== void 0 ? maxTs : '9223372036854775807'),
},

@@ -292,2 +325,24 @@ }),

}
static cancelOrdersByClientIds({ market, openOrders, owner, bids, asks, eventQueue, clientIds, programId, }) {
if (clientIds.length > 8) {
throw new Error("Number of client ids cannot exceed 8!");
}
while (clientIds.length < 8) {
clientIds.push(new bn_js_1.default(0));
}
return new web3_js_1.TransactionInstruction({
keys: [
{ pubkey: market, isSigner: false, isWritable: false },
{ pubkey: bids, isSigner: false, isWritable: true },
{ pubkey: asks, isSigner: false, isWritable: true },
{ pubkey: openOrders, isSigner: false, isWritable: true },
{ pubkey: owner, isSigner: true, isWritable: false },
{ pubkey: eventQueue, isSigner: false, isWritable: true },
],
programId,
data: encodeInstruction({
cancelOrdersByClientIds: Object.fromEntries(clientIds.map((clientId, i) => [`clientId${i}`, clientId])),
}),
});
}
static settleFunds({ market, openOrders, owner, baseVault, quoteVault, baseWallet, quoteWallet, vaultSigner, programId, referrerQuoteWallet = null, }) {

@@ -294,0 +349,0 @@ const keys = [

export function zeros(length: any): Zeros;
export function publicKeyLayout(property: any): PublicKeyLayout;
export function u64(property: any): BNLayout;
export function i64(property: any): BNLayout;
export function u128(property: any): BNLayout;

@@ -5,0 +6,0 @@ export function sideLayout(property: any): EnumLayout;

@@ -7,3 +7,3 @@ "use strict";

Object.defineProperty(exports, "__esModule", { value: true });
exports.setLayoutEncoder = exports.setLayoutDecoder = exports.accountFlagsLayout = exports.selfTradeBehaviorLayout = exports.orderTypeLayout = exports.sideLayout = exports.VersionedLayout = exports.WideBits = exports.u128 = exports.u64 = exports.publicKeyLayout = exports.zeros = void 0;
exports.setLayoutEncoder = exports.setLayoutDecoder = exports.accountFlagsLayout = exports.selfTradeBehaviorLayout = exports.orderTypeLayout = exports.sideLayout = exports.VersionedLayout = exports.WideBits = exports.u128 = exports.i64 = exports.u64 = exports.publicKeyLayout = exports.zeros = void 0;
const buffer_layout_1 = require("buffer-layout");

@@ -52,2 +52,6 @@ const web3_js_1 = require("@solana/web3.js");

exports.u64 = u64;
function i64(property) {
return new BNLayout(8, property);
}
exports.i64 = i64;
function u128(property) {

@@ -54,0 +58,0 @@ return new BNLayout(16, property);

7

lib/market.d.ts

@@ -50,3 +50,3 @@ /// <reference types="node" />

findOpenOrdersAccountsForOwner(connection: Connection, ownerAddress: PublicKey, cacheDurationMs?: number): Promise<OpenOrders[]>;
placeOrder(connection: Connection, { owner, payer, side, price, size, orderType, clientId, openOrdersAddressKey, openOrdersAccount, feeDiscountPubkey, }: OrderParams): Promise<string>;
placeOrder(connection: Connection, { owner, payer, side, price, size, orderType, clientId, openOrdersAddressKey, openOrdersAccount, feeDiscountPubkey, maxTs, }: OrderParams): Promise<string>;
getSplTokenBalanceFromAccountInfo(accountInfo: AccountInfo<Buffer>, decimals: number): number;

@@ -66,3 +66,3 @@ get supportsSrmFeeDiscounts(): boolean;

}>;
makePlaceOrderTransaction<T extends PublicKey | Account>(connection: Connection, { owner, payer, side, price, size, orderType, clientId, openOrdersAddressKey, openOrdersAccount, feeDiscountPubkey, selfTradeBehavior, }: OrderParams<T>, cacheDurationMs?: number, feeDiscountPubkeyCacheDurationMs?: number): Promise<{
makePlaceOrderTransaction<T extends PublicKey | Account>(connection: Connection, { owner, payer, side, price, size, orderType, clientId, openOrdersAddressKey, openOrdersAccount, feeDiscountPubkey, selfTradeBehavior, maxTs, }: OrderParams<T>, cacheDurationMs?: number, feeDiscountPubkeyCacheDurationMs?: number): Promise<{
transaction: Transaction;

@@ -76,3 +76,5 @@ signers: Account[];

cancelOrderByClientId(connection: Connection, owner: Account, openOrders: PublicKey, clientId: BN): Promise<string>;
cancelOrdersByClientIds(connection: Connection, owner: Account, openOrders: PublicKey, clientIds: BN[]): Promise<string>;
makeCancelOrderByClientIdTransaction(connection: Connection, owner: PublicKey, openOrders: PublicKey, clientId: BN): Promise<Transaction>;
makeCancelOrdersByClientIdsTransaction(connection: Connection, owner: PublicKey, openOrders: PublicKey, clientIds: BN[]): Promise<Transaction>;
cancelOrder(connection: Connection, owner: Account, order: Order): Promise<string>;

@@ -125,2 +127,3 @@ makeCancelOrderTransaction(connection: Connection, owner: PublicKey, order: Order): Promise<Transaction>;

programId?: PublicKey;
maxTs?: number | null;
}

@@ -127,0 +130,0 @@ export declare const _OPEN_ORDERS_LAYOUT_V1: any;

@@ -237,3 +237,3 @@ "use strict";

}
async placeOrder(connection, { owner, payer, side, price, size, orderType = 'limit', clientId, openOrdersAddressKey, openOrdersAccount, feeDiscountPubkey, }) {
async placeOrder(connection, { owner, payer, side, price, size, orderType = 'limit', clientId, openOrdersAddressKey, openOrdersAccount, feeDiscountPubkey, maxTs, }) {
const { transaction, signers } = await this.makePlaceOrderTransaction(connection, {

@@ -250,2 +250,3 @@ owner,

feeDiscountPubkey,
maxTs,
});

@@ -336,3 +337,3 @@ return await this._sendTransaction(connection, transaction, [

}
async makePlaceOrderTransaction(connection, { owner, payer, side, price, size, orderType = 'limit', clientId, openOrdersAddressKey, openOrdersAccount, feeDiscountPubkey = undefined, selfTradeBehavior = 'decrementTake', }, cacheDurationMs = 0, feeDiscountPubkeyCacheDurationMs = 0) {
async makePlaceOrderTransaction(connection, { owner, payer, side, price, size, orderType = 'limit', clientId, openOrdersAddressKey, openOrdersAccount, feeDiscountPubkey = undefined, selfTradeBehavior = 'decrementTake', maxTs, }, cacheDurationMs = 0, feeDiscountPubkeyCacheDurationMs = 0) {
var _a, _b;

@@ -428,2 +429,3 @@ // @ts-ignore

selfTradeBehavior,
maxTs,
});

@@ -442,3 +444,3 @@ transaction.add(placeOrderInstruction);

var _a;
const { owner, payer, side, price, size, orderType = 'limit', clientId, openOrdersAddressKey, openOrdersAccount, feeDiscountPubkey = null, } = params;
const { owner, payer, side, price, size, orderType = 'limit', clientId, openOrdersAddressKey, openOrdersAccount, feeDiscountPubkey = null, maxTs, } = params;
// @ts-ignore

@@ -480,3 +482,3 @@ const ownerAddress = (_a = owner.publicKey) !== null && _a !== void 0 ? _a : owner;

var _a;
const { owner, payer, side, price, size, orderType = 'limit', clientId, openOrdersAddressKey, openOrdersAccount, feeDiscountPubkey = null, selfTradeBehavior = 'decrementTake', programId, } = params;
const { owner, payer, side, price, size, orderType = 'limit', clientId, openOrdersAddressKey, openOrdersAccount, feeDiscountPubkey = null, selfTradeBehavior = 'decrementTake', programId, maxTs, } = params;
// @ts-ignore

@@ -505,5 +507,8 @@ const ownerAddress = (_a = owner.publicKey) !== null && _a !== void 0 ? _a : owner;

selfTradeBehavior,
// @ts-ignore
feeDiscountPubkey: this.supportsSrmFeeDiscounts
? feeDiscountPubkey
: null,
// @ts-ignore
maxTs,
});

@@ -525,2 +530,6 @@ }

}
async cancelOrdersByClientIds(connection, owner, openOrders, clientIds) {
const transaction = await this.makeCancelOrdersByClientIdsTransaction(connection, owner.publicKey, openOrders, clientIds);
return await this._sendTransaction(connection, transaction, [owner]);
}
async makeCancelOrderByClientIdTransaction(connection, owner, openOrders, clientId) {

@@ -552,2 +561,16 @@ const transaction = new web3_js_1.Transaction();

}
async makeCancelOrdersByClientIdsTransaction(connection, owner, openOrders, clientIds) {
const transaction = new web3_js_1.Transaction();
transaction.add(instructions_1.DexInstructions.cancelOrdersByClientIds({
market: this.address,
openOrders,
owner,
bids: this._decoded.bids,
asks: this._decoded.asks,
eventQueue: this._decoded.eventQueue,
clientIds,
programId: this._programId,
}));
return transaction;
}
async cancelOrder(connection, owner, order) {

@@ -554,0 +577,0 @@ const transaction = await this.makeCancelOrderTransaction(connection, owner.publicKey, order);

{
"name": "@project-serum/serum",
"version": "0.13.62",
"version": "0.13.63",
"description": "Library for interacting with the serum dex",

@@ -61,2 +61,2 @@ "license": "MIT",

]
}
}

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc