Hi @alsco77 ,
As an aside, you should be able to do nested deployments using the Upgrades Plugins for Truffle or Hardhat.
The proxy contracts that were in OpenZeppelin Upgrades library have been added to OpenZeppelin Contracts. See: Building for interoperability: why we’re focusing on Upgrades Plugins
There is a Solidity 0.7 tagged release of OpenZeppelin Contracts.
// SPDX-License-Identifier: MIT
pragma solidity ^0.7.0;
import "./UpgradeableProxy.sol";
/**
* @dev This contract implements a proxy that is upgradeable by an admin.
*
* To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector
* clashing], which can potentially be used in an attack, this contract uses the
* https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two
* things that go hand in hand:
*
* 1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if
* that call matches one of the admin functions exposed by the proxy itself.
* 2. If the admin calls the proxy, it can access the admin functions, but its calls will never be forwarded to the
* implementation. If the admin tries to call a function on the implementation it will fail with an error that says
* "admin cannot fallback to proxy target".
*
This file has been truncated. show original
Please note, the Upgrades Plugins don't currently use the proxy contracts from OpenZeppelin Contracts. They use a variant (prior to migration to OpenZeppelin Contracts) that is for Solidity 0.6.