gpt4 book ai didi

solana - 在 Solana 上发送 Serum DEX 制作新订单指令(makeNewOrderV3Instruction)时出错

转载 作者:行者123 更新时间:2023-12-02 01:49:25 32 4
gpt4 key购买 nike

我正在尝试对 Serum DEX V3 发出订单请求:

tx.add(market.makeNewOrderV3Instruction( {
owner,
payer,
side: 'buy',
price,
size,
orderType: 'ioc',
selfTradeBehavior: 'decrementTake'
}));

然后是:

await web3.sendAndConfirmTransaction(con, tx, txSigners);

但是我遇到了以下错误:

Transaction simulation failed: Error processing Instruction 0: custom program error: 0x1000757
Program 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin invoke [1]
Program 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin consumed 4018 of 200000 compute units
Program 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin failed: custom program error: 0x1000757
(node:12224) UnhandledPromiseRejectionWarning: Error: failed to send transaction: Transaction simulation failed: Error processing Instruction 0: custom program error: 0x1000757

我仔细检查了serum SDK创建新订单指令所需的所有输入账户和参数,但我无法解决问题。

最佳答案

以防万一有人在这个问题上绊倒了,让我解释一下如何阅读这些类型的错误消息,即教你如何钓鱼。

Serum DEX 返回三类自定义程序错误:

  • 业务错误:简短的错误,例如0x22
  • 断言错误:像这个问题中的长错误
  • 未知:0x3E8 - 祝你好运!

对于“业务错误”,您可以通过将十六进制数转换为十进制数,然后从source code中的顶部开始查找相应的错误来破译它们。 .

断言错误发生在代码中的断言条件被触发时。返回的错误代码以不同方式破译。前8位是断言所在文件的ID,后16位是断言所在的行号。

让我们从问题中提取0x1000757。将它分成两部分并将每个部分转换为十进制给出我们:文件 #1,行号 1879。可以找到文件 ID 查找here。 .

Serum 错误将面临的一个问题是它完全依赖于源代码。我们无法知道当前部署到主网的代码版本/提交。在大多数情况下,我粗略地猜测适当的提交,查看该提交时的相关文件并查看行号范围以查看是否有任何断言。这通常会提示我我的指令有什么问题。

关于solana - 在 Solana 上发送 Serum DEX 制作新订单指令(makeNewOrderV3Instruction)时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70503373/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com