售前客服二维码
文章均源于网络收集编辑侵删
提示:仅接受技术开发咨询!
以下是我们定义的数据结构:
每个属性字段的注释定义了它们各自的角色 在这里,我们定义了一个“属性”结构,该结构记录属性的详细信息,例如名称、地址、是否出租属性、租金金额、租金间隔、租金到期日期、警告计数、警告限额和租户钱包地址。我们有一个月租金状态结构,这将帮助我们存储每个月的租金状态。我们还提供各种映射-月,摊点注册和租金支付状态。
我们定义了有助于我们记录成功交易的事件。我们在构造函数本身中设置属性所有者、属性细节和月份映射。构造函数只调用一次(部署智能合同时)。
上面显示的 是用于隔离和区分我们智能合同的各种功能的各种修饰语。
任何用户都可以通过调用registerAsTenant方法来表达自己租用该房产的兴趣。如果该属性未被租用,它将为给定用户设置tenantRegistry映射。所有者将通过调用确认租户方法来确认哪个用户应该成为租户,并输入相应的用户钱包地址。这将最终确定租户,将该物业的租赁状态标记为真,并根据租赁间隔设置租赁到期日期。 注意:这里所有基于日期的计算都基于UNIX时间戳。现在它是一个关键字,它给了我们包含事务的块的时间戳。但是,这不是一个准确的时间戳,这会导致时间超出允许的范围。
支付租金方法将允许租户支付给定月份的租金。请注意,只有当发送的金额等于要支付的租金金额时,才会接受租金。它还将设置下一个到期日期,并将租户警告重置为0(如果有)。 注意-如果函数参数(和返回参数)的类型是结构、数组、映射或字符串,则应该清楚地指出其数据位置——内存或存储。如果函数是外部的,数据位置应该是calldata。 方法获取租赁状态将允许任何人检查给定月份的租赁状态。 注意:任何结构类型的函数范围变量都应该清楚地表明其数据位置——内存或存储,因为这有助于编译器做出基于事务的决策。请注意,在getRentStatus方法中,我们将返回每个字段,因为不可能返回完整的结构。只实现结构作为变量的实体会丢失。
提取租金将允许业主从智能合同地址提取月租金。它还将每月租金指数(rentInStore)映射重置为0,因为不应该允许业主每月提取两次租金。
房东只能在下列情况下警告房客房租:房客没有付房租,已经到了到期日。 ,最近的警告(如果有的话)至少在两天前发出(现在-警告时间172800000)。 将触发一个警告事件,该事件可以通过使用web3 api的用户界面截取,以警告租户未决租金。警告计数也会增加。 如果达到警告限制,业主也可以解雇租户。调用dismissTenant方法也会将属性租约状态重置为false。 我希望你喜欢!在下一节中,我们将通过它来执行业务合作伙伴情报合同。
文章均源于网络收集编辑侵删
提示:仅接受技术开发咨询!