From f1e52be16ee2197f63d8a11443a33273aca6b7c8 Mon Sep 17 00:00:00 2001 From: Prince Tindan <90090677+princetindan@users.noreply.github.com> Date: Mon, 11 Sep 2023 10:47:09 +0000 Subject: [PATCH] assignment done --- .../hotelBookingsMultiSigWallet.sol | 94 +++++++++++++++++++ .../contracts/hotelBookings.sol | 94 +++++++++++++++++++ 2 files changed, 188 insertions(+) create mode 100644 MultiContractTutorial/contracts/Multisig.sol/hotelBookingsMultiSigWallet.sol create mode 100644 MultiContractTutorial/contracts/hotelBookings.sol diff --git a/MultiContractTutorial/contracts/Multisig.sol/hotelBookingsMultiSigWallet.sol b/MultiContractTutorial/contracts/Multisig.sol/hotelBookingsMultiSigWallet.sol new file mode 100644 index 00000000..b18387da --- /dev/null +++ b/MultiContractTutorial/contracts/Multisig.sol/hotelBookingsMultiSigWallet.sol @@ -0,0 +1,94 @@ +// SPDX-License-Identifier:"" +pragma solidity ^0.8.20; + +contract hotelBooking{ + address public owner; + uint public noOfRooms +} + +//defining a struct for the hotel room +struct hotelRoom +{ + string categoryName; + uint tariff; + bool occupied; + uint review; + uint reviewNo; + address costumersBooked; + bool booked; + uint checkoutTimestamp; +} + +//mapping from room number to room details. +mapping(uint => hotelRoom) public hotelRoomDetails; + +//constructor to set the contract owner and activate room +constructor() +{ + owner = msg.sender; + setHotelRoom(1, "Royal", 10); + setHotelRoom(2, "Premium", 5); + setHotelRoom(3, "Delux", 3); + +} + +//modifying to ensure thatz only the contract owsnser can call t.he modifer +modifier onlyOwner() +{ + require(msg.sender == owner, "only the contract owner can call this function") +} +struct costumer +{ +string name; +string addres; +uint custIdNo; +} + +//function to set hotel room details +function setHotelRoom( uint _roomNo, string memory _categoryName, +uint _tariff) public onlyOwner +{ +hotelRoomDetails[ _roomNo].categoryName = _categoryName; +hotelRoomDetails[ _roomNo].tariff = _tariff; +hotelRoomDetails[ _roomNo].review = 0; +hotelRoomDetails[ _roomNo].reviewNo = 0; +hotelRoomDetails[ _roomNo].occupied = false; +hotelRoomDetails[ _roomNo].customerBooked = address(0); +hotelRoomDetails[ _roomNo].false; +hotelRoomDetails[ _roomNo].checkoutTimestamp = 0; +noOfRooms++; +} + +//function to book the Royal room. +function bookRoomRoyal() public payable +{ + require(msg.value == 10, "Incorrect payment amount"); + require(!hotelRoomDetails[1].booked, "Room is already booked"); + hotelRoomDetails[1].booked =true; + hotelRoomDetails[1].occupied = true; + hotelRoomDetails[1].customerBooked = msg.sender; + hotelRoomDetails[1].checkoutTimestamp = block.timestamp; +} + +//funcetion to book the Premuim room. +function bookRoomPremium() public payable +{ + require(msg.value == 5, "Incorrect payment amount"); + require(!hotelRoomDetails[2].booked, "Room is already booked"); + hotelRoomDetails[2].booked = true; + hotelRoomDetails[2].occupied = true; + hotelRoomDetails[2].customerBooked = msg.sender; + hotelRoomDetails[2].checkoutTimestamp = block.timestamp; +} + +//function to book delux room. +function bookRoomDelux() public payable +{ + require(msg.value == 2, "Incorrect payment amount"); + require(!hotelRoomDetails[3].booked, "Room is already occupied"); + hotelRoomDetails[3].booked = true; + hotelRoomDetails[3].occupied = true; + hotelRoomDetails[3].customerBooked = msg.sender; + hotelRoomDetails[3].checkoutTimestamp = block.timestamp; +} + diff --git a/MultiContractTutorial/contracts/hotelBookings.sol b/MultiContractTutorial/contracts/hotelBookings.sol new file mode 100644 index 00000000..b18387da --- /dev/null +++ b/MultiContractTutorial/contracts/hotelBookings.sol @@ -0,0 +1,94 @@ +// SPDX-License-Identifier:"" +pragma solidity ^0.8.20; + +contract hotelBooking{ + address public owner; + uint public noOfRooms +} + +//defining a struct for the hotel room +struct hotelRoom +{ + string categoryName; + uint tariff; + bool occupied; + uint review; + uint reviewNo; + address costumersBooked; + bool booked; + uint checkoutTimestamp; +} + +//mapping from room number to room details. +mapping(uint => hotelRoom) public hotelRoomDetails; + +//constructor to set the contract owner and activate room +constructor() +{ + owner = msg.sender; + setHotelRoom(1, "Royal", 10); + setHotelRoom(2, "Premium", 5); + setHotelRoom(3, "Delux", 3); + +} + +//modifying to ensure thatz only the contract owsnser can call t.he modifer +modifier onlyOwner() +{ + require(msg.sender == owner, "only the contract owner can call this function") +} +struct costumer +{ +string name; +string addres; +uint custIdNo; +} + +//function to set hotel room details +function setHotelRoom( uint _roomNo, string memory _categoryName, +uint _tariff) public onlyOwner +{ +hotelRoomDetails[ _roomNo].categoryName = _categoryName; +hotelRoomDetails[ _roomNo].tariff = _tariff; +hotelRoomDetails[ _roomNo].review = 0; +hotelRoomDetails[ _roomNo].reviewNo = 0; +hotelRoomDetails[ _roomNo].occupied = false; +hotelRoomDetails[ _roomNo].customerBooked = address(0); +hotelRoomDetails[ _roomNo].false; +hotelRoomDetails[ _roomNo].checkoutTimestamp = 0; +noOfRooms++; +} + +//function to book the Royal room. +function bookRoomRoyal() public payable +{ + require(msg.value == 10, "Incorrect payment amount"); + require(!hotelRoomDetails[1].booked, "Room is already booked"); + hotelRoomDetails[1].booked =true; + hotelRoomDetails[1].occupied = true; + hotelRoomDetails[1].customerBooked = msg.sender; + hotelRoomDetails[1].checkoutTimestamp = block.timestamp; +} + +//funcetion to book the Premuim room. +function bookRoomPremium() public payable +{ + require(msg.value == 5, "Incorrect payment amount"); + require(!hotelRoomDetails[2].booked, "Room is already booked"); + hotelRoomDetails[2].booked = true; + hotelRoomDetails[2].occupied = true; + hotelRoomDetails[2].customerBooked = msg.sender; + hotelRoomDetails[2].checkoutTimestamp = block.timestamp; +} + +//function to book delux room. +function bookRoomDelux() public payable +{ + require(msg.value == 2, "Incorrect payment amount"); + require(!hotelRoomDetails[3].booked, "Room is already occupied"); + hotelRoomDetails[3].booked = true; + hotelRoomDetails[3].occupied = true; + hotelRoomDetails[3].customerBooked = msg.sender; + hotelRoomDetails[3].checkoutTimestamp = block.timestamp; +} +