public function removeAddresses($addressList, $params = array(), $apiContext = null, $restCall = null)
    {
        ArgumentValidator::validate($addressList, 'addressList');
        ArgumentGetParamsValidator::validate($params, 'params');
        $allowedParams = array();
        $params = ArgumentGetParamsValidator::sanitize($params, $allowedParams);

        // DEPRECATED: Using DELETE Body
        //$payLoad = $addressList->toJSON();

        $payLoad = '';
        // Using 'address' url parameter
        if (!isset($params['address'])) {
            $params['address'] = implode(';', $addressList->getAddresses());
        } else {
            $params['address'] .= ';' . implode(';', $addressList->getAddresses());
        }

        $chainUrlPrefix = self::getChainUrlPrefix($apiContext);

        $json = self::executeCall(
            //"$chainUrlPrefix/wallets/{$this->name}/addresses?" . http_build_query($params), // With DELETE body
            "$chainUrlPrefix/wallets/{$this->name}/addresses?" . http_build_query($params), // Without DELETE body
            "DELETE",
            $payLoad,
            null,
            $apiContext,
            $restCall
        );
        $this->fromJson($json);
        return $this;
    }