tx · 3KqCZ72Eq7Qw4vwmemEoXDe2zELXqaBLSVVwrpNG8Kvn

3N9evuqxGecMq9hBmpdJu2VkMzdR5VNVrvK:  -0.01000000 Waves

2021.08.08 21:12 [1649714] smart account 3N9evuqxGecMq9hBmpdJu2VkMzdR5VNVrvK > SELF 0.00000000 Waves

{ "type": 13, "id": "3KqCZ72Eq7Qw4vwmemEoXDe2zELXqaBLSVVwrpNG8Kvn", "fee": 1000000, "feeAssetId": null, "timestamp": 1628446442392, "version": 2, "chainId": 84, "sender": "3N9evuqxGecMq9hBmpdJu2VkMzdR5VNVrvK", "senderPublicKey": "AHY8zupoYc6HPJ5fh1gQiGE9bNZSeifFbcQQ89okxVug", "proofs": [ "3heNuzSeQ7mXfmFp3KXDpXWX5GxoPu5WjwQLrjhxxPZNhuAraJSyh55jgL6rnvq4e1jPSU3i58zWW5bUBfNfyJDf" ], "script": "base64:AAIDAAAAAAAAB1kIARIAEgASABIDCgEBEgASAwoBARIAEgASAwoBCBoHCgJhMRIBaRoQCgJhMhIKY3VycmVudEtleRoRCgJhMxILR292ZXJuVG9rZW4aEgoCYTQSDERldkJveEFtb3VudBoNCgJhNRIHJG1hdGNoMBoHCgJhNhIBYRoRCgJhNxILU3Rha2VkVG9rZW4aEgoCYTgSDG1pblB1c2hCbG9jaxoTCgJhORINbWluU3Rha2VCbG9jaxoUCgJiMRIORGVsYXlBZnRlclB1c2gaDgoCYjISCFdhaXRUaW1lGgwKAmIzEgZtaW5yZWYaHQoCYjQSF3VzZXJXYWxsZXRHb3Zlcm5CYWxhbmNlGgkKAmI1EgNwbXQaDgoCYjYSCFVzZXJQdXNoGhoKAmI3EhRVc2VyTGFzdFB1c2hPbGRWYWx1ZRoRCgJiOBILVXNlclJlZnNOdW0aFgoCYjkSEFVzZXJSZWZzTnVtVmFsdWUaFgoCYzESEEhpZ2hlc3RQdXNoVmFsdWUaFwoCYzISEVVzZXJMYXN0UHVzaEJsb2NrGhgKAmMzEhJVc2VyTGFzdFN0YWtlQmxvY2saDwoCYzQSCVVzZXJTdGFrZRogCgJjNRIaQ29udHJhY3RXYWxsZXRTdGFrZUJhbGFuY2UaEgoCYzYSDFN0YWtlQmFsYW5jZRoRCgJjNxILUHJpemVBbW91bnQaGwoCYzgSFUhlaWdodFRyYW5zYWN0RnVuZEJveBoWCgJjORIQUHJpemVIZWlnaHRWYWx1ZRoRCgJkMRILQWN0dWFsRGVsYXkaGAoCZDISEkhpZ2hlc3RQdXNoQWRkcmVzcxocCgJkMxIWVXNlckxhc3RQdXNoQmxvY2tWYWx1ZRodCgJkNBIXVXNlckxhc3RTdGFrZUJsb2NrVmFsdWUaFAoCZDUSDlVzZXJTdGFrZVZhbHVlGhMKAmQ2Eg1EZXZCb3hCYWxhbmNlGhMKAmQ3Eg1Vc2VyUHVzaHZhbHVlGg4KAmQ4EghOZXdEZWxheRoZCgJkORITUHJpemVIZWlnaHRWYWx1ZU5ldxoJCgJlMRIDdHh0GiUKAmUyEh9Hb3Zlcm5Ub2tlblNtYXJ0Q29udHJhY3RCYWxhbmNlGg0KAmUzEgdVc2VyQVBZGhgKAmU0EhJVc2VyU3Rha2VkVG9rZW5LZXkaGAoCZTUSElVzZXJHb3Zlcm5Ub2tlbktleRoeCgJlNhIYVXNlclN0YWtlVHJhbnNhY3Rpb25zS2V5GhMKAmU3Eg1BZGRyZXNzSGVpZ2h0GhsKAmU4EhVVc2VyU3Rha2VUcmFuc2FjdGlvbnMaEgoCZTkSDE1heERlcG9zaXRlchoVCgJmMRIPTWF4RGVwb3NpdEJsb2NrGhAKAmYyEgpNYXhEZXBvc2l0GhcKAmYzEhFNYXhEZXBvc2l0ZXJWYWx1ZRoVCgJmNBIPTWF4RGVwb3NpdFZhbHVlGhoKAmY1EhRNYXhEZXBvc2l0QmxvY2tWYWx1ZRoTCgJmNhINVXNlclB1c2hWYWx1ZRogCgJmNxIaVXNlckxhc3RTdGFrZUJsb2NrTmV3VmFsdWUaHgoCZjgSGE5ld1VzZXJTdGFrZVRyYW5zYWN0aW9ucxoeCgJmORIYY3VycmVudEFtb3VudFN0YWtlZFRva2VuGhoKAmcxEhRuZXdBbW91bnRTdGFrZWRUb2tlbhoYCgJnMhISU3Rha2VCYWxhbmNlQW1vdW50Gh4KAmczEhhjdXJyZW50QW1vdW50R292ZXJuVG9rZW4aDAoCZzQSBlJld2FyZBoSCgJnNRIMVXNlckFQWVZhbHVlGhoKAmc2EhRuZXdBbW91bnRHb3Zlcm5Ub2tlbhoMCgJnNxIGYW1vdW50GhMKAmc4Eg1jdXJyZW50QW1vdW50Gg8KAmc5EgluZXdBbW91bnQaHgoCaDESGExhc3RCaWdTdGFrZXJSZXdhcmRCbG9jaxoVCgJoMhIPQmlnU3Rha2VyUmV3YXJkGhgKAmgzEhJMaW1pV2l0aGRyYXdSZXdhcmQaGwoCaDQSFVVzZXJHb3Zlcm5Ub2tlbkFtb3VudBojCgJoNRIdTGFzdEJpZ1N0YWtlclJld2FyZEJsb2NrVmFsdWUaHwoCaDYSGUJpZ1N0YWtlclJld2FyZFRvdGFsVmFsdWUaGAoCaDcSEkJpZ1N0YWtlclJld2FyZFRheBoPCgJoOBIJRGVsYXlEYXlzGh4KAmg5EhhVc2VyV2FsbGV0U0dvdmVybkJhbGFuY2UaFQoCaTESD0FjdHVhbERlbGF5Q29zdBoSCgJpMhIMTmV3RGVsYXlDb3N0Gh0KAmkzEhdDb250cmFjdEdvdlRva2VuQmFsYW5jZRobCgJpNBIVVXNlclN0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", "height": 1649714, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: DL5vXaUoYN6tj8T14nJfARVgLqUy584Sv1cpeeDtHUac Next: A5FxgzappeAYJZA3ZeRX5ZB1TuQ6bnYdChnCC2vJ6hsM Diff:
OldNewDifferences
66 @Callable(i)
77 func DevWithdraw () = {
88 let currentKey = toBase58String(i.caller.bytes)
9- let GovernToken = base58'32rMCTpxTer5LQz6HTd3dGpaFXfcaLv56k73YAzEVwsh'
9+ let GovernToken = base58'DHZVHe6JzD61zTwH4ZnHnmo3w7oKGABXwgBt4S8KkzUP'
1010 if ((currentKey == "3P74buHt98BnojFcaREJZtb98KDyUmZGemJ"))
1111 then {
1212 let DevBoxAmount = match getInteger(this, "DevBox") {
2626
2727 @Callable(i)
2828 func PushReward () = {
29- let StakedToken = base58'Hoej8L1ezqQY4Miex4Z4J7uJ33LCdcubV3DsubGHEqWP'
30- let GovernToken = base58'32rMCTpxTer5LQz6HTd3dGpaFXfcaLv56k73YAzEVwsh'
29+ let StakedToken = base58'EbLVSrAi6vS3AkLwBinzZCvAXP2yYiFJEzj1MBVHcwZ5'
30+ let GovernToken = base58'DHZVHe6JzD61zTwH4ZnHnmo3w7oKGABXwgBt4S8KkzUP'
3131 let minPushBlock = 10
3232 let minStakeBlock = (7 * 1440)
3333 let DelayAfterPush = 60
3434 let WaitTime = 1440
35- let minref = 0
35+ let minref = 1
3636 let userWalletGovernBalance = assetBalance(Address(i.caller.bytes), GovernToken)
3737 let pmt = extract(i.payment)
3838 let UserPush = (toBase58String(i.caller.bytes) + "_Push")
150150 then if ((UserStakeValue > 0))
151151 then if ((UserPushvalue > HighestPushValue))
152152 then if ((PrizeAmount > 0))
153- then if (if (if (if (((PrizeHeightValueNew + NewDelay) > height))
153+ then if (if (if (if (((PrizeHeightValueNew + NewDelay) >= height))
154154 then true
155- else (height > ((PrizeHeightValueNew + NewDelay) + WaitTime)))
155+ else (height >= ((PrizeHeightValueNew + NewDelay) + WaitTime)))
156156 then (HighestPushValue > 0)
157157 else false)
158158 then true
159159 else (HighestPushValue == 0))
160160 then if ((UserRefsNumValue >= minref))
161161 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)])
162- else throw("You have to have 10 referrals already staking for a minimum of 10 days, to push")
162+ else throw((("You have to have " + toString(minref)) + " referrals already staking for a minimum of 10 days, to push"))
163163 else {
164164 let txt = if ((HighestPushValue > 0))
165165 then "You cannot Push after rewarding Prize and before One day has passed after award"
181181
182182 @Callable(i)
183183 func Stake () = {
184- let StakedToken = base58'Hoej8L1ezqQY4Miex4Z4J7uJ33LCdcubV3DsubGHEqWP'
185- let GovernToken = base58'32rMCTpxTer5LQz6HTd3dGpaFXfcaLv56k73YAzEVwsh'
184+ let StakedToken = base58'EbLVSrAi6vS3AkLwBinzZCvAXP2yYiFJEzj1MBVHcwZ5'
185+ let GovernToken = base58'DHZVHe6JzD61zTwH4ZnHnmo3w7oKGABXwgBt4S8KkzUP'
186186 let pmt = extract(i.payment)
187187 if (if ((pmt.amount > 0))
188188 then (pmt.assetId == StakedToken)
202202 case _ =>
203203 0
204204 }
205- let MaxStakedDepositValue = match getInteger(this, "MaxStakedDepositValue") {
205+ let MaxDepositer = getStringValue(this, "MaxDepositer")
206+ let MaxDepositBlock = match getInteger(this, "MaxDepositBlock") {
206207 case a: Int =>
207208 a
208209 case _ =>
209210 0
210211 }
211- let MaxStakedDepositNewValue = if ((pmt.amount > MaxStakedDepositValue))
212+ let MaxDeposit = match getInteger(this, "MaxDeposit") {
213+ case a: Int =>
214+ a
215+ case _ =>
216+ 0
217+ }
218+ let MaxDepositerValue = if ((pmt.amount > MaxDeposit))
219+ then toBase58String(i.caller.bytes)
220+ else MaxDepositer
221+ let MaxDepositValue = if ((pmt.amount > MaxDeposit))
212222 then pmt.amount
213- else MaxStakedDepositValue
214- let MaxStakedDepositUser = getStringValue(this, "MaxStakedDepositUser")
215- let MaxStakedDepositNewUser = if ((pmt.amount > MaxStakedDepositValue))
216- then pmt.amount
217- else MaxStakedDepositUser
223+ else MaxDeposit
224+ let MaxDepositBlockValue = if ((pmt.amount > MaxDeposit))
225+ then height
226+ else MaxDepositBlock
218227 let UserPushValue = match getInteger(this, UserPush) {
219228 case a: Int =>
220229 a
289298 then ((100 * Reward) / currentAmountGovernToken)
290299 else 0
291300 let newAmountGovernToken = (currentAmountGovernToken + Reward)
292- ScriptResult(WriteSet([DataEntry(UserGovernTokenKey, newAmountGovernToken), DataEntry(UserStakedTokenKey, newAmountStakedToken), DataEntry(UserStakeTransactionsKey, NewUserStakeTransactions), DataEntry("StakeBalance", StakeBalanceAmount), DataEntry("PrizeHeight", PrizeHeightValue), DataEntry(UserAPY, UserAPYValue), DataEntry(UserLastStakeBlock, UserLastStakeBlockNewValue), DataEntry(UserPush, UserPushValue), DataEntry("MaxStakedDepositValue", MaxStakedDepositNewValue), DataEntry("MaxStakedDepositUser", MaxStakedDepositNewUser)]), TransferSet([ScriptTransfer(i.caller, Reward, GovernToken)]))
301+ ScriptResult(WriteSet([DataEntry(UserGovernTokenKey, newAmountGovernToken), DataEntry(UserStakedTokenKey, newAmountStakedToken), DataEntry(UserStakeTransactionsKey, NewUserStakeTransactions), DataEntry("StakeBalance", StakeBalanceAmount), DataEntry("PrizeHeight", PrizeHeightValue), DataEntry(UserAPY, UserAPYValue), DataEntry(UserLastStakeBlock, UserLastStakeBlockNewValue), DataEntry(UserPush, UserPushValue)]), TransferSet([ScriptTransfer(i.caller, Reward, GovernToken)]))
293302 }
294303 }
295304 else throw("Can deposit only StakeToken")
299308
300309 @Callable(i)
301310 func WithdrawStakedFunds (amount) = {
302- let StakedToken = base58'Hoej8L1ezqQY4Miex4Z4J7uJ33LCdcubV3DsubGHEqWP'
303- let GovernToken = base58'32rMCTpxTer5LQz6HTd3dGpaFXfcaLv56k73YAzEVwsh'
311+ let StakedToken = base58'EbLVSrAi6vS3AkLwBinzZCvAXP2yYiFJEzj1MBVHcwZ5'
312+ let GovernToken = base58'DHZVHe6JzD61zTwH4ZnHnmo3w7oKGABXwgBt4S8KkzUP'
304313 let UserLastStakeBlock = (toBase58String(i.caller.bytes) + "_UserLastStakeBlock")
305314 let UserStakedTokenKey = (toBase58String(i.caller.bytes) + "_Staking")
306315 let UserGovernTokenKey = ((toBase58String(i.caller.bytes) + "_") + toBase58String(GovernToken))
367376
368377 @Callable(i)
369378 func WithdrawBigStakeReward () = {
370- let StakedToken = base58'Hoej8L1ezqQY4Miex4Z4J7uJ33LCdcubV3DsubGHEqWP'
371- let GovernToken = base58'32rMCTpxTer5LQz6HTd3dGpaFXfcaLv56k73YAzEVwsh'
379+ let StakedToken = base58'EbLVSrAi6vS3AkLwBinzZCvAXP2yYiFJEzj1MBVHcwZ5'
380+ let GovernToken = base58'DHZVHe6JzD61zTwH4ZnHnmo3w7oKGABXwgBt4S8KkzUP'
372381 let LastBigStakerRewardBlock = (toBase58String(i.caller.bytes) + "LastBigStakerRewardBlock")
373382 let BigStakerReward = (toBase58String(i.caller.bytes) + "_BigStaker")
374383 let UserGovernTokenKey = (toBase58String(i.caller.bytes) + "_Earnings")
440449
441450 @Callable(i)
442451 func HarvestGovernToiken (amount) = {
443- let StakedToken = base58'Hoej8L1ezqQY4Miex4Z4J7uJ33LCdcubV3DsubGHEqWP'
444- let GovernToken = base58'32rMCTpxTer5LQz6HTd3dGpaFXfcaLv56k73YAzEVwsh'
452+ let StakedToken = base58'EbLVSrAi6vS3AkLwBinzZCvAXP2yYiFJEzj1MBVHcwZ5'
453+ let GovernToken = base58'DHZVHe6JzD61zTwH4ZnHnmo3w7oKGABXwgBt4S8KkzUP'
445454 let ContractWalletStakeBalance = assetBalance(this, StakedToken)
446455 let UserGovernTokenKey = (toBase58String(i.caller.bytes) + "_Earnings")
447456 let StakeBalance = match getInteger(this, "StakeBalance") {
494503
495504 @Callable(i)
496505 func delayprize () = {
497- let StakedToken = base58'Hoej8L1ezqQY4Miex4Z4J7uJ33LCdcubV3DsubGHEqWP'
498- let GovernToken = base58'32rMCTpxTer5LQz6HTd3dGpaFXfcaLv56k73YAzEVwsh'
506+ let StakedToken = base58'EbLVSrAi6vS3AkLwBinzZCvAXP2yYiFJEzj1MBVHcwZ5'
507+ let GovernToken = base58'DHZVHe6JzD61zTwH4ZnHnmo3w7oKGABXwgBt4S8KkzUP'
499508 let DelayDays = (1 * 1440)
500509 let UserGovernTokenKey = ((toBase58String(i.caller.bytes) + "_") + toBase58String(GovernToken))
501510 let UserWalletSGovernBalance = assetBalance(Address(i.caller.bytes), GovernToken)
575584
576585 @Callable(i)
577586 func ClaimPrize () = {
578- let StakedToken = base58'Hoej8L1ezqQY4Miex4Z4J7uJ33LCdcubV3DsubGHEqWP'
579- let GovernToken = base58'32rMCTpxTer5LQz6HTd3dGpaFXfcaLv56k73YAzEVwsh'
587+ let StakedToken = base58'EbLVSrAi6vS3AkLwBinzZCvAXP2yYiFJEzj1MBVHcwZ5'
588+ let GovernToken = base58'DHZVHe6JzD61zTwH4ZnHnmo3w7oKGABXwgBt4S8KkzUP'
580589 let UserStakedTokenKey = (toBase58String(i.caller.bytes) + "_Staking")
581590 let UserPush = (toBase58String(i.caller.bytes) + "_Push")
582591 let UserLastStakeBlock = (toBase58String(i.caller.bytes) + "_UserLastStakeBlock")
583592 let minStakeBlock = 7
584- let minref = 0
593+ let minref = 1
585594 let ContractGovTokenBalance = assetBalance(this, GovernToken)
586595 let ContractWalletStakeBalance = assetBalance(this, StakedToken)
587596 let StakeBalance = match getInteger(this, "StakeBalance") {
663672
664673 @Callable(i)
665674 func Addmentor (Mentor) = {
666- let StakedToken = base58'Hoej8L1ezqQY4Miex4Z4J7uJ33LCdcubV3DsubGHEqWP'
667- let GovernToken = base58'32rMCTpxTer5LQz6HTd3dGpaFXfcaLv56k73YAzEVwsh'
675+ let StakedToken = base58'EbLVSrAi6vS3AkLwBinzZCvAXP2yYiFJEzj1MBVHcwZ5'
676+ let GovernToken = base58'DHZVHe6JzD61zTwH4ZnHnmo3w7oKGABXwgBt4S8KkzUP'
668677 let UserMentorAddress = (toBase58String(i.caller.bytes) + "_Mentor")
669678 if ((Mentor != ""))
670679 then WriteSet([DataEntry(UserMentorAddress, Mentor)])
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)
9- let GovernToken = base58'32rMCTpxTer5LQz6HTd3dGpaFXfcaLv56k73YAzEVwsh'
9+ let GovernToken = base58'DHZVHe6JzD61zTwH4ZnHnmo3w7oKGABXwgBt4S8KkzUP'
1010 if ((currentKey == "3P74buHt98BnojFcaREJZtb98KDyUmZGemJ"))
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)]), 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 PushReward () = {
29- let StakedToken = base58'Hoej8L1ezqQY4Miex4Z4J7uJ33LCdcubV3DsubGHEqWP'
30- let GovernToken = base58'32rMCTpxTer5LQz6HTd3dGpaFXfcaLv56k73YAzEVwsh'
29+ let StakedToken = base58'EbLVSrAi6vS3AkLwBinzZCvAXP2yYiFJEzj1MBVHcwZ5'
30+ let GovernToken = base58'DHZVHe6JzD61zTwH4ZnHnmo3w7oKGABXwgBt4S8KkzUP'
3131 let minPushBlock = 10
3232 let minStakeBlock = (7 * 1440)
3333 let DelayAfterPush = 60
3434 let WaitTime = 1440
35- let minref = 0
35+ let minref = 1
3636 let userWalletGovernBalance = assetBalance(Address(i.caller.bytes), GovernToken)
3737 let pmt = extract(i.payment)
3838 let UserPush = (toBase58String(i.caller.bytes) + "_Push")
3939 let UserLastPushOldValue = match getInteger(this, UserPush) {
4040 case a: Int =>
4141 a
4242 case _ =>
4343 0
4444 }
4545 let UserRefsNum = (toBase58String(i.caller.bytes) + "_refs")
4646 let UserRefsNumValue = match getInteger(this, UserRefsNum) {
4747 case a: Int =>
4848 a
4949 case _ =>
5050 0
5151 }
5252 let HighestPushValue = match getInteger(this, "HighestPush") {
5353 case a: Int =>
5454 a
5555 case _ =>
5656 0
5757 }
5858 if ((userWalletGovernBalance > pmt.amount))
5959 then if (if (((pmt.amount + UserLastPushOldValue) > HighestPushValue))
6060 then (pmt.assetId == GovernToken)
6161 else false)
6262 then {
6363 let UserLastPushBlock = (toBase58String(i.caller.bytes) + "_UserLastPushBlock")
6464 let UserLastStakeBlock = (toBase58String(i.caller.bytes) + "_UserLastStakeBlock")
6565 let UserStake = (toBase58String(i.caller.bytes) + "_Staking")
6666 let ContractWalletStakeBalance = assetBalance(this, StakedToken)
6767 let StakeBalance = match getInteger(this, "StakeBalance") {
6868 case a: Int =>
6969 a
7070 case _ =>
7171 0
7272 }
7373 let PrizeAmount = match getInteger(this, "FundBox") {
7474 case a: Int =>
7575 a
7676 case _ =>
7777 0
7878 }
7979 let HeightTransactFundBox = match getInteger(this, "PrizeHeight") {
8080 case a: Int =>
8181 a
8282 case _ =>
8383 0
8484 }
8585 let PrizeHeightValue = if (if ((HeightTransactFundBox == 0))
8686 then (PrizeAmount == 0)
8787 else false)
8888 then 0
8989 else if (if ((HeightTransactFundBox == 0))
9090 then (PrizeAmount != 0)
9191 else false)
9292 then height
9393 else if (if ((HeightTransactFundBox != 0))
9494 then (PrizeAmount != 0)
9595 else false)
9696 then HeightTransactFundBox
9797 else 0
9898 let ActualDelay = match getInteger(this, "Delay") {
9999 case a: Int =>
100100 a
101101 case _ =>
102102 0
103103 }
104104 let HighestPushAddress = match getInteger(this, "HighestPushAddress") {
105105 case a: Int =>
106106 a
107107 case _ =>
108108 0
109109 }
110110 let UserLastPushBlockValue = match getInteger(this, UserLastPushBlock) {
111111 case a: Int =>
112112 a
113113 case _ =>
114114 0
115115 }
116116 let UserLastStakeBlockValue = match getInteger(this, UserLastStakeBlock) {
117117 case a: Int =>
118118 a
119119 case _ =>
120120 0
121121 }
122122 let UserStakeValue = match getInteger(this, UserStake) {
123123 case a: Int =>
124124 a
125125 case _ =>
126126 0
127127 }
128128 let DevBoxBalance = match getInteger(this, "DevBox") {
129129 case a: Int =>
130130 a
131131 case _ =>
132132 0
133133 }
134134 let DevBoxAmount = (DevBoxBalance + ((pmt.amount * 5) / 1000))
135135 let UserPushvalue = (pmt.amount + UserLastPushOldValue)
136136 let NewDelay = if (if ((height > ((PrizeHeightValue + ActualDelay) + WaitTime)))
137137 then (HighestPushValue > 0)
138138 else false)
139139 then 0
140140 else (ActualDelay + DelayAfterPush)
141141 let PrizeHeightValueNew = if (if ((height > ((PrizeHeightValue + NewDelay) + WaitTime)))
142142 then (HighestPushValue > 0)
143143 else false)
144144 then height
145145 else PrizeHeightValue
146146 if (if ((UserPushvalue > 0))
147147 then ((height - UserLastStakeBlockValue) > minStakeBlock)
148148 else false)
149149 then if (((height - UserLastPushBlockValue) > minPushBlock))
150150 then if ((UserStakeValue > 0))
151151 then if ((UserPushvalue > HighestPushValue))
152152 then if ((PrizeAmount > 0))
153- then if (if (if (if (((PrizeHeightValueNew + NewDelay) > height))
153+ then if (if (if (if (((PrizeHeightValueNew + NewDelay) >= height))
154154 then true
155- else (height > ((PrizeHeightValueNew + NewDelay) + WaitTime)))
155+ else (height >= ((PrizeHeightValueNew + NewDelay) + WaitTime)))
156156 then (HighestPushValue > 0)
157157 else false)
158158 then true
159159 else (HighestPushValue == 0))
160160 then if ((UserRefsNumValue >= minref))
161161 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)])
162- else throw("You have to have 10 referrals already staking for a minimum of 10 days, to push")
162+ else throw((("You have to have " + toString(minref)) + " referrals already staking for a minimum of 10 days, to push"))
163163 else {
164164 let txt = if ((HighestPushValue > 0))
165165 then "You cannot Push after rewarding Prize and before One day has passed after award"
166166 else "Unexpected error"
167167 throw(txt)
168168 }
169169 else throw("You cannot push before the reward is unlocked, no reward has been detected yet")
170170 else throw("Your push in troikan token, should be Higher than last Highest Push")
171171 else throw("To be able to participate in Pushing for the reward you need to Stake ASIMIs in the dApp")
172172 else throw("You have to wait 10min before you can make a new Push")
173173 else throw(("Your Push dot not comply one of the following conditions: " + "1. Positive Value for Push in Troikan Toke
174174 2. Must Staked ASIMI Token for a minimum of week "))
175175 }
176176 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"))
177177 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 !")
178178 }
179179
180180
181181
182182 @Callable(i)
183183 func Stake () = {
184- let StakedToken = base58'Hoej8L1ezqQY4Miex4Z4J7uJ33LCdcubV3DsubGHEqWP'
185- let GovernToken = base58'32rMCTpxTer5LQz6HTd3dGpaFXfcaLv56k73YAzEVwsh'
184+ let StakedToken = base58'EbLVSrAi6vS3AkLwBinzZCvAXP2yYiFJEzj1MBVHcwZ5'
185+ let GovernToken = base58'DHZVHe6JzD61zTwH4ZnHnmo3w7oKGABXwgBt4S8KkzUP'
186186 let pmt = extract(i.payment)
187187 if (if ((pmt.amount > 0))
188188 then (pmt.assetId == StakedToken)
189189 else false)
190190 then {
191191 let GovernTokenSmartContractBalance = assetBalance(this, GovernToken)
192192 let UserAPY = (toBase58String(i.caller.bytes) + "_APY")
193193 let UserPush = (toBase58String(i.caller.bytes) + "_Push")
194194 let UserStakedTokenKey = (toBase58String(i.caller.bytes) + "_Staking")
195195 let UserGovernTokenKey = (toBase58String(i.caller.bytes) + "_Earnings")
196196 let UserLastStakeBlock = (toBase58String(i.caller.bytes) + "_UserLastStakeBlock")
197197 let UserStakeTransactionsKey = (toBase58String(i.caller.bytes) + "_StakedTransactions")
198198 let AddressHeight = (toBase58String(i.caller.bytes) + "_PrizeHeight")
199199 let UserStakeTransactions = match getInteger(this, UserStakeTransactionsKey) {
200200 case a: Int =>
201201 a
202202 case _ =>
203203 0
204204 }
205- let MaxStakedDepositValue = match getInteger(this, "MaxStakedDepositValue") {
205+ let MaxDepositer = getStringValue(this, "MaxDepositer")
206+ let MaxDepositBlock = match getInteger(this, "MaxDepositBlock") {
206207 case a: Int =>
207208 a
208209 case _ =>
209210 0
210211 }
211- let MaxStakedDepositNewValue = if ((pmt.amount > MaxStakedDepositValue))
212+ let MaxDeposit = match getInteger(this, "MaxDeposit") {
213+ case a: Int =>
214+ a
215+ case _ =>
216+ 0
217+ }
218+ let MaxDepositerValue = if ((pmt.amount > MaxDeposit))
219+ then toBase58String(i.caller.bytes)
220+ else MaxDepositer
221+ let MaxDepositValue = if ((pmt.amount > MaxDeposit))
212222 then pmt.amount
213- else MaxStakedDepositValue
214- let MaxStakedDepositUser = getStringValue(this, "MaxStakedDepositUser")
215- let MaxStakedDepositNewUser = if ((pmt.amount > MaxStakedDepositValue))
216- then pmt.amount
217- else MaxStakedDepositUser
223+ else MaxDeposit
224+ let MaxDepositBlockValue = if ((pmt.amount > MaxDeposit))
225+ then height
226+ else MaxDepositBlock
218227 let UserPushValue = match getInteger(this, UserPush) {
219228 case a: Int =>
220229 a
221230 case _ =>
222231 0
223232 }
224233 let UserLastStakeBlockValue = match getInteger(this, UserLastStakeBlock) {
225234 case a: Int =>
226235 a
227236 case _ =>
228237 0
229238 }
230239 let UserLastStakeBlockNewValue = if ((UserLastStakeBlockValue == 0))
231240 then height
232241 else UserLastStakeBlockValue
233242 let NewUserStakeTransactions = (UserStakeTransactions + 1)
234243 let currentAmountStakedToken = match getInteger(this, UserStakedTokenKey) {
235244 case a: Int =>
236245 a
237246 case _ =>
238247 0
239248 }
240249 let newAmountStakedToken = (currentAmountStakedToken + pmt.amount)
241250 let ContractWalletStakeBalance = assetBalance(this, StakedToken)
242251 let StakeBalance = match getInteger(this, "StakeBalance") {
243252 case a: Int =>
244253 a
245254 case _ =>
246255 0
247256 }
248257 let StakeBalanceAmount = (StakeBalance + pmt.amount)
249258 let PrizeAmount = match getInteger(this, "FundBox") {
250259 case a: Int =>
251260 a
252261 case _ =>
253262 0
254263 }
255264 let currentAmountGovernToken = match getInteger(this, UserGovernTokenKey) {
256265 case a: Int =>
257266 a
258267 case _ =>
259268 0
260269 }
261270 let HeightTransactFundBox = match getInteger(this, "PrizeHeight") {
262271 case a: Int =>
263272 a
264273 case _ =>
265274 0
266275 }
267276 let PrizeHeightValue = if (if ((HeightTransactFundBox == 0))
268277 then (PrizeAmount == 0)
269278 else false)
270279 then 0
271280 else if (if ((HeightTransactFundBox == 0))
272281 then (PrizeAmount != 0)
273282 else false)
274283 then height
275284 else if (if ((HeightTransactFundBox != 0))
276285 then (PrizeAmount != 0)
277286 else false)
278287 then HeightTransactFundBox
279288 else 0
280289 if ((100000000 > GovernTokenSmartContractBalance))
281290 then throw("No enough GovernToken In Contract, Please deposit GovernTokens")
282291 else {
283292 let Reward = if ((StakeBalance == 0))
284293 then 10000
285294 else if ((NewUserStakeTransactions > 10))
286295 then ((10000 * NewUserStakeTransactions) * (1 + (newAmountStakedToken / StakeBalance)))
287296 else (10000 * (1 + (newAmountStakedToken / StakeBalance)))
288297 let UserAPYValue = if ((currentAmountGovernToken > 0))
289298 then ((100 * Reward) / currentAmountGovernToken)
290299 else 0
291300 let newAmountGovernToken = (currentAmountGovernToken + Reward)
292- ScriptResult(WriteSet([DataEntry(UserGovernTokenKey, newAmountGovernToken), DataEntry(UserStakedTokenKey, newAmountStakedToken), DataEntry(UserStakeTransactionsKey, NewUserStakeTransactions), DataEntry("StakeBalance", StakeBalanceAmount), DataEntry("PrizeHeight", PrizeHeightValue), DataEntry(UserAPY, UserAPYValue), DataEntry(UserLastStakeBlock, UserLastStakeBlockNewValue), DataEntry(UserPush, UserPushValue), DataEntry("MaxStakedDepositValue", MaxStakedDepositNewValue), DataEntry("MaxStakedDepositUser", MaxStakedDepositNewUser)]), TransferSet([ScriptTransfer(i.caller, Reward, GovernToken)]))
301+ ScriptResult(WriteSet([DataEntry(UserGovernTokenKey, newAmountGovernToken), DataEntry(UserStakedTokenKey, newAmountStakedToken), DataEntry(UserStakeTransactionsKey, NewUserStakeTransactions), DataEntry("StakeBalance", StakeBalanceAmount), DataEntry("PrizeHeight", PrizeHeightValue), DataEntry(UserAPY, UserAPYValue), DataEntry(UserLastStakeBlock, UserLastStakeBlockNewValue), DataEntry(UserPush, UserPushValue)]), TransferSet([ScriptTransfer(i.caller, Reward, GovernToken)]))
293302 }
294303 }
295304 else throw("Can deposit only StakeToken")
296305 }
297306
298307
299308
300309 @Callable(i)
301310 func WithdrawStakedFunds (amount) = {
302- let StakedToken = base58'Hoej8L1ezqQY4Miex4Z4J7uJ33LCdcubV3DsubGHEqWP'
303- let GovernToken = base58'32rMCTpxTer5LQz6HTd3dGpaFXfcaLv56k73YAzEVwsh'
311+ let StakedToken = base58'EbLVSrAi6vS3AkLwBinzZCvAXP2yYiFJEzj1MBVHcwZ5'
312+ let GovernToken = base58'DHZVHe6JzD61zTwH4ZnHnmo3w7oKGABXwgBt4S8KkzUP'
304313 let UserLastStakeBlock = (toBase58String(i.caller.bytes) + "_UserLastStakeBlock")
305314 let UserStakedTokenKey = (toBase58String(i.caller.bytes) + "_Staking")
306315 let UserGovernTokenKey = ((toBase58String(i.caller.bytes) + "_") + toBase58String(GovernToken))
307316 let ContractWalletStakeBalance = assetBalance(this, StakedToken)
308317 let UserLastStakeBlockValue = match getInteger(this, UserLastStakeBlock) {
309318 case a: Int =>
310319 a
311320 case _ =>
312321 0
313322 }
314323 let StakeBalance = match getInteger(this, "StakeBalance") {
315324 case a: Int =>
316325 a
317326 case _ =>
318327 0
319328 }
320329 let PrizeAmount = match getInteger(this, "FundBox") {
321330 case a: Int =>
322331 a
323332 case _ =>
324333 0
325334 }
326335 let HeightTransactFundBox = match getInteger(this, "PrizeHeight") {
327336 case a: Int =>
328337 a
329338 case _ =>
330339 0
331340 }
332341 let PrizeHeightValue = if (if ((HeightTransactFundBox == 0))
333342 then (PrizeAmount == 0)
334343 else false)
335344 then 0
336345 else if (if ((HeightTransactFundBox == 0))
337346 then (PrizeAmount != 0)
338347 else false)
339348 then height
340349 else if (if ((HeightTransactFundBox != 0))
341350 then (PrizeAmount != 0)
342351 else false)
343352 then HeightTransactFundBox
344353 else 0
345354 let currentKey = toBase58String(i.caller.bytes)
346355 let currentAmount = match getInteger(this, UserStakedTokenKey) {
347356 case a: Int =>
348357 a
349358 case _ =>
350359 0
351360 }
352361 let newAmount = (currentAmount - amount)
353362 let StakeBalanceAmount = (StakeBalance - amount)
354363 let UserLastStakeBlockNewValue = if ((StakeBalanceAmount == 0))
355364 then 0
356365 else UserLastStakeBlockValue
357366 if ((0 > amount))
358367 then throw("Can't withdraw negative amount")
359368 else if ((0 > newAmount))
360369 then throw(("User cannot withdraw more than deposited funds, Your deposit is: " + toString((currentAmount / 100000000))))
361370 else if ((100000000 > assetBalance(this, GovernToken)))
362371 then throw(("Not enough Troika In Contract: " + toString((assetBalance(this, GovernToken) / 100000000))))
363372 else ScriptResult(WriteSet([DataEntry(UserGovernTokenKey, 100000000), DataEntry(UserStakedTokenKey, newAmount), DataEntry("StakeBalance", StakeBalanceAmount), DataEntry("PrizeHeight", PrizeHeightValue), DataEntry(UserLastStakeBlock, UserLastStakeBlockNewValue)]), TransferSet([ScriptTransfer(i.caller, 100000000, GovernToken), ScriptTransfer(i.caller, amount, StakedToken)]))
364373 }
365374
366375
367376
368377 @Callable(i)
369378 func WithdrawBigStakeReward () = {
370- let StakedToken = base58'Hoej8L1ezqQY4Miex4Z4J7uJ33LCdcubV3DsubGHEqWP'
371- let GovernToken = base58'32rMCTpxTer5LQz6HTd3dGpaFXfcaLv56k73YAzEVwsh'
379+ let StakedToken = base58'EbLVSrAi6vS3AkLwBinzZCvAXP2yYiFJEzj1MBVHcwZ5'
380+ let GovernToken = base58'DHZVHe6JzD61zTwH4ZnHnmo3w7oKGABXwgBt4S8KkzUP'
372381 let LastBigStakerRewardBlock = (toBase58String(i.caller.bytes) + "LastBigStakerRewardBlock")
373382 let BigStakerReward = (toBase58String(i.caller.bytes) + "_BigStaker")
374383 let UserGovernTokenKey = (toBase58String(i.caller.bytes) + "_Earnings")
375384 let LimiWithdrawReward = 10
376385 let UserGovernTokenAmount = match getInteger(this, UserGovernTokenKey) {
377386 case a: Int =>
378387 a
379388 case _ =>
380389 0
381390 }
382391 let LastBigStakerRewardBlockValue = match getInteger(this, LastBigStakerRewardBlock) {
383392 case a: Int =>
384393 a
385394 case _ =>
386395 0
387396 }
388397 let BigStakerRewardTotalValue = match getInteger(this, "BigStakerRewardTotal") {
389398 case a: Int =>
390399 a
391400 case _ =>
392401 0
393402 }
394403 let PrizeAmount = match getInteger(this, "FundBox") {
395404 case a: Int =>
396405 a
397406 case _ =>
398407 0
399408 }
400409 let HeightTransactFundBox = match getInteger(this, "PrizeHeight") {
401410 case a: Int =>
402411 a
403412 case _ =>
404413 0
405414 }
406415 let PrizeHeightValue = if (if ((HeightTransactFundBox == 0))
407416 then (PrizeAmount == 0)
408417 else false)
409418 then 0
410419 else if (if ((HeightTransactFundBox == 0))
411420 then (PrizeAmount != 0)
412421 else false)
413422 then height
414423 else if (if ((HeightTransactFundBox != 0))
415424 then (PrizeAmount != 0)
416425 else false)
417426 then HeightTransactFundBox
418427 else 0
419428 let currentKey = toBase58String(i.caller.bytes)
420429 let amount = match getInteger(this, BigStakerReward) {
421430 case a: Int =>
422431 a
423432 case _ =>
424433 0
425434 }
426435 let StakeBalanceAmount = (BigStakerRewardTotalValue - amount)
427436 let BigStakerRewardTax = if (((height - LastBigStakerRewardBlockValue) >= LimiWithdrawReward))
428437 then (1 * 100000000)
429438 else (((UserGovernTokenAmount / 100) * LimiWithdrawReward) / (height - LastBigStakerRewardBlockValue))
430439 if ((0 > amount))
431440 then throw("Can't withdraw negative amount ")
432441 else if (((1000 * 100000000) > UserGovernTokenAmount))
433442 then throw(("Not enough Earned Troikan Tokens to do transaction, you need at least 1000 Troikans, you have: " + toString((assetBalance(this, GovernToken) / 100000000))))
434443 else if ((BigStakerRewardTax > (1 * 100000000)))
435444 then throw(("Be careful it will cost you: " + toString((BigStakerRewardTax / 100000000))))
436445 else ScriptResult(WriteSet([DataEntry(BigStakerReward, 0), DataEntry("BigStakerRewardTotal", StakeBalanceAmount), DataEntry(UserGovernTokenKey, (UserGovernTokenAmount - BigStakerRewardTax)), DataEntry("PrizeHeight", PrizeHeightValue), DataEntry(LastBigStakerRewardBlock, height)]), TransferSet([ScriptTransfer(i.caller, amount, StakedToken)]))
437446 }
438447
439448
440449
441450 @Callable(i)
442451 func HarvestGovernToiken (amount) = {
443- let StakedToken = base58'Hoej8L1ezqQY4Miex4Z4J7uJ33LCdcubV3DsubGHEqWP'
444- let GovernToken = base58'32rMCTpxTer5LQz6HTd3dGpaFXfcaLv56k73YAzEVwsh'
452+ let StakedToken = base58'EbLVSrAi6vS3AkLwBinzZCvAXP2yYiFJEzj1MBVHcwZ5'
453+ let GovernToken = base58'DHZVHe6JzD61zTwH4ZnHnmo3w7oKGABXwgBt4S8KkzUP'
445454 let ContractWalletStakeBalance = assetBalance(this, StakedToken)
446455 let UserGovernTokenKey = (toBase58String(i.caller.bytes) + "_Earnings")
447456 let StakeBalance = match getInteger(this, "StakeBalance") {
448457 case a: Int =>
449458 a
450459 case _ =>
451460 0
452461 }
453462 let PrizeAmount = match getInteger(this, "FundBox") {
454463 case a: Int =>
455464 a
456465 case _ =>
457466 0
458467 }
459468 let HeightTransactFundBox = match getInteger(this, "PrizeHeight") {
460469 case a: Int =>
461470 a
462471 case _ =>
463472 0
464473 }
465474 let PrizeHeightValue = if (if ((HeightTransactFundBox == 0))
466475 then (PrizeAmount == 0)
467476 else false)
468477 then 0
469478 else if (if ((HeightTransactFundBox == 0))
470479 then (PrizeAmount != 0)
471480 else false)
472481 then height
473482 else if (if ((HeightTransactFundBox != 0))
474483 then (PrizeAmount != 0)
475484 else false)
476485 then HeightTransactFundBox
477486 else 0
478487 let currentKey = toBase58String(i.caller.bytes)
479488 let currentAmount = match getInteger(this, UserGovernTokenKey) {
480489 case a: Int =>
481490 a
482491 case _ =>
483492 0
484493 }
485494 let newAmount = (currentAmount - amount)
486495 if ((0 > amount))
487496 then throw("Can't withdraw negative amount")
488497 else if ((0 > newAmount))
489498 then throw(("User cannot withdraw more than deposited funds, Your deposit is: " + toString((currentAmount / 100000000))))
490499 else ScriptResult(WriteSet([DataEntry(UserGovernTokenKey, newAmount), DataEntry("PrizeHeight", PrizeHeightValue)]), TransferSet([ScriptTransfer(i.caller, amount, GovernToken)]))
491500 }
492501
493502
494503
495504 @Callable(i)
496505 func delayprize () = {
497- let StakedToken = base58'Hoej8L1ezqQY4Miex4Z4J7uJ33LCdcubV3DsubGHEqWP'
498- let GovernToken = base58'32rMCTpxTer5LQz6HTd3dGpaFXfcaLv56k73YAzEVwsh'
506+ let StakedToken = base58'EbLVSrAi6vS3AkLwBinzZCvAXP2yYiFJEzj1MBVHcwZ5'
507+ let GovernToken = base58'DHZVHe6JzD61zTwH4ZnHnmo3w7oKGABXwgBt4S8KkzUP'
499508 let DelayDays = (1 * 1440)
500509 let UserGovernTokenKey = ((toBase58String(i.caller.bytes) + "_") + toBase58String(GovernToken))
501510 let UserWalletSGovernBalance = assetBalance(Address(i.caller.bytes), GovernToken)
502511 let ContractWalletStakeBalance = assetBalance(this, StakedToken)
503512 let StakeBalance = match getInteger(this, "StakeBalance") {
504513 case a: Int =>
505514 a
506515 case _ =>
507516 0
508517 }
509518 let PrizeAmount = match getInteger(this, "FundBox") {
510519 case a: Int =>
511520 a
512521 case _ =>
513522 0
514523 }
515524 let HeightTransactFundBox = match getInteger(this, "PrizeHeight") {
516525 case a: Int =>
517526 a
518527 case _ =>
519528 0
520529 }
521530 let PrizeHeightValue = if (if ((HeightTransactFundBox == 0))
522531 then (PrizeAmount == 0)
523532 else false)
524533 then 0
525534 else if (if ((HeightTransactFundBox == 0))
526535 then (PrizeAmount != 0)
527536 else false)
528537 then height
529538 else if (if ((HeightTransactFundBox != 0))
530539 then (PrizeAmount != 0)
531540 else false)
532541 then HeightTransactFundBox
533542 else 0
534543 let ActualDelay = match getInteger(this, "Delay") {
535544 case a: Int =>
536545 a
537546 case _ =>
538547 0
539548 }
540549 let ActualDelayCost = match getInteger(this, "DelayCost") {
541550 case a: Int =>
542551 a
543552 case _ =>
544553 10
545554 }
546555 let pmt = extract(i.payment)
547556 let DevBoxBalance = match getInteger(this, "DevBox") {
548557 case a: Int =>
549558 a
550559 case _ =>
551560 0
552561 }
553562 if (if (isDefined(pmt.assetId))
554563 then (extract(pmt.assetId) == GovernToken)
555564 else false)
556565 then if ((PrizeAmount > 0))
557566 then {
558567 let UserGovernTokenAmount = pmt.amount
559568 let DevBoxAmount = (DevBoxBalance + ((pmt.amount * 5) / 1000))
560569 let NewDelayCost = if ((ActualDelayCost == 0))
561570 then 1000000000
562571 else (2 * ActualDelayCost)
563572 if ((UserGovernTokenAmount >= NewDelayCost))
564573 then {
565574 let NewDelay = (ActualDelay + DelayDays)
566575 WriteSet([DataEntry("Delay", NewDelay), DataEntry("DelayCost", NewDelayCost), DataEntry("PrizeHeight", PrizeHeightValue), DataEntry("DevBox", DevBoxAmount)])
567576 }
568577 else throw((("To delay the release of the reward ONE DAY later than expected, you need " + toString(NewDelayCost)) + "TROIKAs"))
569578 }
570579 else throw("You cannot delay the reward before reward is received! Please wait until a reward is available")
571580 else throw("Can Use only Troika Token to Delay Reward")
572581 }
573582
574583
575584
576585 @Callable(i)
577586 func ClaimPrize () = {
578- let StakedToken = base58'Hoej8L1ezqQY4Miex4Z4J7uJ33LCdcubV3DsubGHEqWP'
579- let GovernToken = base58'32rMCTpxTer5LQz6HTd3dGpaFXfcaLv56k73YAzEVwsh'
587+ let StakedToken = base58'EbLVSrAi6vS3AkLwBinzZCvAXP2yYiFJEzj1MBVHcwZ5'
588+ let GovernToken = base58'DHZVHe6JzD61zTwH4ZnHnmo3w7oKGABXwgBt4S8KkzUP'
580589 let UserStakedTokenKey = (toBase58String(i.caller.bytes) + "_Staking")
581590 let UserPush = (toBase58String(i.caller.bytes) + "_Push")
582591 let UserLastStakeBlock = (toBase58String(i.caller.bytes) + "_UserLastStakeBlock")
583592 let minStakeBlock = 7
584- let minref = 0
593+ let minref = 1
585594 let ContractGovTokenBalance = assetBalance(this, GovernToken)
586595 let ContractWalletStakeBalance = assetBalance(this, StakedToken)
587596 let StakeBalance = match getInteger(this, "StakeBalance") {
588597 case a: Int =>
589598 a
590599 case _ =>
591600 0
592601 }
593602 let PrizeAmount = match getInteger(this, "FundBox") {
594603 case a: Int =>
595604 a
596605 case _ =>
597606 0
598607 }
599608 let UserPushValue = match getInteger(this, UserPush) {
600609 case a: Int =>
601610 a
602611 case _ =>
603612 0
604613 }
605614 let UserLastStakeBlockValue = match getInteger(this, UserLastStakeBlock) {
606615 case a: Int =>
607616 a
608617 case _ =>
609618 0
610619 }
611620 let UserStakedTokenAmount = match getInteger(this, UserStakedTokenKey) {
612621 case a: Int =>
613622 a
614623 case _ =>
615624 0
616625 }
617626 let ActualDelay = match getInteger(this, "Delay") {
618627 case a: Int =>
619628 a
620629 case _ =>
621630 0
622631 }
623632 let PrizeWinner = getStringValue(this, "HighestPushAddress")
624633 let PrizeHeight = match getInteger(this, "PrizeHeight") {
625634 case a: Int =>
626635 a
627636 case _ =>
628637 0
629638 }
630639 let HighestPushValue = match getInteger(this, "HighestPush") {
631640 case a: Int =>
632641 a
633642 case _ =>
634643 0
635644 }
636645 let UserRefsNum = (toBase58String(i.caller.bytes) + "_refs")
637646 let UserRefsNumValue = match getInteger(this, UserRefsNum) {
638647 case a: Int =>
639648 a
640649 case _ =>
641650 0
642651 }
643652 if (if ((PrizeAmount == 0))
644653 then true
645654 else (10000000000 > ContractGovTokenBalance))
646655 then throw("No prize to Claim or Not enough Govern Token en Contract (Min 100 Troika)")
647656 else if ((toBase58String(i.caller.bytes) != PrizeWinner))
648657 then throw("You are not the winner hence cannot claim the reward ")
649658 else if (if ((100000000 > UserStakedTokenAmount))
650659 then (minStakeBlock > UserLastStakeBlockValue)
651660 else false)
652661 then throw("You have to Stake ASIMI Token to claim reward ")
653662 else if (if ((height > (PrizeHeight + ActualDelay)))
654663 then (UserPushValue >= HighestPushValue)
655664 else false)
656665 then if ((UserRefsNumValue >= minref))
657666 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)]))
658667 else throw("You have to have 10 referrals already staking for a minimum of 10 days to Claim the prize")
659668 else throw("You have to be the user with the highest Push and wait till countown is finished, to claim Reward")
660669 }
661670
662671
663672
664673 @Callable(i)
665674 func Addmentor (Mentor) = {
666- let StakedToken = base58'Hoej8L1ezqQY4Miex4Z4J7uJ33LCdcubV3DsubGHEqWP'
667- let GovernToken = base58'32rMCTpxTer5LQz6HTd3dGpaFXfcaLv56k73YAzEVwsh'
675+ let StakedToken = base58'EbLVSrAi6vS3AkLwBinzZCvAXP2yYiFJEzj1MBVHcwZ5'
676+ let GovernToken = base58'DHZVHe6JzD61zTwH4ZnHnmo3w7oKGABXwgBt4S8KkzUP'
668677 let UserMentorAddress = (toBase58String(i.caller.bytes) + "_Mentor")
669678 if ((Mentor != ""))
670679 then WriteSet([DataEntry(UserMentorAddress, Mentor)])
671680 else throw("Mentor's Address cannot be empty")
672681 }
673682
674683

github/deemru/w8io/169f3d6 
92.32 ms