如何使用 Solana 在 Serum 测试网市场下订单?
Posted
技术标签:
【中文标题】如何使用 Solana 在 Serum 测试网市场下订单?【英文标题】:How to place an order on a Serum testnet market using Solana? 【发布时间】:2022-01-15 09:53:20 【问题描述】:就我而言,我正在尝试在 Serum 测试网市场 (SOL/USDT) 下订单。我知道我可能做错了几件事,但我无法发现它们。这是我的代码:
let connection = new web3.Connection(web3.clusterApiUrl("devnet")),
wallet = web3.Keypair.generate();
console.log('Airdropping some SOL');
let airdropSignature = await connection.requestAirdrop(
wallet.publicKey,
web3.LAMPORTS_PER_SOL,
);
await connection.confirmTransaction(airdropSignature);
let myMint = new web3.PublicKey("So11111111111111111111111111111111111111112"),
myToken = new splToken.Token(
connection,
myMint,
splToken.TOKEN_PROGRAM_ID,
wallet
);
// Create associated token accounts for my token if they don't exist yet
var ownerTokenAccount = await myToken.getOrCreateAssociatedAccountInfo(wallet.publicKey);
console.log('Placing order...');
let market = await handlers.fetchMarketData(new web3.PublicKey('HWHvQhFmJB3NUcu1aihKmrKegfVxBEHzwVX6yZCKEsi1')), //SOL/USDT
owner = ownerTokenAccount,
payer = owner,
res = await market.placeOrder(connection, //TODO: Add error handling
owner,
payer,
side: 'sell',
price: 1,
size: 1.0,
orderType: 'limit',
)
【问题讨论】:
【参考方案1】:很遗憾,testnet 上的HWHvQhFmJB3NUcu1aihKmrKegfVxBEHzwVX6yZCKEsi1
只是一个随机的系统账号,所以并没有初始化血清市场。
我以为某些 Serum 市场在 devnet 上运行,但现在我很遗憾找不到任何市场。您可能必须通过部署 Serum 程序并填充订单簿来自己设置这一切。这里有一些资源可以帮助解决这个问题:
血清源代码,因此您可以构建/部署程序:https://github.com/project-serum/serum-dex/tree/master/dex 如何开通市场:https://docs.projectserum.com/serum-ecosystem/build-on-serum/add-a-market-on-serum-serum-academy 连接到本地网络并启动市场:https://openserum.ch/dex/ 准备就绪后,您可以将其全部移至测试网并使用水龙头获取 USDC:https://www.usdcfaucet.com/【讨论】:
感谢您的回答,但我认为这应该是一种更简单的方法? 不幸的是,当市场和程序不存在时,这是唯一的选择。检查一下,我真的认为 devnet 上存在一些 Serum 市场,但我不记得它们被部署到哪里,或者谁部署了它们。您可以尝试在 Serum / Anchor Discord 上提问:discord.gg/y63hX4YA以上是关于如何使用 Solana 在 Serum 测试网市场下订单?的主要内容,如果未能解决你的问题,请参考以下文章
Solana 链中的打字稿错误。 (测试网中的 Solana 交易)
Solana Anchor:如何为/读取关联帐户制作#[account(seeds)]?