BCD

Tezos Contract Explorer
Search Networks Deploy
  • Home
  • /
  • Ghostnet
  • /
  • KT1C12w...29YZ
operations (14)Storage Code Interact Tokens Fork Views Statistics Details
Latest
​x
213
 
1
{ parameter (or
2
              (or (or (bytes %setMetadataUri) (address %setArchetype))
3
                  (or (address %setAdminCandidate) (unit %acceptAdminCandidate)))
4
              (pair %updateBalance (address %pkh)
5
                                   (pair (nat %aid) (or %incr (nat %Incr) (nat %Decr))))) ;
6
  storage (pair (address %admin)
7
                (pair (option %archetype address)
8
                      (pair (big_map %ownerData (pair address nat) nat)
9
                            (pair (option %adminCandidate address)
10
                                  (big_map %metadata string bytes))))) ;
11
  code { UNPAIR ;
12
         DIP { UNPAIR 5 } ;
13
         IF_LEFT
14
           { IF_LEFT
15
               { IF_LEFT
16
                   { DUP 2 ;
17
                     SENDER ;
18
                     COMPARE ;
19
                     EQ ;
20
                     NOT ;
21
                     IF { PUSH string "InvalidCaller" ; FAILWITH } {} ;
22
                     DIG 5 ;
23
                     DUP 2 ;
24
                     SOME ;
25
                     PUSH string "" ;
26
                     UPDATE ;
27
                     DUG 5 ;
28
                     DROP ;
29
                     PAIR 5 ;
30
                     NIL operation ;
31
                     PAIR }
32
                   { DUP 2 ;
33
                     SENDER ;
34
                     COMPARE ;
35
                     EQ ;
36
                     NOT ;
37
                     IF { PUSH string "InvalidCaller" ; FAILWITH } {} ;
38
                     DUP ;
39
                     SOME ;
40
                     DIP { DIG 2 ; DROP } ;
41
                     DUG 2 ;
42
                     DROP ;
43
                     PAIR 5 ;
44
                     NIL operation ;
45
                     PAIR } }
46
               { IF_LEFT
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
                   { DROP ;
62
                     DUP 4 ;
63
                     IF_NONE
64
                       { PUSH string "ADMIN_CANDIDATE_NOT_SET" ; FAILWITH }
65
                       { DUP ;
66
                         SENDER ;
67
                         COMPARE ;
68
                         EQ ;
69
                         NOT ;
70
                         IF { PUSH string "CALLER_NOT_ADMIN_CANDIDATE" ; FAILWITH } {} ;
71
                         DUP ;
72
                         DIP { DIG 1 ; DROP } ;
73
                         DUG 1 ;
74
                         NONE address ;
75
                         DIP { DIG 4 ; DROP } ;
76
                         DUG 4 ;
77
                         DROP } ;
78
                     PAIR 5 ;
79
                     NIL operation ;
80
                     PAIR } } }
81
           { UNPAIR ;
82
             SWAP ;
83
             UNPAIR ;
84
             SWAP ;
85
             DUP 5 ;
86
             IF_NONE { PUSH string "NotFound" ; FAILWITH } {} ;
87
             SENDER ;
88
             COMPARE ;
89
             EQ ;
90
             NOT ;
91
             IF { PUSH string "InvalidCaller" ; FAILWITH } {} ;
92
             DUP 2 ;
93
             DUP 4 ;
94
             PAIR ;
95
             DUP 2 ;
96
             IF_LEFT
97
               { DUP 8 ;
98
                 DUP 3 ;
99
                 MEM ;
100
                 IF
101
                   { DUP 8 ;
102
                     DUP 3 ;
103
                     GET ;
104
                     IF_NONE
105
                       { PUSH string "ownerData" ;
106
                         PUSH string "AssetNotFound" ;
107
                         PAIR ;
108
                         FAILWITH }
109
                       {} ;
110
                     DUP 9 ;
111
                     DUP 3 ;
112
                     DUP 3 ;
113
                     ADD ;
114
                     SOME ;
115
                     DUP 5 ;
116
                     UPDATE ;
117
                     DIP { DIG 8 ; DROP } ;
118
                     DUG 8 ;
119
                     DROP }
120
                   { DUP 8 ;
121
                     DUP 3 ;
122
                     MEM ;
123
                     IF
124
                       { PUSH string "ownerData" ; PUSH string "KeyExists" ; PAIR ; FAILWITH }
125
                       { DUP 8 ;
126
                         DUP 2 ;
127
                         PUSH nat 0 ;
128
                         ADD ;
129
                         SOME ;
130
                         DUP 4 ;
131
                         UPDATE ;
132
                         DIP { DIG 7 ; DROP } ;
133
                         DUG 7 } } ;
134
                 DROP }
135
               { DUP 8 ;
136
                 DUP 3 ;
137
                 MEM ;
138
                 IF
139
                   { DUP 8 ;
140
                     DUP 3 ;
141
                     GET ;
142
                     IF_NONE
143
                       { PUSH string "ownerData" ;
144
                         PUSH string "AssetNotFound" ;
145
                         PAIR ;
146
                         FAILWITH }
147
                       {} ;
148
                     DUP 9 ;
149
                     PUSH int 0 ;
150
                     DUP 4 ;
151
                     INT ;
152
                     DUP 4 ;
153
                     SUB ;
154
                     COMPARE ;
155
                     GE ;
156
                     IF
157
                       { DUP 3 ; INT ; DUP 3 ; SUB ; ABS }
158
                       { PUSH string "NatAssign" ; FAILWITH } ;
159
                     SOME ;
160
                     DUP 5 ;
161
                     UPDATE ;
162
                     DIP { DIG 8 ; DROP } ;
163
                     DUG 8 ;
164
                     DROP }
165
                   { DUP 8 ;
166
                     DUP 3 ;
167
                     MEM ;
168
                     IF
169
                       { PUSH string "ownerData" ; PUSH string "KeyExists" ; PAIR ; FAILWITH }
170
                       { DUP 8 ;
171
                         PUSH int 0 ;
172
                         DUP 3 ;
173
                         INT ;
174
                         PUSH nat 0 ;
175
                         SUB ;
176
                         COMPARE ;
177
                         GE ;
178
                         IF
179
                           { DUP 2 ; INT ; PUSH nat 0 ; SUB ; ABS }
180
                           { PUSH string "NatAssign" ; FAILWITH } ;
181
                         SOME ;
182
                         DUP 4 ;
183
                         UPDATE ;
184
                         DIP { DIG 7 ; DROP } ;
185
                         DUG 7 } } ;
186
                 DROP } ;
187
             DROP 4 ;
188
             PAIR 5 ;
189
             NIL operation ;
190
             PAIR } } ;
191
  view "getBalance" (pair address nat) nat
192
        { UNPAIR ;
193
          DIP { CDR ; CDR ; UNPAIR ; SWAP ; DROP } ;
194
          UNPAIR ;
195
          UNIT ;
196
          DUP 3 ;
197
          DUP 3 ;
198
          PAIR ;
199
          DUP 5 ;
200
          DUP 2 ;
201
          MEM ;
202
          IF
203
            { DUP 5 ;
204
              DUP 2 ;
205
              GET ;
206
              IF_NONE
207
                { PUSH string "ownerData" ; PUSH string "AssetNotFound" ; PAIR ; FAILWITH }
208
                {} }
209
            { PUSH nat 0 } ;
210
          DIP { DIG 1 ; DROP } ;
211
          DUG 1 ;
212
          DROP ;
213
          DIP { DROP 3 } } }