ИЕП/Лаб 3 2024

Извор: SI Wiki
Пређи на навигацију Пређи на претрагу

Трећа лабораторијска вежба одржана је 23. маја 2024. године, радила се сат и по времена и била је доступна сва потребна документација, као и сви кодови са вежби.

Прва група

Потребно је написати паметни уговор коришћењем Solidity програмског језика који ће омогућити власнику продавнице да своје производе продаје замену за новац, односно токене, који су намењени само за ту продавницу. Предвидети следеће функционалности:

  • Омогућити купцима да за ЕТХ криптовалуту купе одређен број токена које могу трошити у продавници. Цену једног токена задати приликом креирања паметног уговора. Токене чувати помоћи апоена ("новчаница") у вредности од 5 и од 1 токен и то тако да у сваком тренутку укупан број апоена буде најмањи могући. Уколико купац није обезбедио довољно криптовалута за куповину пријавити грешку.
  • Омогућити купцима проверу тренутног стања свих токена. Уколико купац пре провере стања није купио ни један токен, пријавити грешку. Као повратну информацију купац треба да добије два цела броја која представљају број апоена у вредности од 5 токена и број апоена у вредности од 1 токена.
  • Омогућити власнику продавнице да умањи број токена неког купца за задату количину. Уколико купац нема довољно токена пријавити грешку. Приступ овој функционалности омогућити само власнику продавнице.
  • Омогућити власнику продавнице да изврши пренос криптовалута које су купци дали за токене на сопствени рачун. Приступ овој функционалности омогућити само власнику продавнице.

Поред овог паметног уговора потребно је написати и скрипту у програмском језику Python која треба да симулира рад са написаним паметним уговором према следећим ставкама:

  • Креирати паметни уговор
  • Купити 12 токена за првог купца
  • Дохватити и исписати стање првог купца
  • Проверити стање другог купца и обрадити грешку
  • Купити 17 токена за другог купца
  • Проверити и исписати стање другог купца
  • Потрошити 3 токена првог купца
  • Проверити и исписати стање првог купца
  • Потрошити 2 токена другог купца
  • Проверити и исписати стање другог купца
  • Извршити пренос потрошених криптовалута на рачун власника продавнице


Приликом писања симулације није дозвољено коришћење већ откључанихи рачуна, већ је неопходно програмским путем правити и иницијализовати нове рачуне.

Друга група

Потребно је написати паметни уговор коришћењем Solidity програмског језика који ће омогућити власнику продавнице да своје производе продаје замену за новац, односно токене, који су намењени само за ту продавницу. Предвидети следеће функционалности:

  • Омогућити купцима да за ЕТХ криптовалуту купе одређен број токена које могу трошити у продавници. Цену једног токена задати приликом креирања паметног уговора. Постоји и дозвољени минус, који се задаје приликом стварања уговора, и уколико купац не прелази дозвољени минус при куповини, омогућити му је. Купац при куповини токене са којима је у минусу плаћа дупло скупље. Уколико купац није обезбедио довољно криптовалута за куповину пријавити грешку.
  • Омогућити купцима проверу тренутног стања токена. Уколико купац пре провере стања није купио ни један токен, пријавити грешку. Повратна вредност је број токена[1].
  • Омогућити власнику продавнице да умањи број токена неког купца за задату количину. Уколико купац нема довољно токена пријавити грешку. Приступ овој функционалности омогућити само власнику продавнице.
  • Омогућити власнику продавнице да изврши пренос криптовалута које су купци дали за токене на сопствени рачун. Приступ овој функционалности омогућити само власнику продавнице.

Поред овог паметног уговора потребно је написати и скрипту у програмском језику Python која треба да симулира рад са написаним паметним уговором према следећим ставкама:

  • Креирати паметни уговор
  • Купити 3 токена за првог купца
  • Дохватити и исписати стање првог купца
  • Проверити стање другог купца и обрадити грешку
  • Купити 4 токена за другог купца
  • Проверити и исписати стање другог купца
  • Потрошити 10 токена првог купца
  • Проверити и исписати стање првог купца
  • Купити 15 токена за првог купца
  • Проверити и исписати стање првог купца
  • Извршити пренос потрошених криптовалута на рачун власника продавнице


Приликом писања симулације није дозвољено коришћење већ откључанихи рачуна, већ је неопходно програмским путем правити и иницијализовати нове рачуне.

  1. При обиласку је било наглашено да је потребно за рачуне у минусу вратити негативну вредност, а не нулу.