Diagrams
Lockup Storage Layout
Each Lockup contract is a singleton that stores all streams created by that contract's users. The following diagrams provide insight into the storage layout.
Shared Lockup
To see the list of all common storage variables, click here. This struct is shared across LockupLinear, LockupDynamic, and LockupTranched.
Lockup Linear
Apart from the shared lockup storage, Lockup Linear requires a separate storage to store cliff details for each stream ID.
Lockup Dynamic
Similarly, Lockup Dynamic requires a separate storage to store an array of segments for each stream ID.
Lockup Tranched
Lockup Tranched requires a separate storage to store an array of tranches for each stream ID.
Airstream Campaign
A typical Airstream campaign creation flow looks like the following:
And this is how the claim flow looks like for recipients:
For campaign admins, we offer clawback
functionality which can be used to retrieve unclaimed funds after expiration.
There is also a grace period that ends 7 days after the first claim is made. During the grace period, admin can
clawback
to return funds from the MerkleLockup
contract. This is useful in case there had been an accidental
transfer of funds.