**Description:** In the constructor of `GivingThanks`, the `registry` is assigned to the `msg.sender` instead of `_registry`,
which blocks `GivingThanks:donate` function since it contains `registry.isVerified(charity)`.
```javascript
constructor(address _registry) ERC721("DonationReceipt", "DRC") {
@> registry = CharityRegistry(msg.sender);
owner = msg.sender;
tokenCounter = 0;
}
```
**Impact:** The `GivingThanks:donate` function is blocked
**Proof of Concept:** place the following into `GivingThanks.t.sol`.
```javascript
function testWrongCharityRegistryPassing() public view {
assertNotEq(address(charityContract.registry()), address(registryContract));
}
```
**Recommended Mitigation:**
in `GiveThanks.sol`
```diff
constructor(address _registry) ERC721("DonationReceipt", "DRC") {
- registry = CharityRegistry(msg.sender);
+ registry = CharityRegistry(_registry);
owner = msg.sender;
tokenCounter = 0;
}
```