// File: contracts/nft/TokuShopShim.sol



// SPDX-License-Identifier: UNLICENSED
// All rights reserved
// TOKU Labs Pte Ltd 2023

pragma solidity 0.8.17;

contract TokuShopShim {
    address public target;

    constructor(address _target) {
        target = _target;
    }

    function purchase(
        uint256 saleId,
        uint16 amount,
        address buyer
    ) external payable returns (uint256 tokenId) {
        _fallback();
    }

    function securePurchase(
        uint64 itemId,
        uint32 variantId,
        uint16 amount,
        uint112 price,
        address buyer,
        uint64 signatureDeadline,
        uint64 signatureNonce,
        bytes calldata signature
    ) external payable returns (uint256 tokenId) {
        _fallback();
    }

    function _fallback() internal {
        //Forward call to the target contract
        (bool success, bytes memory data) = target.call{value: msg.value}(
            msg.data
        );
        require(success, "Forwarded call failed.");
        assembly {
            return(add(data, 32), mload(data))
        }
    }

    receive() external payable {
        _fallback();
    }

    fallback() external payable {
        _fallback();
    }
}