//Write your own contracts here. Currently compiles using solc v0.4.15+commit.bbb8e64f. pragma solidity ^0.4.18; pragma solidity ^0.5.0; contract DeUber{ mapping(address => uint) addressRiderID; mapping(address => uint) addressDriverID; struct Ride { uint rideID; uint riderID; uint driverID; uint totalCost; uint[] bids; bool rideStart; bool rideFinish; bool riderPaymentPermission; bool paymentFinish; string source; string destination; } constructor() public { addressRiderID[msg.sender]=5000; } function registerDriver() public payable returns(string memory) { require(addressDriverID[msg.sender] == 0,"Already registered as Driver."); return "Already registered as Driver."; } function registerRider() public payable returns(string memory) { require(addressRiderID[msg.sender] == 0, "Already registered as Rider."); return "Already registered as Rider."; } function requestRide(string memory _dest, string memory _source,uint distance) public returns(string memory , string memory) { require(addressDriverID[msg.sender] == 0,"Only Rider can request for a ride."); require(addressRiderID[msg.sender] != 0 , "Unable to request Ride, as you are not registered as a Rider!"); } //create a struct - rideid, source, destination, rider address - price of travel, //create a bidding - choose from a list of drivers. //each driver can bid - for price //select driver using the bid //accept drive function function transferTo(address driverID, uint amount) public { require(addressRiderID[msg.sender] >= amount, "Insufficient funds for transfer!"); addressRiderID[msg.sender] -= amount; addressDriverID[driverID] += amount; } function getBalance(address RiderId) public view returns (uint) { return addressRiderID[RiderId]; } }
0.4.18