Как проверить полномочия ключа приложения NEAR
Ключ может оставаться в аккаунте после того, как приложение потеряло возможность вызывать нужный метод. Перед заменой ключа проверьте его разрешения в цепочке.
Прочитайте запись ключа подписанта
Подставьте аккаунт подписанта и его публичный ключ из отклонённой транзакции. Обратитесь к RPC той же сети. Адрес контракта приложения может отличаться от аккаунта, на котором зарегистрирован ключ.
{
"jsonrpc": "2.0",
"id": 1,
"method": "query",
"params": {
"request_type": "view_access_key",
"finality": "final",
"account_id": "alice.testnet",
"public_key": "ed25519:PUBLIC_KEY"
}
}
Сопоставьте действие с разрешением
Допустим, в FunctionCall.receiver_id записан shop.testnet, а method_names содержит только reserve. Вызов buy у shop.testnet выходит за пределы списка. Вызов reserve у другого контракта также выходит за рамки разрешения. При пустом списке ограничение по именам методов указанного получателя снимается.
Отдельно проверьте приложенный депозит и оставшийся allowance. Ограниченный ключ вызова функций не разрешает перевод или вызов с положительным приложенным депозитом. Сохраните хеш блока ответа: разрешения могут измениться.