Перейти к основному содержимому

Ошибки

Всегда оборачивайте запросы к провайдеру в try / catch. Pali по возможности использует стандартные ошибки в стиле JSON-RPC и EIP-1193, а также собственные ошибки кошелька для неподдерживаемых сетей, ограничений аппаратных кошельков и состояний passkey.

try {
await window.ethereum.request({
method: 'eth_sendTransaction',
params: [tx],
});
} catch (error) {
switch (error.code) {
case 4001:
console.log('User rejected the request.');
break;
case 4100:
console.log('The dapp is not authorized.');
break;
case 4200:
console.log('The method is unsupported.');
break;
default:
console.error(error);
}
}

Распространённые категории​

КодЗначение
4001Пользователь отклонил запрос.
4100Неавторизованный аккаунт или метод.
4101Метод доступен только для другого семейства сетей.
4200Неподдерживаемый метод.
4900Провайдер отключён.
4901Провайдер отключён от запрошенной сети.
5710Для сети пакета EIP-5792 в кошельке не настроен RPC (wallet_getCallsStatus / wallet_showCallsStatus).
5720Повторяющийся идентификатор пакета EIP-5792 от dapp в wallet_sendCalls.
5730Неизвестный идентификатор пакета EIP-5792 в wallet_getCallsStatus / wallet_showCallsStatus.

См. Коды ошибок для более полной справки.

Повтор прерванных запросов​

Истечение времени ожидания, закрытое окно одобрения или потеря соединения не всегда доказывают, что транзакция не была отправлена. Прежде чем запрашивать ещё одну подпись или отправку, проверьте известный хеш транзакции, историю транзакций или статус пакета. Если получение отправленной транзакции подтверждено, отправка остаётся успешной, даже если последующее обновление локальной истории завершилось ошибкой.

При необходимости повторяйте обычные запросы на чтение, но не повторяйте автоматически запросы на подписание, создание кошелька или отправку транзакции после неопределённого результата. Если аккаунт или сеть изменились, получите новое одобрение для текущего контекста. Если настройка смарт-аккаунта ожидает завершения, проверьте её статус в исходной сети, прежде чем снова пытаться выполнить развёртывание.