tx · DjH9CHu8DFnV8Kav6aD2nN5EPM6c3BpaS72A2Yidf5T3

3N9evuqxGecMq9hBmpdJu2VkMzdR5VNVrvK:  -0.01000000 Waves

2021.10.13 21:58 [1744897] smart account 3N9evuqxGecMq9hBmpdJu2VkMzdR5VNVrvK > SELF 0.00000000 Waves

{ "type": 13, "id": "DjH9CHu8DFnV8Kav6aD2nN5EPM6c3BpaS72A2Yidf5T3", "fee": 1000000, "feeAssetId": null, "timestamp": 1634151545011, "version": 2, "chainId": 84, "sender": "3N9evuqxGecMq9hBmpdJu2VkMzdR5VNVrvK", "senderPublicKey": "AHY8zupoYc6HPJ5fh1gQiGE9bNZSeifFbcQQ89okxVug", "proofs": [ "5wVNPKhCDjJTEYVsLBpMrZPWwTCTTNPmEUji9z1QQoNcibNyaA5PeBvme4RSvimu4giDGC4ScuvKZdYHwHb5jcY9" ], "script": "base64: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BmNhbGxlcgAAAAVieXRlcwkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgIAAAALSGlnaGVzdFB1c2gFAAAADVVzZXJQdXNodmFsdWUJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAAEVVzZXJMYXN0UHVzaEJsb2NrBQAAAAZoZWlnaHQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAICAAAAC1ByaXplSGVpZ2h0BQAAABNQcml6ZUhlaWdodFZhbHVlTmV3CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACAgAAAAVEZWxheQUAAAAITmV3RGVsYXkJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAICAAAABkRldkJveAUAAAAMRGV2Qm94QW1vdW50BQAAAANuaWwJAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAAEVlvdSBoYXZlIHRvIGhhdmUgCQABpAAAAAEFAAAABm1pbnJlZgIAAAA8IHJlZmVycmFscyBhbHJlYWR5IHN0YWtpbmcgZm9yIGEgbWluaW11bSBvZiAxMCBkYXlzLCB0byBwdXNoBAAAAAN0eHQDCQAAZgAAAAIFAAAAEEhpZ2hlc3RQdXNoVmFsdWUAAAAAAAAAAAACAAAAT1lvdSBjYW5ub3QgUHVzaCBhZnRlciByZXdhcmRpbmcgUHJpemUgYW5kIGJlZm9yZSBPbmUgZGF5IGhhcyBwYXNzZWQgYWZ0ZXIgYXdhcmQCAAAAEFVuZXhwZWN0ZWQgZXJyb3IJAAACAAAAAQUAAAADdHh0CQAAAgAAAAECAAAATllvdSBjYW5ub3QgcHVzaCBiZWZvcmUgdGhlIHJld2FyZCBpcyB1bmxvY2tlZCwgbm8gcmV3YXJkIGhhcyBiZWVuIGRldGVjdGVkIHlldAkAAAIAAAABAgAAAENZb3VyIHB1c2ggaW4gdHJvaWthbiB0b2tlbiwgc2hvdWxkIGJlIEhpZ2hlciB0aGFuIGxhc3QgSGlnaGVzdCBQdXNoCQAAAgAAAAECAAAAWFRvIGJlIGFibGUgdG8gcGFydGljaXBhdGUgaW4gUHVzaGluZyBmb3IgdGhlIHJld2FyZCB5b3UgbmVlZCB0byBTdGFrZSBBU0lNSXMgaW4gdGhlIGRBcHAJAAACAAAAAQIAAAA1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AAAAAAPoAAAAAAAF9eEABQAAABVVc2VyR292ZXJuVG9rZW5BbW91bnQJAABmAAAAAgAAAAAAAAAAAQUAAAAGYW1vdW50BwkAAAIAAAABCQABLAAAAAICAAAAfU5vIEFTSU1JIHJld2FyZCBhdmFpbGFibGUsIG9yIE5vdCBlbm91Z2ggRWFybmVkIFRyb2lrYW4gVG9rZW5zIHRvIGRvIHRyYW5zYWN0aW9uLCB5b3UgbmVlZCBhdCBsZWFzdCAxMDAwIFRyb2lrYW5zLCB5b3UgaGF2ZTogCQABpAAAAAEJAABpAAAAAgUAAAAVVXNlckdvdmVyblRva2VuQW1vdW50AAAAAAAF9eEACQEAAAAMU2NyaXB0UmVzdWx0AAAAAgkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAAPQmlnU3Rha2VyUmV3YXJkAAAAAAAAAAAACQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACAgAAABRCaWdTdGFrZXJSZXdhcmRUb3RhbAUAAAASU3Rha2VCYWxhbmNlQW1vdW50CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAABJVc2VyR292ZXJuVG9rZW5LZXkJAABlAAAAAgUAAAAVVXNlckdvdmVyblRva2VuQW1vdW50BQAAABJCaWdTdGFrZXJSZXdhcmRUYXgJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAICAAAAC1ByaXplSGVpZ2h0BQAAABBQcml6ZUhlaWdodFZhbHVlCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAABhMYXN0QmlnU3Rha2VyUmV3YXJkQmxvY2sFAAAABmhlaWdodAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgIAAAASSGlnaGVzdFB1c2hBZGRyZXNzBQAAABdIaWdoZXN0UHVzaEFkZHJlc3NWYWx1ZQUAAAADbmlsCQEAAAALVHJhbnNmZXJTZXQAAAABCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAAFpAAAABmNhbGxlcgUAAAAGYW1vdW50BQAAAAtTdGFrZWRUb2tlbgUAAAADbmlsAAAAAWkBAAAAE0hhcnZlc3RHb3Zlcm5Ub2lrZW4AAAAB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", "height": 1744897, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 217uRvbiz83iWVotpcapu6aTLPknEUqddsUck51nUwtC Next: EDaWEvKUMEvqKFFTnLnfTWau3Vn78SygXYt7MdFbUZxm Diff:
OldNewDifferences
240240
241241
242242 @Callable(i)
243-func Stake () = {
244- let WaitTime = (1 * 1)
245- let StakedToken = base58'Hoej8L1ezqQY4Miex4Z4J7uJ33LCdcubV3DsubGHEqWP'
246- let GovernToken = base58'6ZPMzZseuYoMP4ByozJpVxbugXBobwJYF22zVjW5JjN'
247- throw("Shiiit")
248- }
243+func Stake () = throw("Shiiit")
249244
250245
251246
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44
55
66 @Callable(i)
77 func DevWithdraw () = {
88 let currentKey = toBase58String(i.caller.bytes)
99 let GovernToken = base58'6ZPMzZseuYoMP4ByozJpVxbugXBobwJYF22zVjW5JjN'
1010 if ((currentKey == "3Mu3nwxzGzeQBGxCKLyJcSDKmRiCea9FQSJ"))
1111 then {
1212 let DevBoxAmount = match getInteger(this, "DevBox") {
1313 case a: Int =>
1414 a
1515 case _ =>
1616 0
1717 }
1818 if ((0 > DevBoxAmount))
1919 then throw("Not enough balance")
2020 else ScriptResult(WriteSet([DataEntry("DevBox", 0), DataEntry("Delay", 0), DataEntry("FundBox", 0), DataEntry("BigStakerRewardTotal", 0), DataEntry("PrizeHeight", height), DataEntry("StakeBalance", 0), DataEntry("MaxDeposit", 0)]), TransferSet([ScriptTransfer(i.caller, DevBoxAmount, GovernToken)]))
2121 }
2222 else throw("You cannot withdraw as your are not the Dev.")
2323 }
2424
2525
2626
2727 @Callable(i)
2828 func WithdrawWeeklyEarning () = {
2929 let StakedToken = base58'Hoej8L1ezqQY4Miex4Z4J7uJ33LCdcubV3DsubGHEqWP'
3030 let GovernToken = base58'6ZPMzZseuYoMP4ByozJpVxbugXBobwJYF22zVjW5JjN'
3131 let ContractWalletStakeBalance = assetBalance(this, StakedToken)
3232 let MaxDepositer = getStringValue(this, "MaxDepositer")
3333 let UserGovernTokenKey = (toBase58String(i.caller.bytes) + "_WeekEarning")
3434 let StakeBalance = match getInteger(this, "StakeBalance") {
3535 case a: Int =>
3636 a
3737 case _ =>
3838 0
3939 }
4040 let PrizeAmount = match getInteger(this, "FundBox") {
4141 case a: Int =>
4242 a
4343 case _ =>
4444 0
4545 }
4646 let HeightTransactFundBox = match getInteger(this, "PrizeHeight") {
4747 case a: Int =>
4848 a
4949 case _ =>
5050 0
5151 }
5252 let PrizeHeightValue = if (if ((HeightTransactFundBox == 0))
5353 then (PrizeAmount == 0)
5454 else false)
5555 then 0
5656 else if (if ((HeightTransactFundBox == 0))
5757 then (PrizeAmount != 0)
5858 else false)
5959 then height
6060 else if (if ((HeightTransactFundBox != 0))
6161 then (PrizeAmount != 0)
6262 else false)
6363 then HeightTransactFundBox
6464 else 0
6565 let currentKey = toBase58String(i.caller.bytes)
6666 let newAmount = match getInteger(this, UserGovernTokenKey) {
6767 case a: Int =>
6868 a
6969 case _ =>
7070 0
7171 }
7272 if ((0 > newAmount))
7373 then throw("Can't withdraw negative amount")
7474 else if ((0 > newAmount))
7575 then throw(("User cannot withdraw more than deposited funds, Your deposit is: " + toString((newAmount / 100000000))))
7676 else ScriptResult(WriteSet([DataEntry(UserGovernTokenKey, 0), DataEntry("PrizeHeight", PrizeHeightValue), DataEntry("MaxDeposit", 0)]), TransferSet([ScriptTransfer(i.caller, newAmount, StakedToken)]))
7777 }
7878
7979
8080
8181 @Callable(i)
8282 func PushReward () = {
8383 let StakedToken = base58'Hoej8L1ezqQY4Miex4Z4J7uJ33LCdcubV3DsubGHEqWP'
8484 let GovernToken = base58'6ZPMzZseuYoMP4ByozJpVxbugXBobwJYF22zVjW5JjN'
8585 let minPushBlock = 10
8686 let minStakeBlock = (7 * 1440)
8787 let DelayAfterPush = 1
8888 let WaitTime = (1 * 1)
8989 let minref = 0
9090 let FirstPushTimer = 1
9191 let userWalletGovernBalance = assetBalance(Address(i.caller.bytes), GovernToken)
9292 let pmt = extract(i.payment)
9393 let UserPush = (toBase58String(i.caller.bytes) + "_Push")
9494 let UserLastPushOldValue = match getInteger(this, UserPush) {
9595 case a: Int =>
9696 a
9797 case _ =>
9898 0
9999 }
100100 let UserRefsNum = (toBase58String(i.caller.bytes) + "_refs")
101101 let UserRefsNumValue = match getInteger(this, UserRefsNum) {
102102 case a: Int =>
103103 a
104104 case _ =>
105105 0
106106 }
107107 let HighestPushValue = match getInteger(this, "HighestPush") {
108108 case a: Int =>
109109 a
110110 case _ =>
111111 0
112112 }
113113 if ((userWalletGovernBalance > pmt.amount))
114114 then if (if (((pmt.amount + UserLastPushOldValue) > HighestPushValue))
115115 then (pmt.assetId == GovernToken)
116116 else false)
117117 then {
118118 let UserLastPushBlock = (toBase58String(i.caller.bytes) + "_UserLastPushBlock")
119119 let UserLastStakeBlock = (toBase58String(i.caller.bytes) + "_UserLastStakeBlock")
120120 let UserStake = (toBase58String(i.caller.bytes) + "_Staking")
121121 let ContractWalletStakeBalance = assetBalance(this, StakedToken)
122122 let StakeBalance = match getInteger(this, "StakeBalance") {
123123 case a: Int =>
124124 a
125125 case _ =>
126126 0
127127 }
128128 let PrizeAmount = match getInteger(this, "FundBox") {
129129 case a: Int =>
130130 a
131131 case _ =>
132132 0
133133 }
134134 let HeightTransactFundBox = match getInteger(this, "PrizeHeight") {
135135 case a: Int =>
136136 a
137137 case _ =>
138138 0
139139 }
140140 let PrizeHeightValue = if (if ((HeightTransactFundBox == 0))
141141 then (PrizeAmount == 0)
142142 else false)
143143 then 0
144144 else if (if ((HeightTransactFundBox == 0))
145145 then (PrizeAmount != 0)
146146 else false)
147147 then height
148148 else if (if ((HeightTransactFundBox != 0))
149149 then (PrizeAmount != 0)
150150 else false)
151151 then HeightTransactFundBox
152152 else 0
153153 let ActualDelay = match getInteger(this, "Delay") {
154154 case a: Int =>
155155 a
156156 case _ =>
157157 0
158158 }
159159 let HighestPushAddress = match getInteger(this, "HighestPushAddress") {
160160 case a: Int =>
161161 a
162162 case _ =>
163163 0
164164 }
165165 let UserLastPushBlockValue = match getInteger(this, UserLastPushBlock) {
166166 case a: Int =>
167167 a
168168 case _ =>
169169 0
170170 }
171171 let UserLastStakeBlockValue = match getInteger(this, UserLastStakeBlock) {
172172 case a: Int =>
173173 a
174174 case _ =>
175175 0
176176 }
177177 let UserStakeValue = match getInteger(this, UserStake) {
178178 case a: Int =>
179179 a
180180 case _ =>
181181 0
182182 }
183183 let DevBoxBalance = match getInteger(this, "DevBox") {
184184 case a: Int =>
185185 a
186186 case _ =>
187187 0
188188 }
189189 let DevBoxAmount = (DevBoxBalance + ((pmt.amount * 5) / 1000))
190190 let UserPushvalue = (pmt.amount + UserLastPushOldValue)
191191 let NewDelay = if (if ((height > ((PrizeHeightValue + ActualDelay) + WaitTime)))
192192 then (HighestPushValue > 0)
193193 else false)
194194 then FirstPushTimer
195195 else (ActualDelay + DelayAfterPush)
196196 let HighestPushAddressValue = if (if ((height > ((PrizeHeightValue + NewDelay) + WaitTime)))
197197 then (HighestPushValue > 0)
198198 else false)
199199 then ""
200200 else HighestPushAddress
201201 let PrizeHeightValueNew = if (if ((height > ((PrizeHeightValue + NewDelay) + WaitTime)))
202202 then (HighestPushValue > 0)
203203 else false)
204204 then height
205205 else PrizeHeightValue
206206 if (if ((UserPushvalue > 0))
207207 then ((height - UserLastStakeBlockValue) > minStakeBlock)
208208 else false)
209209 then if (((height - UserLastPushBlockValue) > minPushBlock))
210210 then if ((UserStakeValue > 0))
211211 then if ((UserPushvalue > HighestPushValue))
212212 then if ((PrizeAmount > 0))
213213 then if (if (if (if (((PrizeHeightValueNew + NewDelay) >= height))
214214 then true
215215 else (height >= ((PrizeHeightValueNew + NewDelay) + WaitTime)))
216216 then (HighestPushValue > 0)
217217 else false)
218218 then true
219219 else (HighestPushValue == 0))
220220 then if ((UserRefsNumValue >= minref))
221221 then WriteSet([DataEntry(UserPush, UserPushvalue), DataEntry("HighestPushAddress", toBase58String(i.caller.bytes)), DataEntry("HighestPush", UserPushvalue), DataEntry(UserLastPushBlock, height), DataEntry("PrizeHeight", PrizeHeightValueNew), DataEntry("Delay", NewDelay), DataEntry("DevBox", DevBoxAmount)])
222222 else throw((("You have to have " + toString(minref)) + " referrals already staking for a minimum of 10 days, to push"))
223223 else {
224224 let txt = if ((HighestPushValue > 0))
225225 then "You cannot Push after rewarding Prize and before One day has passed after award"
226226 else "Unexpected error"
227227 throw(txt)
228228 }
229229 else throw("You cannot push before the reward is unlocked, no reward has been detected yet")
230230 else throw("Your push in troikan token, should be Higher than last Highest Push")
231231 else throw("To be able to participate in Pushing for the reward you need to Stake ASIMIs in the dApp")
232232 else throw("You have to wait 10min before you can make a new Push")
233233 else throw(("Your Push dot not comply one of the following conditions: " + "1. Positive Value for Push in Troikan Toke
234234 2. Must Staked ASIMI Token for a minimum of week "))
235235 }
236236 else throw((("Can deposit only positive amounts of Troikan Token, or Check your Wallet balance in Troika, you should have more than " + toString(HighestPushValue)) + " to push"))
237237 else throw("You do not have enough Troikan Tokens in your Wallet Balance, Please Harvest if you have earned Troikan wallet or transfer to your wallet necessary Troikan amount !")
238238 }
239239
240240
241241
242242 @Callable(i)
243-func Stake () = {
244- let WaitTime = (1 * 1)
245- let StakedToken = base58'Hoej8L1ezqQY4Miex4Z4J7uJ33LCdcubV3DsubGHEqWP'
246- let GovernToken = base58'6ZPMzZseuYoMP4ByozJpVxbugXBobwJYF22zVjW5JjN'
247- throw("Shiiit")
248- }
243+func Stake () = throw("Shiiit")
249244
250245
251246
252247 @Callable(i)
253248 func WithdrawStakedFunds (amount) = {
254249 let WaitTime = (1 * 1)
255250 let StakedToken = base58'Hoej8L1ezqQY4Miex4Z4J7uJ33LCdcubV3DsubGHEqWP'
256251 let GovernToken = base58'6ZPMzZseuYoMP4ByozJpVxbugXBobwJYF22zVjW5JjN'
257252 let UserLastStakeBlock = (toBase58String(i.caller.bytes) + "_UserLastStakeBlock")
258253 let UserStakedTokenKey = (toBase58String(i.caller.bytes) + "_Staking")
259254 let UserGovernTokenKey = ((toBase58String(i.caller.bytes) + "_") + toBase58String(GovernToken))
260255 let ContractWalletStakeBalance = assetBalance(this, StakedToken)
261256 let UserLastStakeBlockValue = match getInteger(this, UserLastStakeBlock) {
262257 case a: Int =>
263258 a
264259 case _ =>
265260 0
266261 }
267262 let StakeBalance = match getInteger(this, "StakeBalance") {
268263 case a: Int =>
269264 a
270265 case _ =>
271266 0
272267 }
273268 let PrizeAmount = match getInteger(this, "FundBox") {
274269 case a: Int =>
275270 a
276271 case _ =>
277272 0
278273 }
279274 let HeightTransactFundBox = match getInteger(this, "PrizeHeight") {
280275 case a: Int =>
281276 a
282277 case _ =>
283278 0
284279 }
285280 let ActualDelay = match getInteger(this, "Delay") {
286281 case a: Int =>
287282 a
288283 case _ =>
289284 0
290285 }
291286 let HighestPushValue = match getInteger(this, "HighestPush") {
292287 case a: Int =>
293288 a
294289 case _ =>
295290 0
296291 }
297292 let PrizeHeightValue = if (if ((HeightTransactFundBox == 0))
298293 then (PrizeAmount == 0)
299294 else false)
300295 then 0
301296 else if (if ((HeightTransactFundBox == 0))
302297 then (PrizeAmount != 0)
303298 else false)
304299 then height
305300 else if (if ((HeightTransactFundBox != 0))
306301 then (PrizeAmount != 0)
307302 else false)
308303 then HeightTransactFundBox
309304 else 0
310305 let HighestPushAddress = match getInteger(this, "HighestPushAddress") {
311306 case a: Int =>
312307 a
313308 case _ =>
314309 0
315310 }
316311 let HighestPushAddressValue = if (if ((height > ((PrizeHeightValue + ActualDelay) + WaitTime)))
317312 then (HighestPushValue > 0)
318313 else false)
319314 then ""
320315 else HighestPushAddress
321316 let PrizeHeightValueNew = if (if ((height > ((PrizeHeightValue + ActualDelay) + WaitTime)))
322317 then (HighestPushValue > 0)
323318 else false)
324319 then height
325320 else PrizeHeightValue
326321 let currentKey = toBase58String(i.caller.bytes)
327322 let currentAmount = match getInteger(this, UserStakedTokenKey) {
328323 case a: Int =>
329324 a
330325 case _ =>
331326 0
332327 }
333328 let newAmount = (currentAmount - amount)
334329 let StakeBalanceAmount = (StakeBalance - amount)
335330 let UserLastStakeBlockNewValue = if ((StakeBalanceAmount == 0))
336331 then 0
337332 else UserLastStakeBlockValue
338333 if ((0 > amount))
339334 then throw("Can't withdraw negative amount")
340335 else if ((0 > newAmount))
341336 then throw(("User cannot withdraw more than deposited funds, Your deposit is: " + toString((currentAmount / 100000000))))
342337 else if ((100000000 > assetBalance(this, GovernToken)))
343338 then throw(("Not enough Troika In Contract: " + toString((assetBalance(this, GovernToken) / 100000000))))
344339 else ScriptResult(WriteSet([DataEntry(UserGovernTokenKey, 100000000), DataEntry(UserStakedTokenKey, newAmount), DataEntry("StakeBalance", StakeBalanceAmount), DataEntry("PrizeHeight", PrizeHeightValueNew), DataEntry(UserLastStakeBlock, UserLastStakeBlockNewValue), DataEntry("HighestPushAddress", HighestPushAddressValue)]), TransferSet([ScriptTransfer(i.caller, 100000000, GovernToken), ScriptTransfer(i.caller, amount, StakedToken)]))
345340 }
346341
347342
348343
349344 @Callable(i)
350345 func WithdrawBigStakeReward () = {
351346 let WaitTime = (1 * 1)
352347 let StakedToken = base58'Hoej8L1ezqQY4Miex4Z4J7uJ33LCdcubV3DsubGHEqWP'
353348 let GovernToken = base58'6ZPMzZseuYoMP4ByozJpVxbugXBobwJYF22zVjW5JjN'
354349 let LastBigStakerRewardBlock = (toBase58String(i.caller.bytes) + "_LastBigStakerRewardBlock")
355350 let BigStakerReward = (toBase58String(i.caller.bytes) + "_BigStaker")
356351 let UserGovernTokenKey = (toBase58String(i.caller.bytes) + "_Earnings")
357352 let LimiWithdrawReward = 1
358353 let UserGovernTokenAmount = match getInteger(this, UserGovernTokenKey) {
359354 case a: Int =>
360355 a
361356 case _ =>
362357 0
363358 }
364359 let LastBigStakerRewardBlockValue = match getInteger(this, LastBigStakerRewardBlock) {
365360 case a: Int =>
366361 a
367362 case _ =>
368363 0
369364 }
370365 let BigStakerRewardTotalValue = match getInteger(this, "BigStakerRewardTotal") {
371366 case a: Int =>
372367 a
373368 case _ =>
374369 0
375370 }
376371 let PrizeAmount = match getInteger(this, "FundBox") {
377372 case a: Int =>
378373 a
379374 case _ =>
380375 0
381376 }
382377 let HeightTransactFundBox = match getInteger(this, "PrizeHeight") {
383378 case a: Int =>
384379 a
385380 case _ =>
386381 0
387382 }
388383 let PrizeHeightValue = if (if ((HeightTransactFundBox == 0))
389384 then (PrizeAmount == 0)
390385 else false)
391386 then 0
392387 else if (if ((HeightTransactFundBox == 0))
393388 then (PrizeAmount != 0)
394389 else false)
395390 then height
396391 else if (if ((HeightTransactFundBox != 0))
397392 then (PrizeAmount != 0)
398393 else false)
399394 then HeightTransactFundBox
400395 else 0
401396 let ActualDelay = match getInteger(this, "Delay") {
402397 case a: Int =>
403398 a
404399 case _ =>
405400 0
406401 }
407402 let HighestPushValue = match getInteger(this, "HighestPush") {
408403 case a: Int =>
409404 a
410405 case _ =>
411406 0
412407 }
413408 let HighestPushAddress = match getInteger(this, "HighestPushAddress") {
414409 case a: Int =>
415410 a
416411 case _ =>
417412 0
418413 }
419414 let HighestPushAddressValue = if (if ((height > ((PrizeHeightValue + ActualDelay) + WaitTime)))
420415 then (HighestPushValue > 0)
421416 else false)
422417 then ""
423418 else HighestPushAddress
424419 let PrizeHeightValueNew = if (if ((height > ((PrizeHeightValue + ActualDelay) + WaitTime)))
425420 then (HighestPushValue > 0)
426421 else false)
427422 then height
428423 else PrizeHeightValue
429424 let currentKey = toBase58String(i.caller.bytes)
430425 let amount = match getInteger(this, BigStakerReward) {
431426 case a: Int =>
432427 a
433428 case _ =>
434429 0
435430 }
436431 let StakeBalanceAmount = (BigStakerRewardTotalValue - amount)
437432 let BigStakerRewardTax = if ((0 > ((UserGovernTokenAmount / 1000) * (1000 - ((1000 * (height - LastBigStakerRewardBlockValue)) / (LimiWithdrawReward * 1440))))))
438433 then (1000 * 100000000)
439434 else ((UserGovernTokenAmount / 1000) * (1000 - ((1000 * (height - LastBigStakerRewardBlockValue)) / (LimiWithdrawReward * 1440))))
440435 if ((0 > amount))
441436 then throw("Can't withdraw negative amount ")
442437 else if (if (((1000 * 100000000) > UserGovernTokenAmount))
443438 then (1 > amount)
444439 else false)
445440 then throw(("No ASIMI reward available, or Not enough Earned Troikan Tokens to do transaction, you need at least 1000 Troikans, you have: " + toString((UserGovernTokenAmount / 100000000))))
446441 else ScriptResult(WriteSet([DataEntry(BigStakerReward, 0), DataEntry("BigStakerRewardTotal", StakeBalanceAmount), DataEntry(UserGovernTokenKey, (UserGovernTokenAmount - BigStakerRewardTax)), DataEntry("PrizeHeight", PrizeHeightValue), DataEntry(LastBigStakerRewardBlock, height), DataEntry("HighestPushAddress", HighestPushAddressValue)]), TransferSet([ScriptTransfer(i.caller, amount, StakedToken)]))
447442 }
448443
449444
450445
451446 @Callable(i)
452447 func HarvestGovernToiken (amount) = {
453448 let StakedToken = base58'Hoej8L1ezqQY4Miex4Z4J7uJ33LCdcubV3DsubGHEqWP'
454449 let GovernToken = base58'6ZPMzZseuYoMP4ByozJpVxbugXBobwJYF22zVjW5JjN'
455450 let ContractWalletStakeBalance = assetBalance(this, StakedToken)
456451 let UserGovernTokenKey = (toBase58String(i.caller.bytes) + "_Earnings")
457452 let StakeBalance = match getInteger(this, "StakeBalance") {
458453 case a: Int =>
459454 a
460455 case _ =>
461456 0
462457 }
463458 let PrizeAmount = match getInteger(this, "FundBox") {
464459 case a: Int =>
465460 a
466461 case _ =>
467462 0
468463 }
469464 let HeightTransactFundBox = match getInteger(this, "PrizeHeight") {
470465 case a: Int =>
471466 a
472467 case _ =>
473468 0
474469 }
475470 let PrizeHeightValue = if (if ((HeightTransactFundBox == 0))
476471 then (PrizeAmount == 0)
477472 else false)
478473 then 0
479474 else if (if ((HeightTransactFundBox == 0))
480475 then (PrizeAmount != 0)
481476 else false)
482477 then height
483478 else if (if ((HeightTransactFundBox != 0))
484479 then (PrizeAmount != 0)
485480 else false)
486481 then HeightTransactFundBox
487482 else 0
488483 let currentKey = toBase58String(i.caller.bytes)
489484 let currentAmount = match getInteger(this, UserGovernTokenKey) {
490485 case a: Int =>
491486 a
492487 case _ =>
493488 0
494489 }
495490 let newAmount = (currentAmount - amount)
496491 if ((0 > amount))
497492 then throw("Can't withdraw negative amount")
498493 else if ((0 > newAmount))
499494 then throw(("User cannot withdraw more than deposited funds, Your deposit is: " + toString((currentAmount / 100000000))))
500495 else ScriptResult(WriteSet([DataEntry(UserGovernTokenKey, newAmount), DataEntry("PrizeHeight", PrizeHeightValue)]), TransferSet([ScriptTransfer(i.caller, amount, GovernToken)]))
501496 }
502497
503498
504499
505500 @Callable(i)
506501 func delayprize () = {
507502 let StakedToken = base58'Hoej8L1ezqQY4Miex4Z4J7uJ33LCdcubV3DsubGHEqWP'
508503 let GovernToken = base58'6ZPMzZseuYoMP4ByozJpVxbugXBobwJYF22zVjW5JjN'
509504 let DelayDays = (1 * 1)
510505 let WaitTime = (1 * 1)
511506 let UserGovernTokenKey = ((toBase58String(i.caller.bytes) + "_") + toBase58String(GovernToken))
512507 let UserWalletSGovernBalance = assetBalance(Address(i.caller.bytes), GovernToken)
513508 let ContractWalletStakeBalance = assetBalance(this, StakedToken)
514509 let StakeBalance = match getInteger(this, "StakeBalance") {
515510 case a: Int =>
516511 a
517512 case _ =>
518513 0
519514 }
520515 let PrizeAmount = match getInteger(this, "FundBox") {
521516 case a: Int =>
522517 a
523518 case _ =>
524519 0
525520 }
526521 let HeightTransactFundBox = match getInteger(this, "PrizeHeight") {
527522 case a: Int =>
528523 a
529524 case _ =>
530525 0
531526 }
532527 let ActualDelay = match getInteger(this, "Delay") {
533528 case a: Int =>
534529 a
535530 case _ =>
536531 0
537532 }
538533 let PrizeHeightValue = if (if ((HeightTransactFundBox == 0))
539534 then (PrizeAmount == 0)
540535 else false)
541536 then 0
542537 else if (if ((HeightTransactFundBox == 0))
543538 then (PrizeAmount != 0)
544539 else false)
545540 then height
546541 else if (if ((HeightTransactFundBox != 0))
547542 then (PrizeAmount != 0)
548543 else false)
549544 then HeightTransactFundBox
550545 else 0
551546 let HighestPushValue = match getInteger(this, "HighestPush") {
552547 case a: Int =>
553548 a
554549 case _ =>
555550 0
556551 }
557552 let HighestPushAddress = match getInteger(this, "HighestPushAddress") {
558553 case a: Int =>
559554 a
560555 case _ =>
561556 0
562557 }
563558 let HighestPushAddressValue = if (if ((height > ((PrizeHeightValue + ActualDelay) + WaitTime)))
564559 then (HighestPushValue > 0)
565560 else false)
566561 then ""
567562 else HighestPushAddress
568563 let PrizeHeightValueNew = if (if ((height > ((PrizeHeightValue + ActualDelay) + WaitTime)))
569564 then (HighestPushValue > 0)
570565 else false)
571566 then height
572567 else PrizeHeightValue
573568 let ActualDelayCost = match getInteger(this, "DelayCost") {
574569 case a: Int =>
575570 a
576571 case _ =>
577572 10
578573 }
579574 let pmt = extract(i.payment)
580575 let DevBoxBalance = match getInteger(this, "DevBox") {
581576 case a: Int =>
582577 a
583578 case _ =>
584579 0
585580 }
586581 if (if (isDefined(pmt.assetId))
587582 then (extract(pmt.assetId) == GovernToken)
588583 else false)
589584 then if ((PrizeAmount > 0))
590585 then {
591586 let UserGovernTokenAmount = pmt.amount
592587 let DevBoxAmount = (DevBoxBalance + ((pmt.amount * 5) / 1000))
593588 let NewDelayCost = if ((ActualDelayCost == 0))
594589 then 1000000000
595590 else (2 * ActualDelayCost)
596591 if ((UserGovernTokenAmount >= NewDelayCost))
597592 then {
598593 let NewDelay = (ActualDelay + DelayDays)
599594 WriteSet([DataEntry("Delay", NewDelay), DataEntry("DelayCost", NewDelayCost), DataEntry("PrizeHeight", PrizeHeightValueNew), DataEntry("DevBox", DevBoxAmount), DataEntry("HighestPushAddress", HighestPushAddressValue)])
600595 }
601596 else throw((("To delay the release of the reward ONE DAY later than expected, you need " + toString(NewDelayCost)) + "TROIKAs"))
602597 }
603598 else throw("You cannot delay the reward before reward is received! Please wait until a reward is available")
604599 else throw("Can Use only Troika Token to Delay Reward")
605600 }
606601
607602
608603
609604 @Callable(i)
610605 func ClaimPrize () = {
611606 let StakedToken = base58'Hoej8L1ezqQY4Miex4Z4J7uJ33LCdcubV3DsubGHEqWP'
612607 let GovernToken = base58'6ZPMzZseuYoMP4ByozJpVxbugXBobwJYF22zVjW5JjN'
613608 let UserStakedTokenKey = (toBase58String(i.caller.bytes) + "_Staking")
614609 let UserPush = (toBase58String(i.caller.bytes) + "_Push")
615610 let UserLastStakeBlock = (toBase58String(i.caller.bytes) + "_UserLastStakeBlock")
616611 let minStakeBlock = 7
617612 let minref = 0
618613 let ContractGovTokenBalance = assetBalance(this, GovernToken)
619614 let ContractWalletStakeBalance = assetBalance(this, StakedToken)
620615 let StakeBalance = match getInteger(this, "StakeBalance") {
621616 case a: Int =>
622617 a
623618 case _ =>
624619 0
625620 }
626621 let PrizeAmount = match getInteger(this, "FundBox") {
627622 case a: Int =>
628623 a
629624 case _ =>
630625 0
631626 }
632627 let UserPushValue = match getInteger(this, UserPush) {
633628 case a: Int =>
634629 a
635630 case _ =>
636631 0
637632 }
638633 let UserLastStakeBlockValue = match getInteger(this, UserLastStakeBlock) {
639634 case a: Int =>
640635 a
641636 case _ =>
642637 0
643638 }
644639 let UserStakedTokenAmount = match getInteger(this, UserStakedTokenKey) {
645640 case a: Int =>
646641 a
647642 case _ =>
648643 0
649644 }
650645 let ActualDelay = match getInteger(this, "Delay") {
651646 case a: Int =>
652647 a
653648 case _ =>
654649 0
655650 }
656651 let PrizeWinner = getStringValue(this, "HighestPushAddress")
657652 let PrizeHeight = match getInteger(this, "PrizeHeight") {
658653 case a: Int =>
659654 a
660655 case _ =>
661656 0
662657 }
663658 let HighestPushValue = match getInteger(this, "HighestPush") {
664659 case a: Int =>
665660 a
666661 case _ =>
667662 0
668663 }
669664 let UserRefsNum = (toBase58String(i.caller.bytes) + "_refs")
670665 let UserRefsNumValue = match getInteger(this, UserRefsNum) {
671666 case a: Int =>
672667 a
673668 case _ =>
674669 0
675670 }
676671 if (if ((PrizeAmount == 0))
677672 then true
678673 else (10000000000 > ContractGovTokenBalance))
679674 then throw("No prize to Claim or Not enough Govern Token en Contract (Min 100 Troika)")
680675 else if ((toBase58String(i.caller.bytes) != PrizeWinner))
681676 then throw("You are not the winner hence cannot claim the reward ")
682677 else if (if ((100000000 > UserStakedTokenAmount))
683678 then (minStakeBlock > UserLastStakeBlockValue)
684679 else false)
685680 then throw("You have to Stake ASIMI Token to claim reward ")
686681 else if (if ((height > (PrizeHeight + ActualDelay)))
687682 then (UserPushValue >= HighestPushValue)
688683 else false)
689684 then if ((UserRefsNumValue >= minref))
690685 then ScriptResult(WriteSet([DataEntry(PrizeWinner, PrizeAmount), DataEntry("FundBox", 0), DataEntry("HighestPush", 0), DataEntry(UserPush, 0), DataEntry("HighestPushAddress", ""), DataEntry("PrizeHeight", 0), DataEntry("Delay", 0), DataEntry("DelayCost", 0), DataEntry("LastWinner", PrizeWinner), DataEntry("LastPrize", PrizeAmount)]), TransferSet([ScriptTransfer(i.caller, PrizeAmount, StakedToken), ScriptTransfer(i.caller, 1000000000, GovernToken)]))
691686 else throw("You have to have 10 referrals already staking for a minimum of 10 days to Claim the prize")
692687 else throw("You have to be the user with the highest Push and wait till countown is finished, to claim Reward")
693688 }
694689
695690
696691
697692 @Callable(i)
698693 func Addmentor (Mentor) = {
699694 let StakedToken = base58'Hoej8L1ezqQY4Miex4Z4J7uJ33LCdcubV3DsubGHEqWP'
700695 let GovernToken = base58'6ZPMzZseuYoMP4ByozJpVxbugXBobwJYF22zVjW5JjN'
701696 let UserMentorAddress = (toBase58String(i.caller.bytes) + "_Mentor")
702697 if ((Mentor != ""))
703698 then WriteSet([DataEntry(UserMentorAddress, Mentor)])
704699 else throw("Mentor's Address cannot be empty")
705700 }
706701
707702

github/deemru/w8io/3ef1775 
82.02 ms