solidity案例详解(六)服务评价合约

有服务提供商和用户两类实体,其中服务提供商部署合约,默认诚信为true,用户负责使用智能合约接受服务及评价,服务提供商的评价信息存储在一个映射中,可以根据服务提 供商的地址来查找评价信息。用户评价信息, 服务提供商的评价信息会随之更新。服务提供商查询自己的总评分,评价次数以及所有用户评价内容使用了Solidity语言提供的abi.encodeWithSignature函数 将评价信息打包成交易。然后调用call函数发送交易,并等待交易确认。最后,将用户评价信息上传至智能合约,以便在区块链上进行永久存储

图片[1] - solidity案例详解(六)服务评价合约 - MaxSSL

各合约功能:
1.合约的构造函数在合约部署时执行,将合约创建者的地址设为服务提供商的地址,并将其默认标记为可信。

图片[2] - solidity案例详解(六)服务评价合约 - MaxSSL
2.writeServiceInformation: 允许服务提供商(只有服务提供商本人)写入服务信息

图片[3] - solidity案例详解(六)服务评价合约 - MaxSSL
3.submitEvaluation: 允许用户提交对服务提供商的评价。评价包括评分和评论。

图片[4] - solidity案例详解(六)服务评价合约 - MaxSSL

图片[5] - solidity案例详解(六)服务评价合约 - MaxSSL

图片[6] - solidity案例详解(六)服务评价合约 - MaxSSL

图片[7] - solidity案例详解(六)服务评价合约 - MaxSSL
4.getProviderScore: 提供对服务提供商总评分的查询功能。

图片[8] - solidity案例详解(六)服务评价合约 - MaxSSL
5.getNumEvaluations: 提供对服务提供商收到的评价次数的查询功能。

图片[9] - solidity案例详解(六)服务评价合约 - MaxSSL
6.isTrustedProvider: 提供对服务提供商是否被认为可信的查询功能。

图片[10] - solidity案例详解(六)服务评价合约 - MaxSSL
7.setTrustedProvider: 允许服务提供商(只有服务提供商本人)修改自身的可信状态。

图片[11] - solidity案例详解(六)服务评价合约 - MaxSSL

图片[12] - solidity案例详解(六)服务评价合约 - MaxSSL
8.sendTransactionWithEvaluation: 允许服务提供商以交易的方式,将目前所有用户评价信息写入区块链。

图片[13] - solidity案例详解(六)服务评价合约 - MaxSSL

9.evaluationsByServiceProvider: 根据服务商地址利用索引查询用户评分和评价。

图片[14] - solidity案例详解(六)服务评价合约 - MaxSSL

图片[15] - solidity案例详解(六)服务评价合约 - MaxSSL

图片[16] - solidity案例详解(六)服务评价合约 - MaxSSL
10.getEvaluationsByServiceProvider: 提供对服务提供商收到的所有用户评价信息的查询功能。

图片[17] - solidity案例详解(六)服务评价合约 - MaxSSL

需要源码,定制合约及技术服务都可以私信我

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享