功能实现上
上一节
下一节
iy功能实现(上)
声明好合约的编译器版本为:^0.6.0以及合约名称 “WuChangRice"后,我们来逐一实现之前设定的一些功能。
1.状态变量
首先定义两个状态变量。一个为地址类型的变量owner,另一个为整型的变量skuCount;前者表示合约的拥有者,也默认代表卖方的地址;后者被定义用来专门跟踪最近的sku编号。
2.枚举
跟踪商品的状态可以通过枚举来实现,通过将状态限制为只有几个预定义值来标示五常大米所处的状态。我们定义一个枚举类型,名为State,里面包含4个成员:
ForSale, Sold, Shipped, Received
3.结构体
一袋五常大米拥有非常多的信息。包括名字name,编号sku,价格price,状态state,卖方seller,买方buyer。通过使用结构体可以将这些不同类型的信息都包含在内。定义一个名为Item的结构体类型,将上述所有信息包括进去,注意成员的类型,卖方和买方需要额外被标记为payable。
4.映射
我们需要一个可见性为public的映射来使sku编号与商品及其信息对应起来,方便各方查询。定义一个名为items的映射,键类型为uint,值类型为Item。
5.事件
通过事件我们可以监听商品的状态,无论它是正在出售、已售出、运输中或已签收。定义四个事件,分别名为ForSale,Sold,Shipped以及Received。ForSale事件有两个参数,分别是uint类型的sku以及string类型的name;另外三个事件仅有一个参数:uint类型的sku。


