IEP/Lab 3 2024

Izvor: SI Wiki
< ИЕП
Datum izmene: 29. maj 2024. u 21:09; autor: Aleksa (razgovor | doprinosi)
(razl) ← Starija izmena | Trenutna verzija (razl) | Novija izmena → (razl)
Pređi na navigaciju Pređi na pretragu

Treća laboratorijska vežba održana je 23. maja 2024. godine, radila se sat i po vremena i bila je dostupna sva potrebna dokumentacija, kao i svi kodovi sa vežbi.

Prva grupa

Potrebno je napisati pametni ugovor korišćenjem Solidity programskog jezika koji će omogućiti vlasniku prodavnice da svoje proizvode prodaje zamenu za novac, odnosno tokene, koji su namenjeni samo za tu prodavnicu. Predvideti sledeće funkcionalnosti:

  • Omogućiti kupcima da za ETH kriptovalutu kupe određen broj tokena koje mogu trošiti u prodavnici. Cenu jednog tokena zadati prilikom kreiranja pametnog ugovora. Tokene čuvati pomoći apoena ("novčanica") u vrednosti od 5 i od 1 token i to tako da u svakom trenutku ukupan broj apoena bude najmanji mogući. Ukoliko kupac nije obezbedio dovoljno kriptovaluta za kupovinu prijaviti grešku.
  • Omogućiti kupcima proveru trenutnog stanja svih tokena. Ukoliko kupac pre provere stanja nije kupio ni jedan token, prijaviti grešku. Kao povratnu informaciju kupac treba da dobije dva cela broja koja predstavljaju broj apoena u vrednosti od 5 tokena i broj apoena u vrednosti od 1 tokena.
  • Omogućiti vlasniku prodavnice da umanji broj tokena nekog kupca za zadatu količinu. Ukoliko kupac nema dovoljno tokena prijaviti grešku. Pristup ovoj funkcionalnosti omogućiti samo vlasniku prodavnice.
  • Omogućiti vlasniku prodavnice da izvrši prenos kriptovaluta koje su kupci dali za tokene na sopstveni račun. Pristup ovoj funkcionalnosti omogućiti samo vlasniku prodavnice.

Pored ovog pametnog ugovora potrebno je napisati i skriptu u programskom jeziku Python koja treba da simulira rad sa napisanim pametnim ugovorom prema sledećim stavkama:

  • Kreirati pametni ugovor
  • Kupiti 12 tokena za prvog kupca
  • Dohvatiti i ispisati stanje prvog kupca
  • Proveriti stanje drugog kupca i obraditi grešku
  • Kupiti 17 tokena za drugog kupca
  • Proveriti i ispisati stanje drugog kupca
  • Potrošiti 3 tokena prvog kupca
  • Proveriti i ispisati stanje prvog kupca
  • Potrošiti 2 tokena drugog kupca
  • Proveriti i ispisati stanje drugog kupca
  • Izvršiti prenos potrošenih kriptovaluta na račun vlasnika prodavnice


Prilikom pisanja simulacije nije dozvoljeno korišćenje već otključanihi računa, već je neophodno programskim putem praviti i inicijalizovati nove račune.

Druga grupa

Potrebno je napisati pametni ugovor korišćenjem Solidity programskog jezika koji će omogućiti vlasniku prodavnice da svoje proizvode prodaje zamenu za novac, odnosno tokene, koji su namenjeni samo za tu prodavnicu. Predvideti sledeće funkcionalnosti:

  • Omogućiti kupcima da za ETH kriptovalutu kupe određen broj tokena koje mogu trošiti u prodavnici. Cenu jednog tokena zadati prilikom kreiranja pametnog ugovora. Postoji i dozvoljeni minus, koji se zadaje prilikom stvaranja ugovora, i ukoliko kupac ne prelazi dozvoljeni minus pri kupovini, omogućiti mu je. Kupac pri kupovini tokene sa kojima je u minusu plaća duplo skuplje. Ukoliko kupac nije obezbedio dovoljno kriptovaluta za kupovinu prijaviti grešku.
  • Omogućiti kupcima proveru trenutnog stanja tokena. Ukoliko kupac pre provere stanja nije kupio ni jedan token, prijaviti grešku. Povratna vrednost je broj tokena[1].
  • Omogućiti vlasniku prodavnice da umanji broj tokena nekog kupca za zadatu količinu. Ukoliko kupac nema dovoljno tokena prijaviti grešku. Pristup ovoj funkcionalnosti omogućiti samo vlasniku prodavnice.
  • Omogućiti vlasniku prodavnice da izvrši prenos kriptovaluta koje su kupci dali za tokene na sopstveni račun. Pristup ovoj funkcionalnosti omogućiti samo vlasniku prodavnice.

Pored ovog pametnog ugovora potrebno je napisati i skriptu u programskom jeziku Python koja treba da simulira rad sa napisanim pametnim ugovorom prema sledećim stavkama:

  • Kreirati pametni ugovor
  • Kupiti 3 tokena za prvog kupca
  • Dohvatiti i ispisati stanje prvog kupca
  • Proveriti stanje drugog kupca i obraditi grešku
  • Kupiti 4 tokena za drugog kupca
  • Proveriti i ispisati stanje drugog kupca
  • Potrošiti 10 tokena prvog kupca
  • Proveriti i ispisati stanje prvog kupca
  • Kupiti 15 tokena za prvog kupca
  • Proveriti i ispisati stanje prvog kupca
  • Izvršiti prenos potrošenih kriptovaluta na račun vlasnika prodavnice


Prilikom pisanja simulacije nije dozvoljeno korišćenje već otključanihi računa, već je neophodno programskim putem praviti i inicijalizovati nove račune.

Napomene

  1. Pri obilasku je bilo naglašeno da je potrebno za račune u minusu vratiti negativnu vrednost, a ne nulu.