BCD

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