BCD

Tezos Contract Explorer
Search Networks Deploy
  • Home
  • /
  • Mainnet
  • /
  • Youves on demand proxy oracle
operations (3)Storage Code Interact Tokens Metadata Fork Views Statistics Details
Latest
​x
106
 
1
{ parameter (or (or (address %propose_administrator) (address %remove_administrator))
2
                (or (unit %set_administrator) (address %update_oracle_address))) ;
3
  storage (pair (big_map %administrators address nat)
4
                (pair (big_map %metadata string bytes) (address %oracle))) ;
5
  code { LAMBDA
6
           (pair unit (pair (big_map address nat) (pair (big_map string bytes) address)))
7
           (pair unit (pair (big_map address nat) (pair (big_map string bytes) address)))
8
           { CDR ;
9
             DUP ;
10
             CAR ;
11
             PUSH nat 1 ;
12
             SWAP ;
13
             SENDER ;
14
             GET ;
15
             IF_NONE { PUSH int 21 ; FAILWITH } {} ;
16
             COMPARE ;
17
             EQ ;
18
             IF {} { PUSH int 401 ; FAILWITH } ;
19
             UNIT ;
20
             PAIR } ;
21
         SWAP ;
22
         UNPAIR ;
23
         IF_LEFT
24
           { IF_LEFT
25
               { AMOUNT ;
26
                 PUSH mutez 0 ;
27
                 COMPARE ;
28
                 EQ ;
29
                 IF {} { AMOUNT ; FAILWITH } ;
30
                 DIG 2 ;
31
                 UNIT ;
32
                 SWAP ;
33
                 DIG 3 ;
34
                 DIG 2 ;
35
                 PAIR ;
36
                 EXEC ;
37
                 CDR ;
38
                 DUP ;
39
                 CAR ;
40
                 PUSH (option nat) (Some 0) ;
41
                 DIG 3 ;
42
                 UPDATE ;
43
                 UPDATE 1 }
44
               { AMOUNT ;
45
                 PUSH mutez 0 ;
46
                 COMPARE ;
47
                 EQ ;
48
                 IF {} { AMOUNT ; FAILWITH } ;
49
                 DIG 2 ;
50
                 UNIT ;
51
                 SWAP ;
52
                 DIG 3 ;
53
                 DIG 2 ;
54
                 PAIR ;
55
                 EXEC ;
56
                 CDR ;
57
                 DUP ;
58
                 CAR ;
59
                 NONE nat ;
60
                 DIG 3 ;
61
                 UPDATE ;
62
                 UPDATE 1 } }
63
           { IF_LEFT
64
               { DROP ;
65
                 SWAP ;
66
                 DROP ;
67
                 AMOUNT ;
68
                 PUSH mutez 0 ;
69
                 COMPARE ;
70
                 EQ ;
71
                 IF {} { AMOUNT ; FAILWITH } ;
72
                 DUP ;
73
                 CAR ;
74
                 PUSH nat 0 ;
75
                 SWAP ;
76
                 SENDER ;
77
                 GET ;
78
                 IF_NONE { PUSH int 46 ; FAILWITH } {} ;
79
                 COMPARE ;
80
                 EQ ;
81
                 IF {} { PUSH int 405 ; FAILWITH } ;
82
                 DUP ;
83
                 CAR ;
84
                 PUSH (option nat) (Some 1) ;
85
                 SENDER ;
86
                 UPDATE ;
87
                 UPDATE 1 }
88
               { DIG 2 ; UNIT ; SWAP ; DIG 3 ; DIG 2 ; PAIR ; EXEC ; CDR ; SWAP ; UPDATE 4 } } ;
89
         NIL operation ;
90
         PAIR } ;
91
  view "get_price" string nat
92
        { UNPAIR ;
93
          SWAP ;
94
          GET 4 ;
95
          SWAP ;
96
          VIEW "get_price" nat ;
97
          IF_NONE { PUSH string "Invalid view" ; FAILWITH } {} } ;
98
  view "get_price_with_timestamp" string
99
        (pair (nat %price) (timestamp %last_update_timestamp))
100
        { UNPAIR ;
101
          SWAP ;
102
          GET 4 ;
103
          SWAP ;
104
          VIEW "get_price_with_timestamp"
105
                (pair (nat %price) (timestamp %last_update_timestamp)) ;
106
          IF_NONE { PUSH string "Invalid view" ; FAILWITH } {} } }