tx · CjMbhy5f14Hmn2iKNrRryY45mFt9dNuRZi7M13fByn3k

3N9DJDtinaAjK3DAhVZn6drz1yGjFBi5pb7:  -0.01400000 Waves

2022.02.01 00:46 [1903671] smart account 3N9DJDtinaAjK3DAhVZn6drz1yGjFBi5pb7 > SELF 0.00000000 Waves

{ "type": 13, "id": "CjMbhy5f14Hmn2iKNrRryY45mFt9dNuRZi7M13fByn3k", "fee": 1400000, "feeAssetId": null, "timestamp": 1643665612599, "version": 2, "chainId": 84, "sender": "3N9DJDtinaAjK3DAhVZn6drz1yGjFBi5pb7", "senderPublicKey": "73NMyMtVPbUD7s1DCVZ5F8Vqzvf5tYLHM6Coz1RRCUuf", "proofs": [ "2zh8zMetHnghAWKxjagocEH3JzZnghnNEbPc7D3YCrVKdKtjPkGGhz6eYvgGj1RxxgMRAccuAxK84Piton5jpTrE", "4zt3Cq1XcTfsumSMTYLfiRJXEaa9sPrk6XgtDQA7mYQHNVN2ESCFWQTtMj55jBNwPSHUR3sshAo37jiKfb2j1eA4" ], "script": "base64:AAIFAAAAAAAADmIIAhIDCgEEEgcKBQEBCAgEEgMKAQESAwoBARIAEgMKAQESABIAEgASBQoDBAEIEgAaFAoBQRIPa2V5QWRtaW5QdWJLZXkyGhQKAUISD2tleUFkbWluUHViS2V5MxoLCgFDEgZvcmFjbGUaEAoBRBILZ2V0QWRtaW5QdWIaEAoBRRILa2V5QWRtaW5QdWIaDAoBRhIHJG1hdGNoMBoLCgFHEgZzdHJpbmcaDAoBSBIHbm90aGluZxoRCgFJEgxhZG1pblB1YktleTEaEQoBShIMYWRtaW5QdWJLZXkyGhEKAUsSDGFkbWluUHViS2V5MxoZCgFMEhRhZG1pblB1YktleVN0YXJ0U3RvcBoXCgFNEhJhZG1pblB1YktleVN0YWtpbmcaEgoBThINd2FsbGV0QWRkcmVzcxoSCgFPEg12b3RpbmdBZGRyZXNzGgkKAVASBFVTRE4aCQoBURIETlNCVBoJCgFSEgRFVVJOGhIKAVMSDXN0YWtpbmdBc3NldHMaGwoBVBIWc3Rha2luZ1VTRE5OU0JUQWRkcmVzcxoXCgFVEhJzdGFraW5nRVVSTkFkZHJlc3MaGQoBVhIUVVNETlRvV2F2ZXNFeGNoYW5nZXIaGAoBVxITVVNETlRvTlNCVEV4Y2hhbmdlchoPCgFYEgpiYXNlUGVyaW9kGhAKAVkSC3N0YXJ0SGVpZ2h0GhEKAVoSDHBlcmlvZExlbmd0aBoMCgFhEgd2ZXJzaW9uGhMKAmFBEg1zdGFrZWRBbW91bnRBGhMKAmFCEg1zdGFrZWRBbW91bnRCGhAKAmFDEgphc3NldEluaXRBGhAKAmFEEgphc3NldEluaXRCGh8KAmFFEhlhY2NvdW50QmFsYW5jZVdpdGhTdGFrZWRBGh8KAmFGEhlhY2NvdW50QmFsYW5jZVdpdGhTdGFrZWRCGhYKAmFHEhBoYXNFbm91Z2hCYWxhbmNlGhIKAmFIEgxnZXRBc3NldEluZm8aDgoCYUkSCHN0cmluZ0lkGgoKAmFKEgRpbmZvGhwKAmFLEhZnZXRBc3NldEluZm9Gcm9tU3RyaW5nGg4KAmFMEghhc3NldFN0choNCgJhTRIHc3VzcGVuZBoLCgJhThIFY2F1c2UaHgoCYU8SGGNhbGNTdGFraW5nRnVuY0FuZEFkZHJlcxoLCgJhUBIFc3Rha2UaFwoCYVESEWNhbGNTdGFraW5nUGFyYW1zGgwKAmFSEgZhbW91bnQaEQoCYVMSCyR0MDY5MjI2OTg4GgoKAmFUEgRjYWxsGhEKAmFVEgtzdGFraW5nQWRkchoRCgJhVhILJHQwNzA3NDcxNDAaEwoCYVcSDWNhbGN1bGF0ZUZlZXMaDwoCYVgSCXBtdEFtb3VudBoYCgJhWRISbWluQW1vdW50VG9SZWNlaXZlGg8KAmFaEgl0b2tlbkZyb20aGwoCYWESFWZpcnN0SGFydmVzdEVuZFBlcmlvZBoMCgJhYhIGYWN0aXZlGhEKAmFjEgtzdHJBc3NldElkQRoRCgJhZBILc3RyQXNzZXRJZEIaDgoCYWUSCGFzc2V0SWRBGg4KAmFmEghhc3NldElkQhoQCgJhZxIKYXNzZXROYW1lQRoICgJhaBICaWQaCwoCYWkSBXdhdmVzGhAKAmFqEgphc3NldE5hbWVCGg4KAmFrEghiYWxhbmNlQRoOCgJhbBIIYmFsYW5jZUIaEgoCYW0SDHNoYXJlQXNzZXRJZBoWCgJhbhIQc2hhcmVBc3NldFN1cHBseRoQCgJhbxIKY29tbWlzc2lvbhoaCgJhcBIUY29tbWlzc2lvbkdvdmVybmFuY2UaHgoCYXESGGNvbW1pc3Npb25TY2FsZURlbGltaXRlchoRCgJhchILc2NhbGVWYWx1ZTMaEQoCYXMSC3NjYWxlVmFsdWU4GiAKAmF0EhpzbGlwcGFnZVRvbGVyYW5jZURlbGltaXRlchoUCgJhdRIOYWNjb3VudEJhbGFuY2UaDQoCYXYSB2Fzc2V0SWQaEgoCYXcSDHN0YWtlZEFtb3VudBocCgJheBIWc3Rha2VkQW1vdW50Q2FsY3VsYXRlZBoJCgJheRIDYUlkGgcKAmF6EgFpGg8KAWISCmtleVZlcnNpb24aCgoCYkESBGFyZzMaGAoCYkISEnNoYXJlSW5pdGlhbFN1cHBseRoQCgJiQxIKc2hhcmVJc3N1ZRoSCgJiRBIMc2hhcmVJc3N1ZUlkGgwKAmJFEgZzdGFrZTEaDAoCYkYSBnN0YWtlMhoPCgJiRxIJYmFzZUVudHJ5Gg8KAmJIEglhbXRBc3NldEEaDwoCYkkSCWFtdEFzc2V0QhoTCgJiShINJHQwMTEyMjIxMTMwORoTCgJiSxINJHQwMTEzMTQxMTQwMRoQCgJiTBIKc2hhcmVMaW1pdBoXCgJiTRIRc2xpcHBhZ2VUb2xlcmFuY2UaEwoCYk4SDSR0MDEzODY5MTM5NDYaEwoCYk8SDSR0MDEzOTUxMTQwMjgaDAoCYlASBmluaXRhbBoQCgJiURIKdG9rZW5SYXRpbxobCgJiUhIVc2hhcmVUb2tlblRvUGF5QW1vdW50GhMKAmJTEg0kdDAxNjgzNDE2OTA5GhAKAmJUEgpwbXRBc3NldElkGhIKAmJVEgxhbW91bnRUb1BheUEaEgoCYlYSDGFtb3VudFRvUGF5QhoTCgJiVxINJHQwMTgyMTUxODI5MBoRCgJiWBILYXNzZXRJZFNlbmQaEwoCYlkSDSR0MDE4ODQ1MTg5NjcaEQoCYloSC25ld0JhbGFuY2VBGg0KAmJhEgd0b2tlblRvGhYKAmJiEhBhbW91bnRXaXRob3V0RmVlGhMKAmJjEg1hbW91bnRXaXRoRmVlGhYKAmJkEhBnb3Zlcm5hbmNlUmV3YXJkGhcKAmJlEhFzdXNwZW5kU3VzcGljaW91cxoOCgJiZhIIaXNBY3RpdmUaEgoCYmcSDGZpcnN0SGFydmVzdBoRCgJiaBILJHQwODMxMDgzODcaEAoCYmkSCnBtdEFtb3VudEEaEQoCYmoSC3BtdEFzc2V0SWRBGhEKAmJrEgskdDA4MzkyODQ2ORoQCgJibBIKcG10QW1vdW50QhoRCgJibRILcG10QXNzZXRJZEIaEQoCYm4SCyR0MDg0NzQ4NTUxGhQKAmJvEg5wbXRTdHJBc3NldElkQRoTCgJicBINcG10QXNzZXROYW1lQRoSCgJicRIMcG10RGVjaW1hbHNBGhEKAmJyEgskdDA4NTU2ODYzMxoUCgJicxIOcG10U3RyQXNzZXRJZEIaEwoCYnQSDXBtdEFzc2V0TmFtZUIaEgoCYnUSDHBtdERlY2ltYWxzQhoPCgJidhIJc2hhcmVOYW1lGhYKAmJ3EhBzaGFyZURlc2NyaXB0aW9uGhMKAmJ4Eg1zaGFyZURlY2ltYWxzGgoKAmJ5EgRhcmcxGgoKAmJ6EgRhcmcyGg4KAWMSCWtleUFjdGl2ZRoZCgJjQRITY2FsbFRha2VJbnRvQWNjb3VudBoVCgJjQhIPZXhjaGFuZ2VUb1dhdmVzGhUKAmNDEg9leGNoYW5nZVRvTlNCVHMaEwoCY0QSDXNpZ25lZEJ5QWRtaW4aEQoCY2ESC25ld0JhbGFuY2VCGhMKAmNiEg0kdDAxOTkyMjIwMDQ0GhMKAmNjEg1hbW91bnRFbnJvbGxBGhMKAmNkEg1hbW91bnRFbnJvbGxCGhMKAmNlEg1hc3NldElkU3RyaW5nGgoKAmNmEgRwb29sGg8KAmNnEglsZWFzaW5nSWQaEwoCY2gSDWxlYXNpbmdBbW91bnQaFAoCY2kSDm5ld0xlYXNlQW1vdW50Gg4KAmNqEghuZXdMZWFzZRoQCgJjaxIKbmV3TGVhc2VJZBoOCgJjbBIIYmFzZUV0cnkaCQoCY20SA2xJZBoTCgJjbhINJHQwMjM3NzgyMzg4MRoKCgJjbxIEYWRkchoMCgJjcBIGcGFyYW1zGg4KAmNxEghwYXltZW50cxoJCgJjchIDaW52Gg0KAmNzEgdhbW91bnRBGg0KAmN0EgdhbW91bnRCGggKAmN1EgJ0eBoMCgJjdhIGdmVyaWZ5GhkKAmN3EhNtdWx0aVNpZ25lZEJ5QWRtaW5zGhgKAmN4EhJhZG1pblB1YktleTFTaWduZWQaGAoCY3kSEmFkbWluUHViS2V5MlNpZ25lZBoYCgJjehISYWRtaW5QdWJLZXkzU2lnbmVkGhAKAWQSC2tleUFzc2V0SWRBGhAKAWUSC2tleUFzc2V0SWRCGhAKAWYSC2tleUJhbGFuY2VBGhAKAWcSC2tleUJhbGFuY2VCGhQKAWgSD2tleUJhbGFuY2VJbml0QRoUCgFpEg9rZXlCYWxhbmNlSW5pdEIaFAoBahIPa2V5U2hhcmVBc3NldElkGhgKAWsSE2tleVNoYXJlQXNzZXRTdXBwbHkaEgoBbBINa2V5Q29tbWlzc2lvbhogCgFtEhtrZXlDb21taXNzaW9uU2NhbGVEZWxpbWl0ZXIaDQoBbhIIa2V5Q2F1c2UaFAoBbxIPa2V5Rmlyc3RIYXJ2ZXN0GhoKAXASFWtleUZpcnN0SGFydmVzdEhlaWdodBoQCgFxEgtrU2hhcmVMaW1pdBoQCgFyEgtrQmFzZVBlcmlvZBoSCgFzEg1rUGVyaW9kTGVuZ3RoGhEKAXQSDGtTdGFydEhlaWdodBoXCgF1EhJrZXlVU0ROTlNCVEFkZHJlc3MaEwoBdhIOa2V5RVVSTkFkZHJlc3MaEwoBdxIOa2V5TGVhc2luZ1Bvb2waFQoBeBIQa2V5TGVhc2luZ0Ftb3VudBoRCgF5EgxrZXlMZWFzaW5nSWQaFAoBehIPa2V5QWRtaW5QdWJLZXkxAAAAUwAAAAABYQIAAAAFMS4wLjAAAAAAAWICAAAAB3ZlcnNpb24AAAAAAWMCAAAABmFjdGl2ZQAAAAABZAIAAAAKQV9hc3NldF9pZAAAAAABZQIAAAAKQl9hc3NldF9pZAAAAAABZgIAAAAPQV9hc3NldF9iYWxhbmNlAAAAAAFnAgAAAA9CX2Fzc2V0X2JhbGFuY2UAAAAAAWgCAAAADEFfYXNzZXRfaW5pdAAAAAABaQIAAAAMQl9hc3NldF9pbml0AAAAAAFqAgAAAA5zaGFyZV9hc3NldF9pZAAAAAABawIAAAASc2hhcmVfYXNzZXRfc3VwcGx5AAAAAAFsAgAAAApjb21taXNzaW9uAAAAAAFtAgAAABpjb21taXNzaW9uX3NjYWxlX2RlbGltaXRlcgAAAAABbgIAAAAOc2h1dGRvd25fY2F1c2UAAAAAAW8CAAAADWZpcnN0X2hhcnZlc3QAAAAAAXACAAAAFGZpcnN0X2hhcnZlc3RfaGVpZ2h0AAAAAAFxAgAAABxzaGFyZV9saW1pdF9vbl9maXJzdF9oYXJ2ZXN0AAAAAAFyAgAAAAtiYXNlX3BlcmlvZAAAAAABcwIAAAANcGVyaW9kX2xlbmd0aAAAAAABdAIAAAAMc3RhcnRfaGVpZ2h0AAAAAAF1AgAAABhzdGFraW5nX3VzZG5uc2J0X2FkZHJlc3MAAAAAAXYCAAAAFHN0YWtpbmdfZXVybl9hZGRyZXNzAAAAAAF3AgAAAA9sZWFzaW5nX2FkZHJlc3MAAAAAAXgCAAAADmxlYXNpbmdfYW1vdW50AAAAAAF5AgAAAApsZWFzaW5nX2lkAAAAAAF6AgAAAAthZG1pbl9wdWJfMQAAAAABQQIAAAALYWRtaW5fcHViXzIAAAAAAUICAAAAC2FkbWluX3B1Yl8zAAAAAAFDCQEAAAAHQWRkcmVzcwAAAAEBAAAAGgFU6UWqHpAvOq7xug7mLpqSXxqYhOHzYrMIAQAAAAFEAAAAAQAAAAFFBAAAAAFGCQAEHQAAAAIFAAAAAUMFAAAAAUUDCQAAAQAAAAIFAAAA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", "height": 1903671, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: EkNhma8FNVnvCfL7SSbYVdZTNcQ3XvvMz2Ja1PRbbbSe Next: none Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "1.0.0"
55
66 let b = "version"
77
88 let c = "active"
99
1010 let d = "A_asset_id"
1111
1212 let e = "B_asset_id"
1313
1414 let f = "A_asset_balance"
1515
1616 let g = "B_asset_balance"
1717
1818 let h = "A_asset_init"
1919
2020 let i = "B_asset_init"
2121
2222 let j = "share_asset_id"
2323
2424 let k = "share_asset_supply"
2525
2626 let l = "commission"
2727
2828 let m = "commission_scale_delimiter"
2929
3030 let n = "shutdown_cause"
3131
3232 let o = "first_harvest"
3333
3434 let p = "first_harvest_height"
3535
3636 let q = "share_limit_on_first_harvest"
3737
3838 let r = "base_period"
3939
4040 let s = "period_length"
4141
4242 let t = "start_height"
4343
4444 let u = "staking_usdnnsbt_address"
4545
4646 let v = "staking_eurn_address"
4747
4848 let w = "leasing_address"
4949
5050 let x = "leasing_amount"
5151
5252 let y = "leasing_id"
5353
5454 let z = "admin_pub_1"
5555
5656 let A = "admin_pub_2"
5757
5858 let B = "admin_pub_3"
5959
6060 let C = Address(base58'3NBBWfzZtZtszaXbitTKnrB2xXwv26Bn7H9')
6161
6262 func D (E) = {
6363 let F = getString(C, E)
6464 if ($isInstanceOf(F, "String"))
6565 then {
6666 let G = F
6767 fromBase58String(G)
6868 }
6969 else {
7070 let H = F
7171 throw("Admin public key is empty")
7272 }
7373 }
7474
7575
7676 let I = D(z)
7777
7878 let J = D(A)
7979
8080 let K = D(B)
8181
8282 let L = base58'Kn7NpzaG12dLZgcHf2ipUftU6hbJygmrhFqQYE4B7ZK'
8383
8484 let M = base58'Kn7NpzaG12dLZgcHf2ipUftU6hbJygmrhFqQYE4B7ZK'
8585
8686 let N = Address(base58'3NAGTtZz6WpupSN89NZD5rMZwwziZEg4Kx4')
8787
8888 let O = Address(base58'3MrJgdL1GniipErHy44YF9idzLaUL2iX5DQ')
8989
9090 let P = base58'8UrfDVd5GreeUwm7uPk7eYz1eMv376kzR52C6sANPkwS'
9191
9292 let Q = base58'36mg8NZTaFRDygiVwb8uBnLR51hetJruUCZcxhaVcHj9'
9393
9494 let R = base58'ECBCkHS68DckpBrzLeoRgYbFg7sCVqR176mPqbXsj9pA'
9595
9696 let S = ["WAVES", toBase58String(P), toBase58String(Q), toBase58String(R)]
9797
9898 let T = Address(fromBase58String(valueOrErrorMessage(getString(C, u), "no usdn staking address")))
9999
100100 let U = Address(fromBase58String(valueOrErrorMessage(getString(C, v), "no eurn staking address")))
101101
102102 let V = Address(base58'3N8PGkzXhbtTvEwEQTtE2xiTJmsDEQ9XfoZ')
103103
104104 let W = Address(base58'3MqW1t2cxdYy2emEMk3YtZkRwQPhHaTfWRe')
105105
106106 let X = valueOrErrorMessage(getInteger(O, r), "Empty kBasePeriod")
107107
108108 let Y = valueOrErrorMessage(getInteger(O, t), "Empty kStartHeight")
109109
110110 let Z = valueOrErrorMessage(getInteger(O, s), "Empty kPeriodLength")
111111
112112 let aa = ((X + ((height - Y) / Z)) + 3)
113113
114114 let ab = getBooleanValue(this, c)
115115
116116 let ac = getStringValue(this, d)
117117
118118 let ad = getStringValue(this, e)
119119
120120 let ae = if ((ac == "WAVES"))
121121 then unit
122122 else fromBase58String(ac)
123123
124124 let af = if ((ad == "WAVES"))
125125 then unit
126126 else fromBase58String(ad)
127127
128128 let ag = {
129129 let F = ae
130130 if ($isInstanceOf(F, "ByteVector"))
131131 then {
132132 let ah = F
133133 value(assetInfo(ah)).name
134134 }
135135 else if ($isInstanceOf(F, "Unit"))
136136 then {
137137 let ai = F
138138 "WAVES"
139139 }
140140 else throw("Match error")
141141 }
142142
143143 let aj = {
144144 let F = af
145145 if ($isInstanceOf(F, "ByteVector"))
146146 then {
147147 let ah = F
148148 value(assetInfo(ah)).name
149149 }
150150 else if ($isInstanceOf(F, "Unit"))
151151 then {
152152 let ai = F
153153 "WAVES"
154154 }
155155 else throw("Match error")
156156 }
157157
158158 let ak = getIntegerValue(this, f)
159159
160160 let al = getIntegerValue(this, g)
161161
162162 let am = fromBase58String(getStringValue(this, j))
163163
164164 let an = getIntegerValue(this, k)
165165
166166 let ao = 3000
167167
168168 let ap = 1200
169169
170170 let aq = 1000000
171171
172172 let ar = 1000
173173
174174 let as = 100000000
175175
176176 let at = 1000
177177
178178 func au (av) = {
179179 let F = av
180180 if ($isInstanceOf(F, "ByteVector"))
181181 then {
182182 let ah = F
183183 assetBalance(this, ah)
184184 }
185185 else if ($isInstanceOf(F, "Unit"))
186186 then {
187187 let ai = F
188188 wavesBalance(this).available
189189 }
190190 else throw("Match error")
191191 }
192192
193193
194194 func aw (av) = {
195195 let ax = {
196196 let F = av
197197 if ($isInstanceOf(F, "ByteVector"))
198198 then {
199199 let ay = F
200200 if (if ((ay == P))
201201 then true
202202 else (ay == Q))
203203 then getInteger(T, ((("rpd_balance_" + toBase58String(ay)) + "_") + toString(this)))
204204 else if ((ay == R))
205205 then getInteger(U, ((("%s%s%s__stakingBalance__" + toBase58String(ay)) + "__") + toString(this)))
206206 else 0
207207 }
208208 else if ($isInstanceOf(F, "Unit"))
209209 then valueOrElse(getInteger(this, x), 0)
210210 else throw("Match error")
211211 }
212212 let F = ax
213213 if ($isInstanceOf(F, "Int"))
214214 then {
215215 let az = F
216216 az
217217 }
218218 else 0
219219 }
220220
221221
222222 let aA = aw(ae)
223223
224224 let aB = aw(af)
225225
226226 let aC = getIntegerValue(this, h)
227227
228228 let aD = getIntegerValue(this, i)
229229
230230 let aE = (au(ae) + aA)
231231
232232 let aF = (au(af) + aB)
233233
234234 let aG = if ((aE >= ak))
235235 then (aF >= al)
236236 else false
237237
238238 func aH (av) = {
239239 let F = av
240240 if ($isInstanceOf(F, "ByteVector"))
241241 then {
242242 let ah = F
243243 let aI = toBase58String(ah)
244244 let aJ = valueOrErrorMessage(assetInfo(ah), (("Asset " + aI) + " doesn't exist"))
245245 $Tuple3(aI, aJ.name, aJ.decimals)
246246 }
247247 else if ($isInstanceOf(F, "Unit"))
248248 then {
249249 let ai = F
250250 $Tuple3("WAVES", "WAVES", 8)
251251 }
252252 else throw("Match error")
253253 }
254254
255255
256256 func aK (aL) = if ((aL == "WAVES"))
257257 then $Tuple3("WAVES", "WAVES", 8)
258258 else {
259259 let aI = aL
260260 let ah = fromBase58String(aL)
261261 let aJ = valueOrErrorMessage(assetInfo(ah), (("Asset " + aI) + " doesn't exist"))
262262 $Tuple3(aI, aJ.name, aJ.decimals)
263263 }
264264
265265
266266 func aM (aN) = [BooleanEntry(c, false), StringEntry(n, aN)]
267267
268268
269269 func aO (aP,av) = if (aP)
270270 then if ((av == P))
271271 then $Tuple2("lockNeutrino", T)
272272 else if ((av == Q))
273273 then $Tuple2("lockNsbt", T)
274274 else $Tuple2("startStaking", U)
275275 else if ((av == P))
276276 then $Tuple2("unlockNeutrino", T)
277277 else if ((av == Q))
278278 then $Tuple2("unlockNsbt", T)
279279 else $Tuple2("stopStaking", U)
280280
281281
282282 func aQ (aP,aR,av) = if (aP)
283283 then {
284284 let aS = aO(aP, av)
285285 let aT = aS._1
286286 let aU = aS._2
287287 $Tuple4(aT, aU, nil, [AttachedPayment(av, aR)])
288288 }
289289 else {
290290 let aV = aO(aP, av)
291291 let aT = aV._1
292292 let aU = aV._2
293293 $Tuple4(aT, aU, [aR, toBase58String(av)], nil)
294294 }
295295
296296
297297 func aW (aX,aY,aZ,ba) = {
298298 let bb = fraction(ba, aX, (aX + aZ))
299299 let bc = fraction(bb, (aq - ao), aq)
300300 let bd = fraction(bb, ap, aq)
301301 if ((aY > bc))
302302 then throw(((("Calculated amount to receive " + toString(bc)) + " is less than specified minimum ") + toString(aY)))
303303 else $Tuple3(bb, bc, bd)
304304 }
305305
306306
307307 func be () = aM(((((((((((((((("Suspicious state. Actual balances: " + toString(aE)) + " ") + ag) + ", ") + toString(aF)) + " ") + aj) + ". State: ") + toString(ak)) + " ") + ag) + ", ") + toString(al)) + " ") + aj))
308308
309309
310310 func bf () = if (ab)
311311 then unit
312312 else throw("DApp is inactive at this moment")
313313
314314
315315 @Callable(az)
316316 func init (bg) = {
317317 let bh = $Tuple2(az.payments[0].amount, az.payments[0].assetId)
318318 let bi = bh._1
319319 let bj = bh._2
320320 let bk = $Tuple2(az.payments[1].amount, az.payments[1].assetId)
321321 let bl = bk._1
322322 let bm = bk._2
323323 let bn = aH(bj)
324324 let bo = bn._1
325325 let bp = bn._2
326326 let bq = bn._3
327327 let br = aH(bm)
328328 let bs = br._1
329329 let bt = br._2
330330 let bu = br._3
331331 if (!(containsElement([I, J, K, M], az.callerPublicKey)))
332332 then throw("Only admin can call this function")
333333 else if (isDefined(getBoolean(this, c)))
334334 then throw("DApp is already active")
335335 else if ((bj == bm))
336336 then throw("Assets must be different")
337337 else {
338338 let bv = ((("s" + take(bp, 7)) + "_") + take(bt, 7))
339339 let bw = ((((("ShareToken of SwopFi protocol for " + bp) + " and ") + bt) + " at address ") + toString(this))
340340 let bx = ((bq + bu) / 2)
341341 let by = pow(bi, bq, 5, 1, bq, DOWN)
342342 let bz = pow(bl, bu, 5, 1, bu, DOWN)
343343 let bA = pow(10, 0, bx, 0, 0, DOWN)
344344 let bB = fraction(by, bz, bA)
345345 let bC = Issue(bv, bw, bB, bx, true)
346346 let bD = calculateAssetId(bC)
347347 let bE = if (containsElement(S, bo))
348348 then invoke(this, "stakeUnstake", [true, bi, bo], nil)
349349 else 0
350350 if ((bE == bE))
351351 then {
352352 let bF = if (containsElement(S, bs))
353353 then invoke(this, "stakeUnstake", [true, bl, bs], nil)
354354 else 0
355355 if ((bF == bF))
356356 then {
357357 let bG = [StringEntry(b, a), BooleanEntry(c, true), StringEntry(d, bo), StringEntry(e, bs), IntegerEntry(f, bi), IntegerEntry(g, bl), IntegerEntry(l, ao), IntegerEntry(m, aq), bC, StringEntry(j, toBase58String(bD)), IntegerEntry(k, bB), ScriptTransfer(az.caller, bB, bD)]
358358 if (bg)
359359 then (bG ++ [BooleanEntry(o, bg), IntegerEntry(p, (Y + (aa * Z)))])
360360 else bG
361361 }
362362 else throw("Strict value is not equal to itself.")
363363 }
364364 else throw("Strict value is not equal to itself.")
365365 }
366366 }
367367
368368
369369
370370 @Callable(az)
371371 func initWithInitRatio (bH,bI,ac,ad,bg) = {
372372 let bJ = aK(ac)
373373 let bo = bJ._1
374374 let bp = bJ._2
375375 let bq = bJ._3
376376 let bK = aK(ad)
377377 let bs = bK._1
378378 let bt = bK._2
379379 let bu = bK._3
380380 if (!(containsElement([I, J, K, M], az.callerPublicKey)))
381381 then throw("Only admin can call this function")
382382 else if (isDefined(getBoolean(this, c)))
383383 then throw("DApp is already active")
384384 else if ((ac == ad))
385385 then throw("Assets must be different")
386386 else {
387387 let bv = ((("s" + take(bp, 7)) + "_") + take(bt, 7))
388388 let bw = ((((("ShareToken of SwopFi protocol for " + bp) + " and ") + bt) + " at address ") + toString(this))
389389 let bx = ((bq + bu) / 2)
390390 let bB = 0
391391 let bC = Issue(bv, bw, bB, bx, true)
392392 let bD = calculateAssetId(bC)
393393 let bG = [StringEntry(b, a), BooleanEntry(c, true), StringEntry(d, bo), StringEntry(e, bs), IntegerEntry(h, bH), IntegerEntry(i, bI), IntegerEntry(f, 0), IntegerEntry(g, 0), IntegerEntry(l, ao), IntegerEntry(m, aq), bC, StringEntry(j, toBase58String(bD)), IntegerEntry(k, bB)]
394394 if (bg)
395395 then (bG ++ [BooleanEntry(o, bg), IntegerEntry(p, (Y + (aa * Z)))])
396396 else bG
397397 }
398398 }
399399
400400
401401
402402 @Callable(az)
403403 func keepLimitForFirstHarvest (bL) = valueOrElse(bf(), if (!(containsElement([I, J, K, M], az.callerPublicKey)))
404404 then throw("Only admin can call this function")
405405 else [IntegerEntry(q, bL)])
406406
407407
408408
409409 @Callable(az)
410410 func replenishWithTwoTokens (bM) = valueOrElse(bf(), {
411411 let bj = az.payments[0].assetId
412412 let bm = az.payments[1].assetId
413413 let bi = az.payments[0].amount
414414 let bl = az.payments[1].amount
415415 let bN = aH(bj)
416416 let bo = bN._1
417417 let bp = bN._2
418418 let bq = bN._3
419419 let bO = aH(bm)
420420 let bs = bO._1
421421 let bt = bO._2
422422 let bu = bO._3
423423 let bP = if (if ((ak == 0))
424424 then (al == 0)
425425 else false)
426426 then true
427427 else false
428428 let bQ = if (bP)
429429 then fraction(fraction(aC, as, bi), ar, fraction(aD, as, bl))
430430 else fraction(fraction(ak, as, bi), ar, fraction(al, as, bl))
431431 let bx = ((bq + bu) / 2)
432432 let bR = if (bP)
433433 then fraction(pow(bi, bq, 5, 1, bq, DOWN), pow(bl, bu, 5, 1, bu, DOWN), pow(10, 0, bx, 0, 0, DOWN))
434434 else fraction(min([fraction(bi, as, ak), fraction(bl, as, al)]), an, as)
435435 if (if ((0 > bM))
436436 then true
437437 else (bM > at))
438438 then throw(((("Slippage tolerance must be between 0 and " + toString(at)) + " inclusively. Actual: ") + toString(bM)))
439439 else if ((size(az.payments) != 2))
440440 then throw("Two attached assets expected")
441441 else if (if ((bj != ae))
442442 then true
443443 else (bm != af))
444444 then throw(((("Incorrect assets attached. Expected: " + ac) + " and ") + ad))
445445 else if (if ((((ar * (at - bM)) / at) > bQ))
446446 then true
447447 else (bQ > ((ar * (at + bM)) / at)))
448448 then throw("Incorrect assets amount: amounts must have the contract ratio")
449449 else if ((bR == 0))
450450 then throw("Too small amount to replenish")
451451 else if (!(aG))
452452 then ([ScriptTransfer(az.caller, bi, bj), ScriptTransfer(az.caller, bl, bm)] ++ be())
453453 else {
454454 let bE = if (containsElement(S, bo))
455455 then invoke(this, "stakeUnstake", [true, bi, bo], nil)
456456 else 0
457457 if ((bE == bE))
458458 then {
459459 let bF = if (containsElement(S, bs))
460460 then invoke(this, "stakeUnstake", [true, bl, bs], nil)
461461 else 0
462462 if ((bF == bF))
463463 then [Reissue(am, bR, true), IntegerEntry(f, (ak + bi)), IntegerEntry(g, (al + bl)), IntegerEntry(k, (an + bR)), ScriptTransfer(az.caller, bR, am)]
464464 else throw("Strict value is not equal to itself.")
465465 }
466466 else throw("Strict value is not equal to itself.")
467467 }
468468 })
469469
470470
471471
472472 @Callable(az)
473473 func withdraw () = valueOrElse(bf(), {
474474 let bS = $Tuple2(az.payments[0].amount, az.payments[0].assetId)
475475 let aX = bS._1
476476 let bT = bS._2
477477 let bU = fraction(aX, ak, an)
478478 let bV = fraction(aX, al, an)
479479 if ((size(az.payments) != 1))
480480 then throw("One attached payment expected")
481481 else if ((bT != am))
482482 then throw(("Incorrect asset attached. Expected: " + toBase58String(am)))
483483 else if (!(aG))
484484 then ([ScriptTransfer(az.caller, aX, bT)] ++ be())
485485 else {
486486 let bE = if (containsElement(S, ac))
487487 then invoke(this, "stakeUnstake", [false, bU, ac], nil)
488488 else 0
489489 if ((bE == bE))
490490 then {
491491 let bF = if (containsElement(S, ad))
492492 then invoke(this, "stakeUnstake", [false, bV, ad], nil)
493493 else 0
494494 if ((bF == bF))
495495 then [IntegerEntry(f, (ak - bU)), IntegerEntry(g, (al - bV)), IntegerEntry(k, (an - aX)), Burn(am, aX), ScriptTransfer(az.caller, bU, ae), ScriptTransfer(az.caller, bV, af)]
496496 else throw("Strict value is not equal to itself.")
497497 }
498498 else throw("Strict value is not equal to itself.")
499499 }
500500 })
501501
502502
503503
504504 @Callable(az)
505505 func exchange (aY) = valueOrElse(bf(), {
506506 let bW = $Tuple2(az.payments[0].amount, az.payments[0].assetId)
507507 let aX = bW._1
508508 let bT = bW._2
509509 if (if ((ak == 0))
510510 then true
511511 else (al == 0))
512512 then throw("Can't exchange with zero balance")
513513 else if ((0 >= aY))
514514 then throw(("Minimal amount to receive must be positive. Actual: " + toString(aY)))
515515 else if ((size(az.payments) != 1))
516516 then throw("One attached payment expected")
517517 else if (!(aG))
518518 then ([ScriptTransfer(az.caller, aX, bT)] ++ be())
519519 else if ((bT == ae))
520520 then {
521521 let bX = af
522522 let bY = aW(aX, aY, ak, al)
523523 let bb = bY._1
524524 let bc = bY._2
525525 let bd = bY._3
526526 let bZ = (ak + aX)
527527 let ca = ((al - bc) - bd)
528528 let bE = if (containsElement(S, ac))
529529 then invoke(this, "stakeUnstake", [true, aX, ac], nil)
530530 else 0
531531 if ((bE == bE))
532532 then {
533533 let bF = if (containsElement(S, ad))
534534 then invoke(this, "stakeUnstake", [false, (bc + bd), ad], nil)
535535 else 0
536536 if ((bF == bF))
537537 then [IntegerEntry(f, bZ), IntegerEntry(g, ca), ScriptTransfer(az.caller, bc, bX), ScriptTransfer(N, bd, bX)]
538538 else throw("Strict value is not equal to itself.")
539539 }
540540 else throw("Strict value is not equal to itself.")
541541 }
542542 else if ((bT == af))
543543 then {
544544 let bX = ae
545545 let cb = aW(aX, aY, al, ak)
546546 let bb = cb._1
547547 let bc = cb._2
548548 let bd = cb._3
549549 let bZ = ((ak - bc) - bd)
550550 let ca = (al + aX)
551551 let bE = if (containsElement(S, ac))
552552 then invoke(this, "stakeUnstake", [false, (bc + bd), ac], nil)
553553 else 0
554554 if ((bE == bE))
555555 then {
556556 let bF = if (containsElement(S, ad))
557557 then invoke(this, "stakeUnstake", [true, aX, ad], nil)
558558 else 0
559559 if ((bF == bF))
560560 then [IntegerEntry(f, bZ), IntegerEntry(g, ca), ScriptTransfer(az.caller, bc, bX), ScriptTransfer(N, bd, bX)]
561561 else throw("Strict value is not equal to itself.")
562562 }
563563 else throw("Strict value is not equal to itself.")
564564 }
565565 else throw(((("Incorrect asset attached. Expected: " + ac) + " or ") + ad))
566566 })
567567
568568
569569
570570 @Callable(az)
571571 func shutdown () = if (!(ab))
572572 then throw(("DApp is already suspended. Cause: " + valueOrElse(getString(this, n), "the cause wasn't specified")))
573573 else if (!(containsElement([I, J, K, L], az.callerPublicKey)))
574574 then throw("Only admin can call this function")
575575 else aM("Paused by admin")
576576
577577
578578
579579 @Callable(az)
580580 func activate () = if (ab)
581581 then throw("DApp is already active")
582582 else if (!(containsElement([I, J, K, L], az.callerPublicKey)))
583583 then throw("Only admin can call this function")
584584 else [BooleanEntry(c, true), DeleteEntry(n)]
585585
586586
587587
588588 @Callable(az)
589589 func takeIntoAccountExtraFunds () = valueOrElse(bf(), {
590590 let cc = (aE - ak)
591591 let cd = (aF - al)
592592 if ((az.caller != N))
593593 then throw("Only the wallet can call this function")
594594 else if (if ((0 > cc))
595595 then true
596596 else (0 > cd))
597597 then aM("Enroll amount negative")
598598 else if (if ((cc == 0))
599599 then (cd == 0)
600600 else false)
601601 then throw("No money to take")
602602 else {
603603 let bE = if (containsElement(S, ac))
604604 then invoke(this, "stakeUnstake", [true, cc, ac], nil)
605605 else 0
606606 if ((bE == bE))
607607 then {
608608 let bF = if (containsElement(S, ad))
609609 then invoke(this, "stakeUnstake", [true, cd, ad], nil)
610610 else 0
611611 if ((bF == bF))
612612 then [IntegerEntry(f, (ak + cc)), IntegerEntry(g, (al + cd)), IntegerEntry(("last_income_" + ac), cc), IntegerEntry(("last_income_" + ad), cd)]
613613 else throw("Strict value is not equal to itself.")
614614 }
615615 else throw("Strict value is not equal to itself.")
616616 }
617617 })
618618
619619
620620
621621 @Callable(az)
622622 func stakeUnstake (aP,aR,ce) = if ((az.caller != this))
623623 then throw("Only contract itself can invoke this function")
624624 else if ((ce == "WAVES"))
625625 then {
626626 let cf = addressFromStringValue(valueOrErrorMessage(getString(C, w), "No leasing pool in oracle"))
627627 let cg = getBinary(this, y)
628628 let ch = valueOrElse(getInteger(this, x), 0)
629629 let ci = if (aP)
630630 then (ch + aR)
631631 else (ch - aR)
632632 let cj = Lease(cf, ci)
633633 let ck = calculateLeaseId(cj)
634634 let cl = [cj, BinaryEntry(y, ck), IntegerEntry(x, ci)]
635635 let F = cg
636636 if ($isInstanceOf(F, "ByteVector"))
637637 then {
638638 let cm = F
639639 ([LeaseCancel(cm)] ++ cl)
640640 }
641641 else cl
642642 }
643643 else {
644644 let cn = aQ(aP, aR, fromBase58String(ce))
645645 let aT = cn._1
646646 let co = cn._2
647647 let cp = cn._3
648648 let cq = cn._4
649649 let cr = invoke(co, aT, cp, cq)
650650 if ((cr == cr))
651651 then nil
652652 else throw("Strict value is not equal to itself.")
653653 }
654654
655655
656656
657657 @Callable(az)
658658 func stakeAll () = valueOrElse(bf(), if (!(containsElement([I, J, K, L], az.callerPublicKey)))
659659 then throw("Only admin can call this function")
660660 else {
661661 let bE = if (containsElement(S, ac))
662662 then {
663663 let cs = (ak - aA)
664664 if ((cs > 0))
665665 then invoke(this, "stakeUnstake", [true, cs, ac], nil)
666666 else 0
667667 }
668668 else 0
669669 if ((bE == bE))
670670 then {
671671 let bF = if (containsElement(S, ad))
672672 then {
673673 let ct = (al - aB)
674674 if ((ct > 0))
675675 then invoke(this, "stakeUnstake", [true, ct, ad], nil)
676676 else 0
677677 }
678678 else 0
679679 if ((bF == bF))
680680 then nil
681681 else throw("Strict value is not equal to itself.")
682682 }
683683 else throw("Strict value is not equal to itself.")
684684 })
685685
686686
687687 @Verifier(cu)
688688 func cv () = {
689689 let cw = {
690690 let cx = if (sigVerify(cu.bodyBytes, cu.proofs[0], I))
691691 then 1
692692 else 0
693693 let cy = if (sigVerify(cu.bodyBytes, cu.proofs[1], J))
694694 then 1
695695 else 0
696696 let cz = if (sigVerify(cu.bodyBytes, cu.proofs[2], K))
697697 then 1
698698 else 0
699699 (((cx + cy) + cz) >= 2)
700700 }
701701 let F = cu
702702 if ($isInstanceOf(F, "InvokeScriptTransaction"))
703703 then {
704704 let cr = F
705705 let cA = if ((cr.dApp == this))
706706 then (cr.function == "takeIntoAccountExtraFunds")
707707 else false
708708 let cB = if (if (if ((cr.dApp == V))
709709 then (cr.function == "exchange")
710710 else false)
711711 then (ae == P)
712712 else false)
713713 then true
714714 else if (if ((af == P))
715715 then (size(cr.payments) == 1)
716716 else false)
717717 then (cr.payments[0].assetId == P)
718718 else false
719719 let cC = if (if (if ((cr.dApp == W))
720720 then (cr.function == "exchange")
721721 else false)
722722 then (ae == Q)
723723 else false)
724724 then true
725725 else if (if ((af == Q))
726726 then (size(cr.payments) == 1)
727727 else false)
728728 then (cr.payments[0].assetId == P)
729729 else false
730730 let cD = if (if (if (sigVerify(cu.bodyBytes, cu.proofs[0], I))
731731 then true
732732 else sigVerify(cu.bodyBytes, cu.proofs[0], J))
733733 then true
734734 else sigVerify(cu.bodyBytes, cu.proofs[0], K))
735735 then true
736736 else sigVerify(cu.bodyBytes, cu.proofs[0], M)
737737 if (if (if (if (cA)
738738 then true
739739 else cB)
740740 then true
741741 else cC)
742742 then cD
743743 else false)
744744 then true
745745 else cw
746746 }
747747 else cw
748748 }
749749

github/deemru/w8io/169f3d6 
81.60 ms