BCD

Tezos Contract Explorer
Search Networks Deploy
  • Home
  • /
  • Mainnet
  • /
  • Ubinetic Generic Oracle
operations (476K)Storage Code Interact Tokens Fork Views Statistics Details
Latest
​x
551
 
1
{ parameter (or
2
              (or
3
                (or (address %add_valid_source)
4
                    (pair %fulfill (bytes %script) (bytes %payload)))
5
                (or (address %propose_administrator)
6
                    (or (address %remove_valid_source) (unit %set_administrator))))
7
              (or (or (bytes %set_valid_script) (unit %touch))
8
                  (or
9
                    (lambda %update_aggregation_lambda (pair string (pair nat nat)) nat)
10
                    (or (nat %update_threshold)
11
                        (lambda %update_validation_lambda (pair string (pair nat nat))
12
                                                          bool))))) ;
13
  storage (pair
14
            (pair
15
              (pair (address %administrator)
16
                    (pair (lambda %aggregation_lambda (pair string (pair nat nat)) nat)
17
                          (nat %contract_outside_cache_no)))
18
              (pair (big_map %prices string (pair (nat %last_epoch) (nat %price)))
19
                    (pair (address %proposed_administrator) (nat %response_threshold))))
20
            (pair
21
              (pair (nat %valid_epoch)
22
                    (pair
23
                      (map %valid_prices string
24
                                         (pair (set %valid_respondants address)
25
                                               (nat %price)))
26
                      (bytes %valid_script)))
27
              (pair (set %valid_sources address)
28
                    (pair (lambda %validation_lambda (pair string (pair nat nat)) bool)
29
                          (nat %validity_window_in_epochs))))) ;
30
  code { UNPAIR ;
31
         IF_LEFT
32
           { IF_LEFT
33
               { IF_LEFT
34
                   { AMOUNT ;
35
                     PUSH mutez 0 ;
36
                     COMPARE ;
37
                     EQ ;
38
                     IF {} { AMOUNT ; FAILWITH } ;
39
                     SWAP ;
40
                     DUP ;
41
                     DUG 2 ;
42
                     CAR ;
43
                     CAR ;
44
                     CAR ;
45
                     SENDER ;
46
                     COMPARE ;
47
                     EQ ;
48
                     IF {} { PUSH int 401 ; FAILWITH } ;
49
                     SWAP ;
50
                     DUP ;
51
                     GET 5 ;
52
                     PUSH bool True ;
53
                     DIG 3 ;
54
                     UPDATE ;
55
                     UPDATE 5 }
56
                   { AMOUNT ;
57
                     PUSH mutez 0 ;
58
                     COMPARE ;
59
                     EQ ;
60
                     IF {} { AMOUNT ; FAILWITH } ;
61
                     DUP ;
62
                     CAR ;
63
                     DUP 3 ;
64
                     GET 3 ;
65
                     GET 4 ;
66
                     COMPARE ;
67
                     EQ ;
68
                     IF {} { PUSH int 430 ; FAILWITH } ;
69
                     SWAP ;
70
                     DUP ;
71
                     DUG 2 ;
72
                     GET 5 ;
73
                     SOURCE ;
74
                     MEM ;
75
                     IF {} { PUSH int 431 ; FAILWITH } ;
76
                     DUP ;
77
                     CDR ;
78
                     UNPACK (pair nat (list (pair string nat))) ;
79
                     IF_NONE { PUSH int 220 ; FAILWITH } {} ;
80
                     DUP ;
81
                     CAR ;
82
                     PUSH nat 900 ;
83
                     SWAP ;
84
                     EDIV ;
85
                     IF_NONE { PUSH int 223 ; FAILWITH } { CAR } ;
86
                     PUSH nat 900 ;
87
                     PUSH timestamp "1970-01-01T00:00:00Z" ;
88
                     NOW ;
89
                     SUB ;
90
                     ISNAT ;
91
                     IF_NONE { PUSH int 227 ; FAILWITH } {} ;
92
                     EDIV ;
93
                     IF_NONE { PUSH int 227 ; FAILWITH } { CAR } ;
94
                     SWAP ;
95
                     DUP ;
96
                     DUG 2 ;
97
                     COMPARE ;
98
                     EQ ;
99
                     IF {} { PUSH int 903 ; FAILWITH } ;
100
                     DUP 4 ;
101
                     GET 3 ;
102
                     CAR ;
103
                     SWAP ;
104
                     DUP ;
105
                     DUG 2 ;
106
                     COMPARE ;
107
                     GT ;
108
                     IF
109
                       { DIG 3 ;
110
                         UNPAIR ;
111
                         SWAP ;
112
                         UNPAIR ;
113
                         GET 4 ;
114
                         EMPTY_MAP string (pair (set address) nat) ;
115
                         PAIR ;
116
                         DUP 4 ;
117
                         PAIR ;
118
                         PAIR ;
119
                         SWAP ;
120
                         PAIR ;
121
                         DUG 3 }
122
                       {} ;
123
                     SWAP ;
124
                     DUP ;
125
                     DUG 2 ;
126
                     CDR ;
127
                     ITER { DUP 5 ;
128
                            GET 3 ;
129
                            GET 3 ;
130
                            SWAP ;
131
                            DUP ;
132
                            DUG 2 ;
133
                            CAR ;
134
                            MEM ;
135
                            IF
136
                              {}
137
                              { DIG 4 ;
138
                                UNPAIR ;
139
                                SWAP ;
140
                                UNPAIR ;
141
                                UNPAIR ;
142
                                SWAP ;
143
                                UNPAIR ;
144
                                DUP 6 ;
145
                                CDR ;
146
                                EMPTY_SET address ;
147
                                PAIR ;
148
                                SOME ;
149
                                DUP 7 ;
150
                                CAR ;
151
                                UPDATE ;
152
                                PAIR ;
153
                                SWAP ;
154
                                PAIR ;
155
                                PAIR ;
156
                                SWAP ;
157
                                PAIR ;
158
                                DUG 4 } ;
159
                            DUP 5 ;
160
                            GET 3 ;
161
                            GET 3 ;
162
                            SWAP ;
163
                            DUP ;
164
                            DUG 2 ;
165
                            CAR ;
166
                            GET ;
167
                            IF_NONE { PUSH int 241 ; FAILWITH } {} ;
168
                            CDR ;
169
                            DUP 6 ;
170
                            GET 7 ;
171
                            SWAP ;
172
                            DUP ;
173
                            DUG 2 ;
174
                            DUP 4 ;
175
                            CDR ;
176
                            PAIR ;
177
                            DUP 4 ;
178
                            CAR ;
179
                            PAIR ;
180
                            EXEC ;
181
                            IF
182
                              { DIG 5 ;
183
                                UNPAIR ;
184
                                SWAP ;
185
                                UNPAIR ;
186
                                UNPAIR ;
187
                                SWAP ;
188
                                UNPAIR ;
189
                                DUP ;
190
                                DUP 8 ;
191
                                CAR ;
192
                                DUP ;
193
                                DUG 2 ;
194
                                GET ;
195
                                IF_NONE { PUSH int 247 ; FAILWITH } {} ;
196
                                DUP ;
197
                                CAR ;
198
                                PUSH bool True ;
199
                                SOURCE ;
200
                                UPDATE ;
201
                                UPDATE 1 ;
202
                                SOME ;
203
                                SWAP ;
204
                                UPDATE ;
205
                                PAIR ;
206
                                SWAP ;
207
                                PAIR ;
208
                                PAIR ;
209
                                SWAP ;
210
                                PAIR ;
211
                                DUP ;
212
                                CAR ;
213
                                GET 6 ;
214
                                SWAP ;
215
                                DUP ;
216
                                DUG 7 ;
217
                                GET 3 ;
218
                                GET 3 ;
219
                                DUP 4 ;
220
                                CAR ;
221
                                GET ;
222
                                IF_NONE { PUSH int 249 ; FAILWITH } {} ;
223
                                CAR ;
224
                                SIZE ;
225
                                COMPARE ;
226
                                GE ;
227
                                IF
228
                                  { DUP 6 ;
229
                                    CAR ;
230
                                    GET 3 ;
231
                                    DUP 3 ;
232
                                    CAR ;
233
                                    MEM ;
234
                                    IF
235
                                      { DUP 3 ;
236
                                        DUP 7 ;
237
                                        CAR ;
238
                                        GET 3 ;
239
                                        DUP 4 ;
240
                                        CAR ;
241
                                        GET ;
242
                                        IF_NONE { PUSH int 257 ; FAILWITH } {} ;
243
                                        CAR ;
244
                                        COMPARE ;
245
                                        LT ;
246
                                        IF
247
                                          { DUP 6 ;
248
                                            UNPAIR ;
249
                                            UNPAIR ;
250
                                            SWAP ;
251
                                            UNPAIR ;
252
                                            DUP 10 ;
253
                                            CAR ;
254
                                            CAR ;
255
                                            GET 3 ;
256
                                            DIG 5 ;
257
                                            DIG 10 ;
258
                                            CAR ;
259
                                            GET 3 ;
260
                                            DUP 8 ;
261
                                            CAR ;
262
                                            GET ;
263
                                            IF_NONE { PUSH int 261 ; FAILWITH } {} ;
264
                                            CDR ;
265
                                            PAIR ;
266
                                            DUP 7 ;
267
                                            CAR ;
268
                                            PAIR ;
269
                                            EXEC ;
270
                                            DUP 7 ;
271
                                            PAIR ;
272
                                            SOME ;
273
                                            DIG 5 ;
274
                                            CAR ;
275
                                            UPDATE ;
276
                                            PAIR ;
277
                                            SWAP ;
278
                                            PAIR ;
279
                                            PAIR ;
280
                                            DUG 3 }
281
                                          { DROP 2 } }
282
                                      { DIG 5 ;
283
                                        UNPAIR ;
284
                                        UNPAIR ;
285
                                        SWAP ;
286
                                        UNPAIR ;
287
                                        DIG 4 ;
288
                                        DUP 7 ;
289
                                        PAIR ;
290
                                        SOME ;
291
                                        DIG 5 ;
292
                                        CAR ;
293
                                        UPDATE ;
294
                                        PAIR ;
295
                                        SWAP ;
296
                                        PAIR ;
297
                                        PAIR ;
298
                                        DUG 3 } }
299
                                  { DROP 2 } }
300
                              { DROP 2 } } ;
301
                     DROP 3 } }
302
               { IF_LEFT
303
                   { AMOUNT ;
304
                     PUSH mutez 0 ;
305
                     COMPARE ;
306
                     EQ ;
307
                     IF {} { AMOUNT ; FAILWITH } ;
308
                     SWAP ;
309
                     DUP ;
310
                     DUG 2 ;
311
                     CAR ;
312
                     CAR ;
313
                     CAR ;
314
                     SENDER ;
315
                     COMPARE ;
316
                     EQ ;
317
                     IF {} { PUSH int 401 ; FAILWITH } ;
318
                     SWAP ;
319
                     UNPAIR ;
320
                     UNPAIR ;
321
                     SWAP ;
322
                     UNPAIR ;
323
                     SWAP ;
324
                     CDR ;
325
                     DIG 4 ;
326
                     PAIR ;
327
                     SWAP ;
328
                     PAIR ;
329
                     SWAP ;
330
                     PAIR ;
331
                     PAIR }
332
                   { IF_LEFT
333
                       { AMOUNT ;
334
                         PUSH mutez 0 ;
335
                         COMPARE ;
336
                         EQ ;
337
                         IF {} { AMOUNT ; FAILWITH } ;
338
                         SWAP ;
339
                         DUP ;
340
                         DUG 2 ;
341
                         CAR ;
342
                         CAR ;
343
                         CAR ;
344
                         SENDER ;
345
                         COMPARE ;
346
                         EQ ;
347
                         IF {} { PUSH int 401 ; FAILWITH } ;
348
                         SWAP ;
349
                         DUP ;
350
                         GET 5 ;
351
                         PUSH bool False ;
352
                         DIG 3 ;
353
                         UPDATE ;
354
                         UPDATE 5 }
355
                       { DROP ;
356
                         AMOUNT ;
357
                         PUSH mutez 0 ;
358
                         COMPARE ;
359
                         EQ ;
360
                         IF {} { AMOUNT ; FAILWITH } ;
361
                         DUP ;
362
                         CAR ;
363
                         GET 5 ;
364
                         SENDER ;
365
                         COMPARE ;
366
                         EQ ;
367
                         IF {} { PUSH int 401 ; FAILWITH } ;
368
                         DUP ;
369
                         UNPAIR ;
370
                         UNPAIR ;
371
                         CDR ;
372
                         DIG 3 ;
373
                         CAR ;
374
                         GET 5 ;
375
                         PAIR ;
376
                         PAIR ;
377
                         PAIR } } } }
378
           { IF_LEFT
379
               { IF_LEFT
380
                   { AMOUNT ;
381
                     PUSH mutez 0 ;
382
                     COMPARE ;
383
                     EQ ;
384
                     IF {} { AMOUNT ; FAILWITH } ;
385
                     SWAP ;
386
                     DUP ;
387
                     DUG 2 ;
388
                     CAR ;
389
                     CAR ;
390
                     CAR ;
391
                     SENDER ;
392
                     COMPARE ;
393
                     EQ ;
394
                     IF {} { PUSH int 401 ; FAILWITH } ;
395
                     SWAP ;
396
                     UNPAIR ;
397
                     SWAP ;
398
                     UNPAIR ;
399
                     UNPAIR ;
400
                     SWAP ;
401
                     CAR ;
402
                     DIG 4 ;
403
                     SWAP ;
404
                     PAIR ;
405
                     SWAP ;
406
                     PAIR ;
407
                     PAIR ;
408
                     SWAP ;
409
                     PAIR }
410
                   { DROP ;
411
                     AMOUNT ;
412
                     PUSH mutez 0 ;
413
                     COMPARE ;
414
                     EQ ;
415
                     IF {} { AMOUNT ; FAILWITH } ;
416
                     UNPAIR ;
417
                     UNPAIR ;
418
                     UNPAIR ;
419
                     SWAP ;
420
                     UNPAIR ;
421
                     SWAP ;
422
                     PUSH nat 1 ;
423
                     ADD ;
424
                     SWAP ;
425
                     PAIR ;
426
                     SWAP ;
427
                     PAIR ;
428
                     PAIR ;
429
                     PAIR } }
430
               { IF_LEFT
431
                   { AMOUNT ;
432
                     PUSH mutez 0 ;
433
                     COMPARE ;
434
                     EQ ;
435
                     IF {} { AMOUNT ; FAILWITH } ;
436
                     SWAP ;
437
                     DUP ;
438
                     DUG 2 ;
439
                     CAR ;
440
                     CAR ;
441
                     CAR ;
442
                     SENDER ;
443
                     COMPARE ;
444
                     EQ ;
445
                     IF {} { PUSH int 401 ; FAILWITH } ;
446
                     SWAP ;
447
                     UNPAIR ;
448
                     UNPAIR ;
449
                     UNPAIR ;
450
                     SWAP ;
451
                     CDR ;
452
                     DIG 4 ;
453
                     PAIR ;
454
                     SWAP ;
455
                     PAIR ;
456
                     PAIR ;
457
                     PAIR }
458
                   { IF_LEFT
459
                       { AMOUNT ;
460
                         PUSH mutez 0 ;
461
                         COMPARE ;
462
                         EQ ;
463
                         IF {} { AMOUNT ; FAILWITH } ;
464
                         SWAP ;
465
                         DUP ;
466
                         DUG 2 ;
467
                         CAR ;
468
                         CAR ;
469
                         CAR ;
470
                         SENDER ;
471
                         COMPARE ;
472
                         EQ ;
473
                         IF {} { PUSH int 401 ; FAILWITH } ;
474
                         SWAP ;
475
                         UNPAIR ;
476
                         UNPAIR ;
477
                         SWAP ;
478
                         UNPAIR ;
479
                         SWAP ;
480
                         CAR ;
481
                         DIG 4 ;
482
                         SWAP ;
483
                         PAIR ;
484
                         SWAP ;
485
                         PAIR ;
486
                         SWAP ;
487
                         PAIR ;
488
                         PAIR }
489
                       { AMOUNT ;
490
                         PUSH mutez 0 ;
491
                         COMPARE ;
492
                         EQ ;
493
                         IF {} { AMOUNT ; FAILWITH } ;
494
                         SWAP ;
495
                         DUP ;
496
                         DUG 2 ;
497
                         CAR ;
498
                         CAR ;
499
                         CAR ;
500
                         SENDER ;
501
                         COMPARE ;
502
                         EQ ;
503
                         IF {} { PUSH int 401 ; FAILWITH } ;
504
                         UPDATE 7 } } } } ;
505
         NIL operation ;
506
         PAIR } ;
507
  view "get_price" string nat
508
        { UNPAIR ;
509
          SWAP ;
510
          DUP ;
511
          DUG 2 ;
512
          GET 8 ;
513
          PUSH nat 900 ;
514
          PUSH timestamp "1970-01-01T00:00:00Z" ;
515
          NOW ;
516
          SUB ;
517
          ISNAT ;
518
          IF_NONE { PUSH int 277 ; FAILWITH } {} ;
519
          EDIV ;
520
          IF_NONE { PUSH int 277 ; FAILWITH } { CAR } ;
521
          SUB ;
522
          ISNAT ;
523
          IF_NONE { PUSH int 281 ; FAILWITH } {} ;
524
          DUP 3 ;
525
          CAR ;
526
          GET 3 ;
527
          DUP 3 ;
528
          GET ;
529
          IF_NONE { PUSH int 280 ; FAILWITH } {} ;
530
          CAR ;
531
          COMPARE ;
532
          GT ;
533
          IF {} { PUSH int 900 ; FAILWITH } ;
534
          PUSH nat 0 ;
535
          DUP 3 ;
536
          CAR ;
537
          GET 3 ;
538
          DUP 3 ;
539
          GET ;
540
          IF_NONE { PUSH int 284 ; FAILWITH } {} ;
541
          CDR ;
542
          COMPARE ;
543
          GT ;
544
          IF {} { PUSH int 905 ; FAILWITH } ;
545
          SWAP ;
546
          CAR ;
547
          GET 3 ;
548
          SWAP ;
549
          GET ;
550
          IF_NONE { PUSH int 285 ; FAILWITH } {} ;
551
          CDR } }