contract ProxyRegistry is Ownable {
  using Address for address;
  mapping(address => OwnableDelegateProxy) public proxies;

  /**
    * @notice whitelist a proxyContractAddress for the given owner
    * @param owner address
    * @param proxyContractAddress address of proxy Contract
    */
  function setProxy(address owner, address proxyContractAddress) external onlyOwner {
    require(proxyContractAddress.isContract(), "invalid proxy contract address");
    proxies[owner] = OwnableDelegateProxy(proxyContractAddress);
  }
}
/**
 * @title ProxyRegistry
 * @notice Registry contract to store delegated proxy contracts
 */
function setProxy(address owner, address proxyContractAddress) external onlyOwner {
  require(proxyContractAddress.isContract(), "invalid proxy contract address");
  proxies[owner] = OwnableDelegateProxy(proxyContractAddress);
}

/**
 * @notice whitelist a proxyContractAddress for the given owner
 * @param owner address
 * @param proxyContractAddress address of proxy Contract
 */