BCD

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