πŸ“†Calendar

A calendar application using HollowDB.

Perma-Calendar is a demo app for HollowDB. It is client-side only, and every user deploys their contract & their keys. It does not use proofs and only uses whitelisting. The FullCalendar framework is used for calendar rendering. You can check out the live demo here.

Head to the GitHub repo to see the implementation or jump to the Code Snippets section to have a quick look.

The Calendar App

As HollowDB supports both ZK-based inputs and whitelists, it can be used like any other database. This simple example demonstrates how it can be used as a calendar application only using client side code.

Initial View

Connect Wallet

Thanks to Warp contract's Injected Ethereum Signer, the calendar supports both Arweave wallet and Metamask

Wallet Options
Arweave Wallet
Metamask Wallet

Deploy a Contract

As mentioned, for a calendar app every user has to deploy their own HollowDB contract. Users' wallet is added to the whitelist automatically, meaning only they can do write operations. After you connect your wallet, you will see either a Deploy or Redeploy button depending on if a previously deployed contract exists or not.

A contract exists
Contract not found

Add Calendar Events

You can click on any date to create an event. After submitting the event, the user receives a transaction to write the event to the HollowDB contract. After a successful event creation, the event will be shown on the calendar.

Enter Event Name

Sign the Transaction

Ta-da!

Delete Event

To delete an event, simply click on the event and sign the transaction.

Code Snippets

The folder structure of the application is as follows:

Contract Deployment

Put Operation

Remove Operation

Handling Previously Deployed Contracts

Congrats! You have successfully learned how to deploy and use an HollowDB contract.

Last updated