Upgrades Plugin Error: "doesn't look like an ERC 1967 proxy with a logic contract address"

Hello, I am deploying an upgradeable contract with the upgrades plugin and keep getting this error

Error: Contract at 0xdeaBbBe620EDF275F06E75E8fab18183389d606F doesn't look like an ERC 1967 proxy with a logic contract address

This is my code:

describe("LCV2", () => {
    it("Upgrades to v2", async () => {

        const LCV2Mock = await hre.ethers.getContractFactory("LCV2Mock");

        const lCV2Mock = <LCV2Mock>(await hre.upgrades.upgradeProxy("0xdeaBbBe620EDF275F06E75E8fab18183389d606F", LCV2Mock));
        expect (await lCV2Mock.version()).to.equal("This is LC V2!");
    });
})

I am getting the proxy address from the network file:

 "b10bc8a5180c13e4efa1aa2f8f6bf857af0142cdc5f3b50830e983900a2304de": {
      "address": "0xdeaBbBe620EDF275F06E75E8fab18183389d606F",
      "txHash": "0xce69f75f4e6923ea8cee20ccc07aa5a9b9d3444af1e5e74d3663f51d0330019d",
      "layout": {

I have implemented this before successfully.
Not sure what I am missing today..

That seems like an implementation address (from the impls section of the network file). You should look for the proxy address (see the proxies section of the network file instead).

1 Like

Hi!
I have a something look like a same issue but...

My proxies is

  "proxies": [
    {
      "address": "0x74a7D431499bE64f2e3C4Dd47e59387d2B8BB969",
      "txHash": "0x1e32967f1a5768c86656478a7c158f0d264ffe2c5556e9d6901b67e423a53b57",
      "kind": "transparent"
    }
  ],

Deploy script

const TransparentUpgradeableProxy =
  "0x74a7D431499bE64f2e3C4Dd47e59387d2B8BB969";

async function main() {
  console.log("Started UPG deploying ... ");
  const ERC721 = await ethers.getContractFactory("ERC721");
  await upgrades.upgradeProxy(TransparentUpgradeableProxy, ERC721);

  console.log("Upgraded ... ");
}

As a result I get an error

Error: Contract at 0x74a7D431499bE64f2e3C4Dd47e59387d2B8BB969 doesn't look like an ERC 1967 proxy with a logic contract address 

@liscody Can you check that you are using the correct network and that the address actually has the proxy contract deployed on that network?