Ehs*_*hmi 3 solana solana-web3js serum-project serum-dex solana-transaction-instruction
我正在尝试在 Serum DEX V3 上发出订单请求:
tx.add(market.makeNewOrderV3Instruction( {
owner,
payer,
side: 'buy',
price,
size,
orderType: 'ioc',
selfTradeBehavior: 'decrementTake'
}));
Run Code Online (Sandbox Code Playgroud)
然后后来:
await web3.sendAndConfirmTransaction(con, tx, txSigners);
Run Code Online (Sandbox Code Playgroud)
但我面临以下错误:
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
Run Code Online (Sandbox Code Playgroud)
我仔细检查了血清SDK创建新订单指令所需的所有输入帐户和参数,但无法解决问题。
以防万一有人偶然发现这个问题,让我解释一下如何阅读这些类型的错误消息,即教你如何钓鱼。
Serum DEX 返回三类自定义程序错误:
0x220x3E8-祝你好运!对于“业务错误”,您可以通过将十六进制数转换为十进制数,然后从源代码的顶部开始查找相应的错误来破译它们。
当代码中的断言条件被触发时,就会发生断言错误。返回的错误代码的解读方式不同。前 8 位是断言所在文件的 ID,最后 16 位是断言所在的行号。
让我们0x1000757从问题中得出。将其分成两部分并将每个部分转换为十进制给出:文件#1,行号 1879。可以在此处找到文件 ID 查找。
您将面临的血清错误问题之一是它非常依赖于源代码。我们无法知道当前部署到主网的代码版本/提交。在大多数情况下,我粗略地猜测适当的提交,在提交时查看相关文件并查看行号范围以查看是否有任何断言。这通常会提示我我的指令有什么问题。
| 归档时间: |
|
| 查看次数: |
756 次 |
| 最近记录: |