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
);
})();
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);
}
})();
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);
}
})();
const orders = await market.loadOrdersForOwner(connection, traderPublicKey);