BCD

Tezos Contract Explorer
Search Networks Deploy
  • Home
  • /
  • Tezosx
  • /
  • KT1PuU7...vuGT
operations (1)Storage Code Interact Tokens Fork Details
Latest
​x
300
 
1
parameter (or
2
            (pair %addKey (address %caller_alias)
3
                          (pair (address %key_addr)
4
                                (pair (nat %purpose) (nat %key_type))))
5
            (or
6
              (pair %removeKey (address %caller_alias)
7
                               (pair (address %key_addr) (nat %purpose)))
8
              (or
9
                (pair %addClaim (address %caller_alias)
10
                                (pair (bytes %claim_id)
11
                                      (pair (nat %topic)
12
                                            (pair (nat %scheme)
13
                                                  (pair (key %issuer)
14
                                                        (pair (signature %sig_)
15
                                                              (pair (bytes %data)
16
                                                                    (string %uri))))))))
17
                (or (pair %removeClaim (address %caller_alias) (bytes %claim_id))
18
                    (or
19
                      (pair %migrateTo (address %caller_alias)
20
                                       (nat %new_template_version))
21
                      (address %setAdmin))))));
22
storage (pair (big_map %keys (pair address nat) (pair (nat %purpose) (nat %key_type)))
23
              (pair
24
                (big_map %claims bytes
25
                                 (pair (nat %topic)
26
                                       (pair (nat %scheme)
27
                                             (pair (key %issuer)
28
                                                   (pair (signature %sig_)
29
                                                         (pair (bytes %data)
30
                                                               (string %uri)))))))
31
                (pair (big_map %claim_ids_by_topic nat (set bytes))
32
                      (pair (address %owner)
33
                            (pair (address %investor)
34
                                  (pair (address %factory)
35
                                        (pair (nat %template_version)
36
                                              (pair (option %migrated address)
37
                                                    (address %admin)))))))));
38
code { UNPAIR ;
39
       IF_LEFT
40
         { DUP 2 ;
41
           GET 15 ;
42
           IF_NONE {} { PUSH string "MIGRATED" ; FAILWITH } ;
43
           DUP 2 ;
44
           GET 16 ;
45
           SENDER ;
46
           COMPARE ;
47
           NEQ ;
48
           IF { PUSH string "NOT_ADMIN" ; FAILWITH } {} ;
49
           DUP 2 ;
50
           CAR ;
51
           PUSH nat 1 ;
52
           DUP 3 ;
53
           CAR ;
54
           PAIR ;
55
           MEM ;
56
           IF {} { PUSH string "NOT_MGMT_KEY" ; FAILWITH } ;
57
           PUSH nat 4 ;
58
           DUP 2 ;
59
           GET 5 ;
60
           COMPARE ;
61
           LE ;
62
           PUSH nat 1 ;
63
           DUP 3 ;
64
           GET 5 ;
65
           COMPARE ;
66
           GE ;
67
           AND ;
68
           IF {} { PUSH string "INVALID_PURPOSE" ; FAILWITH } ;
69
           DUP ;
70
           GET 5 ;
71
           DUP 2 ;
72
           GET 3 ;
73
           PAIR ;
74
           DUP 3 ;
75
           CAR ;
76
           DUP 2 ;
77
           MEM ;
78
           IF { PUSH string "KEY_EXISTS" ; FAILWITH } {} ;
79
           DIG 2 ;
80
           DUP ;
81
           CAR ;
82
           DUP 4 ;
83
           GET 6 ;
84
           DIG 4 ;
85
           GET 5 ;
86
           PAIR ;
87
           SOME ;
88
           DIG 3 ;
89
           UPDATE ;
90
           UPDATE 1 ;
91
           NIL operation ;
92
           PAIR }
93
         { IF_LEFT
94
             { DUP 2 ;
95
               GET 15 ;
96
               IF_NONE {} { PUSH string "MIGRATED" ; FAILWITH } ;
97
               DUP 2 ;
98
               GET 16 ;
99
               SENDER ;
100
               COMPARE ;
101
               NEQ ;
102
               IF { PUSH string "NOT_ADMIN" ; FAILWITH } {} ;
103
               DUP 2 ;
104
               CAR ;
105
               PUSH nat 1 ;
106
               DUP 3 ;
107
               CAR ;
108
               PAIR ;
109
               MEM ;
110
               IF {} { PUSH string "NOT_MGMT_KEY" ; FAILWITH } ;
111
               DUP ;
112
               GET 4 ;
113
               SWAP ;
114
               GET 3 ;
115
               PAIR ;
116
               DUP 2 ;
117
               CAR ;
118
               DUP 2 ;
119
               MEM ;
120
               IF {} { PUSH string "KEY_NOT_FOUND" ; FAILWITH } ;
121
               SWAP ;
122
               DUP ;
123
               CAR ;
124
               NONE (pair nat nat) ;
125
               DIG 3 ;
126
               UPDATE ;
127
               UPDATE 1 ;
128
               NIL operation ;
129
               PAIR }
130
             { IF_LEFT
131
                 { DUP 2 ;
132
                   GET 15 ;
133
                   IF_NONE {} { PUSH string "MIGRATED" ; FAILWITH } ;
134
                   DUP 2 ;
135
                   GET 16 ;
136
                   SENDER ;
137
                   COMPARE ;
138
                   NEQ ;
139
                   IF { PUSH string "NOT_ADMIN" ; FAILWITH } {} ;
140
                   DUP 2 ;
141
                   CAR ;
142
                   PUSH nat 3 ;
143
                   DUP 3 ;
144
                   CAR ;
145
                   PAIR ;
146
                   MEM ;
147
                   IF {} { PUSH string "NOT_CLAIM_KEY" ; FAILWITH } ;
148
                   DUP ;
149
                   GET 13 ;
150
                   DUP 2 ;
151
                   GET 5 ;
152
                   DUP 4 ;
153
                   GET 9 ;
154
                   PAIR ;
155
                   PAIR ;
156
                   PACK ;
157
                   DUP 2 ;
158
                   GET 11 ;
159
                   DUP 3 ;
160
                   GET 9 ;
161
                   CHECK_SIGNATURE ;
162
                   IF {} { PUSH string "INVALID_SIGNATURE" ; FAILWITH } ;
163
                   DUP 2 ;
164
                   GET 3 ;
165
                   DUP 2 ;
166
                   GET 3 ;
167
                   MEM ;
168
                   IF { PUSH string "CLAIM_EXISTS" ; FAILWITH } {} ;
169
                   DUP 2 ;
170
                   DUP 3 ;
171
                   GET 3 ;
172
                   DUP 3 ;
173
                   GET 14 ;
174
                   DUP 4 ;
175
                   GET 13 ;
176
                   DUP 5 ;
177
                   GET 11 ;
178
                   DUP 6 ;
179
                   GET 9 ;
180
                   DUP 7 ;
181
                   GET 7 ;
182
                   DUP 8 ;
183
                   GET 5 ;
184
                   PAIR 6 ;
185
                   SOME ;
186
                   DUP 4 ;
187
                   GET 3 ;
188
                   UPDATE ;
189
                   UPDATE 3 ;
190
                   DUP 3 ;
191
                   GET 5 ;
192
                   DIG 3 ;
193
                   GET 5 ;
194
                   DUP 4 ;
195
                   GET 5 ;
196
                   GET ;
197
                   IF_NONE { EMPTY_SET bytes } {} ;
198
                   PUSH bool True ;
199
                   DUP 5 ;
200
                   GET 3 ;
201
                   UPDATE ;
202
                   SOME ;
203
                   DIG 3 ;
204
                   GET 5 ;
205
                   UPDATE ;
206
                   UPDATE 5 ;
207
                   NIL operation ;
208
                   PAIR }
209
                 { IF_LEFT
210
                     { DUP 2 ;
211
                       GET 15 ;
212
                       IF_NONE {} { PUSH string "MIGRATED" ; FAILWITH } ;
213
                       DUP 2 ;
214
                       GET 16 ;
215
                       SENDER ;
216
                       COMPARE ;
217
                       NEQ ;
218
                       IF { PUSH string "NOT_ADMIN" ; FAILWITH } {} ;
219
                       DUP 2 ;
220
                       CAR ;
221
                       PUSH nat 3 ;
222
                       DUP 3 ;
223
                       CAR ;
224
                       PAIR ;
225
                       MEM ;
226
                       IF {} { PUSH string "NOT_CLAIM_KEY" ; FAILWITH } ;
227
                       DUP 2 ;
228
                       GET 3 ;
229
                       DUP 2 ;
230
                       CDR ;
231
                       GET ;
232
                       IF_NONE { PUSH string "CLAIM_NOT_FOUND" ; FAILWITH } {} ;
233
                       DUP 3 ;
234
                       DUP 4 ;
235
                       GET 3 ;
236
                       NONE (pair nat
237
                                  (pair nat
238
                                        (pair key (pair signature (pair bytes string))))) ;
239
                       DUP 5 ;
240
                       CDR ;
241
                       UPDATE ;
242
                       UPDATE 3 ;
243
                       DUP 4 ;
244
                       GET 5 ;
245
                       DIG 4 ;
246
                       GET 5 ;
247
                       DUP 4 ;
248
                       CAR ;
249
                       GET ;
250
                       IF_NONE { EMPTY_SET bytes } {} ;
251
                       PUSH bool False ;
252
                       DIG 5 ;
253
                       CDR ;
254
                       UPDATE ;
255
                       SOME ;
256
                       DIG 3 ;
257
                       CAR ;
258
                       UPDATE ;
259
                       UPDATE 5 ;
260
                       NIL operation ;
261
                       PAIR }
262
                     { IF_LEFT
263
                         { DUP 2 ;
264
                           GET 15 ;
265
                           IF_NONE {} { PUSH string "MIGRATED" ; FAILWITH } ;
266
                           DUP 2 ;
267
                           GET 16 ;
268
                           SENDER ;
269
                           COMPARE ;
270
                           NEQ ;
271
                           IF { PUSH string "NOT_ADMIN" ; FAILWITH } {} ;
272
                           DUP 2 ;
273
                           CAR ;
274
                           PUSH nat 1 ;
275
                           DUP 3 ;
276
                           CAR ;
277
                           PAIR ;
278
                           MEM ;
279
                           IF {} { PUSH string "NOT_MGMT_KEY" ; FAILWITH } ;
280
                           SWAP ;
281
                           GET 13 ;
282
                           SWAP ;
283
                           CDR ;
284
                           COMPARE ;
285
                           GT ;
286
                           IF {} { PUSH string "NO_DOWNGRADE" ; FAILWITH } ;
287
                           PUSH string "MIGRATE_TO_NOT_YET_IMPLEMENTED" ;
288
                           FAILWITH }
289
                         { DUP 2 ;
290
                           GET 15 ;
291
                           IF_NONE {} { PUSH string "MIGRATED" ; FAILWITH } ;
292
                           DUP 2 ;
293
                           GET 16 ;
294
                           SENDER ;
295
                           COMPARE ;
296
                           NEQ ;
297
                           IF { PUSH string "NOT_ADMIN" ; FAILWITH } {} ;
298
                           UPDATE 16 ;
299
                           NIL operation ;
300
                           PAIR } } } } } }