ERC-1129: 标准化 DAPP 公告
Authors | Jan Turk (@ThunderDeliverer) |
---|---|
Created | 2018-05-31 |
Discussion Link | https://ethereum-magicians.org/t/eip-sda-standardised-dapp-announcements/508?u=thunderdeliverer |
简单总结
以太坊网络上 DAPP 和服务中公告的标准化。 此 ERC 提供了建议的机制,通过为公告设置框架,以提高 DAPP 开发者和服务提供商提供的服务质量。 无论是过渡到新的智能合约,还是仅仅因为某些原因而冻结服务。
摘要
拟议的 ERC 定义了如何发布有关服务的公告以及如何删除公告的格式。 它还定义了发布权限和人性化界面的机制。
动机
目前,在 DAPP 中如何通知用户服务状态没有任何指导方针。 这在 ERC20 及其衍生产品中尤其明显。 如果服务由于任何原因受到阻碍,最好有一些关于如何向用户宣布这一点的指导方针。 标准化还将提供服务状态的可追溯性。
规范
结构体
公告者
存储有关公告发布者的信息。 allowedToPost
存储发布权限,并用于将公告发布限制为仅授权实体的修饰符。 name
用于存储作者的人性化标识符。
struct Announcer{
bool allowedToPost;
string name;
}
公告
存储有关单个公告的信息。 人性化的作者标识符存储在 author
中。 与作者关联的以太坊地址存储在 authorAddress
中。 公告本身存储在 post
中。
struct Announcement{
string author;
address authorAddress;
string post;
}
方法
公告数量
返回当前活跃的公告数量。
可选 - 此方法可用于为 UI 提供更快的信息,但也可以从 numberOfMessages
变量中检索。
function theNumberOfAnnouncements() public constant returns(uint256 _numberOfAnnouncements)
读取帖子
返回指定的公告以及人性化的发布者标识符(姓名或昵称)。
function readPosts(uint256 _postNumber) public constant returns(string _author, string _post)
授予发布权限
将地址 _newAnnouncer
的发布权限设置为 _postingPrivileges
,也可用于撤销这些权限。 _posterName
是公告数据中使用的人性化作者标识符。
function givePostingPermission(address _newAnnouncer, bool _postingPrivileges, string _posterName) public onlyOwner returns(bool success)
可以发布
检查想要发布公告的实体是否具有发布权限。
modifier canPost{
require(posterData[msg.sender].allowedToPost);
_;
}
发布公告
允许用户发布公告,但前提是他们的发布权限设置为 true
。 公告在 _message
变量中发送。
function postAnnouncement(string _message) public canPost
移除公告
删除具有 _messageNumber
公告标识符的公告,并重新排列映射,使其没有空槽。 _removalReason
用于更新用户:导致公告的问题是否已解决,或者服务提供商/ DAPP 开发团队的后续步骤是什么。
function removeAnnouncement(uint256 _messageNumber, string _removalReason) public
事件
新公告
创建新公告时必须触发。
每次有新公告时,都应在此事件中进行通知。 它包含有关作者 author
和公告本身 message
的信息。
event NewAnnouncement(string author, string message)
已移除公告
移除公告时必须触发。
每次移除公告时,都应在此事件中进行通知。 它包含有关作者 author
、公告本身 message
、移除原因或解决方案说明 reason
以及移除公告的实体地址 remover
的信息。
event RemovedAnnouncement(string author, string message, string reason, address remover);
原理
所提出的解决方案在设计时考虑了用户体验。 它提供了以用户友好的方式呈现公告的机制。 它旨在作为以太坊网络上的 Solidity 智能合约进行部署。
测试用例
所提出的版本已部署在 Ropsten 测试网上,所有信息都可以在此处找到。
实现
版权
版权及相关权利通过 CC0 放弃。
Citation
Please cite this document as:
Jan Turk (@ThunderDeliverer), "ERC-1129: 标准化 DAPP 公告 [DRAFT]," Ethereum Improvement Proposals, no. 1129, May 2018. [Online serial]. Available: https://eips.ethereum.org/EIPS/eip-1129.