这是智能合约演练系列的第2部门。在以下文章中,我将为您提供一个关于房地产租赁智能合约的技能实施细节的深入概述。 只有在以下环境下,房主才可以告诫房客关于房租:
留意:此地方有基于日期的计较均基于UNIX时间戳。此刻是要害字,它为我们提供了包括生意业务的区块的时间戳。可是这不是精确的时间戳,它会导致时间超出答允范畴。出租物业用例::
假如到达告诫限制,,所有者也可以开除租户。挪用dismissTenant要领还将工业租赁状态重置为false。
任何用户都可以通过挪用registerAsTenant要领表达对出租物业的乐趣。假如不出租该物业,它将为给定用户配置tenantRegistry映射。所有者将通过挪用confirmTenant要领来确认哪个用户应该成为租户,并输入相应的用户钱包地点这将最终确定承租人,将物业出租状态标志为true,并将按照租金隔断配置租金到期日。
留意:任何范例为struct的函数浸染域变量都应明晰指出其数据位置-内存或存储,因为这有助于编译器做出基于事务的决定。请留意,在getRentStatus要领中,我们将返回每个字段,因为不行能返回完整的布局。实体仅将布局实现为变量会丢失。
withdrawRent将答允所有者从智能合约地点中提取每月租金。它还将把每个月的rentInStore映射重置为0,因为不该答允所有者每月两次提取租金。
· 租户尚未付出租金,而且已到到期日。
payRent要领将答允租户付出给定月份的租金。请留意,只有在发送的金额便是要付出的租金金额时才会接管租金,它还会配置下一个到期日并将租户告诫重置为0(假如有)。
我们界说了事件,这些事件将辅佐我们记录乐成的生意业务。我们在结构函数自己中配置属性owner,属性具体信息和月份映射。结构函数仅被挪用一次(陈设智能合约时)。
注-假如函数参数(以及返回参数)的范例为struct,array,mapping或string,则应明晰指出其数据位置-内存照旧存储。假如函数是external,则应将数据位置作为calldata。 针对每个属性字段的注释界说了它们各自的脚色
· 最近告诫(假如有)至少在2天前提出(此刻-告诫时间> 172800000)。
以下是我们界说的数据布局:
将触发一个告诫事件,该事件可以通过利用web3 api的用户界面侦听,以告诫租户有关未决租金的信息。告诫计数也会增加。
上面显示的是各类修饰符,用于断绝和区分我们智能合约的各类函数。
但愿您喜欢!在下一部门举办结帐,我们将通过该部门举办业务相助同伴智能合约。
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。