BCD

Tezos Contract Explorer
Search Networks Deploy
  • Home
  • /
  • Mainnet
  • /
  • Ubinetic Index Oracle
operations (543K)Storage Code Interact Tokens Fork Views Statistics Details
Latest
​x
423
 
1
{ parameter (or
2
              (or (address %add_valid_source)
3
                  (pair %fulfill (bytes %script) (bytes %payload)))
4
              (or (address %remove_valid_source)
5
                  (or (address %set_administrator) (bytes %set_valid_script)))) ;
6
  storage (pair
7
            (pair
8
              (pair (address %administrator)
9
                    (pair (nat %last_epoch) (big_map %prices string nat)))
10
              (pair (nat %response_threshold)
11
                    (pair (nat %valid_btc_price) (nat %valid_defi_price))))
12
            (pair
13
              (pair (nat %valid_epoch)
14
                    (pair (set %valid_respondants address) (bytes %valid_script)))
15
              (pair (set %valid_sources address)
16
                    (pair (nat %valid_xtz_price) (nat %validity_window_in_epochs))))) ;
17
  code { LAMBDA
18
           (pair nat nat)
19
           nat
20
           { UNPAIR ;
21
             PUSH nat 0 ;
22
             DUP 3 ;
23
             COMPARE ;
24
             GT ;
25
             IF {} { PUSH int 501 ; FAILWITH } ;
26
             DUP ;
27
             PUSH nat 0 ;
28
             COMPARE ;
29
             EQ ;
30
             IF
31
               { PUSH bool True }
32
               { SWAP ; DUP ; DUG 2 ; SWAP ; DUP ; DUG 2 ; SUB ; ABS ; PUSH nat 4 ; DUP 3 ; LSR ; COMPARE ; GT } ;
33
             IF
34
               { DROP }
35
               { PUSH int 0 ;
36
                 DUG 2 ;
37
                 DUP ;
38
                 DUG 3 ;
39
                 SUB ;
40
                 COMPARE ;
41
                 GT ;
42
                 IF
43
                   { DUP ;
44
                     PUSH nat 4 ;
45
                     SWAP ;
46
                     LSR ;
47
                     SWAP ;
48
                     SUB ;
49
                     ISNAT ;
50
                     IF_NONE { PUSH int 77 ; FAILWITH } {} }
51
                   { DUP ; PUSH nat 4 ; SWAP ; LSR ; ADD } } } ;
52
         SWAP ;
53
         UNPAIR ;
54
         IF_LEFT
55
           { IF_LEFT
56
               { DIG 2 ;
57
                 DROP ;
58
                 SWAP ;
59
                 DUP ;
60
                 DUG 2 ;
61
                 CAR ;
62
                 CAR ;
63
                 CAR ;
64
                 SENDER ;
65
                 COMPARE ;
66
                 EQ ;
67
                 IF {} { PUSH int 401 ; FAILWITH } ;
68
                 SWAP ;
69
                 DUP ;
70
                 GET 5 ;
71
                 PUSH bool True ;
72
                 DIG 3 ;
73
                 UPDATE ;
74
                 UPDATE 5 }
75
               { DUP ;
76
                 CAR ;
77
                 DUP 3 ;
78
                 GET 3 ;
79
                 GET 4 ;
80
                 COMPARE ;
81
                 EQ ;
82
                 IF {} { PUSH int 430 ; FAILWITH } ;
83
                 SWAP ;
84
                 DUP ;
85
                 DUG 2 ;
86
                 GET 5 ;
87
                 SOURCE ;
88
                 MEM ;
89
                 IF {} { PUSH int 431 ; FAILWITH } ;
90
                 DUP ;
91
                 CDR ;
92
                 UNPACK (pair nat (pair nat (pair nat nat))) ;
93
                 IF_NONE { PUSH int 94 ; FAILWITH } {} ;
94
                 DUP ;
95
                 CAR ;
96
                 PUSH nat 900 ;
97
                 SWAP ;
98
                 EDIV ;
99
                 IF_NONE { PUSH int 96 ; FAILWITH } { CAR } ;
100
                 DUP 4 ;
101
                 GET 3 ;
102
                 CAR ;
103
                 SWAP ;
104
                 DUP ;
105
                 DUG 2 ;
106
                 COMPARE ;
107
                 NEQ ;
108
                 IF
109
                   { DIG 3 ;
110
                     UNPAIR ;
111
                     SWAP ;
112
                     UNPAIR ;
113
                     GET 4 ;
114
                     EMPTY_SET address ;
115
                     PAIR ;
116
                     DUP 4 ;
117
                     PAIR ;
118
                     PAIR ;
119
                     SWAP ;
120
                     UNPAIR ;
121
                     SWAP ;
122
                     UNPAIR ;
123
                     SWAP ;
124
                     CAR ;
125
                     DUP 6 ;
126
                     GET 3 ;
127
                     SWAP ;
128
                     PAIR ;
129
                     SWAP ;
130
                     PAIR ;
131
                     SWAP ;
132
                     PAIR ;
133
                     PAIR ;
134
                     DUP 3 ;
135
                     GET 5 ;
136
                     UPDATE 7 ;
137
                     UNPAIR ;
138
                     UNPAIR ;
139
                     SWAP ;
140
                     UNPAIR ;
141
                     SWAP ;
142
                     CDR ;
143
                     DUP 6 ;
144
                     GET 6 ;
145
                     PAIR ;
146
                     SWAP ;
147
                     PAIR ;
148
                     SWAP ;
149
                     PAIR ;
150
                     PAIR ;
151
                     DUG 3 }
152
                   {} ;
153
                 DIG 3 ;
154
                 DUP ;
155
                 CAR ;
156
                 GET 3 ;
157
                 SWAP ;
158
                 DUP ;
159
                 DUG 5 ;
160
                 GET 3 ;
161
                 GET 3 ;
162
                 SIZE ;
163
                 COMPARE ;
164
                 LT ;
165
                 IF
166
                   { DUP 4 ;
167
                     CAR ;
168
                     GET 6 ;
169
                     DUP 3 ;
170
                     GET 3 ;
171
                     SUB ;
172
                     ABS ;
173
                     PUSH nat 12 ;
174
                     DUP 6 ;
175
                     CAR ;
176
                     GET 6 ;
177
                     LSR ;
178
                     COMPARE ;
179
                     GE ;
180
                     IF
181
                       { DUP 4 ; GET 7 ; DUP 3 ; GET 5 ; SUB ; ABS ; PUSH nat 12 ; DUP 6 ; GET 7 ; LSR ; COMPARE ; GE }
182
                       { PUSH bool False } ;
183
                     IF
184
                       { DUP 4 ;
185
                         CAR ;
186
                         GET 5 ;
187
                         DUP 3 ;
188
                         GET 6 ;
189
                         SUB ;
190
                         ABS ;
191
                         PUSH nat 12 ;
192
                         DUP 6 ;
193
                         CAR ;
194
                         GET 5 ;
195
                         LSR ;
196
                         COMPARE ;
197
                         GE }
198
                       { PUSH bool False } ;
199
                     IF
200
                       { DIG 3 ;
201
                         UNPAIR ;
202
                         SWAP ;
203
                         UNPAIR ;
204
                         UNPAIR ;
205
                         SWAP ;
206
                         UNPAIR ;
207
                         PUSH bool True ;
208
                         SOURCE ;
209
                         UPDATE ;
210
                         PAIR ;
211
                         SWAP ;
212
                         PAIR ;
213
                         PAIR ;
214
                         SWAP ;
215
                         PAIR ;
216
                         DUP ;
217
                         CAR ;
218
                         GET 3 ;
219
                         SWAP ;
220
                         DUP ;
221
                         DUG 5 ;
222
                         GET 3 ;
223
                         GET 3 ;
224
                         SIZE ;
225
                         COMPARE ;
226
                         GE ;
227
                         IF
228
                           { SWAP ;
229
                             DROP ;
230
                             SWAP ;
231
                             DROP ;
232
                             SWAP ;
233
                             DUP ;
234
                             DUG 2 ;
235
                             UNPAIR ;
236
                             UNPAIR ;
237
                             UNPAIR ;
238
                             SWAP ;
239
                             UNPAIR ;
240
                             SWAP ;
241
                             DUP 8 ;
242
                             DIG 7 ;
243
                             DUP ;
244
                             CAR ;
245
                             GET 6 ;
246
                             SWAP ;
247
                             CAR ;
248
                             CAR ;
249
                             GET 4 ;
250
                             PUSH string "DEFI" ;
251
                             GET ;
252
                             IF_NONE { PUSH nat 0 } {} ;
253
                             PAIR ;
254
                             EXEC ;
255
                             SOME ;
256
                             PUSH string "DEFI" ;
257
                             UPDATE ;
258
                             SWAP ;
259
                             PAIR ;
260
                             SWAP ;
261
                             PAIR ;
262
                             PAIR ;
263
                             PAIR ;
264
                             DUP ;
265
                             DUG 2 ;
266
                             UNPAIR ;
267
                             UNPAIR ;
268
                             UNPAIR ;
269
                             SWAP ;
270
                             UNPAIR ;
271
                             SWAP ;
272
                             DUP 8 ;
273
                             DIG 7 ;
274
                             DUP ;
275
                             GET 7 ;
276
                             SWAP ;
277
                             CAR ;
278
                             CAR ;
279
                             GET 4 ;
280
                             PUSH string "XTZ" ;
281
                             GET ;
282
                             IF_NONE { PUSH nat 0 } {} ;
283
                             PAIR ;
284
                             EXEC ;
285
                             SOME ;
286
                             PUSH string "XTZ" ;
287
                             UPDATE ;
288
                             SWAP ;
289
                             PAIR ;
290
                             SWAP ;
291
                             PAIR ;
292
                             PAIR ;
293
                             PAIR ;
294
                             DUP ;
295
                             DUG 2 ;
296
                             UNPAIR ;
297
                             UNPAIR ;
298
                             UNPAIR ;
299
                             SWAP ;
300
                             CDR ;
301
                             DIG 6 ;
302
                             DIG 6 ;
303
                             DUP ;
304
                             CAR ;
305
                             GET 5 ;
306
                             SWAP ;
307
                             CAR ;
308
                             CAR ;
309
                             GET 4 ;
310
                             PUSH string "BTC" ;
311
                             GET ;
312
                             IF_NONE { PUSH nat 0 } {} ;
313
                             PAIR ;
314
                             EXEC ;
315
                             SOME ;
316
                             PUSH string "BTC" ;
317
                             UPDATE ;
318
                             DIG 4 ;
319
                             PAIR ;
320
                             SWAP ;
321
                             PAIR ;
322
                             PAIR ;
323
                             PAIR }
324
                           { DROP 3 ; SWAP ; DROP } }
325
                       { DROP 3 ; SWAP ; DROP } }
326
                   { DROP 3 ; SWAP ; DROP } } }
327
           { DIG 2 ;
328
             DROP ;
329
             IF_LEFT
330
               { SWAP ;
331
                 DUP ;
332
                 DUG 2 ;
333
                 CAR ;
334
                 CAR ;
335
                 CAR ;
336
                 SENDER ;
337
                 COMPARE ;
338
                 EQ ;
339
                 IF {} { PUSH int 401 ; FAILWITH } ;
340
                 SWAP ;
341
                 DUP ;
342
                 GET 5 ;
343
                 PUSH bool False ;
344
                 DIG 3 ;
345
                 UPDATE ;
346
                 UPDATE 5 }
347
               { IF_LEFT
348
                   { SWAP ;
349
                     DUP ;
350
                     DUG 2 ;
351
                     CAR ;
352
                     CAR ;
353
                     CAR ;
354
                     SENDER ;
355
                     COMPARE ;
356
                     EQ ;
357
                     IF {} { PUSH int 401 ; FAILWITH } ;
358
                     SWAP ;
359
                     UNPAIR ;
360
                     UNPAIR ;
361
                     CDR ;
362
                     DIG 3 ;
363
                     PAIR ;
364
                     PAIR ;
365
                     PAIR }
366
                   { SWAP ;
367
                     DUP ;
368
                     DUG 2 ;
369
                     CAR ;
370
                     CAR ;
371
                     CAR ;
372
                     SENDER ;
373
                     COMPARE ;
374
                     EQ ;
375
                     IF {} { PUSH int 401 ; FAILWITH } ;
376
                     SWAP ;
377
                     UNPAIR ;
378
                     SWAP ;
379
                     UNPAIR ;
380
                     UNPAIR ;
381
                     SWAP ;
382
                     CAR ;
383
                     DIG 4 ;
384
                     SWAP ;
385
                     PAIR ;
386
                     SWAP ;
387
                     PAIR ;
388
                     PAIR ;
389
                     SWAP ;
390
                     PAIR } } } ;
391
         NIL operation ;
392
         PAIR } ;
393
  view "get_price" string nat
394
        { UNPAIR ;
395
          SWAP ;
396
          DUP ;
397
          DUG 2 ;
398
          GET 8 ;
399
          PUSH nat 900 ;
400
          PUSH timestamp "1970-01-01T00:00:00Z" ;
401
          NOW ;
402
          SUB ;
403
          ISNAT ;
404
          IF_NONE { PUSH int 122 ; FAILWITH } {} ;
405
          EDIV ;
406
          IF_NONE { PUSH int 122 ; FAILWITH } { CAR } ;
407
          SUB ;
408
          ISNAT ;
409
          IF_NONE { PUSH int 123 ; FAILWITH } {} ;
410
          DUP 3 ;
411
          CAR ;
412
          CAR ;
413
          GET 3 ;
414
          COMPARE ;
415
          GT ;
416
          IF {} { PUSH int 900 ; FAILWITH } ;
417
          SWAP ;
418
          CAR ;
419
          CAR ;
420
          GET 4 ;
421
          SWAP ;
422
          GET ;
423
          IF_NONE { PUSH int 124 ; FAILWITH } {} } }