Skip to content

Latest commit

 

History

History
61 lines (47 loc) · 7.37 KB

README.md

File metadata and controls

61 lines (47 loc) · 7.37 KB

Децентрализованное приложение в блокчейне Кардано для взаимодействия с GCOIN

Description

Система позволяет "минтить" и "сжигать" GCOIN - цифровой финансовый актив, привязанный к индексу CO2. Привязка токена к индексу CO2 не только создает возможность для финансовых инвестиций, но и подчеркивает важность борьбы с изменением климата и охраны окружающей среды. Если коэффицент CO2 растет в мире, то и стоимость токена растет вместе с ней.

Донося информацию об актуальном индексе CO2, проект призван обратить внимание людей на одну из наиболее актуальных экологических проблем - увеличения углекислого газа в атмосфере. Проект повышает осведомленность людей, а также способен вдохновить на улучшение жизни вокруг себя, показывая real-time изменения, происходящие с нашей планетой.

Привязка к индексу имеет следующие цели:

  • Экологическая ответственность: подчеркивание важности сохранения природы
  • Инвестиции в устойчивость: вкладывание средств в проекты и инициативы, направленные на уменьшение негативного воздействия на окружающую среду
  • Создание стабильных активов: GCOIN - это стейблкоин, который покупается/продается в пределах 98%-102% от индекса CO2
  • Социальное воздействие: может служить образцом для общества и предоставлять инсайты о том, какие усилия предпринимаются для борьбы с изменением климата. Это также может вдохновить людей принимать более экологичные решения в повседневной жизни.

Это проект, который объединяет тех, кто разделяет экологические инициативы и стремится к устойчивому будущему для нашей планеты.

Functionality

  • "Минт" ЦФА (=покупка)
  • "Сжигание" ЦФА (=продажа)
  • Получение из API индекса CO2
  • Получение актуального значения индекса из скрипта(точнее говоря, из output'а скрипта засчет модели EUTxO блокчейна)
  • Расчет налога, взымаемого блокчейном с транзакции
  • Подключение кошельков блокчейна Cardano: Nami, Eternl

Parts of dapp

Все функции, необходимые для взаимодействия с блокчейном, написаны с помощью библиотеки Lucid и находятся в файле offchain.ts

Demonstration

Requirements

  • Нужен кошелек Nami/Eternl
  • Подключение к тестовой сети Preprod
  • Установление коллатерала в кошельке (для взаимодействия со смарт-контрактами)

Как установить браузерное расширение кошелька, подключить сеть и установить коллатерал - cм. тут

Scheme of minting transaction

В транзакции спендится два аутпута: один принадлежит скрипту (mkHandlerValidator),а другой - самого клиента, в котором хранится Ada, за которую можно купить ЦФА. За счет того, что спендится аутпут скрипта, происходит валидация в mkHandlerValidator того, что рейт не изменен клиентом (чтобы последующие клиенты не могли по другому - сфальсифицированному рейту - покупать и продавать ЦФА. Саму же покупку/продажу валидирует скрипт токена (mkTokenPolicy) - на off-chain происходит формирование транзакции с условием создания/сжигания ЦФА. Засчет этого условия в транзакции скрипт токена исполняется.

Таким образом, mkTokenPolicy содержит следующие проверки транзакции:

  • При покупке клиент перечисляет в output mkHandlerValidator свои Ada, на которые хочет купить ЦФА. Проверка того, что клиент создает кол-во ЦФА пропорциональное по рейту тому, сколько он перечислил Ada
  • При продаже проверяется, что клиенту перечислилось пропорционально столько Ada, на сколько он сжег своих ЦФА

Project launch

   npm install --force
   npm start