BCD

Tezos Contract Explorer
Search Networks Deploy
  • Home
  • /
  • Mainnet
  • /
  • Youves DAO reward pool
operations (15.5K)Storage Code Interact Tokens Fork Statistics Details
Latest
​x
491
 
1
parameter (or
2
            (or
3
              (or (address %add_receiver)
4
                  (or (unit %default) (lambda %execute unit (list operation))))
5
              (or
6
                (pair %forward_to_receiver (nat %amount)
7
                                           (pair (address %receiver)
8
                                                 (or %transfer_type (address %fa12)
9
                                                                    (or
10
                                                                      (pair %fa2
11
                                                                        (address %contract)
12
                                                                        (nat %token_id))
13
                                                                      (unit %tez)))))
14
                (or (address %propose_administrator) (address %remove_administrator))))
15
            (or
16
              (or
17
                (pair %remove_exchange
18
                  (or %src_token (address %fa12)
19
                                 (or (pair %fa2 (address %contract) (nat %token_id))
20
                                     (unit %tez)))
21
                  (or %dst_token (address %fa12)
22
                                 (or (pair %fa2 (address %contract) (nat %token_id))
23
                                     (unit %tez))))
24
                (or (address %remove_receiver) (unit %set_administrator)))
25
              (or
26
                (pair %set_exchange
27
                  (pair %exchange_key
28
                    (or %src_token (address %fa12)
29
                                   (or (pair %fa2 (address %contract) (nat %token_id))
30
                                       (unit %tez)))
31
                    (or %dst_token (address %fa12)
32
                                   (or (pair %fa2 (address %contract) (nat %token_id))
33
                                       (unit %tez))))
34
                  (pair %exchange_value (address %oracle)
35
                                        (lambda %exchange_lambda (pair nat nat)
36
                                                                 (list operation))))
37
                (or
38
                  (list %swap (pair
39
                               (pair %exchange_key
40
                                 (or %src_token (address %fa12)
41
                                                (or
42
                                                  (pair %fa2 (address %contract)
43
                                                             (nat %token_id))
44
                                                  (unit %tez)))
45
                                 (or %dst_token (address %fa12)
46
                                                (or
47
                                                  (pair %fa2 (address %contract)
48
                                                             (nat %token_id))
49
                                                  (unit %tez))))
50
                               (nat %token_amount)))
51
                  (pair %update_trading_window (timestamp %initial_shift)
52
                                               (pair (nat %duration_in_seconds)
53
                                                     (nat %recurrence_in_seconds)))))));
54
storage (pair
55
          (pair (big_map %administrators address nat)
56
                (big_map %allowed_funds_receivers address unit))
57
          (pair
58
            (big_map %exchanges
59
              (pair
60
                (or %src_token (address %fa12)
61
                               (or (pair %fa2 (address %contract) (nat %token_id))
62
                                   (unit %tez)))
63
                (or %dst_token (address %fa12)
64
                               (or (pair %fa2 (address %contract) (nat %token_id))
65
                                   (unit %tez))))
66
              (pair (address %oracle)
67
                    (lambda %exchange_lambda (pair nat nat) (list operation))))
68
            (pair %trading_window (timestamp %initial_shift)
69
                                  (pair (nat %duration_in_seconds)
70
                                        (nat %recurrence_in_seconds)))));
71
code { LAMBDA
72
         (pair unit
73
               (pair (pair (big_map address nat) (big_map address unit))
74
                     (pair
75
                       (big_map
76
                         (pair (or address (or (pair address nat) unit))
77
                               (or address (or (pair address nat) unit)))
78
                         (pair address (lambda (pair nat nat) (list operation))))
79
                       (pair timestamp (pair nat nat)))))
80
         (pair unit
81
               (pair (pair (big_map address nat) (big_map address unit))
82
                     (pair
83
                       (big_map
84
                         (pair (or address (or (pair address nat) unit))
85
                               (or address (or (pair address nat) unit)))
86
                         (pair address (lambda (pair nat nat) (list operation))))
87
                       (pair timestamp (pair nat nat)))))
88
         { CDR ;
89
           DUP ;
90
           CAR ;
91
           CAR ;
92
           PUSH nat 1 ;
93
           SWAP ;
94
           SENDER ;
95
           GET ;
96
           IF_NONE { PUSH int 21 ; FAILWITH } {} ;
97
           COMPARE ;
98
           EQ ;
99
           IF {} { PUSH int 401 ; FAILWITH } ;
100
           UNIT ;
101
           PAIR } ;
102
       SWAP ;
103
       UNPAIR ;
104
       IF_LEFT
105
         { IF_LEFT
106
             { IF_LEFT
107
                 { AMOUNT ;
108
                   PUSH mutez 0 ;
109
                   COMPARE ;
110
                   EQ ;
111
                   IF {} { AMOUNT ; FAILWITH } ;
112
                   DIG 2 ;
113
                   UNIT ;
114
                   SWAP ;
115
                   DIG 3 ;
116
                   DIG 2 ;
117
                   PAIR ;
118
                   EXEC ;
119
                   CDR ;
120
                   UNPAIR ;
121
                   UNPAIR ;
122
                   SWAP ;
123
                   PUSH (option unit) (Some Unit) ;
124
                   DIG 4 ;
125
                   UPDATE ;
126
                   SWAP ;
127
                   PAIR ;
128
                   PAIR ;
129
                   NIL operation }
130
                 { IF_LEFT
131
                     { DROP ; SWAP ; DROP ; NIL operation }
132
                     { AMOUNT ;
133
                       PUSH mutez 0 ;
134
                       COMPARE ;
135
                       EQ ;
136
                       IF {} { AMOUNT ; FAILWITH } ;
137
                       DIG 2 ;
138
                       UNIT ;
139
                       SWAP ;
140
                       DIG 3 ;
141
                       DIG 2 ;
142
                       PAIR ;
143
                       EXEC ;
144
                       CDR ;
145
                       SWAP ;
146
                       NIL operation ;
147
                       SWAP ;
148
                       UNIT ;
149
                       EXEC ;
150
                       NIL operation ;
151
                       SWAP ;
152
                       ITER { CONS } ;
153
                       ITER { CONS } } } }
154
             { IF_LEFT
155
                 { DIG 2 ;
156
                   DROP ;
157
                   AMOUNT ;
158
                   PUSH mutez 0 ;
159
                   COMPARE ;
160
                   EQ ;
161
                   IF {} { AMOUNT ; FAILWITH } ;
162
                   SWAP ;
163
                   DUP ;
164
                   DUG 2 ;
165
                   CAR ;
166
                   CDR ;
167
                   SWAP ;
168
                   DUP ;
169
                   DUG 2 ;
170
                   GET 3 ;
171
                   MEM ;
172
                   IF {} { PUSH string "RECEIVER_NOT_ALLOWED" ; FAILWITH } ;
173
                   DUP ;
174
                   GET 4 ;
175
                   IF_LEFT
176
                     { PUSH nat 0 ;
177
                       DUP 3 ;
178
                       CAR ;
179
                       COMPARE ;
180
                       GT ;
181
                       IF
182
                         { CONTRACT %transfer (pair (address %from)
183
                                                    (pair (address %to) (nat %value))) ;
184
                           IF_NONE { PUSH int 19 ; FAILWITH } {} ;
185
                           NIL operation ;
186
                           SWAP ;
187
                           PUSH mutez 0 ;
188
                           DIG 3 ;
189
                           DUP ;
190
                           CAR ;
191
                           SWAP ;
192
                           GET 3 ;
193
                           SELF_ADDRESS ;
194
                           PAIR 3 ;
195
                           TRANSFER_TOKENS ;
196
                           CONS }
197
                         { DROP 2 ; NIL operation } }
198
                     { IF_LEFT
199
                         { PUSH nat 0 ;
200
                           DUP 3 ;
201
                           CAR ;
202
                           COMPARE ;
203
                           GT ;
204
                           IF
205
                             { DUP ;
206
                               CAR ;
207
                               CONTRACT %transfer (list (pair (address %from_)
208
                                                             (list %txs (pair
209
                                                                         (address %to_)
210
                                                                         (pair
211
                                                                           (nat %token_id)
212
                                                                           (nat %amount)))))) ;
213
                               IF_NONE { PUSH int 36 ; FAILWITH } {} ;
214
                               NIL operation ;
215
                               SWAP ;
216
                               PUSH mutez 0 ;
217
                               NIL (pair address (list (pair address (pair nat nat)))) ;
218
                               NIL (pair address (pair nat nat)) ;
219
                               DUP 7 ;
220
                               CAR ;
221
                               DIG 6 ;
222
                               CDR ;
223
                               DIG 7 ;
224
                               GET 3 ;
225
                               PAIR 3 ;
226
                               CONS ;
227
                               SELF_ADDRESS ;
228
                               PAIR ;
229
                               CONS ;
230
                               TRANSFER_TOKENS ;
231
                               CONS }
232
                             { DROP 2 ; NIL operation } }
233
                         { DROP ;
234
                           DUP ;
235
                           CAR ;
236
                           PUSH mutez 1 ;
237
                           SWAP ;
238
                           MUL ;
239
                           NIL operation ;
240
                           DIG 2 ;
241
                           GET 3 ;
242
                           CONTRACT unit ;
243
                           IF_NONE { PUSH int 82 ; FAILWITH } {} ;
244
                           DIG 2 ;
245
                           UNIT ;
246
                           TRANSFER_TOKENS ;
247
                           CONS } } }
248
                 { IF_LEFT
249
                     { AMOUNT ;
250
                       PUSH mutez 0 ;
251
                       COMPARE ;
252
                       EQ ;
253
                       IF {} { AMOUNT ; FAILWITH } ;
254
                       DIG 2 ;
255
                       UNIT ;
256
                       SWAP ;
257
                       DIG 3 ;
258
                       DIG 2 ;
259
                       PAIR ;
260
                       EXEC ;
261
                       CDR ;
262
                       UNPAIR ;
263
                       UNPAIR ;
264
                       PUSH (option nat) (Some 0) ;
265
                       DIG 4 ;
266
                       UPDATE ;
267
                       PAIR ;
268
                       PAIR }
269
                     { AMOUNT ;
270
                       PUSH mutez 0 ;
271
                       COMPARE ;
272
                       EQ ;
273
                       IF {} { AMOUNT ; FAILWITH } ;
274
                       DIG 2 ;
275
                       UNIT ;
276
                       SWAP ;
277
                       DIG 3 ;
278
                       DIG 2 ;
279
                       PAIR ;
280
                       EXEC ;
281
                       CDR ;
282
                       UNPAIR ;
283
                       UNPAIR ;
284
                       NONE nat ;
285
                       DIG 4 ;
286
                       UPDATE ;
287
                       PAIR ;
288
                       PAIR } ;
289
                   NIL operation } } }
290
         { IF_LEFT
291
             { IF_LEFT
292
                 { AMOUNT ;
293
                   PUSH mutez 0 ;
294
                   COMPARE ;
295
                   EQ ;
296
                   IF {} { AMOUNT ; FAILWITH } ;
297
                   DIG 2 ;
298
                   UNIT ;
299
                   SWAP ;
300
                   DIG 3 ;
301
                   DIG 2 ;
302
                   PAIR ;
303
                   EXEC ;
304
                   CDR ;
305
                   DUP ;
306
                   GET 3 ;
307
                   NONE (pair address (lambda (pair nat nat) (list operation))) ;
308
                   DIG 3 ;
309
                   UPDATE ;
310
                   UPDATE 3 }
311
                 { IF_LEFT
312
                     { AMOUNT ;
313
                       PUSH mutez 0 ;
314
                       COMPARE ;
315
                       EQ ;
316
                       IF {} { AMOUNT ; FAILWITH } ;
317
                       DIG 2 ;
318
                       UNIT ;
319
                       SWAP ;
320
                       DIG 3 ;
321
                       DIG 2 ;
322
                       PAIR ;
323
                       EXEC ;
324
                       CDR ;
325
                       UNPAIR ;
326
                       UNPAIR ;
327
                       SWAP ;
328
                       NONE unit ;
329
                       DIG 4 ;
330
                       UPDATE ;
331
                       SWAP ;
332
                       PAIR ;
333
                       PAIR }
334
                     { DROP ;
335
                       SWAP ;
336
                       DROP ;
337
                       AMOUNT ;
338
                       PUSH mutez 0 ;
339
                       COMPARE ;
340
                       EQ ;
341
                       IF {} { AMOUNT ; FAILWITH } ;
342
                       DUP ;
343
                       CAR ;
344
                       CAR ;
345
                       PUSH nat 0 ;
346
                       SWAP ;
347
                       SENDER ;
348
                       GET ;
349
                       IF_NONE { PUSH int 46 ; FAILWITH } {} ;
350
                       COMPARE ;
351
                       EQ ;
352
                       IF {} { PUSH int 405 ; FAILWITH } ;
353
                       UNPAIR ;
354
                       UNPAIR ;
355
                       PUSH (option nat) (Some 1) ;
356
                       SENDER ;
357
                       UPDATE ;
358
                       PAIR ;
359
                       PAIR } } ;
360
               NIL operation }
361
             { IF_LEFT
362
                 { AMOUNT ;
363
                   PUSH mutez 0 ;
364
                   COMPARE ;
365
                   EQ ;
366
                   IF {} { AMOUNT ; FAILWITH } ;
367
                   DIG 2 ;
368
                   UNIT ;
369
                   SWAP ;
370
                   DIG 3 ;
371
                   DIG 2 ;
372
                   PAIR ;
373
                   EXEC ;
374
                   CDR ;
375
                   DUP ;
376
                   GET 3 ;
377
                   DUP 3 ;
378
                   CDR ;
379
                   SOME ;
380
                   DIG 3 ;
381
                   CAR ;
382
                   UPDATE ;
383
                   UPDATE 3 ;
384
                   NIL operation }
385
                 { IF_LEFT
386
                     { AMOUNT ;
387
                       PUSH mutez 0 ;
388
                       COMPARE ;
389
                       EQ ;
390
                       IF {} { AMOUNT ; FAILWITH } ;
391
                       SWAP ;
392
                       DUP ;
393
                       GET 7 ;
394
                       SWAP ;
395
                       DUP ;
396
                       GET 8 ;
397
                       SWAP ;
398
                       DUP ;
399
                       DUG 4 ;
400
                       GET 5 ;
401
                       NOW ;
402
                       SUB ;
403
                       ISNAT ;
404
                       IF_NONE { PUSH int 75 ; FAILWITH } {} ;
405
                       EDIV ;
406
                       IF_NONE { PUSH int 76 ; FAILWITH } { CDR } ;
407
                       COMPARE ;
408
                       LE ;
409
                       IF {} { PUSH int 505 ; FAILWITH } ;
410
                       DUP ;
411
                       NIL operation ;
412
                       SWAP ;
413
                       ITER { DUP 4 ;
414
                              GET 3 ;
415
                              SWAP ;
416
                              DUP ;
417
                              DUG 2 ;
418
                              CAR ;
419
                              MEM ;
420
                              IF
421
                                {}
422
                                { PUSH string "WrongCondition: self.data.exchanges.contains(exchange.exchange_key)" ;
423
                                  FAILWITH } ;
424
                              DUP 4 ;
425
                              GET 3 ;
426
                              SWAP ;
427
                              DUP ;
428
                              DUG 2 ;
429
                              CAR ;
430
                              GET ;
431
                              IF_NONE { PUSH int 85 ; FAILWITH } {} ;
432
                              CDR ;
433
                              DUP 5 ;
434
                              GET 3 ;
435
                              DUP 3 ;
436
                              CAR ;
437
                              GET ;
438
                              IF_NONE { PUSH int 85 ; FAILWITH } {} ;
439
                              CAR ;
440
                              DUP 3 ;
441
                              CDR ;
442
                              VIEW "get_min_out" nat ;
443
                              IF_NONE { PUSH int 86 ; FAILWITH } {} ;
444
                              DUP 3 ;
445
                              CDR ;
446
                              PAIR ;
447
                              EXEC ;
448
                              NIL operation ;
449
                              SWAP ;
450
                              ITER { CONS } ;
451
                              ITER { DIG 2 ; SWAP ; CONS ; SWAP } ;
452
                              DROP } ;
453
                       SWAP ;
454
                       DROP ;
455
                       DIG 2 ;
456
                       DROP }
457
                     { AMOUNT ;
458
                       PUSH mutez 0 ;
459
                       COMPARE ;
460
                       EQ ;
461
                       IF {} { AMOUNT ; FAILWITH } ;
462
                       DUP ;
463
                       CAR ;
464
                       NOW ;
465
                       COMPARE ;
466
                       GT ;
467
                       IF {} { PUSH int 506 ; FAILWITH } ;
468
                       DUP ;
469
                       GET 4 ;
470
                       SWAP ;
471
                       DUP ;
472
                       DUG 2 ;
473
                       GET 3 ;
474
                       COMPARE ;
475
                       LT ;
476
                       IF {} { PUSH int 506 ; FAILWITH } ;
477
                       DIG 2 ;
478
                       UNIT ;
479
                       SWAP ;
480
                       DIG 3 ;
481
                       DIG 2 ;
482
                       PAIR ;
483
                       EXEC ;
484
                       CDR ;
485
                       SWAP ;
486
                       UPDATE 4 ;
487
                       NIL operation } } } } ;
488
       NIL operation ;
489
       SWAP ;
490
       ITER { CONS } ;
491
       PAIR }