BCD

Tezos Contract Explorer
Search Networks Deploy
  • Home
  • /
  • Tezosx
  • /
  • KT1QiWb...JbAt
operations (6)Storage Code Interact Tokens Fork Views Details
Latest
​x
275
 
1
{ parameter (or (pair %bindIR (address %caller_alias) (address %ir_kt1))
2
                (or (pair %unbindIR (address %caller_alias) (address %ir_kt1))
3
                    (or
4
                      (pair %registerInvestor (address %caller_alias)
5
                                              (pair (address %investor)
6
                                                    (pair (address %identity_kt1)
7
                                                          (nat %country))))
8
                      (or
9
                        (pair %updateIdentity (address %caller_alias)
10
                                              (pair (address %investor)
11
                                                    (address %new_identity_kt1)))
12
                        (or
13
                          (pair %updateCountry (address %caller_alias)
14
                                               (pair (address %investor)
15
                                                     (nat %new_country)))
16
                          (or
17
                            (pair %removeIdentity (address %caller_alias)
18
                                                  (address %investor))
19
                            (or
20
                              (pair %setOwner (address %caller_alias)
21
                                              (address %new_owner))
22
                              (address %setAdmin)))))))) ;
23
  storage (pair (big_map %identities address address)
24
                (pair (big_map %countries address nat)
25
                      (pair (set %bound_irs address)
26
                            (pair (address %admin) (address %owner))))) ;
27
  code { UNPAIR ;
28
         IF_LEFT
29
           { DUP 2 ;
30
             GET 7 ;
31
             SENDER ;
32
             COMPARE ;
33
             NEQ ;
34
             IF { PUSH string "NOT_ADMIN" ; FAILWITH } {} ;
35
             DUP 2 ;
36
             GET 8 ;
37
             DUP 2 ;
38
             CAR ;
39
             COMPARE ;
40
             NEQ ;
41
             IF { PUSH string "NOT_OWNER" ; FAILWITH } {} ;
42
             SWAP ;
43
             DUP ;
44
             GET 5 ;
45
             PUSH bool True ;
46
             DIG 3 ;
47
             CDR ;
48
             UPDATE ;
49
             UPDATE 5 }
50
           { IF_LEFT
51
               { DUP 2 ;
52
                 GET 7 ;
53
                 SENDER ;
54
                 COMPARE ;
55
                 NEQ ;
56
                 IF { PUSH string "NOT_ADMIN" ; FAILWITH } {} ;
57
                 DUP 2 ;
58
                 GET 8 ;
59
                 DUP 2 ;
60
                 CAR ;
61
                 COMPARE ;
62
                 NEQ ;
63
                 IF { PUSH string "NOT_OWNER" ; FAILWITH } {} ;
64
                 DUP 2 ;
65
                 GET 5 ;
66
                 DUP 2 ;
67
                 CDR ;
68
                 MEM ;
69
                 IF {} { PUSH string "IR_NOT_BOUND" ; FAILWITH } ;
70
                 SWAP ;
71
                 DUP ;
72
                 GET 5 ;
73
                 PUSH bool False ;
74
                 DIG 3 ;
75
                 CDR ;
76
                 UPDATE ;
77
                 UPDATE 5 }
78
               { IF_LEFT
79
                   { SENDER ;
80
                     DUP 3 ;
81
                     GET 7 ;
82
                     DUP 2 ;
83
                     COMPARE ;
84
                     EQ ;
85
                     IF
86
                       { DROP }
87
                       { DUP 3 ;
88
                         GET 5 ;
89
                         SWAP ;
90
                         MEM ;
91
                         IF {} { PUSH string "NOT_ADMIN_OR_BOUND_IR" ; FAILWITH } } ;
92
                     DUP 2 ;
93
                     GET 5 ;
94
                     DUP 2 ;
95
                     CAR ;
96
                     MEM ;
97
                     IF {} { PUSH string "NOT_BOUND_IR" ; FAILWITH } ;
98
                     DUP 2 ;
99
                     CAR ;
100
                     DUP 2 ;
101
                     GET 3 ;
102
                     MEM ;
103
                     IF { PUSH string "ALREADY_REGISTERED" ; FAILWITH } {} ;
104
                     DUP 2 ;
105
                     DUP 3 ;
106
                     CAR ;
107
                     DUP 3 ;
108
                     GET 5 ;
109
                     SOME ;
110
                     DUP 4 ;
111
                     GET 3 ;
112
                     UPDATE ;
113
                     UPDATE 1 ;
114
                     DIG 2 ;
115
                     GET 3 ;
116
                     DUP 3 ;
117
                     GET 6 ;
118
                     SOME ;
119
                     DIG 3 ;
120
                     GET 3 ;
121
                     UPDATE ;
122
                     UPDATE 3 }
123
                   { IF_LEFT
124
                       { SENDER ;
125
                         DUP 3 ;
126
                         GET 7 ;
127
                         DUP 2 ;
128
                         COMPARE ;
129
                         EQ ;
130
                         IF
131
                           { DROP }
132
                           { DUP 3 ;
133
                             GET 5 ;
134
                             SWAP ;
135
                             MEM ;
136
                             IF {} { PUSH string "NOT_ADMIN_OR_BOUND_IR" ; FAILWITH } } ;
137
                         DUP 2 ;
138
                         GET 5 ;
139
                         DUP 2 ;
140
                         CAR ;
141
                         MEM ;
142
                         IF {} { PUSH string "NOT_BOUND_IR" ; FAILWITH } ;
143
                         DUP 2 ;
144
                         CAR ;
145
                         DUP 2 ;
146
                         GET 3 ;
147
                         MEM ;
148
                         IF {} { PUSH string "NOT_REGISTERED" ; FAILWITH } ;
149
                         SWAP ;
150
                         DUP ;
151
                         CAR ;
152
                         DUP 3 ;
153
                         GET 4 ;
154
                         SOME ;
155
                         DIG 3 ;
156
                         GET 3 ;
157
                         UPDATE ;
158
                         UPDATE 1 }
159
                       { IF_LEFT
160
                           { SENDER ;
161
                             DUP 3 ;
162
                             GET 7 ;
163
                             DUP 2 ;
164
                             COMPARE ;
165
                             EQ ;
166
                             IF
167
                               { DROP }
168
                               { DUP 3 ;
169
                                 GET 5 ;
170
                                 SWAP ;
171
                                 MEM ;
172
                                 IF
173
                                   {}
174
                                   { PUSH string "NOT_ADMIN_OR_BOUND_IR" ; FAILWITH } } ;
175
                             DUP 2 ;
176
                             GET 5 ;
177
                             DUP 2 ;
178
                             CAR ;
179
                             MEM ;
180
                             IF {} { PUSH string "NOT_BOUND_IR" ; FAILWITH } ;
181
                             DUP 2 ;
182
                             CAR ;
183
                             DUP 2 ;
184
                             GET 3 ;
185
                             MEM ;
186
                             IF {} { PUSH string "NOT_REGISTERED" ; FAILWITH } ;
187
                             SWAP ;
188
                             DUP ;
189
                             GET 3 ;
190
                             DUP 3 ;
191
                             GET 4 ;
192
                             SOME ;
193
                             DIG 3 ;
194
                             GET 3 ;
195
                             UPDATE ;
196
                             UPDATE 3 }
197
                           { IF_LEFT
198
                               { SENDER ;
199
                                 DUP 3 ;
200
                                 GET 7 ;
201
                                 DUP 2 ;
202
                                 COMPARE ;
203
                                 EQ ;
204
                                 IF
205
                                   { DROP }
206
                                   { DUP 3 ;
207
                                     GET 5 ;
208
                                     SWAP ;
209
                                     MEM ;
210
                                     IF
211
                                       {}
212
                                       { PUSH string "NOT_ADMIN_OR_BOUND_IR" ; FAILWITH } } ;
213
                                 DUP 2 ;
214
                                 GET 5 ;
215
                                 DUP 2 ;
216
                                 CAR ;
217
                                 MEM ;
218
                                 IF {} { PUSH string "NOT_BOUND_IR" ; FAILWITH } ;
219
                                 DUP 2 ;
220
                                 CAR ;
221
                                 DUP 2 ;
222
                                 CDR ;
223
                                 MEM ;
224
                                 IF {} { PUSH string "NOT_REGISTERED" ; FAILWITH } ;
225
                                 DUP 2 ;
226
                                 DUP 3 ;
227
                                 CAR ;
228
                                 NONE address ;
229
                                 DUP 4 ;
230
                                 CDR ;
231
                                 UPDATE ;
232
                                 UPDATE 1 ;
233
                                 DIG 2 ;
234
                                 GET 3 ;
235
                                 NONE nat ;
236
                                 DIG 3 ;
237
                                 CDR ;
238
                                 UPDATE ;
239
                                 UPDATE 3 }
240
                               { IF_LEFT
241
                                   { DUP 2 ;
242
                                     GET 7 ;
243
                                     SENDER ;
244
                                     COMPARE ;
245
                                     NEQ ;
246
                                     IF { PUSH string "NOT_ADMIN" ; FAILWITH } {} ;
247
                                     DUP 2 ;
248
                                     GET 8 ;
249
                                     DUP 2 ;
250
                                     CAR ;
251
                                     COMPARE ;
252
                                     NEQ ;
253
                                     IF { PUSH string "NOT_OWNER" ; FAILWITH } {} ;
254
                                     CDR ;
255
                                     UPDATE 8 }
256
                                   { DUP 2 ;
257
                                     GET 7 ;
258
                                     SENDER ;
259
                                     COMPARE ;
260
                                     NEQ ;
261
                                     IF { PUSH string "NOT_ADMIN" ; FAILWITH } {} ;
262
                                     UPDATE 7 } } } } } } } ;
263
         NIL operation ;
264
         PAIR } ;
265
  view "identityOf" address address
266
        { UNPAIR ; SWAP ; CAR ; SWAP ; GET ; IF_NONE { PUSH string "NOT_REGISTERED" ; FAILWITH } {} } ;
267
  view "countryOf" address nat
268
        { UNPAIR ;
269
          SWAP ;
270
          GET 3 ;
271
          SWAP ;
272
          GET ;
273
          IF_NONE { PUSH string "NOT_REGISTERED" ; FAILWITH } {} } ;
274
  view "isStored" address bool { UNPAIR ; SWAP ; CAR ; SWAP ; MEM } ;
275
  view "isBoundIR" address bool { UNPAIR ; SWAP ; GET 5 ; SWAP ; MEM } }