JSPM

  • Created
  • Published
  • Downloads 32460
  • Score
    100M100P100Q164146F
  • License MIT

Library for interacting with the serum dex

Package Exports

  • @project-serum/serum

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@project-serum/serum) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

npm (scoped) Build Status

Serum JS Client Library

WIP

yarn add @project-serum/serum

import { Connection, PublicKey } from '@solana/web3.js';
import { Market } from '@project-serum/serum';

let connection = new Connection('https://testnet.solana.com');
let marketAddress = new PublicKey('...');
let market = await Market.load(connection, marketAddress);
let bids = await market.loadBids(connection);
let asks = await market.loadAsks(connection);
for (let [price, size] of bids.getL2(20)) {
  console.log(price, size);
}
for (let order of asks) {
  console.log(
    order.orderId,
    order.owner.toBase58(),
    order.price,
    order.size,
    order.side,
  );
}

let owner = new Account('...');
let payer = new PublicKey('...');
await market.placeOrder(connection, {
  owner,
  payer,
  side: 'buy', // 'buy' or 'sell'
  price: 123.45,
  size: 17.0,
  orderType: 'limit', // 'limit', 'ioc', 'postOnly'
});

for (let order of await market.loadBids(connection)) {
  if (order.owner.equals(owner.publicKey)) {
    await market.cancelOrder(connection, owner, order);
  }
}