BCD

Tezos Contract Explorer
Search Networks Deploy
  • Home
  • /
  • Ghostnet
  • /
  • HEN Community Marketplace
operations (1)Storage Code Interact Tokens Metadata Fork Views Statistics Details
Latest
​x
586
 
1
{ parameter (or
2
              (or (or (unit %accept_manager) (or (address %add_fa2) (nat %cancel_swap)))
3
                  (or (nat %collect)
4
                      (or (address %remove_fa2) (bool %set_pause_collects))))
5
              (or
6
                (or (bool %set_pause_swaps)
7
                    (or
8
                      (pair %swap (address %fa2)
9
                                  (pair (nat %objkt_id)
10
                                        (pair (nat %objkt_amount)
11
                                              (pair (mutez %xtz_per_objkt)
12
                                                    (pair (nat %royalties)
13
                                                          (address %creator))))))
14
                      (address %transfer_manager)))
15
                (or (nat %update_fee)
16
                    (or (address %update_fee_recipient)
17
                        (pair %update_metadata (string %key) (bytes %value)))))) ;
18
  storage (pair
19
            (pair (pair (big_map %allowed_fa2s address unit) (bool %collects_paused))
20
                  (pair (nat %counter) (pair (nat %fee) (address %fee_recipient))))
21
            (pair (pair (address %manager) (big_map %metadata string bytes))
22
                  (pair (option %proposed_manager address)
23
                        (pair
24
                          (big_map %swaps nat
25
                                          (pair (address %issuer)
26
                                                (pair (address %fa2)
27
                                                      (pair (nat %objkt_id)
28
                                                            (pair (nat %objkt_amount)
29
                                                                  (pair
30
                                                                    (mutez %xtz_per_objkt)
31
                                                                    (pair
32
                                                                      (nat %royalties)
33
                                                                      (address %creator))))))))
34
                          (bool %swaps_paused))))) ;
35
  code { UNPAIR ;
36
         IF_LEFT
37
           { IF_LEFT
38
               { IF_LEFT
39
                   { DROP ;
40
                     DUP ;
41
                     GET 5 ;
42
                     IF_NONE { PUSH string "MP_NO_NEW_MANAGER" ; FAILWITH } { DROP } ;
43
                     DUP ;
44
                     GET 5 ;
45
                     IF_NONE { PUSH int 352 ; FAILWITH } {} ;
46
                     SENDER ;
47
                     COMPARE ;
48
                     EQ ;
49
                     IF {} { PUSH string "MP_NOT_PROPOSED_MANAGER" ; FAILWITH } ;
50
                     PUSH mutez 0 ;
51
                     AMOUNT ;
52
                     COMPARE ;
53
                     EQ ;
54
                     IF {} { PUSH string "MP_TEZ_TRANSFER" ; FAILWITH } ;
55
                     UNPAIR ;
56
                     SWAP ;
57
                     UNPAIR ;
58
                     CDR ;
59
                     SENDER ;
60
                     PAIR ;
61
                     PAIR ;
62
                     SWAP ;
63
                     PAIR ;
64
                     NONE address ;
65
                     UPDATE 5 ;
66
                     NIL operation }
67
                   { IF_LEFT
68
                       { DUP 2 ;
69
                         GET 3 ;
70
                         CAR ;
71
                         SENDER ;
72
                         COMPARE ;
73
                         EQ ;
74
                         IF {} { PUSH string "MP_NOT_MANAGER" ; FAILWITH } ;
75
                         PUSH mutez 0 ;
76
                         AMOUNT ;
77
                         COMPARE ;
78
                         EQ ;
79
                         IF {} { PUSH string "MP_TEZ_TRANSFER" ; FAILWITH } ;
80
                         SWAP ;
81
                         UNPAIR ;
82
                         UNPAIR ;
83
                         UNPAIR ;
84
                         PUSH (option unit) (Some Unit) ;
85
                         DIG 5 ;
86
                         UPDATE ;
87
                         PAIR ;
88
                         PAIR ;
89
                         PAIR ;
90
                         NIL operation }
91
                       { PUSH mutez 0 ;
92
                         AMOUNT ;
93
                         COMPARE ;
94
                         EQ ;
95
                         IF {} { PUSH string "MP_TEZ_TRANSFER" ; FAILWITH } ;
96
                         DUP 2 ;
97
                         GET 7 ;
98
                         DUP 2 ;
99
                         MEM ;
100
                         IF {} { PUSH string "MP_WRONG_SWAP_ID" ; FAILWITH } ;
101
                         DUP 2 ;
102
                         GET 7 ;
103
                         DUP 2 ;
104
                         GET ;
105
                         IF_NONE { PUSH int 253 ; FAILWITH } {} ;
106
                         DUP ;
107
                         CAR ;
108
                         SENDER ;
109
                         COMPARE ;
110
                         EQ ;
111
                         IF {} { PUSH string "MP_NOT_SWAP_ISSUER" ; FAILWITH } ;
112
                         PUSH nat 0 ;
113
                         DUP 2 ;
114
                         GET 7 ;
115
                         COMPARE ;
116
                         GT ;
117
                         IF {} { PUSH string "MP_SWAP_COLLECTED" ; FAILWITH } ;
118
                         NIL operation ;
119
                         DUP 2 ;
120
                         GET 3 ;
121
                         CONTRACT %transfer (list (pair (address %from_)
122
                                                       (list %txs (pair (address %to_)
123
                                                                       (pair
124
                                                                         (nat %token_id)
125
                                                                         (nat %amount)))))) ;
126
                         IF_NONE { PUSH int 620 ; FAILWITH } {} ;
127
                         PUSH mutez 0 ;
128
                         NIL (pair address (list (pair address (pair nat nat)))) ;
129
                         NIL (pair address (pair nat nat)) ;
130
                         DIG 5 ;
131
                         DUP ;
132
                         GET 7 ;
133
                         SWAP ;
134
                         GET 5 ;
135
                         SENDER ;
136
                         PAIR 3 ;
137
                         CONS ;
138
                         SELF_ADDRESS ;
139
                         PAIR ;
140
                         CONS ;
141
                         TRANSFER_TOKENS ;
142
                         CONS ;
143
                         DIG 2 ;
144
                         DUP ;
145
                         GET 7 ;
146
                         NONE (pair address
147
                                    (pair address
148
                                          (pair nat
149
                                                (pair nat
150
                                                      (pair mutez (pair nat address)))))) ;
151
                         DIG 4 ;
152
                         UPDATE ;
153
                         UPDATE 7 ;
154
                         SWAP } } }
155
               { IF_LEFT
156
                   { DUP 2 ;
157
                     CAR ;
158
                     CAR ;
159
                     CDR ;
160
                     IF { PUSH string "MP_COLLECTS_PAUSED" ; FAILWITH } {} ;
161
                     DUP 2 ;
162
                     GET 7 ;
163
                     DUP 2 ;
164
                     MEM ;
165
                     IF {} { PUSH string "MP_WRONG_SWAP_ID" ; FAILWITH } ;
166
                     DUP 2 ;
167
                     GET 7 ;
168
                     DUP 2 ;
169
                     GET ;
170
                     IF_NONE { PUSH int 190 ; FAILWITH } {} ;
171
                     DUP ;
172
                     CAR ;
173
                     SENDER ;
174
                     COMPARE ;
175
                     NEQ ;
176
                     IF {} { PUSH string "MP_IS_SWAP_ISSUER" ; FAILWITH } ;
177
                     DUP ;
178
                     GET 9 ;
179
                     AMOUNT ;
180
                     COMPARE ;
181
                     EQ ;
182
                     IF {} { PUSH string "MP_WRONG_TEZ_AMOUNT" ; FAILWITH } ;
183
                     PUSH nat 0 ;
184
                     DUP 2 ;
185
                     GET 7 ;
186
                     COMPARE ;
187
                     GT ;
188
                     IF {} { PUSH string "MP_SWAP_COLLECTED" ; FAILWITH } ;
189
                     PUSH mutez 0 ;
190
                     DUP 2 ;
191
                     GET 9 ;
192
                     COMPARE ;
193
                     NEQ ;
194
                     IF
195
                       { PUSH nat 1000 ;
196
                         DUP 2 ;
197
                         GET 11 ;
198
                         DUP 3 ;
199
                         GET 9 ;
200
                         MUL ;
201
                         EDIV ;
202
                         IF_NONE { PUSH int 203 ; FAILWITH } {} ;
203
                         CAR ;
204
                         PUSH mutez 0 ;
205
                         DUP 2 ;
206
                         COMPARE ;
207
                         GT ;
208
                         IF
209
                           { NIL operation ;
210
                             DUP 3 ;
211
                             GET 12 ;
212
                             CONTRACT unit ;
213
                             IF_NONE { PUSH int 208 ; FAILWITH } {} ;
214
                             DUP 3 ;
215
                             UNIT ;
216
                             TRANSFER_TOKENS ;
217
                             CONS }
218
                           { NIL operation } ;
219
                         PUSH nat 1000 ;
220
                         DUP 6 ;
221
                         CAR ;
222
                         GET 5 ;
223
                         DUP 5 ;
224
                         GET 9 ;
225
                         MUL ;
226
                         EDIV ;
227
                         IF_NONE { PUSH int 211 ; FAILWITH } {} ;
228
                         CAR ;
229
                         PUSH mutez 0 ;
230
                         DUP 2 ;
231
                         COMPARE ;
232
                         GT ;
233
                         IF
234
                           { SWAP ;
235
                             DUP 6 ;
236
                             CAR ;
237
                             GET 6 ;
238
                             CONTRACT unit ;
239
                             IF_NONE { PUSH int 216 ; FAILWITH } {} ;
240
                             DUP 3 ;
241
                             UNIT ;
242
                             TRANSFER_TOKENS ;
243
                             CONS ;
244
                             SWAP }
245
                           {} ;
246
                         SWAP ;
247
                         DUP 4 ;
248
                         CAR ;
249
                         CONTRACT unit ;
250
                         IF_NONE { PUSH int 219 ; FAILWITH } {} ;
251
                         DIG 2 ;
252
                         DIG 3 ;
253
                         AMOUNT ;
254
                         SUB_MUTEZ ;
255
                         IF_NONE { PUSH int 219 ; FAILWITH } {} ;
256
                         SUB_MUTEZ ;
257
                         IF_NONE { PUSH int 219 ; FAILWITH } {} ;
258
                         UNIT ;
259
                         TRANSFER_TOKENS ;
260
                         CONS }
261
                       { NIL operation } ;
262
                     DUP 2 ;
263
                     GET 3 ;
264
                     CONTRACT %transfer (list (pair (address %from_)
265
                                                   (list %txs (pair (address %to_)
266
                                                                   (pair (nat %token_id)
267
                                                                         (nat %amount)))))) ;
268
                     IF_NONE { PUSH int 620 ; FAILWITH } {} ;
269
                     PUSH mutez 0 ;
270
                     NIL (pair address (list (pair address (pair nat nat)))) ;
271
                     NIL (pair address (pair nat nat)) ;
272
                     PUSH nat 1 ;
273
                     DUP 7 ;
274
                     GET 5 ;
275
                     SENDER ;
276
                     PAIR 3 ;
277
                     CONS ;
278
                     SELF_ADDRESS ;
279
                     PAIR ;
280
                     CONS ;
281
                     TRANSFER_TOKENS ;
282
                     CONS ;
283
                     DIG 3 ;
284
                     DUP ;
285
                     GET 7 ;
286
                     DUP ;
287
                     DIG 5 ;
288
                     DUP ;
289
                     DUG 2 ;
290
                     GET ;
291
                     IF_NONE { PUSH int 230 ; FAILWITH } {} ;
292
                     PUSH nat 1 ;
293
                     DIG 6 ;
294
                     GET 7 ;
295
                     SUB ;
296
                     ISNAT ;
297
                     IF_NONE { PUSH int 230 ; FAILWITH } {} ;
298
                     UPDATE 7 ;
299
                     SOME ;
300
                     SWAP ;
301
                     UPDATE ;
302
                     UPDATE 7 ;
303
                     SWAP }
304
                   { IF_LEFT
305
                       { DUP 2 ;
306
                         GET 3 ;
307
                         CAR ;
308
                         SENDER ;
309
                         COMPARE ;
310
                         EQ ;
311
                         IF {} { PUSH string "MP_NOT_MANAGER" ; FAILWITH } ;
312
                         PUSH mutez 0 ;
313
                         AMOUNT ;
314
                         COMPARE ;
315
                         EQ ;
316
                         IF {} { PUSH string "MP_TEZ_TRANSFER" ; FAILWITH } ;
317
                         SWAP ;
318
                         UNPAIR ;
319
                         UNPAIR ;
320
                         UNPAIR ;
321
                         NONE unit ;
322
                         DIG 5 ;
323
                         UPDATE ;
324
                         PAIR ;
325
                         PAIR ;
326
                         PAIR }
327
                       { DUP 2 ;
328
                         GET 3 ;
329
                         CAR ;
330
                         SENDER ;
331
                         COMPARE ;
332
                         EQ ;
333
                         IF {} { PUSH string "MP_NOT_MANAGER" ; FAILWITH } ;
334
                         PUSH mutez 0 ;
335
                         AMOUNT ;
336
                         COMPARE ;
337
                         EQ ;
338
                         IF {} { PUSH string "MP_TEZ_TRANSFER" ; FAILWITH } ;
339
                         SWAP ;
340
                         UNPAIR ;
341
                         UNPAIR ;
342
                         CAR ;
343
                         DIG 3 ;
344
                         SWAP ;
345
                         PAIR ;
346
                         PAIR ;
347
                         PAIR } ;
348
                     NIL operation } } }
349
           { IF_LEFT
350
               { IF_LEFT
351
                   { DUP 2 ;
352
                     GET 3 ;
353
                     CAR ;
354
                     SENDER ;
355
                     COMPARE ;
356
                     EQ ;
357
                     IF {} { PUSH string "MP_NOT_MANAGER" ; FAILWITH } ;
358
                     PUSH mutez 0 ;
359
                     AMOUNT ;
360
                     COMPARE ;
361
                     EQ ;
362
                     IF {} { PUSH string "MP_TEZ_TRANSFER" ; FAILWITH } ;
363
                     UPDATE 8 ;
364
                     NIL operation }
365
                   { IF_LEFT
366
                       { DUP 2 ;
367
                         GET 8 ;
368
                         IF { PUSH string "MP_SWAPS_PAUSED" ; FAILWITH } {} ;
369
                         PUSH mutez 0 ;
370
                         AMOUNT ;
371
                         COMPARE ;
372
                         EQ ;
373
                         IF {} { PUSH string "MP_TEZ_TRANSFER" ; FAILWITH } ;
374
                         DUP 2 ;
375
                         CAR ;
376
                         CAR ;
377
                         CAR ;
378
                         DUP 2 ;
379
                         CAR ;
380
                         MEM ;
381
                         IF {} { PUSH string "MP_FA2_NOT_ALLOWED" ; FAILWITH } ;
382
                         PUSH nat 0 ;
383
                         DUP 2 ;
384
                         GET 5 ;
385
                         COMPARE ;
386
                         GT ;
387
                         IF {} { PUSH string "MP_NO_SWAPPED_EDITIONS" ; FAILWITH } ;
388
                         PUSH nat 250 ;
389
                         DUP 2 ;
390
                         GET 9 ;
391
                         COMPARE ;
392
                         LE ;
393
                         IF {} { PUSH string "MP_WRONG_ROYALTIES" ; FAILWITH } ;
394
                         NIL operation ;
395
                         DUP 2 ;
396
                         CAR ;
397
                         CONTRACT %transfer (list (pair (address %from_)
398
                                                       (list %txs (pair (address %to_)
399
                                                                       (pair
400
                                                                         (nat %token_id)
401
                                                                         (nat %amount)))))) ;
402
                         IF_NONE { PUSH int 620 ; FAILWITH } {} ;
403
                         PUSH mutez 0 ;
404
                         NIL (pair address (list (pair address (pair nat nat)))) ;
405
                         NIL (pair address (pair nat nat)) ;
406
                         DUP 6 ;
407
                         GET 5 ;
408
                         DUP 7 ;
409
                         GET 3 ;
410
                         SELF_ADDRESS ;
411
                         PAIR 3 ;
412
                         CONS ;
413
                         SENDER ;
414
                         PAIR ;
415
                         CONS ;
416
                         TRANSFER_TOKENS ;
417
                         CONS ;
418
                         DUP 3 ;
419
                         DUP ;
420
                         GET 7 ;
421
                         DUP 4 ;
422
                         GET 10 ;
423
                         DUP 5 ;
424
                         GET 9 ;
425
                         DUP 6 ;
426
                         GET 7 ;
427
                         DUP 7 ;
428
                         GET 5 ;
429
                         DUP 8 ;
430
                         GET 3 ;
431
                         DUP 9 ;
432
                         CAR ;
433
                         SENDER ;
434
                         PAIR 7 ;
435
                         DIG 4 ;
436
                         DROP ;
437
                         SOME ;
438
                         DIG 4 ;
439
                         CAR ;
440
                         GET 3 ;
441
                         UPDATE ;
442
                         UPDATE 7 ;
443
                         UNPAIR ;
444
                         UNPAIR ;
445
                         SWAP ;
446
                         UNPAIR ;
447
                         PUSH nat 1 ;
448
                         ADD ;
449
                         PAIR ;
450
                         SWAP ;
451
                         PAIR ;
452
                         PAIR ;
453
                         SWAP }
454
                       { DUP 2 ;
455
                         GET 3 ;
456
                         CAR ;
457
                         SENDER ;
458
                         COMPARE ;
459
                         EQ ;
460
                         IF {} { PUSH string "MP_NOT_MANAGER" ; FAILWITH } ;
461
                         PUSH mutez 0 ;
462
                         AMOUNT ;
463
                         COMPARE ;
464
                         EQ ;
465
                         IF {} { PUSH string "MP_TEZ_TRANSFER" ; FAILWITH } ;
466
                         SOME ;
467
                         UPDATE 5 ;
468
                         NIL operation } } }
469
               { IF_LEFT
470
                   { DUP 2 ;
471
                     GET 3 ;
472
                     CAR ;
473
                     SENDER ;
474
                     COMPARE ;
475
                     EQ ;
476
                     IF {} { PUSH string "MP_NOT_MANAGER" ; FAILWITH } ;
477
                     PUSH mutez 0 ;
478
                     AMOUNT ;
479
                     COMPARE ;
480
                     EQ ;
481
                     IF {} { PUSH string "MP_TEZ_TRANSFER" ; FAILWITH } ;
482
                     PUSH nat 250 ;
483
                     DUP 2 ;
484
                     COMPARE ;
485
                     LE ;
486
                     IF {} { PUSH string "MP_WRONG_FEES" ; FAILWITH } ;
487
                     SWAP ;
488
                     UNPAIR ;
489
                     UNPAIR ;
490
                     SWAP ;
491
                     UNPAIR ;
492
                     SWAP ;
493
                     CDR ;
494
                     DIG 4 ;
495
                     PAIR ;
496
                     SWAP ;
497
                     PAIR ;
498
                     SWAP ;
499
                     PAIR ;
500
                     PAIR }
501
                   { IF_LEFT
502
                       { DUP 2 ;
503
                         GET 3 ;
504
                         CAR ;
505
                         SENDER ;
506
                         COMPARE ;
507
                         EQ ;
508
                         IF {} { PUSH string "MP_NOT_MANAGER" ; FAILWITH } ;
509
                         PUSH mutez 0 ;
510
                         AMOUNT ;
511
                         COMPARE ;
512
                         EQ ;
513
                         IF {} { PUSH string "MP_TEZ_TRANSFER" ; FAILWITH } ;
514
                         SWAP ;
515
                         UNPAIR ;
516
                         UNPAIR ;
517
                         SWAP ;
518
                         UNPAIR ;
519
                         SWAP ;
520
                         CAR ;
521
                         DIG 4 ;
522
                         SWAP ;
523
                         PAIR ;
524
                         SWAP ;
525
                         PAIR ;
526
                         SWAP ;
527
                         PAIR ;
528
                         PAIR }
529
                       { DUP 2 ;
530
                         GET 3 ;
531
                         CAR ;
532
                         SENDER ;
533
                         COMPARE ;
534
                         EQ ;
535
                         IF {} { PUSH string "MP_NOT_MANAGER" ; FAILWITH } ;
536
                         PUSH mutez 0 ;
537
                         AMOUNT ;
538
                         COMPARE ;
539
                         EQ ;
540
                         IF {} { PUSH string "MP_TEZ_TRANSFER" ; FAILWITH } ;
541
                         SWAP ;
542
                         UNPAIR ;
543
                         SWAP ;
544
                         UNPAIR ;
545
                         UNPAIR ;
546
                         SWAP ;
547
                         DUP 5 ;
548
                         CDR ;
549
                         SOME ;
550
                         DIG 5 ;
551
                         CAR ;
552
                         UPDATE ;
553
                         SWAP ;
554
                         PAIR ;
555
                         PAIR ;
556
                         SWAP ;
557
                         PAIR } } ;
558
                 NIL operation } } ;
559
         NIL operation ;
560
         SWAP ;
561
         ITER { CONS } ;
562
         PAIR } ;
563
  view "get_fee" unit nat { CDR ; CAR ; GET 5 } ;
564
  view "get_fee_recipient" unit address { CDR ; CAR ; GET 6 } ;
565
  view "get_manager" unit address { CDR ; GET 3 ; CAR } ;
566
  view "get_swap" nat
567
        (pair (address %issuer)
568
              (pair (address %fa2)
569
                    (pair (nat %objkt_id)
570
                          (pair (nat %objkt_amount)
571
                                (pair (mutez %xtz_per_objkt)
572
                                      (pair (nat %royalties) (address %creator)))))))
573
        { UNPAIR ;
574
          DUP 2 ;
575
          GET 7 ;
576
          DUP 2 ;
577
          MEM ;
578
          IF {} { PUSH string "MP_WRONG_SWAP_ID" ; FAILWITH } ;
579
          SWAP ;
580
          GET 7 ;
581
          SWAP ;
582
          GET ;
583
          IF_NONE { PUSH int 564 ; FAILWITH } {} } ;
584
  view "get_swaps_counter" unit nat { CDR ; CAR ; GET 3 } ;
585
  view "has_swap" nat bool { UNPAIR ; SWAP ; GET 7 ; SWAP ; MEM } ;
586
  view "is_allowed_fa2" address bool { UNPAIR ; SWAP ; CAR ; CAR ; CAR ; SWAP ; MEM } }