4.6 KiB
SHiNE Solana Arweave Viewer: как это работает
Что лежит в папке
Основной и единственный рабочий файл viewer:
index.html
Это автономный single-file viewer:
- весь HTML внутри одного файла;
- все стили внутри этого же файла;
- весь JavaScript внутри этого же файла;
- локальная копия
solana-web3тоже встроена внутрь этого же файла.
Для запуска viewer достаточно открыть один index.html.
Что делает viewer
Viewer открывается как обычная HTML-страница и работает полностью в браузере.
Он умеет:
- принимать логин пользователя SHiNE;
- принимать
Solana RPCчерез форму или через URL-параметр; - принимать
Arweave gatewayчерез форму или через URL-параметр; - сохранять эти значения в
localStorage; - вычислять
user_pdaпо логину для программыshine_users; - читать
PDAнапрямую изSolana; - распарсивать содержимое записи
shine_users; - показывать ключи, лимиты, номер записи, блокчейн пользователя и
Arweave tx id; - строить прямую ссылку на
Arweave, еслиtx idесть в записи.
Какие URL-параметры поддерживаются
Viewer понимает такие параметры:
loginsolanaRpcarweaveGateway
Пример:
index.html?login=aidartest&solanaRpc=https%3A%2F%2Fsolana-rpc.publicnode.com&arweaveGateway=https%3A%2F%2Farweave.net
Предустановленные адреса
Solana RPC
https://solana-rpc.publicnode.comhttps://public.rpc.solanavibestation.com/
Arweave gateway
https://arweave.net
Почему одна из RPC может не работать
Адрес:
https://public.rpc.solanavibestation.com/
может возвращать браузерную ошибку 403 с текстом про Origin is not whitelisted.
Это означает, что проблема обычно не в SHiNE viewer, а в CORS-политике самого RPC. Для HTML-страницы, открытой прямо в браузере, это обычно не лечится со стороны клиента.
Практически для viewer лучше использовать:
https://solana-rpc.publicnode.com
Ссылки на загруженный файл в Arweave
Основная ссылка:
https://isvg77xrihxyzqnjex3j4uldyao7xbsfda4uhoydtigeugovjvza.arweave.net/RKpv_vFB74zBqSX2nlFjwB37hkUYOUO7A5oMShnVTXI
Та же ссылка с тестовым логином aidartest:
https://isvg77xrihxyzqnjex3j4uldyao7xbsfda4uhoydtigeugovjvza.arweave.net/RKpv_vFB74zBqSX2nlFjwB37hkUYOUO7A5oMShnVTXI?login=aidartest
Та же ссылка с тестовым логином aidartest и явным рабочим RPC:
https://isvg77xrihxyzqnjex3j4uldyao7xbsfda4uhoydtigeugovjvza.arweave.net/RKpv_vFB74zBqSX2nlFjwB37hkUYOUO7A5oMShnVTXI?login=aidartest&solanaRpc=https%3A%2F%2Fsolana-rpc.publicnode.com
Что будет, если поставить devnet RPC
Официальный публичный Solana devnet RPC:
https://api.devnet.solana.com
Если подставить devnet RPC, viewer начнёт читать именно сеть devnet, а не mainnet.
Но это не означает автоматически, что вся система SHiNE "стала тестовой".
Для реальной работы в devnet должны совпасть сразу несколько условий:
- программа
shine_usersдолжна быть задеплоена вdevnet; - в
devnetдолжен существовать нужныйPDAдля логина; - формат записи должен совпадать;
- данные пользователя должны реально лежать в этой тестовой сети.
Если этого нет, viewer просто не найдёт запись.
Источник по devnet RPC
Официальная документация Solana:
https://solana.com/docs/references/clusters
Там указан devnet endpoint:
https://api.devnet.solana.com