BCD

Tezos Contract Explorer
Search Networks Deploy
  • Home
  • /
  • Mainnet
  • /
  • KT1W8QV...83zb
operations (1)Storage Code Interact Tokens Fork Views Statistics Details
Latest
​x
123
 
1
{ parameter (or
2
              (or %update_admin (pair %set (or (unit %owner) (unit %admin)) address)
3
                                (or %confirm (unit %owner) (unit %admin)))
4
              (lambda %lambda unit (list operation))) ;
5
  storage (pair
6
            (pair %admin (pair %owner (address %current) (option %pending address))
7
                         (pair %admin (address %current) (option %pending address)))
8
            (address %mt_contract)) ;
9
  code { PUSH string "SENDER_NOT_ADMIN" ;
10
         PUSH string "NO_PENDING_ADMIN" ;
11
         PUSH string "NOT_PENDING_ADMIN" ;
12
         DIG 3 ;
13
         UNPAIR ;
14
         IF_LEFT
15
           { PUSH mutez 0 ;
16
             AMOUNT ;
17
             COMPARE ;
18
             NEQ ;
19
             IF { PUSH string "NO_TEZ_EXPECTED" ; FAILWITH } {} ;
20
             DUP 2 ;
21
             CDR ;
22
             UNIT ;
23
             VIEW "whitelist_contract" address ;
24
             IF_NONE { PUSH string "CALL_MT_WHITELIST_VIEW_FAILED" ; FAILWITH } {} ;
25
             NIL address ;
26
             SENDER ;
27
             CONS ;
28
             VIEW "are_whitelisted" bool ;
29
             IF_NONE { PUSH string "CALL_ARE_WHITELISTED_VIEW_FAILED" ; FAILWITH } {} ;
30
             IF
31
               { DUP 2 ;
32
                 CAR ;
33
                 SWAP ;
34
                 IF_LEFT
35
                   { DIG 3 ;
36
                     DIG 4 ;
37
                     DROP 2 ;
38
                     UNPAIR ;
39
                     SENDER ;
40
                     DUP 4 ;
41
                     CDR ;
42
                     CAR ;
43
                     DUP 2 ;
44
                     COMPARE ;
45
                     NEQ ;
46
                     DUP 5 ;
47
                     CAR ;
48
                     CAR ;
49
                     DIG 2 ;
50
                     COMPARE ;
51
                     NEQ ;
52
                     AND ;
53
                     IF { DIG 4 ; FAILWITH } { DIG 4 ; DROP } ;
54
                     IF_LEFT
55
                       { DROP ; DUP 2 ; DIG 2 ; CAR ; DIG 2 ; SOME ; UPDATE 2 ; UPDATE 1 }
56
                       { DROP ; DUP 2 ; DIG 2 ; CDR ; DIG 2 ; SOME ; UPDATE 2 ; UPDATE 2 } }
57
                   { DIG 5 ;
58
                     DROP ;
59
                     IF_LEFT
60
                       { DROP ;
61
                         DUP ;
62
                         CAR ;
63
                         CDR ;
64
                         IF_NONE
65
                           { DIG 2 ; DROP 2 ; SWAP ; FAILWITH }
66
                           { DIG 4 ;
67
                             DROP ;
68
                             DUP ;
69
                             SENDER ;
70
                             COMPARE ;
71
                             NEQ ;
72
                             IF
73
                               { DROP 2 ; SWAP ; FAILWITH }
74
                               { DIG 3 ; DROP ; SWAP ; NONE address ; DIG 2 ; PAIR ; UPDATE 1 } } }
75
                       { DROP ;
76
                         DUP ;
77
                         CDR ;
78
                         CDR ;
79
                         IF_NONE
80
                           { DIG 2 ; DROP 2 ; SWAP ; FAILWITH }
81
                           { DIG 4 ;
82
                             DROP ;
83
                             DUP ;
84
                             SENDER ;
85
                             COMPARE ;
86
                             NEQ ;
87
                             IF
88
                               { DROP 2 ; SWAP ; FAILWITH }
89
                               { DIG 3 ; DROP ; SWAP ; NONE address ; DIG 2 ; PAIR ; UPDATE 2 } } } } ;
90
                 NIL operation ;
91
                 DUG 2 ;
92
                 UPDATE 1 ;
93
                 SWAP ;
94
                 PAIR }
95
               { DROP 5 ; PUSH string "ADDRESS_NOT_WHITELISTED" ; FAILWITH } }
96
           { DIG 2 ;
97
             DIG 3 ;
98
             DROP 2 ;
99
             DUP 2 ;
100
             CAR ;
101
             SENDER ;
102
             DUP 2 ;
103
             CDR ;
104
             CAR ;
105
             DUP 2 ;
106
             COMPARE ;
107
             NEQ ;
108
             DIG 2 ;
109
             CAR ;
110
             CAR ;
111
             DIG 2 ;
112
             COMPARE ;
113
             NEQ ;
114
             AND ;
115
             IF { DIG 2 ; FAILWITH } { DIG 2 ; DROP } ;
116
             SWAP ;
117
             UNIT ;
118
             DIG 2 ;
119
             SWAP ;
120
             EXEC ;
121
             PAIR } } ;
122
  view "admin" unit (pair address address)
123
        { CDR ; CAR ; DUP ; CDR ; CAR ; SWAP ; CAR ; CAR ; PAIR } }