Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
681db77
Consistent behaviour with ANY_ADDR
brickpop May 6, 2026
74cf358
Updated doc
brickpop May 6, 2026
5ca5739
Starting to port the TypeScript tests into solidity
brickpop May 18, 2026
0cbaa14
Permission and metadata tests
brickpop May 18, 2026
8eb33e0
Extension tests
brickpop May 18, 2026
9d45d30
Test: src/common
brickpop May 19, 2026
d600e4d
Test: core utils
brickpop May 19, 2026
47610a5
Test: framework utils
brickpop May 19, 2026
f349eb6
Test: Registries
brickpop May 19, 2026
13003b8
Test: Framework repo and factory
brickpop May 19, 2026
eaa318c
Test: PermissionManager
brickpop May 19, 2026
2c6a641
Test: DAO tests
brickpop May 21, 2026
af9f3fa
Test: PluginSetupProcessor chunks
brickpop May 21, 2026
1951013
Test: DAO upgrade tests
brickpop May 21, 2026
fe5e7bb
Test: Removing the remaining outdated TS tests
brickpop May 21, 2026
35fc057
Expanding DAO.t.sol tests
brickpop May 26, 2026
bc8f15c
Expanding the PermissionManager tests
brickpop May 26, 2026
7e67164
Extended PSP tests
brickpop May 26, 2026
39bce79
Broader PluginRepo testing
brickpop May 26, 2026
fbfb57d
PluginRepoFactory wider tests
brickpop May 26, 2026
036d5df
DaoFactory deeper testing
brickpop May 26, 2026
0cfee00
PluginRepoRegistry deeper tests
brickpop May 26, 2026
6ed80ff
DAO Registry and ENS Subdomain registrar wider testing
brickpop May 27, 2026
51b6211
InterfaceBasedRegistry: wider tests
brickpop May 27, 2026
7a9d078
Plugin, clones and UUPS: deeper tests
brickpop May 27, 2026
5aa4196
Executor and PluginSetup extra tests
brickpop May 27, 2026
d1bc50c
Ruled condition extra tests
brickpop May 27, 2026
cf576fc
Metadata and proxy deeper tests
brickpop May 27, 2026
5732fba
Depper DaoAuthorizable tests
brickpop May 27, 2026
5e2bf9e
Integration and smoke tests
brickpop May 27, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ logs/*
# tooling
node_modules
.openzeppelin
lib/osx-v*

# testing
coverage
Expand Down
10 changes: 10 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -171,6 +171,16 @@ forge test --gas-report # include gas usage per test

Fork tests live under `test/fork/` and run against a real RPC; standard CI excludes them. Run them locally with the appropriate RPC URL set.

### DAO upgrade tests (v1.0.0 → v1.3.0 → v1.4.0)

Historic-source upgrade tests live under `test-upgrade/` and run under an opt-in Foundry profile. They depend on two git worktrees of this repository pinned at the historic `v1.0.0` and `v1.3.0` commits — created on demand, no network clone required.

```bash
just test-upgrade # auto-runs test-upgrade-setup on first invocation
```

The setup is idempotent: re-running `just test-upgrade-setup` is a no-op if the worktrees already exist. To remove them, `git worktree remove lib/osx-v1.0.0` and `git worktree remove lib/osx-v1.3.0`.

See the [Foundry book](https://book.getfoundry.sh/forge/tests) for advanced options.

## Deployment
Expand Down
8 changes: 6 additions & 2 deletions docs/modules/api/pages/framework.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,7 @@
:xref-PluginRepo-buildCount-uint8-: xref:framework.adoc#PluginRepo-buildCount-uint8-
:xref-PluginRepo-tagHash-struct-PluginRepo-Tag-: xref:framework.adoc#PluginRepo-tagHash-struct-PluginRepo-Tag-
:xref-PluginRepo-_authorizeUpgrade-address-: xref:framework.adoc#PluginRepo-_authorizeUpgrade-address-
:xref-PluginRepo-isPermissionRestrictedForAnyAddr-bytes32-: xref:framework.adoc#PluginRepo-isPermissionRestrictedForAnyAddr-bytes32-
:xref-PluginRepo-supportsInterface-bytes4-: xref:framework.adoc#PluginRepo-supportsInterface-bytes4-
:xref-PermissionManager-__PermissionManager_init-address-: xref:framework.adoc#PermissionManager-__PermissionManager_init-address-
:xref-PermissionManager-grant-address-address-bytes32-: xref:framework.adoc#PermissionManager-grant-address-address-bytes32-
Expand All @@ -123,7 +124,6 @@
:xref-PermissionManager-_revoke-address-address-bytes32-: xref:framework.adoc#PermissionManager-_revoke-address-address-bytes32-
:xref-PermissionManager-_auth-bytes32-: xref:framework.adoc#PermissionManager-_auth-bytes32-
:xref-PermissionManager-permissionHash-address-address-bytes32-: xref:framework.adoc#PermissionManager-permissionHash-address-address-bytes32-
:xref-PermissionManager-isPermissionRestrictedForAnyAddr-bytes32-: xref:framework.adoc#PermissionManager-isPermissionRestrictedForAnyAddr-bytes32-
:xref-PluginRepo-MAINTAINER_PERMISSION_ID-bytes32: xref:framework.adoc#PluginRepo-MAINTAINER_PERMISSION_ID-bytes32
:xref-PluginRepo-UPGRADE_REPO_PERMISSION_ID-bytes32: xref:framework.adoc#PluginRepo-UPGRADE_REPO_PERMISSION_ID-bytes32
:xref-PluginRepo-buildsPerRelease-mapping-uint8----uint16-: xref:framework.adoc#PluginRepo-buildsPerRelease-mapping-uint8----uint16-
Expand Down Expand Up @@ -1079,6 +1079,7 @@ The plugin repository contract required for managing and publishing different pl
* {xref-PluginRepo-buildCount-uint8-}[`++buildCount(_release)++`]
* {xref-PluginRepo-tagHash-struct-PluginRepo-Tag-}[`++tagHash(_tag)++`]
* {xref-PluginRepo-_authorizeUpgrade-address-}[`++_authorizeUpgrade()++`]
* {xref-PluginRepo-isPermissionRestrictedForAnyAddr-bytes32-}[`++isPermissionRestrictedForAnyAddr(_permissionId)++`]
* {xref-PluginRepo-supportsInterface-bytes4-}[`++supportsInterface(_interfaceId)++`]

[.contract-subindex-inherited]
Expand All @@ -1097,7 +1098,6 @@ The plugin repository contract required for managing and publishing different pl
* {xref-PermissionManager-_revoke-address-address-bytes32-}[`++_revoke(_where, _who, _permissionId)++`]
* {xref-PermissionManager-_auth-bytes32-}[`++_auth(_permissionId)++`]
* {xref-PermissionManager-permissionHash-address-address-bytes32-}[`++permissionHash(_where, _who, _permissionId)++`]
* {xref-PermissionManager-isPermissionRestrictedForAnyAddr-bytes32-}[`++isPermissionRestrictedForAnyAddr(_permissionId)++`]

[.contract-subindex-inherited]
.ProtocolVersion
Expand Down Expand Up @@ -1378,6 +1378,10 @@ Gets the total number of builds for a given release number.
[[PluginRepo-_authorizeUpgrade-address-]]
==== `[.contract-item-name]#++_authorizeUpgrade++#++(address)++` [.item-kind]#internal#

[.contract-item]
[[PluginRepo-isPermissionRestrictedForAnyAddr-bytes32-]]
==== `[.contract-item-name]#++isPermissionRestrictedForAnyAddr++#++(bytes32 _permissionId) → bool++` [.item-kind]#internal#

[.contract-item]
[[PluginRepo-supportsInterface-bytes4-]]
==== `[.contract-item-name]#++supportsInterface++#++(bytes4 _interfaceId) → bool++` [.item-kind]#public#
Expand Down
6 changes: 6 additions & 0 deletions foundry.toml
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,9 @@ fs_permissions = [{ access = "write", path = "./deployments" }]

[profile.ci]
fuzz = { runs = 512 }

# Opt-in profile for the DAO upgrade test (v1.0.0 → v1.3.0 → v1.4.0).
# Historic sources are git worktrees at `lib/osx-v{1.0.0,1.3.0}`; run
# `just test-upgrade-setup` once to create them
[profile.upgrade]
test = "test-upgrade"
20 changes: 20 additions & 0 deletions justfile
Original file line number Diff line number Diff line change
Expand Up @@ -28,3 +28,23 @@ build-docs ref="main":
forge build --ast
GITHUB_REF="{{ ref }}" python3 scripts/build-docs.py

# Run the DAO upgrade test (v1.0.0 → v1.3.0 → v1.4.0)
[group('test')]
test-upgrade *args: test-upgrade-setup
FOUNDRY_PROFILE=upgrade forge test -vvv {{ args }}

# Set up the historical-source worktrees needed for the upgrade test.
[group('test')]
test-upgrade-setup:
#!/usr/bin/env bash
set -euo pipefail
if [ ! -d lib/osx-v1.0.0 ]; then
git worktree add lib/osx-v1.0.0 c2b9d23a96654e81f22fbf91e6f334ef26a370af
else
echo "lib/osx-v1.0.0 already exists, skipping."
fi
if [ ! -d lib/osx-v1.3.0 ]; then
git worktree add lib/osx-v1.3.0 6f35a85f6159ae62c68776c5cff57d4e8cfe1549
else
echo "lib/osx-v1.3.0 already exists, skipping."
fi
10 changes: 0 additions & 10 deletions packages/contracts/test/chai-setup.ts

This file was deleted.

72 changes: 0 additions & 72 deletions packages/contracts/test/core/dao/callback-handler.ts

This file was deleted.

Loading
Loading