BCD

Tezos Contract Explorer
Search Networks Deploy
  • Home
  • /
  • Tezosx
  • /
  • KT1HKwT...fa5C
operations (1)Storage Code Interact Tokens Fork Views Details
Latest
​x
168
 
1
{ parameter (or
2
              (pair %addTrustedIssuer (address %caller_alias)
3
                                      (pair (key %issuer_sppk)
4
                                            (pair (set %topics nat)
5
                                                  (address %claim_issuer))))
6
              (or (pair %removeTrustedIssuer (address %caller_alias) (key %issuer_sppk))
7
                  (or (pair %setOwner (address %caller_alias) (address %new_owner))
8
                      (or
9
                        (pair %updateIssuerClaimTopics (address %caller_alias)
10
                                                       (pair (key %issuer_sppk)
11
                                                             (pair (set %new_topics nat)
12
                                                                   (address %claim_issuer))))
13
                        (address %setAdmin))))) ;
14
  storage (pair (big_map %issuers key (pair (set %topics nat) (address %claim_issuer)))
15
                (pair (address %admin) (address %owner))) ;
16
  code { UNPAIR ;
17
         IF_LEFT
18
           { DUP 2 ;
19
             GET 3 ;
20
             SENDER ;
21
             COMPARE ;
22
             NEQ ;
23
             IF { PUSH string "NOT_ADMIN" ; FAILWITH } {} ;
24
             DUP 2 ;
25
             GET 4 ;
26
             DUP 2 ;
27
             CAR ;
28
             COMPARE ;
29
             NEQ ;
30
             IF { PUSH string "NOT_OWNER" ; FAILWITH } {} ;
31
             DUP 2 ;
32
             CAR ;
33
             DUP 2 ;
34
             GET 3 ;
35
             MEM ;
36
             IF { PUSH string "ISSUER_ALREADY_TRUSTED" ; FAILWITH } {} ;
37
             SWAP ;
38
             DUP ;
39
             CAR ;
40
             DUP 3 ;
41
             GET 6 ;
42
             DUP 4 ;
43
             GET 5 ;
44
             PAIR ;
45
             SOME ;
46
             DIG 3 ;
47
             GET 3 ;
48
             UPDATE ;
49
             UPDATE 1 }
50
           { IF_LEFT
51
               { DUP 2 ;
52
                 GET 3 ;
53
                 SENDER ;
54
                 COMPARE ;
55
                 NEQ ;
56
                 IF { PUSH string "NOT_ADMIN" ; FAILWITH } {} ;
57
                 DUP 2 ;
58
                 GET 4 ;
59
                 DUP 2 ;
60
                 CAR ;
61
                 COMPARE ;
62
                 NEQ ;
63
                 IF { PUSH string "NOT_OWNER" ; FAILWITH } {} ;
64
                 DUP 2 ;
65
                 CAR ;
66
                 DUP 2 ;
67
                 CDR ;
68
                 MEM ;
69
                 IF {} { PUSH string "ISSUER_NOT_TRUSTED" ; FAILWITH } ;
70
                 SWAP ;
71
                 DUP ;
72
                 CAR ;
73
                 NONE (pair (set nat) address) ;
74
                 DIG 3 ;
75
                 CDR ;
76
                 UPDATE ;
77
                 UPDATE 1 }
78
               { IF_LEFT
79
                   { DUP 2 ;
80
                     GET 3 ;
81
                     SENDER ;
82
                     COMPARE ;
83
                     NEQ ;
84
                     IF { PUSH string "NOT_ADMIN" ; FAILWITH } {} ;
85
                     DUP 2 ;
86
                     GET 4 ;
87
                     DUP 2 ;
88
                     CAR ;
89
                     COMPARE ;
90
                     NEQ ;
91
                     IF { PUSH string "NOT_OWNER" ; FAILWITH } {} ;
92
                     CDR ;
93
                     UPDATE 4 }
94
                   { IF_LEFT
95
                       { DUP 2 ;
96
                         GET 3 ;
97
                         SENDER ;
98
                         COMPARE ;
99
                         NEQ ;
100
                         IF { PUSH string "NOT_ADMIN" ; FAILWITH } {} ;
101
                         DUP 2 ;
102
                         GET 4 ;
103
                         DUP 2 ;
104
                         CAR ;
105
                         COMPARE ;
106
                         NEQ ;
107
                         IF { PUSH string "NOT_OWNER" ; FAILWITH } {} ;
108
                         DUP 2 ;
109
                         CAR ;
110
                         DUP 2 ;
111
                         GET 3 ;
112
                         MEM ;
113
                         IF {} { PUSH string "ISSUER_NOT_TRUSTED" ; FAILWITH } ;
114
                         SWAP ;
115
                         DUP ;
116
                         CAR ;
117
                         DUP 3 ;
118
                         GET 6 ;
119
                         DUP 4 ;
120
                         GET 5 ;
121
                         PAIR ;
122
                         SOME ;
123
                         DIG 3 ;
124
                         GET 3 ;
125
                         UPDATE ;
126
                         UPDATE 1 }
127
                       { DUP 2 ;
128
                         GET 3 ;
129
                         SENDER ;
130
                         COMPARE ;
131
                         NEQ ;
132
                         IF { PUSH string "NOT_ADMIN" ; FAILWITH } {} ;
133
                         UPDATE 3 } } } } ;
134
         NIL operation ;
135
         PAIR } ;
136
  view "isTrustedIssuer" key bool { UNPAIR ; SWAP ; CAR ; SWAP ; MEM } ;
137
  view "isTrustedIssuerForTopic" (pair key nat) bool
138
        { UNPAIR ;
139
          UNPAIR ;
140
          DIG 2 ;
141
          CAR ;
142
          SWAP ;
143
          GET ;
144
          IF_NONE { DROP ; PUSH bool False } { CAR ; SWAP ; MEM } } ;
145
  view "getTopicsForIssuer" key (set nat)
146
        { UNPAIR ;
147
          SWAP ;
148
          CAR ;
149
          SWAP ;
150
          GET ;
151
          IF_NONE { PUSH string "ISSUER_NOT_TRUSTED" ; FAILWITH } { CAR } } ;
152
  view "getClaimIssuerForTopic" (pair key nat) (option address)
153
        { UNPAIR ;
154
          UNPAIR ;
155
          DIG 2 ;
156
          CAR ;
157
          SWAP ;
158
          GET ;
159
          IF_NONE
160
            { DROP ; NONE address }
161
            { DUP ; CAR ; DIG 2 ; MEM ; IF { CDR ; SOME } { DROP ; NONE address } } } ;
162
  view "getIssuerEntry" key (pair (set %topics nat) (address %claim_issuer))
163
        { UNPAIR ;
164
          SWAP ;
165
          CAR ;
166
          SWAP ;
167
          GET ;
168
          IF_NONE { PUSH string "ISSUER_NOT_TRUSTED" ; FAILWITH } {} } }