BCD

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