<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def list_addresses(self):
 """List all active addresses in the wallet. :return: an array of :class:`Address` objects """

        
        params = self.build_basic_request()
        response = util.call_api("merchant/{0}/list".format(self.identifier), params, base_url=self.service_url)

        json_response = json.loads(response)
        self.parse_error(json_response)
        
        addresses = []
        for a in json_response['addresses']:
            address = Address(a['balance'], a['address'], a.get('label'), a['total_received'])
            addresses.append(address)
            
        return addresses