BCD

Tezos Contract Explorer
Search Networks Deploy
  • Home
  • /
  • Mainnet
  • /
  • KT1SptY...xpCj
Delegatable
operations (1)Storage Code Interact Tokens Fork Statistics Details
Latest
​x
219
 
1
parameter (or
2
            (or (or (unit %default) (address %propose_administrator))
3
                (or (address %remove_administrator) (address %remove_manager)))
4
            (or (or (unit %set_administrator) (option %set_delegate key_hash))
5
                (or (address %set_manager) (nat %sponsor_me))));
6
storage (pair (big_map %administrators address int) (big_map %managers address unit));
7
code { LAMBDA
8
         (pair unit (pair (big_map address int) (big_map address unit)))
9
         (pair unit (pair (big_map address int) (big_map address unit)))
10
         { CDR ;
11
           DUP ;
12
           CAR ;
13
           SENDER ;
14
           MEM ;
15
           IF {} { PUSH string "Unauthorized" ; FAILWITH } ;
16
           PUSH int 1 ;
17
           DUP 2 ;
18
           CAR ;
19
           SENDER ;
20
           GET ;
21
           IF_NONE { PUSH int 19 ; FAILWITH } {} ;
22
           COMPARE ;
23
           EQ ;
24
           IF {} { PUSH string "Unauthorized. Proposal is still pending." ; FAILWITH } ;
25
           UNIT ;
26
           PAIR } ;
27
       SWAP ;
28
       LAMBDA
29
         (pair unit (pair (big_map address int) (big_map address unit)))
30
         (pair unit (pair (big_map address int) (big_map address unit)))
31
         { CDR ; DUP ; CDR ; SENDER ; MEM ; IF {} { PUSH string "Unauthorized" ; FAILWITH } ; UNIT ; PAIR } ;
32
       SWAP ;
33
       UNPAIR ;
34
       IF_LEFT
35
         { IF_LEFT
36
             { IF_LEFT
37
                 { DROP ; SWAP ; DROP ; SWAP ; DROP }
38
                 { DIG 2 ;
39
                   DROP ;
40
                   PUSH mutez 0 ;
41
                   AMOUNT ;
42
                   COMPARE ;
43
                   EQ ;
44
                   IF {} { PUSH string "No tez accepted" ; FAILWITH } ;
45
                   DIG 2 ;
46
                   UNIT ;
47
                   SWAP ;
48
                   DIG 3 ;
49
                   DIG 2 ;
50
                   PAIR ;
51
                   EXEC ;
52
                   CDR ;
53
                   DUP ;
54
                   CAR ;
55
                   PUSH (option int) (Some 0) ;
56
                   DIG 3 ;
57
                   UPDATE ;
58
                   UPDATE 1 } }
59
             { IF_LEFT
60
                 { DIG 2 ;
61
                   DROP ;
62
                   PUSH mutez 0 ;
63
                   AMOUNT ;
64
                   COMPARE ;
65
                   EQ ;
66
                   IF {} { PUSH string "No tez accepted" ; FAILWITH } ;
67
                   DIG 2 ;
68
                   UNIT ;
69
                   SWAP ;
70
                   DIG 3 ;
71
                   DIG 2 ;
72
                   PAIR ;
73
                   EXEC ;
74
                   CDR ;
75
                   DUP ;
76
                   CAR ;
77
                   NONE int ;
78
                   DIG 3 ;
79
                   UPDATE ;
80
                   UPDATE 1 }
81
                 { DIG 2 ;
82
                   DROP ;
83
                   PUSH mutez 0 ;
84
                   AMOUNT ;
85
                   COMPARE ;
86
                   EQ ;
87
                   IF {} { PUSH string "No tez accepted" ; FAILWITH } ;
88
                   DIG 2 ;
89
                   UNIT ;
90
                   SWAP ;
91
                   DIG 3 ;
92
                   DIG 2 ;
93
                   PAIR ;
94
                   EXEC ;
95
                   CDR ;
96
                   SWAP ;
97
                   DUP 2 ;
98
                   CDR ;
99
                   DUP 2 ;
100
                   MEM ;
101
                   IF {} { PUSH string "Manager not found." ; FAILWITH } ;
102
                   SWAP ;
103
                   DUP ;
104
                   CDR ;
105
                   NONE unit ;
106
                   DIG 3 ;
107
                   UPDATE ;
108
                   UPDATE 2 } } ;
109
           NIL operation }
110
         { IF_LEFT
111
             { IF_LEFT
112
                 { DROP ;
113
                   SWAP ;
114
                   DROP ;
115
                   SWAP ;
116
                   DROP ;
117
                   PUSH mutez 0 ;
118
                   AMOUNT ;
119
                   COMPARE ;
120
                   EQ ;
121
                   IF {} { PUSH string "No tez accepted" ; FAILWITH } ;
122
                   DUP ;
123
                   CAR ;
124
                   SENDER ;
125
                   MEM ;
126
                   IF {} { PUSH string "Unauthorized" ; FAILWITH } ;
127
                   PUSH int 0 ;
128
                   DUP 2 ;
129
                   CAR ;
130
                   SENDER ;
131
                   GET ;
132
                   IF_NONE { PUSH int 42 ; FAILWITH } {} ;
133
                   COMPARE ;
134
                   EQ ;
135
                   IF {} { PUSH string "Not a proposed administrator" ; FAILWITH } ;
136
                   DUP ;
137
                   CAR ;
138
                   PUSH (option int) (Some 1) ;
139
                   SENDER ;
140
                   UPDATE ;
141
                   UPDATE 1 ;
142
                   NIL operation }
143
                 { DIG 2 ;
144
                   DROP ;
145
                   DIG 2 ;
146
                   UNIT ;
147
                   SWAP ;
148
                   DIG 3 ;
149
                   DIG 2 ;
150
                   PAIR ;
151
                   EXEC ;
152
                   CDR ;
153
                   SWAP ;
154
                   SET_DELEGATE ;
155
                   NIL operation ;
156
                   SWAP ;
157
                   CONS } }
158
             { IF_LEFT
159
                 { DIG 2 ;
160
                   DROP ;
161
                   PUSH mutez 0 ;
162
                   AMOUNT ;
163
                   COMPARE ;
164
                   EQ ;
165
                   IF {} { PUSH string "No tez accepted" ; FAILWITH } ;
166
                   DIG 2 ;
167
                   UNIT ;
168
                   SWAP ;
169
                   DIG 3 ;
170
                   DIG 2 ;
171
                   PAIR ;
172
                   EXEC ;
173
                   CDR ;
174
                   DUP ;
175
                   CDR ;
176
                   PUSH (option unit) (Some Unit) ;
177
                   DIG 3 ;
178
                   UPDATE ;
179
                   UPDATE 2 ;
180
                   NIL operation }
181
                 { DIG 3 ;
182
                   DROP ;
183
                   DIG 2 ;
184
                   UNIT ;
185
                   SWAP ;
186
                   DIG 3 ;
187
                   DIG 2 ;
188
                   PAIR ;
189
                   EXEC ;
190
                   CDR ;
191
                   SWAP ;
192
                   PUSH mutez 0 ;
193
                   AMOUNT ;
194
                   COMPARE ;
195
                   EQ ;
196
                   IF {} { PUSH string "No tez accepted" ; FAILWITH } ;
197
                   DUP ;
198
                   INT ;
199
                   GT ;
200
                   IF {} { PUSH string "The requested amount can't be 0." ; FAILWITH } ;
201
                   PUSH mutez 1 ;
202
                   SWAP ;
203
                   MUL ;
204
                   DUP ;
205
                   BALANCE ;
206
                   COMPARE ;
207
                   GE ;
208
                   IF
209
                     {}
210
                     { PUSH string "The requested amount is too large." ; FAILWITH } ;
211
                   NIL operation ;
212
                   SENDER ;
213
                   CONTRACT unit ;
214
                   IF_NONE { PUSH int 20 ; FAILWITH } {} ;
215
                   DIG 2 ;
216
                   UNIT ;
217
                   TRANSFER_TOKENS ;
218
                   CONS } } } ;
219
       PAIR }