    function withdrawERC20Token(uint16 tokenCode, address traderAddr, address withdrawalAddr, uint amount) external
        onlyActive()
        onlyApprovedExchange(traderAddr) {
        deductBalance(tokenCode, traderAddr, amount);
        resetEmergencyRelease(traderAddr);
        address tokenContract = tokenContracts[tokenCode];
        require (tokenContract != address(0), "Registered token contract.");
        require (safeTransfer(tokenContract, withdrawalAddr, amount),
                 "Could not transfer ERC-20 tokens using transfer.");
        emit Withdrawal(tokenCode, traderAddr, withdrawalAddr, amount);
    }