// Contract: BridgeQANX
// Target function: function verifySignature(bytes32 txid, bytes memory signature, uint256 amount) internal view returns (bool)
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

// MINIMAL ERC20 INTERFACE FOR QANX TRANSFERABILITY
interface TransferableERC20 {
    function transfer(address recipient, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
}

contract Signed {

    // THE ADDRESSES PERMITTED TO SIGN WITHDRAWAL REQUESTS UP TO X AMOUNT
    mapping(address => uint256) internal signers;

    // SET NO LIMIT SIGNER ON DEPLOYMENT
    constructor() {
        signers[msg.sender] = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff;
    }

    // METHOD TO SET WITHDRAWAL SIGNER ADDRESSES
    function setSigner(address signer, uint256 limit) external {
        require(signer != address(0) && signers[msg.sender] == 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff);
        signers[signer] = limit;
    }