Как проверить полномочия исполнителя Cosmos authz
Разрешение отправлять сообщения от имени другого счёта может ограничивать номиналы, суммы и получателей. Одного совпадения адреса исполнителя недостаточно.
Отфильтруйте разрешение по сторонам и типу сообщения
OWNER — адрес доверителя, EXEC — адрес исполнителя, GRPC — адрес TLS gRPC с reflection. Запросите разрешение на банковскую отправку и проверьте его конкретный тип и срок действия.
grpcurl -d "{\"granter\":\"$OWNER\",\"grantee\":\"$EXEC\",\"msgTypeUrl\":\"/cosmos.bank.v1beta1.MsgSend\"}" "$GRPC" cosmos.authz.v1beta1.Query/Grants
Если SendAuthorization разрешает ещё 500 uatom, перевод 600 uatom превысит лимит. Общее разрешение на тот же тип сообщения имеет другой объём полномочий. Когда тип предусматривает список получателей, проверьте и его.
Отдельно проверьте оплату
Разрешение authz само по себе не предоставляет право платить чужой комиссией и не пополняет счёт доверителя. Проверьте плательщика и доступный баланс. При исполнении сообщения сеть повторно проверит полномочия. github.com Cosmos SDK Query API