If i'm using Gnosis Safe I would first
const mars2 = await MarsV2.attach(CONTRACT_ADDRESS)
await mars2.transferOwnership(GNOSIS_ADDRESS)
Then if in the future I want to do an upgrade would this have to be done through
const proxyAddress = '0xFF60fd044dDed0E40B813DC7CE11Bed2CCEa501F';
const BoxV2 = await ethers.getContractFactory("BoxV2");
console.log("Preparing upgrade...");
const boxV2Address = await upgrades.prepareUpgrade(proxyAddress, BoxV2);
console.log("BoxV2 at:", boxV2Address);
GNOSIS UI OpenZeppelin Upgrades: Step by Step Tutorial for Hardhat
rather than doing this?
const MarsV2 = await ethers.getContractFactory("Mars1V2");
const mars2 = await upgrades.upgradeProxy(CONTRACT_ADDRESS, MarsV2);