- 0
- 0
- 约8.3千字
- 约 6页
- 2026-03-13 发布于广东
- 举报
任务七课后题答案
操作题
1.跟随本任务完成货运追踪智能合约的开发并成功调用运行。
//SPDX-License-Identifier:MIT
pragmasolidity^0.8.0;
contractBuySell{
structItem{
uintItemId;
stringname;
uintamount;
}
structBuyer{
uintBuyerId;
addressBuyerAddress;
boolisBuyer;
uintOrderCount;//totalnumbeoforderplaced
}
structOrder{
uintOrderId;
uintBuyerId;
uintItemId;
uintamount;
boolShipped;//canonlybechangedbyseller
boolFinished;//canonlybechangedbybuyer
}
//moretodo:
//seperatefinishedandunfinishedorders
//buyerscanplaceorderwithitemname
//theaddressdeploysthecontractwillbetheseller
constructor(){
Seller=msg.sender;
}
addresspublicSeller;
//createlistofitems,buyers,abdorders
Item[]privateitems;
Buyer[]privatebuyers;
Order[]privateorders;
//sellercreateitemwithid,name,amount
functioncreateItem(stringmemory_name,uint_quantity)public{//
require(msg.sender==Seller,OnlySellercanadditem.);
items.push(Item(items.length,_name,_quantity));
}
//sellerregisteraaddressasbuyer
functionregBuyer(address_address)public{
require(msg.sender==Seller,OnlySellercanaddbuyer.);
buyers.push(Buyer(buyers.length,_address,true,0));
}
//showthelistofitems/buyers/orders
functiongetAllItems()publicviewreturns(Item[]memory){
returnitems;
}
functiongetAllBuyers()publicviewreturns(Buyer[]memory){
returnbuyers;
}
functiongetAllOrders()publicviewreturns(Order[]memory){
returnorders;
}
functiongetOrderStatus(uint_id)publicviewreturns(Ordermemory){
returnorders[_id];
}
//manageitemamount
functionupdateItemQuantity(uint_id,uint_newQuantity)public{
require(_iditems.length,It
原创力文档

文档评论(0)