BCD

Tezos Contract Explorer
Search Networks Deploy
  • Home
  • /
  • Mainnet
  • /
  • xPLENTY single-sided AMM
operations (195K)Storage Code Interact Tokens Fork Statistics Details
Latest
​x
552
 
1
parameter (or
2
            (or
3
              (or (unit %ChangeState)
4
                  (pair %RecoverExcessToken (pair (nat %amount) (bool %faTwoCheck))
5
                                            (pair (address %reciever)
6
                                                  (pair (address %tokenAddress)
7
                                                        (nat %tokenId)))))
8
              (or
9
                (pair %buy (nat %minimumxPlentyToken)
10
                           (pair (nat %plentyAmount) (address %recipient)))
11
                (nat %buy_callback)))
12
            (or (or (address %changeAdmin) (address %changeRewardManager))
13
                (or
14
                  (pair %sell (nat %minimumPlenty)
15
                              (pair (address %recipient) (nat %xplentyAmount)))
16
                  (nat %sell_callback))));
17
storage (pair
18
          (pair
19
            (pair (bool %Locked)
20
                  (pair (address %admin) (option %minimumPlentyToken nat)))
21
            (pair (option %minimumxPlentyToken nat)
22
                  (pair (bool %paused) (address %plentyTokenAddress))))
23
          (pair
24
            (pair (option %recipientAddress address)
25
                  (pair (address %rewardManagerAddress) (option %senderAddress address)))
26
            (pair (option %senderAmount nat)
27
                  (pair (nat %totalSupply) (address %xPlentyTokenAddress)))));
28
code { UNPAIR ;
29
       IF_LEFT
30
         { IF_LEFT
31
             { IF_LEFT
32
                 { DROP ;
33
                   DUP ;
34
                   CAR ;
35
                   CAR ;
36
                   GET 3 ;
37
                   SENDER ;
38
                   COMPARE ;
39
                   EQ ;
40
                   IF {} { PUSH string "xPLenty_Not_Admin" ; FAILWITH } ;
41
                   DUP ;
42
                   UNPAIR ;
43
                   UNPAIR ;
44
                   SWAP ;
45
                   UNPAIR ;
46
                   SWAP ;
47
                   CDR ;
48
                   DIG 4 ;
49
                   CAR ;
50
                   GET 5 ;
51
                   NOT ;
52
                   PAIR ;
53
                   SWAP ;
54
                   PAIR ;
55
                   SWAP ;
56
                   PAIR ;
57
                   PAIR ;
58
                   NIL operation }
59
                 { SWAP ;
60
                   DUP ;
61
                   DUG 2 ;
62
                   CAR ;
63
                   CAR ;
64
                   GET 3 ;
65
                   SENDER ;
66
                   COMPARE ;
67
                   EQ ;
68
                   IF {} { PUSH string "xPLenty_Not_Admin" ; FAILWITH } ;
69
                   SWAP ;
70
                   DUP ;
71
                   DUG 2 ;
72
                   CAR ;
73
                   GET 6 ;
74
                   SWAP ;
75
                   DUP ;
76
                   DUG 2 ;
77
                   GET 5 ;
78
                   COMPARE ;
79
                   NEQ ;
80
                   IF
81
                     {}
82
                     { PUSH string "WrongCondition: params.tokenAddress != self.data.plentyTokenAddress" ;
83
                       FAILWITH } ;
84
                   DUP ;
85
                   CAR ;
86
                   CDR ;
87
                   IF
88
                     { DUP ;
89
                       GET 5 ;
90
                       CONTRACT %transfer (list (pair address
91
                                                     (list (pair address (pair nat nat))))) ;
92
                       IF_NONE { PUSH int 65 ; FAILWITH } {} ;
93
                       NIL operation ;
94
                       SWAP ;
95
                       PUSH mutez 0 ;
96
                       NIL (pair address (list (pair address (pair nat nat)))) ;
97
                       NIL (pair address (pair nat nat)) ;
98
                       DIG 5 ;
99
                       DUP ;
100
                       CAR ;
101
                       CAR ;
102
                       SWAP ;
103
                       DUP ;
104
                       GET 6 ;
105
                       SWAP ;
106
                       GET 3 ;
107
                       PAIR 3 ;
108
                       CONS ;
109
                       SELF_ADDRESS ;
110
                       PAIR ;
111
                       CONS ;
112
                       TRANSFER_TOKENS ;
113
                       CONS }
114
                     { DUP ;
115
                       GET 5 ;
116
                       CONTRACT %transfer (pair address (pair address nat)) ;
117
                       IF_NONE { PUSH int 90 ; FAILWITH } {} ;
118
                       NIL operation ;
119
                       SWAP ;
120
                       PUSH mutez 0 ;
121
                       DIG 3 ;
122
                       DUP ;
123
                       CAR ;
124
                       CAR ;
125
                       SWAP ;
126
                       GET 3 ;
127
                       SELF_ADDRESS ;
128
                       PAIR 3 ;
129
                       TRANSFER_TOKENS ;
130
                       CONS } } }
131
             { IF_LEFT
132
                 { SWAP ;
133
                   DUP ;
134
                   DUG 2 ;
135
                   CAR ;
136
                   GET 5 ;
137
                   IF { PUSH string "xPLenty_Paused_State" ; FAILWITH } {} ;
138
                   SWAP ;
139
                   UNPAIR ;
140
                   UNPAIR ;
141
                   CDR ;
142
                   PUSH bool True ;
143
                   PAIR ;
144
                   PAIR ;
145
                   SWAP ;
146
                   UNPAIR ;
147
                   GET 3 ;
148
                   SENDER ;
149
                   SOME ;
150
                   SWAP ;
151
                   PAIR ;
152
                   DUP 4 ;
153
                   GET 4 ;
154
                   SOME ;
155
                   PAIR ;
156
                   PAIR ;
157
                   SWAP ;
158
                   PAIR ;
159
                   SWAP ;
160
                   DUP ;
161
                   DUG 2 ;
162
                   GET 3 ;
163
                   SOME ;
164
                   UPDATE 5 ;
165
                   UNPAIR ;
166
                   UNPAIR ;
167
                   SWAP ;
168
                   CDR ;
169
                   DIG 3 ;
170
                   CAR ;
171
                   SOME ;
172
                   PAIR ;
173
                   SWAP ;
174
                   PAIR ;
175
                   PAIR ;
176
                   DUP ;
177
                   GET 3 ;
178
                   GET 3 ;
179
                   CONTRACT %getReward unit ;
180
                   IF_NONE { PUSH int 184 ; FAILWITH } {} ;
181
                   NIL operation ;
182
                   SWAP ;
183
                   PUSH mutez 0 ;
184
                   UNIT ;
185
                   TRANSFER_TOKENS ;
186
                   CONS ;
187
                   SWAP ;
188
                   DUP ;
189
                   DUG 2 ;
190
                   CAR ;
191
                   GET 6 ;
192
                   CONTRACT %getBalance (pair address (contract nat)) ;
193
                   IF_NONE { PUSH int 196 ; FAILWITH } {} ;
194
                   PUSH mutez 0 ;
195
                   SELF %buy_callback ;
196
                   SELF_ADDRESS ;
197
                   PAIR ;
198
                   TRANSFER_TOKENS ;
199
                   CONS }
200
                 { SWAP ;
201
                   DUP ;
202
                   DUG 2 ;
203
                   CAR ;
204
                   GET 6 ;
205
                   SENDER ;
206
                   COMPARE ;
207
                   EQ ;
208
                   IF {} { PUSH string "xPLenty_Not_Plenty_Token" ; FAILWITH } ;
209
                   SWAP ;
210
                   DUP ;
211
                   DUG 2 ;
212
                   CAR ;
213
                   CAR ;
214
                   CAR ;
215
                   IF {} { PUSH string "xPLenty_Invalid_CallBack" ; FAILWITH } ;
216
                   DUP ;
217
                   PUSH nat 0 ;
218
                   COMPARE ;
219
                   EQ ;
220
                   IF
221
                     { PUSH nat 0 ; DUP 3 ; GET 7 ; COMPARE ; EQ }
222
                     { PUSH bool False } ;
223
                   IF
224
                     { DROP ; DUP ; GET 5 ; IF_NONE { PUSH int 220 ; FAILWITH } {} }
225
                     { SWAP ;
226
                       DUP ;
227
                       GET 7 ;
228
                       SWAP ;
229
                       DUP ;
230
                       DUG 3 ;
231
                       GET 5 ;
232
                       IF_NONE { PUSH int 220 ; FAILWITH } {} ;
233
                       MUL ;
234
                       EDIV ;
235
                       IF_NONE { PUSH int 224 ; FAILWITH } { CAR } } ;
236
                   SWAP ;
237
                   DUP ;
238
                   DUG 2 ;
239
                   CAR ;
240
                   GET 3 ;
241
                   IF_NONE { PUSH int 228 ; FAILWITH } {} ;
242
                   SWAP ;
243
                   DUP ;
244
                   DUG 2 ;
245
                   COMPARE ;
246
                   GE ;
247
                   IF
248
                     {}
249
                     { PUSH string "WrongCondition: tokenMinted.value >= self.data.minimumxPlentyToken.open_some()" ;
250
                       FAILWITH } ;
251
                   SWAP ;
252
                   DUP ;
253
                   GET 7 ;
254
                   DUP 3 ;
255
                   ADD ;
256
                   UPDATE 7 ;
257
                   SWAP ;
258
                   NIL operation ;
259
                   DUP 3 ;
260
                   CAR ;
261
                   GET 6 ;
262
                   CONTRACT %transfer (pair address (pair address nat)) ;
263
                   IF_NONE { PUSH int 90 ; FAILWITH } {} ;
264
                   PUSH mutez 0 ;
265
                   DUP 5 ;
266
                   GET 5 ;
267
                   IF_NONE { PUSH int 220 ; FAILWITH } {} ;
268
                   SELF_ADDRESS ;
269
                   DUP 7 ;
270
                   GET 3 ;
271
                   GET 4 ;
272
                   IF_NONE { PUSH int 234 ; FAILWITH } {} ;
273
                   PAIR 3 ;
274
                   TRANSFER_TOKENS ;
275
                   CONS ;
276
                   DUP 3 ;
277
                   GET 8 ;
278
                   CONTRACT %mint (pair address nat) ;
279
                   IF_NONE { PUSH int 243 ; FAILWITH } {} ;
280
                   PUSH mutez 0 ;
281
                   DIG 3 ;
282
                   DUP 5 ;
283
                   GET 3 ;
284
                   CAR ;
285
                   IF_NONE { PUSH int 238 ; FAILWITH } {} ;
286
                   PAIR ;
287
                   TRANSFER_TOKENS ;
288
                   CONS ;
289
                   SWAP ;
290
                   UNPAIR ;
291
                   UNPAIR ;
292
                   CDR ;
293
                   PUSH bool False ;
294
                   PAIR ;
295
                   PAIR ;
296
                   SWAP ;
297
                   UNPAIR ;
298
                   GET 3 ;
299
                   NONE address ;
300
                   SWAP ;
301
                   PAIR ;
302
                   NONE address ;
303
                   PAIR ;
304
                   PAIR ;
305
                   SWAP ;
306
                   PAIR ;
307
                   NONE nat ;
308
                   UPDATE 5 ;
309
                   UNPAIR ;
310
                   UNPAIR ;
311
                   SWAP ;
312
                   CDR ;
313
                   NONE nat ;
314
                   PAIR ;
315
                   SWAP ;
316
                   PAIR ;
317
                   PAIR ;
318
                   SWAP } } }
319
         { IF_LEFT
320
             { IF_LEFT
321
                 { SWAP ;
322
                   DUP ;
323
                   DUG 2 ;
324
                   CAR ;
325
                   CAR ;
326
                   GET 3 ;
327
                   SENDER ;
328
                   COMPARE ;
329
                   EQ ;
330
                   IF {} { PUSH string "xPLenty_Not_Admin" ; FAILWITH } ;
331
                   SWAP ;
332
                   UNPAIR ;
333
                   UNPAIR ;
334
                   UNPAIR ;
335
                   SWAP ;
336
                   CDR ;
337
                   DIG 4 ;
338
                   PAIR ;
339
                   SWAP ;
340
                   PAIR ;
341
                   PAIR ;
342
                   PAIR }
343
                 { SWAP ;
344
                   DUP ;
345
                   DUG 2 ;
346
                   CAR ;
347
                   CAR ;
348
                   GET 3 ;
349
                   SENDER ;
350
                   COMPARE ;
351
                   EQ ;
352
                   IF {} { PUSH string "xPLenty_Not_Admin" ; FAILWITH } ;
353
                   SWAP ;
354
                   UNPAIR ;
355
                   SWAP ;
356
                   UNPAIR ;
357
                   UNPAIR ;
358
                   SWAP ;
359
                   CDR ;
360
                   DIG 4 ;
361
                   PAIR ;
362
                   SWAP ;
363
                   PAIR ;
364
                   PAIR ;
365
                   SWAP ;
366
                   PAIR } ;
367
               NIL operation }
368
             { IF_LEFT
369
                 { SWAP ;
370
                   UNPAIR ;
371
                   UNPAIR ;
372
                   CDR ;
373
                   PUSH bool True ;
374
                   PAIR ;
375
                   PAIR ;
376
                   SWAP ;
377
                   UNPAIR ;
378
                   GET 3 ;
379
                   SENDER ;
380
                   SOME ;
381
                   SWAP ;
382
                   PAIR ;
383
                   DUP 4 ;
384
                   GET 3 ;
385
                   SOME ;
386
                   PAIR ;
387
                   PAIR ;
388
                   SWAP ;
389
                   PAIR ;
390
                   SWAP ;
391
                   DUP ;
392
                   DUG 2 ;
393
                   GET 4 ;
394
                   SOME ;
395
                   UPDATE 5 ;
396
                   UNPAIR ;
397
                   UNPAIR ;
398
                   UNPAIR ;
399
                   SWAP ;
400
                   CAR ;
401
                   DIG 4 ;
402
                   CAR ;
403
                   SOME ;
404
                   SWAP ;
405
                   PAIR ;
406
                   SWAP ;
407
                   PAIR ;
408
                   PAIR ;
409
                   PAIR ;
410
                   DUP ;
411
                   GET 3 ;
412
                   GET 3 ;
413
                   CONTRACT %getReward unit ;
414
                   IF_NONE { PUSH int 288 ; FAILWITH } {} ;
415
                   NIL operation ;
416
                   SWAP ;
417
                   PUSH mutez 0 ;
418
                   UNIT ;
419
                   TRANSFER_TOKENS ;
420
                   CONS ;
421
                   SWAP ;
422
                   DUP ;
423
                   DUG 2 ;
424
                   CAR ;
425
                   GET 6 ;
426
                   CONTRACT %getBalance (pair address (contract nat)) ;
427
                   IF_NONE { PUSH int 300 ; FAILWITH } {} ;
428
                   PUSH mutez 0 ;
429
                   SELF %sell_callback ;
430
                   SELF_ADDRESS ;
431
                   PAIR ;
432
                   TRANSFER_TOKENS ;
433
                   CONS }
434
                 { SWAP ;
435
                   DUP ;
436
                   DUG 2 ;
437
                   CAR ;
438
                   GET 6 ;
439
                   SENDER ;
440
                   COMPARE ;
441
                   EQ ;
442
                   IF {} { PUSH string "xPLenty_Not_Plenty_Token" ; FAILWITH } ;
443
                   SWAP ;
444
                   DUP ;
445
                   DUG 2 ;
446
                   CAR ;
447
                   CAR ;
448
                   CAR ;
449
                   IF {} { PUSH string "WrongCondition: self.data.Locked" ; FAILWITH } ;
450
                   SWAP ;
451
                   DUP ;
452
                   DUG 2 ;
453
                   GET 7 ;
454
                   SWAP ;
455
                   DUP 3 ;
456
                   GET 5 ;
457
                   IF_NONE { PUSH int 220 ; FAILWITH } {} ;
458
                   MUL ;
459
                   EDIV ;
460
                   IF_NONE { PUSH int 322 ; FAILWITH } { CAR } ;
461
                   SWAP ;
462
                   DUP ;
463
                   DUG 2 ;
464
                   CAR ;
465
                   CAR ;
466
                   GET 4 ;
467
                   IF_NONE { PUSH int 324 ; FAILWITH } {} ;
468
                   SWAP ;
469
                   DUP ;
470
                   DUG 2 ;
471
                   COMPARE ;
472
                   GE ;
473
                   IF
474
                     {}
475
                     { PUSH string "WrongCondition: plentyAccrued.value >= self.data.minimumPlentyToken.open_some()" ;
476
                       FAILWITH } ;
477
                   SWAP ;
478
                   DUP ;
479
                   DUP ;
480
                   DUG 3 ;
481
                   GET 5 ;
482
                   IF_NONE { PUSH int 220 ; FAILWITH } {} ;
483
                   DIG 3 ;
484
                   GET 7 ;
485
                   SUB ;
486
                   ISNAT ;
487
                   IF_NONE { PUSH int 326 ; FAILWITH } {} ;
488
                   UPDATE 7 ;
489
                   SWAP ;
490
                   NIL operation ;
491
                   DUP 3 ;
492
                   GET 8 ;
493
                   CONTRACT %burn (pair address nat) ;
494
                   IF_NONE { PUSH int 334 ; FAILWITH } {} ;
495
                   PUSH mutez 0 ;
496
                   DUP 5 ;
497
                   GET 5 ;
498
                   IF_NONE { PUSH int 220 ; FAILWITH } {} ;
499
                   DUP 6 ;
500
                   GET 3 ;
501
                   GET 4 ;
502
                   IF_NONE { PUSH int 234 ; FAILWITH } {} ;
503
                   PAIR ;
504
                   TRANSFER_TOKENS ;
505
                   CONS ;
506
                   DUP 3 ;
507
                   CAR ;
508
                   GET 6 ;
509
                   CONTRACT %transfer (pair address (pair address nat)) ;
510
                   IF_NONE { PUSH int 90 ; FAILWITH } {} ;
511
                   PUSH mutez 0 ;
512
                   DIG 3 ;
513
                   DUP 5 ;
514
                   GET 3 ;
515
                   CAR ;
516
                   IF_NONE { PUSH int 238 ; FAILWITH } {} ;
517
                   SELF_ADDRESS ;
518
                   PAIR 3 ;
519
                   TRANSFER_TOKENS ;
520
                   CONS ;
521
                   SWAP ;
522
                   UNPAIR ;
523
                   SWAP ;
524
                   UNPAIR ;
525
                   GET 3 ;
526
                   NONE address ;
527
                   SWAP ;
528
                   PAIR ;
529
                   NONE address ;
530
                   PAIR ;
531
                   PAIR ;
532
                   SWAP ;
533
                   PAIR ;
534
                   NONE nat ;
535
                   UPDATE 5 ;
536
                   UNPAIR ;
537
                   UNPAIR ;
538
                   UNPAIR ;
539
                   SWAP ;
540
                   CAR ;
541
                   NONE nat ;
542
                   SWAP ;
543
                   PAIR ;
544
                   SWAP ;
545
                   PAIR ;
546
                   PAIR ;
547
                   PAIR ;
548
                   SWAP } } } ;
549
       NIL operation ;
550
       SWAP ;
551
       ITER { CONS } ;
552
       PAIR }