owned this note
owned this note
Published
Linked with GitHub
# Entities
## Project
- Initialized by project Create
- event CheckInSummonComplete(
address indexed baal,
address indexed summoner,
address indexed shamanAddress,
address teamLead,
bool sharesOrLoot,
uint256 tokenPerSecond,
uint256 checkInInterval,
uint32[5] valueScalePercs,
string projectMetadata
);
- ``projectMetadata`` is parsed into
- name
- clientName
- clientUrl
- description
- imgUrl
- links [{label, url}] (keep as string if need be)
- Updated by poster call
- if tag === project.metadata
- parse and replace metadata fields
- Model
{
- name: string
- clientName: string
- ClientAddress: string (address)
- description: string
- imgUrl: string
- links [{label, url}] (keep as string if need be)
- daoAddress: string
- summoner: string
- shamanAddress: string
}
## Shaman
- Initialized by project Create
- event CheckInSummonComplete(
address indexed baal,
address indexed summoner,
address indexed shamanAddress,
address teamLead,
bool sharesOrLoot,
uint256 tokenPerSecond,
uint256 checkInInterval,
uint32[5] valueScalePercs,
string projectMetadata
);
- Updated by updater events
- event Mutiny(address from, address to);
- event UpdateInterval(uint256 from, uint256 to);
- event UpdateTokenPerSecond(uint256 from, uint256 to);
- event UpdatePercs(uint32[5] from, uint32[5] to);
- Lock is updated by
- event Lock(bool isLocked);
- Model
{
- teamLead: string (address)
- sharesOrLoot: boolean
- tokenPerSecond: string (number)
- checkInInterval: string (number)
- valueScalePercs: [5]string (numbers)
- isLocked: boolean
}
## Timeline Event
```
BaseModel: {
type: string,
userAddress: string (address),
createdAt: string (number),
...ClaimEvent | MutinyEvent | UpdateTPS | UpdateInterval | UpdatePercs | AdjustmentEvent | UpdateTPSProposal | UpdateIntervalProposal | UpdatePercsProposal | AdjustmentEventProposal | FlagEvent | ProjectUpdateEvent
}
```
Prioritize: Everything that does not require a proposal (ie. Claim, Flag, Update)
event Claim(
address indexed account,
uint256 timestamp,
uint256 tokenAmountClaimed,
uint64 totalSecondsWorked,
uint64[] sessionsTime,
uint8[] sessionsValue,
string metadata
);
ClaimEvent
```
type: "Claim"
userAddress: string (address),
createdAt: string (number),
memberAddress: string,
totalSecondsWorked: numbers (number)
totalAmountClaimed: string (bigInt)
sessionsTime: []numbers
sessionsValue: []numbers
metadata: string
```
FlagEvent
```
- type: derived from poster tag or Event name
- userAddress: derived from sender
- createdAt: derived from timestamp
- metadata: string, from event, conditional.
- Sub-enity specific data