Where do i get merkleproofupgradeable.sol?

i keep getting

Error: Source "openzeppelin-contracts-upgradeable/contracts/utils/cryptography/MerkleProofUpgradeable.sol" not found:

i followed the instructions on https://github.com/OpenZeppelin/openzeppelin-contracts-upgradeable

and i have searched for that file on my hd and the internet in and can't find it.

i used forge to install it and it's just not there. i don't know what i'm doing wrong

where/how to i get the upgradable.sol files?

this file exists and folks use it but i'm just confused - where does it come from? i can see references to it on github issues (https://github.com/search?q=merkleproofupgradeable.sol&type=issues) but not sure what's going wrong. can anyone here help me?

It's a library, so it can reside only under openzeppelin-contracts.

It doesn't need to reside also under openzeppelin-contracts-upgradeable.

You can find it here.

1 Like

that's for a different repo. the contract i'm using is upgradable so the format is different, right?
see: https://docs.openzeppelin.com/upgrades-plugins/1.x/writing-upgradeable

and the repo is different right? it's actually here:

and the file is missing from the latest releases but may be found in 4.x.x.x releases which is rather curious. does anyone know why?

also, that's how i solved it. i'm not sure what you're on about.

As far as I know, there is nothing that prevents working with (importing from) both repositories.

There's probably a good reason for that, you know?

You solved it by mixing openzeppelin-contracts-upgradeable v4 and v5?

Not a good idea, see this answer (and there are probably a bunch more around this issue).

1 Like

The documentation has a note on this:

Interfaces and libraries are not included in the Upgradeable package, but are instead imported from the main OpenZeppelin Contracts package.

1 Like