You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CONTRIBUTING.md
+3-4Lines changed: 3 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -18,10 +18,8 @@ forge build
18
18
19
19
## Running Tests
20
20
21
-
Tests use FFI for selector extraction, so the `--ffi` flag is required:
22
-
23
21
```sh
24
-
forge test --ffi -vvv
22
+
forge test -vvv
25
23
```
26
24
27
25
## Making Changes
@@ -34,14 +32,15 @@ forge test --ffi -vvv
34
32
-`src/initializers/` — Initializer contracts
35
33
3. Add or update tests in `test/` to cover your changes.
36
34
4. Run `forge fmt` to format your code.
37
-
5. Ensure all tests pass with `forge test --ffi`.
35
+
5. Ensure all tests pass with `forge test`.
38
36
6. Open a pull request against `main`.
39
37
40
38
## Guidelines
41
39
42
40
- Keep gas efficiency in mind — this library is optimized for minimal overhead.
43
41
- Follow existing code style and naming conventions.
44
42
- One logical change per PR — avoid bundling unrelated changes.
43
+
- Selectors are self-reported on-chain via ERC-8153 `exportSelectors()`. When you add an external/public function to a facet, you MUST also add its selector to that facet's `exportSelectors()`, extend the expected set in `test/ExportSelectorsTester.t.sol`, and exercise it through the diamond with a routed-call test. A function omitted from `exportSelectors()` will not be cut in or routed — and no test will fail unless you add one.
45
44
- Include test cases for both success and failure paths.
0 commit comments