IERC1155 Receiver

Hello, I am currently working on a middleman contract that will accept erc1155 tokens and return erc20 token.

I started with attempting to make the contract receive 1155 but I get an error about my implementation.
I have done it before with ERC721 reciever but that didn't give me any issues.

/// SPDX-License-Identifier: UNLICENSED
pragma solidity 0.8.7;

import "@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol";

contract middleMan is  IERC1155Receiver {
   
   function onERC1155Received(
        address operator,
        address from,
        uint256 id,
        uint256 value,
        bytes calldata data
    ) external virtual override  returns (bytes4);

    function onERC1155BatchReceived(
        address operator,
        address from,
        uint256[] calldata ids,
        uint256[] calldata values,
        bytes calldata data
    ) external virtual override returns (bytes4);

    function supportsInterface(bytes4 interfaceID) external override view returns (bool) {
      return  interfaceID == 0x01ffc9a7 ||    // ERC-165 support (i.e. `bytes4(keccak256('supportsInterface(bytes4)'))`).
              interfaceID == 0x4e2312e0;      // ERC-1155 `ERC1155TokenReceiver` support (i.e. `bytes4(keccak256("onERC1155Received(address,address,uint256,uint256,bytes)")) ^ bytes4(keccak256("onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)"))`).
    }
}

It says that i should mark it as abstract as i am missing implementations.

Hello @BlockchainDev

You have two functions ( onERC1155Received and onERC1155BatchReceived) that are missing an implementation.

If you want your contract to implement IERC1155Receiver, you can directly use our ERC1155Holder contract.

You need to implement an erc1155holder contract, I got an example code