tx · 3fkjMnDVBW8bpWpwt41RALKwRcmuNA9JtLzpcMxcPdFp

3N9evuqxGecMq9hBmpdJu2VkMzdR5VNVrvK:  -0.01000000 Waves

2021.12.12 15:07 [1831013] smart account 3N9evuqxGecMq9hBmpdJu2VkMzdR5VNVrvK > SELF 0.00000000 Waves

{ "type": 13, "id": "3fkjMnDVBW8bpWpwt41RALKwRcmuNA9JtLzpcMxcPdFp", "fee": 1000000, "feeAssetId": null, "timestamp": 1639310847976, "version": 2, "chainId": 84, "sender": "3N9evuqxGecMq9hBmpdJu2VkMzdR5VNVrvK", "senderPublicKey": "AHY8zupoYc6HPJ5fh1gQiGE9bNZSeifFbcQQ89okxVug", "proofs": [ "2hvCuMMpwuA3pJj3YbR4iK3eawEkpp1ZdbBZhYcMcL2cW5TzbcqkKkYeBpDdB3CHL4pKgF3i6ngeNbnX8LYAyK7p" ], "script": "base64:AAIDAAAAAAAAB5EIARIAEgASABIAEgMKAQESABIDCgEBEgASABIDCgEIGhUKAUESEFVzZXJSZWZzTnVtVmFsdWUaFQoBQhIQSGlnaGVzdFB1c2hWYWx1ZRoWCgFDEhFVc2VyTGFzdFB1c2hCbG9jaxoXCgFEEhJVc2VyTGFzdFN0YWtlQmxvY2saDgoBRRIJVXNlclN0YWtlGhAKAUYSC0FjdHVhbERlbGF5GhcKAUcSEkhpZ2hlc3RQdXNoQWRkcmVzcxobCgFIEhZVc2VyTGFzdFB1c2hCbG9ja1ZhbHVlGhwKAUkSF1VzZXJMYXN0U3Rha2VCbG9ja1ZhbHVlGhMKAUoSDlVzZXJTdGFrZVZhbHVlGhIKAUsSDURldkJveEJhbGFuY2UaEgoBTBINVXNlclB1c2h2YWx1ZRoNCgFNEghOZXdEZWxheRocCgFOEhdIaWdoZXN0UHVzaEFkZHJlc3NWYWx1ZRoYCgFPEhNQcml6ZUhlaWdodFZhbHVlTmV3GggKAVASA3R4dBokCgFREh9Hb3Zlcm5Ub2tlblNtYXJ0Q29udHJhY3RCYWxhbmNlGgwKAVISB1VzZXJBUFkaFwoBUxISVXNlclN0YWtlZFRva2VuS2V5Gh0KAVQSGFVzZXJTdGFrZVRyYW5zYWN0aW9uc0tleRoSCgFVEg1BZGRyZXNzSGVpZ2h0GhUKAVYSEFVzZXJXZWVrRWFybmluZ3MaGgoBVxIVVXNlclN0YWtlVHJhbnNhY3Rpb25zGhQKAVgSD01heERlcG9zaXRCbG9jaxoPCgFZEgpNYXhEZXBvc2l0GhYKAVoSEU1heERlcG9zaXRlclZhbHVlGgYKAWESAWkaHQoCYUESF0NvbnRyYWN0R292VG9rZW5CYWxhbmNlGhsKAmFCEhVVc2VyU3Rha2VkVG9rZW5BbW91bnQaEQoCYUMSC1ByaXplV2lubmVyGhEKAmFEEgtQcml6ZUhlaWdodBoMCgJhRRIGTWVudG9yGhcKAmFGEhFVc2VyTWVudG9yQWRkcmVzcxoVCgJhYRIPTWF4RGVwb3NpdFZhbHVlGhoKAmFiEhRNYXhEZXBvc2l0QmxvY2tWYWx1ZRoTCgJhYxINVXNlclB1c2hWYWx1ZRogCgJhZBIaVXNlckxhc3RTdGFrZUJsb2NrTmV3VmFsdWUaHgoCYWUSGE5ld1VzZXJTdGFrZVRyYW5zYWN0aW9ucxoeCgJhZhIYY3VycmVudEFtb3VudFN0YWtlZFRva2VuGhoKAmFnEhRuZXdBbW91bnRTdGFrZWRUb2tlbhoYCgJhaBISU3Rha2VCYWxhbmNlQW1vdW50GhsKAmFpEhVVc2VyV2Vla0Vhcm5pbmdzVmFsdWUaHgoCYWoSGGN1cnJlbnRBbW91bnRHb3Zlcm5Ub2tlbhoMCgJhaxIGUmV3YXJkGhIKAmFsEgxVc2VyQVBZVmFsdWUaGgoCYW0SFG5ld0Ftb3VudEdvdmVyblRva2VuGgwKAmFuEgZhbW91bnQaEwoCYW8SDWN1cnJlbnRBbW91bnQaHgoCYXASGExhc3RCaWdTdGFrZXJSZXdhcmRCbG9jaxoVCgJhcRIPQmlnU3Rha2VyUmV3YXJkGhgKAmFyEhJMaW1pV2l0aGRyYXdSZXdhcmQaGwoCYXMSFVVzZXJHb3Zlcm5Ub2tlbkFtb3VudBojCgJhdBIdTGFzdEJpZ1N0YWtlclJld2FyZEJsb2NrVmFsdWUaHwoCYXUSGUJpZ1N0YWtlclJld2FyZFRvdGFsVmFsdWUaGAoCYXYSEkJpZ1N0YWtlclJld2FyZFRheBoPCgJhdxIJRGVsYXlEYXlzGh4KAmF4EhhVc2VyV2FsbGV0U0dvdmVybkJhbGFuY2UaFQoCYXkSD0FjdHVhbERlbGF5Q29zdBoSCgJhehIMTmV3RGVsYXlDb3N0Gg8KAWISCmN1cnJlbnRLZXkaEAoBYxILR292ZXJuVG9rZW4aEQoBZBIMRGV2Qm94QW1vdW50GgwKAWUSByRtYXRjaDAaBgoBZhIBYRoQCgFnEgtTdGFrZWRUb2tlbhofCgFoEhpDb250cmFjdFdhbGxldFN0YWtlQmFsYW5jZRoRCgFpEgxNYXhEZXBvc2l0ZXIaFwoBahISVXNlckdvdmVyblRva2VuS2V5GhEKAWsSDFN0YWtlQmFsYW5jZRoQCgFsEgtQcml6ZUFtb3VudBoaCgFtEhVIZWlnaHRUcmFuc2FjdEZ1bmRCb3gaFQoBbhIQUHJpemVIZWlnaHRWYWx1ZRoOCgFvEgluZXdBbW91bnQaEQoBcBIMbWluUHVzaEJsb2NrGhIKAXESDW1pblN0YWtlQmxvY2saEwoBchIORGVsYXlBZnRlclB1c2ga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", "height": 1831013, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: HFd9kqtVUzVqHfngeHJwL2ibxGvVkxSxhf39YmKHVFvY Next: Gpo71KTbe64iuzP356o9GCBzoqkRhij4ajqDKmanW7tB Diff:
OldNewDifferences
590590 let BigStakerRewardTax = if ((0 > ((UserGovernTokenAmount / 1000) * (1000 - ((1000 * (height - LastBigStakerRewardBlockValue)) / (LimiWithdrawReward * 1440))))))
591591 then (1000 * 100000000)
592592 else ((UserGovernTokenAmount / 1000) * (1000 - ((1000 * (height - LastBigStakerRewardBlockValue)) / (LimiWithdrawReward * 1440))))
593- if ((0 > amount))
594- then throw("Can't withdraw negative amount ")
593+ if ((amount > 0))
594+ then throw(("Can't withdraw negative amount " + toString(BigStakerRewardTax)))
595595 else if (if (((1000 * 100000000) > UserGovernTokenAmount))
596- then true
597- else (1 > amount))
596+ then (1 > amount)
597+ else false)
598598 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))))
599599 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)]))
600600 }
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)
253253 let UserAPY = (toBase58String(i.caller.bytes) + "_APY")
254254 let UserPush = (toBase58String(i.caller.bytes) + "_Push")
255255 let UserStakedTokenKey = (toBase58String(i.caller.bytes) + "_Staking")
256256 let UserGovernTokenKey = (toBase58String(i.caller.bytes) + "_Earnings")
257257 let UserLastStakeBlock = (toBase58String(i.caller.bytes) + "_UserLastStakeBlock")
258258 let UserStakeTransactionsKey = (toBase58String(i.caller.bytes) + "_StakedTransactions")
259259 let AddressHeight = (toBase58String(i.caller.bytes) + "_PrizeHeight")
260260 let UserWeekEarnings = (toBase58String(i.caller.bytes) + "_WeekEarning")
261261 let UserStakeTransactions = match getInteger(this, UserStakeTransactionsKey) {
262262 case a: Int =>
263263 a
264264 case _ =>
265265 0
266266 }
267267 let MaxDepositer = getStringValue(this, "MaxDepositer")
268268 let MaxDepositBlock = match getInteger(this, "MaxDepositBlock") {
269269 case a: Int =>
270270 a
271271 case _ =>
272272 0
273273 }
274274 let MaxDeposit = match getInteger(this, "MaxDeposit") {
275275 case a: Int =>
276276 a
277277 case _ =>
278278 0
279279 }
280280 let MaxDepositerValue = if ((pmt.amount > MaxDeposit))
281281 then toBase58String(i.caller.bytes)
282282 else MaxDepositer
283283 let MaxDepositValue = if ((pmt.amount > MaxDeposit))
284284 then pmt.amount
285285 else MaxDeposit
286286 let MaxDepositBlockValue = if ((pmt.amount > MaxDeposit))
287287 then height
288288 else MaxDepositBlock
289289 let UserPushValue = match getInteger(this, UserPush) {
290290 case a: Int =>
291291 a
292292 case _ =>
293293 0
294294 }
295295 let UserLastStakeBlockValue = match getInteger(this, UserLastStakeBlock) {
296296 case a: Int =>
297297 a
298298 case _ =>
299299 0
300300 }
301301 let UserLastStakeBlockNewValue = if ((UserLastStakeBlockValue == 0))
302302 then height
303303 else UserLastStakeBlockValue
304304 let NewUserStakeTransactions = (UserStakeTransactions + 1)
305305 let currentAmountStakedToken = match getInteger(this, UserStakedTokenKey) {
306306 case a: Int =>
307307 a
308308 case _ =>
309309 0
310310 }
311311 let newAmountStakedToken = (currentAmountStakedToken + pmt.amount)
312312 let ContractWalletStakeBalance = assetBalance(this, StakedToken)
313313 let StakeBalance = match getInteger(this, "StakeBalance") {
314314 case a: Int =>
315315 a
316316 case _ =>
317317 0
318318 }
319319 let StakeBalanceAmount = (StakeBalance + pmt.amount)
320320 let PrizeAmount = match getInteger(this, "FundBox") {
321321 case a: Int =>
322322 a
323323 case _ =>
324324 0
325325 }
326326 let UserWeekEarningsValue = match getInteger(this, UserWeekEarnings) {
327327 case a: Int =>
328328 a
329329 case _ =>
330330 0
331331 }
332332 let currentAmountGovernToken = match getInteger(this, UserGovernTokenKey) {
333333 case a: Int =>
334334 a
335335 case _ =>
336336 0
337337 }
338338 let HeightTransactFundBox = match getInteger(this, "PrizeHeight") {
339339 case a: Int =>
340340 a
341341 case _ =>
342342 0
343343 }
344344 let PrizeHeightValue = if (if ((HeightTransactFundBox == 0))
345345 then (PrizeAmount == 0)
346346 else false)
347347 then 0
348348 else if (if ((HeightTransactFundBox == 0))
349349 then (PrizeAmount != 0)
350350 else false)
351351 then height
352352 else if (if ((HeightTransactFundBox != 0))
353353 then (PrizeAmount != 0)
354354 else false)
355355 then HeightTransactFundBox
356356 else 0
357357 let ActualDelay = match getInteger(this, "Delay") {
358358 case a: Int =>
359359 a
360360 case _ =>
361361 0
362362 }
363363 let HighestPushValue = match getInteger(this, "HighestPush") {
364364 case a: Int =>
365365 a
366366 case _ =>
367367 0
368368 }
369369 let HighestPushAddress = match getInteger(this, "HighestPushAddress") {
370370 case a: Int =>
371371 a
372372 case _ =>
373373 0
374374 }
375375 let HighestPushAddressValue = if (if ((height > ((PrizeHeightValue + ActualDelay) + WaitTime)))
376376 then (HighestPushValue > 0)
377377 else false)
378378 then ""
379379 else HighestPushAddress
380380 let PrizeHeightValueNew = if (if ((height > ((PrizeHeightValue + ActualDelay) + WaitTime)))
381381 then (HighestPushValue > 0)
382382 else false)
383383 then height
384384 else PrizeHeightValue
385385 if ((100000000 > GovernTokenSmartContractBalance))
386386 then throw("No enough GovernToken In Contract, Please deposit GovernTokens")
387387 else {
388388 let Reward = if ((StakeBalance == 0))
389389 then 10000
390390 else if ((NewUserStakeTransactions > 10))
391391 then ((10000 * NewUserStakeTransactions) * (1 + (newAmountStakedToken / StakeBalance)))
392392 else (10000 * (1 + (newAmountStakedToken / StakeBalance)))
393393 let UserAPYValue = if ((currentAmountGovernToken > 0))
394394 then ((100 * Reward) / currentAmountGovernToken)
395395 else 0
396396 let newAmountGovernToken = (currentAmountGovernToken + Reward)
397397 ScriptResult(WriteSet([DataEntry(UserGovernTokenKey, newAmountGovernToken), DataEntry(UserStakedTokenKey, newAmountStakedToken), DataEntry(UserStakeTransactionsKey, NewUserStakeTransactions), DataEntry("StakeBalance", StakeBalanceAmount), DataEntry("PrizeHeight", PrizeHeightValueNew), DataEntry(UserAPY, UserAPYValue), DataEntry(UserLastStakeBlock, UserLastStakeBlockNewValue), DataEntry(UserPush, UserPushValue), DataEntry("MaxDepositer", MaxDepositerValue), DataEntry("MaxDeposit", MaxDepositValue), DataEntry("MaxDepositBlock", MaxDepositBlockValue), DataEntry("HighestPushAddress", HighestPushAddressValue), DataEntry(UserWeekEarnings, UserWeekEarningsValue)]), TransferSet([ScriptTransfer(i.caller, Reward, GovernToken)]))
398398 }
399399 }
400400 else throw("Can deposit only StakeToken")
401401 }
402402
403403
404404
405405 @Callable(i)
406406 func WithdrawStakedFunds (amount) = {
407407 let WaitTime = (1 * 1)
408408 let StakedToken = base58'Hoej8L1ezqQY4Miex4Z4J7uJ33LCdcubV3DsubGHEqWP'
409409 let GovernToken = base58'6ZPMzZseuYoMP4ByozJpVxbugXBobwJYF22zVjW5JjN'
410410 let UserLastStakeBlock = (toBase58String(i.caller.bytes) + "_UserLastStakeBlock")
411411 let UserStakedTokenKey = (toBase58String(i.caller.bytes) + "_Staking")
412412 let UserGovernTokenKey = ((toBase58String(i.caller.bytes) + "_") + toBase58String(GovernToken))
413413 let ContractWalletStakeBalance = assetBalance(this, StakedToken)
414414 let UserLastStakeBlockValue = match getInteger(this, UserLastStakeBlock) {
415415 case a: Int =>
416416 a
417417 case _ =>
418418 0
419419 }
420420 let StakeBalance = match getInteger(this, "StakeBalance") {
421421 case a: Int =>
422422 a
423423 case _ =>
424424 0
425425 }
426426 let PrizeAmount = match getInteger(this, "FundBox") {
427427 case a: Int =>
428428 a
429429 case _ =>
430430 0
431431 }
432432 let HeightTransactFundBox = match getInteger(this, "PrizeHeight") {
433433 case a: Int =>
434434 a
435435 case _ =>
436436 0
437437 }
438438 let ActualDelay = match getInteger(this, "Delay") {
439439 case a: Int =>
440440 a
441441 case _ =>
442442 0
443443 }
444444 let HighestPushValue = match getInteger(this, "HighestPush") {
445445 case a: Int =>
446446 a
447447 case _ =>
448448 0
449449 }
450450 let PrizeHeightValue = if (if ((HeightTransactFundBox == 0))
451451 then (PrizeAmount == 0)
452452 else false)
453453 then 0
454454 else if (if ((HeightTransactFundBox == 0))
455455 then (PrizeAmount != 0)
456456 else false)
457457 then height
458458 else if (if ((HeightTransactFundBox != 0))
459459 then (PrizeAmount != 0)
460460 else false)
461461 then HeightTransactFundBox
462462 else 0
463463 let HighestPushAddress = match getInteger(this, "HighestPushAddress") {
464464 case a: Int =>
465465 a
466466 case _ =>
467467 0
468468 }
469469 let HighestPushAddressValue = if (if ((height > ((PrizeHeightValue + ActualDelay) + WaitTime)))
470470 then (HighestPushValue > 0)
471471 else false)
472472 then ""
473473 else HighestPushAddress
474474 let PrizeHeightValueNew = if (if ((height > ((PrizeHeightValue + ActualDelay) + WaitTime)))
475475 then (HighestPushValue > 0)
476476 else false)
477477 then height
478478 else PrizeHeightValue
479479 let currentKey = toBase58String(i.caller.bytes)
480480 let currentAmount = match getInteger(this, UserStakedTokenKey) {
481481 case a: Int =>
482482 a
483483 case _ =>
484484 0
485485 }
486486 let newAmount = (currentAmount - amount)
487487 let StakeBalanceAmount = (StakeBalance - amount)
488488 let UserLastStakeBlockNewValue = if ((StakeBalanceAmount == 0))
489489 then 0
490490 else UserLastStakeBlockValue
491491 if ((0 > amount))
492492 then throw("Can't withdraw negative amount")
493493 else if ((0 > newAmount))
494494 then throw(("User cannot withdraw more than deposited funds, Your deposit is: " + toString((currentAmount / 100000000))))
495495 else if ((100000000 > assetBalance(this, GovernToken)))
496496 then throw(("Not enough Troika In Contract: " + toString((assetBalance(this, GovernToken) / 100000000))))
497497 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)]))
498498 }
499499
500500
501501
502502 @Callable(i)
503503 func WithdrawBigStakeReward () = {
504504 let WaitTime = (1 * 1)
505505 let StakedToken = base58'Hoej8L1ezqQY4Miex4Z4J7uJ33LCdcubV3DsubGHEqWP'
506506 let GovernToken = base58'6ZPMzZseuYoMP4ByozJpVxbugXBobwJYF22zVjW5JjN'
507507 let LastBigStakerRewardBlock = (toBase58String(i.caller.bytes) + "_LastBigStakerRewardBlock")
508508 let BigStakerReward = (toBase58String(i.caller.bytes) + "_BigStaker")
509509 let UserGovernTokenKey = (toBase58String(i.caller.bytes) + "_Earnings")
510510 let LimiWithdrawReward = 1
511511 let UserGovernTokenAmount = match getInteger(this, UserGovernTokenKey) {
512512 case a: Int =>
513513 a
514514 case _ =>
515515 0
516516 }
517517 let LastBigStakerRewardBlockValue = match getInteger(this, LastBigStakerRewardBlock) {
518518 case a: Int =>
519519 a
520520 case _ =>
521521 0
522522 }
523523 let BigStakerRewardTotalValue = match getInteger(this, "BigStakerRewardTotal") {
524524 case a: Int =>
525525 a
526526 case _ =>
527527 0
528528 }
529529 let PrizeAmount = match getInteger(this, "FundBox") {
530530 case a: Int =>
531531 a
532532 case _ =>
533533 0
534534 }
535535 let HeightTransactFundBox = match getInteger(this, "PrizeHeight") {
536536 case a: Int =>
537537 a
538538 case _ =>
539539 0
540540 }
541541 let PrizeHeightValue = if (if ((HeightTransactFundBox == 0))
542542 then (PrizeAmount == 0)
543543 else false)
544544 then 0
545545 else if (if ((HeightTransactFundBox == 0))
546546 then (PrizeAmount != 0)
547547 else false)
548548 then height
549549 else if (if ((HeightTransactFundBox != 0))
550550 then (PrizeAmount != 0)
551551 else false)
552552 then HeightTransactFundBox
553553 else 0
554554 let ActualDelay = match getInteger(this, "Delay") {
555555 case a: Int =>
556556 a
557557 case _ =>
558558 0
559559 }
560560 let HighestPushValue = match getInteger(this, "HighestPush") {
561561 case a: Int =>
562562 a
563563 case _ =>
564564 0
565565 }
566566 let HighestPushAddress = match getInteger(this, "HighestPushAddress") {
567567 case a: Int =>
568568 a
569569 case _ =>
570570 0
571571 }
572572 let HighestPushAddressValue = if (if ((height > ((PrizeHeightValue + ActualDelay) + WaitTime)))
573573 then (HighestPushValue > 0)
574574 else false)
575575 then ""
576576 else HighestPushAddress
577577 let PrizeHeightValueNew = if (if ((height > ((PrizeHeightValue + ActualDelay) + WaitTime)))
578578 then (HighestPushValue > 0)
579579 else false)
580580 then height
581581 else PrizeHeightValue
582582 let currentKey = toBase58String(i.caller.bytes)
583583 let amount = match getInteger(this, BigStakerReward) {
584584 case a: Int =>
585585 a
586586 case _ =>
587587 0
588588 }
589589 let StakeBalanceAmount = (BigStakerRewardTotalValue - amount)
590590 let BigStakerRewardTax = if ((0 > ((UserGovernTokenAmount / 1000) * (1000 - ((1000 * (height - LastBigStakerRewardBlockValue)) / (LimiWithdrawReward * 1440))))))
591591 then (1000 * 100000000)
592592 else ((UserGovernTokenAmount / 1000) * (1000 - ((1000 * (height - LastBigStakerRewardBlockValue)) / (LimiWithdrawReward * 1440))))
593- if ((0 > amount))
594- then throw("Can't withdraw negative amount ")
593+ if ((amount > 0))
594+ then throw(("Can't withdraw negative amount " + toString(BigStakerRewardTax)))
595595 else if (if (((1000 * 100000000) > UserGovernTokenAmount))
596- then true
597- else (1 > amount))
596+ then (1 > amount)
597+ else false)
598598 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))))
599599 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)]))
600600 }
601601
602602
603603
604604 @Callable(i)
605605 func HarvestGovernToiken (amount) = {
606606 let StakedToken = base58'Hoej8L1ezqQY4Miex4Z4J7uJ33LCdcubV3DsubGHEqWP'
607607 let GovernToken = base58'6ZPMzZseuYoMP4ByozJpVxbugXBobwJYF22zVjW5JjN'
608608 let ContractWalletStakeBalance = assetBalance(this, StakedToken)
609609 let UserGovernTokenKey = (toBase58String(i.caller.bytes) + "_Earnings")
610610 let StakeBalance = match getInteger(this, "StakeBalance") {
611611 case a: Int =>
612612 a
613613 case _ =>
614614 0
615615 }
616616 let PrizeAmount = match getInteger(this, "FundBox") {
617617 case a: Int =>
618618 a
619619 case _ =>
620620 0
621621 }
622622 let HeightTransactFundBox = match getInteger(this, "PrizeHeight") {
623623 case a: Int =>
624624 a
625625 case _ =>
626626 0
627627 }
628628 let PrizeHeightValue = if (if ((HeightTransactFundBox == 0))
629629 then (PrizeAmount == 0)
630630 else false)
631631 then 0
632632 else if (if ((HeightTransactFundBox == 0))
633633 then (PrizeAmount != 0)
634634 else false)
635635 then height
636636 else if (if ((HeightTransactFundBox != 0))
637637 then (PrizeAmount != 0)
638638 else false)
639639 then HeightTransactFundBox
640640 else 0
641641 let currentKey = toBase58String(i.caller.bytes)
642642 let currentAmount = match getInteger(this, UserGovernTokenKey) {
643643 case a: Int =>
644644 a
645645 case _ =>
646646 0
647647 }
648648 let newAmount = (currentAmount - amount)
649649 if ((0 > amount))
650650 then throw("Can't withdraw negative amount")
651651 else if ((0 > newAmount))
652652 then throw(("User cannot withdraw more than deposited funds, Your deposit is: " + toString((currentAmount / 100000000))))
653653 else ScriptResult(WriteSet([DataEntry(UserGovernTokenKey, newAmount), DataEntry("PrizeHeight", PrizeHeightValue)]), TransferSet([ScriptTransfer(i.caller, amount, GovernToken)]))
654654 }
655655
656656
657657
658658 @Callable(i)
659659 func delayprize () = {
660660 let StakedToken = base58'Hoej8L1ezqQY4Miex4Z4J7uJ33LCdcubV3DsubGHEqWP'
661661 let GovernToken = base58'6ZPMzZseuYoMP4ByozJpVxbugXBobwJYF22zVjW5JjN'
662662 let DelayDays = (1 * 1)
663663 let WaitTime = (1 * 1)
664664 let UserGovernTokenKey = ((toBase58String(i.caller.bytes) + "_") + toBase58String(GovernToken))
665665 let UserWalletSGovernBalance = assetBalance(Address(i.caller.bytes), GovernToken)
666666 let ContractWalletStakeBalance = assetBalance(this, StakedToken)
667667 let StakeBalance = match getInteger(this, "StakeBalance") {
668668 case a: Int =>
669669 a
670670 case _ =>
671671 0
672672 }
673673 let PrizeAmount = match getInteger(this, "FundBox") {
674674 case a: Int =>
675675 a
676676 case _ =>
677677 0
678678 }
679679 let HeightTransactFundBox = match getInteger(this, "PrizeHeight") {
680680 case a: Int =>
681681 a
682682 case _ =>
683683 0
684684 }
685685 let ActualDelay = match getInteger(this, "Delay") {
686686 case a: Int =>
687687 a
688688 case _ =>
689689 0
690690 }
691691 let PrizeHeightValue = if (if ((HeightTransactFundBox == 0))
692692 then (PrizeAmount == 0)
693693 else false)
694694 then 0
695695 else if (if ((HeightTransactFundBox == 0))
696696 then (PrizeAmount != 0)
697697 else false)
698698 then height
699699 else if (if ((HeightTransactFundBox != 0))
700700 then (PrizeAmount != 0)
701701 else false)
702702 then HeightTransactFundBox
703703 else 0
704704 let HighestPushValue = match getInteger(this, "HighestPush") {
705705 case a: Int =>
706706 a
707707 case _ =>
708708 0
709709 }
710710 let HighestPushAddress = match getInteger(this, "HighestPushAddress") {
711711 case a: Int =>
712712 a
713713 case _ =>
714714 0
715715 }
716716 let HighestPushAddressValue = if (if ((height > ((PrizeHeightValue + ActualDelay) + WaitTime)))
717717 then (HighestPushValue > 0)
718718 else false)
719719 then ""
720720 else HighestPushAddress
721721 let PrizeHeightValueNew = if (if ((height > ((PrizeHeightValue + ActualDelay) + WaitTime)))
722722 then (HighestPushValue > 0)
723723 else false)
724724 then height
725725 else PrizeHeightValue
726726 let ActualDelayCost = match getInteger(this, "DelayCost") {
727727 case a: Int =>
728728 a
729729 case _ =>
730730 10
731731 }
732732 let pmt = extract(i.payment)
733733 let DevBoxBalance = match getInteger(this, "DevBox") {
734734 case a: Int =>
735735 a
736736 case _ =>
737737 0
738738 }
739739 if (if (isDefined(pmt.assetId))
740740 then (extract(pmt.assetId) == GovernToken)
741741 else false)
742742 then if ((PrizeAmount > 0))
743743 then {
744744 let UserGovernTokenAmount = pmt.amount
745745 let DevBoxAmount = (DevBoxBalance + ((pmt.amount * 5) / 1000))
746746 let NewDelayCost = if ((ActualDelayCost == 0))
747747 then 1000000000
748748 else (2 * ActualDelayCost)
749749 if ((UserGovernTokenAmount >= NewDelayCost))
750750 then {
751751 let NewDelay = (ActualDelay + DelayDays)
752752 WriteSet([DataEntry("Delay", NewDelay), DataEntry("DelayCost", NewDelayCost), DataEntry("PrizeHeight", PrizeHeightValueNew), DataEntry("DevBox", DevBoxAmount), DataEntry("HighestPushAddress", HighestPushAddressValue)])
753753 }
754754 else throw((("To delay the release of the reward ONE DAY later than expected, you need " + toString(NewDelayCost)) + "TROIKAs"))
755755 }
756756 else throw("You cannot delay the reward before reward is received! Please wait until a reward is available")
757757 else throw("Can Use only Troika Token to Delay Reward")
758758 }
759759
760760
761761
762762 @Callable(i)
763763 func ClaimPrize () = {
764764 let StakedToken = base58'Hoej8L1ezqQY4Miex4Z4J7uJ33LCdcubV3DsubGHEqWP'
765765 let GovernToken = base58'6ZPMzZseuYoMP4ByozJpVxbugXBobwJYF22zVjW5JjN'
766766 let UserStakedTokenKey = (toBase58String(i.caller.bytes) + "_Staking")
767767 let UserPush = (toBase58String(i.caller.bytes) + "_Push")
768768 let UserLastStakeBlock = (toBase58String(i.caller.bytes) + "_UserLastStakeBlock")
769769 let minStakeBlock = 7
770770 let minref = 0
771771 let ContractGovTokenBalance = assetBalance(this, GovernToken)
772772 let ContractWalletStakeBalance = assetBalance(this, StakedToken)
773773 let StakeBalance = match getInteger(this, "StakeBalance") {
774774 case a: Int =>
775775 a
776776 case _ =>
777777 0
778778 }
779779 let PrizeAmount = match getInteger(this, "FundBox") {
780780 case a: Int =>
781781 a
782782 case _ =>
783783 0
784784 }
785785 let UserPushValue = match getInteger(this, UserPush) {
786786 case a: Int =>
787787 a
788788 case _ =>
789789 0
790790 }
791791 let UserLastStakeBlockValue = match getInteger(this, UserLastStakeBlock) {
792792 case a: Int =>
793793 a
794794 case _ =>
795795 0
796796 }
797797 let UserStakedTokenAmount = match getInteger(this, UserStakedTokenKey) {
798798 case a: Int =>
799799 a
800800 case _ =>
801801 0
802802 }
803803 let ActualDelay = match getInteger(this, "Delay") {
804804 case a: Int =>
805805 a
806806 case _ =>
807807 0
808808 }
809809 let PrizeWinner = getStringValue(this, "HighestPushAddress")
810810 let PrizeHeight = match getInteger(this, "PrizeHeight") {
811811 case a: Int =>
812812 a
813813 case _ =>
814814 0
815815 }
816816 let HighestPushValue = match getInteger(this, "HighestPush") {
817817 case a: Int =>
818818 a
819819 case _ =>
820820 0
821821 }
822822 let UserRefsNum = (toBase58String(i.caller.bytes) + "_refs")
823823 let UserRefsNumValue = match getInteger(this, UserRefsNum) {
824824 case a: Int =>
825825 a
826826 case _ =>
827827 0
828828 }
829829 if (if ((PrizeAmount == 0))
830830 then true
831831 else (10000000000 > ContractGovTokenBalance))
832832 then throw("No prize to Claim or Not enough Govern Token en Contract (Min 100 Troika)")
833833 else if ((toBase58String(i.caller.bytes) != PrizeWinner))
834834 then throw("You are not the winner hence cannot claim the reward ")
835835 else if (if ((100000000 > UserStakedTokenAmount))
836836 then (minStakeBlock > UserLastStakeBlockValue)
837837 else false)
838838 then throw("You have to Stake ASIMI Token to claim reward ")
839839 else if (if ((height > (PrizeHeight + ActualDelay)))
840840 then (UserPushValue >= HighestPushValue)
841841 else false)
842842 then if ((UserRefsNumValue >= minref))
843843 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)]))
844844 else throw("You have to have 10 referrals already staking for a minimum of 10 days to Claim the prize")
845845 else throw("You have to be the user with the highest Push and wait till countown is finished, to claim Reward")
846846 }
847847
848848
849849
850850 @Callable(i)
851851 func Addmentor (Mentor) = {
852852 let StakedToken = base58'Hoej8L1ezqQY4Miex4Z4J7uJ33LCdcubV3DsubGHEqWP'
853853 let GovernToken = base58'6ZPMzZseuYoMP4ByozJpVxbugXBobwJYF22zVjW5JjN'
854854 let UserMentorAddress = (toBase58String(i.caller.bytes) + "_Mentor")
855855 if ((Mentor != ""))
856856 then WriteSet([DataEntry(UserMentorAddress, Mentor)])
857857 else throw("Mentor's Address cannot be empty")
858858 }
859859
860860

github/deemru/w8io/169f3d6 
102.89 ms