Supporting ERC-6372

Dear Aragon DAO Community,

I want to propose and get your feedback on the topic of supporting ERC6372: Contract clock, An interface for exposing a contract’s clock value and details.

Aragon contracts currently use block.number as a unit of time, which can be an issue for projects that need to sync their time between different chains with different block times. Such projects could rely on the block.timestamp or introduce their own time tracking.

Aragon contracts can support any time tracking by supporting ERC6372.

Aragon contracts use previous time tick values as a means of preventing backrunning. Supporting ERC6372 would not prevent that. The standard forces the return value of the clock() function to be non-decreasing. Instead of using block.timestamp - 1, contracts can safely use clock() - 1.

The returned value type of the clock() function is uint48, which will fit into the currently used uint64.

A governance token would implement ERC6372, and Aragorns governance plugins should be using it if they discover that the governance token is implementing it. A default governance token, and a wrapper, can still use block.number as a unit of time.

I encourage the Aragon DAO community to explore the potential of ERC6372 and consider its adoption to enhance the overall flexibility of smart contracts within the DAO.

Best regards,

ashhanai

2 Likes

Hey friend, welcome and thank you! I’ve forwarded this to the OSx team who have added it into our discovery board in Jira. I’m not sure on timing but they’ll look into it and get back to you! Thanks a ton, we really appreciate you reaching out. Stay tuned! :slight_smile:

I created a PR with the necessary changes to support different time tracking in the TokenVoting plugin to help you estimate the scope of work.

3 Likes

Thank you for the pull request.
We will review it and keep you updated.

1 Like