IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 区块链 -> ERC1155 -> 正文阅读

[区块链]ERC1155

作者:>

eip: 1155
title: ERC-1155 Multi Token Standard
author: Witek Radomski witek@enjin.io, Andrew Cooke ac0dem0nk3y@gmail.com, Philippe Castonguay pc@horizongames.net, James Therien james@turing-complete.com, Eric Binet eric@enjin.io, Ronan Sandford wighawag@gmail.com
type: Standards Track
category: ERC
status: Final
created: 2018-06-17
discussions-to: https://github.com/ethereum/EIPs/issues/1155
requires: 165

pragma solidity ^0.5.9;

/**
@title ERC-1155 Multi Token Standard
@dev 参见 https://eips.ethereum.org/EIPS/eip-1155
注意:此接口的 ERC-165 标识符为 0xd9b67a26。
/
interface ERC1155 /
is ERC165 / {
/
*
@dev 无论是 TransferSingle 还是 TransferBatch 都必须在代币转移时发出,包括零值转移以及铸造或燃烧(参见“安全转移规则”部分标准)。
_operator 参数必须是被批准进行转账的账户/合约的地址(应该是 msg.sender)。
_from 参数必须是余额减少的持有者的地址。
_to 参数必须是余额增加的收件人的地址。
_id 参数必须是被传输的令牌类型。
_value 参数必须是持有者余额减少的代币数量,并与接收者余额增加的数量相匹配。
在铸造/创建令牌时,_from 参数必须设置为 0x0(即零地址)。
当销毁/销毁令牌时,_to 参数必须设置为 0x0(即零地址)。
*/
event TransferSingle(address indexed _operator, address indexed _from, address indexed _to, uint256 _id, uint256 _value);

/** 
    @dev `TransferSingle` 或 `TransferBatch` 必须在代币传输时发出,包括零值传输以及铸造或燃烧(参见标准的“安全传输规则”部分)。      
    `_operator` 参数必须是被批准进行转账的账户/合约的地址(应该是 msg.sender)。
    `_from` 参数必须是余额减少的持有者的地址。
    `_to` 参数必须是余额增加的收件人的地址。
    `_ids` 参数必须是正在传输的令牌列表。
    `_values` 参数必须是代币数量列表(与 _ids 中指定的代币列表和顺序匹配),持有者余额减少并匹配接收者余额增加的数量。
    在铸造/创建令牌时,`_from` 参数必须设置为 `0x0`(即零地址)。
    当销毁/销毁令牌时,`_to` 参数必须设置为 `0x0`(即零地址)。                
*/
event TransferBatch(address indexed _operator, address indexed _from, address indexed _to, uint256[] _ids, uint256[] _values);

/**
@dev 必须在允许或禁用第二方/运营商地址管理所有者地址的所有令牌时发出(没有事件假定已禁用)。
*/
event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved);

/**
@dev 必须在为令牌 ID 更新 URI 时发出。
URI 在 RFC 3986 中定义。URI
必须指向符合“ERC-1155 元数据 URI JSON 模式”的 JSON 文件。
*/
event URI(string _value, uint256 indexed _id);

/** 
    @notice 从 `_from` 地址转移 `_value` 数量的 `_id` 到指定的 `_to` 地址(带安全调用)。
    @dev Caller 必须获得批准才能管理从 `_from` 帐户转出的代币(请参阅标准的“批准”部分)。
    如果 `_to` 是零地址,则必须恢复。
    如果代币“_id”的持有者余额低于发送的“_value”,则必须恢复。
    必须在任何其他错误时恢复。
    必须发出 `TransferSingle` 事件以反映余额变化(参见标准的“安全转移规则”部分)。
    满足上述条件后,该函数必须检查 `_to` 是否为智能合约(例如代码大小 > 0)。如果是这样,它必须在 `_to` 上调用 `onERC1155Received` 并采取适当的行动(参见标准的“安全传输规则”部分)。        
    @param _from 源地址
    @param _to 目标地址
    @param _id 令牌类型的 ID 
    @param _value 传输量 @param _data
    没有指定格式的附加数据,必须在调用 `_to` 上的 `onERC1155Received` 时不变地发送
*/
function safeTransferFrom(address _from, address _to, uint256 _id, uint256 _value, bytes calldata _data) external;

/**
@notice 将 _values 数量的 _ids_from 地址转移到指定的 _to 地址(带安全调用)。
@dev Caller 必须获得批准才能管理从 _from 帐户转出的代币(请参阅标准的“批准”部分)。
如果 _to 是零地址,则必须恢复。
如果 _ids 的长度与 _values 的长度不同,则必须恢复。
如果 _ids 中代币持有者的任何余额低于发送给接收者的 _values 中的相应金额,则必须恢复。
必须在任何其他错误时恢复。
必须发出 TransferSingleTransferBatch 事件,以便反映所有余额变化(参见标准的“安全转移规则”部分)。
余额变化和事件必须遵循数组的顺序(_ids[0]/_values[0] 在 _ids[1]/_values[1] 之前,等等)。
在批处理中满足上述转移条件后,此函数必须检查_to 是否为智能合约(例如代码大小> 0)。如果是这样,它必须在 _to 上调用相关的 ERC1155TokenReceiver 钩子并采取适当的行动(参见标准的“安全传输规则”部分)。

    @param _values 每种令牌类型的传输量(顺序和长度必须与 _ids 数组匹配)
    @param _data 没有指定格式的附加数据,必须在调用 `_to` 上的 `ERC1155TokenReceiver` 钩子时保持不变发送
*/
function safeBatchTransferFrom(address _from, address _to, uint256[] calldata _ids, uint256[] calldata _values, bytes calldata _data) external;

  /** 
    @notice 获取账户代币余额。
    @param _owner 代币持有者地址
    @param _id 代币ID 
    @return 请求代币类型的_owner 余额
 */ 
function balanceOf(address _owner, uint256 _id) external view returns (uint256);

/** 
    @notice 获取多个账户/代币对的余额
    @param _owners 代币持有者的地址
    @param _ids 代币的ID 
    @return _owner 所请求代币类型的余额(即每个(owner, id)的余额) pair) 
 */ 
function balanceOfBatch(address[] calldata _owners, uint256[] calldata _ids) external view returns (uint256[] memory);

/**
@notice 启用或禁用第三方(“运营商”)管理所有调用者令牌的批准。
@dev 必须在成功时发出 ApprovalForAll 事件。
@param _operator 添加到授权运营商集合的地址
@param _approved 如果运营商获得批准,则为真,撤销批准为假
*/
function setApprovalForAll(address _operator, bool _approved) external;

  /** 
    @notice 查询给定所有者的操作员的批准状态。
    @param _owner 代币的拥有者
    @param _operator 授权运营商的地址
    @return 如果运营商被批准为真,否则为假
*/ 
function isApprovedForAll(address _owner, address _operator) external view returns (bool);

}

  区块链 最新文章
盘点具备盈利潜力的几大加密板块,以及潜在
阅读笔记|让区块空间成为商品,打造Web3云
区块链1.0-比特币的数据结构
Team Finance被黑分析|黑客自建Token“瞒天
区块链≠绿色?波卡或成 Web3“生态环保”标
期货从入门到高深之手动交易系列D1课
以太坊基础---区块验证
进入以太坊合并的五个数字
经典同态加密算法Paillier解读 - 原理、实现
IPFS/Filecoin学习知识科普(四)
上一篇文章      下一篇文章      查看所有文章
加:2021-09-29 10:19:40  更:2021-09-29 10:20:52 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 21:16:35-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码