-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathuml.txt
105 lines (75 loc) · 1.42 KB
/
uml.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
@startuml
enum Status {
NULL
PENDING
REJECTED
VERIFIED
}
struct Submission {
status
verificationDate
index
}
abstract MainVerification {
verifiers
_submissions
_addSubmission(ipfs_cids)
activeVerifiers()
}
class PoHVerification {
proofOfHumanity
addSubmission(ipfs_cids)
}
interface IProofOfHumanity {
isRegistered(human)
}
class PoHProfilesBridge {}
class PoHProfilesBridge {}
class WorldIDVerification {
addSubmission(ipfs_cids, worldIDParams)
}
class WorldIDRegistry {
hashToAddress
addressToHash
_verify(params)
}
interface IWorldID {
verifyProof(params)
}
class WorldID {}
class GroupManager {
groupAdmins
createGroup(...)
updateGroupAdmin(...)
addMember(...)
removeMember(...)
}
class Semphora {}
class ProofToken {
mint(to, proof)
totalSupply()
tokenURI(tokenID)
}
class SBT {
override _transfer(from, to, id)
override approve(to, id)
override setApprovalForAll(operator, approved)
}
class OZAccessControl {}
class OZERC721 {}
MainVerification <|-d- PoHVerification
MainVerification <|-d- WorldIDVerification
WorldIDVerification -d-|> WorldIDRegistry
PoHVerification -d-> IProofOfHumanity
PoHProfilesBridge .u.|> IProofOfHumanity
WorldIDRegistry -d-> IWorldID
WorldID .u.|> IWorldID
MainVerification -r-> Submission
Submission -r-> Status
MainVerification --> GroupManager
MainVerification --> ProofToken
ProofToken --|> SBT
SBT --|> OZERC721
GroupManager --|> Semphora
OZAccessControl <|-- MainVerification
@enduml