Система позволяет "минтить" и "сжигать" GCOIN - цифровой финансовый актив, привязанный к индексу CO2. Привязка токена к индексу CO2 не только создает возможность для финансовых инвестиций, но и подчеркивает важность борьбы с изменением климата и охраны окружающей среды. Если коэффицент CO2 растет в мире, то и стоимость токена растет вместе с ней.
Донося информацию об актуальном индексе CO2, проект призван обратить внимание людей на одну из наиболее актуальных экологических проблем - увеличения углекислого газа в атмосфере. Проект повышает осведомленность людей, а также способен вдохновить на улучшение жизни вокруг себя, показывая real-time изменения, происходящие с нашей планетой.
Привязка к индексу имеет следующие цели:
- Экологическая ответственность: подчеркивание важности сохранения природы
- Инвестиции в устойчивость: вкладывание средств в проекты и инициативы, направленные на уменьшение негативного воздействия на окружающую среду
- Создание стабильных активов: GCOIN - это стейблкоин, который покупается/продается в пределах 98%-102% от индекса CO2
- Социальное воздействие: может служить образцом для общества и предоставлять инсайты о том, какие усилия предпринимаются для борьбы с изменением климата. Это также может вдохновить людей принимать более экологичные решения в повседневной жизни.
Это проект, который объединяет тех, кто разделяет экологические инициативы и стремится к устойчивому будущему для нашей планеты.
- "Минт" ЦФА (=покупка)
- "Сжигание" ЦФА (=продажа)
- Получение из API индекса CO2
- Получение актуального значения индекса из скрипта(точнее говоря, из output'а скрипта засчет модели EUTxO блокчейна)
- Расчет налога, взымаемого блокчейном с транзакции
- Подключение кошельков блокчейна Cardano: Nami, Eternl
- фронтенд часть (получение из API индекса CO2, взаимодействие со скриптами в блокчейне)
- скрипт пула, контролирующего рейт ЦФА к CO2
- скрипт самого ЦФА, контролирующий его покупку и продажу
- скрипт для тред-токена, идентифицирующего output, в котором находится рейт
- обновление рейта в скрипте (происходит с бэкенда, в репозитории его нет)
Все функции, необходимые для взаимодействия с блокчейном, написаны с помощью библиотеки Lucid и находятся в файле offchain.ts
- Нужен кошелек Nami/Eternl
- Подключение к тестовой сети Preprod
- Установление коллатерала в кошельке (для взаимодействия со смарт-контрактами)
Как установить браузерное расширение кошелька, подключить сеть и установить коллатерал - cм. тут
В транзакции спендится два аутпута: один принадлежит скрипту (mkHandlerValidator
),а другой - самого клиента, в котором хранится Ada, за которую можно купить ЦФА.
За счет того, что спендится аутпут скрипта, происходит валидация в mkHandlerValidator
того, что рейт не изменен клиентом (чтобы последующие клиенты не могли по другому - сфальсифицированному рейту - покупать и продавать ЦФА.
Саму же покупку/продажу валидирует скрипт токена (mkTokenPolicy
) - на off-chain происходит формирование транзакции с условием создания/сжигания ЦФА. Засчет этого условия в транзакции скрипт токена исполняется.
Таким образом, mkTokenPolicy
содержит следующие проверки транзакции:
- При покупке клиент перечисляет в output
mkHandlerValidator
свои Ada, на которые хочет купить ЦФА. Проверка того, что клиент создает кол-во ЦФА пропорциональное по рейту тому, сколько он перечислил Ada - При продаже проверяется, что клиенту перечислилось пропорционально столько Ada, на сколько он сжег своих ЦФА
npm install --force
npm start