AccountabilityDAO.sol
Quick Links
VIEW CONTRACT ON GITHUB
The AccountabilityDAO.sol contract is a specialized, limited-scope governance module created for the sole purpose of providing community oversight over the founder's 1% token allocation, which is held in the FounderVesting.sol contract. It is not a general-purpose DAO; its powers are strictly limited to extending the founder's vesting cliff or permanently burning the allocation, ensuring the protocol's core mechanics remain autonomous and immutable.
Inherits from: ReentrancyGuard
Key State Variables & Constants
EXTEND_THRESHOLD
uint256
Constant: The amount of AEC required to be locked in the DAO to enable the extendFounderVesting function (100,000,000 AEC).
BURN_THRESHOLD
uint256
Constant: The amount of AEC required to be locked to enable the burnFounderAllocation function (200,000,000 AEC).
EXTENSION_DURATION
uint256
Constant: The duration (2 years in seconds) by which the founder's vesting cliff is extended when extendFounderVesting is triggered.
aecToken
IERC20
The address of the AEC token contract used for deposits.
founderVesting
IFounderVesting
The address of the FounderVesting contract that this DAO governs.
totalLocked
uint256
The current total amount of AEC tokens locked/deposited in the DAO.
userDeposits
mapping(address => uint256)
A mapping from a user's address to the amount of AEC they have deposited.
founderAllocationBurned
bool
A flag that becomes true after the founder's allocation has been burned, permanently disabling both DAO actions.
Write Functions
User-Facing Functions
deposit(uint256 amount): Allows any AEC holder to deposit tokens into the DAO. Deposited tokens contribute to thetotalLockedbalance required to meet the action thresholds.withdraw(uint256 amount): Allows a user to withdraw a specificamountof their deposited tokens at any time.withdrawAll(): A convenience function for a user to withdraw their entire deposited balance.
Action Functions (Publicly Callable)
extendFounderVesting(): A permissionless function that can be called by anyone oncetotalLockedmeets or exceeds theEXTEND_THRESHOLD. It interacts with theFounderVestingcontract to extend the vesting cliff by 2 years. This action has a 30-day cooldown period.burnFounderAllocation(): A permissionless, one-time function that can be called by anyone oncetotalLockedmeets or exceeds theBURN_THRESHOLD. It interacts with theFounderVestingcontract to permanently burn the entire remaining founder allocation.
View Functions
getActionableStatus(): Returns a detailed status of the DAO, including booleans indicating if theextendandburnactions are currently possible, and the remaining amount of AEC needed to reach each threshold.getDAOStats(): Provides a high-level overview of the DAO's statistics, including the current amount of locked AEC, the number of extensions executed, and whether the allocation has been burned.
Events
TokensDeposited(address indexed user, uint256 amount, uint256 newTotal): Emitted when a user deposits AEC into the DAO.TokensWithdrawn(address indexed user, uint256 amount, uint256 newTotal): Emitted when a user withdraws AEC from the DAO.VestingExtended(address indexed triggeredBy, uint256 totalLocked): Emitted when the founder's vesting period is successfully extended.FounderAllocationBurned(address indexed triggeredBy, uint256 totalLocked): Emitted when the founder's token allocation is successfully burned.
Last updated