Встречайте VIZ на Dart — viz transaction!

Viztower
2 min readJun 12, 2019

--

Встречайте VIZ на Dart — viz transaction!

Однажды мне надоело писать приложения для блокчейна VIZ только на JavaScript (вообще не люблю JS), тогда я и решил создать для него нормальную библиотеку на Dart.

Какие проблемы решает viz transaction (VT)

В первую очередь она была создана из-за моей любви к строгой типизации. Согласитесь, писать большие, серьёзные проекты на JavaScript (NodeJS) очень сложно, хотя и возможно (шутка).

Например, для создания больших проектов на JavaScript часто используют TypeScript. Однако это не значит, что VIZ не нужны новые языки программирования. Любому проекту они нужны! Но у VIZ из библиотек есть только JS-вариант (да, есть ещё для php, но она дышит на ладан).

Что можно делать с помощью VT

С помощью VT можно создавать транзакции из множества операций и подписывать их одним или несколькими ключами(a.k.a multi-sig).

Что нельзя делать с помощью VT

Однако, с помощью VT у вас не получится отправлять транзакции в блокчейн, но для этих целей всегда можно использовать сторонние решения (ниже я вам покажу).

Почему Dart

Сначала я хотел писать её на Java, но этот язык мне так надоел, что я решил делать это на Dart.

Примеры

Хватит болтать, пора показать VT в деле: попробуем отправить пару токенов c аккаунта megatester на second.megatester(но не забудьте установить VT).

Итак, мы создали операцию, теперь нужно её подписать. Для этого нужно использовать класс Transaction, но это не всё. Чтобы создать полноценную транзакцию, нам нужно указать refBlockNum и refBlockPrefix, а также время, до которого транзакция должна быть точно отправлена в блокчейн, иначе говоря, время жизни неопубликованной в сеть транзакции (вдруг интернет тормозит, или ещё что).

Чтобы всё это указать, нужно узнать текущие параметры блокчейна, вот здесь как раз и понадобится сторонняя библиотека для связи с внешним миром. Я буду использовать пакет http.

Давайте напишем небольшой метод для получения текущего состояния VIZ:

Заодно напишем методы для получения refBlockNum и refBlockPrefix последнего блока, а так же времени в VIZ. Обратите внимание, что expiration можно не указывать, тогда этот параметр будет установлен по умолчанию как текущее время на вашем компьютере + 30 минут (но лучше получать время из блокчейна, тогда не нужно заморачиваться с его синхронизацией).

А теперь подпишем нашу транзакцию:

Осталось только отправить, для этого тоже будем использовать http:

Консоль должна вывести следующие строки:

$ block: 7346144
$ trx_id: 12bf6bef42627551531625cf5af4f6cceb43b4e8

А вот здесь можно её посмотреть https://control.viz.world/tools/blocks/7346144/.

Библиотеку вы найдёте на pub или Github (не забывайте ставить звёзды :)

Код полностью:

Телеграм автора поста: @i_ivanzar

Подписывайтесь на официальный Телеграм чат: @viz_report

Вступайте в официальную группу: @viztower

Удачи ;)

--

--

Viztower
0 Followers

Источник знаний о блокчейне VIZ