contract StakingInterfaceRouter is Ownable {
    BaseStakingInterface public target;

    /**
    * @param _target Address of the interface contract
    */
    constructor(BaseStakingInterface _target) {
        require(address(_target.token()) != address(0));
        target = _target;
    }

    /**
    * @notice Upgrade interface
    * @param _target New contract address
    */
    function upgrade(BaseStakingInterface _target) external onlyOwner {
        require(address(_target.token()) != address(0));
        target = _target;
    }

}
/**
 * @notice Router for accessing interface contract
 */
function upgrade(BaseStakingInterface _target) external onlyOwner {
    require(address(_target.token()) != address(0));
    target = _target;
}

/**
 * @notice Upgrade interface
 * @param _target New contract address
 */