tx · AtWhbzSGa73SbgSBeJYFKCQBoS5ej2vcZLn5Xe77zVKa

3N9evuqxGecMq9hBmpdJu2VkMzdR5VNVrvK:  -0.01000000 Waves

2022.04.11 16:36 [2004000] smart account 3N9evuqxGecMq9hBmpdJu2VkMzdR5VNVrvK > SELF 0.00000000 Waves

{ "type": 13, "id": "AtWhbzSGa73SbgSBeJYFKCQBoS5ej2vcZLn5Xe77zVKa", "fee": 1000000, "feeAssetId": null, "timestamp": 1649684221543, "version": 2, "chainId": 84, "sender": "3N9evuqxGecMq9hBmpdJu2VkMzdR5VNVrvK", "senderPublicKey": "AHY8zupoYc6HPJ5fh1gQiGE9bNZSeifFbcQQ89okxVug", "proofs": [ "5SkFLBBVjFAj1pHBmBRPamfk3dpEAzRezCaU9FFKweygf2dpkXAh5399sJrsLEMBVVE8d6oesjDbyPLvs3Ds5Agh" ], "script": "base64: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AAADcG10AAAABmFtb3VudAUAAAAKTWF4RGVwb3NpdAkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBQAAAAxNYXhEZXBvc2l0ZXIEAAAAD01heERlcG9zaXRWYWx1ZQMJAABmAAAAAggFAAAAA3BtdAAAAAZhbW91bnQFAAAACk1heERlcG9zaXQIBQAAAANwbXQAAAAGYW1vdW50BQAAAApNYXhEZXBvc2l0BAAAABRNYXhEZXBvc2l0QmxvY2tWYWx1ZQMJAABmAAAAAggFAAAAA3BtdAAAAAZhbW91bnQFAAAACk1heERlcG9zaXQFAAAABmhlaWdodAUAAAAPTWF4RGVwb3NpdEJsb2NrBAAAAA1Vc2VyUHVzaFZhbHVlBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMFAAAACFVzZXJQdXNoAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAAF1VzZXJMYXN0U3Rha2VCbG9ja1ZhbHVlBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMFAAAAElVzZXJMYXN0U3Rha2VCbG9jawMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAABpVc2VyTGFzdFN0YWtlQmxvY2tOZXdWYWx1ZQMJAAAAAAAAAgUAAAAXVXNlckxhc3RTdGFrZUJsb2NrVmFsdWUAAAAAAAAAAAAFAAAABmhlaWdodAUAAAAXVXNlckxhc3RTdGFrZUJsb2NrVmFsdWUEAAAAGE5ld1VzZXJTdGFrZVRyYW5zYWN0aW9ucwkAAGQAAAACBQAAABVVc2VyU3Rha2VUcmFuc2FjdGlvbnMAAAAAAAAAAAEEAAAAGGN1cnJlbnRBbW91bnRTdGFrZWRUb2tlbgQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzBQAAABJVc2VyU3Rha2VkVG9rZW5LZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAUbmV3QW1vdW50U3Rha2VkVG9rZW4JAABkAAAAAgUAAAAYY3VycmVudEFtb3VudFN0YWtlZFRva2VuCAUAAAADcG10AAAABmFtb3VudAQAAAAaQ29udHJhY3RXYWxsZXRTdGFrZUJhbGFuY2UJAAPrAAAAAgUAAAAEdGhpcwUAAAALU3Rha2VkVG9rZW4EAAAADFN0YWtlQmFsYW5jZQQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzAgAAAAxTdGFrZUJhbGFuY2UDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAASU3Rha2VCYWxhbmNlQW1vdW50CQAAZAAAAAIFAAAADFN0YWtlQmFsYW5jZQgFAAAAA3BtdAAAAAZhbW91bnQEAAAAC1ByaXplQW1vdW50BAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMCAAAAB0Z1bmRCb3gDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAVVXNlcldlZWtFYXJuaW5nc1ZhbHVlBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMFAAAAEFVzZXJXZWVrRWFybmluZ3MDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAYY3VycmVudEFtb3VudEdvdmVyblRva2VuBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMFAAAAElVzZXJHb3Zlcm5Ub2tlbktleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAABVIZWlnaHRUcmFuc2FjdEZ1bmRCb3gEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwIAAAALUHJpemVIZWlnaHQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAQUHJpemVIZWlnaHRWYWx1ZQMDCQAAAAAAAAIFAAAAFUhlaWdodFRyYW5zYWN0RnVuZEJveAAAAAAAAAAAAAkAAAAAAAACBQAAAAtQcml6ZUFtb3VudAAAAAAAAAAAAAcAAAAAAAAAAAADAwkAAAAAAAACBQAAABVIZWlnaHRUcmFuc2FjdEZ1bmRCb3gAAAAAAAAAAAAJAQAAAAIhPQAAAAIFAAAAC1ByaXplQW1vdW50AAAAAAAAAAAABwUAAAAGaGVpZ2h0AwMJAQAAAAIhPQAAAAIFAAAAFUhlaWdodFRyYW5zYWN0RnVuZEJveAAAAAAAAAAAAAkBAAAAAiE9AAAAAgUAAAALUHJpemVBbW91bnQAAAAAAAAAAAAHBQAAABVIZWlnaHRUcmFuc2FjdEZ1bmRCb3gAAAAAAAAAAAAEAAAAC0FjdHVhbERlbGF5BAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMCAAAABURlbGF5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAAEEhpZ2hlc3RQdXNoVmFsdWUEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwIAAAALSGlnaGVzdFB1c2gDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAASSGlnaGVzdFB1c2hBZGRyZXNzBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMCAAAAEkhpZ2hlc3RQdXNoQWRkcmVzcwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAABdIaWdoZXN0UHVzaEFkZHJlc3NWYWx1ZQMDCQAAZgAAAAIFAAAABmhlaWdodAkAAGQAAAACCQAAZAAAAAIFAAAAEFByaXplSGVpZ2h0VmFsdWUFAAAAC0FjdHVhbERlbGF5BQAAAAhXYWl0VGltZQkAAGYAAAACBQAAABBIaWdoZXN0UHVzaFZhbHVlAAAAAAAAAAAABwIAAAAABQAAABJIaWdoZXN0UHVzaEFkZHJlc3MEAAAAE1ByaXplSGVpZ2h0VmFsdWVOZXcDAwkAAGYAAAACBQAAAAZoZWlnaHQJAABkAAAAAgkAAGQAAAACBQAAABBQcml6ZUhlaWdodFZhbHVlBQAAAAtBY3R1YWxEZWxheQUAAAAIV2FpdFRpbWUJAABmAAAAAgUAAAAQSGlnaGVzdFB1c2hWYWx1ZQAAAAAAAAAAAAcFAAAABmhlaWdodAUAAAAQUHJpemVIZWlnaHRWYWx1ZQMJAABmAAAAAgAAAAAABfXhAAUAAAAfR292ZXJuVG9rZW5TbWFydENvbnRyYWN0QmFsYW5jZQkAAAIAAAABAgAAAD5ObyBlbm91Z2ggR292ZXJuVG9rZW4gSW4gQ29udHJhY3QsIFBsZWFzZSBkZXBvc2l0IEdvdmVyblRva2VucwQAAAAGUmV3YXJkAwkAAAAAAAACBQAAAAxTdGFrZUJhbGFuY2UAAAAAAAAAAAAAAAAAAAAAJxADCQAAZgAAAAIFAAAAGE5ld1VzZXJTdGFrZVRyYW5zYWN0aW9ucwAAAAAAAAAACgkAAGgAAAACCQAAaAAAAAIAAAAAAAAAJxAFAAAAGE5ld1VzZXJTdGFrZVRyYW5zYWN0aW9ucwkAAGQAAAACAAAAAAAAAAABCQAAaQAAAAIFAAAAFG5ld0Ftb3VudFN0YWtlZFRva2VuBQAAAAxTdGFrZUJhbGFuY2UJAABoAAAAAgAAAAAAAAAnEAkAAGQAAAACAAAAAAAAAAABCQAAaQAAAAIFAAAAFG5ld0Ftb3VudFN0YWtlZFRva2VuBQAAAAxTdGFrZUJhbGFuY2UEAAAADFVzZXJBUFlWYWx1ZQMJAABmAAAAAgUAAAAYY3VycmVudEFtb3VudEdvdmVyblRva2VuAAAAAAAAAAAACQAAaQAAAAIJAABoAAAAAgAAAAAAAAAAZAUAAAAGUmV3YXJkBQAAABhjdXJyZW50QW1vdW50R292ZXJuVG9rZW4AAAAAAAAAAAAEAAAAFG5ld0Ftb3VudEdvdmVyblRva2VuCQAAZAAAAAIFAAAAGGN1cnJlbnRBbW91bnRHb3Zlcm5Ub2tlbgUAAAAGUmV3YXJkCQEAAAAMU2NyaXB0UmVzdWx0AAAAAgkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAASVXNlckdvdmVyblRva2VuS2V5BQAAABRuZXdBbW91bnRHb3Zlcm5Ub2tlbgkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAASVXNlclN0YWtlZFRva2VuS2V5BQAAABRuZXdBbW91bnRTdGFrZWRUb2tlbgkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAAYVXNlclN0YWtlVHJhbnNhY3Rpb25zS2V5BQAAABhOZXdVc2VyU3Rha2VUcmFuc2FjdGlvbnMJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAICAAAADFN0YWtlQmFsYW5jZQUAAAASU3Rha2VCYWxhbmNlQW1vdW50CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACAgAAAAtQcml6ZUhlaWdodAUAAAATUHJpemVIZWlnaHRWYWx1ZU5ldwkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAAHVXNlckFQWQUAAAAMVXNlckFQWVZhbHVlCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAABJVc2VyTGFzdFN0YWtlQmxvY2sFAAAAGlVzZXJMYXN0U3Rha2VCbG9ja05ld1ZhbHVlCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAAAhVc2VyUHVzaAUAAAANVXNlclB1c2hWYWx1ZQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgIAAAAMTWF4RGVwb3NpdGVyBQAAABFNYXhEZXBvc2l0ZXJWYWx1ZQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgIAAAAKTWF4RGVwb3NpdAUAAAAPTWF4RGVwb3NpdFZhbHVlCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACAgAAAA9NYXhEZXBvc2l0QmxvY2sFAAAAFE1heERlcG9zaXRCbG9ja1ZhbHVlCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACAgAAABJIaWdoZXN0UHVzaEFkZHJlc3MFAAAAF0hpZ2hlc3RQdXNoQWRkcmVzc1ZhbHVlCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAABBVc2VyV2Vla0Vhcm5pbmdzBQAAABVVc2VyV2Vla0Vhcm5pbmdzVmFsdWUFAAAAA25pbAkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIFAAAA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AAAAAAAJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAICAAAAFEJpZ1N0YWtlclJld2FyZFRvdGFsBQAAABJTdGFrZUJhbGFuY2VBbW91bnQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAAElVzZXJHb3Zlcm5Ub2tlbktleQkAAGUAAAACBQAAABVVc2VyR292ZXJuVG9rZW5BbW91bnQFAAAAEkJpZ1N0YWtlclJld2FyZFRheAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgIAAAALUHJpemVIZWlnaHQFAAAAEFByaXplSGVpZ2h0VmFsdWUJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAAGExhc3RCaWdTdGFrZXJSZXdhcmRCbG9jawUAAAAGaGVpZ2h0CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACAgAAABJIaWdoZXN0UHVzaEFkZHJlc3MFAAAAF0hpZ2hlc3RQdXNoQWRkcmVzc1ZhbHVlBQAAAANuaWwJAQAAAAtUcmFuc2ZlclNldAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyBQAAAAZhbW91bnQFAAAAC1N0YWtlZFRva2VuBQAAAANuaWwJAAACAAAAAQIAAABSQmFsYW5jZSBFcnJvciwgVG90YWwgQmlnIFN0YWtlcnMgY2Fubm90IGJlIG5lZ2F0aXZlLCBPcGVyYXRpb24gd29uJ3QgYmUgYXV0aG9yaXplZAAAAAFpAQAAABNIYXJ2ZXN0R292ZXJuVG9pa2VuAAAAAQAAAAZhbW91bnQEAAAAC1N0YWtlZFRva2VuAQAAACD5rl2FqqDB81weFWSW9S5FyKYquYAb4MpXXcAlqscPUAQAAAALR292ZXJuVG9rZW4BAAAAIAFshcLXQMYuV8Rzs8ULZ07fOlzF6BxYes7P/1GRlpktBAAAABpDb250cmFjdFdhbGxldFN0YWtlQmFsYW5jZQkAA+sAAAACBQAAAAR0aGlzBQAAAAtTdGFrZWRUb2tlbgQAAAASVXNlckdvdmVyblRva2VuS2V5CQABLAAAAAIJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwIAAAAJX0Vhcm5pbmdzBAAA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", "height": 2004000, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: DFboYeht29H2S2xCbohTAfNi2WanEunogmzjg6r5CowP Next: CnDchVvrMmveAY8U24yZ3rT1Kh4Lhh6wustke2Cts5F4 Diff:
OldNewDifferences
8787 let DelayAfterPush = 60
8888 let WaitTime = (1440 * 1)
8989 let minref = 3
90- let FirstPushTimer = 1440
90+ let FirstPushTimer = (7 * 1440)
9191 let userWalletGovernBalance = assetBalance(Address(i.caller.bytes), GovernToken)
9292 let pmt = extract(i.payment)
9393 let UserPush = (toBase58String(i.caller.bytes) + "_Push")
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 == "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 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 UserWeeklyEarnings = (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, UserWeeklyEarnings) {
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(UserWeeklyEarnings, 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 = 60
8888 let WaitTime = (1440 * 1)
8989 let minref = 3
90- let FirstPushTimer = 1440
90+ let FirstPushTimer = (7 * 1440)
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 = (1440 * 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 = (1440 * 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 = (1440 * 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 = 10
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))))
593593 if ((0 > amount))
594594 then throw(((("Can't withdraw negative amount " + toString((UserGovernTokenAmount - (1000 * 100000000)))) + " ... ") + toString(amount)))
595595 else if (if (if (((1000 * 100000000) > UserGovernTokenAmount))
596596 then true
597597 else (1 > amount))
598598 then true
599599 else (0 > (UserGovernTokenAmount - BigStakerRewardTax)))
600600 then throw(("No ASIMI reward available, or Not enough Earned Troikan Tokens to do transaction, you have: " + toString((UserGovernTokenAmount / 100000000))))
601601 else if ((StakeBalanceAmount > 0))
602602 then 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)]))
603603 else throw("Balance Error, Total Big Stakers cannot be negative, Operation won't be authorized")
604604 }
605605
606606
607607
608608 @Callable(i)
609609 func HarvestGovernToiken (amount) = {
610610 let StakedToken = base58'Hoej8L1ezqQY4Miex4Z4J7uJ33LCdcubV3DsubGHEqWP'
611611 let GovernToken = base58'6ZPMzZseuYoMP4ByozJpVxbugXBobwJYF22zVjW5JjN'
612612 let ContractWalletStakeBalance = assetBalance(this, StakedToken)
613613 let UserGovernTokenKey = (toBase58String(i.caller.bytes) + "_Earnings")
614614 let StakeBalance = match getInteger(this, "StakeBalance") {
615615 case a: Int =>
616616 a
617617 case _ =>
618618 0
619619 }
620620 let PrizeAmount = match getInteger(this, "FundBox") {
621621 case a: Int =>
622622 a
623623 case _ =>
624624 0
625625 }
626626 let HeightTransactFundBox = match getInteger(this, "PrizeHeight") {
627627 case a: Int =>
628628 a
629629 case _ =>
630630 0
631631 }
632632 let PrizeHeightValue = if (if ((HeightTransactFundBox == 0))
633633 then (PrizeAmount == 0)
634634 else false)
635635 then 0
636636 else if (if ((HeightTransactFundBox == 0))
637637 then (PrizeAmount != 0)
638638 else false)
639639 then height
640640 else if (if ((HeightTransactFundBox != 0))
641641 then (PrizeAmount != 0)
642642 else false)
643643 then HeightTransactFundBox
644644 else 0
645645 let currentKey = toBase58String(i.caller.bytes)
646646 let currentAmount = match getInteger(this, UserGovernTokenKey) {
647647 case a: Int =>
648648 a
649649 case _ =>
650650 0
651651 }
652652 let newAmount = (currentAmount - amount)
653653 if ((0 > amount))
654654 then throw("Can't withdraw negative amount")
655655 else if ((0 > newAmount))
656656 then throw(("User cannot withdraw more than deposited funds, Your deposit is: " + toString((currentAmount / 100000000))))
657657 else ScriptResult(WriteSet([DataEntry(UserGovernTokenKey, newAmount), DataEntry("PrizeHeight", PrizeHeightValue)]), TransferSet([ScriptTransfer(i.caller, amount, GovernToken)]))
658658 }
659659
660660
661661
662662 @Callable(i)
663663 func delayprize () = {
664664 let StakedToken = base58'Hoej8L1ezqQY4Miex4Z4J7uJ33LCdcubV3DsubGHEqWP'
665665 let GovernToken = base58'6ZPMzZseuYoMP4ByozJpVxbugXBobwJYF22zVjW5JjN'
666666 let DelayDays = (1440 * 1)
667667 let WaitTime = (1440 * 1)
668668 let UserGovernTokenKey = ((toBase58String(i.caller.bytes) + "_") + toBase58String(GovernToken))
669669 let UserWalletSGovernBalance = assetBalance(Address(i.caller.bytes), GovernToken)
670670 let ContractWalletStakeBalance = assetBalance(this, StakedToken)
671671 let StakeBalance = match getInteger(this, "StakeBalance") {
672672 case a: Int =>
673673 a
674674 case _ =>
675675 0
676676 }
677677 let PrizeAmount = match getInteger(this, "FundBox") {
678678 case a: Int =>
679679 a
680680 case _ =>
681681 0
682682 }
683683 let HeightTransactFundBox = match getInteger(this, "PrizeHeight") {
684684 case a: Int =>
685685 a
686686 case _ =>
687687 0
688688 }
689689 let ActualDelay = match getInteger(this, "Delay") {
690690 case a: Int =>
691691 a
692692 case _ =>
693693 0
694694 }
695695 let PrizeHeightValue = if (if ((HeightTransactFundBox == 0))
696696 then (PrizeAmount == 0)
697697 else false)
698698 then 0
699699 else if (if ((HeightTransactFundBox == 0))
700700 then (PrizeAmount != 0)
701701 else false)
702702 then height
703703 else if (if ((HeightTransactFundBox != 0))
704704 then (PrizeAmount != 0)
705705 else false)
706706 then HeightTransactFundBox
707707 else 0
708708 let HighestPushValue = match getInteger(this, "HighestPush") {
709709 case a: Int =>
710710 a
711711 case _ =>
712712 0
713713 }
714714 let HighestPushAddress = match getInteger(this, "HighestPushAddress") {
715715 case a: Int =>
716716 a
717717 case _ =>
718718 0
719719 }
720720 let HighestPushAddressValue = if (if ((height > ((PrizeHeightValue + ActualDelay) + WaitTime)))
721721 then (HighestPushValue > 0)
722722 else false)
723723 then ""
724724 else HighestPushAddress
725725 let PrizeHeightValueNew = if (if ((height > ((PrizeHeightValue + ActualDelay) + WaitTime)))
726726 then (HighestPushValue > 0)
727727 else false)
728728 then height
729729 else PrizeHeightValue
730730 let ActualDelayCost = match getInteger(this, "DelayCost") {
731731 case a: Int =>
732732 a
733733 case _ =>
734734 10
735735 }
736736 let pmt = extract(i.payment)
737737 let DevBoxBalance = match getInteger(this, "DevBox") {
738738 case a: Int =>
739739 a
740740 case _ =>
741741 0
742742 }
743743 if (if (isDefined(pmt.assetId))
744744 then (extract(pmt.assetId) == GovernToken)
745745 else false)
746746 then if ((PrizeAmount > 0))
747747 then {
748748 let UserGovernTokenAmount = pmt.amount
749749 let DevBoxAmount = (DevBoxBalance + ((pmt.amount * 5) / 1000))
750750 let NewDelayCost = if ((ActualDelayCost == 0))
751751 then 1000000000
752752 else (2 * ActualDelayCost)
753753 if ((UserGovernTokenAmount >= NewDelayCost))
754754 then {
755755 let NewDelay = (ActualDelay + DelayDays)
756756 WriteSet([DataEntry("Delay", NewDelay), DataEntry("DelayCost", NewDelayCost), DataEntry("PrizeHeight", PrizeHeightValueNew), DataEntry("DevBox", DevBoxAmount), DataEntry("HighestPushAddress", HighestPushAddressValue)])
757757 }
758758 else throw((("To delay the release of the reward ONE DAY later than expected, you need " + toString(NewDelayCost)) + "TROIKAs"))
759759 }
760760 else throw("You cannot delay the reward before reward is received! Please wait until a reward is available")
761761 else throw("Can Use only Troika Token to Delay Reward")
762762 }
763763
764764
765765
766766 @Callable(i)
767767 func CreateTeam (TeamName) = {
768768 let StakedToken = base58'Hoej8L1ezqQY4Miex4Z4J7uJ33LCdcubV3DsubGHEqWP'
769769 let GovernToken = base58'6ZPMzZseuYoMP4ByozJpVxbugXBobwJYF22zVjW5JjN'
770770 let UserStakedTokenKey = (toBase58String(i.caller.bytes) + "_Staking")
771771 let UserGovernTokenKey = (toBase58String(i.caller.bytes) + "_Earnings")
772772 let CreateTeamFeeASIMI = 5
773773 let CreateTeamFeeTroikan = (1000 * CreateTeamFeeASIMI)
774774 let UserGovernTokenAmount = match getInteger(this, UserGovernTokenKey) {
775775 case a: Int =>
776776 a
777777 case _ =>
778778 0
779779 }
780780 let currentAmount = match getInteger(this, UserStakedTokenKey) {
781781 case a: Int =>
782782 a
783783 case _ =>
784784 0
785785 }
786786 if ((TeamName != ""))
787787 then WriteSet([DataEntry("TeamName", TeamName), DataEntry("UserStakedTokenKey", (currentAmount - (CreateTeamFeeASIMI * 100000000))), DataEntry("UserGovernTokenKey", (UserGovernTokenAmount - (CreateTeamFeeTroikan * 100000000)))])
788788 else throw("The team' s name cannot be empty")
789789 }
790790
791791
792792
793793 @Callable(i)
794794 func ClaimPrize () = {
795795 let StakedToken = base58'Hoej8L1ezqQY4Miex4Z4J7uJ33LCdcubV3DsubGHEqWP'
796796 let GovernToken = base58'6ZPMzZseuYoMP4ByozJpVxbugXBobwJYF22zVjW5JjN'
797797 let UserStakedTokenKey = (toBase58String(i.caller.bytes) + "_Staking")
798798 let UserPush = (toBase58String(i.caller.bytes) + "_Push")
799799 let UserLastStakeBlock = (toBase58String(i.caller.bytes) + "_UserLastStakeBlock")
800800 let minStakeBlock = (1440 * 7)
801801 let minref = 3
802802 let ContractGovTokenBalance = assetBalance(this, GovernToken)
803803 let ContractWalletStakeBalance = assetBalance(this, StakedToken)
804804 let StakeBalance = match getInteger(this, "StakeBalance") {
805805 case a: Int =>
806806 a
807807 case _ =>
808808 0
809809 }
810810 let PrizeAmount = match getInteger(this, "FundBox") {
811811 case a: Int =>
812812 a
813813 case _ =>
814814 0
815815 }
816816 let UserPushValue = match getInteger(this, UserPush) {
817817 case a: Int =>
818818 a
819819 case _ =>
820820 0
821821 }
822822 let UserLastStakeBlockValue = match getInteger(this, UserLastStakeBlock) {
823823 case a: Int =>
824824 a
825825 case _ =>
826826 0
827827 }
828828 let UserStakedTokenAmount = match getInteger(this, UserStakedTokenKey) {
829829 case a: Int =>
830830 a
831831 case _ =>
832832 0
833833 }
834834 let ActualDelay = match getInteger(this, "Delay") {
835835 case a: Int =>
836836 a
837837 case _ =>
838838 0
839839 }
840840 let PrizeWinner = getStringValue(this, "HighestPushAddress")
841841 let PrizeHeight = match getInteger(this, "PrizeHeight") {
842842 case a: Int =>
843843 a
844844 case _ =>
845845 0
846846 }
847847 let HighestPushValue = match getInteger(this, "HighestPush") {
848848 case a: Int =>
849849 a
850850 case _ =>
851851 0
852852 }
853853 let UserRefsNum = (toBase58String(i.caller.bytes) + "_refs")
854854 let UserRefsNumValue = match getInteger(this, UserRefsNum) {
855855 case a: Int =>
856856 a
857857 case _ =>
858858 0
859859 }
860860 if (if ((PrizeAmount == 0))
861861 then true
862862 else (10000000000 > ContractGovTokenBalance))
863863 then throw("No prize to Claim or Not enough Govern Token en Contract (Min 100 Troika)")
864864 else if ((toBase58String(i.caller.bytes) != PrizeWinner))
865865 then throw("You are not the winner hence cannot claim the reward ")
866866 else if (if ((100000000 > UserStakedTokenAmount))
867867 then (minStakeBlock > UserLastStakeBlockValue)
868868 else false)
869869 then throw("You have to Stake ASIMI Token to claim reward ")
870870 else if (if ((height > (PrizeHeight + ActualDelay)))
871871 then (UserPushValue >= HighestPushValue)
872872 else false)
873873 then if ((UserRefsNumValue >= minref))
874874 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)]))
875875 else throw((("You have to have " + toString(minref)) + " referrals already staking for a minimum of 10 days to Claim the prize"))
876876 else throw("You have to be the user with the highest Push and wait till countown is finished, to claim Reward")
877877 }
878878
879879
880880
881881 @Callable(i)
882882 func Addmentor (Mentor) = {
883883 let StakedToken = base58'Hoej8L1ezqQY4Miex4Z4J7uJ33LCdcubV3DsubGHEqWP'
884884 let GovernToken = base58'6ZPMzZseuYoMP4ByozJpVxbugXBobwJYF22zVjW5JjN'
885885 let UserMentorAddress = (toBase58String(i.caller.bytes) + "_Mentor")
886886 if ((Mentor != ""))
887887 then WriteSet([DataEntry(UserMentorAddress, Mentor)])
888888 else throw("Mentor's Address cannot be empty")
889889 }
890890
891891

github/deemru/w8io/026f985 
87.73 ms