BCD

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