Skip to content

feat: add faith assignment submission for upgradeable contracts#211

Open
rayeberechi wants to merge 1 commit intoBlockheaderWeb3-Community:mainfrom
rayeberechi:submission-upgradeable-contracts
Open

feat: add faith assignment submission for upgradeable contracts#211
rayeberechi wants to merge 1 commit intoBlockheaderWeb3-Community:mainfrom
rayeberechi:submission-upgradeable-contracts

Conversation

@rayeberechi
Copy link
Copy Markdown
Collaborator

Summary

This PR implements my submission for the Upgradeable Contracts assignment. Specifically, it adds:

  • My submission markdown file (sessions/upgradable contracts/assignments/faith.md).
  • A link to my upgradeable smart contracts monorepo, which contains 6 individual Foundry projects converted to the OpenZeppelin Proxy pattern (Auction, Crowdfunding, Escrow Factory, MilestoneJob Factory, TimeLock, and Todo), alongside my Diamond Standard implementation.
  • A link to my technical article on the Diamond Standard published on HackMD.

Testing

  • Unit tests added
  • Tests passing locally

Notes

  • Architecture: Structured the OpenZeppelin suite as a monorepo where each upgraded contract is isolated in its own complete Foundry environment (with dedicated src, test, and lib folders) to ensure modularity.
  • Testing: Achieved a 100% passing rate locally using Foundry (forge test). Tests specifically validate the deployment of the implementation logic, the ERC1967Proxy routing, and proper state initialization using abi.encodeWithSelector.
  • Trade-offs/Assumptions: Leveraged OpenZeppelin's heavily audited Initializable extension and proxy contracts rather than writing custom delegatecall assembly. This prioritizes industry-standard security and maintainability over raw gas micro-optimizations.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant