BCD

Tezos Contract Explorer
Search Networks Deploy
  • Home
  • /
  • Mainnet
  • /
  • Secure_Sacem
operations (45.3K)Storage Code Interact Tokens Metadata Fork Views Statistics Details
Latest
​x
116
 
1
{ parameter (or
2
              (or (or (address %addInWhitelist) (string %anchor))
3
                  (or (unit %approveAdmin) (address %changeAdmin)))
4
              (or (or (address %removeFromWhitelist) (set %setWhitelist address))
5
                  (bool %useWhitelist))) ;
6
  storage (pair (address %admin) (big_map %hash_map string (pair timestamp address))
7
                (bool %use_whitelist)
8
                (set %whitelist address)
9
                (string %name)
10
                (big_map %metadata string bytes)
11
                (option %requested_admin address)) ;
12
  code { LAMBDA
13
           (pair address (big_map string (pair timestamp address)) bool (set address)
14
                 string
15
                 (big_map string bytes)
16
                 (option address))
17
           unit
18
           { CAR ; SENDER ; COMPARE ; EQ ; IF { UNIT } { PUSH string "ONLY_ADMIN" ; FAILWITH } } ;
19
         SWAP ;
20
         UNPAIR ;
21
         PUSH mutez 0 ;
22
         AMOUNT ;
23
         COMPARE ;
24
         EQ ;
25
         IF {} { PUSH string "EXPECTS_0_TEZ" ; FAILWITH } ;
26
         IF_LEFT
27
           { IF_LEFT
28
               { IF_LEFT
29
                   { DUP 2 ;
30
                     DIG 3 ;
31
                     SWAP ;
32
                     EXEC ;
33
                     DROP ;
34
                     DUP 2 ;
35
                     DIG 2 ;
36
                     GET 7 ;
37
                     DIG 2 ;
38
                     PUSH bool True ;
39
                     SWAP ;
40
                     UPDATE ;
41
                     UPDATE 7 ;
42
                     NIL operation ;
43
                     PAIR }
44
                   { DIG 2 ;
45
                     DROP ;
46
                     DUP 2 ;
47
                     GET 7 ;
48
                     SENDER ;
49
                     MEM ;
50
                     DUP 3 ;
51
                     GET 5 ;
52
                     NOT ;
53
                     OR ;
54
                     IF {} { PUSH string "NOT_AUTHORIZED" ; FAILWITH } ;
55
                     DUP 2 ;
56
                     GET 3 ;
57
                     DUP 2 ;
58
                     GET ;
59
                     IF_NONE
60
                       { DUP 2 ;
61
                         GET 3 ;
62
                         SENDER ;
63
                         NOW ;
64
                         PAIR ;
65
                         DIG 2 ;
66
                         SWAP ;
67
                         SOME ;
68
                         SWAP ;
69
                         UPDATE ;
70
                         UPDATE 3 ;
71
                         NIL operation ;
72
                         PAIR }
73
                       { DROP 3 ; PUSH string "Record hash already written" ; FAILWITH } } }
74
               { IF_LEFT
75
                   { DIG 2 ;
76
                     DROP 2 ;
77
                     DUP ;
78
                     GET 12 ;
79
                     IF_NONE { PUSH string "NO_CHANGE_ADMIN_REQUEST" ; FAILWITH } {} ;
80
                     DUP ;
81
                     SENDER ;
82
                     COMPARE ;
83
                     EQ ;
84
                     IF {} { PUSH string "SENDER_NOT_REQUESTED_ADMIN" ; FAILWITH } ;
85
                     UPDATE 1 ;
86
                     NONE address ;
87
                     UPDATE 12 }
88
                   { DUP 2 ; DIG 3 ; SWAP ; EXEC ; DROP ; SOME ; UPDATE 12 } ;
89
                 NIL operation ;
90
                 PAIR } }
91
           { IF_LEFT
92
               { IF_LEFT
93
                   { DUP 2 ;
94
                     DIG 3 ;
95
                     SWAP ;
96
                     EXEC ;
97
                     DROP ;
98
                     DUP 2 ;
99
                     DIG 2 ;
100
                     GET 7 ;
101
                     DIG 2 ;
102
                     PUSH bool False ;
103
                     SWAP ;
104
                     UPDATE ;
105
                     UPDATE 7 }
106
                   { DUP 2 ; DIG 3 ; SWAP ; EXEC ; DROP ; UPDATE 7 } }
107
               { DUP 2 ; DIG 3 ; SWAP ; EXEC ; DROP ; UPDATE 5 } ;
108
             NIL operation ;
109
             PAIR } } ;
110
  view "get_hash_info" string (pair timestamp address)
111
        { UNPAIR ;
112
          SWAP ;
113
          GET 3 ;
114
          SWAP ;
115
          GET ;
116
          IF_NONE { PUSH string "Record hash has not been written" ; FAILWITH } {} } }