Airstreams UML Class Diagram ---------------------------- ```plantuml @startuml class AirstreamFactory { createAirstream(config) createExtendedAirstream(config, extendedConfig) } class AirstreamController { owner: address airstream: IAirstream withdraw() addReward() redirectReward() } interface IAirstream { } class ExtendedAirstream { claiminWindow: ClaimingWindow initialRewardPPM: uint24 feePPM: uint24 initialize(config, extendedConfig) claim(account, amount, proof) stramBackToTreasury() } enum ClaimingWindow { startDate: uint64 duration: uint64 treasury: address } class BasicAirstream { name: string merkleRoot: bytes32 unclaimedAmount: int96 flowRate: int96 startedAt: uint64 initialize(config, extendedConfig) pause() unpause() claim(account, amount, proof) redirectRewards(from, to, amounts) withdraw(token) } class SuperfluidPool { superToken: address updateMemberUnits() } enum AirstreamConfig { name: string token: address merkleRoot: bytes32 totalAmount: uint96 duration: uint64 } enum AirstreamExtendedConfig { superToken: address claimingWindow: ClaimingWindow initialRewardPPM: uint24 feePPM: uint24 } AirstreamController o-- IAirstream : owns IAirstream o-- SuperfluidPool : admin AirstreamFactory --> AirstreamController : creates AirstreamFactory --> IAirstream : creates AirstreamFactory --> AirstreamConfig : uses AirstreamFactory --> AirstreamExtendedConfig : uses IAirstream --> SuperfluidPool : creates ExtendedAirstream --|> BasicAirstream BasicAirstream ..|> IAirstream AirstreamExtendedConfig o-- ClaimingWindow : includes @enduml ```
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up