Serum

Serumは、Solana 上に構築された分散型取引所のプロトコルです。 Serumを使用して、新しい市場の作成、オーダーブックの取得、取引などを行うことができます。

Serumマーケットの取得方法

Serumのマーケットには、Serumで注文するためのすべての注文と機能が含まれています。 Serumで行うすべてのことについて、作業しているマーケットを知る必要があります。

Press </> button to view full source
import { Connection, PublicKey } from "@solana/web3.js";
import { Market } from "@project-serum/serum";

(async () => {
  const marketAddress = new PublicKey(
    "9wFFyRfZBsuAha4YcuxcXLKwMxJR43S7fPfQLusDBzvT"
  );
  const programAddress = new PublicKey(
    "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"
  );
  const connection = new Connection(
    "https://ssc-dao.genesysgo.net",
    "confirmed"
  );

  const market = await Market.load(
    connection,
    marketAddress,
    {},
    programAddress
  );
})();

Serumオーダーブックの入手方法

Serumマーケットは、ビッドとアスクを含むオーダーブックで構成されています。この情報を照会して、市場で何が起こっているかを確認し、それに応じて行動することができます。

Press </> button to view full source
import { Connection, PublicKey } from "@solana/web3.js";
import { Market } from "@project-serum/serum";

(async () => {
  let marketAddress = new PublicKey(
    "9wFFyRfZBsuAha4YcuxcXLKwMxJR43S7fPfQLusDBzvT"
  );
  let programAddress = new PublicKey(
    "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"
  );
  let connection = new Connection("https://ssc-dao.genesysgo.net", "confirmed");

  let market = await Market.load(connection, marketAddress, {}, programAddress);

  let bids = await market.loadBids(connection);
  for (let [price, size] of bids.getL2(20)) {
    console.log(price, size);
  }

  let asks = await market.loadAsks(connection);
  for (let [price, size] of asks.getL2(20)) {
    console.log(price, size);
  }
})();

現在のオープンの注文を取得する方法

トレーダーとして、市場で現在開いている注文を知りたいと思うでしょう。Serumを使用して、市場での自分または他の誰かのオープン注文を照会できます。

Press </> button to view full source
import { Connection, PublicKey } from "@solana/web3.js";
import { Market } from "@project-serum/serum";

(async () => {
  let trader = new PublicKey("CuieVDEDtLo7FypA9SbLM9saXFdb1dsshEkyErMqkRQq");
  let marketAddress = new PublicKey(
    "9wFFyRfZBsuAha4YcuxcXLKwMxJR43S7fPfQLusDBzvT"
  );
  let programAddress = new PublicKey(
    "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"
  );
  let connection = new Connection("https://ssc-dao.genesysgo.net", "confirmed");

  let market = await Market.load(connection, marketAddress, {}, programAddress);

  const orders = await market.loadOrdersForOwner(connection, trader);
  for (let order of orders) {
    console.log(order);
  }
})();
Last Updated:
Contributors: PokoPoko2ry