Hi everyone, I'm currently using UUPS to upgrade my contracts but I've encountered a problem while verifying one of my contracts.
I have a factory at: 0xc47e2EF1ad576ac5bB942aBC4339b8283C206534. The implementation address of this contract is: 0x9aaeacf1d8e6f8131155584ea521f19e1bd55ddd. The problem is that I've upgraded the contract using this script:
import { ethers, upgrades } from "hardhat";
import addresses from '../addresses.proxy.json';
// scripts/prepare_upgrade.js
async function main() {
const proxyAddress = addresses.mumbai.pass;
const Pass = await ethers.getContractFactory("Pass");
console.log("Preparing upgrade...");
const newPassAddress = await upgrades.prepareUpgrade(proxyAddress, Pass);
console.log("New pass at:", newPassAddress);
}
main()
.then(() => process.exit(0))
.catch(error => {
console.error(error);
process.exit(1);
});
After I run the command:
npx hardhat verify 0x496170da27fb9372531dfce552712152c74c05f3 --network mumbai --show-stack-trace
The terminal shown this message:
Successfully verified contract Pass on Etherscan.
https://mumbai.polygonscan.com/address/0x496170da27fb9372531dfce552712152c74c05f3#code
The logic should now be updated! But it is not. When I go to the proxy contract page on Polyscan I'm still seeing the old implementation address with the old ABI like you can see in the screenshot below.