tx · 5PX9xsJRFcgKUuk4wMCczL6a9GYt8SL7RbhQoY5M8rmr

3N9evuqxGecMq9hBmpdJu2VkMzdR5VNVrvK:  -0.01000000 Waves

2021.06.04 22:58 [1556077] smart account 3N9evuqxGecMq9hBmpdJu2VkMzdR5VNVrvK > SELF 0.00000000 Waves

{ "type": 13, "id": "5PX9xsJRFcgKUuk4wMCczL6a9GYt8SL7RbhQoY5M8rmr", "fee": 1000000, "feeAssetId": null, "timestamp": 1622836686680, "version": 2, "chainId": 84, "sender": "3N9evuqxGecMq9hBmpdJu2VkMzdR5VNVrvK", "senderPublicKey": "AHY8zupoYc6HPJ5fh1gQiGE9bNZSeifFbcQQ89okxVug", "proofs": [ "kFmnxkSHENgf3pWyPUyqRQEiWQMfRPLTAnuGTrgSnS7kJEo58cWg51ucKqtcwxCRZtCjC5vFin7YqFEN7D2uA5s" ], "script": "base64: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BQAAABBIaWdoZXN0UHVzaFZhbHVlAAAAAAAAAAAAAwkAAGcAAAACBQAAABBVc2VyUmVmc051bVZhbHVlBQAAAAZtaW5yZWYJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAACFVzZXJQdXNoBQAAAA1Vc2VyUHVzaHZhbHVlCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACAgAAABJIaWdoZXN0UHVzaEFkZHJlc3MJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgIAAAALSGlnaGVzdFB1c2gFAAAADVVzZXJQdXNodmFsdWUJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAAEVVzZXJMYXN0UHVzaEJsb2NrBQAAAAZoZWlnaHQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAICAAAAC1ByaXplSGVpZ2h0BQAAABNQcml6ZUhlaWdodFZhbHVlTmV3CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACAgAAAAVEZWxheQUAAAAITmV3RGVsYXkJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAICAAAABkRldkJveAUAAAAMRGV2Qm94QW1vdW50BQAAAANuaWwJAAACAAAAAQIAAABPWW91IGhhdmUgdG8gaGF2ZSAxMCByZWZlcnJhbHMgYWxyZWFkeSBzdGFraW5nIGZvciBhIG1pbmltdW0gb2YgMTAgZGF5cywgdG8gcHVzaAQAAAADdHh0AwkAAGYAAAACBQAAABBIaWdoZXN0UHVzaFZhbHVlAAAAAAAAAAAAAgAAAE9Zb3UgY2Fubm90IFB1c2ggYWZ0ZXIgcmV3YXJkaW5nIFByaXplIGFuZCBiZWZvcmUgT25lIGRheSBoYXMgcGFzc2VkIGFmdGVyIGF3YXJkAgAAABBVbmV4cGVjdGVkIGVycm9yCQAAAgAAAAEFAAAAA3R4dAkAAAIAAAABAgAAAE5Zb3UgY2Fubm90IHB1c2ggYmVmb3JlIHRoZSByZXdhcmQgaXMgdW5sb2NrZWQsIG5vIHJld2FyZCBoYXMgYmVlbiBkZXRlY3RlZCB5ZXQJAAACAAAAAQIAAABDWW91ciBwdXNoIGluIHRyb2lrYW4gdG9rZW4sIHNob3VsZCBiZSBIaWdoZXIgdGhhbiBsYXN0IEhpZ2hlc3QgUHVzaAkAAAIAAAABAgAAAFhUbyBiZSBhYmxlIHRvIHBhcnRpY2lwYXRlIGluIFB1c2hpbmcgZm9yIHRoZSByZXdhcmQgeW91IG5lZWQgdG8gU3Rha2UgQVNJTUlzIGluIHRoZSBkQXBwCQAAAgAAAAECAAAANVlvdSBoYXZlIHRvIHdhaXQgMTBtaW4gYmVmb3JlIHlvdSBjYW4gbWFrZSBhIG5ldyBQdXNoCQAAAgAAAAEJAAEsAAAAAgIAAAA6WW91ciBQdXNoIGRvdCBub3QgY29tcGx5IG9uZSBvZiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6IAIAAABdMS4gUG9zaXRpdmUgVmFsdWUgZm9yIFB1c2ggaW4gVHJvaWthbiBUb2tlCiAyLiBNdXN0IFN0YWtlZCBBU0lNSSBUb2tlbiBmb3IgYSBtaW5pbXVtIG9mIHdlZWsgCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACAgAAAHZDYW4gZGVwb3NpdCBvbmx5IHBvc2l0aXZlIGFtb3VudHMgb2YgVHJvaWthbiBUb2tlbiwgb3IgQ2hlY2sgeW91ciBXYWxsZXQgYmFsYW5jZSBpbiBUcm9pa2EsIHlvdSBzaG91bGQgaGF2ZSBtb3JlIHRoYW4gCQABpAAAAAEFAAAAEEhpZ2hlc3RQdXNoVmFsdWUCAAAACCB0byBwdXNoCQAAAgAAAAECAAAApFlvdSBkbyBub3QgaGF2ZSBlbm91Z2ggVHJvaWthbiBUb2tlbnMgaW4geW91ciBXYWxsZXQgQmFsYW5jZSwgUGxlYXNlIEhhcnZlc3QgaWYgeW91IGhhdmUgZWFybmVkIFRyb2lrYW4gd2FsbGV0IG9yIHRyYW5zZmVyIHRvIHlvdXIgd2FsbGV0IG5lY2Vzc2FyeSBUcm9pa2FuIGFtb3VudCAhAAAAAWkBAAAABVN0YWtlAAAAAAQAAAALU3Rha2VkVG9rZW4BAAAAILXRKGG85gSnPN40vyincnte9/w4CJZnKBhuOOwELCGyBAAAAAtHb3Zlcm5Ub2tlbgEAAAAgEID4OLobvW7l4Eafs479e9fJOrvsYRoAST8NKMW+XbkEAAAAA3BtdAkBAAAAB2V4dHJhY3QAAAABCAUAAAABaQAAAAdwYXltZW50AwMJAABmAAAAAggFAAAAA3BtdAAAAAZhbW91bnQAAAAAAAAAAAAJAAAAAAAAAggFAAAAA3BtdAAAAAdhc3NldElkBQAAAAtTdGFrZWRUb2tlbgcEAAAAH0dvdmVyblRva2VuU21hcnRDb250cmFjdEJhbGFuY2UJAAPrAAAAAgUAAAAEdGhpcwUAAAALR292ZXJuVG9rZW4EAAAAB1VzZXJBUFkJAAEsAAAAAgkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzAgAAAARfQVBZBAAAAAhVc2VyUHVzaAkAASwAAAACCQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMCAAAABV9QdXNoBAAAABJVc2VyU3Rha2VkVG9rZW5LZXkJAAEsAAAAAgkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzAgAAAAhfU3Rha2luZwQAAAASVXNlckdvdmVyblRva2VuS2V5CQABLAAAAAIJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwIAAAAJX0Vhcm5pbmdzBAAAABJVc2VyTGFzdFN0YWtlQmxvY2sJAAEsAAAAAgkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzAgAAABNfVXNlckxhc3RTdGFrZUJsb2NrBAAAABhVc2VyU3Rha2VUcmFuc2FjdGlvbnNLZXkJAAEsAAAAAgkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzAgAAABNfU3Rha2VkVHJhbnNhY3Rpb25zBAAAAA1BZGRyZXNzSGVpZ2h0CQABLAAAAAIJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwIAAAAMX1ByaXplSGVpZ2h0BAAAABVVc2VyU3Rha2VUcmFuc2FjdGlvbnMEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwUAAAAYVXNlclN0YWtlVHJhbnNhY3Rpb25zS2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAADVVzZXJQdXNoVmFsdWUEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwUAAAAIVXNlclB1c2gDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAXVXNlckxhc3RTdGFrZUJsb2NrVmFsdWUEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwUAAAASVXNlckxhc3RTdGFrZUJsb2NrAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAAGlVzZXJMYXN0U3Rha2VCbG9ja05ld1ZhbHVlAwkAAAAAAAACBQAAABdVc2VyTGFzdFN0YWtlQmxvY2tWYWx1ZQAAAAAAAAAAAAUAAAAGaGVpZ2h0BQAAABdVc2VyTGFzdFN0YWtlQmxvY2tWYWx1ZQQAAAAYTmV3VXNlclN0YWtlVHJhbnNhY3Rpb25zCQAAZAAAAAIFAAAAFVVzZXJTdGFrZVRyYW5zYWN0aW9ucwAAAAAAAAAAAQQAAAAYY3VycmVudEFtb3VudFN0YWtlZFRva2VuBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMFAAAAElVzZXJTdGFrZWRUb2tlbktleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAABRuZXdBbW91bnRTdGFrZWRUb2tlbgkAAGQAAAACBQAAABhjdXJyZW50QW1vdW50U3Rha2VkVG9rZW4IBQAAAANwbXQAAAAGYW1vdW50BAAAABpDb250cmFjdFdhbGxldFN0YWtlQmFsYW5jZQkAA+sAAAACBQAAAAR0aGlzBQAAAAtTdGFrZWRUb2tlbgQAAAAMU3Rha2VCYWxhbmNlBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMCAAAADFN0YWtlQmFsYW5jZQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAABJTdGFrZUJhbGFuY2VBbW91bnQJAABkAAAAAgUAAAAMU3Rha2VCYWxhbmNlCAUAAAADcG10AAAABmFtb3VudAQAAAALUHJpemVBbW91bnQEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwIAAAAHRnVuZEJveAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAABhjdXJyZW50QW1vdW50R292ZXJuVG9rZW4EAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwUAAAASVXNlckdvdmVyblRva2VuS2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAAFUhlaWdodFRyYW5zYWN0RnVuZEJveAQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzAgAAAAtQcml6ZUhlaWdodAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAABBQcml6ZUhlaWdodFZhbHVlAwMJAAAAAAAAAgUAAAAVSGVpZ2h0VHJhbnNhY3RGdW5kQm94AAAAAAAAAAAACQAAAAAAAAIFAAAAC1ByaXplQW1vdW50AAAAAAAAAAAABwAAAAAAAAAAAAMDCQAAAAAAAAIFAAAAFUhlaWdodFRyYW5zYWN0RnVuZEJveAAAAAAAAAAAAAkBAAAAAiE9AAAAAgUAAAALUHJpemVBbW91bnQAAAAAAAAAAAAHBQAAAAZoZWlnaHQDAwkBAAAAAiE9AAAAAgUAAAAVSGVpZ2h0VHJhbnNhY3RGdW5kQm94AAAAAAAAAAAACQEAAAACIT0AAAACBQAAAAtQcml6ZUFtb3VudAAAAAAAAAAAAAcFAAAAFUhlaWdodFRyYW5zYWN0RnVuZEJveAAAAAAAAAAAAAMJAABmAAAAAgAAAAAABfXhAAUAAAAfR292ZXJuVG9rZW5TbWFydENvbnRyYWN0QmFsYW5jZQkAAAIAAAABAgAAAD5ObyBlbm91Z2ggR292ZXJuVG9rZW4gSW4gQ29udHJhY3QsIFBsZWFzZSBkZXBvc2l0IEdvdmVyblRva2VucwQAAAAGUmV3YXJkAwkAAAAAAAACBQAAAAxTdGFrZUJhbGFuY2UAAAAAAAAAAAAAAAAAAAAAJxADCQAAZgAAAAIFAAAAGE5ld1VzZXJTdGFrZVRyYW5zYWN0aW9ucwAAAAAAAAAACgkAAGgAAAACCQAAaAAAAAIAAAAAAAAAJxAFAAAAGE5ld1VzZXJTdGFrZVRyYW5zYWN0aW9ucwkAAGQAAAACAAAAAAAAAAABCQAAaQAAAAIFAAAAFG5ld0Ftb3VudFN0YWtlZFRva2VuBQAAAAxTdGFrZUJhbGFuY2UJAABoAAAAAgAAAAAAAAAnEAkAAGQAAAACAAAAAAAAAAABCQAAaQAAAAIFAAAAFG5ld0Ftb3VudFN0YWtlZFRva2VuBQAAAAxTdGFrZUJhbGFuY2UEAAAADFVzZXJBUFlWYWx1ZQMJAABmAAAAAgUAAAAYY3VycmVudEFtb3VudEdvdmVyblRva2VuAAAAAAAAAAAACQAAaQAAAAIJAABoAAAAAgAAAAAAAAAAZAUAAAAGUmV3YXJkBQAAABhjdXJyZW50QW1vdW50R292ZXJuVG9rZW4AAAAAAAAAAAAEAAAAFG5ld0Ftb3VudEdvdmVyblRva2VuCQAAZAAAAAIFAAAAGGN1cnJlbnRBbW91bnRHb3Zlcm5Ub2tlbgUAAAAGUmV3YXJkCQEAAAAMU2NyaXB0UmVzdWx0AAAAAgkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAASVXNlckdvdmVyblRva2VuS2V5BQAAABRuZXdBbW91bnRHb3Zlcm5Ub2tlbgkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAASVXNlclN0YWtlZFRva2VuS2V5BQAAABRuZXdBbW91bnRTdGFrZWRUb2tlbgkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAAYVXNlclN0YWtlVHJhbnNhY3Rpb25zS2V5BQAAABhOZXdVc2VyU3Rha2VUcmFuc2FjdGlvbnMJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAICAAAADFN0YWtlQmFsYW5jZQUAAAASU3Rha2VCYWxhbmNlQW1vdW50CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACAgAAAAtQcml6ZUhlaWdodAUAAAAQUHJpemVIZWlnaHRWYWx1ZQkA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", "height": 1556077, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: DgqTWugv3FyBZiqb8ZNkz6t69hr88LeufgeRcGhtt1KJ Next: 7Ze1EbDgLvFoq1uiUuUuExRprkJRmfqhoVKYwWfaPun2 Diff:
OldNewDifferences
414414 then throw("Can't withdraw negative amount ")
415415 else if (((1 * 100000000) > UserGovernTokenAmount))
416416 then throw(("Not enough Earned Troikan Tokens to do transaction, you need at least 300 Troikans, you have: " + toString((assetBalance(this, GovernToken) / 100000000))))
417- else if ((BigStakerRewardTax > (1 * 100000000)))
418- then throw(("Be careful it will cost you: " + toString((BigStakerRewardTax / 100000000))))
419- else ScriptResult(WriteSet([DataEntry(BigStakerReward, 0), DataEntry("BigStakersBalance", StakeBalanceAmount), DataEntry(UserGovernTokenKey, (UserGovernTokenAmount - BigStakerRewardTax)), DataEntry("PrizeHeight", PrizeHeightValue), DataEntry(LastBigStakerRewardBlock, height)]), TransferSet([ScriptTransfer(i.caller, amount, StakedToken)]))
417+ else ScriptResult(WriteSet([DataEntry(BigStakerReward, 0), DataEntry("BigStakersBalance", StakeBalanceAmount), DataEntry(UserGovernTokenKey, (UserGovernTokenAmount - BigStakerRewardTax)), DataEntry("PrizeHeight", PrizeHeightValue), DataEntry(LastBigStakerRewardBlock, height)]), TransferSet([ScriptTransfer(i.caller, amount, StakedToken)]))
420418 }
421419
422420
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'27RauQwTvdbcPqeFkzoTf5WPt3HtEAmRDVxprWUNp6bA'
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 () = {
2929 let StakedToken = base58'DEjmrvdViZH7trtuAqaKQFjNjfbK6D7yMHm18UQ8Hj21'
3030 let GovernToken = base58'27RauQwTvdbcPqeFkzoTf5WPt3HtEAmRDVxprWUNp6bA'
3131 let minPushBlock = 0
3232 let minStakeBlock = (1 * 1)
3333 let DelayAfterPush = 5
3434 let WaitTime = 5
3535 let minref = 0
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 NewDelay = (ActualDelay + DelayAfterPush)
105105 let HighestPushAddress = match getInteger(this, "HighestPushAddress") {
106106 case a: Int =>
107107 a
108108 case _ =>
109109 0
110110 }
111111 let UserLastPushBlockValue = match getInteger(this, UserLastPushBlock) {
112112 case a: Int =>
113113 a
114114 case _ =>
115115 0
116116 }
117117 let UserLastStakeBlockValue = match getInteger(this, UserLastStakeBlock) {
118118 case a: Int =>
119119 a
120120 case _ =>
121121 0
122122 }
123123 let UserStakeValue = match getInteger(this, UserStake) {
124124 case a: Int =>
125125 a
126126 case _ =>
127127 0
128128 }
129129 let DevBoxBalance = match getInteger(this, "DevBox") {
130130 case a: Int =>
131131 a
132132 case _ =>
133133 0
134134 }
135135 let DevBoxAmount = (DevBoxBalance + ((pmt.amount * 5) / 1000))
136136 let UserPushvalue = (pmt.amount + UserLastPushOldValue)
137137 let PrizeHeightValueNew = if (if ((height > ((PrizeHeightValue + NewDelay) + WaitTime)))
138138 then (HighestPushValue > 0)
139139 else false)
140140 then height
141141 else PrizeHeightValue
142142 if (if ((UserPushvalue > 0))
143143 then ((height - UserLastStakeBlockValue) > minStakeBlock)
144144 else false)
145145 then if (((height - UserLastPushBlockValue) > minPushBlock))
146146 then if ((UserStakeValue > 0))
147147 then if ((UserPushvalue > HighestPushValue))
148148 then if ((PrizeAmount > 0))
149149 then if (if (if (if (((PrizeHeightValueNew + NewDelay) > height))
150150 then true
151151 else (height > ((PrizeHeightValueNew + NewDelay) + WaitTime)))
152152 then (HighestPushValue > 0)
153153 else false)
154154 then true
155155 else (HighestPushValue == 0))
156156 then if ((UserRefsNumValue >= minref))
157157 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)])
158158 else throw("You have to have 10 referrals already staking for a minimum of 10 days, to push")
159159 else {
160160 let txt = if ((HighestPushValue > 0))
161161 then "You cannot Push after rewarding Prize and before One day has passed after award"
162162 else "Unexpected error"
163163 throw(txt)
164164 }
165165 else throw("You cannot push before the reward is unlocked, no reward has been detected yet")
166166 else throw("Your push in troikan token, should be Higher than last Highest Push")
167167 else throw("To be able to participate in Pushing for the reward you need to Stake ASIMIs in the dApp")
168168 else throw("You have to wait 10min before you can make a new Push")
169169 else throw(("Your Push dot not comply one of the following conditions: " + "1. Positive Value for Push in Troikan Toke
170170 2. Must Staked ASIMI Token for a minimum of week "))
171171 }
172172 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"))
173173 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 !")
174174 }
175175
176176
177177
178178 @Callable(i)
179179 func Stake () = {
180180 let StakedToken = base58'DEjmrvdViZH7trtuAqaKQFjNjfbK6D7yMHm18UQ8Hj21'
181181 let GovernToken = base58'27RauQwTvdbcPqeFkzoTf5WPt3HtEAmRDVxprWUNp6bA'
182182 let pmt = extract(i.payment)
183183 if (if ((pmt.amount > 0))
184184 then (pmt.assetId == StakedToken)
185185 else false)
186186 then {
187187 let GovernTokenSmartContractBalance = assetBalance(this, GovernToken)
188188 let UserAPY = (toBase58String(i.caller.bytes) + "_APY")
189189 let UserPush = (toBase58String(i.caller.bytes) + "_Push")
190190 let UserStakedTokenKey = (toBase58String(i.caller.bytes) + "_Staking")
191191 let UserGovernTokenKey = (toBase58String(i.caller.bytes) + "_Earnings")
192192 let UserLastStakeBlock = (toBase58String(i.caller.bytes) + "_UserLastStakeBlock")
193193 let UserStakeTransactionsKey = (toBase58String(i.caller.bytes) + "_StakedTransactions")
194194 let AddressHeight = (toBase58String(i.caller.bytes) + "_PrizeHeight")
195195 let UserStakeTransactions = match getInteger(this, UserStakeTransactionsKey) {
196196 case a: Int =>
197197 a
198198 case _ =>
199199 0
200200 }
201201 let UserPushValue = match getInteger(this, UserPush) {
202202 case a: Int =>
203203 a
204204 case _ =>
205205 0
206206 }
207207 let UserLastStakeBlockValue = match getInteger(this, UserLastStakeBlock) {
208208 case a: Int =>
209209 a
210210 case _ =>
211211 0
212212 }
213213 let UserLastStakeBlockNewValue = if ((UserLastStakeBlockValue == 0))
214214 then height
215215 else UserLastStakeBlockValue
216216 let NewUserStakeTransactions = (UserStakeTransactions + 1)
217217 let currentAmountStakedToken = match getInteger(this, UserStakedTokenKey) {
218218 case a: Int =>
219219 a
220220 case _ =>
221221 0
222222 }
223223 let newAmountStakedToken = (currentAmountStakedToken + pmt.amount)
224224 let ContractWalletStakeBalance = assetBalance(this, StakedToken)
225225 let StakeBalance = match getInteger(this, "StakeBalance") {
226226 case a: Int =>
227227 a
228228 case _ =>
229229 0
230230 }
231231 let StakeBalanceAmount = (StakeBalance + pmt.amount)
232232 let PrizeAmount = match getInteger(this, "FundBox") {
233233 case a: Int =>
234234 a
235235 case _ =>
236236 0
237237 }
238238 let currentAmountGovernToken = match getInteger(this, UserGovernTokenKey) {
239239 case a: Int =>
240240 a
241241 case _ =>
242242 0
243243 }
244244 let HeightTransactFundBox = match getInteger(this, "PrizeHeight") {
245245 case a: Int =>
246246 a
247247 case _ =>
248248 0
249249 }
250250 let PrizeHeightValue = if (if ((HeightTransactFundBox == 0))
251251 then (PrizeAmount == 0)
252252 else false)
253253 then 0
254254 else if (if ((HeightTransactFundBox == 0))
255255 then (PrizeAmount != 0)
256256 else false)
257257 then height
258258 else if (if ((HeightTransactFundBox != 0))
259259 then (PrizeAmount != 0)
260260 else false)
261261 then HeightTransactFundBox
262262 else 0
263263 if ((100000000 > GovernTokenSmartContractBalance))
264264 then throw("No enough GovernToken In Contract, Please deposit GovernTokens")
265265 else {
266266 let Reward = if ((StakeBalance == 0))
267267 then 10000
268268 else if ((NewUserStakeTransactions > 10))
269269 then ((10000 * NewUserStakeTransactions) * (1 + (newAmountStakedToken / StakeBalance)))
270270 else (10000 * (1 + (newAmountStakedToken / StakeBalance)))
271271 let UserAPYValue = if ((currentAmountGovernToken > 0))
272272 then ((100 * Reward) / currentAmountGovernToken)
273273 else 0
274274 let newAmountGovernToken = (currentAmountGovernToken + Reward)
275275 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)]))
276276 }
277277 }
278278 else throw("Can deposit only StakeToken")
279279 }
280280
281281
282282
283283 @Callable(i)
284284 func WithdrawStakedFunds (amount) = {
285285 let StakedToken = base58'DEjmrvdViZH7trtuAqaKQFjNjfbK6D7yMHm18UQ8Hj21'
286286 let GovernToken = base58'27RauQwTvdbcPqeFkzoTf5WPt3HtEAmRDVxprWUNp6bA'
287287 let UserLastStakeBlock = (toBase58String(i.caller.bytes) + "_UserLastStakeBlock")
288288 let UserStakedTokenKey = (toBase58String(i.caller.bytes) + "_Staking")
289289 let UserGovernTokenKey = ((toBase58String(i.caller.bytes) + "_") + toBase58String(GovernToken))
290290 let ContractWalletStakeBalance = assetBalance(this, StakedToken)
291291 let UserLastStakeBlockValue = match getInteger(this, UserLastStakeBlock) {
292292 case a: Int =>
293293 a
294294 case _ =>
295295 0
296296 }
297297 let StakeBalance = match getInteger(this, "StakeBalance") {
298298 case a: Int =>
299299 a
300300 case _ =>
301301 0
302302 }
303303 let PrizeAmount = match getInteger(this, "FundBox") {
304304 case a: Int =>
305305 a
306306 case _ =>
307307 0
308308 }
309309 let HeightTransactFundBox = match getInteger(this, "PrizeHeight") {
310310 case a: Int =>
311311 a
312312 case _ =>
313313 0
314314 }
315315 let PrizeHeightValue = if (if ((HeightTransactFundBox == 0))
316316 then (PrizeAmount == 0)
317317 else false)
318318 then 0
319319 else if (if ((HeightTransactFundBox == 0))
320320 then (PrizeAmount != 0)
321321 else false)
322322 then height
323323 else if (if ((HeightTransactFundBox != 0))
324324 then (PrizeAmount != 0)
325325 else false)
326326 then HeightTransactFundBox
327327 else 0
328328 let currentKey = toBase58String(i.caller.bytes)
329329 let currentAmount = match getInteger(this, UserStakedTokenKey) {
330330 case a: Int =>
331331 a
332332 case _ =>
333333 0
334334 }
335335 let newAmount = (currentAmount - amount)
336336 let StakeBalanceAmount = (StakeBalance - amount)
337337 let UserLastStakeBlockNewValue = if ((StakeBalanceAmount == 0))
338338 then 0
339339 else UserLastStakeBlockValue
340340 if ((0 > amount))
341341 then throw("Can't withdraw negative amount")
342342 else if ((0 > newAmount))
343343 then throw(("User cannot withdraw more than deposited funds, Your deposit is: " + toString((currentAmount / 100000000))))
344344 else if ((100000000 > assetBalance(this, GovernToken)))
345345 then throw(("Not enough Troika In Contract: " + toString((assetBalance(this, GovernToken) / 100000000))))
346346 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)]))
347347 }
348348
349349
350350
351351 @Callable(i)
352352 func WithdrawBigStakeReward () = {
353353 let StakedToken = base58'DEjmrvdViZH7trtuAqaKQFjNjfbK6D7yMHm18UQ8Hj21'
354354 let GovernToken = base58'27RauQwTvdbcPqeFkzoTf5WPt3HtEAmRDVxprWUNp6bA'
355355 let LastBigStakerRewardBlock = (toBase58String(i.caller.bytes) + "LastBigStakerRewardBlock")
356356 let BigStakerReward = (toBase58String(i.caller.bytes) + "_BigStaker")
357357 let UserGovernTokenKey = (toBase58String(i.caller.bytes) + "_Earnings")
358358 let LimiWithdrawReward = 10
359359 let UserGovernTokenAmount = match getInteger(this, UserGovernTokenKey) {
360360 case a: Int =>
361361 a
362362 case _ =>
363363 0
364364 }
365365 let LastBigStakerRewardBlockValue = match getInteger(this, LastBigStakerRewardBlock) {
366366 case a: Int =>
367367 a
368368 case _ =>
369369 0
370370 }
371371 let BigStakersBalance = match getInteger(this, "BigStakersBalance") {
372372 case a: Int =>
373373 a
374374 case _ =>
375375 0
376376 }
377377 let PrizeAmount = match getInteger(this, "FundBox") {
378378 case a: Int =>
379379 a
380380 case _ =>
381381 0
382382 }
383383 let HeightTransactFundBox = match getInteger(this, "PrizeHeight") {
384384 case a: Int =>
385385 a
386386 case _ =>
387387 0
388388 }
389389 let PrizeHeightValue = if (if ((HeightTransactFundBox == 0))
390390 then (PrizeAmount == 0)
391391 else false)
392392 then 0
393393 else if (if ((HeightTransactFundBox == 0))
394394 then (PrizeAmount != 0)
395395 else false)
396396 then height
397397 else if (if ((HeightTransactFundBox != 0))
398398 then (PrizeAmount != 0)
399399 else false)
400400 then HeightTransactFundBox
401401 else 0
402402 let currentKey = toBase58String(i.caller.bytes)
403403 let amount = match getInteger(this, BigStakerReward) {
404404 case a: Int =>
405405 a
406406 case _ =>
407407 0
408408 }
409409 let StakeBalanceAmount = (BigStakersBalance - amount)
410410 let BigStakerRewardTax = if (((height - LastBigStakerRewardBlockValue) >= LimiWithdrawReward))
411411 then (1 * 100000000)
412412 else (((UserGovernTokenAmount / 100) * LimiWithdrawReward) / (height - LastBigStakerRewardBlockValue))
413413 if ((0 > amount))
414414 then throw("Can't withdraw negative amount ")
415415 else if (((1 * 100000000) > UserGovernTokenAmount))
416416 then throw(("Not enough Earned Troikan Tokens to do transaction, you need at least 300 Troikans, you have: " + toString((assetBalance(this, GovernToken) / 100000000))))
417- else if ((BigStakerRewardTax > (1 * 100000000)))
418- then throw(("Be careful it will cost you: " + toString((BigStakerRewardTax / 100000000))))
419- else ScriptResult(WriteSet([DataEntry(BigStakerReward, 0), DataEntry("BigStakersBalance", StakeBalanceAmount), DataEntry(UserGovernTokenKey, (UserGovernTokenAmount - BigStakerRewardTax)), DataEntry("PrizeHeight", PrizeHeightValue), DataEntry(LastBigStakerRewardBlock, height)]), TransferSet([ScriptTransfer(i.caller, amount, StakedToken)]))
417+ else ScriptResult(WriteSet([DataEntry(BigStakerReward, 0), DataEntry("BigStakersBalance", StakeBalanceAmount), DataEntry(UserGovernTokenKey, (UserGovernTokenAmount - BigStakerRewardTax)), DataEntry("PrizeHeight", PrizeHeightValue), DataEntry(LastBigStakerRewardBlock, height)]), TransferSet([ScriptTransfer(i.caller, amount, StakedToken)]))
420418 }
421419
422420
423421
424422 @Callable(i)
425423 func HarvestGovernToiken (amount) = {
426424 let StakedToken = base58'DEjmrvdViZH7trtuAqaKQFjNjfbK6D7yMHm18UQ8Hj21'
427425 let GovernToken = base58'27RauQwTvdbcPqeFkzoTf5WPt3HtEAmRDVxprWUNp6bA'
428426 let ContractWalletStakeBalance = assetBalance(this, StakedToken)
429427 let UserGovernTokenKey = (toBase58String(i.caller.bytes) + "_Earnings")
430428 let StakeBalance = match getInteger(this, "StakeBalance") {
431429 case a: Int =>
432430 a
433431 case _ =>
434432 0
435433 }
436434 let PrizeAmount = match getInteger(this, "FundBox") {
437435 case a: Int =>
438436 a
439437 case _ =>
440438 0
441439 }
442440 let HeightTransactFundBox = match getInteger(this, "PrizeHeight") {
443441 case a: Int =>
444442 a
445443 case _ =>
446444 0
447445 }
448446 let PrizeHeightValue = if (if ((HeightTransactFundBox == 0))
449447 then (PrizeAmount == 0)
450448 else false)
451449 then 0
452450 else if (if ((HeightTransactFundBox == 0))
453451 then (PrizeAmount != 0)
454452 else false)
455453 then height
456454 else if (if ((HeightTransactFundBox != 0))
457455 then (PrizeAmount != 0)
458456 else false)
459457 then HeightTransactFundBox
460458 else 0
461459 let currentKey = toBase58String(i.caller.bytes)
462460 let currentAmount = match getInteger(this, UserGovernTokenKey) {
463461 case a: Int =>
464462 a
465463 case _ =>
466464 0
467465 }
468466 let newAmount = (currentAmount - amount)
469467 if ((0 > amount))
470468 then throw("Can't withdraw negative amount")
471469 else if ((0 > newAmount))
472470 then throw(("User cannot withdraw more than deposited funds, Your deposit is: " + toString((currentAmount / 100000000))))
473471 else ScriptResult(WriteSet([DataEntry(UserGovernTokenKey, newAmount), DataEntry("PrizeHeight", PrizeHeightValue)]), TransferSet([ScriptTransfer(i.caller, amount, GovernToken)]))
474472 }
475473
476474
477475
478476 @Callable(i)
479477 func delayprize () = {
480478 let StakedToken = base58'DEjmrvdViZH7trtuAqaKQFjNjfbK6D7yMHm18UQ8Hj21'
481479 let GovernToken = base58'27RauQwTvdbcPqeFkzoTf5WPt3HtEAmRDVxprWUNp6bA'
482480 let DelayDays = (1 * 1)
483481 let UserGovernTokenKey = ((toBase58String(i.caller.bytes) + "_") + toBase58String(GovernToken))
484482 let UserWalletSGovernBalance = assetBalance(Address(i.caller.bytes), GovernToken)
485483 let ContractWalletStakeBalance = assetBalance(this, StakedToken)
486484 let StakeBalance = match getInteger(this, "StakeBalance") {
487485 case a: Int =>
488486 a
489487 case _ =>
490488 0
491489 }
492490 let PrizeAmount = match getInteger(this, "FundBox") {
493491 case a: Int =>
494492 a
495493 case _ =>
496494 0
497495 }
498496 let HeightTransactFundBox = match getInteger(this, "PrizeHeight") {
499497 case a: Int =>
500498 a
501499 case _ =>
502500 0
503501 }
504502 let PrizeHeightValue = if (if ((HeightTransactFundBox == 0))
505503 then (PrizeAmount == 0)
506504 else false)
507505 then 0
508506 else if (if ((HeightTransactFundBox == 0))
509507 then (PrizeAmount != 0)
510508 else false)
511509 then height
512510 else if (if ((HeightTransactFundBox != 0))
513511 then (PrizeAmount != 0)
514512 else false)
515513 then HeightTransactFundBox
516514 else 0
517515 let ActualDelay = match getInteger(this, "Delay") {
518516 case a: Int =>
519517 a
520518 case _ =>
521519 0
522520 }
523521 let ActualDelayCost = match getInteger(this, "DelayCost") {
524522 case a: Int =>
525523 a
526524 case _ =>
527525 10
528526 }
529527 let pmt = extract(i.payment)
530528 let DevBoxBalance = match getInteger(this, "DevBox") {
531529 case a: Int =>
532530 a
533531 case _ =>
534532 0
535533 }
536534 if (if (isDefined(pmt.assetId))
537535 then (extract(pmt.assetId) == GovernToken)
538536 else false)
539537 then if ((PrizeAmount > 0))
540538 then {
541539 let UserGovernTokenAmount = pmt.amount
542540 let DevBoxAmount = (DevBoxBalance + ((pmt.amount * 5) / 1000))
543541 let NewDelayCost = if ((ActualDelayCost == 0))
544542 then 1000000000
545543 else (2 * ActualDelayCost)
546544 if ((UserGovernTokenAmount >= NewDelayCost))
547545 then {
548546 let NewDelay = (ActualDelay + DelayDays)
549547 WriteSet([DataEntry("Delay", NewDelay), DataEntry("DelayCost", NewDelayCost), DataEntry("PrizeHeight", PrizeHeightValue), DataEntry("DevBox", DevBoxAmount)])
550548 }
551549 else throw((("To delay the release of the reward ONE DAY later than expected, you need " + toString(NewDelayCost)) + "TROIKAs"))
552550 }
553551 else throw("You cannot delay the reward before reward is received! Please wait until a reward is available")
554552 else throw("Can Use only Troika Token to Delay Reward")
555553 }
556554
557555
558556
559557 @Callable(i)
560558 func ClaimPrize () = {
561559 let StakedToken = base58'DEjmrvdViZH7trtuAqaKQFjNjfbK6D7yMHm18UQ8Hj21'
562560 let GovernToken = base58'27RauQwTvdbcPqeFkzoTf5WPt3HtEAmRDVxprWUNp6bA'
563561 let UserStakedTokenKey = (toBase58String(i.caller.bytes) + "_Staking")
564562 let UserPush = (toBase58String(i.caller.bytes) + "_Push")
565563 let UserLastStakeBlock = (toBase58String(i.caller.bytes) + "_UserLastStakeBlock")
566564 let minStakeBlock = 7
567565 let minref = 0
568566 let ContractGovTokenBalance = assetBalance(this, GovernToken)
569567 let ContractWalletStakeBalance = assetBalance(this, StakedToken)
570568 let StakeBalance = match getInteger(this, "StakeBalance") {
571569 case a: Int =>
572570 a
573571 case _ =>
574572 0
575573 }
576574 let PrizeAmount = match getInteger(this, "FundBox") {
577575 case a: Int =>
578576 a
579577 case _ =>
580578 0
581579 }
582580 let UserPushValue = match getInteger(this, UserPush) {
583581 case a: Int =>
584582 a
585583 case _ =>
586584 0
587585 }
588586 let UserLastStakeBlockValue = match getInteger(this, UserLastStakeBlock) {
589587 case a: Int =>
590588 a
591589 case _ =>
592590 0
593591 }
594592 let UserStakedTokenAmount = match getInteger(this, UserStakedTokenKey) {
595593 case a: Int =>
596594 a
597595 case _ =>
598596 0
599597 }
600598 let ActualDelay = match getInteger(this, "Delay") {
601599 case a: Int =>
602600 a
603601 case _ =>
604602 0
605603 }
606604 let PrizeWinner = getStringValue(this, "HighestPushAddress")
607605 let PrizeHeight = match getInteger(this, "PrizeHeight") {
608606 case a: Int =>
609607 a
610608 case _ =>
611609 0
612610 }
613611 let HighestPushValue = match getInteger(this, "HighestPush") {
614612 case a: Int =>
615613 a
616614 case _ =>
617615 0
618616 }
619617 let UserRefsNum = (toBase58String(i.caller.bytes) + "_refs")
620618 let UserRefsNumValue = match getInteger(this, UserRefsNum) {
621619 case a: Int =>
622620 a
623621 case _ =>
624622 0
625623 }
626624 if (if ((PrizeAmount == 0))
627625 then true
628626 else (10000000000 > ContractGovTokenBalance))
629627 then throw("No prize to Claim or Not enough Govern Token en Contract (Min 100 Troika)")
630628 else if ((toBase58String(i.caller.bytes) != PrizeWinner))
631629 then throw("You are not the winner hence cannot claim the reward ")
632630 else if (if ((100000000 > UserStakedTokenAmount))
633631 then (minStakeBlock > UserLastStakeBlockValue)
634632 else false)
635633 then throw("You have to Stake ASIMI Token to claim reward ")
636634 else if (if ((height > (PrizeHeight + ActualDelay)))
637635 then (UserPushValue >= HighestPushValue)
638636 else false)
639637 then if ((UserRefsNumValue >= minref))
640638 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)]))
641639 else throw("You have to have 10 referrals already staking for a minimum of 10 days to Claim the prize")
642640 else throw("You have to be the user with the highest Push and wait till countown is finished, to claim Reward")
643641 }
644642
645643
646644
647645 @Callable(i)
648646 func Addmentor (Mentor) = {
649647 let StakedToken = base58'DEjmrvdViZH7trtuAqaKQFjNjfbK6D7yMHm18UQ8Hj21'
650648 let GovernToken = base58'27RauQwTvdbcPqeFkzoTf5WPt3HtEAmRDVxprWUNp6bA'
651649 let UserMentorAddress = (toBase58String(i.caller.bytes) + "_Mentor")
652650 if ((Mentor != ""))
653651 then WriteSet([DataEntry(UserMentorAddress, Mentor)])
654652 else throw("Mentor's Address cannot be empty")
655653 }
656654
657655

github/deemru/w8io/873ac7e 
64.02 ms