Solidity智能合约演练系列第2部分

Solidity智能合约演练系列第2部分
这是智能合约演练系列的第2部分。在以下文章中,我将为您供给一个关于房地产租借智能合约的技能施行细节的深化概述。租借物业用例::总体用例十分简略,用户将依据给定的特点将自己注册为潜在客户。产业一切者将决议哪个用户将成为租户。租户将依照约好的到期日付租借金。租金账户存储在智能合约中。业主能够从合同中提取相同的租金。假如房客未在到期日之前付租借金,则答应房主对房客提出正告。一切者能够在每隔2天的向租户提出正告。假如房客超过了正告约束,房主能够将其从产业中回收。让咱们开端…以下是咱们界说的数据结构:针对每个特点字段的注释界说了它们各自的人物在这里,咱们界说了“Property”结构,该结构将记载产业详细信息,例如称号,地址,是否租借产业,租金金额,租金距离,租金到期日,正告计数,正告约束和租户钱包地址。咱们有MonthlyRentStatus结构,这将协助咱们存储每个月的租金状况。咱们还供给各种映射-months,tantantRegistry和rentpaidstatus。咱们界说了事情,这些事情将协助咱们记载成功的买卖。咱们在结构函数自身中设置特点owner,特点详细信息和月份映射。结构函数仅被调用一次(布置智能合约时)。上面显现的是各种修饰符,用于阻隔和区别咱们智能合约的各种函数。任何用户都能够经过调用registerAsTenant办法表达对租借物业的爱好。假如不租借该物业,它将为给定用户设置tenantRegistry映射。一切者将经过调用confirmTenant办法来承认哪个用户应该成为租户,并输入相应的用户钱包地址这将终究确认承租人,将物业租借状况标记为true,并将依据租金距离设置租金到期日。留意:此处一切根据日期的核算均根据UNIX时刻戳。现在是关键字,它为咱们供给了包括买卖的区块的时刻戳。可是这不是精确的时刻戳,它会导致时刻超出答应规模。payRent办法将答应租户付出给定月份的租金。请留意,只要在发送的金额等于要付出的租金金额时才会承受租金,它还会设置下一个到期日并将租户正告重置为0(假如有)。注-假如函数参数(以及回来参数)的类型为struct,array,mapping或string,则应明确指出其数据方位-内存仍是存储。假如函数是external,则应将数据方位作为calldata。办法getRentStatus将答应任何人查看给定月份的租金状况。留意:任何类型为struct的函数效果域变量都应明确指出其数据方位-内存或存储,由于这有助于编译器做出根据事务的决议计划。请留意,在getRentStatus办法中,咱们将回来每个字段,由于不可能回来完好的结构。实体仅将结构实现为变量会丢掉。withdrawRent将答应一切者从智能合约地址中提取每月租金。它还将把每个月的rentInStore映射重置为0,由于不该答应一切者每月两次提取租金。只要在以下情况下,房主才能够正告房客关于房租:·租户没有付租借金,而且已到到期日。·最近正告(假如有)至少在2天前提出(现在-正告时刻>172800000)。将触发一个正告事情,该事情能够经过运用web3api的用户界面侦听,以正告租户有关未决租金的信息。正告计数也会添加。假如到达正告约束,一切者也能够辞退租户。调用dismissTenant办法还将产业租借状况重置为false。期望您喜爱!鄙人一部分进行结帐,咱们将经过该部分进行事务合作伙伴智能合约。关键词:Solidity智能合约

发表评论

电子邮件地址不会被公开。 必填项已用*标注