BCD

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