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
/
oracles_graph.dot
178 lines (166 loc) · 10.1 KB
/
oracles_graph.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
digraph G {
graph [ ratio = "auto", page = "100", compound =true, bgcolor = "#2e3e56" ];
node [ style = "filled", fillcolor = "#edad56", color = "#edad56", penwidth =3 ];
edge [ color = "#fcfcfc", penwidth =2, fontname = "helvetica Neue Ultra Light" ];
subgraph "clusterMakerDAOOracle" {
graph [ label = "MakerDAOOracle", color = "#445773", fontcolor = "#f0f0f0", style = "rounded", bgcolor = "#445773" ];
"MakerDAOOracle.<Constructor>" [ label = "<Constructor>", color = "#FF9797", fillcolor = "#FF9797" ];
"MakerDAOOracle.changeMedianier" [ label = "changeMedianier", color = "#FF9797", fillcolor = "#FF9797" ];
"MakerDAOOracle.getCurrencyAddress" [ label = "getCurrencyAddress", color = "#ffbdb9", fillcolor = "#ffbdb9" ];
"MakerDAOOracle.getCurrencySymbol" [ label = "getCurrencySymbol", color = "#ffbdb9", fillcolor = "#ffbdb9" ];
"MakerDAOOracle.getCurrencyDenominated" [ label = "getCurrencyDenominated", color = "#ffbdb9", fillcolor = "#ffbdb9" ];
"MakerDAOOracle.getPrice" [ label = "getPrice", color = "#ffbdb9", fillcolor = "#ffbdb9" ];
"MakerDAOOracle.setManualPrice" [ label = "setManualPrice", color = "#FF9797", fillcolor = "#FF9797" ];
"MakerDAOOracle.setManualOverride" [ label = "setManualOverride", color = "#FF9797", fillcolor = "#FF9797" ];
}
subgraph "clusterPolyOracle" {
graph [ label = "PolyOracle", color = "#445773", fontcolor = "#f0f0f0", style = "rounded", bgcolor = "#445773" ];
"PolyOracle.isAdminOrOwner" [ label = "isAdminOrOwner", color = "#1bc6a6", shape =doubleoctagon ];
"PolyOracle.<Constructor>" [ label = "<Constructor>", color = "brown", fillcolor = "#FF9797" ];
"PolyOracle.__callback" [ label = "__callback", color = "#FF9797", fillcolor = "#FF9797" ];
"PolyOracle.schedulePriceUpdatesFixed" [ label = "schedulePriceUpdatesFixed", color = "brown", fillcolor = "#FF9797" ];
"PolyOracle.schedulePriceUpdatesRolling" [ label = "schedulePriceUpdatesRolling", color = "brown", fillcolor = "#FF9797" ];
"PolyOracle.setPOLYUSD" [ label = "setPOLYUSD", color = "#FF9797", fillcolor = "#FF9797" ];
"PolyOracle.setFreezeOracle" [ label = "setFreezeOracle", color = "#FF9797", fillcolor = "#FF9797" ];
"PolyOracle.setOracleURL" [ label = "setOracleURL", color = "#FF9797", fillcolor = "#FF9797" ];
"PolyOracle.setOracleQueryType" [ label = "setOracleQueryType", color = "#FF9797", fillcolor = "#FF9797" ];
"PolyOracle.setSanityBounds" [ label = "setSanityBounds", color = "#FF9797", fillcolor = "#FF9797" ];
"PolyOracle.setGasPrice" [ label = "setGasPrice", color = "#FF9797", fillcolor = "#FF9797" ];
"PolyOracle.getPriceAndTime" [ label = "getPriceAndTime", color = "#FF9797", fillcolor = "#FF9797" ];
"PolyOracle.setGasLimit" [ label = "setGasLimit", color = "#FF9797", fillcolor = "#FF9797" ];
"PolyOracle.setStaleTime" [ label = "setStaleTime", color = "#FF9797", fillcolor = "#FF9797" ];
"PolyOracle.setIgnoreRequestIds" [ label = "setIgnoreRequestIds", color = "#FF9797", fillcolor = "#FF9797" ];
"PolyOracle.setAdmin" [ label = "setAdmin", color = "#FF9797", fillcolor = "#FF9797" ];
"PolyOracle.setOraclizeTimeTolerance" [ label = "setOraclizeTimeTolerance", color = "#FF9797", fillcolor = "#FF9797" ];
"PolyOracle.getCurrencyAddress" [ label = "getCurrencyAddress", color = "#ffbdb9", fillcolor = "#ffbdb9" ];
"PolyOracle.getCurrencySymbol" [ label = "getCurrencySymbol", color = "#ffbdb9", fillcolor = "#ffbdb9" ];
"PolyOracle.getCurrencyDenominated" [ label = "getCurrencyDenominated", color = "#ffbdb9", fillcolor = "#ffbdb9" ];
"PolyOracle.getPrice" [ label = "getPrice", color = "#ffbdb9", fillcolor = "#ffbdb9" ];
"PolyOracle.drainContract" [ label = "drainContract", color = "#ffbdb9", fillcolor = "#ffbdb9" ];
"PolyOracle.owner" [ label = "owner" ];
"PolyOracle.oraclize_setCustomGasPrice" [ label = "oraclize_setCustomGasPrice" ];
"PolyOracle.oraclize_cbAddress" [ label = "oraclize_cbAddress" ];
"PolyOracle.parseInt" [ label = "parseInt" ];
"PolyOracle.oraclize_getPrice" [ label = "oraclize_getPrice" ];
"PolyOracle.oraclize_query" [ label = "oraclize_query" ];
}
subgraph "clusterStableOracle" {
graph [ label = "StableOracle", color = "#445773", fontcolor = "#f0f0f0", style = "rounded", bgcolor = "#445773" ];
"StableOracle.<Constructor>" [ label = "<Constructor>", color = "#FF9797", fillcolor = "#FF9797" ];
"StableOracle.changeOracle" [ label = "changeOracle", color = "#FF9797", fillcolor = "#FF9797" ];
"StableOracle.changeEvictPercentage" [ label = "changeEvictPercentage", color = "#FF9797", fillcolor = "#FF9797" ];
"StableOracle.getCurrencyAddress" [ label = "getCurrencyAddress", color = "#ffbdb9", fillcolor = "#ffbdb9" ];
"StableOracle.getCurrencySymbol" [ label = "getCurrencySymbol", color = "#ffbdb9", fillcolor = "#ffbdb9" ];
"StableOracle.getCurrencyDenominated" [ label = "getCurrencyDenominated", color = "#ffbdb9", fillcolor = "#ffbdb9" ];
"StableOracle.getPrice" [ label = "getPrice", color = "#ffbdb9", fillcolor = "#ffbdb9" ];
"StableOracle._change" [ label = "_change" ];
"StableOracle.setManualPrice" [ label = "setManualPrice", color = "#FF9797", fillcolor = "#FF9797" ];
"StableOracle.setManualOverride" [ label = "setManualOverride", color = "#FF9797", fillcolor = "#FF9797" ];
}
subgraph "clusterIMedianizer" {
graph [ label = "IMedianizer", color = "#e8726d", fontcolor = "#f0f0f0", style = "rounded,dashed", bgcolor = "#3b4b63" ];
"IMedianizer.peek" [ label = "peek" ];
}
subgraph "clusterPOLYUSD" {
graph [ label = "POLYUSD", color = "#e8726d", fontcolor = "#f0f0f0", style = "rounded,dashed", bgcolor = "#3b4b63" ];
"POLYUSD.mul" [ label = "mul" ];
"POLYUSD.add" [ label = "add" ];
"POLYUSD.sub" [ label = "sub" ];
}
subgraph "clusterIOracle" {
graph [ label = "IOracle", color = "#e8726d", fontcolor = "#f0f0f0", style = "rounded,dashed", bgcolor = "#3b4b63" ];
"IOracle.getCurrencyAddress" [ label = "getCurrencyAddress" ];
"IOracle.getCurrencySymbol" [ label = "getCurrencySymbol" ];
"IOracle.getCurrencyDenominated" [ label = "getCurrencyDenominated" ];
"IOracle.getPrice" [ label = "getPrice" ];
}
subgraph "cluster_newPrice" {
graph [ label = "_newPrice", color = "#e8726d", fontcolor = "#f0f0f0", style = "rounded,dashed", bgcolor = "#3b4b63" ];
"_newPrice.sub" [ label = "sub" ];
}
subgraph "cluster_oldPrice" {
graph [ label = "_oldPrice", color = "#e8726d", fontcolor = "#f0f0f0", style = "rounded,dashed", bgcolor = "#3b4b63" ];
"_oldPrice.sub" [ label = "sub" ];
}
subgraph "clusterdiff" {
graph [ label = "diff", color = "#e8726d", fontcolor = "#f0f0f0", style = "rounded,dashed", bgcolor = "#3b4b63" ];
"diff.mul" [ label = "mul" ];
}
"MakerDAOOracle.getPrice";
"IMedianizer.peek";
"PolyOracle.isAdminOrOwner";
"PolyOracle.owner";
"PolyOracle.null";
"PolyOracle.oraclize_setCustomGasPrice";
"PolyOracle.__callback";
"PolyOracle.oraclize_cbAddress";
"PolyOracle.parseInt";
"POLYUSD.mul";
"POLYUSD.add";
"POLYUSD.sub";
"PolyOracle.schedulePriceUpdatesFixed";
"PolyOracle.oraclize_getPrice";
"PolyOracle.oraclize_query";
"PolyOracle.schedulePriceUpdatesRolling";
"PolyOracle.setGasPrice";
"StableOracle.getCurrencyAddress";
"IOracle.getCurrencyAddress";
"StableOracle.getCurrencySymbol";
"IOracle.getCurrencySymbol";
"StableOracle.getCurrencyDenominated";
"IOracle.getCurrencyDenominated";
"StableOracle.getPrice";
"IOracle.getPrice";
"StableOracle._change";
"_newPrice.sub";
"_oldPrice.sub";
"diff.mul";
"MakerDAOOracle.getPrice" -> "IMedianizer.peek" [ color = "white" ];
"PolyOracle.isAdminOrOwner" -> "PolyOracle.owner" [ color = "#1bc6a6" ];
"PolyOracle.null" -> "PolyOracle.oraclize_setCustomGasPrice" [ color = "#1bc6a6" ];
"PolyOracle.__callback" -> "PolyOracle.oraclize_cbAddress" [ color = "#1bc6a6" ];
"PolyOracle.__callback" -> "PolyOracle.parseInt" [ color = "#1bc6a6" ];
"PolyOracle.__callback" -> "POLYUSD.mul" [ color = "white" ];
"PolyOracle.__callback" -> "POLYUSD.add" [ color = "white" ];
"PolyOracle.__callback" -> "POLYUSD.sub" [ color = "white" ];
"PolyOracle.schedulePriceUpdatesFixed" -> "PolyOracle.oraclize_getPrice" [ color = "#1bc6a6" ];
"PolyOracle.schedulePriceUpdatesFixed" -> "PolyOracle.oraclize_query" [ color = "#1bc6a6" ];
"PolyOracle.schedulePriceUpdatesFixed" -> "PolyOracle.oraclize_getPrice" [ color = "#1bc6a6" ];
"PolyOracle.schedulePriceUpdatesFixed" -> "PolyOracle.oraclize_query" [ color = "#1bc6a6" ];
"PolyOracle.schedulePriceUpdatesRolling" -> "PolyOracle.oraclize_getPrice" [ color = "#1bc6a6" ];
"PolyOracle.schedulePriceUpdatesRolling" -> "PolyOracle.oraclize_query" [ color = "#1bc6a6" ];
"PolyOracle.setGasPrice" -> "PolyOracle.oraclize_setCustomGasPrice" [ color = "#1bc6a6" ];
"StableOracle.getCurrencyAddress" -> "IOracle.getCurrencyAddress" [ color = "white" ];
"StableOracle.getCurrencySymbol" -> "IOracle.getCurrencySymbol" [ color = "white" ];
"StableOracle.getCurrencyDenominated" -> "IOracle.getCurrencyDenominated" [ color = "white" ];
"StableOracle.getPrice" -> "IOracle.getPrice" [ color = "white" ];
"StableOracle.getPrice" -> "StableOracle._change" [ color = "#1bc6a6" ];
"StableOracle._change" -> "_newPrice.sub" [ color = "white" ];
"StableOracle._change" -> "_oldPrice.sub" [ color = "white" ];
"StableOracle._change" -> "diff.mul" [ color = "white" ];
rankdir=LR
node [shape=plaintext]
subgraph cluster_01 {
label = "Legend";
key [label=<<table border="0" cellpadding="2" cellspacing="0" cellborder="0">
<tr><td align="right" port="i1">Internal Call</td></tr>
<tr><td align="right" port="i2">External Call</td></tr>
<tr><td align="right" port="i3">Defined Contract</td></tr>
<tr><td align="right" port="i4">Undefined Contract</td></tr>
</table>>]
key2 [label=<<table border="0" cellpadding="2" cellspacing="0" cellborder="0">
<tr><td port="i1"> </td></tr>
<tr><td port="i2"> </td></tr>
<tr><td port="i3" bgcolor="#445773"> </td></tr>
<tr><td port="i4">
<table border="1" cellborder="0" cellspacing="0" cellpadding="7" color="#e8726d">
<tr>
<td></td>
</tr>
</table>
</td></tr>
</table>>]
key:i1:e -> key2:i1:w [color="#1bc6a6"]
key:i2:e -> key2:i2:w [color="white"]
}
}