Address Details
contract

0xE97dAc5EB7B6B397bd11b5005C3C8967eE52A867

Contract Name
SmartRentContract
Creator
0xd5ad15–48e34b at 0xc68a24–744e34
Balance
0 CELO ( )
Locked CELO Balance
0.00 CELO
Voting CELO Balance
0.00 CELO
Pending Unlocked Gold
0.00 CELO
Tokens
Fetching tokens...
Transactions
Fetching transactions...
Transfers
Fetching transfers...
Gas Used
Fetching gas used...
Last Balance Update
4882893
This contract has been verified via Sourcify. View contract in Sourcify repository
Contract name:
SmartRentContract




Optimization enabled
false
Compiler version
v0.5.16+commit.9c3226ce




EVM Version
istanbul




Verified at
2022-09-30T12:48:04.740381Z

/C/Users/User/Desktop/fyp/contracts/SmartRentContract.sol

// Learn more about Solidity here: https://solidity.readthedocs.io

// This statement specifies the compatible compiler versions
pragma solidity >=0.5.0;

// Declare a contract called HelloWorld
contract SmartRentContract {
    
    event TenantAssigned(address tenantAddress, uint rentAmount, uint rentDeposit);
    event TenantSigned(address tenantAddress);
    event DepositPaid(address tenantAddress, uint rentDeposit);
    event ApprovedSmartRent(address tenant);

    address payable landlordAddress;
    string public landlordName;
    
    bool isSigned = false;
    bool hasPaidDeposit = false;
    bool initialized;
    
    mapping (address => bool) public tenantToSigned;
    address payable tenantAddress;
    uint rentAmount;
    uint rentDeposit;
    uint startDate;
    uint endDate;
    string public roomAddress;

    string name = "Smart Rent";

    constructor(string memory _landlord,
            string memory _roomAddress,
            uint _startDate,
            uint _endDate,
            uint _deposit,
            uint _rent,
            address payable _tenantAddress)
        public {
            landlordName = _landlord;
            roomAddress = _roomAddress;
            startDate = _startDate;
            endDate = _endDate;
            rentDeposit = _deposit;
            rentAmount = _rent;
            tenantAddress = _tenantAddress;
    }

    modifier landlordOnly() {
        require(msg.sender == landlordAddress);
        _;
    }

    modifier hasSigned() {
        require(isSigned == true, "Tenant must sign the contract before invoking this functionality");
        _;
    }

    modifier notZeroAddres(address addr){
        require(addr != address(0), "0th address is not allowed!");
        _;
    }

    function setStartDate(uint _startDate) public landlordOnly {
        startDate = _startDate;
    }

    function setEndDate(uint _endDate) public landlordOnly {
        endDate = _endDate;
    }

    function setRoomAddress(string memory _roomAddress) public {
        roomAddress = _roomAddress;
    }

    function assignTenant(address _tenantAddress)
      external notZeroAddres(_tenantAddress) {
        require(_tenantAddress != landlordAddress, "Landlord is not allowed to be tenant at the same time");
        emit TenantAssigned(_tenantAddress, rentAmount, rentDeposit);
    }

    function signContract() public {
        require(isSigned == false);
        tenantToSigned[msg.sender] = true;
        isSigned = true;
        emit TenantSigned(msg.sender);
    }

    function payDeposit() external payable {
        require(hasPaidDeposit == false);
        hasPaidDeposit = true;
        emit DepositPaid(msg.sender, msg.value);
    }

    function getName() public view returns (string memory) 
    {
        // Return the storage variable 'name'
        return name;
    }
}
        

Contract ABI

[{"type":"constructor","stateMutability":"nonpayable","payable":false,"inputs":[{"type":"string","name":"_landlord","internalType":"string"},{"type":"string","name":"_roomAddress","internalType":"string"},{"type":"uint256","name":"_startDate","internalType":"uint256"},{"type":"uint256","name":"_endDate","internalType":"uint256"},{"type":"uint256","name":"_deposit","internalType":"uint256"},{"type":"uint256","name":"_rent","internalType":"uint256"},{"type":"address","name":"_tenantAddress","internalType":"address payable"}]},{"type":"event","name":"ApprovedSmartRent","inputs":[{"type":"address","name":"tenant","internalType":"address","indexed":false}],"anonymous":false},{"type":"event","name":"DepositPaid","inputs":[{"type":"address","name":"tenantAddress","internalType":"address","indexed":false},{"type":"uint256","name":"rentDeposit","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"event","name":"TenantAssigned","inputs":[{"type":"address","name":"tenantAddress","internalType":"address","indexed":false},{"type":"uint256","name":"rentAmount","internalType":"uint256","indexed":false},{"type":"uint256","name":"rentDeposit","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"event","name":"TenantSigned","inputs":[{"type":"address","name":"tenantAddress","internalType":"address","indexed":false}],"anonymous":false},{"type":"function","stateMutability":"nonpayable","payable":false,"outputs":[],"name":"assignTenant","inputs":[{"type":"address","name":"_tenantAddress","internalType":"address"}],"constant":false},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"string","name":"","internalType":"string"}],"name":"getName","inputs":[],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"string","name":"","internalType":"string"}],"name":"landlordName","inputs":[],"constant":true},{"type":"function","stateMutability":"payable","payable":true,"outputs":[],"name":"payDeposit","inputs":[],"constant":false},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"string","name":"","internalType":"string"}],"name":"roomAddress","inputs":[],"constant":true},{"type":"function","stateMutability":"nonpayable","payable":false,"outputs":[],"name":"setEndDate","inputs":[{"type":"uint256","name":"_endDate","internalType":"uint256"}],"constant":false},{"type":"function","stateMutability":"nonpayable","payable":false,"outputs":[],"name":"setRoomAddress","inputs":[{"type":"string","name":"_roomAddress","internalType":"string"}],"constant":false},{"type":"function","stateMutability":"nonpayable","payable":false,"outputs":[],"name":"setStartDate","inputs":[{"type":"uint256","name":"_startDate","internalType":"uint256"}],"constant":false},{"type":"function","stateMutability":"nonpayable","payable":false,"outputs":[],"name":"signContract","inputs":[],"constant":false},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"tenantToSigned","inputs":[{"type":"address","name":"","internalType":"address"}],"constant":true}]
              

Contract Creation Code

0x60806040526000600260006101000a81548160ff0219169083151502179055506000600260016101000a81548160ff0219169083151502179055506040518060400160405280600a81526020017f536d6172742052656e7400000000000000000000000000000000000000000000815250600a9080519060200190620000879291906200030a565b503480156200009557600080fd5b5060405162000f7a38038062000f7a833981810160405260e0811015620000bb57600080fd5b8101908080516040519392919084640100000000821115620000dc57600080fd5b83820191506020820185811115620000f357600080fd5b82518660018202830111640100000000821117156200011157600080fd5b8083526020830192505050908051906020019080838360005b83811015620001475780820151818401526020810190506200012a565b50505050905090810190601f168015620001755780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200019957600080fd5b83820191506020820185811115620001b057600080fd5b8251866001820283011164010000000082111715620001ce57600080fd5b8083526020830192505050908051906020019080838360005b8381101562000204578082015181840152602081019050620001e7565b50505050905090810190601f168015620002325780820380516001836020036101000a031916815260200191505b5060405260200180519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291905050508660019080519060200190620002869291906200030a565b5085600990805190602001906200029f9291906200030a565b508460078190555083600881905550826006819055508160058190555080600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050505050620003b9565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200034d57805160ff19168380011785556200037e565b828001600101855582156200037e579182015b828111156200037d57825182559160200191906001019062000360565b5b5090506200038d919062000391565b5090565b620003b691905b80821115620003b257600081600090555060010162000398565b5090565b90565b610bb180620003c96000396000f3fe6080604052600436106100915760003560e01c8063b8b4f1a011610059578063b8b4f1a014610236578063d1aac1711461024d578063d964f29e1461029e578063dc4a611c1461032e578063e1746af9146103f657610091565b806317d7de7c146100965780633784f000146101265780635c274b861461016157806382d95df51461016b5780639419bc29146101a6575b600080fd5b3480156100a257600080fd5b506100ab61045f565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156100eb5780820151818401526020810190506100d0565b50505050905090810190601f1680156101185780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561013257600080fd5b5061015f6004803603602081101561014957600080fd5b8101908080359060200190929190505050610501565b005b610169610564565b005b34801561017757600080fd5b506101a46004803603602081101561018e57600080fd5b810190808035906020019092919050505061060c565b005b3480156101b257600080fd5b506101bb61066f565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101fb5780820151818401526020810190506101e0565b50505050905090810190601f1680156102285780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561024257600080fd5b5061024b61070d565b005b34801561025957600080fd5b5061029c6004803603602081101561027057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610805565b005b3480156102aa57600080fd5b506102b36109ca565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102f35780820151818401526020810190506102d8565b50505050905090810190601f1680156103205780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561033a57600080fd5b506103f46004803603602081101561035157600080fd5b810190808035906020019064010000000081111561036e57600080fd5b82018360208201111561038057600080fd5b803590602001918460018302840111640100000000831117156103a257600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610a68565b005b34801561040257600080fd5b506104456004803603602081101561041957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a82565b604051808215151515815260200191505060405180910390f35b6060600a8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156104f75780601f106104cc576101008083540402835291602001916104f7565b820191906000526020600020905b8154815290600101906020018083116104da57829003601f168201915b5050505050905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461055a57600080fd5b8060088190555050565b60001515600260019054906101000a900460ff1615151461058457600080fd5b6001600260016101000a81548160ff0219169083151502179055507ff1953715a33b9e021c0f2cf12911e8ac25fdb177bf6fc92d1331ae05201fe9f63334604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461066557600080fd5b8060078190555050565b60018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107055780601f106106da57610100808354040283529160200191610705565b820191906000526020600020905b8154815290600101906020018083116106e857829003601f168201915b505050505081565b60001515600260009054906101000a900460ff1615151461072d57600080fd5b6001600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600260006101000a81548160ff0219169083151502179055507fe653009d32c7245a6ff858fa3a804f5beb3b19b4bbe48178446e966401d8389433604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b80600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156108a9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f3074682061646472657373206973206e6f7420616c6c6f77656421000000000081525060200191505060405180910390fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561094f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526035815260200180610b486035913960400191505060405180910390fd5b7ff32dc6bb034b9afc20d4c7daa180b08e89cac33817a6836595b1021c4347620482600554600654604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001935050505060405180910390a15050565b60098054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610a605780601f10610a3557610100808354040283529160200191610a60565b820191906000526020600020905b815481529060010190602001808311610a4357829003601f168201915b505050505081565b8060099080519060200190610a7e929190610aa2565b5050565b60036020528060005260406000206000915054906101000a900460ff1681565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10610ae357805160ff1916838001178555610b11565b82800160010185558215610b11579182015b82811115610b10578251825591602001919060010190610af5565b5b509050610b1e9190610b22565b5090565b610b4491905b80821115610b40576000816000905550600101610b28565b5090565b9056fe4c616e646c6f7264206973206e6f7420616c6c6f77656420746f2062652074656e616e74206174207468652073616d652074696d65a265627a7a723158204be6cb19165ad35e2694c71dfe5ebd695157c9279a5da416fc75339c013ae54264736f6c6343000510003200000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000608bb42a00000000000000000000000000000000000000000000000000000000608e572a00000000000000000000000000000000000000000000000000000000000000fa000000000000000000000000000000000000000000000000000000000000012c000000000000000000000000615f95287ffccb181ff93606121ddd8b941a09e500000000000000000000000000000000000000000000000000000000000000054672616e6b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e3939412c204c6f726f6e67203939000000000000000000000000000000000000

Deployed ByteCode

0x6080604052600436106100915760003560e01c8063b8b4f1a011610059578063b8b4f1a014610236578063d1aac1711461024d578063d964f29e1461029e578063dc4a611c1461032e578063e1746af9146103f657610091565b806317d7de7c146100965780633784f000146101265780635c274b861461016157806382d95df51461016b5780639419bc29146101a6575b600080fd5b3480156100a257600080fd5b506100ab61045f565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156100eb5780820151818401526020810190506100d0565b50505050905090810190601f1680156101185780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561013257600080fd5b5061015f6004803603602081101561014957600080fd5b8101908080359060200190929190505050610501565b005b610169610564565b005b34801561017757600080fd5b506101a46004803603602081101561018e57600080fd5b810190808035906020019092919050505061060c565b005b3480156101b257600080fd5b506101bb61066f565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101fb5780820151818401526020810190506101e0565b50505050905090810190601f1680156102285780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561024257600080fd5b5061024b61070d565b005b34801561025957600080fd5b5061029c6004803603602081101561027057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610805565b005b3480156102aa57600080fd5b506102b36109ca565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102f35780820151818401526020810190506102d8565b50505050905090810190601f1680156103205780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561033a57600080fd5b506103f46004803603602081101561035157600080fd5b810190808035906020019064010000000081111561036e57600080fd5b82018360208201111561038057600080fd5b803590602001918460018302840111640100000000831117156103a257600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610a68565b005b34801561040257600080fd5b506104456004803603602081101561041957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a82565b604051808215151515815260200191505060405180910390f35b6060600a8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156104f75780601f106104cc576101008083540402835291602001916104f7565b820191906000526020600020905b8154815290600101906020018083116104da57829003601f168201915b5050505050905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461055a57600080fd5b8060088190555050565b60001515600260019054906101000a900460ff1615151461058457600080fd5b6001600260016101000a81548160ff0219169083151502179055507ff1953715a33b9e021c0f2cf12911e8ac25fdb177bf6fc92d1331ae05201fe9f63334604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461066557600080fd5b8060078190555050565b60018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107055780601f106106da57610100808354040283529160200191610705565b820191906000526020600020905b8154815290600101906020018083116106e857829003601f168201915b505050505081565b60001515600260009054906101000a900460ff1615151461072d57600080fd5b6001600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600260006101000a81548160ff0219169083151502179055507fe653009d32c7245a6ff858fa3a804f5beb3b19b4bbe48178446e966401d8389433604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b80600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156108a9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f3074682061646472657373206973206e6f7420616c6c6f77656421000000000081525060200191505060405180910390fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561094f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526035815260200180610b486035913960400191505060405180910390fd5b7ff32dc6bb034b9afc20d4c7daa180b08e89cac33817a6836595b1021c4347620482600554600654604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001935050505060405180910390a15050565b60098054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610a605780601f10610a3557610100808354040283529160200191610a60565b820191906000526020600020905b815481529060010190602001808311610a4357829003601f168201915b505050505081565b8060099080519060200190610a7e929190610aa2565b5050565b60036020528060005260406000206000915054906101000a900460ff1681565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10610ae357805160ff1916838001178555610b11565b82800160010185558215610b11579182015b82811115610b10578251825591602001919060010190610af5565b5b509050610b1e9190610b22565b5090565b610b4491905b80821115610b40576000816000905550600101610b28565b5090565b9056fe4c616e646c6f7264206973206e6f7420616c6c6f77656420746f2062652074656e616e74206174207468652073616d652074696d65a265627a7a723158204be6cb19165ad35e2694c71dfe5ebd695157c9279a5da416fc75339c013ae54264736f6c63430005100032