版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
任务七课后题答案操作题1.跟随本任务完成货运追踪智能合约的开发并成功调用运行。//SPDX-License-Identifier:MITpragmasolidity^0.8.0;contractBuySell{structItem{uintItemId;stringname;uintamount;}structBuyer{uintBuyerId;addressBuyerAddress;boolisBuyer;uintOrderCount;//totalnumbeoforderplaced}structOrder{uintOrderId;uintBuyerId;uintItemId;uintamount;boolShipped;//canonlybechangedbysellerboolFinished;//canonlybechangedbybuyer}//moretodo://seperatefinishedandunfinishedorders//buyerscanplaceorderwithitemname//theaddressdeploysthecontractwillbethesellerconstructor(){Seller=msg.sender;}addresspublicSeller;//createlistofitems,buyers,abdordersItem[]privateitems;Buyer[]privatebuyers;Order[]privateorders;//sellercreateitemwithid,name,amountfunctioncreateItem(stringmemory_name,uint_quantity)public{//require(msg.sender==Seller,"OnlySellercanadditem.");items.push(Item(items.length,_name,_quantity));}//sellerregisteraaddressasbuyerfunctionregBuyer(address_address)public{require(msg.sender==Seller,"OnlySellercanaddbuyer.");buyers.push(Buyer(buyers.length,_address,true,0));}//showthelistofitems/buyers/ordersfunctiongetAllItems()publicviewreturns(Item[]memory){returnitems;}functiongetAllBuyers()publicviewreturns(Buyer[]memory){returnbuyers;}functiongetAllOrders()publicviewreturns(Order[]memory){returnorders;}functiongetOrderStatus(uint_id)publicviewreturns(Ordermemory){returnorders[_id];}//manageitemamountfunctionupdateItemQuantity(uint_id,uint_newQuantity)public{require(_id<items.length,"Itemdoesnotexist.");require(msg.sender==Seller,"OnlySellercanmanageitems");items[_id].amount=_newQuantity;}functionincreaseItemQuantity(uint_id,uint_increaseBy)public{require(msg.sender==Seller,"OnlySellercanmanageitems");require(_id<items.length,"Itemdoesnotexist.");items[_id].amount+=_increaseBy;}functiondecreaseItemQuantity(uint_id,uint_decreaseBy)public{require(msg.sender==Seller,"OnlySellercanmanageitems");require(_id<items.length,"Itemdoesnotexist.");require(items[_id].amount>=_decreaseBy,"Quantitywouldbecomenegative.");items[_id].amount-=_decreaseBy;}//buyerorderspecificitemfunctioncreateOrder(uint_buyerId,uint_id,uint_quantity)public{require(_id<items.length,"Itemdoesnotexist.");require(_buyerId<buyers.length,"Userdoesnotexist.");require(msg.sender==buyers[_buyerId].BuyerAddress,"OnlyBuyercanplaceorder.");//decreaseItemQuantity(_id,_quantity);buyers[_buyerId].OrderCount+=1;orders.push(Order(orders.length,_buyerId,_id,_quantity,false,false));}//sellerchecktheorder,shiptheorderandmarktheorderasshippedfunctionshipOrder(uint_id)public{require(msg.sender==Seller,"OnlySellercanmodifyorders.");decreaseItemQuantity(orders[_id].ItemId,orders[_id].amount);orders[_id].Shipped=true;}//buyerrecievetheorder,marktheorderasfinished,tradefinishedfunctionrecieveOrder(uint_BuyerId,uint_OrderId)public{require(_BuyerId==orders[_OrderId].BuyerId,"Wronguser.");require(msg.sender==buyers[_BuyerId].BuyerAddress,"OnlyBuyercanfinishorder.");orders[_OrderId].Finished=true;}}2.对智能合约进行优化。//SPDX-License-Identifier:MITpragmasolidity^0.8.0;contractBuySell{//定义物品、买家和订单的结构体structItem{uintitemId;stringname;uintamount;}structBuyer{uintbuyerId;addressbuyerAddress;uintorderCount;//订单总数}structOrder{uintorderId;uintbuyerId;uintitemId;uintamount;boolshipped;//只能由卖家更改boolfinished;//只能由买家更改}addresspublicseller;//存储物品、买家和订单的数组Item[]privateitems;Buyer[]privatebuyers;Order[]privateorders;//映射检查地址是否注册为买家mapping(address=>bool)publicisBuyer;constructor(){seller=msg.sender;}//检查调用者是否为卖家的修饰符modifieronlySeller(){require(msg.sender==seller,"Onlysellercanperformthisaction.");_;}//检查调用者是否为注册买家的修饰符modifieronlyBuyer(uint_buyerId){require(isBuyer[msg.sender],"Onlyregisteredbuyerscanperformthisaction.");require(buyers[_buyerId].buyerAddress==msg.sender,"IncorrectbuyerID.");_;}//卖家创建新物品的函数functioncreateItem(stringmemory_name,uint_amount)publiconlySeller{items.push(Item(items.length,_name,_amount));}//卖家注册新买家的函数functionregisterBuyer(address_buyerAddress)publiconlySeller{require(!isBuyer[_buyerAddress],"Buyerisalreadyregistered.");buyers.push(Buyer(buyers.length,_buyerAddress,0));isBuyer[_buyerAddress]=true;}//获取所有物品列表的函数functiongetAllItems()publicviewreturns(Item[]memory){returnitems;}//获取所有买家列表的函数functiongetAllBuyers()publicviewreturns(Buyer[]memory){returnbuyers;}//获取所有订单列表的函数functiongetAllOrders()publicviewreturns(Order[]memory){returnorders;}//获取特定订单状态的函数functiongetOrderStatus(uint_orderId)publicviewreturns(Ordermemory){require(_orderId<orders.length,"Orderdoesnotexist.");returnorders[_orderId];}//卖家更新物品数量的函数functionupdateItemQuantity(uint_itemId,uint_newQuantity)publiconlySeller{require(_itemId<items.length,"Itemdoesnotexist.");items[_itemId].amount=_newQuantity;}//卖家增加物品数量的函数functionincreaseItemQuantity(uint_itemId,uint_increaseBy)publiconlySeller{require(_itemId<items.length,"Itemdoesnotexist.");items[_itemId].amount+=_increaseBy;}//卖家减少物品数量的函数functiondecreaseItemQuantity(uint_itemId,uint_decreaseBy)publiconlySeller{require(_itemId<items.length,"Itemdoesnotexist.");require(items[_itemId].amount>=_decreaseBy,"Quantitywouldbecomenegative.");items[_itemId].amount-=_decreaseBy;}//买家创建新订单的函数functioncreateOrder(uint_buyerId,uint_itemId,uint_amount)publiconlyBuyer(_buyerId){require(_itemId<items.length,"Itemdoesnotexist.");require(items[_itemId].amount>=_amount,"Insufficientitemquantity.");orders.push(Order(orders.length,_buyerId,_itemId,_amount,false,false));buyers[_buyerId].orderCount+=1;}//卖家发货的函数functionshipOrder(uint_orderId)publiconlySeller{require(_orderId<orders.length,"Orderdoesnotexist.");Orderstorageorder=orders[_orderId];require(!order.shipped,"Orderalreadyshipped.");decreaseItemQua
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 护理质量指标与护理服务优化
- 2026年暖通工程施工方案
- 2026年春节后复工复产安全知识考试题(含答案)
- 科技创新与人才培养方案
- 农田现场施工方案(3篇)
- 入学教育应急预案(3篇)
- 婚纱美甲店活动策划方案(3篇)
- 网架施工方案教学(3篇)
- 文件板施工方案(3篇)
- 医疗行业患者信息保护指南
- 《AI与直播运营》课程标准
- 绿化合同协议模板
- 高级程序设计题库及答案
- 有机化学(第9版)全套教学课件【704张】
- (新教材)2026年人教版八年级下册数学 第二十章 思想方法 勾股定理中的数学思想 课件
- 2026年开封大学单招职业适应性测试题库及参考答案详解一套
- 2025国家核安保技术中心招聘劳动合同制4人(公共基础知识)测试题附答案解析
- 网吧入股合同协议书
- 2026中考考前速记知识点:【世界地理概况+中国地理概况】
- 2025-2026学年人教版一年级美术上册全册教案
- 城市轨道交通车辆构造课件 项目一 城市轨道交通车辆的基本知识
评论
0/150
提交评论