如何使用 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 只是一个随机的系统账号,所以并没有初始化血清市场。

主网账号/血清市场:https://explorer.solana.com/address/HWHvQhFmJB3NUcu1aihKmrKegfVxBEHzwVX6yZCKEsi1 测试网账号/未使用的系统账号:https://explorer.solana.com/address/HWHvQhFmJB3NUcu1aihKmrKegfVxBEHzwVX6yZCKEsi1?cluster=testnet

我以为某些 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)]?

NFT下沉市场在Solana链上崛起

Solana开发入门源码

手把手教大家如何测试 NFT 租赁市场 bendDAO,测试网拿 OG 角色

AAX启动AAXSeeds上币计划,将向参与者空投4,000,000 SAMO!