This repository has been archived by the owner on Jul 6, 2022. It is now read-only.
forked from Consensys/polymath-audit-report-2019-04
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathinheritance.dot
408 lines (407 loc) · 14.6 KB
/
inheritance.dot
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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
digraph G {
graph [ ratio = "auto", page = "40" ];
"FeatureRegistry";
"IFeatureRegistry";
"ReclaimTokens";
"Migrations";
"ModuleRegistry";
"IModuleRegistry";
"EternalStorage";
"Pausable";
"PolymathRegistry";
"Ownable";
"STRGetter";
"SecurityTokenRegistry";
"Proxy";
"DataStore";
"DataStoreStorage";
"IDataStore";
"DataStoreFactory";
"DataStoreProxy";
"OwnedProxy";
"IMedianizer";
"solcChecker";
"OraclizeI";
"OraclizeAddrResolverI";
"Buffer";
"CBOR";
"usingOraclize";
"SafeMath";
"PolyToken";
"IPoly";
"IBoot";
"ICheckPermission";
"IModule";
"IModuleFactory";
"IOracle";
"IOwnable";
"IPolymathRegistry";
"ISTFactory";
"ISTO";
"ISecurityToken";
"ISecurityTokenRegistry";
"ITransferManager";
"IUSDTieredSTOProxy";
"IUpgradableTokenFactory";
"IVoting";
"IERC1410";
"IERC1594";
"IERC1643";
"IERC1644";
"BokkyPooBahsDateTimeLibrary";
"DecimalMath";
"Encoder";
"KindMath";
"TokenLib";
"Util";
"VersionUtils";
"VolumeRestrictionLib";
"DummySTO";
"DummySTOStorage";
"STO";
"DummySTOFactory";
"UpgradableModuleFactory";
"DummySTOProxy";
"STOStorage";
"ModuleStorage";
"ReentrancyGuard";
"OwnedUpgradeabilityProxy";
"functionSigClash1";
"functionSigClash2";
"MockBurnFactory";
"TrackedRedemptionFactory";
"MockCountTransferManager";
"CountTransferManager";
"MockFactory";
"MockModuleRegistry";
"MockOracle";
"MockPolyOracle";
"PolyOracle";
"MockRedemptionManager";
"TrackedRedemption";
"MockSTGetter";
"STGetter";
"MockSecurityTokenLogic";
"SecurityToken";
"MockWrongTypeFactory";
"PolyTokenFaucet";
"SecurityTokenMock";
"SecurityTokenRegistryMock";
"TestSTOFactory";
"IBurn";
"DividendCheckpoint";
"DividendCheckpointStorage";
"ICheckpoint";
"Module";
"ERC20DividendCheckpoint";
"ERC20DividendCheckpointStorage";
"ERC20DividendCheckpointFactory";
"ERC20DividendCheckpointProxy";
"EtherDividendCheckpoint";
"EtherDividendCheckpointFactory";
"EtherDividendCheckpointProxy";
"PLCRVotingCheckpoint";
"PLCRVotingCheckpointStorage";
"VotingCheckpoint";
"PLCRVotingCheckpointFactory";
"PLCRVotingCheckpointProxy";
"VotingCheckpointStorage";
"WeightedVoteCheckpoint";
"WeightedVoteCheckpointStorage";
"WeightedVoteCheckpointFactory";
"WeightedVoteCheckpointProxy";
"ModuleFactory";
"ScheduledCheckpoint";
"TransferManager";
"ScheduledCheckpointFactory";
"KYCTransferManager";
"KYCTransferManagerFactory";
"SignedTransferManager";
"SignedTransferManagerFactory";
"GeneralPermissionManager";
"GeneralPermissionManagerStorage";
"IPermissionManager";
"GeneralPermissionManagerFactory";
"GeneralPermissionManagerProxy";
"CappedSTO";
"CappedSTOStorage";
"CappedSTOFactory";
"CappedSTOProxy";
"PreSaleSTO";
"PreSaleSTOStorage";
"PreSaleSTOFactory";
"PreSaleSTOProxy";
"USDTieredSTO";
"USDTieredSTOStorage";
"USDTieredSTOFactory";
"USDTieredSTOProxy";
"BlacklistTransferManager";
"BlacklistTransferManagerStorage";
"BlacklistTransferManagerFactory";
"BlacklistTransferManagerProxy";
"CountTransferManagerStorage";
"CountTransferManagerFactory";
"CountTransferManagerProxy";
"GeneralTransferManager";
"GeneralTransferManagerStorage";
"GeneralTransferManagerFactory";
"GeneralTransferManagerProxy";
"LockUpTransferManager";
"LockUpTransferManagerStorage";
"LockUpTransferManagerFactory";
"LockUpTransferManagerProxy";
"ManualApprovalTransferManager";
"ManualApprovalTransferManagerStorage";
"ManualApprovalTransferManagerFactory";
"ManualApprovalTransferManagerProxy";
"PercentageTransferManager";
"PercentageTransferManagerStorage";
"PercentageTransferManagerFactory";
"PercentageTransferManagerProxy";
"VolumeRestrictionTM";
"VolumeRestrictionTMStorage";
"VolumeRestrictionTMFactory";
"VolumeRestrictionTMProxy";
"VestingEscrowWallet";
"VestingEscrowWalletStorage";
"Wallet";
"VestingEscrowWalletFactory";
"VestingEscrowWalletProxy";
"MakerDAOOracle";
"StableOracle";
"ModuleRegistryProxy";
"UpgradeabilityProxy";
"SecurityTokenRegistryProxy";
"ISTOStorage";
"OZStorage";
"STFactory";
"SecurityTokenStorage";
"ERC20";
"SecurityTokenProxy";
"FeatureRegistry" -> "IFeatureRegistry";
"FeatureRegistry" -> "ReclaimTokens";
"ModuleRegistry" -> "IModuleRegistry";
"ModuleRegistry" -> "EternalStorage";
"PolymathRegistry" -> "ReclaimTokens";
"ReclaimTokens" -> "Ownable";
"STRGetter" -> "EternalStorage";
"SecurityTokenRegistry" -> "EternalStorage";
"SecurityTokenRegistry" -> "Proxy";
"DataStore" -> "DataStoreStorage";
"DataStore" -> "IDataStore";
"DataStoreProxy" -> "DataStoreStorage";
"DataStoreProxy" -> "OwnedProxy";
"PolyToken" -> "IPoly";
"DummySTO" -> "DummySTOStorage";
"DummySTO" -> "STO";
"DummySTOFactory" -> "UpgradableModuleFactory";
"DummySTOProxy" -> "DummySTOStorage";
"DummySTOProxy" -> "STOStorage";
"DummySTOProxy" -> "ModuleStorage";
"DummySTOProxy" -> "Pausable";
"DummySTOProxy" -> "ReentrancyGuard";
"DummySTOProxy" -> "OwnedUpgradeabilityProxy";
"MockBurnFactory" -> "TrackedRedemptionFactory";
"MockCountTransferManager" -> "CountTransferManager";
"MockFactory" -> "DummySTOFactory";
"MockModuleRegistry" -> "ModuleRegistry";
"MockOracle" -> "IOracle";
"MockPolyOracle" -> "PolyOracle";
"MockRedemptionManager" -> "TrackedRedemption";
"MockSTGetter" -> "STGetter";
"MockSecurityTokenLogic" -> "SecurityToken";
"MockWrongTypeFactory" -> "MockBurnFactory";
"SecurityTokenMock" -> "SecurityToken";
"SecurityTokenRegistryMock" -> "SecurityTokenRegistry";
"TestSTOFactory" -> "DummySTOFactory";
"DividendCheckpoint" -> "DividendCheckpointStorage";
"DividendCheckpoint" -> "ICheckpoint";
"DividendCheckpoint" -> "Module";
"ERC20DividendCheckpoint" -> "ERC20DividendCheckpointStorage";
"ERC20DividendCheckpoint" -> "DividendCheckpoint";
"ERC20DividendCheckpointFactory" -> "UpgradableModuleFactory";
"ERC20DividendCheckpointProxy" -> "ERC20DividendCheckpointStorage";
"ERC20DividendCheckpointProxy" -> "DividendCheckpointStorage";
"ERC20DividendCheckpointProxy" -> "ModuleStorage";
"ERC20DividendCheckpointProxy" -> "Pausable";
"ERC20DividendCheckpointProxy" -> "OwnedUpgradeabilityProxy";
"EtherDividendCheckpoint" -> "DividendCheckpoint";
"EtherDividendCheckpointFactory" -> "UpgradableModuleFactory";
"EtherDividendCheckpointProxy" -> "DividendCheckpointStorage";
"EtherDividendCheckpointProxy" -> "ModuleStorage";
"EtherDividendCheckpointProxy" -> "Pausable";
"EtherDividendCheckpointProxy" -> "OwnedUpgradeabilityProxy";
"PLCRVotingCheckpoint" -> "PLCRVotingCheckpointStorage";
"PLCRVotingCheckpoint" -> "VotingCheckpoint";
"PLCRVotingCheckpointFactory" -> "UpgradableModuleFactory";
"PLCRVotingCheckpointProxy" -> "PLCRVotingCheckpointStorage";
"PLCRVotingCheckpointProxy" -> "VotingCheckpointStorage";
"PLCRVotingCheckpointProxy" -> "ModuleStorage";
"PLCRVotingCheckpointProxy" -> "Pausable";
"PLCRVotingCheckpointProxy" -> "OwnedUpgradeabilityProxy";
"WeightedVoteCheckpoint" -> "WeightedVoteCheckpointStorage";
"WeightedVoteCheckpoint" -> "VotingCheckpoint";
"WeightedVoteCheckpointFactory" -> "UpgradableModuleFactory";
"WeightedVoteCheckpointProxy" -> "WeightedVoteCheckpointStorage";
"WeightedVoteCheckpointProxy" -> "VotingCheckpointStorage";
"WeightedVoteCheckpointProxy" -> "ModuleStorage";
"WeightedVoteCheckpointProxy" -> "Pausable";
"WeightedVoteCheckpointProxy" -> "OwnedUpgradeabilityProxy";
"VotingCheckpoint" -> "VotingCheckpointStorage";
"VotingCheckpoint" -> "ICheckpoint";
"VotingCheckpoint" -> "IVoting";
"VotingCheckpoint" -> "Module";
"TrackedRedemption" -> "IBurn";
"TrackedRedemption" -> "Module";
"TrackedRedemptionFactory" -> "ModuleFactory";
"ScheduledCheckpoint" -> "ICheckpoint";
"ScheduledCheckpoint" -> "TransferManager";
"ScheduledCheckpointFactory" -> "ModuleFactory";
"KYCTransferManager" -> "TransferManager";
"KYCTransferManagerFactory" -> "ModuleFactory";
"SignedTransferManager" -> "TransferManager";
"SignedTransferManagerFactory" -> "ModuleFactory";
"Module" -> "IModule";
"Module" -> "ModuleStorage";
"Module" -> "Pausable";
"ModuleFactory" -> "IModuleFactory";
"ModuleFactory" -> "Ownable";
"GeneralPermissionManager" -> "GeneralPermissionManagerStorage";
"GeneralPermissionManager" -> "IPermissionManager";
"GeneralPermissionManager" -> "Module";
"GeneralPermissionManagerFactory" -> "UpgradableModuleFactory";
"GeneralPermissionManagerProxy" -> "GeneralPermissionManagerStorage";
"GeneralPermissionManagerProxy" -> "ModuleStorage";
"GeneralPermissionManagerProxy" -> "Pausable";
"GeneralPermissionManagerProxy" -> "ReentrancyGuard";
"GeneralPermissionManagerProxy" -> "OwnedUpgradeabilityProxy";
"CappedSTO" -> "CappedSTOStorage";
"CappedSTO" -> "STO";
"CappedSTO" -> "ReentrancyGuard";
"CappedSTOFactory" -> "UpgradableModuleFactory";
"CappedSTOProxy" -> "CappedSTOStorage";
"CappedSTOProxy" -> "STOStorage";
"CappedSTOProxy" -> "ModuleStorage";
"CappedSTOProxy" -> "Pausable";
"CappedSTOProxy" -> "ReentrancyGuard";
"CappedSTOProxy" -> "OwnedUpgradeabilityProxy";
"PreSaleSTO" -> "PreSaleSTOStorage";
"PreSaleSTO" -> "STO";
"PreSaleSTOFactory" -> "UpgradableModuleFactory";
"PreSaleSTOProxy" -> "PreSaleSTOStorage";
"PreSaleSTOProxy" -> "STOStorage";
"PreSaleSTOProxy" -> "ModuleStorage";
"PreSaleSTOProxy" -> "Pausable";
"PreSaleSTOProxy" -> "ReentrancyGuard";
"PreSaleSTOProxy" -> "OwnedUpgradeabilityProxy";
"STO" -> "ISTO";
"STO" -> "STOStorage";
"STO" -> "Module";
"USDTieredSTO" -> "USDTieredSTOStorage";
"USDTieredSTO" -> "STO";
"USDTieredSTOFactory" -> "UpgradableModuleFactory";
"USDTieredSTOProxy" -> "USDTieredSTOStorage";
"USDTieredSTOProxy" -> "STOStorage";
"USDTieredSTOProxy" -> "ModuleStorage";
"USDTieredSTOProxy" -> "Pausable";
"USDTieredSTOProxy" -> "ReentrancyGuard";
"USDTieredSTOProxy" -> "OwnedUpgradeabilityProxy";
"BlacklistTransferManager" -> "BlacklistTransferManagerStorage";
"BlacklistTransferManager" -> "TransferManager";
"BlacklistTransferManagerFactory" -> "UpgradableModuleFactory";
"BlacklistTransferManagerProxy" -> "BlacklistTransferManagerStorage";
"BlacklistTransferManagerProxy" -> "ModuleStorage";
"BlacklistTransferManagerProxy" -> "Pausable";
"BlacklistTransferManagerProxy" -> "OwnedUpgradeabilityProxy";
"CountTransferManager" -> "CountTransferManagerStorage";
"CountTransferManager" -> "TransferManager";
"CountTransferManagerFactory" -> "UpgradableModuleFactory";
"CountTransferManagerProxy" -> "CountTransferManagerStorage";
"CountTransferManagerProxy" -> "ModuleStorage";
"CountTransferManagerProxy" -> "Pausable";
"CountTransferManagerProxy" -> "OwnedUpgradeabilityProxy";
"GeneralTransferManager" -> "GeneralTransferManagerStorage";
"GeneralTransferManager" -> "TransferManager";
"GeneralTransferManagerFactory" -> "UpgradableModuleFactory";
"GeneralTransferManagerProxy" -> "GeneralTransferManagerStorage";
"GeneralTransferManagerProxy" -> "ModuleStorage";
"GeneralTransferManagerProxy" -> "Pausable";
"GeneralTransferManagerProxy" -> "OwnedUpgradeabilityProxy";
"LockUpTransferManager" -> "LockUpTransferManagerStorage";
"LockUpTransferManager" -> "TransferManager";
"LockUpTransferManagerFactory" -> "UpgradableModuleFactory";
"LockUpTransferManagerProxy" -> "LockUpTransferManagerStorage";
"LockUpTransferManagerProxy" -> "ModuleStorage";
"LockUpTransferManagerProxy" -> "Pausable";
"LockUpTransferManagerProxy" -> "OwnedUpgradeabilityProxy";
"ManualApprovalTransferManager" -> "ManualApprovalTransferManagerStorage";
"ManualApprovalTransferManager" -> "TransferManager";
"ManualApprovalTransferManagerFactory" -> "UpgradableModuleFactory";
"ManualApprovalTransferManagerProxy" -> "ManualApprovalTransferManagerStorage";
"ManualApprovalTransferManagerProxy" -> "ModuleStorage";
"ManualApprovalTransferManagerProxy" -> "Pausable";
"ManualApprovalTransferManagerProxy" -> "OwnedUpgradeabilityProxy";
"PercentageTransferManager" -> "PercentageTransferManagerStorage";
"PercentageTransferManager" -> "TransferManager";
"PercentageTransferManagerFactory" -> "UpgradableModuleFactory";
"PercentageTransferManagerProxy" -> "PercentageTransferManagerStorage";
"PercentageTransferManagerProxy" -> "ModuleStorage";
"PercentageTransferManagerProxy" -> "Pausable";
"PercentageTransferManagerProxy" -> "OwnedUpgradeabilityProxy";
"TransferManager" -> "ITransferManager";
"TransferManager" -> "Module";
"VolumeRestrictionTM" -> "VolumeRestrictionTMStorage";
"VolumeRestrictionTM" -> "TransferManager";
"VolumeRestrictionTMFactory" -> "UpgradableModuleFactory";
"VolumeRestrictionTMProxy" -> "VolumeRestrictionTMStorage";
"VolumeRestrictionTMProxy" -> "ModuleStorage";
"VolumeRestrictionTMProxy" -> "Pausable";
"VolumeRestrictionTMProxy" -> "OwnedUpgradeabilityProxy";
"UpgradableModuleFactory" -> "ModuleFactory";
"VestingEscrowWallet" -> "VestingEscrowWalletStorage";
"VestingEscrowWallet" -> "Wallet";
"VestingEscrowWalletFactory" -> "UpgradableModuleFactory";
"VestingEscrowWalletProxy" -> "VestingEscrowWalletStorage";
"VestingEscrowWalletProxy" -> "ModuleStorage";
"VestingEscrowWalletProxy" -> "Pausable";
"VestingEscrowWalletProxy" -> "OwnedUpgradeabilityProxy";
"Wallet" -> "Module";
"MakerDAOOracle" -> "IOracle";
"MakerDAOOracle" -> "Ownable";
"PolyOracle" -> "usingOraclize";
"PolyOracle" -> "IOracle";
"PolyOracle" -> "Ownable";
"StableOracle" -> "IOracle";
"StableOracle" -> "Ownable";
"ModuleRegistryProxy" -> "EternalStorage";
"ModuleRegistryProxy" -> "OwnedUpgradeabilityProxy";
"OwnedProxy" -> "Proxy";
"OwnedUpgradeabilityProxy" -> "UpgradeabilityProxy";
"SecurityTokenRegistryProxy" -> "EternalStorage";
"SecurityTokenRegistryProxy" -> "OwnedUpgradeabilityProxy";
"UpgradeabilityProxy" -> "Proxy";
"STFactory" -> "ISTFactory";
"STFactory" -> "Ownable";
"STGetter" -> "OZStorage";
"STGetter" -> "SecurityTokenStorage";
"SecurityToken" -> "ERC20";
"SecurityToken" -> "ReentrancyGuard";
"SecurityToken" -> "SecurityTokenStorage";
"SecurityToken" -> "IERC1594";
"SecurityToken" -> "IERC1643";
"SecurityToken" -> "IERC1644";
"SecurityToken" -> "IERC1410";
"SecurityToken" -> "Proxy";
"SecurityTokenProxy" -> "OZStorage";
"SecurityTokenProxy" -> "SecurityTokenStorage";
"SecurityTokenProxy" -> "OwnedUpgradeabilityProxy";
"FeatureRegistry" -> "IFeatureRegistry";
"FeatureRegistry" -> "ReclaimTokens";
"ModuleRegistry" -> "IModuleRegistry";
"ModuleRegistry" -> "EternalStorage";
"PolymathRegistry" -> "ReclaimTokens";
"ReclaimTokens" -> "Ownable";
"STRGetter" -> "EternalStorage";
"SecurityTokenRegistry" -> "EternalStorage";
"SecurityTokenRegistry" -> "Proxy";
}