BCD

Tezos Contract Explorer
Search Networks Deploy
  • Home
  • /
  • Mainnet
  • /
  • Ubisoft Quartz Whitelist Storage
operations (11.8K)Storage Code Interact Tokens Metadata Fork Views Statistics Details
Latest
​x
157
 
1
{ parameter (or
2
              (or (or (bytes %set_metadata_uri) (address %declare_ownership))
3
                  (or (unit %claim_ownership) (address %add_whitelister)))
4
              (or (or (address %rm_whitelister) (address %remove))
5
                  (or (pair %put (address %k) (nat %v))
6
                      (pair %update (address %k) (option %v nat))))) ;
7
  storage (pair (address %admin)
8
                (pair (option %owner_candidate address)
9
                      (pair (set %whitelister address)
10
                            (pair (big_map %users address nat)
11
                                  (big_map %metadata string bytes))))) ;
12
  code { UNPAIR ;
13
         DIP { UNPAIR 5 } ;
14
         IF_LEFT
15
           { IF_LEFT
16
               { IF_LEFT
17
                   { DUP 2 ;
18
                     SENDER ;
19
                     COMPARE ;
20
                     EQ ;
21
                     NOT ;
22
                     IF { PUSH string "InvalidCaller" ; FAILWITH } {} ;
23
                     DIG 5 ;
24
                     DUP 2 ;
25
                     SOME ;
26
                     PUSH string "" ;
27
                     UPDATE ;
28
                     DUG 5 ;
29
                     DROP ;
30
                     PAIR 5 ;
31
                     NIL operation ;
32
                     PAIR }
33
                   { DUP 2 ;
34
                     SENDER ;
35
                     COMPARE ;
36
                     EQ ;
37
                     NOT ;
38
                     IF { PUSH string "InvalidCaller" ; FAILWITH } {} ;
39
                     DUP ;
40
                     SOME ;
41
                     DIP { DIG 2 ; DROP } ;
42
                     DUG 2 ;
43
                     DROP ;
44
                     PAIR 5 ;
45
                     NIL operation ;
46
                     PAIR } }
47
               { IF_LEFT
48
                   { DROP ;
49
                     DUP 2 ;
50
                     IF_NONE { PUSH string "NotFound" ; FAILWITH } {} ;
51
                     SENDER ;
52
                     COMPARE ;
53
                     EQ ;
54
                     NOT ;
55
                     IF { PUSH string "InvalidCaller" ; FAILWITH } {} ;
56
                     DUP 2 ;
57
                     IF_NONE { PUSH string "NotFound" ; FAILWITH } {} ;
58
                     SWAP ;
59
                     DROP ;
60
                     NONE address ;
61
                     DIP { DIG 1 ; DROP } ;
62
                     DUG 1 ;
63
                     PAIR 5 ;
64
                     NIL operation ;
65
                     PAIR }
66
                   { DUP 2 ;
67
                     SENDER ;
68
                     COMPARE ;
69
                     EQ ;
70
                     NOT ;
71
                     IF { PUSH string "InvalidCaller" ; FAILWITH } {} ;
72
                     DUP 4 ;
73
                     DUP 2 ;
74
                     MEM ;
75
                     IF
76
                       { PUSH string "whitelister" ; PUSH string "KeyExists" ; PAIR ; FAILWITH }
77
                       { DUP 4 ; PUSH bool True ; DUP 3 ; UPDATE ; DIP { DIG 3 ; DROP } ; DUG 3 } ;
78
                     DROP ;
79
                     PAIR 5 ;
80
                     NIL operation ;
81
                     PAIR } } }
82
           { IF_LEFT
83
               { IF_LEFT
84
                   { DUP 2 ;
85
                     SENDER ;
86
                     COMPARE ;
87
                     EQ ;
88
                     NOT ;
89
                     IF { PUSH string "InvalidCaller" ; FAILWITH } {} ;
90
                     DUP 4 ;
91
                     PUSH bool False ;
92
                     DUP 3 ;
93
                     UPDATE ;
94
                     DIP { DIG 3 ; DROP } ;
95
                     DUG 3 ;
96
                     DROP ;
97
                     PAIR 5 ;
98
                     NIL operation ;
99
                     PAIR }
100
                   { DUP 4 ;
101
                     SENDER ;
102
                     MEM ;
103
                     NOT ;
104
                     IF { PUSH string "InvalidCaller" ; FAILWITH } {} ;
105
                     DIG 4 ;
106
                     NONE nat ;
107
                     DUP 3 ;
108
                     UPDATE ;
109
                     DUG 4 ;
110
                     DROP ;
111
                     PAIR 5 ;
112
                     NIL operation ;
113
                     PAIR } }
114
               { IF_LEFT
115
                   { UNPAIR ;
116
                     SWAP ;
117
                     DUP 5 ;
118
                     SENDER ;
119
                     MEM ;
120
                     NOT ;
121
                     IF { PUSH string "InvalidCaller" ; FAILWITH } {} ;
122
                     DIG 5 ;
123
                     DUP 2 ;
124
                     SOME ;
125
                     DUP 4 ;
126
                     UPDATE ;
127
                     DUG 5 ;
128
                     DROP 2 ;
129
                     PAIR 5 ;
130
                     NIL operation ;
131
                     PAIR }
132
                   { UNPAIR ;
133
                     SWAP ;
134
                     DUP 5 ;
135
                     SENDER ;
136
                     MEM ;
137
                     NOT ;
138
                     IF { PUSH string "InvalidCaller" ; FAILWITH } {} ;
139
                     DIG 5 ;
140
                     DUP 2 ;
141
                     DUP 4 ;
142
                     UPDATE ;
143
                     DUG 5 ;
144
                     DROP 2 ;
145
                     PAIR 5 ;
146
                     NIL operation ;
147
                     PAIR } } } } ;
148
  view "getopt" address (option nat)
149
        { UNPAIR ;
150
          DIP { CDR ; CDR ; CDR ; UNPAIR ; SWAP ; DROP } ;
151
          UNIT ;
152
          DUP 3 ;
153
          DUP 3 ;
154
          GET ;
155
          SWAP ;
156
          DROP ;
157
          DIP { DROP 2 } } }