BCD

Tezos Contract Explorer
Search Networks Deploy
  • Home
  • /
  • Ghostnet
  • /
  • KT1PWC1...qC6T
operations (1)Storage Code Interact Tokens Fork Views Statistics Details
Latest
​x
65
 
1
{ parameter (or (lambda %lambda unit (list operation))
2
                (or %update_admin (unit %confirm_new_admin) (address %set_new_admin))) ;
3
  storage (pair (pair %admin (address %current_admin) (option %pending_admin address))
4
                (address %mt_contract)) ;
5
  code { UNPAIR ;
6
         IF_LEFT
7
           { DUP 2 ;
8
             CAR ;
9
             CAR ;
10
             SENDER ;
11
             COMPARE ;
12
             NEQ ;
13
             IF { PUSH string "SENDER_NOT_ADMIN" ; FAILWITH } {} ;
14
             SWAP ;
15
             UNIT ;
16
             DIG 2 ;
17
             SWAP ;
18
             EXEC ;
19
             PAIR }
20
           { PUSH mutez 0 ;
21
             AMOUNT ;
22
             COMPARE ;
23
             NEQ ;
24
             IF { PUSH string "NO_TEZ_EXPECTED" ; FAILWITH } {} ;
25
             DUP 2 ;
26
             CDR ;
27
             UNIT ;
28
             VIEW "whitelist_contract" address ;
29
             IF_NONE { PUSH string "CALL_MT_WHITELIST_VIEW_FAILED" ; FAILWITH } {} ;
30
             NIL address ;
31
             SENDER ;
32
             CONS ;
33
             VIEW "are_whitelisted" bool ;
34
             IF_NONE { PUSH string "CALL_ARE_WHITELISTED_VIEW_FAILED" ; FAILWITH } {} ;
35
             IF
36
               { DUP 2 ;
37
                 CAR ;
38
                 SWAP ;
39
                 IF_LEFT
40
                   { DROP ;
41
                     CDR ;
42
                     IF_NONE
43
                       { PUSH string "NO_PENDING_ADMIN" ; FAILWITH }
44
                       { DUP ;
45
                         SENDER ;
46
                         COMPARE ;
47
                         NEQ ;
48
                         IF
49
                           { DROP ; PUSH string "NOT_PENDING_ADMIN" ; FAILWITH }
50
                           { NONE address ; SWAP ; PAIR } } }
51
                   { DUP 2 ;
52
                     CAR ;
53
                     SENDER ;
54
                     COMPARE ;
55
                     NEQ ;
56
                     IF { PUSH string "SENDER_NOT_ADMIN" ; FAILWITH } {} ;
57
                     SOME ;
58
                     UPDATE 2 } ;
59
                 NIL operation ;
60
                 DUG 2 ;
61
                 UPDATE 1 ;
62
                 SWAP ;
63
                 PAIR }
64
               { DROP 2 ; PUSH string "ADDRESS_NOT_WHITELISTED" ; FAILWITH } } } ;
65
  view "admin" unit address { CDR ; CAR ; CAR } }