BCD

Tezos Contract Explorer
Search Networks Deploy
  • Home
  • /
  • Mainnet
  • /
  • KT1FEHJ...jLay
operations (68)Storage Code Interact Tokens Fork Statistics Details
Latest
​x
377
 
1
parameter (or
2
            (or
3
              (pair %createVotingPeriod (pair (nat %votingPeriod) (nat %startLevel))
4
                                        (pair (nat %endLevel)
5
                                              (map %delegators address nat)))
6
              (set %updateManagers address))
7
            (or
8
              (pair %updateVotingParams (pair (nat %votingPeriod) (nat %startLevel))
9
                                        (pair (nat %endLevel)
10
                                              (map %delegators address nat)))
11
              (pair %vote (nat %votingPeriod) (or %votingValue (unit %nay) (unit %yea)))));
12
storage (pair (set %managers address)
13
              (big_map %votes nat
14
                              (pair
15
                                (pair (map %ballots address string)
16
                                      (pair %params
17
                                        (pair (map %delegators address nat) (nat %end))
18
                                        (nat %start)))
19
                                (map %results string (pair (nat %count) (nat %weight))))));
20
code { DUP ;
21
       CDR ;
22
       PUSH mutez 0 ;
23
       AMOUNT ;
24
       COMPARE ;
25
       NEQ ;
26
       IF
27
         { DROP 2 ; PUSH string "This contract does not accept tez" ; FAILWITH }
28
         { SWAP ;
29
           CAR ;
30
           IF_LEFT
31
             { IF_LEFT
32
                 { DUP ;
33
                   CDR ;
34
                   CDR ;
35
                   SWAP ;
36
                   DUP ;
37
                   DUG 2 ;
38
                   CDR ;
39
                   CAR ;
40
                   DUP 3 ;
41
                   CAR ;
42
                   CDR ;
43
                   PAIR ;
44
                   DIG 2 ;
45
                   CAR ;
46
                   CAR ;
47
                   DIG 3 ;
48
                   PAIR ;
49
                   PAIR ;
50
                   PAIR ;
51
                   DUP ;
52
                   CAR ;
53
                   CAR ;
54
                   CAR ;
55
                   SWAP ;
56
                   DUP ;
57
                   DUG 2 ;
58
                   CAR ;
59
                   CAR ;
60
                   CDR ;
61
                   PUSH bool True ;
62
                   DUP 3 ;
63
                   CAR ;
64
                   SENDER ;
65
                   MEM ;
66
                   COMPARE ;
67
                   NEQ ;
68
                   IF
69
                     { DROP 3 ;
70
                       PUSH string "Only managers are allowed to perform this operation" ;
71
                       FAILWITH }
72
                     { SWAP ;
73
                       DUP ;
74
                       DUG 2 ;
75
                       CDR ;
76
                       SWAP ;
77
                       DUP ;
78
                       DUG 2 ;
79
                       GET ;
80
                       IF_NONE
81
                         {}
82
                         { DROP ;
83
                           PUSH string "Voting period aleady configured for the provided period" ;
84
                           FAILWITH } ;
85
                       SWAP ;
86
                       DUP ;
87
                       DUG 2 ;
88
                       CDR ;
89
                       EMPTY_MAP string (pair nat nat) ;
90
                       PUSH nat 0 ;
91
                       PUSH nat 0 ;
92
                       PAIR ;
93
                       SOME ;
94
                       PUSH string "yea" ;
95
                       UPDATE ;
96
                       PUSH nat 0 ;
97
                       PUSH nat 0 ;
98
                       PAIR ;
99
                       SOME ;
100
                       PUSH string "total" ;
101
                       UPDATE ;
102
                       PUSH nat 0 ;
103
                       PUSH nat 0 ;
104
                       PAIR ;
105
                       SOME ;
106
                       PUSH string "nay" ;
107
                       UPDATE ;
108
                       DUP 5 ;
109
                       CAR ;
110
                       CDR ;
111
                       CAR ;
112
                       DUP 6 ;
113
                       CAR ;
114
                       CDR ;
115
                       CDR ;
116
                       DIG 6 ;
117
                       CDR ;
118
                       PAIR ;
119
                       PAIR ;
120
                       EMPTY_MAP address string ;
121
                       PAIR ;
122
                       PAIR ;
123
                       DIG 2 ;
124
                       SWAP ;
125
                       SOME ;
126
                       SWAP ;
127
                       UPDATE ;
128
                       SWAP ;
129
                       CAR ;
130
                       PAIR } }
131
                 { PUSH bool True ;
132
                   DUP 3 ;
133
                   CAR ;
134
                   SENDER ;
135
                   MEM ;
136
                   COMPARE ;
137
                   NEQ ;
138
                   IF
139
                     { DROP 2 ;
140
                       PUSH string "Only managers are allowed to perform this operation" ;
141
                       FAILWITH }
142
                     { PUSH nat 0 ;
143
                       SWAP ;
144
                       DUP ;
145
                       DUG 2 ;
146
                       SIZE ;
147
                       COMPARE ;
148
                       EQ ;
149
                       IF
150
                         { DROP 2 ;
151
                           PUSH string "At least one manager must be assigned to the contract" ;
152
                           FAILWITH }
153
                         { SWAP ; CDR ; SWAP ; PAIR } } } }
154
             { IF_LEFT
155
                 { DUP ;
156
                   CDR ;
157
                   CDR ;
158
                   SWAP ;
159
                   DUP ;
160
                   DUG 2 ;
161
                   CDR ;
162
                   CAR ;
163
                   DUP 3 ;
164
                   CAR ;
165
                   CDR ;
166
                   PAIR ;
167
                   DIG 2 ;
168
                   CAR ;
169
                   CAR ;
170
                   DIG 3 ;
171
                   PAIR ;
172
                   PAIR ;
173
                   PAIR ;
174
                   DUP ;
175
                   CAR ;
176
                   CAR ;
177
                   CAR ;
178
                   SWAP ;
179
                   DUP ;
180
                   DUG 2 ;
181
                   CAR ;
182
                   CAR ;
183
                   CDR ;
184
                   PUSH bool True ;
185
                   DUP 3 ;
186
                   CAR ;
187
                   SENDER ;
188
                   MEM ;
189
                   COMPARE ;
190
                   NEQ ;
191
                   IF
192
                     { DROP 3 ;
193
                       PUSH string "Only managers are allowed to perform this operation" ;
194
                       FAILWITH }
195
                     { SWAP ;
196
                       DUP ;
197
                       DUG 2 ;
198
                       CDR ;
199
                       SWAP ;
200
                       DUP ;
201
                       DUG 2 ;
202
                       GET ;
203
                       IF_NONE
204
                         { PUSH string "No voting period configured for the provided period" ;
205
                           FAILWITH }
206
                         {} ;
207
                       DUP 3 ;
208
                       CDR ;
209
                       SWAP ;
210
                       DUP ;
211
                       DUG 2 ;
212
                       CDR ;
213
                       DUP 6 ;
214
                       CAR ;
215
                       CDR ;
216
                       CAR ;
217
                       DUP 7 ;
218
                       CAR ;
219
                       CDR ;
220
                       CDR ;
221
                       DIG 7 ;
222
                       CDR ;
223
                       PAIR ;
224
                       PAIR ;
225
                       DIG 3 ;
226
                       CAR ;
227
                       CAR ;
228
                       PAIR ;
229
                       PAIR ;
230
                       SOME ;
231
                       DIG 2 ;
232
                       UPDATE ;
233
                       SWAP ;
234
                       CAR ;
235
                       PAIR } }
236
                 { UNPAIR ;
237
                   DIG 2 ;
238
                   PAIR ;
239
                   PAIR ;
240
                   DUP ;
241
                   CAR ;
242
                   CAR ;
243
                   SWAP ;
244
                   DUP ;
245
                   DUG 2 ;
246
                   CAR ;
247
                   CDR ;
248
                   SWAP ;
249
                   DUP ;
250
                   DUG 2 ;
251
                   CDR ;
252
                   SWAP ;
253
                   DUP ;
254
                   DUG 2 ;
255
                   GET ;
256
                   IF_NONE
257
                     { PUSH string "No voting period configured for the provided period" ;
258
                       FAILWITH }
259
                     {} ;
260
                   LEVEL ;
261
                   SWAP ;
262
                   DUP ;
263
                   DUG 2 ;
264
                   CAR ;
265
                   CDR ;
266
                   CDR ;
267
                   COMPARE ;
268
                   GT ;
269
                   IF
270
                     { DROP 4 ; PUSH string "Voting period has not started yet" ; FAILWITH }
271
                     { LEVEL ;
272
                       SWAP ;
273
                       DUP ;
274
                       DUG 2 ;
275
                       CAR ;
276
                       CDR ;
277
                       CAR ;
278
                       CDR ;
279
                       COMPARE ;
280
                       LT ;
281
                       IF
282
                         { DROP 4 ; PUSH string "Voting period ended" ; FAILWITH }
283
                         { DIG 3 ;
284
                           CDR ;
285
                           IF_LEFT
286
                             { DROP ; PUSH string "nay" }
287
                             { DROP ; PUSH string "yea" } ;
288
                           SWAP ;
289
                           DUP ;
290
                           DUG 2 ;
291
                           CAR ;
292
                           CAR ;
293
                           SENDER ;
294
                           GET ;
295
                           IF_NONE
296
                             {}
297
                             { DROP ;
298
                               PUSH string "A ballot has already been cast for this account" ;
299
                               FAILWITH } ;
300
                           SWAP ;
301
                           DUP ;
302
                           DUG 2 ;
303
                           CAR ;
304
                           CAR ;
305
                           SWAP ;
306
                           DUP ;
307
                           DUG 2 ;
308
                           SOME ;
309
                           SENDER ;
310
                           PAIR ;
311
                           PAIR ;
312
                           DUP 3 ;
313
                           CAR ;
314
                           CDR ;
315
                           CAR ;
316
                           CAR ;
317
                           SENDER ;
318
                           GET ;
319
                           IF_NONE
320
                             { PUSH string "This account was not a delegator in the active snapshot" ;
321
                               FAILWITH }
322
                             {} ;
323
                           DUP 4 ;
324
                           CDR ;
325
                           DUP 4 ;
326
                           GET ;
327
                           IF_NONE
328
                             { PUSH string "Invalid ballot submitted" ; FAILWITH }
329
                             { SWAP ;
330
                               DUP ;
331
                               DUG 2 ;
332
                               SWAP ;
333
                               DUP ;
334
                               DUG 2 ;
335
                               CDR ;
336
                               ADD ;
337
                               PUSH nat 1 ;
338
                               DIG 2 ;
339
                               CAR ;
340
                               ADD ;
341
                               PAIR } ;
342
                           DUP 5 ;
343
                           CDR ;
344
                           PUSH string "total" ;
345
                           GET ;
346
                           IF_NONE
347
                             { SWAP ; DROP ; PUSH string "Invalid action" ; FAILWITH }
348
                             { DIG 2 ; SWAP ; DUP ; DUG 2 ; CDR ; ADD ; PUSH nat 1 ; DIG 2 ; CAR ; ADD ; PAIR } ;
349
                           DUP 7 ;
350
                           CDR ;
351
                           DUP 6 ;
352
                           CDR ;
353
                           DIG 3 ;
354
                           SOME ;
355
                           DIG 5 ;
356
                           UPDATE ;
357
                           DIG 2 ;
358
                           SOME ;
359
                           PUSH string "total" ;
360
                           UPDATE ;
361
                           DIG 3 ;
362
                           CAR ;
363
                           CDR ;
364
                           DIG 3 ;
365
                           UNPAIR ;
366
                           UNPAIR ;
367
                           UPDATE ;
368
                           PAIR ;
369
                           PAIR ;
370
                           SOME ;
371
                           DIG 2 ;
372
                           UPDATE ;
373
                           SWAP ;
374
                           CAR ;
375
                           PAIR } } } } ;
376
           NIL operation ;
377
           PAIR } }