Как прочитать известный ключ хранилища CosmWasm напрямую
Чтение сырого состояния помогает отлаживать настройки, которых нет в публичных запросах контракта. Для этого нужна точная сериализация ключа конкретной версии.
Передайте байты известного ключа
Пусть реализация хранит значение под буквальным ASCII-ключом config. В base64 он имеет вид Y29uZmln. Задайте CONTRACT как адрес экземпляра, GRPC как TLS gRPC wasmd с reflection.
grpcurl -d "{\"address\":\"$CONTRACT\",\"queryData\":\"Y29uZmln\"}" "$GRPC" cosmwasm.wasm.v1.Query/RawContractState
Декодируйте data ответа из base64 и используйте формат хранения контракта. Если эта версия сериализует JSON-объект, разбирайте JSON после декодирования байтов. При пустом результате проверьте точный ключ.
Не выводите ключи карты из отображаемых названий
Пространство имён и составные ключи карты могут содержать префиксы, длины и двоичные числа. Печатаемая метка сама по себе может пропустить настоящую запись. При миграции внутренний формат способен измениться даже с сохранением публичного запроса. github.com wasmd Query API