Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
d94dcc7
Amending the order of evalRule where who
brickpop May 5, 2026
6f010ac
Consistent behaviour with ANY_ADDR
brickpop May 6, 2026
f1d38fe
Updated doc
brickpop May 6, 2026
da9b236
Starting to port the TypeScript tests into solidity
brickpop May 18, 2026
d06b829
Permission and metadata tests
brickpop May 18, 2026
498c563
Extension tests
brickpop May 18, 2026
d6a2449
Test: src/common
brickpop May 19, 2026
fbae8e3
Test: core utils
brickpop May 19, 2026
1728f45
Test: framework utils
brickpop May 19, 2026
84a9753
Test: Registries
brickpop May 19, 2026
aa552b2
Test: Framework repo and factory
brickpop May 19, 2026
7364803
Test: PermissionManager
brickpop May 19, 2026
ef4f738
Test: DAO tests
brickpop May 21, 2026
167fad4
Test: PluginSetupProcessor chunks
brickpop May 21, 2026
2c66457
Test: DAO upgrade tests
brickpop May 21, 2026
944ebe0
Test: Removing the remaining outdated TS tests
brickpop May 21, 2026
89bc211
Expanding DAO.t.sol tests
brickpop May 26, 2026
5e3c8f3
Expanding the PermissionManager tests
brickpop May 26, 2026
670576e
Extended PSP tests
brickpop May 26, 2026
dafcf37
Broader PluginRepo testing
brickpop May 26, 2026
b16818d
PluginRepoFactory wider tests
brickpop May 26, 2026
fd4ed8f
DaoFactory deeper testing
brickpop May 26, 2026
d83ad13
PluginRepoRegistry deeper tests
brickpop May 26, 2026
52d00c7
DAO Registry and ENS Subdomain registrar wider testing
brickpop May 27, 2026
8dad4c0
InterfaceBasedRegistry: wider tests
brickpop May 27, 2026
03b6ce6
Plugin, clones and UUPS: deeper tests
brickpop May 27, 2026
805f8a2
Executor and PluginSetup extra tests
brickpop May 27, 2026
9f1c629
Ruled condition extra tests
brickpop May 27, 2026
0b81085
Metadata and proxy deeper tests
brickpop May 27, 2026
025c176
Depper DaoAuthorizable tests
brickpop May 27, 2026
51d3e5f
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
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,13 @@ cache

# Deployment outputs from `just deploy-*` scripts
deployments
broadcast
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 @@ -107,6 +107,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 @@ -122,7 +123,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 @@ -1077,6 +1077,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 @@ -1095,7 +1096,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 @@ -1376,6 +1376,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