format
This commit is contained in:
parent
50d22d68a5
commit
67aa09e101
|
@ -2,7 +2,7 @@
|
|||
|
||||
pragma solidity ^0.8.17;
|
||||
|
||||
import {IERC721} from "@openzeppelin/contracts/token/ERC721/IERC721.sol";
|
||||
import { IERC721 } from "@openzeppelin/contracts/token/ERC721/IERC721.sol";
|
||||
|
||||
contract CommunityOwnable {
|
||||
error CommunityOwnable_InvalidTokenAddress();
|
||||
|
@ -23,10 +23,8 @@ contract CommunityOwnable {
|
|||
/// @dev Reverts if the msg.sender does not possess either an OwnerToken or a MasterToken.
|
||||
modifier onlyCommunityOwnerOrTokenMaster() {
|
||||
if (
|
||||
(ownerToken != address(0) &&
|
||||
IERC721(ownerToken).balanceOf(msg.sender) == 0) &&
|
||||
(masterToken != address(0) &&
|
||||
IERC721(masterToken).balanceOf(msg.sender) == 0)
|
||||
(ownerToken != address(0) && IERC721(ownerToken).balanceOf(msg.sender) == 0)
|
||||
&& (masterToken != address(0) && IERC721(masterToken).balanceOf(msg.sender) == 0)
|
||||
) {
|
||||
revert CommunityOwnable_NotAuthorized();
|
||||
}
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
// SPDX-License-Identifier: Mozilla Public License 2.0
|
||||
pragma solidity ^0.8.17;
|
||||
|
||||
import {ERC721} from "@openzeppelin/contracts/token/ERC721/ERC721.sol";
|
||||
import {IERC721} from "@openzeppelin/contracts/token/ERC721/IERC721.sol";
|
||||
import {ERC721Enumerable} from "@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol";
|
||||
import {Context} from "@openzeppelin/contracts/utils/Context.sol";
|
||||
import {Counters} from "@openzeppelin/contracts/utils/Counters.sol";
|
||||
import {CommunityOwnable} from "../CommunityOwnable.sol";
|
||||
import { ERC721 } from "@openzeppelin/contracts/token/ERC721/ERC721.sol";
|
||||
import { IERC721 } from "@openzeppelin/contracts/token/ERC721/IERC721.sol";
|
||||
import { ERC721Enumerable } from "@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol";
|
||||
import { Context } from "@openzeppelin/contracts/utils/Context.sol";
|
||||
import { Counters } from "@openzeppelin/contracts/utils/Counters.sol";
|
||||
import { CommunityOwnable } from "../CommunityOwnable.sol";
|
||||
|
||||
abstract contract BaseToken is Context, ERC721Enumerable, CommunityOwnable {
|
||||
using Counters for Counters.Counter;
|
||||
|
@ -23,11 +23,7 @@ abstract contract BaseToken is Context, ERC721Enumerable, CommunityOwnable {
|
|||
/// @param from The address that minted the token
|
||||
/// @param to The address that received the token
|
||||
/// @param tokenId The token ID that was minted
|
||||
event StatusMint(
|
||||
address indexed from,
|
||||
address indexed to,
|
||||
uint256 indexed tokenId
|
||||
);
|
||||
event StatusMint(address indexed from, address indexed to, uint256 indexed tokenId);
|
||||
|
||||
// State variables
|
||||
|
||||
|
@ -58,7 +54,10 @@ abstract contract BaseToken is Context, ERC721Enumerable, CommunityOwnable {
|
|||
string memory _baseTokenURI,
|
||||
address _ownerToken,
|
||||
address _masterToken
|
||||
) ERC721(_name, _symbol) CommunityOwnable(_ownerToken, _masterToken) {
|
||||
)
|
||||
ERC721(_name, _symbol)
|
||||
CommunityOwnable(_ownerToken, _masterToken)
|
||||
{
|
||||
maxSupply = _maxSupply;
|
||||
remoteBurnable = _remoteBurnable;
|
||||
transferable = _transferable;
|
||||
|
@ -69,9 +68,7 @@ abstract contract BaseToken is Context, ERC721Enumerable, CommunityOwnable {
|
|||
|
||||
// External functions
|
||||
|
||||
function setMaxSupply(
|
||||
uint256 newMaxSupply
|
||||
) external virtual onlyCommunityOwnerOrTokenMaster {
|
||||
function setMaxSupply(uint256 newMaxSupply) external virtual onlyCommunityOwnerOrTokenMaster {
|
||||
if (newMaxSupply < mintedCount()) {
|
||||
revert BaseToken_MaxSupplyLowerThanTotalSupply();
|
||||
}
|
||||
|
@ -84,9 +81,7 @@ abstract contract BaseToken is Context, ERC721Enumerable, CommunityOwnable {
|
|||
* URI autogenerated based on the base URI passed at construction.
|
||||
*
|
||||
*/
|
||||
function mintTo(
|
||||
address[] memory addresses
|
||||
) public onlyCommunityOwnerOrTokenMaster {
|
||||
function mintTo(address[] memory addresses) public onlyCommunityOwnerOrTokenMaster {
|
||||
if (_tokenIdTracker.current() + addresses.length > maxSupply) {
|
||||
revert BaseToken_MaxSupplyReached();
|
||||
}
|
||||
|
@ -103,9 +98,7 @@ abstract contract BaseToken is Context, ERC721Enumerable, CommunityOwnable {
|
|||
* @notice remoteBurn allows the owner to burn a token
|
||||
* @param tokenIds The list of token IDs to be burned
|
||||
*/
|
||||
function remoteBurn(
|
||||
uint256[] memory tokenIds
|
||||
) public onlyCommunityOwnerOrTokenMaster {
|
||||
function remoteBurn(uint256[] memory tokenIds) public onlyCommunityOwnerOrTokenMaster {
|
||||
if (!remoteBurnable) revert BaseToken_NotRemoteBurnable();
|
||||
|
||||
for (uint256 i = 0; i < tokenIds.length; i++) {
|
||||
|
@ -116,9 +109,7 @@ abstract contract BaseToken is Context, ERC721Enumerable, CommunityOwnable {
|
|||
/**
|
||||
* @dev See {IERC165-supportsInterface}.
|
||||
*/
|
||||
function supportsInterface(
|
||||
bytes4 interfaceId
|
||||
) public view virtual override(ERC721Enumerable) returns (bool) {
|
||||
function supportsInterface(bytes4 interfaceId) public view virtual override(ERC721Enumerable) returns (bool) {
|
||||
return super.supportsInterface(interfaceId);
|
||||
}
|
||||
|
||||
|
@ -137,11 +128,7 @@ abstract contract BaseToken is Context, ERC721Enumerable, CommunityOwnable {
|
|||
// can be burned so we use a separate counter.
|
||||
for (uint256 i = 0; i < addresses.length; i++) {
|
||||
_safeMint(addresses[i], _tokenIdTracker.current(), "");
|
||||
emit StatusMint(
|
||||
address(0),
|
||||
addresses[i],
|
||||
_tokenIdTracker.current()
|
||||
);
|
||||
emit StatusMint(address(0), addresses[i], _tokenIdTracker.current());
|
||||
_tokenIdTracker.increment();
|
||||
}
|
||||
}
|
||||
|
@ -155,7 +142,11 @@ abstract contract BaseToken is Context, ERC721Enumerable, CommunityOwnable {
|
|||
address to,
|
||||
uint256 firstTokenId,
|
||||
uint256 batchSize
|
||||
) internal virtual override(ERC721Enumerable) {
|
||||
)
|
||||
internal
|
||||
virtual
|
||||
override(ERC721Enumerable)
|
||||
{
|
||||
if (from != address(0) && to != address(0) && !transferable) {
|
||||
revert BaseToken_NotTransferable();
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue