crytic / crytic/crytic-compile

[Bug-Candidate]: Slither Vyper feature fails if custom interfaces are imported

Open
#507 7 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Python
Stars
197
Forks
97
PR merge metrics
No merged PRs in 30d

Description

### Describe the issue:

Hey @0xalpharush great job with the Vyper feature! I'm currently testing the functionalities and I encountered parsing errors if the Vyper contract imports custom interfaces, as I do a lot in [🐍 snekmate](https://github.com/pcaversaccio/snekmate). For example, take a look at [`AccessControl.vy`](https://github.com/pcaversaccio/snekmate/blob/main/src/auth/AccessControl.vy), where I import the custom interface `IAccessControl`:

```vyper
import interfaces.IAccessControl as IAccessControl
implements: IAccessControl
```

Running `slither AccessControl.vy` will lead to the following error:

```console
Traceback (most recent call last):
...
raise InvalidCompilation(vyper_standard_output["errors"])
crytic_compile.platform.exceptions.InvalidCompilation: [{'component': 'parser', 'message': "Cannot locate interface 'interfaces/IAccessControl{.vy,.json}'", 'severity': 'error', 'sourceLocation': {'file': 'AccessControl.vy'}, 'type': 'FileNotFoundError'}]
```

### Code example to reproduce the issue:

See above. Or any other contract in [🐍 snekmate](https://github.com/pcaversaccio/snekmate) that uses custom interface imports.

### Version:

`0.10.0`

### Relevant log output:

_No response_

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.