If a contract uses an address that is upgradable, should the contract be upgradable?

Let say that Contract A is Upgradable.
Then for Contract B I did not inherit Contract A, but I do use contract B as an address variable. Does the contract need to be upgradable?

Contract A:

contract A is
    Initializable,
    ReentrancyGuardUpgradeable,
{}

Contract B:

contract B is
    Ownable, 
    Pausable 
{}

Not really, upgradeability means you can change the implementation whenever you need.

If you want contract B to be immutable then there's no need of it being upgradeable.

In your case you are using A inside B just to query I guess, so there's no requirements.

1 Like