Smart Contract
AuditRegistry
A.56170a227a819c6e.AuditRegistry
1access(all)
2contract AuditRegistry {
3
4 // Event to be emitted when an audit is added
5 access(all) event AuditAdded(_contract: String, _id: UInt16, _score: Int8)
6
7 // Audit struct
8 access(all)
9 struct Audit {
10 access(all) var id: UInt16
11 access(all) var score: Int8
12 access(all) var timestamp: Int64
13 access(all) var auditor: Address
14 access(all) var reportHash: String
15
16 init(_id: UInt16, _score: Int8, _timestamp: Int64, _auditor: Address, _reportHash: String) {
17 self.id = _id
18 self.score = _score
19 self.timestamp = _timestamp
20 self.auditor = _auditor
21 self.reportHash = _reportHash
22 }
23 }
24
25 access(all) var audits: {String: [Audit]}
26
27 init() {
28 self.audits = {}
29 }
30
31 // Add audit to the audit registry
32 access(all) fun addAudit(_contract: String, _id: UInt16, _score: Int8, _timestamp: Int64, _auditor: Address, _reportHash: String) {
33 let audit = Audit(_id: _id, _score: _score, _timestamp: _timestamp, _auditor: _auditor, _reportHash: _reportHash)
34 self.audits[_contract] = self.audits[_contract] ?? []
35 self.audits[_contract]!.append(audit)
36 emit AuditAdded(_contract: _contract, _id: _id, _score: _score)
37 }
38
39 // Get audit from the audit registry
40 access(all) fun getAudit(_contract: String): [Audit]? {
41 return self.audits[_contract]
42 }
43}