BCD

Tezos Contract Explorer
Search Networks Deploy
  • Home
  • /
  • Mainnet
  • /
  • KT1TSwS...3FAk
operations (3)Storage Code Interact Tokens Fork Views Statistics Details
Latest
​x
214
 
1
{ parameter (or
2
              (or (unit %default)
3
                  (or (address %propose_administrator) (address %remove_administrator)))
4
              (or (or (unit %set_administrator) (address %set_generic_oracle))
5
                  (or (address %set_sirs_oracle)
6
                      (list %set_symbol_relation_path (pair (string %symbol)
7
                                                           (bool %inversed)))))) ;
8
  storage (pair (pair (big_map %administrators address int) (address %generic_oracle))
9
                (pair (address %sirs_oracle)
10
                      (list %symbol_relation_path (pair (string %symbol) (bool %inversed))))) ;
11
  code { LAMBDA
12
           (pair unit
13
                 (pair (pair (big_map address int) address)
14
                       (pair address (list (pair string bool)))))
15
           (pair unit
16
                 (pair (pair (big_map address int) address)
17
                       (pair address (list (pair string bool)))))
18
           { CDR ;
19
             DUP ;
20
             CAR ;
21
             CAR ;
22
             PUSH int 1 ;
23
             SWAP ;
24
             SENDER ;
25
             GET ;
26
             IF_NONE { PUSH int 21 ; FAILWITH } {} ;
27
             COMPARE ;
28
             EQ ;
29
             IF {} { PUSH int 401 ; FAILWITH } ;
30
             UNIT ;
31
             PAIR } ;
32
         SWAP ;
33
         UNPAIR ;
34
         IF_LEFT
35
           { IF_LEFT
36
               { DROP ;
37
                 SWAP ;
38
                 DROP ;
39
                 NIL operation ;
40
                 SENDER ;
41
                 CONTRACT unit ;
42
                 IF_NONE { PUSH int 131 ; FAILWITH } {} ;
43
                 AMOUNT ;
44
                 UNIT ;
45
                 TRANSFER_TOKENS ;
46
                 CONS }
47
               { IF_LEFT
48
                   { AMOUNT ;
49
                     PUSH mutez 0 ;
50
                     COMPARE ;
51
                     EQ ;
52
                     IF {} { AMOUNT ; FAILWITH } ;
53
                     DIG 2 ;
54
                     UNIT ;
55
                     SWAP ;
56
                     DIG 3 ;
57
                     DIG 2 ;
58
                     PAIR ;
59
                     EXEC ;
60
                     CDR ;
61
                     UNPAIR ;
62
                     UNPAIR ;
63
                     PUSH (option int) (Some 0) ;
64
                     DIG 4 ;
65
                     UPDATE ;
66
                     PAIR ;
67
                     PAIR }
68
                   { AMOUNT ;
69
                     PUSH mutez 0 ;
70
                     COMPARE ;
71
                     EQ ;
72
                     IF {} { AMOUNT ; FAILWITH } ;
73
                     DIG 2 ;
74
                     UNIT ;
75
                     SWAP ;
76
                     DIG 3 ;
77
                     DIG 2 ;
78
                     PAIR ;
79
                     EXEC ;
80
                     CDR ;
81
                     UNPAIR ;
82
                     UNPAIR ;
83
                     NONE int ;
84
                     DIG 4 ;
85
                     UPDATE ;
86
                     PAIR ;
87
                     PAIR } ;
88
                 NIL operation } }
89
           { IF_LEFT
90
               { IF_LEFT
91
                   { DROP ;
92
                     SWAP ;
93
                     DROP ;
94
                     AMOUNT ;
95
                     PUSH mutez 0 ;
96
                     COMPARE ;
97
                     EQ ;
98
                     IF {} { AMOUNT ; FAILWITH } ;
99
                     DUP ;
100
                     CAR ;
101
                     CAR ;
102
                     PUSH int 0 ;
103
                     SWAP ;
104
                     SENDER ;
105
                     GET ;
106
                     IF_NONE { PUSH int 46 ; FAILWITH } {} ;
107
                     COMPARE ;
108
                     EQ ;
109
                     IF {} { PUSH int 405 ; FAILWITH } ;
110
                     UNPAIR ;
111
                     UNPAIR ;
112
                     PUSH (option int) (Some 1) ;
113
                     SENDER ;
114
                     UPDATE ;
115
                     PAIR ;
116
                     PAIR }
117
                   { AMOUNT ;
118
                     PUSH mutez 0 ;
119
                     COMPARE ;
120
                     EQ ;
121
                     IF {} { AMOUNT ; FAILWITH } ;
122
                     DIG 2 ;
123
                     UNIT ;
124
                     SWAP ;
125
                     DIG 3 ;
126
                     DIG 2 ;
127
                     PAIR ;
128
                     EXEC ;
129
                     CDR ;
130
                     UNPAIR ;
131
                     CAR ;
132
                     DIG 2 ;
133
                     SWAP ;
134
                     PAIR ;
135
                     PAIR } }
136
               { IF_LEFT
137
                   { AMOUNT ;
138
                     PUSH mutez 0 ;
139
                     COMPARE ;
140
                     EQ ;
141
                     IF {} { AMOUNT ; FAILWITH } ;
142
                     DIG 2 ;
143
                     UNIT ;
144
                     SWAP ;
145
                     DIG 3 ;
146
                     DIG 2 ;
147
                     PAIR ;
148
                     EXEC ;
149
                     CDR ;
150
                     SWAP ;
151
                     UPDATE 3 }
152
                   { AMOUNT ;
153
                     PUSH mutez 0 ;
154
                     COMPARE ;
155
                     EQ ;
156
                     IF {} { AMOUNT ; FAILWITH } ;
157
                     DIG 2 ;
158
                     UNIT ;
159
                     SWAP ;
160
                     DIG 3 ;
161
                     DIG 2 ;
162
                     PAIR ;
163
                     EXEC ;
164
                     CDR ;
165
                     SWAP ;
166
                     UPDATE 4 } } ;
167
             NIL operation } ;
168
         PAIR } ;
169
  view "get_price" unit nat
170
        { UNPAIR ;
171
          PUSH nat 1000000 ;
172
          DUP 3 ;
173
          GET 4 ;
174
          ITER { DUP ;
175
                 CDR ;
176
                 PUSH bool False ;
177
                 COMPARE ;
178
                 EQ ;
179
                 IF
180
                   { PUSH nat 1000000 ;
181
                     DUP 5 ;
182
                     CAR ;
183
                     CDR ;
184
                     DIG 2 ;
185
                     CAR ;
186
                     VIEW "get_price" nat ;
187
                     IF_NONE { PUSH int 502 ; FAILWITH } {} ;
188
                     DIG 2 ;
189
                     MUL ;
190
                     EDIV ;
191
                     IF_NONE { PUSH int 160 ; FAILWITH } { CAR } }
192
                   { DUP 4 ;
193
                     CAR ;
194
                     CDR ;
195
                     SWAP ;
196
                     CAR ;
197
                     VIEW "get_price" nat ;
198
                     IF_NONE { PUSH int 502 ; FAILWITH } {} ;
199
                     PUSH nat 1000000 ;
200
                     DIG 2 ;
201
                     MUL ;
202
                     EDIV ;
203
                     IF_NONE { PUSH int 162 ; FAILWITH } { CAR } } } ;
204
          SWAP ;
205
          DROP ;
206
          PUSH nat 1000000 ;
207
          DIG 2 ;
208
          GET 3 ;
209
          UNIT ;
210
          VIEW "get_price" nat ;
211
          IF_NONE { PUSH int 502 ; FAILWITH } {} ;
212
          MUL ;
213
          EDIV ;
214
          IF_NONE { PUSH int 166 ; FAILWITH } { CAR } } }