Писарь
Привет,
Sign
последние пару недель, в перерывах, между дел написал тул (Писарь) для подписи и отправки транзакций. Что то вроде steemconnect, но более топорно и по простому.
Приложение я разместил на github-е тут и там же лежат исходники.
Писарь ориентирован на то, что бы разным приложениям предоставить центральный сервис для подписи транзакций. Одно, центральное место которому бы доверяли пользователи. Потому я старался сделать все как можно проще, что бы легче было провести аудит.
Как это работает
Приложению можно передать в URL параметром список операций, приложение покажет список переданных операций и покажет окно ввода имени и пароля. Альтернативно можно подписать транзакцию ключом. Приложение подскажет, какой приватный ключ требуется для подписи.
Ссылка схематично выглядит следующим образом
https://gropox.github.io/sign/?tr=[список операций]
То есть URL параметром tr приложению передается JSON объект состоящий из массива операций. Каждая операция тоже является массивом (array) вида
["имя операции",{тело операции}]
К примеру операция перевода 34 Голосов от аккаунта @ropox аккаунту @mimocrocodil, с заметкой "Привет" будет выглядеть следующим образом.
["transfer",{"from":"ropox","to","mimocrocodil","amount":"34.000 GOLOS","memo":"Привет"}]
Для примера следующей ссылкой можно вызвать писаря и передать ему две операции перевода.
https://gropox.github.io/sign/?tr=[
["transfer",{"from":"ropox","to":"ropox","amount":"1.123 GOLOS","memo":"Это тестовый перевод"}],
["transfer",{"from":"ropox","to":"ropox","amount":"5.245 GOLOS","memo":"Это второй тестовый перевод"}]]
Обе операции будут выполнены в одной транзакции.
Экран писаря будет выглядеть следующим образом
Изначально конечно все это делалось, что бы дать возможность пользователям делать переводы, но переводами дело не ограничивается. Принципиально можно подставить любую операцию. К примеру можно
Примеры операции можно подглядеть в истории аккаунта используя к примеру https://ropox.tools/steemjs/api/account_history/get_account_history
Что дальше
На этом конечно разработка не закончена, есть наверняка, что поправлять. Я просто не хотел больше затягивать. На выходных вот выдалось свободное время, потому решил выкатить.
Надеюсь найдутся желающие попробовать и потестировать.
Вообще, мне кажется было бы идеально, если бы golos.io так же имплементировало что то подобное.
Удачи