tanszek:oktatas:blockchain_technologia_es_virtualis_fizetoeszkoezoek
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| tanszek:oktatas:blockchain_technologia_es_virtualis_fizetoeszkoezoek [2024/11/21 17:02] – [Blokklánc felépítése] knehez | tanszek:oktatas:blockchain_technologia_es_virtualis_fizetoeszkoezoek [2024/11/21 17:32] (current) – [Okosszerződések (Smart Contracts)] knehez | ||
|---|---|---|---|
| Line 104: | Line 104: | ||
| * **1. példa**: Egy biztosítási szerződés, | * **1. példa**: Egy biztosítási szerződés, | ||
| + | <sxh javascript> | ||
| + | pragma solidity ^0.8.0; | ||
| + | |||
| + | contract FlightDelayInsurance { | ||
| + | struct Policy { | ||
| + | address insured; | ||
| + | uint256 premium; | ||
| + | uint256 payout; | ||
| + | bool active; | ||
| + | bool paidOut; | ||
| + | } | ||
| + | |||
| + | address public owner; // A biztosító címe | ||
| + | mapping(string => Policy) public policies; // Járatszámhoz kötött biztosítási szerződések | ||
| + | |||
| + | event PolicyPurchased(address indexed insured, string flightNumber, | ||
| + | event CompensationPaid(address indexed insured, string flightNumber, | ||
| + | |||
| + | constructor() { | ||
| + | owner = msg.sender; // A szerződést deployoló fél lesz a biztosító | ||
| + | } | ||
| + | |||
| + | modifier onlyOwner() { | ||
| + | require(msg.sender == owner, "Csak a biztosító végezheti ezt a műveletet." | ||
| + | } | ||
| + | |||
| + | // Biztosítás vásárlása | ||
| + | function purchasePolicy(string memory flightNumber, | ||
| + | require(msg.value > 0, " | ||
| + | require(policies[flightNumber].insured == address(0), "Ehhez a járathoz már van biztosítás." | ||
| + | |||
| + | policies[flightNumber] = Policy({ | ||
| + | insured: msg.sender, | ||
| + | premium: msg.value, | ||
| + | payout: payout, | ||
| + | active: true, | ||
| + | paidOut: false | ||
| + | }); | ||
| + | |||
| + | emit PolicyPurchased(msg.sender, | ||
| + | } | ||
| + | |||
| + | // Kártérítés kifizetése késés esetén (az orákulum adatai alapján) | ||
| + | function payCompensation(string memory flightNumber) public onlyOwner { | ||
| + | Policy storage policy = policies[flightNumber]; | ||
| + | require(policy.active, | ||
| + | require(!policy.paidOut, | ||
| + | |||
| + | // Kifizetés | ||
| + | policy.paidOut = true; | ||
| + | policy.active = false; | ||
| + | |||
| + | payable(policy.insured).transfer(policy.payout); | ||
| + | emit CompensationPaid(policy.insured, | ||
| + | } | ||
| + | |||
| + | // Szerződés egyenlegének lekérdezése | ||
| + | function getBalance() public view onlyOwner returns (uint256) { | ||
| + | return address(this).balance; | ||
| + | } | ||
| + | |||
| + | // Külső forrásból származó információk frissítése (orákulum szimulációja) | ||
| + | function handleFlightDelay(string memory flightNumber) public onlyOwner { | ||
| + | // Ez a függvény szimulálja a repülési késés adatok fogadását | ||
| + | // és automatikusan meghívja a kártérítést kifizető függvényt | ||
| + | payCompensation(flightNumber); | ||
| + | } | ||
| + | } | ||
| + | |||
| + | </ | ||
| ===== Virtuális fizetőeszközök előnyei és kihívásai ===== | ===== Virtuális fizetőeszközök előnyei és kihívásai ===== | ||
| * **Előnyök**: | * **Előnyök**: | ||
tanszek/oktatas/blockchain_technologia_es_virtualis_fizetoeszkoezoek.1732208573.txt.gz · Last modified: 2024/11/21 17:02 by knehez
