SHA256
Синхронизировать регистр логинов и доработать UI каналов
This commit is contained in:
@@ -0,0 +1,11 @@
|
||||
# SHiNE Solana Arweave Viewer
|
||||
|
||||
Основной рабочий файл:
|
||||
|
||||
- `index.html`
|
||||
|
||||
Подробное описание работы, параметров и готовых ссылок:
|
||||
|
||||
- `КАК_ЭТО_РАБОТАЕТ.md`
|
||||
|
||||
Viewer собран как автономный single-file HTML и запускается одним файлом без соседних зависимостей.
|
||||
@@ -0,0 +1,11 @@
|
||||
# SHiNE Solana Arweave Viewer
|
||||
|
||||
Основной рабочий файл:
|
||||
|
||||
- `index.html`
|
||||
|
||||
Подробное описание работы, параметров и готовых ссылок:
|
||||
|
||||
- `КАК_ЭТО_РАБОТАЕТ.md`
|
||||
|
||||
Viewer собран как автономный single-file HTML и запускается одним файлом без соседних зависимостей.
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,114 @@
|
||||
# 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 понимает такие параметры:
|
||||
|
||||
- `login`
|
||||
- `solanaRpc`
|
||||
- `arweaveGateway`
|
||||
|
||||
Пример:
|
||||
|
||||
```text
|
||||
index.html?login=aidartest&solanaRpc=https%3A%2F%2Fsolana-rpc.publicnode.com&arweaveGateway=https%3A%2F%2Farweave.net
|
||||
```
|
||||
|
||||
## Предустановленные адреса
|
||||
|
||||
### Solana RPC
|
||||
|
||||
- `https://solana-rpc.publicnode.com`
|
||||
- `https://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`
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,114 @@
|
||||
# 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 понимает такие параметры:
|
||||
|
||||
- `login`
|
||||
- `solanaRpc`
|
||||
- `arweaveGateway`
|
||||
|
||||
Пример:
|
||||
|
||||
```text
|
||||
index.html?login=aidartest&solanaRpc=https%3A%2F%2Fsolana-rpc.publicnode.com&arweaveGateway=https%3A%2F%2Farweave.net
|
||||
```
|
||||
|
||||
## Предустановленные адреса
|
||||
|
||||
### Solana RPC
|
||||
|
||||
- `https://solana-rpc.publicnode.com`
|
||||
- `https://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`
|
||||
Reference in New Issue
Block a user