BCD

Tezos Contract Explorer
Search Networks Deploy
  • Home
  • /
  • Tallinnnet
  • /
  • KT1AafH...BUUo
FA1FA1.2
operations (0)Storage Code Interact Tokens Fork Details
Latest
​x
327
 
1
parameter (or
2
            (or
3
              (or (pair %approve (address %spender) (nat %value))
4
                  (pair %getAllowance
5
                    (pair %request (address %owner) (address %spender))
6
                    (contract %callback nat)))
7
              (or (pair %getBalance (address %owner) (contract %callback nat))
8
                  (pair %getTotalSupply (unit %request) (contract %callback nat))))
9
            (or (pair %mintOrBurn (int %quantity) (address %target))
10
                (pair %transfer (address %from) (pair (address %to) (nat %value)))));
11
storage (pair (big_map %tokens address nat)
12
              (pair (big_map %allowances (pair (address %owner) (address %spender)) nat)
13
                    (pair (address %admin) (nat %total_supply))));
14
code { DUP ;
15
       CDR ;
16
       PUSH mutez 0 ;
17
       AMOUNT ;
18
       COMPARE ;
19
       NEQ ;
20
       IF { PUSH string "DontSendTez" ; FAILWITH } {} ;
21
       SWAP ;
22
       CAR ;
23
       IF_LEFT
24
         { IF_LEFT
25
             { IF_LEFT
26
                 { SWAP ;
27
                   DUP ;
28
                   DUG 2 ;
29
                   CDR ;
30
                   CAR ;
31
                   SWAP ;
32
                   DUP ;
33
                   DUG 2 ;
34
                   CAR ;
35
                   SENDER ;
36
                   PAIR ;
37
                   PUSH nat 0 ;
38
                   DIG 3 ;
39
                   DUP ;
40
                   DUG 4 ;
41
                   CDR ;
42
                   COMPARE ;
43
                   GT ;
44
                   PUSH nat 0 ;
45
                   DIG 3 ;
46
                   DUP ;
47
                   DUG 4 ;
48
                   DIG 3 ;
49
                   DUP ;
50
                   DUG 4 ;
51
                   GET ;
52
                   IF_NONE { PUSH nat 0 } {} ;
53
                   COMPARE ;
54
                   GT ;
55
                   AND ;
56
                   IF { PUSH string "UnsafeAllowanceChange" ; FAILWITH } {} ;
57
                   DIG 3 ;
58
                   DUP ;
59
                   DUG 4 ;
60
                   CDR ;
61
                   CDR ;
62
                   DIG 2 ;
63
                   DIG 3 ;
64
                   CDR ;
65
                   PUSH nat 0 ;
66
                   SWAP ;
67
                   DUP ;
68
                   DUG 2 ;
69
                   COMPARE ;
70
                   EQ ;
71
                   IF { DROP ; NONE nat } { SOME } ;
72
                   DIG 3 ;
73
                   UPDATE ;
74
                   PAIR ;
75
                   SWAP ;
76
                   CAR ;
77
                   PAIR ;
78
                   NIL operation ;
79
                   PAIR }
80
                 { SWAP ;
81
                   DUP ;
82
                   DIG 2 ;
83
                   NIL operation ;
84
                   SWAP ;
85
                   DUP ;
86
                   DUG 2 ;
87
                   CDR ;
88
                   PUSH mutez 0 ;
89
                   DIG 4 ;
90
                   CDR ;
91
                   CAR ;
92
                   DIG 4 ;
93
                   CAR ;
94
                   GET ;
95
                   IF_NONE { PUSH nat 0 } {} ;
96
                   TRANSFER_TOKENS ;
97
                   CONS ;
98
                   PAIR } }
99
             { IF_LEFT
100
                 { SWAP ;
101
                   DUP ;
102
                   DIG 2 ;
103
                   NIL operation ;
104
                   SWAP ;
105
                   DUP ;
106
                   DUG 2 ;
107
                   CDR ;
108
                   PUSH mutez 0 ;
109
                   DIG 4 ;
110
                   CAR ;
111
                   DIG 4 ;
112
                   CAR ;
113
                   GET ;
114
                   IF_NONE { PUSH nat 0 } {} ;
115
                   TRANSFER_TOKENS ;
116
                   CONS ;
117
                   PAIR }
118
                 { SWAP ;
119
                   DUP ;
120
                   DIG 2 ;
121
                   NIL operation ;
122
                   SWAP ;
123
                   CDR ;
124
                   PUSH mutez 0 ;
125
                   DIG 3 ;
126
                   CDR ;
127
                   CDR ;
128
                   CDR ;
129
                   TRANSFER_TOKENS ;
130
                   CONS ;
131
                   PAIR } } }
132
         { IF_LEFT
133
             { SWAP ;
134
               DUP ;
135
               DUG 2 ;
136
               CDR ;
137
               CDR ;
138
               CAR ;
139
               SENDER ;
140
               COMPARE ;
141
               NEQ ;
142
               IF { PUSH string "OnlyAdmin" ; FAILWITH } {} ;
143
               DUP ;
144
               CAR ;
145
               DIG 2 ;
146
               DUP ;
147
               DUG 3 ;
148
               CAR ;
149
               DIG 2 ;
150
               DUP ;
151
               DUG 3 ;
152
               CDR ;
153
               GET ;
154
               IF_NONE { PUSH nat 0 } {} ;
155
               ADD ;
156
               ISNAT ;
157
               IF_NONE
158
                 { PUSH string "Cannot burn more than the target's balance." ; FAILWITH }
159
                 {} ;
160
               SWAP ;
161
               DUP ;
162
               DUG 2 ;
163
               CAR ;
164
               DIG 3 ;
165
               DUP ;
166
               DUG 4 ;
167
               CDR ;
168
               CDR ;
169
               CDR ;
170
               ADD ;
171
               ABS ;
172
               DIG 3 ;
173
               DUP ;
174
               DUG 4 ;
175
               CDR ;
176
               DIG 4 ;
177
               CAR ;
178
               PUSH nat 0 ;
179
               DIG 4 ;
180
               DUP ;
181
               DUG 5 ;
182
               COMPARE ;
183
               EQ ;
184
               IF { DIG 3 ; DROP ; NONE nat } { DIG 3 ; SOME } ;
185
               DIG 4 ;
186
               CDR ;
187
               UPDATE ;
188
               PAIR ;
189
               DUP ;
190
               DUG 2 ;
191
               CDR ;
192
               CDR ;
193
               CAR ;
194
               PAIR ;
195
               SWAP ;
196
               DUP ;
197
               DUG 2 ;
198
               CDR ;
199
               CAR ;
200
               PAIR ;
201
               SWAP ;
202
               CAR ;
203
               PAIR ;
204
               NIL operation ;
205
               PAIR }
206
             { SWAP ;
207
               DUP ;
208
               DUG 2 ;
209
               CDR ;
210
               CAR ;
211
               DIG 2 ;
212
               DUP ;
213
               DUG 3 ;
214
               CAR ;
215
               DIG 2 ;
216
               DUP ;
217
               DUG 3 ;
218
               CAR ;
219
               SENDER ;
220
               COMPARE ;
221
               EQ ;
222
               IF
223
                 { SWAP }
224
                 { SENDER ;
225
                   DIG 3 ;
226
                   DUP ;
227
                   DUG 4 ;
228
                   CAR ;
229
                   PAIR ;
230
                   DIG 3 ;
231
                   DUP ;
232
                   DUG 4 ;
233
                   CDR ;
234
                   CDR ;
235
                   DIG 3 ;
236
                   DUP ;
237
                   DUG 4 ;
238
                   DIG 2 ;
239
                   DUP ;
240
                   DUG 3 ;
241
                   GET ;
242
                   IF_NONE { PUSH nat 0 } {} ;
243
                   SUB ;
244
                   ISNAT ;
245
                   IF_NONE { PUSH string "NotEnoughAllowance" ; FAILWITH } {} ;
246
                   DIG 3 ;
247
                   PUSH nat 0 ;
248
                   DIG 2 ;
249
                   DUP ;
250
                   DUG 3 ;
251
                   COMPARE ;
252
                   EQ ;
253
                   IF { SWAP ; DROP ; NONE nat } { SWAP ; SOME } ;
254
                   DIG 2 ;
255
                   UPDATE } ;
256
               DIG 2 ;
257
               DUP ;
258
               DUG 3 ;
259
               CDR ;
260
               CDR ;
261
               DIG 2 ;
262
               DUP ;
263
               DUG 3 ;
264
               DIG 4 ;
265
               DUP ;
266
               DUG 5 ;
267
               CAR ;
268
               GET ;
269
               IF_NONE { PUSH nat 0 } {} ;
270
               SUB ;
271
               ISNAT ;
272
               IF_NONE { PUSH string "NotEnoughBalance" ; FAILWITH } {} ;
273
               DIG 2 ;
274
               PUSH nat 0 ;
275
               DIG 2 ;
276
               DUP ;
277
               DUG 3 ;
278
               COMPARE ;
279
               EQ ;
280
               IF { SWAP ; DROP ; NONE nat } { SWAP ; SOME } ;
281
               DIG 3 ;
282
               DUP ;
283
               DUG 4 ;
284
               CAR ;
285
               UPDATE ;
286
               DIG 2 ;
287
               DUP ;
288
               DUG 3 ;
289
               CDR ;
290
               CDR ;
291
               SWAP ;
292
               DUP ;
293
               DUG 2 ;
294
               DIG 4 ;
295
               DUP ;
296
               DUG 5 ;
297
               CDR ;
298
               CAR ;
299
               GET ;
300
               IF_NONE { PUSH nat 0 } {} ;
301
               ADD ;
302
               SWAP ;
303
               PUSH nat 0 ;
304
               DIG 2 ;
305
               DUP ;
306
               DUG 3 ;
307
               COMPARE ;
308
               EQ ;
309
               IF { SWAP ; DROP ; NONE nat } { SWAP ; SOME } ;
310
               DIG 3 ;
311
               CDR ;
312
               CAR ;
313
               UPDATE ;
314
               DIG 2 ;
315
               CDR ;
316
               SWAP ;
317
               PAIR ;
318
               DUP ;
319
               CDR ;
320
               CDR ;
321
               DIG 2 ;
322
               PAIR ;
323
               SWAP ;
324
               CAR ;
325
               PAIR ;
326
               NIL operation ;
327
               PAIR } } }