BCD

Tezos Contract Explorer
Search Networks Deploy
  • Home
  • /
  • Ghostnet
  • /
  • Tezos Domains Governance Pool
operations (19)Storage Code Interact Tokens Metadata Fork Statistics Details
Latest
​x
287
 
1
parameter (or
2
            (or
3
              (or %admin (or (unit %confirm_admin) (bool %pause)) (address %set_admin))
4
              (nat %change_reward_rate))
5
            (or (nat %deposit) (nat %withdraw)));
6
storage (pair (address %token_contract) (address %votes_contract)
7
              (pair %admin (pair (address %admin) (bool %paused))
8
                           (option %pending_admin address))
9
              (nat %pool_size)
10
              (timestamp %last_accrued_rewards_at)
11
              (nat %reward_rate)
12
              (nat %votes_minted)
13
              (big_map %metadata string bytes));
14
code { LAMBDA
15
         (pair (pair address bool) (option address))
16
         unit
17
         { CAR ;
18
           CAR ;
19
           SENDER ;
20
           COMPARE ;
21
           NEQ ;
22
           IF { PUSH string "NOT_AN_ADMIN" ; FAILWITH } { UNIT } } ;
23
       LAMBDA
24
         (pair (pair address bool) (option address))
25
         unit
26
         { CAR ; CDR ; IF { PUSH string "PAUSED" ; FAILWITH } { UNIT } } ;
27
       LAMBDA int nat { ISNAT ; IF_NONE { PUSH string "NOT_A_NAT" ; FAILWITH } {} } ;
28
       LAMBDA
29
         (pair (pair address address) address nat)
30
         operation
31
         { UNPAIR ;
32
           UNPAIR ;
33
           DIG 2 ;
34
           UNPAIR ;
35
           DIG 2 ;
36
           CONTRACT %transfer (list (pair (address %from_)
37
                                         (list %txs (pair (address %to_) (nat %token_id)
38
                                                         (nat %amount))))) ;
39
           IF_NONE { PUSH string "MISSING_ENTRYPOINT" ; FAILWITH } {} ;
40
           PUSH mutez 0 ;
41
           NIL (pair address (list (pair address nat nat))) ;
42
           NIL (pair address nat nat) ;
43
           DIG 5 ;
44
           PUSH nat 0 ;
45
           DIG 6 ;
46
           PAIR 3 ;
47
           CONS ;
48
           DIG 4 ;
49
           PAIR ;
50
           CONS ;
51
           TRANSFER_TOKENS } ;
52
       LAMBDA
53
         (pair (lambda int nat)
54
               (pair address address (pair (pair address bool) (option address)) nat
55
                     timestamp
56
                     nat
57
                     nat
58
                     (big_map string bytes)))
59
         (pair address address (pair (pair address bool) (option address)) nat timestamp
60
               nat
61
               nat
62
               (big_map string bytes))
63
         { UNPAIR ;
64
           SWAP ;
65
           DUP ;
66
           NOW ;
67
           UPDATE 9 ;
68
           PUSH nat 1000000000 ;
69
           DUP 3 ;
70
           GET 9 ;
71
           NOW ;
72
           SUB ;
73
           DIG 4 ;
74
           SWAP ;
75
           EXEC ;
76
           DUP 4 ;
77
           GET 11 ;
78
           MUL ;
79
           EDIV ;
80
           IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ;
81
           CAR ;
82
           DIG 2 ;
83
           GET 7 ;
84
           ADD ;
85
           UPDATE 7 } ;
86
       DUP 3 ;
87
       APPLY ;
88
       DIG 5 ;
89
       UNPAIR ;
90
       PUSH mutez 0 ;
91
       AMOUNT ;
92
       COMPARE ;
93
       GT ;
94
       IF { PUSH string "AMOUNT_NOT_ZERO" ; FAILWITH } {} ;
95
       IF_LEFT
96
         { DIG 3 ;
97
           DIG 4 ;
98
           DIG 5 ;
99
           DROP 3 ;
100
           IF_LEFT
101
             { DIG 2 ;
102
               DROP ;
103
               DUP 2 ;
104
               DIG 2 ;
105
               GET 5 ;
106
               DIG 2 ;
107
               IF_LEFT
108
                 { IF_LEFT
109
                     { DIG 3 ;
110
                       DROP 2 ;
111
                       DUP ;
112
                       CDR ;
113
                       IF_NONE
114
                         { DROP ; PUSH string "NO_PENDING_ADMIN" ; FAILWITH }
115
                         { SENDER ;
116
                           SWAP ;
117
                           DUP 2 ;
118
                           COMPARE ;
119
                           EQ ;
120
                           IF
121
                             { NONE address ; DIG 2 ; CAR ; CDR ; DIG 2 ; PAIR ; PAIR }
122
                             { DROP 2 ; PUSH string "NOT_A_PENDING_ADMIN" ; FAILWITH } } }
123
                     { DUP 2 ; DIG 4 ; SWAP ; EXEC ; DROP ; DUP 2 ; CDR ; SWAP ; DIG 2 ; CAR ; CAR ; PAIR ; PAIR } }
124
                 { DUP 2 ; DIG 4 ; SWAP ; EXEC ; DROP ; SOME ; SWAP ; CAR ; PAIR } ;
125
               UPDATE 5 }
126
             { DUP 2 ; GET 5 ; DIG 4 ; SWAP ; EXEC ; DROP ; SWAP ; DIG 2 ; SWAP ; EXEC ; SWAP ; UPDATE 11 } ;
127
           NIL operation }
128
         { DIG 6 ;
129
           DROP ;
130
           IF_LEFT
131
             { DIG 2 ;
132
               DROP ;
133
               DUP 2 ;
134
               GET 5 ;
135
               DIG 5 ;
136
               SWAP ;
137
               EXEC ;
138
               DROP ;
139
               PUSH nat 1000000000 ;
140
               DUP 3 ;
141
               GET 9 ;
142
               NOW ;
143
               SUB ;
144
               DIG 5 ;
145
               SWAP ;
146
               EXEC ;
147
               DUP 4 ;
148
               GET 11 ;
149
               MUL ;
150
               EDIV ;
151
               IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ;
152
               CAR ;
153
               DUP 3 ;
154
               GET 7 ;
155
               ADD ;
156
               DUP 3 ;
157
               GET 13 ;
158
               DUP 3 ;
159
               MUL ;
160
               EDIV ;
161
               IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ;
162
               CAR ;
163
               DUP 2 ;
164
               SELF_ADDRESS ;
165
               PAIR ;
166
               SENDER ;
167
               DUP 5 ;
168
               CAR ;
169
               PAIR ;
170
               PAIR ;
171
               DUP 5 ;
172
               SWAP ;
173
               EXEC ;
174
               DUP 4 ;
175
               GET 3 ;
176
               CONTRACT %mint_tokens (list (pair (address %owner) (nat %amount))) ;
177
               IF_NONE { PUSH string "MISSING_ENTRYPOINT" ; FAILWITH } {} ;
178
               NIL (pair address nat) ;
179
               DUP 4 ;
180
               SELF_ADDRESS ;
181
               PAIR ;
182
               CONS ;
183
               SWAP ;
184
               PUSH mutez 0 ;
185
               DIG 2 ;
186
               TRANSFER_TOKENS ;
187
               DUP 3 ;
188
               SENDER ;
189
               PAIR ;
190
               SELF_ADDRESS ;
191
               DUP 7 ;
192
               GET 3 ;
193
               PAIR ;
194
               PAIR ;
195
               DIG 6 ;
196
               SWAP ;
197
               EXEC ;
198
               DUP 6 ;
199
               DIG 5 ;
200
               DUP 7 ;
201
               GET 7 ;
202
               ADD ;
203
               UPDATE 7 ;
204
               DIG 4 ;
205
               DIG 5 ;
206
               GET 13 ;
207
               ADD ;
208
               UPDATE 13 }
209
             { DUP 2 ;
210
               GET 5 ;
211
               DIG 6 ;
212
               SWAP ;
213
               EXEC ;
214
               DROP ;
215
               SWAP ;
216
               DIG 2 ;
217
               SWAP ;
218
               EXEC ;
219
               DUP ;
220
               GET 13 ;
221
               DUP 2 ;
222
               GET 7 ;
223
               DUP 4 ;
224
               MUL ;
225
               EDIV ;
226
               IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ;
227
               CAR ;
228
               DUP 3 ;
229
               SELF_ADDRESS ;
230
               PAIR ;
231
               SENDER ;
232
               DUP 4 ;
233
               GET 3 ;
234
               PAIR ;
235
               PAIR ;
236
               DUP 5 ;
237
               SWAP ;
238
               EXEC ;
239
               DUP 3 ;
240
               GET 3 ;
241
               CONTRACT %burn_tokens (list (pair (address %owner) (nat %amount))) ;
242
               IF_NONE { PUSH string "MISSING_ENTRYPOINT" ; FAILWITH } {} ;
243
               NIL (pair address nat) ;
244
               DUP 6 ;
245
               SELF_ADDRESS ;
246
               PAIR ;
247
               CONS ;
248
               SWAP ;
249
               PUSH mutez 0 ;
250
               DIG 2 ;
251
               TRANSFER_TOKENS ;
252
               DUP 3 ;
253
               SENDER ;
254
               PAIR ;
255
               SELF_ADDRESS ;
256
               DUP 6 ;
257
               CAR ;
258
               PAIR ;
259
               PAIR ;
260
               DIG 6 ;
261
               SWAP ;
262
               EXEC ;
263
               DUP 5 ;
264
               DIG 4 ;
265
               DUP 6 ;
266
               GET 7 ;
267
               SUB ;
268
               DUP 8 ;
269
               SWAP ;
270
               EXEC ;
271
               UPDATE 7 ;
272
               DIG 5 ;
273
               DIG 5 ;
274
               GET 13 ;
275
               SUB ;
276
               DIG 5 ;
277
               SWAP ;
278
               EXEC ;
279
               UPDATE 13 } ;
280
           NIL operation ;
281
           DIG 2 ;
282
           CONS ;
283
           DIG 2 ;
284
           CONS ;
285
           DIG 2 ;
286
           CONS } ;
287
       PAIR }