[FEAT] hard-pinned versioning makes for poor libraries
Description
Right now, there are several smart contracts with strict versioning types, for example in the VRF SubscriptionAPI:
pragma solidity 0.8.19;
This is an issue because it's the way the documentation instructs users interface with VRF however, it means that all smart contracts that interact with Chainlink VRF must use solidity version 0.8.19. This of course is very restrictive for developers.
The Request
Please always make smart contracts intended to be used as libraries with loose solidity versioning, for example ^0.8.19, otherwise people with different solidity versions will have a harder time working with these packages.
@PatrickAlphaC I can do this, please assign it to me, and I think this could be labelled as Good First Issue.
#14824
I have solved this one.
This has been resolved in https://github.com/smartcontractkit/chainlink/pull/13600
We agree that client facing contracts should not have strict versioning.