BCD

Tezos Contract Explorer
Search Networks Deploy
  • Home
  • /
  • Mainnet
  • /
  • Kalamint IPFS Registry 2
operations (4)Storage Code Interact Tokens Fork Statistics Details
Latest
​x
154
 
1
parameter (or
2
            (or
3
              (pair %add_fa2_token (string %ipfs_hash)
4
                                   (pair (map %metadata string string)
5
                                         (address %nft_contract)))
6
              (string %remove_fa2_token))
7
            (or (address %set_administrator) (address %set_dex_contract)));
8
storage (pair (address %administrator)
9
              (pair
10
                (big_map %ipfs_registry string
11
                                        (pair (map %metadata string string)
12
                                              (address %nft_contract)))
13
                (address %nft_dex_contract)));
14
code { DUP ;
15
       CDR ;
16
       SWAP ;
17
       CAR ;
18
       IF_LEFT
19
         { IF_LEFT
20
             { SWAP ;
21
               DUP ;
22
               DUG 2 ;
23
               CAR ;
24
               SENDER ;
25
               COMPARE ;
26
               EQ ;
27
               IF
28
                 { PUSH bool True }
29
                 { SWAP ; DUP ; DUG 2 ; CDR ; CDR ; SENDER ; COMPARE ; EQ } ;
30
               IF
31
                 {}
32
                 { PUSH string "admin or dex_contract can only add_fa2_token " ;
33
                   FAILWITH } ;
34
               SWAP ;
35
               DUP ;
36
               DUG 2 ;
37
               CDR ;
38
               CAR ;
39
               SWAP ;
40
               DUP ;
41
               DUG 2 ;
42
               CAR ;
43
               MEM ;
44
               IF
45
                 { PUSH string "WrongCondition: ~ (self.data.ipfs_registry.contains(params.ipfs_hash))" ;
46
                   FAILWITH }
47
                 {} ;
48
               SWAP ;
49
               DUP ;
50
               CAR ;
51
               SWAP ;
52
               CDR ;
53
               DUP ;
54
               CDR ;
55
               SWAP ;
56
               CAR ;
57
               DIG 3 ;
58
               DUP ;
59
               CDR ;
60
               CDR ;
61
               SWAP ;
62
               DUP ;
63
               DUG 5 ;
64
               CDR ;
65
               CAR ;
66
               PAIR %metadata %nft_contract ;
67
               SOME ;
68
               DIG 4 ;
69
               CAR ;
70
               UPDATE ;
71
               PAIR ;
72
               SWAP ;
73
               PAIR }
74
             { SWAP ;
75
               DUP ;
76
               DUG 2 ;
77
               CAR ;
78
               SENDER ;
79
               COMPARE ;
80
               EQ ;
81
               IF
82
                 { PUSH bool True }
83
                 { SWAP ; DUP ; DUG 2 ; CDR ; CDR ; SENDER ; COMPARE ; EQ } ;
84
               IF
85
                 {}
86
                 { PUSH string "admin or dex_contract can only delete fa2_token " ;
87
                   FAILWITH } ;
88
               SWAP ;
89
               DUP ;
90
               DUG 2 ;
91
               CDR ;
92
               CAR ;
93
               SWAP ;
94
               DUP ;
95
               DUG 2 ;
96
               MEM ;
97
               IF
98
                 {}
99
                 { PUSH string "ipfs_hash does not exist in NFT registry" ; FAILWITH } ;
100
               SWAP ;
101
               DUP ;
102
               CAR ;
103
               SWAP ;
104
               CDR ;
105
               DUP ;
106
               CDR ;
107
               SWAP ;
108
               CAR ;
109
               NONE (pair (map %metadata string string) (address %nft_contract)) ;
110
               DIG 4 ;
111
               UPDATE ;
112
               PAIR ;
113
               SWAP ;
114
               PAIR } }
115
         { IF_LEFT
116
             { SWAP ;
117
               DUP ;
118
               DUG 2 ;
119
               CAR ;
120
               SENDER ;
121
               COMPARE ;
122
               EQ ;
123
               IF
124
                 {}
125
                 { PUSH string "WrongCondition: sp.sender == self.data.administrator" ;
126
                   FAILWITH } ;
127
               SWAP ;
128
               CDR ;
129
               SWAP ;
130
               PAIR }
131
             { SWAP ;
132
               DUP ;
133
               DUG 2 ;
134
               CAR ;
135
               SENDER ;
136
               COMPARE ;
137
               EQ ;
138
               IF
139
                 {}
140
                 { PUSH string "WrongCondition: sp.sender == self.data.administrator" ;
141
                   FAILWITH } ;
142
               SWAP ;
143
               DUP ;
144
               CAR ;
145
               SWAP ;
146
               CDR ;
147
               CAR ;
148
               DIG 2 ;
149
               SWAP ;
150
               PAIR ;
151
               SWAP ;
152
               PAIR } } ;
153
       NIL operation ;
154
       PAIR }