BCD

Tezos Contract Explorer
Search Networks Deploy
  • Home
  • /
  • Mainnet
  • /
  • KT1GhLF...8Hk9
operations (7)Storage Code Interact Tokens Metadata Fork Statistics Details
Latest
​x
327
 
1
parameter (or
2
            (or (or (address %setAdminCandidate) (unit %acceptAdminCandidate))
3
                (or (pair %grantRole (string %irole) (list %iaddrs address))
4
                    (pair %revokeRole (string %irole) (list %iaddrs address))))
5
            (or (or (bytes %setMetadataUri) (address %setArchetype))
6
                (or (or (address %setStablecoin) (bool %setFlatFees))
7
                    (or (bool %setSupportFees)
8
                        (pair %mintWithPayment (nat %archetypeId)
9
                                               (pair (nat %serialNumber)
10
                                                     (pair (address %vault)
11
                                                           (pair (nat %amount)
12
                                                                 (pair (key %pk)
13
                                                                       (signature %sig))))))))));
14
storage (pair (address %admin)
15
              (pair (address %archetype)
16
                    (pair (address %stablecoin)
17
                          (pair (option %adminCandidate address)
18
                                (pair (map %role string (set address))
19
                                      (pair (bool %flat_fees)
20
                                            (pair (bool %support_fees)
21
                                                  (big_map %metadata string bytes))))))));
22
code { LAMBDA
23
         (pair (map string (set address)) (pair string address))
24
         bool
25
         { UNPAIR 3 ;
26
           PUSH unit Unit ;
27
           DUP 2 ;
28
           DUP 4 ;
29
           GET ;
30
           IF_NONE
31
             { PUSH string "role" ; PUSH string "AssetNotFound" ; PAIR ; FAILWITH }
32
             {} ;
33
           DUP 5 ;
34
           MEM ;
35
           SWAP ;
36
           DROP ;
37
           DUG 3 ;
38
           DROP 3 } ;
39
       LAMBDA
40
         (pair string
41
               (pair (map string (set address))
42
                     (pair string
43
                           (lambda
44
                             (pair (map string (set address)) (pair string address))
45
                             bool))))
46
         bool
47
         { UNPAIR 4 ;
48
           PUSH unit Unit ;
49
           DUP 5 ;
50
           SENDER ;
51
           PUSH string "minter" ;
52
           PAIR ;
53
           DUP 5 ;
54
           PAIR ;
55
           EXEC ;
56
           IF
57
             { PUSH bool True ; SWAP ; DROP }
58
             { PUSH string "CALLER_NOT_MINTER" ; FAILWITH } ;
59
           DUG 4 ;
60
           DROP 4 } ;
61
       NIL operation ;
62
       DIG 3 ;
63
       UNPAIR ;
64
       DIP { UNPAIR 8 } ;
65
       IF_LEFT
66
         { IF_LEFT
67
             { IF_LEFT
68
                 { DUP 2 ;
69
                   SENDER ;
70
                   COMPARE ;
71
                   EQ ;
72
                   NOT ;
73
                   IF { PUSH string "InvalidCaller" ; FAILWITH } {} ;
74
                   DUP ;
75
                   SOME ;
76
                   DIP { DIG 4 ; DROP } ;
77
                   DUG 4 ;
78
                   DROP ;
79
                   PAIR 8 ;
80
                   DIG 1 ;
81
                   PAIR }
82
                 { DROP ;
83
                   DUP 4 ;
84
                   IF_NONE
85
                     { PUSH string "ADMIN_CANDIDATE_NOT_SET" ; FAILWITH }
86
                     { DUP ;
87
                       SENDER ;
88
                       COMPARE ;
89
                       EQ ;
90
                       NOT ;
91
                       IF { PUSH string "CALLER_NOT_ADMIN_CANDIDATE" ; FAILWITH } {} ;
92
                       DUP ;
93
                       DIP { DIG 1 ; DROP } ;
94
                       DUG 1 ;
95
                       NONE address ;
96
                       DIP { DIG 4 ; DROP } ;
97
                       DUG 4 ;
98
                       DROP } ;
99
                   PAIR 8 ;
100
                   DIG 1 ;
101
                   PAIR } }
102
             { IF_LEFT
103
                 { UNPAIR ;
104
                   SWAP ;
105
                   DUP 3 ;
106
                   SENDER ;
107
                   COMPARE ;
108
                   EQ ;
109
                   NOT ;
110
                   IF { PUSH string "InvalidCaller" ; FAILWITH } {} ;
111
                   DUP ;
112
                   ITER { DUP 8 ;
113
                          DUP 9 ;
114
                          DUP 5 ;
115
                          GET ;
116
                          IF_NONE
117
                            { PUSH string "role" ;
118
                              PUSH string "AssetNotFound" ;
119
                              PAIR ;
120
                              FAILWITH }
121
                            {} ;
122
                          PUSH bool True ;
123
                          DUP 4 ;
124
                          UPDATE ;
125
                          SOME ;
126
                          DUP 5 ;
127
                          UPDATE ;
128
                          DIP { DIG 7 ; DROP } ;
129
                          DUG 7 ;
130
                          DROP } ;
131
                   DROP 2 ;
132
                   PAIR 8 ;
133
                   DIG 1 ;
134
                   PAIR }
135
                 { UNPAIR ;
136
                   SWAP ;
137
                   DUP 3 ;
138
                   SENDER ;
139
                   COMPARE ;
140
                   EQ ;
141
                   NOT ;
142
                   IF { PUSH string "InvalidCaller" ; FAILWITH } {} ;
143
                   DUP ;
144
                   ITER { DUP 8 ;
145
                          DUP 9 ;
146
                          DUP 5 ;
147
                          GET ;
148
                          IF_NONE
149
                            { PUSH string "role" ;
150
                              PUSH string "AssetNotFound" ;
151
                              PAIR ;
152
                              FAILWITH }
153
                            {} ;
154
                          PUSH bool False ;
155
                          DUP 4 ;
156
                          UPDATE ;
157
                          SOME ;
158
                          DUP 5 ;
159
                          UPDATE ;
160
                          DIP { DIG 7 ; DROP } ;
161
                          DUG 7 ;
162
                          DROP } ;
163
                   DROP 2 ;
164
                   PAIR 8 ;
165
                   DIG 1 ;
166
                   PAIR } } }
167
         { IF_LEFT
168
             { IF_LEFT
169
                 { DUP 2 ;
170
                   SENDER ;
171
                   COMPARE ;
172
                   EQ ;
173
                   NOT ;
174
                   IF { PUSH string "InvalidCaller" ; FAILWITH } {} ;
175
                   DIG 8 ;
176
                   DUP 2 ;
177
                   SOME ;
178
                   PUSH string "" ;
179
                   UPDATE ;
180
                   DUG 8 ;
181
                   DROP ;
182
                   PAIR 8 ;
183
                   DIG 1 ;
184
                   PAIR }
185
                 { DUP 2 ;
186
                   SENDER ;
187
                   COMPARE ;
188
                   EQ ;
189
                   NOT ;
190
                   IF { PUSH string "InvalidCaller" ; FAILWITH } {} ;
191
                   DUP ;
192
                   DIP { DIG 2 ; DROP } ;
193
                   DUG 2 ;
194
                   DROP ;
195
                   PAIR 8 ;
196
                   DIG 1 ;
197
                   PAIR } }
198
             { IF_LEFT
199
                 { IF_LEFT
200
                     { DUP 2 ;
201
                       SENDER ;
202
                       COMPARE ;
203
                       EQ ;
204
                       NOT ;
205
                       IF { PUSH string "InvalidCaller" ; FAILWITH } {} ;
206
                       DUP ;
207
                       DIP { DIG 3 ; DROP } ;
208
                       DUG 3 ;
209
                       DROP ;
210
                       PAIR 8 ;
211
                       DIG 1 ;
212
                       PAIR }
213
                     { DUP 2 ;
214
                       SENDER ;
215
                       COMPARE ;
216
                       EQ ;
217
                       NOT ;
218
                       IF { PUSH string "InvalidCaller" ; FAILWITH } {} ;
219
                       DUP ;
220
                       DIP { DIG 6 ; DROP } ;
221
                       DUG 6 ;
222
                       DROP ;
223
                       PAIR 8 ;
224
                       DIG 1 ;
225
                       PAIR } }
226
                 { IF_LEFT
227
                     { DUP 2 ;
228
                       SENDER ;
229
                       COMPARE ;
230
                       EQ ;
231
                       NOT ;
232
                       IF { PUSH string "InvalidCaller" ; FAILWITH } {} ;
233
                       DUP ;
234
                       DIP { DIG 7 ; DROP } ;
235
                       DUG 7 ;
236
                       DROP ;
237
                       PAIR 8 ;
238
                       DIG 1 ;
239
                       PAIR }
240
                     { UNPAIR ;
241
                       SWAP ;
242
                       UNPAIR ;
243
                       SWAP ;
244
                       UNPAIR ;
245
                       SWAP ;
246
                       UNPAIR ;
247
                       SWAP ;
248
                       UNPAIR ;
249
                       SWAP ;
250
                       DUP 16 ;
251
                       DUP 18 ;
252
                       PUSH string "minter" ;
253
                       PAIR ;
254
                       DUP 13 ;
255
                       PAIR ;
256
                       PUSH string "CALLER_NOT_MINTER" ;
257
                       PAIR ;
258
                       EXEC ;
259
                       NOT ;
260
                       IF
261
                         { PUSH string "r0" ; PUSH string "InvalidCondition" ; PAIR ; FAILWITH }
262
                         {} ;
263
                       DUP 15 ;
264
                       DUP 10 ;
265
                       CONTRACT %transfer_gasless (pair bool
266
                                                        (pair bool
267
                                                              (list (pair key
268
                                                                         (pair
269
                                                                           (list (pair
270
                                                                                  address
271
                                                                                  (pair
272
                                                                                    nat
273
                                                                                    nat)))
274
                                                                           signature))))) ;
275
                       IF_NONE
276
                         { PUSH string "transfer_gasless" ;
277
                           PUSH string "EntryNotFound" ;
278
                           PAIR ;
279
                           FAILWITH }
280
                         {} ;
281
                       PUSH mutez 0 ;
282
                       NIL (pair key
283
                                 (pair (list (pair address (pair nat nat))) signature)) ;
284
                       DUP 5 ;
285
                       NIL (pair address (pair nat nat)) ;
286
                       DUP 9 ;
287
                       PUSH nat 0 ;
288
                       PAIR ;
289
                       DUP 11 ;
290
                       PAIR ;
291
                       CONS ;
292
                       PAIR ;
293
                       DUP 7 ;
294
                       PAIR ;
295
                       CONS ;
296
                       DUP 17 ;
297
                       PAIR ;
298
                       DUP 16 ;
299
                       PAIR ;
300
                       TRANSFER_TOKENS ;
301
                       CONS ;
302
                       DIP { DIG 14 ; DROP } ;
303
                       DUG 14 ;
304
                       DUP 15 ;
305
                       DUP 9 ;
306
                       CONTRACT %mint (pair address (pair nat nat)) ;
307
                       IF_NONE
308
                         { PUSH string "mint" ; PUSH string "EntryNotFound" ; PAIR ; FAILWITH }
309
                         {} ;
310
                       PUSH mutez 0 ;
311
                       DUP 8 ;
312
                       DUP 10 ;
313
                       PAIR ;
314
                       DUP 6 ;
315
                       HASH_KEY ;
316
                       IMPLICIT_ACCOUNT ;
317
                       ADDRESS ;
318
                       PAIR ;
319
                       TRANSFER_TOKENS ;
320
                       CONS ;
321
                       DIP { DIG 14 ; DROP } ;
322
                       DUG 14 ;
323
                       DROP 6 ;
324
                       PAIR 8 ;
325
                       DIG 1 ;
326
                       PAIR } } } } ;
327
       DIP { DROP 2 } }