Address Details
contract

0xe22092693967fcf76b635d123D3b8c3ad010b260

Contract Name
SmartRentFactory
Creator
0x022cba–2ddf2f at 0xf57e77–b6db7f
Balance
0 CELO ( )
Tokens
Fetching tokens...
Transactions
Fetching transactions...
Transfers
Fetching transfers...
Gas Used
Fetching gas used...
Last Balance Update
4917435
This contract has been verified via Sourcify. View contract in Sourcify repository
Contract name:
SmartRentFactory




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




EVM Version
istanbul




Verified at
2022-09-30T12:42:14.629658Z

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

pragma solidity >=0.5.0;

import './SmartRentContract.sol';

contract SmartRentFactory {

    event NewLease(address contractAddress, address indexed landlord, address indexed tenant);

    string name = "Connected ";

    function createRent(
        string memory _landlord,
        address payable _landlordAddress,
        string memory _roomAddress,
        uint _startDate,
        uint _endDate,
        uint _deposit,
        uint _rent,
        address payable _tenantAddress
    ) public
    {
        address newContract = address(new SmartRentContract(_landlord, _landlordAddress, _roomAddress, _startDate, _endDate, _deposit, _rent, _tenantAddress));
        emit NewLease(newContract, _landlordAddress, _tenantAddress);
    }
}
        

/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 public landlordAddress;
    string public landlordName;
    
    bool public isSigned = false;
    bool public hasPaidDeposit = false;
    
    mapping (address => bool) public tenantToSigned;
    address payable public tenantAddress;
    uint256 public rentAmount;
    uint256 public rentDeposit;
    uint256 public startDate;
    uint256 public endDate;
    string public roomAddress;

    string name = "Smart Rent";

    constructor(string memory _landlord,
            address payable _landlordAddress,
            string memory _roomAddress,
            uint _startDate,
            uint _endDate,
            uint _deposit,
            uint _rent,
            address payable _tenantAddress)
        public {
            landlordName = _landlord;
            landlordAddress = _landlordAddress;
            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":"event","name":"NewLease","inputs":[{"type":"address","name":"contractAddress","internalType":"address","indexed":false},{"type":"address","name":"landlord","internalType":"address","indexed":true},{"type":"address","name":"tenant","internalType":"address","indexed":true}],"anonymous":false},{"type":"function","stateMutability":"nonpayable","payable":false,"outputs":[],"name":"createRent","inputs":[{"type":"string","name":"_landlord","internalType":"string"},{"type":"address","name":"_landlordAddress","internalType":"address payable"},{"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"}],"constant":false}]
            

Deployed ByteCode

0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063b9b392e614610030575b600080fd5b6101e9600480360361010081101561004757600080fd5b810190808035906020019064010000000081111561006457600080fd5b82018360208201111561007657600080fd5b8035906020019184600183028401116401000000008311171561009857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561011b57600080fd5b82018360208201111561012d57600080fd5b8035906020019184600183028401116401000000008311171561014f57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506101eb565b005b6000888888888888888860405161020190610419565b80806020018973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001806020018881526020018781526020018681526020018581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183810383528b818151815260200191508051906020019080838360005b838110156102be5780820151818401526020810190506102a3565b50505050905090810190601f1680156102eb5780820380516001836020036101000a031916815260200191505b50838103825289818151815260200191508051906020019080838360005b83811015610324578082015181840152602081019050610309565b50505050905090810190601f1680156103515780820380516001836020036101000a031916815260200191505b509a5050505050505050505050604051809103906000f08015801561037a573d6000803e3d6000fd5b5090508173ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167f6a5e83232efe4dca9454d60fbe19e482e52f973d7fa4123b439c1f9c338a8b7983604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a3505050505050505050565b61127f806104278339019056fe60806040526000600260006101000a81548160ff0219169083151502179055506000600260016101000a81548160ff0219169083151502179055506040518060400160405280600a81526020017f536d6172742052656e7400000000000000000000000000000000000000000000815250600a90805190602001906200008792919062000356565b503480156200009557600080fd5b506040516200127f3803806200127f8339818101604052610100811015620000bc57600080fd5b8101908080516040519392919084640100000000821115620000dd57600080fd5b83820191506020820185811115620000f457600080fd5b82518660018202830111640100000000821117156200011257600080fd5b8083526020830192505050908051906020019080838360005b83811015620001485780820151818401526020810190506200012b565b50505050905090810190601f168015620001765780820380516001836020036101000a031916815260200191505b506040526020018051906020019092919080516040519392919084640100000000821115620001a457600080fd5b83820191506020820185811115620001bb57600080fd5b8251866001820283011164010000000082111715620001d957600080fd5b8083526020830192505050908051906020019080838360005b838110156200020f578082015181840152602081019050620001f2565b50505050905090810190601f1680156200023d5780820380516001836020036101000a031916815260200191505b50604052602001805190602001909291908051906020019092919080519060200190929190805190602001909291908051906020019092919050505087600190805190602001906200029192919062000356565b50866000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508560099080519060200190620002ea92919062000356565b508460078190555083600881905550826006819055508160058190555080600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050505050505062000405565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200039957805160ff1916838001178555620003ca565b82800160010185558215620003ca579182015b82811115620003c9578251825591602001919060010190620003ac565b5b509050620003d99190620003dd565b5090565b6200040291905b80821115620003fe576000816000905550600101620003e4565b5090565b90565b610e6a80620004156000396000f3fe6080604052600436106101095760003560e01c8063b8b4f1a011610095578063d964f29e11610064578063d964f29e14610474578063dc4a611c14610504578063e1746af9146105cc578063e66a6b2214610635578063f8ef1e131461066457610109565b8063b8b4f1a0146103b6578063bf8c0efc146103cd578063c24a0f8b146103f8578063d1aac1711461042357610109565b80633784f000116100dc5780633784f0001461024f5780635c274b861461028a57806382d95df5146102945780639419bc29146102cf578063aca1feea1461035f57610109565b806302d8db081461010e5780630b97bc861461016557806317d7de7c1461019057806332dd81f614610220575b600080fd5b34801561011a57600080fd5b5061012361068f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561017157600080fd5b5061017a6106b4565b6040518082815260200191505060405180910390f35b34801561019c57600080fd5b506101a56106ba565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101e55780820151818401526020810190506101ca565b50505050905090810190601f1680156102125780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561022c57600080fd5b5061023561075c565b604051808215151515815260200191505060405180910390f35b34801561025b57600080fd5b506102886004803603602081101561027257600080fd5b810190808035906020019092919050505061076f565b005b6102926107d2565b005b3480156102a057600080fd5b506102cd600480360360208110156102b757600080fd5b810190808035906020019092919050505061087a565b005b3480156102db57600080fd5b506102e46108dd565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610324578082015181840152602081019050610309565b50505050905090810190601f1680156103515780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561036b57600080fd5b5061037461097b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103c257600080fd5b506103cb6109a1565b005b3480156103d957600080fd5b506103e2610a99565b6040518082815260200191505060405180910390f35b34801561040457600080fd5b5061040d610a9f565b6040518082815260200191505060405180910390f35b34801561042f57600080fd5b506104726004803603602081101561044657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610aa5565b005b34801561048057600080fd5b50610489610c6a565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104c95780820151818401526020810190506104ae565b50505050905090810190601f1680156104f65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561051057600080fd5b506105ca6004803603602081101561052757600080fd5b810190808035906020019064010000000081111561054457600080fd5b82018360208201111561055657600080fd5b8035906020019184600183028401116401000000008311171561057857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610d08565b005b3480156105d857600080fd5b5061061b600480360360208110156105ef57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d22565b604051808215151515815260200191505060405180910390f35b34801561064157600080fd5b5061064a610d42565b604051808215151515815260200191505060405180910390f35b34801561067057600080fd5b50610679610d55565b6040518082815260200191505060405180910390f35b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60075481565b6060600a8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107525780601f1061072757610100808354040283529160200191610752565b820191906000526020600020905b81548152906001019060200180831161073557829003601f168201915b5050505050905090565b600260019054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146107c857600080fd5b8060088190555050565b60001515600260019054906101000a900460ff161515146107f257600080fd5b6001600260016101000a81548160ff0219169083151502179055507ff1953715a33b9e021c0f2cf12911e8ac25fdb177bf6fc92d1331ae05201fe9f63334604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108d357600080fd5b8060078190555050565b60018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109735780601f1061094857610100808354040283529160200191610973565b820191906000526020600020905b81548152906001019060200180831161095657829003601f168201915b505050505081565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60001515600260009054906101000a900460ff161515146109c157600080fd5b6001600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600260006101000a81548160ff0219169083151502179055507fe653009d32c7245a6ff858fa3a804f5beb3b19b4bbe48178446e966401d8389433604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b60065481565b60085481565b80600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610b49576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f3074682061646472657373206973206e6f7420616c6c6f77656421000000000081525060200191505060405180910390fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610bef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526035815260200180610e016035913960400191505060405180910390fd5b7ff32dc6bb034b9afc20d4c7daa180b08e89cac33817a6836595b1021c4347620482600554600654604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001935050505060405180910390a15050565b60098054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d005780601f10610cd557610100808354040283529160200191610d00565b820191906000526020600020905b815481529060010190602001808311610ce357829003601f168201915b505050505081565b8060099080519060200190610d1e929190610d5b565b5050565b60036020528060005260406000206000915054906101000a900460ff1681565b600260009054906101000a900460ff1681565b60055481565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10610d9c57805160ff1916838001178555610dca565b82800160010185558215610dca579182015b82811115610dc9578251825591602001919060010190610dae565b5b509050610dd79190610ddb565b5090565b610dfd91905b80821115610df9576000816000905550600101610de1565b5090565b9056fe4c616e646c6f7264206973206e6f7420616c6c6f77656420746f2062652074656e616e74206174207468652073616d652074696d65a265627a7a723158203734acee69685bb319f771df28394adf56fbdd615b6722eced75bddd66ef58f564736f6c63430005100032a265627a7a723158201a76fa263d4e4834d8750d32b99dda74f744c82207779f62fddf25db4f23f17664736f6c63430005100032