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
/
modules_wallet_graph.dot
332 lines (314 loc) · 23.6 KB
/
modules_wallet_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
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
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 "clusterVestingEscrowWallet" {
graph [ label = "VestingEscrowWallet", color = "#445773", fontcolor = "#f0f0f0", style = "rounded", bgcolor = "#445773" ];
"VestingEscrowWallet.<Constructor>" [ label = "<Constructor>", color = "#FF9797", fillcolor = "#FF9797" ];
"VestingEscrowWallet.getInitFunction" [ label = "getInitFunction", color = "#FF9797", fillcolor = "#FF9797" ];
"VestingEscrowWallet.configure" [ label = "configure", color = "#FF9797", fillcolor = "#FF9797" ];
"VestingEscrowWallet.changeTreasuryWallet" [ label = "changeTreasuryWallet", color = "#FF9797", fillcolor = "#FF9797" ];
"VestingEscrowWallet._setWallet" [ label = "_setWallet", color = "#f2c383", fillcolor = "#f2c383" ];
"VestingEscrowWallet.depositTokens" [ label = "depositTokens", color = "#ffbdb9", fillcolor = "#ffbdb9" ];
"VestingEscrowWallet._depositTokens" [ label = "_depositTokens", color = "#f2c383", fillcolor = "#f2c383" ];
"VestingEscrowWallet.sendToTreasury" [ label = "sendToTreasury", color = "#FF9797", fillcolor = "#FF9797" ];
"VestingEscrowWallet.getTreasuryWallet" [ label = "getTreasuryWallet", color = "#FF9797", fillcolor = "#FF9797" ];
"VestingEscrowWallet.pushAvailableTokens" [ label = "pushAvailableTokens", color = "#FF9797", fillcolor = "#FF9797" ];
"VestingEscrowWallet.pullAvailableTokens" [ label = "pullAvailableTokens", color = "#ffbdb9", fillcolor = "#ffbdb9" ];
"VestingEscrowWallet.addTemplate" [ label = "addTemplate", color = "#ffbdb9", fillcolor = "#ffbdb9" ];
"VestingEscrowWallet._addTemplate" [ label = "_addTemplate", color = "#f2c383", fillcolor = "#f2c383" ];
"VestingEscrowWallet.removeTemplate" [ label = "removeTemplate", color = "#ffbdb9", fillcolor = "#ffbdb9" ];
"VestingEscrowWallet.getTemplateCount" [ label = "getTemplateCount", color = "#ffbdb9", fillcolor = "#ffbdb9" ];
"VestingEscrowWallet.getAllTemplateNames" [ label = "getAllTemplateNames", color = "#ffbdb9", fillcolor = "#ffbdb9" ];
"VestingEscrowWallet.addSchedule" [ label = "addSchedule", color = "#ffbdb9", fillcolor = "#ffbdb9" ];
"VestingEscrowWallet._addSchedule" [ label = "_addSchedule", color = "#f2c383", fillcolor = "#f2c383" ];
"VestingEscrowWallet.addScheduleFromTemplate" [ label = "addScheduleFromTemplate", color = "#ffbdb9", fillcolor = "#ffbdb9" ];
"VestingEscrowWallet._addScheduleFromTemplate" [ label = "_addScheduleFromTemplate", color = "#f2c383", fillcolor = "#f2c383" ];
"VestingEscrowWallet.modifySchedule" [ label = "modifySchedule", color = "#ffbdb9", fillcolor = "#ffbdb9" ];
"VestingEscrowWallet._modifySchedule" [ label = "_modifySchedule", color = "#f2c383", fillcolor = "#f2c383" ];
"VestingEscrowWallet.revokeSchedule" [ label = "revokeSchedule", color = "#ffbdb9", fillcolor = "#ffbdb9" ];
"VestingEscrowWallet._deleteUserToTemplates" [ label = "_deleteUserToTemplates", color = "#f2c383", fillcolor = "#f2c383" ];
"VestingEscrowWallet._deleteTemplateToUsers" [ label = "_deleteTemplateToUsers", color = "#f2c383", fillcolor = "#f2c383" ];
"VestingEscrowWallet.revokeAllSchedules" [ label = "revokeAllSchedules", color = "#FF9797", fillcolor = "#FF9797" ];
"VestingEscrowWallet._revokeAllSchedules" [ label = "_revokeAllSchedules", color = "#f2c383", fillcolor = "#f2c383" ];
"VestingEscrowWallet.getSchedule" [ label = "getSchedule", color = "#ffbdb9", fillcolor = "#ffbdb9" ];
"VestingEscrowWallet._getScheduleState" [ label = "_getScheduleState", color = "#f2c383", fillcolor = "#f2c383" ];
"VestingEscrowWallet.getTemplateNames" [ label = "getTemplateNames", color = "#ffbdb9", fillcolor = "#ffbdb9" ];
"VestingEscrowWallet.getScheduleCount" [ label = "getScheduleCount", color = "#ffbdb9", fillcolor = "#ffbdb9" ];
"VestingEscrowWallet._getAvailableTokens" [ label = "_getAvailableTokens", color = "#f2c383", fillcolor = "#f2c383" ];
"VestingEscrowWallet._getReleasedTokens" [ label = "_getReleasedTokens", color = "#f2c383", fillcolor = "#f2c383" ];
"VestingEscrowWallet.pushAvailableTokensMulti" [ label = "pushAvailableTokensMulti", color = "#FF9797", fillcolor = "#FF9797" ];
"VestingEscrowWallet.addScheduleMulti" [ label = "addScheduleMulti", color = "#FF9797", fillcolor = "#FF9797" ];
"VestingEscrowWallet.addScheduleFromTemplateMulti" [ label = "addScheduleFromTemplateMulti", color = "#FF9797", fillcolor = "#FF9797" ];
"VestingEscrowWallet.revokeSchedulesMulti" [ label = "revokeSchedulesMulti", color = "#FF9797", fillcolor = "#FF9797" ];
"VestingEscrowWallet.modifyScheduleMulti" [ label = "modifyScheduleMulti", color = "#FF9797", fillcolor = "#FF9797" ];
"VestingEscrowWallet._checkSchedule" [ label = "_checkSchedule", color = "#f2c383", fillcolor = "#f2c383" ];
"VestingEscrowWallet._isTemplateExists" [ label = "_isTemplateExists", color = "#f2c383", fillcolor = "#f2c383" ];
"VestingEscrowWallet._validateTemplate" [ label = "_validateTemplate", color = "#f2c383", fillcolor = "#f2c383" ];
"VestingEscrowWallet._sendTokens" [ label = "_sendTokens", color = "#f2c383", fillcolor = "#f2c383" ];
"VestingEscrowWallet._sendTokensPerSchedule" [ label = "_sendTokensPerSchedule", color = "#f2c383", fillcolor = "#f2c383" ];
"VestingEscrowWallet.getPermissions" [ label = "getPermissions", color = "#FF9797", fillcolor = "#FF9797" ];
"VestingEscrowWallet._onlySecurityTokenOwner" [ label = "_onlySecurityTokenOwner" ];
"VestingEscrowWallet.getDataStore" [ label = "getDataStore" ];
}
subgraph "clusterVestingEscrowWalletFactory" {
graph [ label = "VestingEscrowWalletFactory", color = "#445773", fontcolor = "#f0f0f0", style = "rounded", bgcolor = "#445773" ];
"VestingEscrowWalletFactory.<Constructor>" [ label = "<Constructor>", color = "#FF9797", fillcolor = "#FF9797" ];
"VestingEscrowWalletFactory.deploy" [ label = "deploy", color = "#ffbdb9", fillcolor = "#ffbdb9" ];
"VestingEscrowWalletFactory._initializeModule" [ label = "_initializeModule" ];
}
subgraph "clusterVestingEscrowWalletProxy" {
graph [ label = "VestingEscrowWalletProxy", color = "#445773", fontcolor = "#f0f0f0", style = "rounded", bgcolor = "#445773" ];
"VestingEscrowWalletProxy.<Constructor>" [ label = "<Constructor>", color = "#FF9797", fillcolor = "#FF9797" ];
"VestingEscrowWalletProxy._upgradeTo" [ label = "_upgradeTo" ];
}
subgraph "clusterVestingEscrowWalletStorage" {
graph [ label = "VestingEscrowWalletStorage", color = "#445773", fontcolor = "#f0f0f0", style = "rounded", bgcolor = "#445773" ];
}
subgraph "clusterWallet" {
graph [ label = "Wallet", color = "#445773", fontcolor = "#f0f0f0", style = "rounded", bgcolor = "#445773" ];
}
subgraph "clusterISecurityToken" {
graph [ label = "ISecurityToken", color = "#e8726d", fontcolor = "#f0f0f0", style = "rounded,dashed", bgcolor = "#3b4b63" ];
"ISecurityToken.transferFrom" [ label = "transferFrom" ];
"ISecurityToken.transfer" [ label = "transfer" ];
"ISecurityToken.granularity" [ label = "granularity" ];
}
subgraph "clusterunassignedTokens" {
graph [ label = "unassignedTokens", color = "#e8726d", fontcolor = "#f0f0f0", style = "rounded,dashed", bgcolor = "#3b4b63" ];
"unassignedTokens.add" [ label = "add" ];
"unassignedTokens.sub" [ label = "sub" ];
}
subgraph "clusterIDataStore" {
graph [ label = "IDataStore", color = "#e8726d", fontcolor = "#f0f0f0", style = "rounded,dashed", bgcolor = "#3b4b63" ];
"IDataStore.getAddress" [ label = "getAddress" ];
}
subgraph "clusternumberOfTokens" {
graph [ label = "numberOfTokens", color = "#e8726d", fontcolor = "#f0f0f0", style = "rounded,dashed", bgcolor = "#3b4b63" ];
"numberOfTokens.sub" [ label = "sub" ];
}
subgraph "clusterreleasedTokens" {
graph [ label = "releasedTokens", color = "#e8726d", fontcolor = "#f0f0f0", style = "rounded,dashed", bgcolor = "#3b4b63" ];
"releasedTokens.sub" [ label = "sub" ];
}
subgraph "clusternow" {
graph [ label = "now", color = "#e8726d", fontcolor = "#f0f0f0", style = "rounded,dashed", bgcolor = "#3b4b63" ];
"now.sub" [ label = "sub" ];
}
subgraph "cluster_duration" {
graph [ label = "_duration", color = "#e8726d", fontcolor = "#f0f0f0", style = "rounded,dashed", bgcolor = "#3b4b63" ];
"_duration.div" [ label = "div" ];
}
subgraph "cluster_numberOfTokens" {
graph [ label = "_numberOfTokens", color = "#e8726d", fontcolor = "#f0f0f0", style = "rounded,dashed", bgcolor = "#3b4b63" ];
"_numberOfTokens.div" [ label = "div" ];
}
subgraph "clusterVersionUtils" {
graph [ label = "VersionUtils", color = "#e8726d", fontcolor = "#f0f0f0", style = "rounded,dashed", bgcolor = "#3b4b63" ];
"VersionUtils.pack" [ label = "pack" ];
}
subgraph "clusterIPolymathRegistry" {
graph [ label = "IPolymathRegistry", color = "#e8726d", fontcolor = "#f0f0f0", style = "rounded,dashed", bgcolor = "#3b4b63" ];
"IPolymathRegistry.getAddress" [ label = "getAddress" ];
}
"VestingEscrowWallet.configure";
"VestingEscrowWallet._setWallet";
"VestingEscrowWallet.changeTreasuryWallet";
"VestingEscrowWallet._onlySecurityTokenOwner";
"VestingEscrowWallet.depositTokens";
"VestingEscrowWallet._depositTokens";
"ISecurityToken.transferFrom";
"unassignedTokens.add";
"VestingEscrowWallet.sendToTreasury";
"ISecurityToken.transfer";
"VestingEscrowWallet.getTreasuryWallet";
"IDataStore.getAddress";
"VestingEscrowWallet.getDataStore";
"VestingEscrowWallet.pushAvailableTokens";
"VestingEscrowWallet._sendTokens";
"VestingEscrowWallet.pullAvailableTokens";
"VestingEscrowWallet.addTemplate";
"VestingEscrowWallet._addTemplate";
"VestingEscrowWallet._isTemplateExists";
"VestingEscrowWallet._validateTemplate";
"VestingEscrowWallet.removeTemplate";
"VestingEscrowWallet.addSchedule";
"VestingEscrowWallet._addSchedule";
"VestingEscrowWallet._addScheduleFromTemplate";
"VestingEscrowWallet.addScheduleFromTemplate";
"numberOfTokens.sub";
"unassignedTokens.sub";
"VestingEscrowWallet.modifySchedule";
"VestingEscrowWallet._modifySchedule";
"VestingEscrowWallet._checkSchedule";
"VestingEscrowWallet.revokeSchedule";
"VestingEscrowWallet._sendTokensPerSchedule";
"VestingEscrowWallet._getReleasedTokens";
"VestingEscrowWallet._deleteUserToTemplates";
"VestingEscrowWallet._deleteTemplateToUsers";
"VestingEscrowWallet.revokeAllSchedules";
"VestingEscrowWallet._revokeAllSchedules";
"VestingEscrowWallet.getSchedule";
"VestingEscrowWallet._getScheduleState";
"VestingEscrowWallet._getAvailableTokens";
"releasedTokens.sub";
"now.sub";
"VestingEscrowWallet.pushAvailableTokensMulti";
"VestingEscrowWallet.addScheduleMulti";
"VestingEscrowWallet.addScheduleFromTemplateMulti";
"VestingEscrowWallet.revokeSchedulesMulti";
"VestingEscrowWallet.modifyScheduleMulti";
"_duration.div";
"_numberOfTokens.div";
"ISecurityToken.granularity";
"VestingEscrowWalletFactory.null";
"VersionUtils.pack";
"VestingEscrowWalletFactory.deploy";
"IPolymathRegistry.getAddress";
"VestingEscrowWalletFactory._initializeModule";
"VestingEscrowWalletProxy.null";
"VestingEscrowWalletProxy._upgradeTo";
"VestingEscrowWallet.configure" -> "VestingEscrowWallet._setWallet" [ color = "#1bc6a6" ];
"VestingEscrowWallet.changeTreasuryWallet" -> "VestingEscrowWallet._onlySecurityTokenOwner" [ color = "#1bc6a6" ];
"VestingEscrowWallet.changeTreasuryWallet" -> "VestingEscrowWallet._setWallet" [ color = "#1bc6a6" ];
"VestingEscrowWallet.depositTokens" -> "VestingEscrowWallet._depositTokens" [ color = "#1bc6a6" ];
"VestingEscrowWallet._depositTokens" -> "ISecurityToken.transferFrom" [ color = "white" ];
"VestingEscrowWallet._depositTokens" -> "unassignedTokens.add" [ color = "white" ];
"VestingEscrowWallet.sendToTreasury" -> "ISecurityToken.transfer" [ color = "white" ];
"VestingEscrowWallet.sendToTreasury" -> "VestingEscrowWallet.getTreasuryWallet" [ color = "#1bc6a6" ];
"VestingEscrowWallet.getTreasuryWallet" -> "IDataStore.getAddress" [ color = "white" ];
"VestingEscrowWallet.getTreasuryWallet" -> "VestingEscrowWallet.getDataStore" [ color = "#1bc6a6" ];
"VestingEscrowWallet.pushAvailableTokens" -> "VestingEscrowWallet._sendTokens" [ color = "#1bc6a6" ];
"VestingEscrowWallet.pullAvailableTokens" -> "VestingEscrowWallet._sendTokens" [ color = "#1bc6a6" ];
"VestingEscrowWallet.addTemplate" -> "VestingEscrowWallet._addTemplate" [ color = "#1bc6a6" ];
"VestingEscrowWallet._addTemplate" -> "VestingEscrowWallet._isTemplateExists" [ color = "#1bc6a6" ];
"VestingEscrowWallet._addTemplate" -> "VestingEscrowWallet._validateTemplate" [ color = "#1bc6a6" ];
"VestingEscrowWallet.removeTemplate" -> "VestingEscrowWallet._isTemplateExists" [ color = "#1bc6a6" ];
"VestingEscrowWallet.addSchedule" -> "VestingEscrowWallet._addSchedule" [ color = "#1bc6a6" ];
"VestingEscrowWallet._addSchedule" -> "VestingEscrowWallet._addTemplate" [ color = "#1bc6a6" ];
"VestingEscrowWallet._addSchedule" -> "VestingEscrowWallet._addScheduleFromTemplate" [ color = "#1bc6a6" ];
"VestingEscrowWallet.addScheduleFromTemplate" -> "VestingEscrowWallet._addScheduleFromTemplate" [ color = "#1bc6a6" ];
"VestingEscrowWallet._addScheduleFromTemplate" -> "VestingEscrowWallet._isTemplateExists" [ color = "#1bc6a6" ];
"VestingEscrowWallet._addScheduleFromTemplate" -> "VestingEscrowWallet._depositTokens" [ color = "#1bc6a6" ];
"VestingEscrowWallet._addScheduleFromTemplate" -> "numberOfTokens.sub" [ color = "white" ];
"VestingEscrowWallet._addScheduleFromTemplate" -> "unassignedTokens.sub" [ color = "white" ];
"VestingEscrowWallet.modifySchedule" -> "VestingEscrowWallet._modifySchedule" [ color = "#1bc6a6" ];
"VestingEscrowWallet._modifySchedule" -> "VestingEscrowWallet._checkSchedule" [ color = "#1bc6a6" ];
"VestingEscrowWallet.revokeSchedule" -> "VestingEscrowWallet._checkSchedule" [ color = "#1bc6a6" ];
"VestingEscrowWallet.revokeSchedule" -> "VestingEscrowWallet._sendTokensPerSchedule" [ color = "#1bc6a6" ];
"VestingEscrowWallet.revokeSchedule" -> "VestingEscrowWallet._getReleasedTokens" [ color = "#1bc6a6" ];
"VestingEscrowWallet.revokeSchedule" -> "unassignedTokens.add" [ color = "white" ];
"VestingEscrowWallet.revokeSchedule" -> "VestingEscrowWallet._deleteUserToTemplates" [ color = "#1bc6a6" ];
"VestingEscrowWallet.revokeSchedule" -> "VestingEscrowWallet._deleteTemplateToUsers" [ color = "#1bc6a6" ];
"VestingEscrowWallet.revokeAllSchedules" -> "VestingEscrowWallet._revokeAllSchedules" [ color = "#1bc6a6" ];
"VestingEscrowWallet._revokeAllSchedules" -> "VestingEscrowWallet._sendTokens" [ color = "#1bc6a6" ];
"VestingEscrowWallet._revokeAllSchedules" -> "VestingEscrowWallet._getReleasedTokens" [ color = "#1bc6a6" ];
"VestingEscrowWallet._revokeAllSchedules" -> "unassignedTokens.add" [ color = "white" ];
"VestingEscrowWallet._revokeAllSchedules" -> "VestingEscrowWallet._deleteTemplateToUsers" [ color = "#1bc6a6" ];
"VestingEscrowWallet.getSchedule" -> "VestingEscrowWallet._checkSchedule" [ color = "#1bc6a6" ];
"VestingEscrowWallet.getSchedule" -> "VestingEscrowWallet._getScheduleState" [ color = "#1bc6a6" ];
"VestingEscrowWallet._getScheduleState" -> "VestingEscrowWallet._checkSchedule" [ color = "#1bc6a6" ];
"VestingEscrowWallet._getAvailableTokens" -> "VestingEscrowWallet._getReleasedTokens" [ color = "#1bc6a6" ];
"VestingEscrowWallet._getAvailableTokens" -> "releasedTokens.sub" [ color = "white" ];
"VestingEscrowWallet._getReleasedTokens" -> "now.sub" [ color = "white" ];
"VestingEscrowWallet.pushAvailableTokensMulti" -> "VestingEscrowWallet.pushAvailableTokens" [ color = "#1bc6a6" ];
"VestingEscrowWallet.addScheduleMulti" -> "VestingEscrowWallet._addSchedule" [ color = "#1bc6a6" ];
"VestingEscrowWallet.addScheduleFromTemplateMulti" -> "VestingEscrowWallet._addScheduleFromTemplate" [ color = "#1bc6a6" ];
"VestingEscrowWallet.revokeSchedulesMulti" -> "VestingEscrowWallet._revokeAllSchedules" [ color = "#1bc6a6" ];
"VestingEscrowWallet.modifyScheduleMulti" -> "VestingEscrowWallet._modifySchedule" [ color = "#1bc6a6" ];
"VestingEscrowWallet._validateTemplate" -> "_duration.div" [ color = "white" ];
"VestingEscrowWallet._validateTemplate" -> "_numberOfTokens.div" [ color = "white" ];
"VestingEscrowWallet._validateTemplate" -> "ISecurityToken.granularity" [ color = "white" ];
"VestingEscrowWallet._sendTokens" -> "VestingEscrowWallet._sendTokensPerSchedule" [ color = "#1bc6a6" ];
"VestingEscrowWallet._sendTokensPerSchedule" -> "VestingEscrowWallet._getAvailableTokens" [ color = "#1bc6a6" ];
"VestingEscrowWallet._sendTokensPerSchedule" -> "ISecurityToken.transfer" [ color = "white" ];
"VestingEscrowWalletFactory.null" -> "VersionUtils.pack" [ color = "white" ];
"VestingEscrowWalletFactory.null" -> "VersionUtils.pack" [ color = "white" ];
"VestingEscrowWalletFactory.deploy" -> "IPolymathRegistry.getAddress" [ color = "white" ];
"VestingEscrowWalletFactory.deploy" -> "VestingEscrowWalletFactory._initializeModule" [ color = "#1bc6a6" ];
"VestingEscrowWalletProxy.null" -> "VestingEscrowWalletProxy._upgradeTo" [ color = "#1bc6a6" ];
"VestingEscrowWallet.configure" -> "VestingEscrowWallet._setWallet" [ color = "#1bc6a6" ];
"VestingEscrowWallet.changeTreasuryWallet" -> "VestingEscrowWallet._onlySecurityTokenOwner" [ color = "#1bc6a6" ];
"VestingEscrowWallet.changeTreasuryWallet" -> "VestingEscrowWallet._setWallet" [ color = "#1bc6a6" ];
"VestingEscrowWallet.depositTokens" -> "VestingEscrowWallet._depositTokens" [ color = "#1bc6a6" ];
"VestingEscrowWallet._depositTokens" -> "ISecurityToken.transferFrom" [ color = "white" ];
"VestingEscrowWallet._depositTokens" -> "unassignedTokens.add" [ color = "white" ];
"VestingEscrowWallet.sendToTreasury" -> "ISecurityToken.transfer" [ color = "white" ];
"VestingEscrowWallet.sendToTreasury" -> "VestingEscrowWallet.getTreasuryWallet" [ color = "#1bc6a6" ];
"VestingEscrowWallet.getTreasuryWallet" -> "IDataStore.getAddress" [ color = "white" ];
"VestingEscrowWallet.getTreasuryWallet" -> "VestingEscrowWallet.getDataStore" [ color = "#1bc6a6" ];
"VestingEscrowWallet.pushAvailableTokens" -> "VestingEscrowWallet._sendTokens" [ color = "#1bc6a6" ];
"VestingEscrowWallet.pullAvailableTokens" -> "VestingEscrowWallet._sendTokens" [ color = "#1bc6a6" ];
"VestingEscrowWallet.addTemplate" -> "VestingEscrowWallet._addTemplate" [ color = "#1bc6a6" ];
"VestingEscrowWallet._addTemplate" -> "VestingEscrowWallet._isTemplateExists" [ color = "#1bc6a6" ];
"VestingEscrowWallet._addTemplate" -> "VestingEscrowWallet._validateTemplate" [ color = "#1bc6a6" ];
"VestingEscrowWallet.removeTemplate" -> "VestingEscrowWallet._isTemplateExists" [ color = "#1bc6a6" ];
"VestingEscrowWallet.addSchedule" -> "VestingEscrowWallet._addSchedule" [ color = "#1bc6a6" ];
"VestingEscrowWallet._addSchedule" -> "VestingEscrowWallet._addTemplate" [ color = "#1bc6a6" ];
"VestingEscrowWallet._addSchedule" -> "VestingEscrowWallet._addScheduleFromTemplate" [ color = "#1bc6a6" ];
"VestingEscrowWallet.addScheduleFromTemplate" -> "VestingEscrowWallet._addScheduleFromTemplate" [ color = "#1bc6a6" ];
"VestingEscrowWallet._addScheduleFromTemplate" -> "VestingEscrowWallet._isTemplateExists" [ color = "#1bc6a6" ];
"VestingEscrowWallet._addScheduleFromTemplate" -> "VestingEscrowWallet._depositTokens" [ color = "#1bc6a6" ];
"VestingEscrowWallet._addScheduleFromTemplate" -> "numberOfTokens.sub" [ color = "white" ];
"VestingEscrowWallet._addScheduleFromTemplate" -> "unassignedTokens.sub" [ color = "white" ];
"VestingEscrowWallet.modifySchedule" -> "VestingEscrowWallet._modifySchedule" [ color = "#1bc6a6" ];
"VestingEscrowWallet._modifySchedule" -> "VestingEscrowWallet._checkSchedule" [ color = "#1bc6a6" ];
"VestingEscrowWallet.revokeSchedule" -> "VestingEscrowWallet._checkSchedule" [ color = "#1bc6a6" ];
"VestingEscrowWallet.revokeSchedule" -> "VestingEscrowWallet._sendTokensPerSchedule" [ color = "#1bc6a6" ];
"VestingEscrowWallet.revokeSchedule" -> "VestingEscrowWallet._getReleasedTokens" [ color = "#1bc6a6" ];
"VestingEscrowWallet.revokeSchedule" -> "unassignedTokens.add" [ color = "white" ];
"VestingEscrowWallet.revokeSchedule" -> "VestingEscrowWallet._deleteUserToTemplates" [ color = "#1bc6a6" ];
"VestingEscrowWallet.revokeSchedule" -> "VestingEscrowWallet._deleteTemplateToUsers" [ color = "#1bc6a6" ];
"VestingEscrowWallet.revokeAllSchedules" -> "VestingEscrowWallet._revokeAllSchedules" [ color = "#1bc6a6" ];
"VestingEscrowWallet._revokeAllSchedules" -> "VestingEscrowWallet._sendTokens" [ color = "#1bc6a6" ];
"VestingEscrowWallet._revokeAllSchedules" -> "VestingEscrowWallet._getReleasedTokens" [ color = "#1bc6a6" ];
"VestingEscrowWallet._revokeAllSchedules" -> "unassignedTokens.add" [ color = "white" ];
"VestingEscrowWallet._revokeAllSchedules" -> "VestingEscrowWallet._deleteTemplateToUsers" [ color = "#1bc6a6" ];
"VestingEscrowWallet.getSchedule" -> "VestingEscrowWallet._checkSchedule" [ color = "#1bc6a6" ];
"VestingEscrowWallet.getSchedule" -> "VestingEscrowWallet._getScheduleState" [ color = "#1bc6a6" ];
"VestingEscrowWallet._getScheduleState" -> "VestingEscrowWallet._checkSchedule" [ color = "#1bc6a6" ];
"VestingEscrowWallet._getAvailableTokens" -> "VestingEscrowWallet._getReleasedTokens" [ color = "#1bc6a6" ];
"VestingEscrowWallet._getAvailableTokens" -> "releasedTokens.sub" [ color = "white" ];
"VestingEscrowWallet._getReleasedTokens" -> "now.sub" [ color = "white" ];
"VestingEscrowWallet.pushAvailableTokensMulti" -> "VestingEscrowWallet.pushAvailableTokens" [ color = "#1bc6a6" ];
"VestingEscrowWallet.addScheduleMulti" -> "VestingEscrowWallet._addSchedule" [ color = "#1bc6a6" ];
"VestingEscrowWallet.addScheduleFromTemplateMulti" -> "VestingEscrowWallet._addScheduleFromTemplate" [ color = "#1bc6a6" ];
"VestingEscrowWallet.revokeSchedulesMulti" -> "VestingEscrowWallet._revokeAllSchedules" [ color = "#1bc6a6" ];
"VestingEscrowWallet.modifyScheduleMulti" -> "VestingEscrowWallet._modifySchedule" [ color = "#1bc6a6" ];
"VestingEscrowWallet._validateTemplate" -> "_duration.div" [ color = "white" ];
"VestingEscrowWallet._validateTemplate" -> "_numberOfTokens.div" [ color = "white" ];
"VestingEscrowWallet._validateTemplate" -> "ISecurityToken.granularity" [ color = "white" ];
"VestingEscrowWallet._sendTokens" -> "VestingEscrowWallet._sendTokensPerSchedule" [ color = "#1bc6a6" ];
"VestingEscrowWallet._sendTokensPerSchedule" -> "VestingEscrowWallet._getAvailableTokens" [ color = "#1bc6a6" ];
"VestingEscrowWallet._sendTokensPerSchedule" -> "ISecurityToken.transfer" [ color = "white" ];
"VestingEscrowWalletFactory.null" -> "VersionUtils.pack" [ color = "white" ];
"VestingEscrowWalletFactory.null" -> "VersionUtils.pack" [ color = "white" ];
"VestingEscrowWalletFactory.deploy" -> "IPolymathRegistry.getAddress" [ color = "white" ];
"VestingEscrowWalletFactory.deploy" -> "VestingEscrowWalletFactory._initializeModule" [ color = "#1bc6a6" ];
"VestingEscrowWalletProxy.null" -> "VestingEscrowWalletProxy._upgradeTo" [ color = "#1bc6a6" ];
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"]
}
}