Я нашел в Интернете блог, сам перевел его и записал (сохраните для дальнейшего использования).
/**
@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 Должен генерироваться, когда второму адресу/адресу оператора разрешено или запрещено управлять всеми токенами для адреса владельца (не предполагается, что ни одно событие не будет отключено). */ событие ApprovalForAll (адрес с индексом _owner, адрес с индексом _operator, bool _approved);
/** @dev Должен быть создан при обновлении URI для идентификатора токена. URI определены в RFC 3986. URI Должен указывать на файл JSON, соответствующий «схеме JSON URI метаданных ERC-1155». */ URI события (строка _value, индексированный uint256 _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
Соответствующая сумма должна быть восстановлена.
Необходимо восстановиться при любой другой ошибке.
должен быть выдан TransferSingle
или TransferBatch
событие, чтобы все изменения баланса были отражены (раздел «Правила перевода «Безопасность» стандарта Видеть).
Изменения баланса и события должны следовать порядку массива (_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 Идентификатор токена
@return Запросить _owner типа токена баланс
*/
function balanceOf(address _owner, uint256 _id) external view returns (uint256);
/**
@notice Получите баланс для нескольких пар аккаунт/токен
@param _owners Адрес держателя токена
@param _ids Идентификатор токена
@return _owner баланс запрошенного типа токена (т.е. каждого (владельца), id)избаланс) pair)
*/
function balanceOfBatch(address[] calldata _owners, uint256[] calldata _ids) external view returns (uint256[] memory);
/** @notice Включить или отключить утверждение всех токенов вызывающего абонента третьими лицами («Операторами»). @dev Должен быть испущен, когда существование успешно ApprovalForAll событие. @param _operator Адрес добавлен в коллекцию авторизованных операторов связи @param _approved ЕслиTrue, если оператор одобрен, False, если утверждение отозвано. */ function setApprovalForAll(address _operator, bool _approved) external;
/**
@notice Запросить статус утверждения оператора для данного владельца.
@param _owner Владелец токена
@param _operator Адрес авторизованного оператора
@return если true, если оператор одобрен, в противном случае false
*/
function isApprovedForAll(address _owner, address _operator) external view returns (bool);
}