tx · E45scZKqmpKC7JqJ7aDLMRL11thVcddP1gCUxC4VTSKn

3N9evuqxGecMq9hBmpdJu2VkMzdR5VNVrvK:  -0.01000000 Waves

2021.10.13 21:56 [1744894] smart account 3N9evuqxGecMq9hBmpdJu2VkMzdR5VNVrvK > SELF 0.00000000 Waves

{ "type": 13, "id": "E45scZKqmpKC7JqJ7aDLMRL11thVcddP1gCUxC4VTSKn", "fee": 1000000, "feeAssetId": null, "timestamp": 1634151409405, "version": 2, "chainId": 84, "sender": "3N9evuqxGecMq9hBmpdJu2VkMzdR5VNVrvK", "senderPublicKey": "AHY8zupoYc6HPJ5fh1gQiGE9bNZSeifFbcQQ89okxVug", "proofs": [ "2xGRN1unUeQe1ZeQ66LwHjzqC5m4YHacoFS3e8ZbNj189n4i2qhSu4Ddwc5yGjjU37RFdpNg1yA6cKoL54Huax63" ], "script": "base64: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BmNhbGxlcgAAAAVieXRlcwkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgIAAAALSGlnaGVzdFB1c2gFAAAADVVzZXJQdXNodmFsdWUJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAAEVVzZXJMYXN0UHVzaEJsb2NrBQAAAAZoZWlnaHQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAICAAAAC1ByaXplSGVpZ2h0BQAAABNQcml6ZUhlaWdodFZhbHVlTmV3CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACAgAAAAVEZWxheQUAAAAITmV3RGVsYXkJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAICAAAABkRldkJveAUAAAAMRGV2Qm94QW1vdW50BQAAAANuaWwJAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAAEVlvdSBoYXZlIHRvIGhhdmUgCQABpAAAAAEFAAAABm1pbnJlZgIAAAA8IHJlZmVycmFscyBhbHJlYWR5IHN0YWtpbmcgZm9yIGEgbWluaW11bSBvZiAxMCBkYXlzLCB0byBwdXNoBAAAAAN0eHQDCQAAZgAAAAIFAAAAEEhpZ2hlc3RQdXNoVmFsdWUAAAAAAAAAAAACAAAAT1lvdSBjYW5ub3QgUHVzaCBhZnRlciByZXdhcmRpbmcgUHJpemUgYW5kIGJlZm9yZSBPbmUgZGF5IGhhcyBwYXNzZWQgYWZ0ZXIgYXdhcmQCAAAAEFVuZXhwZWN0ZWQgZXJyb3IJAAACAAAAAQUAAAADdHh0CQAAAgAAAAECAAAATllvdSBjYW5ub3QgcHVzaCBiZWZvcmUgdGhlIHJld2FyZCBpcyB1bmxvY2tlZCwgbm8gcmV3YXJkIGhhcyBiZWVuIGRldGVjdGVkIHlldAkAAAIAAAABAgAAAENZb3VyIHB1c2ggaW4gdHJvaWthbiB0b2tlbiwgc2hvdWxkIGJlIEhpZ2hlciB0aGFuIGxhc3QgSGlnaGVzdCBQdXNoCQAAAgAAAAECAAAAWFRvIGJlIGFibGUgdG8gcGFydGljaXBhdGUgaW4gUHVzaGluZyBmb3IgdGhlIHJld2FyZCB5b3UgbmVlZCB0byBTdGFrZSBBU0lNSXMgaW4gdGhlIGRBcHAJAAACAAAAAQIAAAA1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", "height": 1744894, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 9LBHwVc1yCruHZ9hUKhNEM8jYP2oTWbP3VvGdwwZwTcL Next: 32Vd3WLyvGAbvPx3uzqYdhxVsyV5NHHo6ey2xwkwonqN Diff:
OldNewDifferences
250250 else false)
251251 then {
252252 let GovernTokenSmartContractBalance = assetBalance(this, GovernToken)
253- let UserAPY = (toBase58String(i.caller.bytes) + "_APY")
254- let UserPush = (toBase58String(i.caller.bytes) + "_Push")
255- let UserStakedTokenKey = (toBase58String(i.caller.bytes) + "_Staking")
256- let UserGovernTokenKey = (toBase58String(i.caller.bytes) + "_Earnings")
257- let UserLastStakeBlock = (toBase58String(i.caller.bytes) + "_UserLastStakeBlock")
258- let UserStakeTransactionsKey = (toBase58String(i.caller.bytes) + "_StakedTransactions")
259- let AddressHeight = (toBase58String(i.caller.bytes) + "_PrizeHeight")
260- let UserWeekEarnings = (toBase58String(i.caller.bytes) + "_WeekEarning")
261- let UserStakeTransactions = match getInteger(this, UserStakeTransactionsKey) {
262- case a: Int =>
263- a
264- case _ =>
265- 0
266- }
267253 throw("Shiiit")
268254 }
269255 else throw("Can deposit only StakeToken")
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)
243243 func Stake () = {
244244 let WaitTime = (1 * 1)
245245 let StakedToken = base58'Hoej8L1ezqQY4Miex4Z4J7uJ33LCdcubV3DsubGHEqWP'
246246 let GovernToken = base58'6ZPMzZseuYoMP4ByozJpVxbugXBobwJYF22zVjW5JjN'
247247 let pmt = extract(i.payment)
248248 if (if ((pmt.amount > 0))
249249 then (pmt.assetId == StakedToken)
250250 else false)
251251 then {
252252 let GovernTokenSmartContractBalance = assetBalance(this, GovernToken)
253- let UserAPY = (toBase58String(i.caller.bytes) + "_APY")
254- let UserPush = (toBase58String(i.caller.bytes) + "_Push")
255- let UserStakedTokenKey = (toBase58String(i.caller.bytes) + "_Staking")
256- let UserGovernTokenKey = (toBase58String(i.caller.bytes) + "_Earnings")
257- let UserLastStakeBlock = (toBase58String(i.caller.bytes) + "_UserLastStakeBlock")
258- let UserStakeTransactionsKey = (toBase58String(i.caller.bytes) + "_StakedTransactions")
259- let AddressHeight = (toBase58String(i.caller.bytes) + "_PrizeHeight")
260- let UserWeekEarnings = (toBase58String(i.caller.bytes) + "_WeekEarning")
261- let UserStakeTransactions = match getInteger(this, UserStakeTransactionsKey) {
262- case a: Int =>
263- a
264- case _ =>
265- 0
266- }
267253 throw("Shiiit")
268254 }
269255 else throw("Can deposit only StakeToken")
270256 }
271257
272258
273259
274260 @Callable(i)
275261 func WithdrawStakedFunds (amount) = {
276262 let WaitTime = (1 * 1)
277263 let StakedToken = base58'Hoej8L1ezqQY4Miex4Z4J7uJ33LCdcubV3DsubGHEqWP'
278264 let GovernToken = base58'6ZPMzZseuYoMP4ByozJpVxbugXBobwJYF22zVjW5JjN'
279265 let UserLastStakeBlock = (toBase58String(i.caller.bytes) + "_UserLastStakeBlock")
280266 let UserStakedTokenKey = (toBase58String(i.caller.bytes) + "_Staking")
281267 let UserGovernTokenKey = ((toBase58String(i.caller.bytes) + "_") + toBase58String(GovernToken))
282268 let ContractWalletStakeBalance = assetBalance(this, StakedToken)
283269 let UserLastStakeBlockValue = match getInteger(this, UserLastStakeBlock) {
284270 case a: Int =>
285271 a
286272 case _ =>
287273 0
288274 }
289275 let StakeBalance = match getInteger(this, "StakeBalance") {
290276 case a: Int =>
291277 a
292278 case _ =>
293279 0
294280 }
295281 let PrizeAmount = match getInteger(this, "FundBox") {
296282 case a: Int =>
297283 a
298284 case _ =>
299285 0
300286 }
301287 let HeightTransactFundBox = match getInteger(this, "PrizeHeight") {
302288 case a: Int =>
303289 a
304290 case _ =>
305291 0
306292 }
307293 let ActualDelay = match getInteger(this, "Delay") {
308294 case a: Int =>
309295 a
310296 case _ =>
311297 0
312298 }
313299 let HighestPushValue = match getInteger(this, "HighestPush") {
314300 case a: Int =>
315301 a
316302 case _ =>
317303 0
318304 }
319305 let PrizeHeightValue = if (if ((HeightTransactFundBox == 0))
320306 then (PrizeAmount == 0)
321307 else false)
322308 then 0
323309 else if (if ((HeightTransactFundBox == 0))
324310 then (PrizeAmount != 0)
325311 else false)
326312 then height
327313 else if (if ((HeightTransactFundBox != 0))
328314 then (PrizeAmount != 0)
329315 else false)
330316 then HeightTransactFundBox
331317 else 0
332318 let HighestPushAddress = match getInteger(this, "HighestPushAddress") {
333319 case a: Int =>
334320 a
335321 case _ =>
336322 0
337323 }
338324 let HighestPushAddressValue = if (if ((height > ((PrizeHeightValue + ActualDelay) + WaitTime)))
339325 then (HighestPushValue > 0)
340326 else false)
341327 then ""
342328 else HighestPushAddress
343329 let PrizeHeightValueNew = if (if ((height > ((PrizeHeightValue + ActualDelay) + WaitTime)))
344330 then (HighestPushValue > 0)
345331 else false)
346332 then height
347333 else PrizeHeightValue
348334 let currentKey = toBase58String(i.caller.bytes)
349335 let currentAmount = match getInteger(this, UserStakedTokenKey) {
350336 case a: Int =>
351337 a
352338 case _ =>
353339 0
354340 }
355341 let newAmount = (currentAmount - amount)
356342 let StakeBalanceAmount = (StakeBalance - amount)
357343 let UserLastStakeBlockNewValue = if ((StakeBalanceAmount == 0))
358344 then 0
359345 else UserLastStakeBlockValue
360346 if ((0 > amount))
361347 then throw("Can't withdraw negative amount")
362348 else if ((0 > newAmount))
363349 then throw(("User cannot withdraw more than deposited funds, Your deposit is: " + toString((currentAmount / 100000000))))
364350 else if ((100000000 > assetBalance(this, GovernToken)))
365351 then throw(("Not enough Troika In Contract: " + toString((assetBalance(this, GovernToken) / 100000000))))
366352 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)]))
367353 }
368354
369355
370356
371357 @Callable(i)
372358 func WithdrawBigStakeReward () = {
373359 let WaitTime = (1 * 1)
374360 let StakedToken = base58'Hoej8L1ezqQY4Miex4Z4J7uJ33LCdcubV3DsubGHEqWP'
375361 let GovernToken = base58'6ZPMzZseuYoMP4ByozJpVxbugXBobwJYF22zVjW5JjN'
376362 let LastBigStakerRewardBlock = (toBase58String(i.caller.bytes) + "_LastBigStakerRewardBlock")
377363 let BigStakerReward = (toBase58String(i.caller.bytes) + "_BigStaker")
378364 let UserGovernTokenKey = (toBase58String(i.caller.bytes) + "_Earnings")
379365 let LimiWithdrawReward = 1
380366 let UserGovernTokenAmount = match getInteger(this, UserGovernTokenKey) {
381367 case a: Int =>
382368 a
383369 case _ =>
384370 0
385371 }
386372 let LastBigStakerRewardBlockValue = match getInteger(this, LastBigStakerRewardBlock) {
387373 case a: Int =>
388374 a
389375 case _ =>
390376 0
391377 }
392378 let BigStakerRewardTotalValue = match getInteger(this, "BigStakerRewardTotal") {
393379 case a: Int =>
394380 a
395381 case _ =>
396382 0
397383 }
398384 let PrizeAmount = match getInteger(this, "FundBox") {
399385 case a: Int =>
400386 a
401387 case _ =>
402388 0
403389 }
404390 let HeightTransactFundBox = match getInteger(this, "PrizeHeight") {
405391 case a: Int =>
406392 a
407393 case _ =>
408394 0
409395 }
410396 let PrizeHeightValue = if (if ((HeightTransactFundBox == 0))
411397 then (PrizeAmount == 0)
412398 else false)
413399 then 0
414400 else if (if ((HeightTransactFundBox == 0))
415401 then (PrizeAmount != 0)
416402 else false)
417403 then height
418404 else if (if ((HeightTransactFundBox != 0))
419405 then (PrizeAmount != 0)
420406 else false)
421407 then HeightTransactFundBox
422408 else 0
423409 let ActualDelay = match getInteger(this, "Delay") {
424410 case a: Int =>
425411 a
426412 case _ =>
427413 0
428414 }
429415 let HighestPushValue = match getInteger(this, "HighestPush") {
430416 case a: Int =>
431417 a
432418 case _ =>
433419 0
434420 }
435421 let HighestPushAddress = match getInteger(this, "HighestPushAddress") {
436422 case a: Int =>
437423 a
438424 case _ =>
439425 0
440426 }
441427 let HighestPushAddressValue = if (if ((height > ((PrizeHeightValue + ActualDelay) + WaitTime)))
442428 then (HighestPushValue > 0)
443429 else false)
444430 then ""
445431 else HighestPushAddress
446432 let PrizeHeightValueNew = if (if ((height > ((PrizeHeightValue + ActualDelay) + WaitTime)))
447433 then (HighestPushValue > 0)
448434 else false)
449435 then height
450436 else PrizeHeightValue
451437 let currentKey = toBase58String(i.caller.bytes)
452438 let amount = match getInteger(this, BigStakerReward) {
453439 case a: Int =>
454440 a
455441 case _ =>
456442 0
457443 }
458444 let StakeBalanceAmount = (BigStakerRewardTotalValue - amount)
459445 let BigStakerRewardTax = if ((0 > ((UserGovernTokenAmount / 1000) * (1000 - ((1000 * (height - LastBigStakerRewardBlockValue)) / (LimiWithdrawReward * 1440))))))
460446 then (1000 * 100000000)
461447 else ((UserGovernTokenAmount / 1000) * (1000 - ((1000 * (height - LastBigStakerRewardBlockValue)) / (LimiWithdrawReward * 1440))))
462448 if ((0 > amount))
463449 then throw("Can't withdraw negative amount ")
464450 else if (if (((1000 * 100000000) > UserGovernTokenAmount))
465451 then (1 > amount)
466452 else false)
467453 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))))
468454 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)]))
469455 }
470456
471457
472458
473459 @Callable(i)
474460 func HarvestGovernToiken (amount) = {
475461 let StakedToken = base58'Hoej8L1ezqQY4Miex4Z4J7uJ33LCdcubV3DsubGHEqWP'
476462 let GovernToken = base58'6ZPMzZseuYoMP4ByozJpVxbugXBobwJYF22zVjW5JjN'
477463 let ContractWalletStakeBalance = assetBalance(this, StakedToken)
478464 let UserGovernTokenKey = (toBase58String(i.caller.bytes) + "_Earnings")
479465 let StakeBalance = match getInteger(this, "StakeBalance") {
480466 case a: Int =>
481467 a
482468 case _ =>
483469 0
484470 }
485471 let PrizeAmount = match getInteger(this, "FundBox") {
486472 case a: Int =>
487473 a
488474 case _ =>
489475 0
490476 }
491477 let HeightTransactFundBox = match getInteger(this, "PrizeHeight") {
492478 case a: Int =>
493479 a
494480 case _ =>
495481 0
496482 }
497483 let PrizeHeightValue = if (if ((HeightTransactFundBox == 0))
498484 then (PrizeAmount == 0)
499485 else false)
500486 then 0
501487 else if (if ((HeightTransactFundBox == 0))
502488 then (PrizeAmount != 0)
503489 else false)
504490 then height
505491 else if (if ((HeightTransactFundBox != 0))
506492 then (PrizeAmount != 0)
507493 else false)
508494 then HeightTransactFundBox
509495 else 0
510496 let currentKey = toBase58String(i.caller.bytes)
511497 let currentAmount = match getInteger(this, UserGovernTokenKey) {
512498 case a: Int =>
513499 a
514500 case _ =>
515501 0
516502 }
517503 let newAmount = (currentAmount - amount)
518504 if ((0 > amount))
519505 then throw("Can't withdraw negative amount")
520506 else if ((0 > newAmount))
521507 then throw(("User cannot withdraw more than deposited funds, Your deposit is: " + toString((currentAmount / 100000000))))
522508 else ScriptResult(WriteSet([DataEntry(UserGovernTokenKey, newAmount), DataEntry("PrizeHeight", PrizeHeightValue)]), TransferSet([ScriptTransfer(i.caller, amount, GovernToken)]))
523509 }
524510
525511
526512
527513 @Callable(i)
528514 func delayprize () = {
529515 let StakedToken = base58'Hoej8L1ezqQY4Miex4Z4J7uJ33LCdcubV3DsubGHEqWP'
530516 let GovernToken = base58'6ZPMzZseuYoMP4ByozJpVxbugXBobwJYF22zVjW5JjN'
531517 let DelayDays = (1 * 1)
532518 let WaitTime = (1 * 1)
533519 let UserGovernTokenKey = ((toBase58String(i.caller.bytes) + "_") + toBase58String(GovernToken))
534520 let UserWalletSGovernBalance = assetBalance(Address(i.caller.bytes), GovernToken)
535521 let ContractWalletStakeBalance = assetBalance(this, StakedToken)
536522 let StakeBalance = match getInteger(this, "StakeBalance") {
537523 case a: Int =>
538524 a
539525 case _ =>
540526 0
541527 }
542528 let PrizeAmount = match getInteger(this, "FundBox") {
543529 case a: Int =>
544530 a
545531 case _ =>
546532 0
547533 }
548534 let HeightTransactFundBox = match getInteger(this, "PrizeHeight") {
549535 case a: Int =>
550536 a
551537 case _ =>
552538 0
553539 }
554540 let ActualDelay = match getInteger(this, "Delay") {
555541 case a: Int =>
556542 a
557543 case _ =>
558544 0
559545 }
560546 let PrizeHeightValue = if (if ((HeightTransactFundBox == 0))
561547 then (PrizeAmount == 0)
562548 else false)
563549 then 0
564550 else if (if ((HeightTransactFundBox == 0))
565551 then (PrizeAmount != 0)
566552 else false)
567553 then height
568554 else if (if ((HeightTransactFundBox != 0))
569555 then (PrizeAmount != 0)
570556 else false)
571557 then HeightTransactFundBox
572558 else 0
573559 let HighestPushValue = match getInteger(this, "HighestPush") {
574560 case a: Int =>
575561 a
576562 case _ =>
577563 0
578564 }
579565 let HighestPushAddress = match getInteger(this, "HighestPushAddress") {
580566 case a: Int =>
581567 a
582568 case _ =>
583569 0
584570 }
585571 let HighestPushAddressValue = if (if ((height > ((PrizeHeightValue + ActualDelay) + WaitTime)))
586572 then (HighestPushValue > 0)
587573 else false)
588574 then ""
589575 else HighestPushAddress
590576 let PrizeHeightValueNew = if (if ((height > ((PrizeHeightValue + ActualDelay) + WaitTime)))
591577 then (HighestPushValue > 0)
592578 else false)
593579 then height
594580 else PrizeHeightValue
595581 let ActualDelayCost = match getInteger(this, "DelayCost") {
596582 case a: Int =>
597583 a
598584 case _ =>
599585 10
600586 }
601587 let pmt = extract(i.payment)
602588 let DevBoxBalance = match getInteger(this, "DevBox") {
603589 case a: Int =>
604590 a
605591 case _ =>
606592 0
607593 }
608594 if (if (isDefined(pmt.assetId))
609595 then (extract(pmt.assetId) == GovernToken)
610596 else false)
611597 then if ((PrizeAmount > 0))
612598 then {
613599 let UserGovernTokenAmount = pmt.amount
614600 let DevBoxAmount = (DevBoxBalance + ((pmt.amount * 5) / 1000))
615601 let NewDelayCost = if ((ActualDelayCost == 0))
616602 then 1000000000
617603 else (2 * ActualDelayCost)
618604 if ((UserGovernTokenAmount >= NewDelayCost))
619605 then {
620606 let NewDelay = (ActualDelay + DelayDays)
621607 WriteSet([DataEntry("Delay", NewDelay), DataEntry("DelayCost", NewDelayCost), DataEntry("PrizeHeight", PrizeHeightValueNew), DataEntry("DevBox", DevBoxAmount), DataEntry("HighestPushAddress", HighestPushAddressValue)])
622608 }
623609 else throw((("To delay the release of the reward ONE DAY later than expected, you need " + toString(NewDelayCost)) + "TROIKAs"))
624610 }
625611 else throw("You cannot delay the reward before reward is received! Please wait until a reward is available")
626612 else throw("Can Use only Troika Token to Delay Reward")
627613 }
628614
629615
630616
631617 @Callable(i)
632618 func ClaimPrize () = {
633619 let StakedToken = base58'Hoej8L1ezqQY4Miex4Z4J7uJ33LCdcubV3DsubGHEqWP'
634620 let GovernToken = base58'6ZPMzZseuYoMP4ByozJpVxbugXBobwJYF22zVjW5JjN'
635621 let UserStakedTokenKey = (toBase58String(i.caller.bytes) + "_Staking")
636622 let UserPush = (toBase58String(i.caller.bytes) + "_Push")
637623 let UserLastStakeBlock = (toBase58String(i.caller.bytes) + "_UserLastStakeBlock")
638624 let minStakeBlock = 7
639625 let minref = 0
640626 let ContractGovTokenBalance = assetBalance(this, GovernToken)
641627 let ContractWalletStakeBalance = assetBalance(this, StakedToken)
642628 let StakeBalance = match getInteger(this, "StakeBalance") {
643629 case a: Int =>
644630 a
645631 case _ =>
646632 0
647633 }
648634 let PrizeAmount = match getInteger(this, "FundBox") {
649635 case a: Int =>
650636 a
651637 case _ =>
652638 0
653639 }
654640 let UserPushValue = match getInteger(this, UserPush) {
655641 case a: Int =>
656642 a
657643 case _ =>
658644 0
659645 }
660646 let UserLastStakeBlockValue = match getInteger(this, UserLastStakeBlock) {
661647 case a: Int =>
662648 a
663649 case _ =>
664650 0
665651 }
666652 let UserStakedTokenAmount = match getInteger(this, UserStakedTokenKey) {
667653 case a: Int =>
668654 a
669655 case _ =>
670656 0
671657 }
672658 let ActualDelay = match getInteger(this, "Delay") {
673659 case a: Int =>
674660 a
675661 case _ =>
676662 0
677663 }
678664 let PrizeWinner = getStringValue(this, "HighestPushAddress")
679665 let PrizeHeight = match getInteger(this, "PrizeHeight") {
680666 case a: Int =>
681667 a
682668 case _ =>
683669 0
684670 }
685671 let HighestPushValue = match getInteger(this, "HighestPush") {
686672 case a: Int =>
687673 a
688674 case _ =>
689675 0
690676 }
691677 let UserRefsNum = (toBase58String(i.caller.bytes) + "_refs")
692678 let UserRefsNumValue = match getInteger(this, UserRefsNum) {
693679 case a: Int =>
694680 a
695681 case _ =>
696682 0
697683 }
698684 if (if ((PrizeAmount == 0))
699685 then true
700686 else (10000000000 > ContractGovTokenBalance))
701687 then throw("No prize to Claim or Not enough Govern Token en Contract (Min 100 Troika)")
702688 else if ((toBase58String(i.caller.bytes) != PrizeWinner))
703689 then throw("You are not the winner hence cannot claim the reward ")
704690 else if (if ((100000000 > UserStakedTokenAmount))
705691 then (minStakeBlock > UserLastStakeBlockValue)
706692 else false)
707693 then throw("You have to Stake ASIMI Token to claim reward ")
708694 else if (if ((height > (PrizeHeight + ActualDelay)))
709695 then (UserPushValue >= HighestPushValue)
710696 else false)
711697 then if ((UserRefsNumValue >= minref))
712698 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)]))
713699 else throw("You have to have 10 referrals already staking for a minimum of 10 days to Claim the prize")
714700 else throw("You have to be the user with the highest Push and wait till countown is finished, to claim Reward")
715701 }
716702
717703
718704
719705 @Callable(i)
720706 func Addmentor (Mentor) = {
721707 let StakedToken = base58'Hoej8L1ezqQY4Miex4Z4J7uJ33LCdcubV3DsubGHEqWP'
722708 let GovernToken = base58'6ZPMzZseuYoMP4ByozJpVxbugXBobwJYF22zVjW5JjN'
723709 let UserMentorAddress = (toBase58String(i.caller.bytes) + "_Mentor")
724710 if ((Mentor != ""))
725711 then WriteSet([DataEntry(UserMentorAddress, Mentor)])
726712 else throw("Mentor's Address cannot be empty")
727713 }
728714
729715

github/deemru/w8io/3ef1775 
89.46 ms