Pera Connect SDK 1.6.0 включает в себя экспериментальную подпись расширений для браузера ARC-27.

Входная дверь разработчика для стандартного кошелька Algorand
Когда веб-приложение на Algorand просит посетителя подключить кошелек, обычно открывается кошелек Pera. Pera был запущен как официальный кошелек сети, в феврале 2022 года был переименован и остается стандартным мобильным вариантом — средняя оценка iOS-приложения составляет 4,8 звезды по 7 952 оценкам, а 11 августа команда объявила о полной переработке обоих приложений на одной базе кода React Native. За двенадцать дней до этого заявления та же команда выпустила версию 1.6.0 @perawallet/connect, JavaScript-SDK, который позволяет веб-приложениям взаимодействовать с кошельком. Добавка, оглашённая в заголовке — запросы подписи через расширение для браузера, стандартизированное как ARC-27 — сделана намеренно осторожно: она поставляется с выключенным по умолчанию экспериментальным флагом.
SDK находится в центре центра технической документации Pera, который организует четыре интерфейса интеграции для разработчиков-третьих сторон. Каждый из них позволяет проекту использовать инфраструктуру, которую Pera уже использует для своих продуктов, вместо того чтобы создавать её с нуля.
| Интеграционная поверхность | Что она охватывает | Практическое применение |
| Pera Connect SDK | Язык JavaScript, связывающий веб-приложения с Pera Wallet | Код, лежащий в основе большинства кнопок «Подключить кошелёк» в dApp на Algorand |
| Публичный API | Эндпоинты, возвращающие метаданные и метки проверки для любых [стандартных активов Algorand](/glossary/algorand-standard-asset "Встроенный механизм, позволяющий любому пользователю создавать и выпускать новые токены (такие как стабильные монеты, токены-утилиты или NFT) непосредственно на базовом уровне Algorand") | Приложения отображают названия токенов, логотипы, цены и значки доверия Pera, не создавая свой собственный [индексор](/glossary/indexer "Сервис, который организует и индексирует данные блокчейна, чтобы приложения могли быстро искать и извлекать информацию из блокчейна.") |
| Спецификации парсера NFT | Как система Pera обнаруживает, извлекает и классифицирует NFT в масштабе | Кошельки и исследователи отображают коллекционные медиа и характеристики без необходимости написания собственного парсера каждым проектом |
| URL-схемы мобильного приложения | perawallet:// — глубокие ссылки, поддерживаемые приложениями для iOS и Android | Любая страница может запустить Pera прямо в поток отправки, подтверждения или просмотра аккаунта |
Что на самом деле добавляет 1.6.0
Pera Connect работает на протоколе [WalletConnect](/glossary/walletconnect "Протокол, позволяющий веб-приложению подключаться к кошельку криптовалюты (такому как Pera или Defly на Algorand) с помощью сканирования QR-кода, чтобы приложение могло читать адрес кошелька и запрашивать подпишившиеся транзакции, не имея при этом в своем распоряжении приватные ключи. Основные методы SDK просты: connect() возвращает адреса аккаунтов, signTransaction() подписывает отдельные транзакции или атомарные группы — наборы, все из которых должны быть выполнены, или ни один из них — и signData() подписывает произвольные байты для аутентификации и идентификации.
Версия 1.6.0, выпущенная 30 июля, добавляет второй транспорт для подписи: ARC-27 — стандарт Algorand, который позволяет кошельку-расширению для браузера напрямую отвечать на запросы [dApp](/glossary/dapp "Децентрализованное приложение — программная программа, работающая в сети блокчейна вместо центрального сервера, поэтому не контролируется одним лицом") без необходимости в двусторонней передаче QR-кода. Поскольку поддержка доступна только по экспериментальному флагу, который по умолчанию установлен в «false», для существующих интеграций ничего не меняется, если разработчик не включит его. После активации в модальном окне подключения появится опция «Подключиться с помощью расширения Pera», которое автоматически обнаруживает установленное совместимое расширение посредством двусторонней передачи данных ARC-27 и переходит к использованию QR-кода или Pera Web, если не найдет ни того, ни другого. Путь к расширению поддерживает подписание данных ARC-60 — при проверке домена-запроса на соответствие домену-источника страницы — но не подписание произвольных данных, которое было в старой версии и выдает ошибку «неподдерживаемая операция». В том же релизе было внесено множество исправлений, связанных с соответствием спецификации ARC-60, а версия 1.6.1-beta.0 теперь доступна в теге beta на npm.
За последний месяц пакет был скачан 46 854 раза, из них 11 724 — за последнюю неделю, и он зависит от 46 других зарегистрированных пакетов npm. Репозиторий на GitHub имеет 70 звезд и был обновлен совсем недавно, 14 августа, с исправлениями для потока подписи в Safari на iOS и ошибок с неправильно обозначенными signData — темпы поддержки, которые соответствуют темпам поддержки кошелька: демо-приложение dApp, которое команда поддерживает, имитирует более ста сценариев подписи, от отдельных платежей до партий из 1000 транзакций.
Остальная часть хаба: данные, коллекционные предметы, глубокие ссылки
Три других интерфейса предназначены для решения задач, необходимых для dApp в процессе подписания. Публичный API, доступный по адресу [mainnet](/glossary/mainnet "Основная публичная сеть блокчейна, где транзакции регистрируются и имеют реальную стоимость, в отличие от тестовой сети, используемой для экспериментов.").api.perawallet.app, возвращает метаданные для любых [ASA](/glossary/asa "Algorand Standard Asset: механизм первого уровня на блокчейне Algorand, который позволяет любому пользователю выпускать токен, например, стейблкоин или NFT, с возможностью хранения баунти.
Спецификация парсера NFT объясняет, как Pera наполняет свою коллекционную базу данных: задача, выполняемая непрерывно, просматривает каждый актив, извлекая метаданные и медиа через специализированный шлюз [IPFS](/glossary/ipfs "Децентрализованная система хранения файлов, в которой данные хранятся на нескольких компьютерах, что делает их устойчивыми к цензуре или потере. NFT часто используют IPFS") и классифицирует JSON-объект как ARC3 NFT (метаданные), а изображение или видео — как ARC69 NFT (медиа). Метаданные ARC69 являются изменяемыми, поэтому на каждом проходе парсер перепарсит их из последней транзакции конфигурации актива, а медиа ARC69 извлекается один раз и кэшируется; файлы размером более 100 МБ игнорируются, а при неудачной загрузке попытки повторного извлечения выполняются трижды. Схемы мобильных URL-адресов завершают набор ссылками perawallet://, которые открывают приложение в конкретном режиме — добавляют аккаунт для мониторинга, подписываются на актив или предварительно заполняют транзакцию ALGO или ASA с примечанием — с суммами, выраженными в микроалго.
Торговые компромиссы, которые получает разработчик
В документации не упоминается, насколько тщательно эти сервисы привязывают проект к одному поставщику. Схема глубокой интеграции открывает только Pera, модальный диалог подключения имеет фирменный стиль Pera, а условия публичного API требуют отображения логотипа и значков Pera, а не нейтрального представления данных — и эти значки — это собственная подборка Pera, а не независимый реестр, поскольку в условиях указано, что значок не является подтверждением. Ни в документации, ни в заметках к выпуску не упоминается независимый аудит безопасности SDK, поэтому команды, которые его используют, полагаются на инжиниринг и репутацию Pera. Эта репутация реальна — перекомпиляция кошелька 7.0 и ежемесячный цикл выпуска SDK демонстрируют активное обслуживание, — но это также означает, что Pera, как стандартный кошелек экосистемы, имеет коммерческий интерес в каждой интегрированной системе, которую она поддерживает. Для команд, желающих дистанцироваться, существуют два средства защиты: в README указана универсальная для всех кошельков оболочка use-wallet для поддержки нескольких кошельков, а вопросы разработчиков можно задавать в канале #dev-support в Discord Pera.
Экспериментальный флаг — это честная оговорка: Pera сигнализирует о направлении с помощью ARC-27, а не обещает готовое расширение, а опция «включить» означает, что ранние пользователи тестируют, а не полагаются на это. Для команды, которая не против сделать Pera своей инфраструктурой кошелька, SDK — самый быстрый путь от нуля до работающей кнопки «Подключить кошелёк»; для тех, кто хочет оставаться нейтральным в отношении экосистемы кошельков Algorand, нативные слои предлагают выход. В любом случае, центр документации теперь является самой четкой картой того, куда стандартный кошелёк намерен привести опыт разработчиков в экосистеме.
Источник
- Документация Pera Wallet
- @perawallet/connect на npm
- perawallet/connect на GitHub
- Примерная dApp Pera Wallet
- docs.perawallet.app
- docs.perawallet.app
- Pera Connect | Документация Pera Wallet
- Спецификации NFT Parser | Документация Pera Wallet
- Схемы URL для мобильных приложений | Документация Pera Wallet
- raw.githubusercontent.com
- raw.githubusercontent.com
- Pera Algorand Explorer
- docs.perawallet.app
- raw.githubusercontent.com
- Введение | Документация Pera Wallet
Source: https://docs.perawallet.app