Как проверить полномочия ключа приложения 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. Ограниченный ключ вызова функций не разрешает перевод или вызов с положительным приложенным депозитом. Сохраните хеш блока ответа: разрешения могут измениться.

Источники