ERC-1080: 可恢复的代币
Authors | Bradley Leatherwood <bradleat@inkibra.com> |
---|---|
Created | 2018-05-02 |
Discussion Link | https://ethereum-magicians.org/t/erc-1080-recoverabletoken-standard/364 |
简单总结
一种支持退款、防止盗窃以及失物招领解决方案的代币的标准接口。
摘要
以下标准允许为扩展 ERC-20 或 ERC-791 的代币实现标准 API。此标准提供基本功能来恢复被盗或丢失的账户,以及提供代币的退款。
动机
为了减轻合理可证明的代币或资产损失或盗窃的影响,并帮助解决其他冲突。以太坊的协议不应因损失、盗窃或冲突而修改,但可以在智能合约层中解决这些问题。
规范
RecoverableToken
方法
claimLost
报告 lostAccount
地址已丢失。必须触发 AccountClaimedLost
事件。
在 getLostAccountRecoveryTimeInMinutes
中配置的时间之后,实现者必须提供一种机制来确定所持代币的正确所有者并将代币转移到新帐户。
帐户恢复必须触发 AccountRecovered
事件。
function claimLost(address lostAccount) returns (bool success)
cancelLostClaim
报告 msg.sender
的帐户未丢失。必须触发 AccountClaimedLostCanceled
事件。
如果帐户恢复过程已经开始,则必须失败。
否则,此方法必须停止启动争议以恢复资金。
function claimLost() returns (bool success)
reportStolen
报告当前地址已被盗。必须触发 AccountFrozen
事件。
成功的调用必须导致 msg.sender
的代币被冻结。
实现者必须提供一种机制来确定所持代币的正确所有者并将代币转移到新帐户。
帐户恢复必须触发 AccountRecovered
事件。
function reportStolen() returns (bool success)
chargeback
代表 msg.sender
请求反转转账。
实现者必须提供一种机制来确定有争议的代币的正确所有者并将代币转移到正确的帐户。
必须遵守发件人的退款窗口,其值由 setPendingTransferTimeInMinutes
配置。
function chargeback(uint256 pendingTransferNumber) returns (bool success)
getPendingTransferTimeInMinutes
获取帐户必须退款转账的时间。
function getPendingTransferTime(address account) view returns (uint256 minutes)
setPendingTransferTimeInMinutes
设置 msg.sender
的帐户必须退款转账的时间。
如果帐户有任何待处理的转账,则不得更改时间。
function setPendingTransferTime(uint256 minutes) returns (bool success)
getLostAccountRecoveryTimeInMinutes
获取帐户在丢失帐户争议开始之前必须等待的时间。
function getLostAccountRecoveryTimeInMinutes(address account) view returns (uint256 minutes)
setLostAccountRecoveryTimeInMinutes
设置 msg.sender
的帐户在丢失帐户争议开始之前必须等待的时间。
如果帐户有未解决的争议,则不得更改时间。
function setLostAccountRecoveryTimeInMinutes(uint256 minutes) returns (bool success)
事件
AccountRecovered
恢复丢失或被盗的帐户。
event AccountClaimedLost(address indexed account, address indexed newAccount)
AccountClaimedLostCanceled
一个帐户声称已丢失。
event AccountClaimedLost(address indexed account)
AccountClaimedLost
一个帐户声称已丢失。
event AccountClaimedLost(address indexed account)
PendingTransfer
待处理转账的记录。
event PendingTransfer(address indexed from, address indexed to, uint256 value, uint256 pendingTransferNumber)
ChargebackRequested
请求退款的记录。
event ChargebackRequested(address indexed from, address indexed to, uint256 value, uint256 pendingTransferNumber)
Chargeback
转账被撤销的记录。
event Chargeback(address indexed from, address indexed to, uint256 value, uint256 indexed pendingTransferNumber)
AccountFrozen
帐户被冻结的记录。当帐户被冻结时必须触发。
event AccountFrozen(address indexed reported)
理由
- 可恢复的代币标准可以为希望获得这种安全性的用户或合约提供可配置的安全性。
- 此标准的实现将使用户能够选择自愿参与的争议解决流程,并通过减少考虑代币恢复行动的必要性来使社区受益。
实现
待定。
版权
版权及相关权利通过 CC0 放弃。
Citation
Please cite this document as:
Bradley Leatherwood <bradleat@inkibra.com>, "ERC-1080: 可恢复的代币 [DRAFT]," Ethereum Improvement Proposals, no. 1080, May 2018. [Online serial]. Available: https://eips.ethereum.org/EIPS/eip-1080.