In InheritanceManager::createEstateNFT function the _assetparameter is set to the global variable assetToPay. This becomes an issue when multiple estate NFTs are priced in various assets because the asset to pay is set to what the last createEstateNFTfunction call sets it to.
This test will revert because the last created NFT sets the assetToPayto usdc. When user1does not have usdcbut only wethin wallet the transaction reverts:
This could lead to:
Beneficiaries bying NFTs with wrong assets.
Previous NFT payment requirements being silently changed.
Potential loss of funds if assets have different values.
Manual code review, Claude 3.7 Sonnet
In the InheritanceManagercontract add this code:
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.