Если ваш контракт отправляет сообщения в реверсиях, вы можете узнать их, используя debug_traceTransaction
.
ПРИМЕЧАНИЕ. Модуль debug
RPC включен по умолчанию в конфигурации RSK, но отключен на общедоступных узлах.
Более того, общедоступные узлы RSK не предоставляют эту функцию, и для этого вы должны запустить свой собственный узел.
Ниже предполагается, что у вас есть локальный узел, работающий с RPC, доступным через порт 4444
.
Во-первых, вам нужно включить модуль debug
в вашем файле конфигурации:
modules = [
...
{
"name": "debug",
"version": "1.0",
"enabled": "true",
},
...
]
Затем вы можете выполнить метод RPC, передав идентификатор транзакции в качестве параметра, как в этом примере:
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
person
7alip
schedule
11.02.2021