Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
65 commits
Select commit Hold shift + click to select a range
c8495aa
docs: add governor upgrade implementation spec
dan13ram Apr 16, 2026
61a02c7
feat: add signed proposal flows and updatable governor state
dan13ram Apr 16, 2026
9a0c9fe
test: migrate governor testFail cases to explicit reverts
dan13ram Apr 16, 2026
f701ee8
test: stabilize metadata and token fuzz suites
dan13ram Apr 16, 2026
9d88d17
fix: harden governor upgrade safety and signed cancel checks
dan13ram Apr 17, 2026
e6b156f
fix: prevent proposer double-counting in proposeBySigs
dan13ram Apr 17, 2026
08bd6e5
fix: gate signed proposal updates for unqualified proposers
dan13ram Apr 21, 2026
3e15342
docs: add governor audit readiness checklist
dan13ram Apr 21, 2026
ba5bbef
refactor: remove signature revocation and reverse proposal mapping
dan13ram Apr 21, 2026
8fb1c24
docs: refresh governor audit checklist scope
dan13ram Apr 21, 2026
6d2c68b
docs: consolidate governor and upgrade runbooks
dan13ram Apr 21, 2026
4b88dfb
feat: harden proposal updates and document lifecycle
dan13ram Apr 22, 2026
4979431
docs: add production readiness tracking document
dan13ram May 20, 2026
e7f4a0d
feat: add ProposalState.Replaced to distinguish updated from canceled…
dan13ram May 20, 2026
31aa378
test: add comprehensive tests and update docs
dan13ram May 20, 2026
8afd44b
fix: bind proposal signatures to canonical proposal IDs
dan13ram May 20, 2026
a3bc597
docs: prune redundant rollout docs and align governor signature docs
dan13ram May 20, 2026
71a331d
fix: minor fixes & docs changes
dan13ram May 20, 2026
3240441
feat: support relayed signed proposal submission
dan13ram May 20, 2026
e6b37e8
fix: test stability and clean compiler warnings
dan13ram May 20, 2026
03e428f
feat: allow flexible signer sets when updating signed proposals
dan13ram May 21, 2026
9127436
fix: misc code review fixes
dan13ram May 26, 2026
3983757
fix: fix only proposer can proposeWithSigs + better upgrade tests
dan13ram May 26, 2026
52f04b2
fix: reduce max signers from 32 to 16 for gas savings
dan13ram May 27, 2026
fab1af8
fix: remove unnecessary zero votes copy
dan13ram May 27, 2026
038c10f
fix: minor doc fixes
dan13ram May 27, 2026
ba72aa6
feat: added doc for eas proposal candidates schema
dan13ram May 27, 2026
cad7f56
feat: update solidity version & enabled via_ir compilation flag
dan13ram May 28, 2026
cd647da
chore: upgrade linting tools and standardize formatting
dan13ram May 31, 2026
34225fb
fix: use explicit timestamps in forking test for via_ir compatibility
dan13ram Jun 1, 2026
d2a0581
test: added comprehensive fork tests
dan13ram Jun 1, 2026
be9365a
chore: upgrade OpenZeppelin to v5.6 and remove unused contracts-upgra…
dan13ram Jun 1, 2026
f18bedf
chore: bump version to 3.0.0 for governor breaking changes
dan13ram Jun 1, 2026
410ce09
feat: deployed v3.0.0 for eth sepolia, base sepolia and op sepolia
dan13ram Jun 2, 2026
cf9298c
feat: add deterministic manager deploy flow
dan13ram Jun 10, 2026
60a57cf
feat: added deploy:v3-new script
dan13ram Jun 10, 2026
d73a204
feat: make DEPLOY_SALT human-readable string
dan13ram Jun 10, 2026
c1b59bb
feat: deploy v3 new for testnets
dan13ram Jun 10, 2026
5f01b1e
feat: add merkle property metadata renderer
dan13ram Jun 11, 2026
4410325
test: added forking tests for manager upgrade
dan13ram Jun 18, 2026
b0e58ec
feat: consolidated github workflow scripts
dan13ram Jun 18, 2026
de1fb4f
test: added better tests for merkle property ipfs + formatting / lint…
dan13ram Jul 10, 2026
8aefe52
fix: use etherscan v2 api
dan13ram Jul 13, 2026
8b39d11
feat: V3 with CREATE3 deterministic deployments and security fixes
dan13ram Jul 15, 2026
ec2efe0
fix: address 5 critical V3 CREATE3 deployment findings
dan13ram Jul 15, 2026
13fcb9d
feat: add DAOFactory for cross-chain deterministic DAO deployments
dan13ram Jul 18, 2026
8c17e7b
fix: resolve CrossChainDeterminism test failures
dan13ram Jul 18, 2026
c6f9139
docs: update documentation to reflect DAOFactory architecture
dan13ram Jul 18, 2026
fffc49d
refactor: remove ImplementationParams, consolidate helpers, update docs
dan13ram Jul 19, 2026
1f0eeab
fix: deploy new implementations in CrossChainDeterminism test
dan13ram Jul 19, 2026
b1689be
fix: security audit remediation - F-06, F-11, and breaking change doc…
dan13ram Jul 20, 2026
9524d6e
fix: improve MetadataRenderer entropy, add NatSpec, suppress warnings
dan13ram Jul 20, 2026
2307fd5
docs: add comprehensive internal security audit report
dan13ram Jul 20, 2026
846bdfc
fix: CREATE3 deployment namespace verification with explicit deployer…
dan13ram Jul 20, 2026
17650bd
docs: document pre-mint attribute setting behavior in MerklePropertyIPFS
dan13ram Jul 20, 2026
b2c5283
docs: add F-19 and F-20 findings to internal security audit
dan13ram Jul 20, 2026
fcfa313
docs: fix finding count inconsistencies in internal security audit
dan13ram Jul 20, 2026
829405b
fix: WETH addresses for testnet chains
dan13ram Jul 21, 2026
39109d4
feat: add .env.example
dan13ram Jul 21, 2026
e7f429b
feat: deploy v3 new to testnets
dan13ram Jul 21, 2026
0342c83
feat: make proposalUpdatablePeriod configurable during DAO deployment
dan13ram Jul 21, 2026
9c55847
docs: update documentation for configurable proposalUpdatablePeriod
dan13ram Jul 21, 2026
e6acd9e
docs: add comprehensive README and fix documentation inaccuracies
dan13ram Jul 21, 2026
9c66cbf
feat: deploy V3 to testnets
dan13ram Jul 21, 2026
e6679a2
fix: node version in github workflow
dan13ram Jul 21, 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
21 changes: 21 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Network alias used by package.json deploy commands.
# Examples: sepolia, base_sepolia, optimism_sepolia, mainnet, base, optimism
NETWORK=sepolia

# Deployer private key
PRIVATE_KEY=

# Human-readable deployment salt label.
# Deterministic deploy scripts hash this with keccak256(bytes(DEPLOY_SALT)).
DEPLOY_SALT=buildeross@v3.0.0

# RPC URLs
MAINNET_RPC_URL=
SEPOLIA_RPC_URL=
OPTIMISM_RPC_URL=
OPTIMISM_SEPOLIA_RPC_URL=
BASE_RPC_URL=
BASE_SEPOLIA_RPC_URL=

# Explorer API keys
ETHERSCAN_API_KEY=
22 changes: 15 additions & 7 deletions .github/workflows/storage.yml
Original file line number Diff line number Diff line change
@@ -1,22 +1,30 @@
name: Check Contract Storage Layout
on: [pull_request]

permissions:
contents: read

jobs:
inspect-storage:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
submodules: recursive

- name: Use Node.js
uses: actions/setup-node@v3
uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6
with:
node-version: "16.13.2"
- run: npm install
node-version: "22.22.1"
cache: "yarn"

- run: yarn install --frozen-lockfile

- name: Install Foundry
uses: foundry-rs/foundry-toolchain@v1
uses: foundry-rs/foundry-toolchain@b00af27efadbc7b4ca8b82abbd903b17cc874d2a # v1
with:
version: nightly
version: v1.5.1

- name: "Inspect Storage Layout"
continue-on-error: false
id: storage-inspect-check
Expand Down
23 changes: 16 additions & 7 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -1,19 +1,28 @@
name: Run Tests
on: [push]

permissions:
contents: read

jobs:
build:
name: Test
runs-on: ubuntu-latest
environment: Test
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
submodules: recursive
- uses: actions/setup-node@v2

- uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6
with:
node-version: "16"
- run: npm install
- uses: onbjerg/foundry-toolchain@v1
node-version: "22.22.1"
cache: "yarn"

- run: yarn install --frozen-lockfile

- uses: foundry-rs/foundry-toolchain@b00af27efadbc7b4ca8b82abbd903b17cc874d2a # v1
with:
version: nightly
- run: ETH_RPC_MAINNET=${{secrets.ETH_RPC_MAINNET}} npm run test
version: v1.5.1

- run: yarn test:unit
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ out
dist
.env
.env.*
!.env.example
.DS_Store
.vscode/
broadcast/
6 changes: 3 additions & 3 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
[submodule "lib/forge-std"]
path = lib/forge-std
url = https://github.com/foundry-rs/forge-std
[submodule "lib/create3-factory"]
path = lib/create3-factory
url = https://github.com/BuilderOSS/create3-factory.git
15 changes: 15 additions & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Exclude Solidity files - formatted with forge fmt
*.sol

# Artifacts and build outputs
dist/
out/
cache/
artifacts/
node_modules/

# Git
.git/

# External dependencies
lib/
12 changes: 1 addition & 11 deletions .prettierrc
Original file line number Diff line number Diff line change
@@ -1,14 +1,4 @@
{
"tabWidth": 2,
"printWidth": 100,
"overrides": [
{
"files": "*.sol",
"options": {
"printWidth": 150,
"tabWidth": 4,
"bracketSpacing": true
}
}
]
"printWidth": 100
}
29 changes: 26 additions & 3 deletions .solhint.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,29 @@
{
"plugins": ["prettier"],
"extends": "solhint:recommended",
"rules": {
"prettier/prettier": "error"
}
"func-visibility": ["warn", { "ignoreConstructors": true }],
"immutable-vars-naming": "off",
"var-name-mixedcase": "off",
"const-name-snakecase": "off",
"interface-starts-with-i": "off",
"function-max-lines": ["warn", 80],
"no-empty-blocks": "off",
"no-inline-assembly": "off",
"avoid-low-level-calls": "off",
"import-path-check": "off",
"no-global-import": "off",
"quotes": "off",
"func-name-mixedcase": "off",
"no-console": "off",
"state-visibility": "off",
"one-contract-per-file": "off",
"no-unused-import": "off",
"compiler-version": "off",
"gas-indexed-events": "off",
"gas-increment-by-one": "off",
"gas-strict-inequalities": "off",
"gas-calldata-parameters": "off",
"gas-small-strings": "off"
},
"excludedFiles": ["src/lib/**/*.sol"]
}
10 changes: 10 additions & 0 deletions .storage-layout
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,16 @@
| hasVoted | mapping(bytes32 => mapping(address => bool)) | 11 | 0 | 32 | src/governance/governor/Governor.sol:Governor |
|--------------------------------------+-----------------------------------------------------+------+--------+-------+-----------------------------------------------|
| delayedGovernanceExpirationTimestamp | uint256 | 12 | 0 | 32 | src/governance/governor/Governor.sol:Governor |
|--------------------------------------+-----------------------------------------------------+------+--------+-------+-----------------------------------------------|
| _proposalUpdatablePeriod | uint48 | 13 | 0 | 6 | src/governance/governor/Governor.sol:Governor |
|--------------------------------------+-----------------------------------------------------+------+--------+-------+-----------------------------------------------|
| proposeSigNonces | mapping(address => uint256) | 14 | 0 | 32 | src/governance/governor/Governor.sol:Governor |
|--------------------------------------+-----------------------------------------------------+------+--------+-------+-----------------------------------------------|
| proposalSigners | mapping(bytes32 => address[]) | 15 | 0 | 32 | src/governance/governor/Governor.sol:Governor |
|--------------------------------------+-----------------------------------------------------+------+--------+-------+-----------------------------------------------|
| proposalUpdatePeriodEnds | mapping(bytes32 => uint32) | 16 | 0 | 32 | src/governance/governor/Governor.sol:Governor |
|--------------------------------------+-----------------------------------------------------+------+--------+-------+-----------------------------------------------|
| proposalIdReplacedBy | mapping(bytes32 => bytes32) | 17 | 0 | 32 | src/governance/governor/Governor.sol:Governor |
╰--------------------------------------+-----------------------------------------------------+------+--------+-------+-----------------------------------------------╯


Expand Down
Loading
Loading