From b32f88b298fc73ec1c4be5e845185de91f41c9ff Mon Sep 17 00:00:00 2001 From: Michael Standen Date: Fri, 5 Jan 2024 08:25:05 +1300 Subject: [PATCH] SEQ-1 Remove ERC1155 Meta transactions --- src/tokens/ERC1155/ERC1155BaseToken.sol | 12 ++++++------ src/tokens/ERC1155/README.md | 4 ++-- test/tokens/ERC1155/presets/ERC1155Items.t.sol | 5 ----- 3 files changed, 8 insertions(+), 13 deletions(-) diff --git a/src/tokens/ERC1155/ERC1155BaseToken.sol b/src/tokens/ERC1155/ERC1155BaseToken.sol index 1fa175d..b1f5a17 100644 --- a/src/tokens/ERC1155/ERC1155BaseToken.sol +++ b/src/tokens/ERC1155/ERC1155BaseToken.sol @@ -1,8 +1,9 @@ // SPDX-License-Identifier: Apache-2.0 pragma solidity ^0.8.19; -import {ERC1155Supply, ERC1155} from "@0xsequence/contracts-library/tokens/ERC1155/extensions/supply/ERC1155Supply.sol"; -import {ERC1155Meta} from "@0xsequence/erc-1155/contracts/tokens/ERC1155/ERC1155Meta.sol"; +import { + ERC1155Supply, ERC1155 +} from "@0xsequence/contracts-library/tokens/ERC1155/extensions/supply/ERC1155Supply.sol"; import {ERC1155Metadata} from "@0xsequence/erc-1155/contracts/tokens/ERC1155/ERC1155Metadata.sol"; import {ERC2981Controlled} from "@0xsequence/contracts-library/tokens/common/ERC2981Controlled.sol"; @@ -11,7 +12,7 @@ error InvalidInitialization(); /** * A standard base implementation of ERC-1155 for use in Sequence library contracts. */ -abstract contract ERC1155BaseToken is ERC1155Supply, ERC1155Meta, ERC1155Metadata, ERC2981Controlled { +abstract contract ERC1155BaseToken is ERC1155Supply, ERC1155Metadata, ERC2981Controlled { bytes32 internal constant METADATA_ADMIN_ROLE = keccak256("METADATA_ADMIN_ROLE"); string private _contractURI; @@ -119,11 +120,10 @@ abstract contract ERC1155BaseToken is ERC1155Supply, ERC1155Meta, ERC1155Metadat public view virtual - override (ERC1155Supply, ERC1155Metadata, ERC2981Controlled, ERC1155) + override (ERC1155Supply, ERC1155Metadata, ERC2981Controlled) returns (bool) { return ERC1155Supply.supportsInterface(interfaceId) || ERC1155Metadata.supportsInterface(interfaceId) - || ERC1155.supportsInterface(interfaceId) || ERC2981Controlled.supportsInterface(interfaceId) - || super.supportsInterface(interfaceId); + || ERC2981Controlled.supportsInterface(interfaceId) || super.supportsInterface(interfaceId); } } diff --git a/src/tokens/ERC1155/README.md b/src/tokens/ERC1155/README.md index 51a7ec6..8230693 100644 --- a/src/tokens/ERC1155/README.md +++ b/src/tokens/ERC1155/README.md @@ -6,7 +6,7 @@ This subsection contains contracts related to the [ERC1155 token standard](https This contract is a base implementation of the ERC-1155 token standard. It includes role based access control features from the [OpenZeppelin AccessControlEnumberable](https://docs.openzeppelin.com/contracts/4.x/access-control) contract, to provide control over added features. Please refer to OpenZeppelin documentation for more information on `AccessControlEnumberable`. -This contracts provide minting capabilities, support for meta transactions, and metadata functionality. It includes additional features from the ERC1155MintBurn, ERC1155Meta, and ERC1155Metadata contracts. Meta transactions are provided by the [0xSequence ERC1155 library](https://github.com/0xsequence/erc-1155/blob/master/SPECIFICATIONS.md#meta-transactions). Please refer to library documentation for more information on meta transactions. +This contracts provide minting capabilities, support for meta transactions, and metadata functionality. It includes additional features from the ERC1155MintBurn and ERC1155Metadata contracts. Please refer to library documentation for more information on meta transactions. The contract supports the [ERC2981 token royalty standard](https://eips.ethereum.org/EIPS/eip-2981) via the ERC2981Controlled contract. Please refer to the ERC2981Controlled documentation for more information on token royalty. @@ -39,7 +39,7 @@ This section of this repo utilitizes a factory pattern that deploys proxies cont ## Dependencies -This repository relies on the ERC1155, ERC1155MintBurn, ERC1155Meta, ERC1155Metadata contracts from 0xSequence for core ERC-1155 functionality, `AccessControlEnumberable` from OpenZeppelin for role base permissions and the ERC2981Controlled contract for handling of royalties. +This repository relies on the ERC1155, ERC1155MintBurn, ERC1155Metadata contracts from 0xSequence for core ERC-1155 functionality, `AccessControlEnumberable` from OpenZeppelin for role base permissions and the ERC2981Controlled contract for handling of royalties. ## Access Controls diff --git a/test/tokens/ERC1155/presets/ERC1155Items.t.sol b/test/tokens/ERC1155/presets/ERC1155Items.t.sol index 5bc9a78..7eb3491 100644 --- a/test/tokens/ERC1155/presets/ERC1155Items.t.sol +++ b/test/tokens/ERC1155/presets/ERC1155Items.t.sol @@ -71,7 +71,6 @@ contract ERC1155ItemsTest is TestHelper, IERC1155ItemsSignals { checkSelectorCollision(0xb48ab8b6); // batchMint(address,uint256[],uint256[],bytes) checkSelectorCollision(0xb390c0ab); // burn(uint256,uint256) checkSelectorCollision(0xe8a3d485); // contractURI() - checkSelectorCollision(0x2d0335ab); // getNonce(address) checkSelectorCollision(0x248a9ca3); // getRoleAdmin(bytes32) checkSelectorCollision(0x9010d07c); // getRoleMember(bytes32,uint256) checkSelectorCollision(0xca15c873); // getRoleMemberCount(bytes32) @@ -79,10 +78,6 @@ contract ERC1155ItemsTest is TestHelper, IERC1155ItemsSignals { checkSelectorCollision(0x91d14854); // hasRole(bytes32,address) checkSelectorCollision(0xf8954818); // initialize(address,string,string,string,address,uint96) checkSelectorCollision(0xe985e9c5); // isApprovedForAll(address,address) - checkSelectorCollision(0xfa4e12d7); // isValidSignature(address,bytes32,bytes,bytes) - checkSelectorCollision(0xa3d4926e); // metaSafeBatchTransferFrom(address,address,uint256[],uint256[],bool,bytes) - checkSelectorCollision(0xce0b514b); // metaSafeTransferFrom(address,address,uint256,uint256,bool,bytes) - checkSelectorCollision(0xf5d4c820); // metaSetApprovalForAll(address,address,bool,bool,bytes) checkSelectorCollision(0x731133e9); // mint(address,uint256,uint256,bytes) checkSelectorCollision(0x06fdde03); // name() checkSelectorCollision(0x36568abe); // renounceRole(bytes32,address)