BCD

Tezos Contract Explorer
Search Networks Deploy
  • Home
  • /
  • Ghostnet
  • /
  • KT1Nziv...s9Si
operations (1)Storage Code Interact Tokens Fork Statistics Details
Latest
​x
165
 
1
parameter (or (or (contract %get_price nat) (contract %internal_get_price nat))
2
              (or (nat %set_lpt_total_supply) (nat %set_value_token_balance_of)));
3
storage (pair
4
          (pair (timestamp %last_update)
5
                (pair (address %lp_address) (address %lp_token_address)))
6
          (pair (pair (nat %lpt_total_supply) (address %value_token_address))
7
                (pair (nat %value_token_balance_of) (nat %value_token_per_lpt_ratio))));
8
code { UNPAIR ;
9
       IF_LEFT
10
         { IF_LEFT
11
             { AMOUNT ;
12
               PUSH mutez 0 ;
13
               COMPARE ;
14
               EQ ;
15
               IF {} { AMOUNT ; FAILWITH } ;
16
               NIL operation ;
17
               DUP 3 ;
18
               CAR ;
19
               GET 4 ;
20
               CONTRACT %getTotalSupply (pair unit (contract nat)) ;
21
               IF_NONE { PUSH int 48 ; FAILWITH } {} ;
22
               PUSH mutez 0 ;
23
               SELF_ADDRESS ;
24
               CONTRACT %set_lpt_total_supply nat ;
25
               IF_NONE { PUSH int 53 ; FAILWITH } {} ;
26
               UNIT ;
27
               PAIR ;
28
               TRANSFER_TOKENS ;
29
               CONS ;
30
               DUP 3 ;
31
               GET 3 ;
32
               CDR ;
33
               CONTRACT %getBalance (pair address (contract nat)) ;
34
               IF_NONE { PUSH int 62 ; FAILWITH } {} ;
35
               PUSH mutez 0 ;
36
               SELF_ADDRESS ;
37
               CONTRACT %set_value_token_balance_of nat ;
38
               IF_NONE { PUSH int 67 ; FAILWITH } {} ;
39
               DUP 6 ;
40
               CAR ;
41
               GET 3 ;
42
               PAIR ;
43
               TRANSFER_TOKENS ;
44
               CONS ;
45
               SELF %internal_get_price ;
46
               PUSH mutez 0 ;
47
               DIG 3 ;
48
               TRANSFER_TOKENS ;
49
               CONS }
50
             { AMOUNT ;
51
               PUSH mutez 0 ;
52
               COMPARE ;
53
               EQ ;
54
               IF {} { AMOUNT ; FAILWITH } ;
55
               SELF_ADDRESS ;
56
               SENDER ;
57
               COMPARE ;
58
               EQ ;
59
               IF {} { PUSH int 400 ; FAILWITH } ;
60
               SWAP ;
61
               DUP ;
62
               DUG 2 ;
63
               GET 3 ;
64
               CAR ;
65
               PUSH nat 1000000 ;
66
               DUP 4 ;
67
               GET 5 ;
68
               MUL ;
69
               EDIV ;
70
               IF_NONE { PUSH int 84 ; FAILWITH } { CAR } ;
71
               PUSH nat 0 ;
72
               DUP 4 ;
73
               GET 6 ;
74
               COMPARE ;
75
               NEQ ;
76
               IF
77
                 { PUSH nat 900 ;
78
                   DUP ;
79
                   DUP 5 ;
80
                   CAR ;
81
                   CAR ;
82
                   NOW ;
83
                   SUB ;
84
                   ISNAT ;
85
                   IF_NONE { PUSH int 95 ; FAILWITH } {} ;
86
                   DUP ;
87
                   DUP 3 ;
88
                   COMPARE ;
89
                   LE ;
90
                   IF { DROP } { SWAP ; DROP } ;
91
                   PUSH nat 5 ;
92
                   DUP 6 ;
93
                   GET 6 ;
94
                   LSR ;
95
                   MUL ;
96
                   EDIV ;
97
                   IF_NONE { PUSH int 93 ; FAILWITH } { CAR } ;
98
                   DUP 4 ;
99
                   SWAP ;
100
                   DUP ;
101
                   DUG 2 ;
102
                   DUP 6 ;
103
                   GET 6 ;
104
                   ADD ;
105
                   DIG 2 ;
106
                   DIG 5 ;
107
                   GET 6 ;
108
                   SUB ;
109
                   ISNAT ;
110
                   IF_NONE { PUSH int 104 ; FAILWITH } {} ;
111
                   DIG 3 ;
112
                   DUP ;
113
                   DUP 3 ;
114
                   COMPARE ;
115
                   LE ;
116
                   IF { SWAP ; DROP } { DROP } ;
117
                   DUP ;
118
                   DUP 3 ;
119
                   COMPARE ;
120
                   LE ;
121
                   IF { DROP } { SWAP ; DROP } ;
122
                   UPDATE 6 ;
123
                   SWAP }
124
                 { DIG 2 ; SWAP ; UPDATE 6 ; SWAP } ;
125
               SWAP ;
126
               UNPAIR ;
127
               CDR ;
128
               NOW ;
129
               PAIR ;
130
               PAIR ;
131
               SWAP ;
132
               NIL operation ;
133
               SWAP ;
134
               PUSH mutez 0 ;
135
               PUSH nat 2 ;
136
               DUP 5 ;
137
               GET 6 ;
138
               MUL ;
139
               PUSH nat 100000000000000000000 ;
140
               EDIV ;
141
               IF_NONE { PUSH int 122 ; FAILWITH } { CAR } ;
142
               TRANSFER_TOKENS ;
143
               CONS } }
144
         { IF_LEFT
145
             { AMOUNT ;
146
               PUSH mutez 0 ;
147
               COMPARE ;
148
               EQ ;
149
               IF {} { AMOUNT ; FAILWITH } ;
150
               SWAP ;
151
               UNPAIR ;
152
               SWAP ;
153
               UNPAIR ;
154
               CDR ;
155
               DIG 3 ;
156
               PAIR ;
157
               PAIR ;
158
               SWAP ;
159
               PAIR }
160
             { AMOUNT ; PUSH mutez 0 ; COMPARE ; EQ ; IF {} { AMOUNT ; FAILWITH } ; UPDATE 5 } ;
161
           NIL operation } ;
162
       NIL operation ;
163
       SWAP ;
164
       ITER { CONS } ;
165
       PAIR }