# 第四周作业 **Repository Path**: superman285/week_4_homework ## Basic Information - **Project Name**: 第四周作业 - **Description**: 众筹电影项目 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2018-11-28 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 第四周作业 #### 项目介绍 众筹电影项目 #### 使用简介 项目分为两个页面,投票页(voteIndex.html)和购票页(sellIndex.html) 投票页面: 先在充值对象处输入正确地址,再进行充值和投票等操作。 投票额度会做判断,需要小于等于当前kcc余额。 点击刷新数据按钮会获取当前的众筹持有份额百分比、mvc数量、kcc余额、投票时间等信息,显示在右侧。 购票页面: 第一次点击购票需要先输入一个外部账户地址,谁购票就输谁的地址,点击后就会 根据众筹的份额自动给有份额的用户按比例分成(分eth) 目前为方便测试,所以合约中 购票分成中的需要众筹完毕的条件注释掉了。 #### 优化与改进思路 1. 项目中投票部分js的kcc空投部分owner地址写死了,不够灵活,优化为从合约中获取foundation,更加准确和灵活。 2. 项目中的页面打开就会弹出输入账户页面,万一误操作关闭无法恢复,改为了在需要的时候手动点击来触发账户地址输入页面,提高容错性。 3. 原项目中的充值kcc与投票支持金额都写死了为1000,优化改进为从按钮前的输入框接收数值,而不是固定1000,更加灵活。 4. 原项目中使用transfer时判断调用后的err返回值真假,由于合约中没用require而用了if,所以返回true或者false时web3调用后都算正常调用,不会返回err,所以把原合约中的if改为了require,若不符合require会捕获到err。 5. 原项目中的投票支持时没判断是否有足够的kcc余额供投票使用,优化为先获取当前kcc余额,再判断输入金额与余额符合条件才可正常将kcc转移给foundation,也需要加个判断转移成功了才可以空投mvc给用户。