pragma solidity =0.5.16;

import './interfaces/IFee.sol';

contract Fee is IFee {
    address public feeSetter;
    uint public fee;

    constructor(address _feeSetter) public {
        fee = 3;
        feeSetter = _feeSetter;
    }

    function setFee(uint _fee) external {
        require(msg.sender == feeSetter, 'UniswapV2 Fee: FORBIDDEN');
        require(fee <= 1000, 'UniswapV2 Fee: range from 0 ~ 1000');
        fee = _fee;
    }

    function setFeeTo(address _feeSetter) external {
        require(msg.sender == feeSetter, 'UniswapV2: FORBIDDEN');
        feeSetter = _feeSetter;
    }
}
[{"inputs":[{"internalType":"address","name":"_feeSetter","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"constant":true,"inputs":[],"name":"fee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"feeSetter","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"setFee","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_feeSetter","type":"address"}],"name":"setFeeTo","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]