Как да разработим DApp за VeChain (II): Настройка и разходка

Синхронизация: среда на Desktop VeChain DApp.

Настройка за 3 минути

Страхотен! Виждам, че сте преживели последния урок, сега е време да започнете да програмирате. Първото нещо, от което се нуждаем, е среда за синхронизация.

Добре, сега нека да клонираме изходния код на проекта Sync в терминал и да го въртим в dev режим:

> mkdir игрища
> CD игрища /
> git клонинг git@github.com: vechain / thor-sync.electron.git
> cd thor-sync.electron /
> node -v # Уверете се, че имате инсталиран node.js> V10.0.0
> npm install # Инсталиране на зависимости
> npm run dev # Стартирайте синхронизацията в dev режим

Когато видите прозореца за синхронизиране на електрон се изскача, всички сме готови!

Зареждане: npm run dev

Обикаляйте: Запознати с Sync

Добре, сега нека оставим настрана терминала и да се съсредоточим повече върху GUI прозореца. Sync е портфейл, подобен на браузър, вграден с библиотеката Connex.js, който може да предложи на уеб страницата, работеща вътре в нея, възможност да комуникира с VeChain blockchain.

Създайте тестващ портфейл

Първо, нека да създадем тестов портфейл за себе си:

Отидете на панела за портфейл, за да видите съществуващите портфейли.

Чудесно, сега кликнете върху горната дясна икона „портфейли“, ако сте в тестова мрежа, вече има 3 портфейла за тестване: „Foo“, „Baz“ и „Bar“. Оставете ги на мира, нека кликнете върху бутона „Създаване“, за да създадем нов.

Създайте нов портфейл за нашето тестване
Можете също да импортирате съществуващия си портфейл от Ethereum в Sync, както и да използвате генератор на трети страни, за да създадете портфейл, като VeChain Address Generator в github.

Следвайте инструкциите на Sync сега имам портфейл с публичен адрес, той в момента съдържа 0 VET и 0 VTHO:

0xa7a609b928c4eac077d0e5640f3fa650746c4fcf

Заредете портфейла с VTHO

След това попълваме новосъздадения портфейл, като добавяме към него някои средства VTHO. VTHO се използва като такса, подхранваща транзакциите и в тестовата мрежа. Къде да го вземем? Демонстрацията на DApp на основния екип на VeChain: кран VET / VTHO!

Продължете, посетете уеб URL: https://faucet.vecha.in в Sync и ще видите интересна уеб страница, която раздава VTHO в тестовата мрежа безплатно:

Вземете безплатно VET / VTHO в тестовата мрежа

Следвайте бутона „Поискайте маркери“ в средата на уеб страницата и нека да получите малко безплатно VET / VTHO за тестване. Не забравяйте да изберете портфейла, който сте създали, и въведете съответната парола, за да заявите маркерите. Вече заявих 500 VET с 500 VTHO.

Играйте с API на Connex.js

Сега, когато имаме пари за тестова мрежа, нека да преминем към изследване на блокчейн функционалностите, осигурени от Sync, библиотеката на connex.js. Нека отворим нов празен раздел, след което превключете инструментите за разработчици, за да видите за какво се използва Connex:

Отворете Инструменти за програмисти, за да посетите Connex.

Веднъж на конзолата на инструментите за програмисти (Точно като инструментите за разработчици на Chrome) въведете следния код:

> connex
 {версия: "1.2.0", Thor: {...}, продавач: {...}}
thor: {ticker: ƒ, акаунт: ƒ, блок: ƒ,…}
продавач: {знак: ƒ, притежаван: ƒ}
Версия: "1.2.0"
__proto __: Обект

Да, всеки прозорец вече е имплантирал свързващия обект в уеб страницата. И този свързващ обект може да направи много неща с мрежата на VeChain, Нека да проучим някои прости:

Игра с акаунт ()

> var acc = connex.thor.account ('0xa7a609b928c4eac077d0e5640f3fa650746c4fcf')
> acc.get (). тогава (инфо => {console.log (инфо)})
Обещайте {}
{баланс: "0x1b1ae4d6e2ef500000", енергия: "0x1b1af7398584067000", hasCode: false}
> parseInt ('0x1b1ae4d6e2ef500000')
500000000000000000000
> parseInt ('0x1b1af7398584067000')
500005175000000000000

Тук току-що попитах новосъздадения ми портфейл, което води до обект на отговор от полета "баланс", "енергия" и "hasCode". „Баланс“ е VET, който притежава този акаунт, а „енергия“ е VTHO сумата.

Игра с тикер ()

В мрежата на VeChain не знаем точно кога се произвежда нов блок, но със сигурност искаме да бъдем уведомени, когато е произведен. тикер ни дава тази дупка за надникване, за да получим известие. Все още използваме конзолата за отстраняване на грешки в Sync:

> var t = connex.thor.ticker ()
неопределен
> t.next (). тогава (() => {console.log ('нов блок!')})
нов блок!

Готино нали? След около 3–10 секунди това съобщение „нов блок!“ Се отпечатва и знаем, че е добавен нов блок в горната част на веригата.

ticker е обещание, което никога не се отхвърля, така че трябва само да предоставим функция за разрешаване. Вече нямаме нужда от функция setTimeout!

Игра с повикване ()

Всъщност самият VTHO договор е съвместим с ERC20 / VIP180 договор, живеещ на VeChain! И знаете ли какво, случайно знам адреса на него в тестовата мрежа:

0x0000000000000000000000000000456e65726779

За тези, които не разбират ERC20 / VIP180, договорът е дългогодишен обект на блокчейна. Мислейки за това като набор от инструкции за програмата и просто постоянно свободно хранилище в свободна форма, което програмата го контролира. Договорите ERC20 / VIP180 са проста програма „виртуална банка“, която следи всеки клиент и баланса му на конкретна виртуална монета / жетон.

И така, ние имаме адреса на договор, как да го наречем? Много просто.

> const balanceOfABI = {
  'константа': вярно,
  'входове': [
    {
      'name': '_owner',
      'type': 'address'
    }
  ],
  'име': 'balanceOf',
  'изходи': [
    {
     'име': 'баланс',
     'type': 'uint256'
    }
  ],
  „платимо“: невярно,
  'stateMutability': 'view',
  'type': 'function'
}
> const balanceOfMethod = connex.thor.account ('0x0000000000000000000000000000456e65726779'). метод (balanceOfABI)
> const balanceInfo = изчакайте балансаOfMethod.call ('0xa7a609b928c4eac077d0e5640f3fa650746c4fcf')
> console.log (balanceInfo)
{data: "0x00000000000000000000000000000000000000000000000000111b428acf29437000", събития: Array (0), трансфери: Array (0), gasUsed: 870, reverted: false,…}

Първо доставяме метода на договора ABI (подпис на функция) и след това създаваме манипулатор с адреса за разгръщане на договора. Накрая, ние наричаме метода на договора с call () и му предоставяме параметър, адрес на сметката, която ни интересува. Страхотен! Сега имаме резултат!

резюме

Достатъчно за днешното проучване!

За да обобщим, имаме:

  1. Проведе ви през инсталацията на Sync.
  2. Пуснете пример DApp в Sync и вземете малко безплатно VET / VTHO.
  3. Играйте с VeChain blockchain с предварително имплантирания JavaScript JavaScript обект.

Като се започне от следващия урок, ние ще използваме нашите знания научих днес и изграждане на уеб страница (предния край) на съществуващ договор умен, VTHO договор (Да, някои добър човек го е направил за нас, ние просто я заемете). Бъдете готови и пуснете!

Всички епизоди на уроци:

  • Как да разработим DApp за VeChain (I): Intro
  • Как да разработим DApp за VeChain (II): Настройка и разходка
  • Как да разработим DApp за VeChain (III): Компоненти и кодиране

Като моите уроци? Очакваме да дарите с помощта на Sync, като кликнете по-долу: