我们正在运行一个RSK节点,一些智能合约交易显示内部错误,但与失败的
require
条件相关的消息不会出现在这些错误消息中...我们只能看到"内部错误",无法看到发生了哪个具体错误。require
条件相关的消息不会出现在这些错误消息中...我们只能看到"内部错误",无法看到发生了哪个具体错误。debug_traceTransaction
方法找到它们。debug
RPC模块,但在公共节点上会禁用此模块。4444
上。debug
模块。modules = [
...
{
"name": "debug",
"version": "1.0",
"enabled": "true",
},
...
]
然后,您可以执行RPC方法,并将交易ID作为参数传递,就像这个例子:
curl \
-X POST \
-H "Content-Type:application/json" \
--data '{"jsonrpc":"2.0","method":"debug_traceTransaction","params":["0xa9ae08f01437e32973649cc13f6db44e3ef370cbcd38a6ed69806bd6ea385e49"],"id":1}' \
http://localhost:4444
{
...
"result": "08c379a00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000001e536166654d6174683a207375627472616374696f6e206f766572666c6f770000",
"error": "",
"reverted": true,
...
}
result
从十六进制转换为ASCII码,
以获得可读的消息:Ãy SafeMath: subtraction overflow