// SPDX-License-Identifier: MIT pragma solidity ^0.8.15; import "../../../../common/Errors.sol"; import "../../../../access/ownable/OwnableInternal.sol"; import "../../extensions/lockable/IERC1155LockableExtension.sol"; import "../../base/ERC1155BaseInternal.sol"; import "./IERC1155LockableOwnable.sol"; /** * @title ERC1155 - Lock as owner * @notice Allow locking tokens as the contract owner. * * @custom:type eip-2535-facet * @custom:category NFTs * @custom:required-dependencies IERC1155LockableExtension * @custom:provides-interfaces IERC1155LockableOwnable */ contract ERC1155LockableOwnable is IERC1155LockableOwnable, OwnableInternal { /** * @inheritdoc IERC1155LockableOwnable */ function lockByOwner( address account, uint256 id, uint256 amount ) public virtual onlyOwner { IERC1155LockableExtension(address(this)).lockByFacet(account, id, amount); } /** * @inheritdoc IERC1155LockableOwnable */ function lockByOwner( address[] memory accounts, uint256[] memory ids, uint256[] memory amounts ) public virtual onlyOwner { IERC1155LockableExtension(address(this)).lockByFacet(accounts, ids, amounts); } /** * @inheritdoc IERC1155LockableOwnable */ function unlockByOwner( address account, uint256 id, uint256 amount ) public virtual onlyOwner { IERC1155LockableExtension(address(this)).unlockByFacet(account, id, amount); } /** * @inheritdoc IERC1155LockableOwnable */ function unlockByOwner( address[] memory accounts, uint256[] memory ids, uint256[] memory amounts ) public virtual onlyOwner { IERC1155LockableExtension(address(this)).unlockByFacet(accounts, ids, amounts); } }