<!-- canonical: https://0xsimao.com/findings/evro-finance-ii-iwbtc-zapper-mismatches-implementation -->

# IWBTCZapper interface mismatches implementation

Low/Info · Sherlock · EUR stablecoin · 26th December 2025

Finding L-2 of the Evro Collateral Onboarding security review.

- Report: /reports/evro-collateral-onboarding
- Source: https://github.com/0xsimao/audits/blob/main/Sherlock/private-audits/2025-12-26-evro-finance-ii.pdf

---

## Summary
The `IWBTCZapper` interface has incorrect function signatures and missing functions compared to the actual `WBTCZapper` implementation.

## Vulnerability Detail
Several discrepancies exist between the interface and implementation:
1. `closeTroveFromCollateralWithWBTC` doesn't exist - it's `closeTroveFromCollateral`
2. `adjustTroveWithWBTC` has wrong arguments in the interface
3. Missing functions: `withdrawEvro`, `repayEvro`, `adjustZombieTroveWithWBTC`, `receiveFlashLoanOnCloseTroveFromCollateral`

## Impact
External integrations using the interface will fail to compile or call the wrong functions.

## Code Snippet
https://github.com/sherlock-audit/2025-12-evro-finance-dec-26th/blob/main/evro/contracts/src/Zappers/Interfaces/IWBTCZapper.sol#L7-L13

```solidity
interface IWBTCZapper {
    // @audit - missing: withdrawEvro, repayEvro, adjustZombieTroveWithWBTC, receiveFlashLoanOnCloseTroveFromCollateral

    function adjustTroveWithWBTC(...) external;  // @audit - wrong arguments

    function closeTroveFromCollateralWithWBTC(...) external;  // @audit - doesn't exist, should be closeTroveFromCollateral
}
```

## Tool Used
Manual Review

## Recommendation
Update the interface to match the implementation exactly.

Disclosed by 0xSimao (https://0xsimao.com/).
