tx · FZSkyLshbpLvzaEfGYPBNg8F45dfBddVN99SbvkNyzZn

3PMf35RXPcJWV7uSmaTMHk8PbEaJyBfsaYE:  -0.01440000 Waves

2021.04.19 22:50 [2554373] smart account 3PMf35RXPcJWV7uSmaTMHk8PbEaJyBfsaYE > SELF 0.00000000 Waves

{ "type": 13, "id": "FZSkyLshbpLvzaEfGYPBNg8F45dfBddVN99SbvkNyzZn", "fee": 1440000, "feeAssetId": null, "timestamp": 1618861829133, "version": 2, "chainId": 87, "sender": "3PMf35RXPcJWV7uSmaTMHk8PbEaJyBfsaYE", "senderPublicKey": "FFDorDp8bC9dyUK2w8hYPWPVEcbbk9zYkpHn3gcq9svn", "proofs": [ "576w289Sd1Jzd92tgtmVFPwNBhmDMFXGE81XopgBoKKkx5jVQLr4oJXWK3zW7FLmFZyqBA6UBcZZfL5X53411GMB" ], "script": "base64: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AAAAC0hpZ2hlc3RQdXNoBQAAAA1Vc2VyUHVzaHZhbHVlCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAABFVc2VyTGFzdFB1c2hCbG9jawUAAAAGaGVpZ2h0CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACAgAAAAtQcml6ZUhlaWdodAUAAAAQUHJpemVIZWlnaHRWYWx1ZQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgIAAAAFRGVsYXkFAAAACE5ld0RlbGF5CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACAgAAAAZEZXZCb3gFAAAADERldkJveEFtb3VudAUAAAADbmlsCQAAAgAAAAECAAAAT1lvdSBoYXZlIHRvIGhhdmUgMTAgcmVmZXJyYWxzIGFscmVhZHkgc3Rha2luZyBmb3IgYSBtaW5pbXVtIG9mIDEwIGRheXMsIHRvIHB1c2gEAAAAA3R4dAMJAABmAAAAAgUAAAAQSGlnaGVzdFB1c2hWYWx1ZQAAAAAAAAAAAAIAAABPWW91IGNhbm5vdCBQdXNoIGFmdGVyIHJld2FyZGluZyBQcml6ZSBhbmQgYmVmb3JlIE9uZSBkYXkgaGFzIHBhc3NlZCBhZnRlciBhd2FyZAIAAAAQVW5leHBlY3RlZCBlcnJvcgkAAAIAAAABBQAAAAN0eHQJAAACAAAAAQIAAABOWW91IGNhbm5vdCBwdXNoIGJlZm9yZSB0aGUgcmV3YXJkIGlzIHVubG9ja2VkLCBubyByZXdhcmQgaGFzIGJlZW4gZGV0ZWN0ZWQgeWV0CQAAAgAAAAECAAAAQ1lvdXIgcHVzaCBpbiB0cm9pa2FuIHRva2VuLCBzaG91bGQgYmUgSGlnaGVyIHRoYW4gbGFzdCBIaWdoZXN0IFB1c2gJAAACAAAAAQIAAABYVG8gYmUgYWJsZSB0byBwYXJ0aWNpcGF0ZSBpbiBQdXNoaW5nIGZvciB0aGUgcmV3YXJkIHlvdSBuZWVkIHRvIFN0YWtlIEFTSU1JcyBpbiB0aGUgZEFwcAkAAAIAAAABAgAAADVZb3UgaGF2ZSB0byB3YWl0IDEwbWluIGJlZm9yZSB5b3UgY2FuIG1ha2UgYSBuZXcgUHVzaAkAAAIAAAABCQABLAAAAAICAAAAOllvdXIgUHVzaCBkb3Qgbm90IGNvbXBseSBvbmUgb2YgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOiACAAAAXTEuIFBvc2l0aXZlIFZhbHVlIGZvciBQdXNoIGluIFRyb2lrYW4gVG9rZQogMi4gTXVzdCBTdGFrZWQgQVNJTUkgVG9rZW4gZm9yIGEgbWluaW11bSBvZiB3ZWVrIAkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAB2Q2FuIGRlcG9zaXQgb25seSBwb3NpdGl2ZSBhbW91bnRzIG9mIFRyb2lrYW4gVG9rZW4sIG9yIENoZWNrIHlvdXIgV2FsbGV0IGJhbGFuY2UgaW4gVHJvaWthLCB5b3Ugc2hvdWxkIGhhdmUgbW9yZSB0aGFuIAkAAaQAAAABBQAAABBIaWdoZXN0UHVzaFZhbHVlAgAAAAggdG8gcHVzaAkAAAIAAAABAgAAAKRZb3UgZG8gbm90IGhhdmUgZW5vdWdoIFRyb2lrYW4gVG9rZW5zIGluIHlvdXIgV2FsbGV0IEJhbGFuY2UsIFBsZWFzZSBIYXJ2ZXN0IGlmIHlvdSBoYXZlIGVhcm5lZCBUcm9pa2FuIHdhbGxldCBvciB0cmFuc2ZlciB0byB5b3VyIHdhbGxldCBuZWNlc3NhcnkgVHJvaWthbiBhbW91bnQgIQAAAAFpAQAAAAVTdGFrZQAAAAAEAAAAC1N0YWtlZFRva2VuAQAAACDJ87corWdBF00yBjV0LGSEbO+I4qSbJ8cU6qkf0I2fVAQAAAALR292ZXJuVG9rZW4BAAAAILaKRSB1rUd8d97dJwjKWv3ewXb6FGo0UDf32gwrBHkwBAAAAANwbXQJAQAAAAdleHRyYWN0AAAAAQgFAAAAAWkAAAAHcGF5bWVudAMDCQAAZgAAAAIIBQAAAANwbXQAAAAGYW1vdW50AAAAAAAAAAAACQAAAAAAAAIIBQAAAANwbXQAAAAHYXNzZXRJZAUAAAALU3Rha2VkVG9rZW4HBAAAAB9Hb3Zlcm5Ub2tlblNtYXJ0Q29udHJhY3RCYWxhbmNlCQAD6wAAAAIFAAAABHRoaXMFAAAAC0dvdmVyblRva2VuBAAAAAdVc2VyQVBZCQABLAAAAAIJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwIAAAAEX0FQWQQAAAASVXNlclN0YWtlZFRva2VuS2V5CQABLAAAAAIJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwIAAAAIX1N0YWtpbmcEAAAAElVzZXJHb3Zlcm5Ub2tlbktleQkAASwAAAACCQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMCAAAACV9FYXJuaW5ncwQAAAASVXNlckxhc3RTdGFrZUJsb2NrCQABLAAAAAIJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwIAAAATX1VzZXJMYXN0U3Rha2VCbG9jawQAAAAYVXNlclN0YWtlVHJhbnNhY3Rpb25zS2V5CQABLAAAAAIJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwIAAAATX1N0YWtlZFRyYW5zYWN0aW9ucwQAAAANQWRkcmVzc0hlaWdodAkAASwAAAACCQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMCAAAADF9Qcml6ZUhlaWdodAQAAAAVVXNlclN0YWtlVHJhbnNhY3Rpb25zBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMFAAAAGFVzZXJTdGFrZVRyYW5zYWN0aW9uc0tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAABdVc2VyTGFzdFN0YWtlQmxvY2tWYWx1ZQQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzBQAAABJVc2VyTGFzdFN0YWtlQmxvY2sDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAaVXNlckxhc3RTdGFrZUJsb2NrTmV3VmFsdWUDCQAAAAAAAAIFAAAAF1VzZXJMYXN0U3Rha2VCbG9ja1ZhbHVlAAAAAAAAAAAABQAAAAZoZWlnaHQFAAAAF1VzZXJMYXN0U3Rha2VCbG9ja1ZhbHVlBAAAABhOZXdVc2VyU3Rha2VUcmFuc2FjdGlvbnMJAABkAAAAAgUAAAAVVXNlclN0YWtlVHJhbnNhY3Rpb25zAAAAAAAAAAABBAAAABhjdXJyZW50QW1vdW50U3Rha2VkVG9rZW4EAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwUAAAASVXNlclN0YWtlZFRva2VuS2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAAFG5ld0Ftb3VudFN0YWtlZFRva2VuCQAAZAAAAAIFAAAAGGN1cnJlbnRBbW91bnRTdGFrZWRUb2tlbggFAAAAA3BtdAAAAAZhbW91bnQEAAAAGkNvbnRyYWN0V2FsbGV0U3Rha2VCYWxhbmNlCQAD6wAAAAIFAAAABHRoaXMFAAAAC1N0YWtlZFRva2VuBAAAAAxTdGFrZUJhbGFuY2UEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwIAAAAMU3Rha2VCYWxhbmNlAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAAElN0YWtlQmFsYW5jZUFtb3VudAkAAGQAAAACBQAAAAxTdGFrZUJhbGFuY2UIBQAAAANwbXQAAAAGYW1vdW50BAAAAAtQcml6ZUFtb3VudAkAAGUAAAACBQAAABpDb250cmFjdFdhbGxldFN0YWtlQmFsYW5jZQUAAAASU3Rha2VCYWxhbmNlQW1vdW50BAAAABhjdXJyZW50QW1vdW50R292ZXJuVG9rZW4EAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwUAAAASVXNlckdvdmVyblRva2VuS2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAAFUhlaWdodFRyYW5zYWN0RnVuZEJveAQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzAgAAAAtQcml6ZUhlaWdodAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAABBQcml6ZUhlaWdodFZhbHVlAwMJAAAAAAAAAgUAAAAVSGVpZ2h0VHJhbnNhY3RGdW5kQm94AAAAAAAAAAAACQAAAAAAAAIFAAAAC1ByaXplQW1vdW50AAAAAAAAAAAABwAAAAAAAAAAAAMDCQAAAAAAAAIFAAAAFUhlaWdodFRyYW5zYWN0RnVuZEJveAAAAAAAAAAAAAkBAAAAAiE9AAAAAgUAAAALUHJpemVBbW91bnQAAAAAAAAAAAAHBQAAAAZoZWlnaHQDAwkBAAAAAiE9AAAAAgUAAAAVSGVpZ2h0VHJhbnNhY3RGdW5kQm94AAAAAAAAAAAACQEAAAACIT0AAAACBQAAAAtQcml6ZUFtb3VudAAAAAAAAAAAAAcFAAAAFUhlaWdodFRyYW5zYWN0RnVuZEJveAAAAAAAAAAAAAMJAABmAAAAAgAAAAAABfXhAAUAAAAfR292ZXJuVG9rZW5TbWFydENvbnRyYWN0QmFsYW5jZQkAAAIAAAABAgAAAD5ObyBlbm91Z2ggR292ZXJuVG9rZW4gSW4gQ29udHJhY3QsIFBsZWFzZSBkZXBvc2l0IEdvdmVyblRva2VucwQAAAAGUmV3YXJkAwkAAAAAAAACBQAAAAxTdGFrZUJhbGFuY2UAAAAAAAAAAAAAAAAAAAAAJxADCQAAZgAAAAIFAAAAGE5ld1VzZXJTdGFrZVRyYW5zYWN0aW9ucwAAAAAAAAAACgkAAGgAAAACCQAAaAAAAAIAAAAAAAAAJxAFAAAAGE5ld1VzZXJTdGFrZVRyYW5zYWN0aW9ucwkAAGQAAAACAAAAAAAAAAABCQAAaQAAAAIFAAAAFG5ld0Ftb3VudFN0YWtlZFRva2VuBQAAAAxTdGFrZUJhbGFuY2UJAABoAAAAAgAAAAAAAAAnEAkAAGQAAAACAAAAAAAAAAABCQAAaQAAAAIFAAAAFG5ld0Ftb3VudFN0YWtlZFRva2VuBQAAAAxTdGFrZUJhbGFuY2UEAAAADFVzZXJBUFlWYWx1ZQMJAABmAAAAAgUAAAAYY3VycmVudEFtb3VudEdvdmVyblRva2VuAAAAAAAAAAAACQAAaQAAAAIJAABoAAAAAgAAAAAAAAAAZAUAAAAGUmV3YXJkBQAAABhjdXJyZW50QW1vdW50R292ZXJuVG9rZW4AAAAAAAAAAAAEAAAAFG5ld0Ftb3VudEdvdmVyblRva2VuCQAAZAAAAAIFAAAAGGN1cnJlbnRBbW91bnRHb3Zlcm5Ub2tlbgUAAAAGUmV3YXJkCQEAAAAMU2NyaXB0UmVzdWx0AAAAAgkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAASVXNlckdvdmVyblRva2VuS2V5BQAAABRuZXdBbW91bnRHb3Zlcm5Ub2tlbgkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAASVXNlclN0YWtlZFRva2VuS2V5BQAAABRuZXdBbW91bnRTdGFrZWRUb2tlbgkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAAYVXNlclN0YWtlVHJhbnNhY3Rpb25zS2V5BQAAABhOZXdVc2VyU3Rha2VUcmFuc2FjdGlvbnMJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAICAAAADFN0YWtlQmFsYW5jZQUAAAASU3Rha2VCYWxhbmNlQW1vdW50CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACAgAAAAdGdW5kQm94BQAAAAtQcml6ZUFtb3VudAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgIAAAALUHJpemVIZWlnaHQFAAAAEFByaXplSGVpZ2h0VmFsdWUJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAAB1VzZXJBUFkFAAAADFVzZXJBUFlWYWx1ZQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAASVXNlckxhc3RTdGFrZUJsb2NrBQAAABpVc2VyTGFzdFN0YWtlQmxvY2tOZXdWYWx1ZQUAAAADbmlsCQEAAAALVHJhbnNmZXJTZXQAAAABCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAAFpAAAABmNhbGxlcgUAAAAGUmV3YXJkBQAAAAtHb3Zlcm5Ub2tlbgUAAAADbmlsCQAAAgAAAAECAAAAG0NhbiBkZXBvc2l0IG9ubHkgU3Rha2VUb2tlbgAAAAFpAQAAABNXaXRoZHJhd1N0YWtlZEZ1bmRzAAAAAQAAAAZhbW91bnQEAAAAC1N0YWtlZFRva2VuAQAAACDJ87corWdBF00yBjV0LGSEbO+I4qSbJ8cU6qkf0I2fVAQAAAALR292ZXJuVG9rZW4BAAAAILaKRSB1rUd8d97dJwjKWv3ewXb6FGo0UDf32gwrBHkw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", "height": 2554373, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: FxaT9ZwonEhfGmSa2CWWzruhRye8EMSuDhetvDWSTmic Next: GUT2BaQfQYT44t7gWYz8CtYdSU9wXSBQMgGYkeFjQXnT Diff:
OldNewDifferences
211211 0
212212 }
213213 let StakeBalanceAmount = (StakeBalance + pmt.amount)
214- let PrizeAmount = ((ContractWalletStakeBalance + pmt.amount) - StakeBalance)
214+ let PrizeAmount = (ContractWalletStakeBalance - StakeBalanceAmount)
215215 let currentAmountGovernToken = match getInteger(this, UserGovernTokenKey) {
216216 case a: Int =>
217217 a
277277 case _ =>
278278 0
279279 }
280- let PrizeAmount = ((ContractWalletStakeBalance - amount) - StakeBalance)
280+ let PrizeAmount = ((ContractWalletStakeBalance - StakeBalance) - amount)
281281 let HeightTransactFundBox = match getInteger(this, "PrizeHeight") {
282282 case a: Int =>
283283 a
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'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 () = {
2929 let StakedToken = base58'EbLVSrAi6vS3AkLwBinzZCvAXP2yYiFJEzj1MBVHcwZ5'
3030 let GovernToken = base58'DHZVHe6JzD61zTwH4ZnHnmo3w7oKGABXwgBt4S8KkzUP'
3131 let minPushBlock = 10
3232 let minStakeBlock = 7
3333 let DelayAfterPush = 20
3434 let minref = 10
3535 let userWalletGovernBalance = assetBalance(Address(i.caller.bytes), GovernToken)
3636 let pmt = extract(i.payment)
3737 let UserPush = (toBase58String(i.caller.bytes) + "_Push")
3838 let UserLastPushOldValue = match getInteger(this, UserPush) {
3939 case a: Int =>
4040 a
4141 case _ =>
4242 0
4343 }
4444 let UserRefsNum = (toBase58String(i.caller.bytes) + "_refs")
4545 let UserRefsNumValue = match getInteger(this, UserRefsNum) {
4646 case a: Int =>
4747 a
4848 case _ =>
4949 0
5050 }
5151 let HighestPushValue = match getInteger(this, "HighestPush") {
5252 case a: Int =>
5353 a
5454 case _ =>
5555 0
5656 }
5757 if ((userWalletGovernBalance > pmt.amount))
5858 then if (if (((pmt.amount + UserLastPushOldValue) > HighestPushValue))
5959 then (pmt.assetId == GovernToken)
6060 else false)
6161 then {
6262 let UserLastPushBlock = (toBase58String(i.caller.bytes) + "_UserLastPushBlock")
6363 let UserLastStakeBlock = (toBase58String(i.caller.bytes) + "_UserLastStakeBlock")
6464 let UserStake = (toBase58String(i.caller.bytes) + "_Staking")
6565 let ContractWalletStakeBalance = assetBalance(this, StakedToken)
6666 let StakeBalance = match getInteger(this, "StakeBalance") {
6767 case a: Int =>
6868 a
6969 case _ =>
7070 0
7171 }
7272 let PrizeAmount = (ContractWalletStakeBalance - StakeBalance)
7373 let HeightTransactFundBox = match getInteger(this, "PrizeHeight") {
7474 case a: Int =>
7575 a
7676 case _ =>
7777 0
7878 }
7979 let PrizeHeightValue = if (if ((HeightTransactFundBox == 0))
8080 then (PrizeAmount == 0)
8181 else false)
8282 then 0
8383 else if (if ((HeightTransactFundBox == 0))
8484 then (PrizeAmount != 0)
8585 else false)
8686 then height
8787 else if (if ((HeightTransactFundBox != 0))
8888 then (PrizeAmount != 0)
8989 else false)
9090 then HeightTransactFundBox
9191 else 0
9292 let ActualDelay = match getInteger(this, "Delay") {
9393 case a: Int =>
9494 a
9595 case _ =>
9696 0
9797 }
9898 let NewDelay = (ActualDelay + DelayAfterPush)
9999 let HighestPushAddress = match getInteger(this, "HighestPushAddress") {
100100 case a: Int =>
101101 a
102102 case _ =>
103103 0
104104 }
105105 let UserLastPushBlockValue = match getInteger(this, UserLastPushBlock) {
106106 case a: Int =>
107107 a
108108 case _ =>
109109 0
110110 }
111111 let UserLastStakeBlockValue = match getInteger(this, UserLastStakeBlock) {
112112 case a: Int =>
113113 a
114114 case _ =>
115115 0
116116 }
117117 let UserStakeValue = match getInteger(this, UserStake) {
118118 case a: Int =>
119119 a
120120 case _ =>
121121 0
122122 }
123123 let DevBoxBalance = match getInteger(this, "DevBox") {
124124 case a: Int =>
125125 a
126126 case _ =>
127127 0
128128 }
129129 let DevBoxAmount = (DevBoxBalance + ((pmt.amount * 5) / 1000))
130130 let UserPushvalue = (pmt.amount + UserLastPushOldValue)
131131 if (if ((UserPushvalue > 0))
132132 then ((height - UserLastStakeBlockValue) > (1440 * minStakeBlock))
133133 else false)
134134 then if (((height - UserLastPushBlockValue) > minPushBlock))
135135 then if ((UserStakeValue > 0))
136136 then if ((UserPushvalue > HighestPushValue))
137137 then if ((PrizeAmount > 0))
138138 then if (if (if (if (((PrizeHeightValue + NewDelay) > height))
139139 then true
140140 else (height > ((PrizeHeightValue + NewDelay) + 1440)))
141141 then (HighestPushValue > 0)
142142 else false)
143143 then true
144144 else (HighestPushValue == 0))
145145 then if ((UserRefsNumValue > minref))
146146 then WriteSet([DataEntry(UserPush, UserPushvalue), DataEntry("HighestPushAddress", toBase58String(i.caller.bytes)), DataEntry("HighestPush", UserPushvalue), DataEntry(UserLastPushBlock, height), DataEntry("PrizeHeight", PrizeHeightValue), DataEntry("Delay", NewDelay), DataEntry("DevBox", DevBoxAmount)])
147147 else throw("You have to have 10 referrals already staking for a minimum of 10 days, to push")
148148 else {
149149 let txt = if ((HighestPushValue > 0))
150150 then "You cannot Push after rewarding Prize and before One day has passed after award"
151151 else "Unexpected error"
152152 throw(txt)
153153 }
154154 else throw("You cannot push before the reward is unlocked, no reward has been detected yet")
155155 else throw("Your push in troikan token, should be Higher than last Highest Push")
156156 else throw("To be able to participate in Pushing for the reward you need to Stake ASIMIs in the dApp")
157157 else throw("You have to wait 10min before you can make a new Push")
158158 else throw(("Your Push dot not comply one of the following conditions: " + "1. Positive Value for Push in Troikan Toke
159159 2. Must Staked ASIMI Token for a minimum of week "))
160160 }
161161 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"))
162162 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 !")
163163 }
164164
165165
166166
167167 @Callable(i)
168168 func Stake () = {
169169 let StakedToken = base58'EbLVSrAi6vS3AkLwBinzZCvAXP2yYiFJEzj1MBVHcwZ5'
170170 let GovernToken = base58'DHZVHe6JzD61zTwH4ZnHnmo3w7oKGABXwgBt4S8KkzUP'
171171 let pmt = extract(i.payment)
172172 if (if ((pmt.amount > 0))
173173 then (pmt.assetId == StakedToken)
174174 else false)
175175 then {
176176 let GovernTokenSmartContractBalance = assetBalance(this, GovernToken)
177177 let UserAPY = (toBase58String(i.caller.bytes) + "_APY")
178178 let UserStakedTokenKey = (toBase58String(i.caller.bytes) + "_Staking")
179179 let UserGovernTokenKey = (toBase58String(i.caller.bytes) + "_Earnings")
180180 let UserLastStakeBlock = (toBase58String(i.caller.bytes) + "_UserLastStakeBlock")
181181 let UserStakeTransactionsKey = (toBase58String(i.caller.bytes) + "_StakedTransactions")
182182 let AddressHeight = (toBase58String(i.caller.bytes) + "_PrizeHeight")
183183 let UserStakeTransactions = match getInteger(this, UserStakeTransactionsKey) {
184184 case a: Int =>
185185 a
186186 case _ =>
187187 0
188188 }
189189 let UserLastStakeBlockValue = match getInteger(this, UserLastStakeBlock) {
190190 case a: Int =>
191191 a
192192 case _ =>
193193 0
194194 }
195195 let UserLastStakeBlockNewValue = if ((UserLastStakeBlockValue == 0))
196196 then height
197197 else UserLastStakeBlockValue
198198 let NewUserStakeTransactions = (UserStakeTransactions + 1)
199199 let currentAmountStakedToken = match getInteger(this, UserStakedTokenKey) {
200200 case a: Int =>
201201 a
202202 case _ =>
203203 0
204204 }
205205 let newAmountStakedToken = (currentAmountStakedToken + pmt.amount)
206206 let ContractWalletStakeBalance = assetBalance(this, StakedToken)
207207 let StakeBalance = match getInteger(this, "StakeBalance") {
208208 case a: Int =>
209209 a
210210 case _ =>
211211 0
212212 }
213213 let StakeBalanceAmount = (StakeBalance + pmt.amount)
214- let PrizeAmount = ((ContractWalletStakeBalance + pmt.amount) - StakeBalance)
214+ let PrizeAmount = (ContractWalletStakeBalance - StakeBalanceAmount)
215215 let currentAmountGovernToken = match getInteger(this, UserGovernTokenKey) {
216216 case a: Int =>
217217 a
218218 case _ =>
219219 0
220220 }
221221 let HeightTransactFundBox = match getInteger(this, "PrizeHeight") {
222222 case a: Int =>
223223 a
224224 case _ =>
225225 0
226226 }
227227 let PrizeHeightValue = if (if ((HeightTransactFundBox == 0))
228228 then (PrizeAmount == 0)
229229 else false)
230230 then 0
231231 else if (if ((HeightTransactFundBox == 0))
232232 then (PrizeAmount != 0)
233233 else false)
234234 then height
235235 else if (if ((HeightTransactFundBox != 0))
236236 then (PrizeAmount != 0)
237237 else false)
238238 then HeightTransactFundBox
239239 else 0
240240 if ((100000000 > GovernTokenSmartContractBalance))
241241 then throw("No enough GovernToken In Contract, Please deposit GovernTokens")
242242 else {
243243 let Reward = if ((StakeBalance == 0))
244244 then 10000
245245 else if ((NewUserStakeTransactions > 10))
246246 then ((10000 * NewUserStakeTransactions) * (1 + (newAmountStakedToken / StakeBalance)))
247247 else (10000 * (1 + (newAmountStakedToken / StakeBalance)))
248248 let UserAPYValue = if ((currentAmountGovernToken > 0))
249249 then ((100 * Reward) / currentAmountGovernToken)
250250 else 0
251251 let newAmountGovernToken = (currentAmountGovernToken + Reward)
252252 ScriptResult(WriteSet([DataEntry(UserGovernTokenKey, newAmountGovernToken), DataEntry(UserStakedTokenKey, newAmountStakedToken), DataEntry(UserStakeTransactionsKey, NewUserStakeTransactions), DataEntry("StakeBalance", StakeBalanceAmount), DataEntry("FundBox", PrizeAmount), DataEntry("PrizeHeight", PrizeHeightValue), DataEntry(UserAPY, UserAPYValue), DataEntry(UserLastStakeBlock, UserLastStakeBlockNewValue)]), TransferSet([ScriptTransfer(i.caller, Reward, GovernToken)]))
253253 }
254254 }
255255 else throw("Can deposit only StakeToken")
256256 }
257257
258258
259259
260260 @Callable(i)
261261 func WithdrawStakedFunds (amount) = {
262262 let StakedToken = base58'EbLVSrAi6vS3AkLwBinzZCvAXP2yYiFJEzj1MBVHcwZ5'
263263 let GovernToken = base58'DHZVHe6JzD61zTwH4ZnHnmo3w7oKGABXwgBt4S8KkzUP'
264264 let UserLastStakeBlock = (toBase58String(i.caller.bytes) + "_UserLastStakeBlock")
265265 let UserStakedTokenKey = (toBase58String(i.caller.bytes) + "_Staking")
266266 let UserGovernTokenKey = ((toBase58String(i.caller.bytes) + "_") + toBase58String(GovernToken))
267267 let ContractWalletStakeBalance = assetBalance(this, StakedToken)
268268 let UserLastStakeBlockValue = match getInteger(this, UserLastStakeBlock) {
269269 case a: Int =>
270270 a
271271 case _ =>
272272 0
273273 }
274274 let StakeBalance = match getInteger(this, "StakeBalance") {
275275 case a: Int =>
276276 a
277277 case _ =>
278278 0
279279 }
280- let PrizeAmount = ((ContractWalletStakeBalance - amount) - StakeBalance)
280+ let PrizeAmount = ((ContractWalletStakeBalance - StakeBalance) - amount)
281281 let HeightTransactFundBox = match getInteger(this, "PrizeHeight") {
282282 case a: Int =>
283283 a
284284 case _ =>
285285 0
286286 }
287287 let PrizeHeightValue = if (if ((HeightTransactFundBox == 0))
288288 then (PrizeAmount == 0)
289289 else false)
290290 then 0
291291 else if (if ((HeightTransactFundBox == 0))
292292 then (PrizeAmount != 0)
293293 else false)
294294 then height
295295 else if (if ((HeightTransactFundBox != 0))
296296 then (PrizeAmount != 0)
297297 else false)
298298 then HeightTransactFundBox
299299 else 0
300300 let currentKey = toBase58String(i.caller.bytes)
301301 let currentAmount = match getInteger(this, UserStakedTokenKey) {
302302 case a: Int =>
303303 a
304304 case _ =>
305305 0
306306 }
307307 let newAmount = (currentAmount - amount)
308308 let StakeBalanceAmount = (StakeBalance - amount)
309309 let UserLastStakeBlockNewValue = if ((StakeBalanceAmount == 0))
310310 then 0
311311 else UserLastStakeBlockValue
312312 if ((0 > amount))
313313 then throw("Can't withdraw negative amount")
314314 else if ((0 > newAmount))
315315 then throw(("User cannot withdraw more than deposited funds, Your deposit is: " + toString((currentAmount / 100000000))))
316316 else if ((100000000 > assetBalance(this, GovernToken)))
317317 then throw(("Not enough Troika In Contract: " + toString((assetBalance(this, GovernToken) / 100000000))))
318318 else ScriptResult(WriteSet([DataEntry(UserGovernTokenKey, 100000000), DataEntry(UserStakedTokenKey, newAmount), DataEntry("StakeBalance", StakeBalanceAmount), DataEntry("FundBox", PrizeAmount), DataEntry("PrizeHeight", PrizeHeightValue), DataEntry(UserLastStakeBlock, UserLastStakeBlockNewValue)]), TransferSet([ScriptTransfer(i.caller, 100000000, GovernToken), ScriptTransfer(i.caller, amount, StakedToken)]))
319319 }
320320
321321
322322
323323 @Callable(i)
324324 func HarvestGovernToiken (amount) = {
325325 let StakedToken = base58'EbLVSrAi6vS3AkLwBinzZCvAXP2yYiFJEzj1MBVHcwZ5'
326326 let GovernToken = base58'DHZVHe6JzD61zTwH4ZnHnmo3w7oKGABXwgBt4S8KkzUP'
327327 let ContractWalletStakeBalance = assetBalance(this, StakedToken)
328328 let UserGovernTokenKey = (toBase58String(i.caller.bytes) + "_Earnings")
329329 let StakeBalance = match getInteger(this, "StakeBalance") {
330330 case a: Int =>
331331 a
332332 case _ =>
333333 0
334334 }
335335 let PrizeAmount = (ContractWalletStakeBalance - StakeBalance)
336336 let HeightTransactFundBox = match getInteger(this, "PrizeHeight") {
337337 case a: Int =>
338338 a
339339 case _ =>
340340 0
341341 }
342342 let PrizeHeightValue = if (if ((HeightTransactFundBox == 0))
343343 then (PrizeAmount == 0)
344344 else false)
345345 then 0
346346 else if (if ((HeightTransactFundBox == 0))
347347 then (PrizeAmount != 0)
348348 else false)
349349 then height
350350 else if (if ((HeightTransactFundBox != 0))
351351 then (PrizeAmount != 0)
352352 else false)
353353 then HeightTransactFundBox
354354 else 0
355355 let currentKey = toBase58String(i.caller.bytes)
356356 let currentAmount = match getInteger(this, UserGovernTokenKey) {
357357 case a: Int =>
358358 a
359359 case _ =>
360360 0
361361 }
362362 let newAmount = (currentAmount - amount)
363363 if ((0 > amount))
364364 then throw("Can't withdraw negative amount")
365365 else if ((0 > newAmount))
366366 then throw(("User cannot withdraw more than deposited funds, Your deposit is: " + toString((currentAmount / 100000000))))
367367 else ScriptResult(WriteSet([DataEntry(UserGovernTokenKey, newAmount), DataEntry("FundBox", PrizeAmount), DataEntry("PrizeHeight", PrizeHeightValue)]), TransferSet([ScriptTransfer(i.caller, amount, GovernToken)]))
368368 }
369369
370370
371371
372372 @Callable(i)
373373 func delayprize () = {
374374 let StakedToken = base58'EbLVSrAi6vS3AkLwBinzZCvAXP2yYiFJEzj1MBVHcwZ5'
375375 let GovernToken = base58'DHZVHe6JzD61zTwH4ZnHnmo3w7oKGABXwgBt4S8KkzUP'
376376 let DelayDays = 1
377377 let UserGovernTokenKey = ((toBase58String(i.caller.bytes) + "_") + toBase58String(GovernToken))
378378 let UserWalletSGovernBalance = assetBalance(Address(i.caller.bytes), GovernToken)
379379 let ContractWalletStakeBalance = assetBalance(this, StakedToken)
380380 let StakeBalance = match getInteger(this, "StakeBalance") {
381381 case a: Int =>
382382 a
383383 case _ =>
384384 0
385385 }
386386 let PrizeAmount = (ContractWalletStakeBalance - StakeBalance)
387387 let HeightTransactFundBox = match getInteger(this, "PrizeHeight") {
388388 case a: Int =>
389389 a
390390 case _ =>
391391 0
392392 }
393393 let PrizeHeightValue = if (if ((HeightTransactFundBox == 0))
394394 then (PrizeAmount == 0)
395395 else false)
396396 then 0
397397 else if (if ((HeightTransactFundBox == 0))
398398 then (PrizeAmount != 0)
399399 else false)
400400 then height
401401 else if (if ((HeightTransactFundBox != 0))
402402 then (PrizeAmount != 0)
403403 else false)
404404 then HeightTransactFundBox
405405 else 0
406406 let ActualDelay = match getInteger(this, "Delay") {
407407 case a: Int =>
408408 a
409409 case _ =>
410410 0
411411 }
412412 let ActualDelayCost = match getInteger(this, "DelayCost") {
413413 case a: Int =>
414414 a
415415 case _ =>
416416 10
417417 }
418418 let pmt = extract(i.payment)
419419 let DevBoxBalance = match getInteger(this, "DevBox") {
420420 case a: Int =>
421421 a
422422 case _ =>
423423 0
424424 }
425425 if (if (isDefined(pmt.assetId))
426426 then (extract(pmt.assetId) == GovernToken)
427427 else false)
428428 then if ((PrizeAmount > 0))
429429 then {
430430 let UserGovernTokenAmount = pmt.amount
431431 let DevBoxAmount = (DevBoxBalance + ((pmt.amount * 5) / 1000))
432432 let NewDelayCost = if ((ActualDelayCost == 0))
433433 then 1000000000
434434 else (2 * ActualDelayCost)
435435 if ((UserGovernTokenAmount >= NewDelayCost))
436436 then {
437437 let NewDelay = (ActualDelay + (1440 * DelayDays))
438438 WriteSet([DataEntry("Delay", NewDelay), DataEntry("DelayCost", NewDelayCost), DataEntry("FundBox", PrizeAmount), DataEntry("PrizeHeight", PrizeHeightValue), DataEntry("DevBox", DevBoxAmount)])
439439 }
440440 else throw((("To delay the release of the reward ONE DAY later than expected, you need " + toString(NewDelayCost)) + "TROIKAs"))
441441 }
442442 else throw("You cannot delay the reward before reward is received! Please wait until a reward is available")
443443 else throw("Can Use only Troika Token to Delay Reward")
444444 }
445445
446446
447447
448448 @Callable(i)
449449 func ClaimPrize () = {
450450 let StakedToken = base58'EbLVSrAi6vS3AkLwBinzZCvAXP2yYiFJEzj1MBVHcwZ5'
451451 let GovernToken = base58'DHZVHe6JzD61zTwH4ZnHnmo3w7oKGABXwgBt4S8KkzUP'
452452 let UserStakedTokenKey = (toBase58String(i.caller.bytes) + "_Staking")
453453 let UserPush = (toBase58String(i.caller.bytes) + "_Push")
454454 let UserLastStakeBlock = (toBase58String(i.caller.bytes) + "_UserLastStakeBlock")
455455 let minStakeBlock = 7
456456 let minref = 10
457457 let ContractGovTokenBalance = assetBalance(this, GovernToken)
458458 let ContractWalletStakeBalance = assetBalance(this, StakedToken)
459459 let StakeBalance = match getInteger(this, "StakeBalance") {
460460 case a: Int =>
461461 a
462462 case _ =>
463463 0
464464 }
465465 let PrizeAmount = (ContractWalletStakeBalance - StakeBalance)
466466 let UserPushValue = match getInteger(this, UserPush) {
467467 case a: Int =>
468468 a
469469 case _ =>
470470 0
471471 }
472472 let UserLastStakeBlockValue = match getInteger(this, UserLastStakeBlock) {
473473 case a: Int =>
474474 a
475475 case _ =>
476476 0
477477 }
478478 let UserStakedTokenAmount = match getInteger(this, UserStakedTokenKey) {
479479 case a: Int =>
480480 a
481481 case _ =>
482482 0
483483 }
484484 let ActualDelay = match getInteger(this, "Delay") {
485485 case a: Int =>
486486 a
487487 case _ =>
488488 0
489489 }
490490 let PrizeWinner = getStringValue(this, "HighestPushAddress")
491491 let PrizeHeight = match getInteger(this, "PrizeHeight") {
492492 case a: Int =>
493493 a
494494 case _ =>
495495 0
496496 }
497497 let HighestPushValue = match getInteger(this, "HighestPush") {
498498 case a: Int =>
499499 a
500500 case _ =>
501501 0
502502 }
503503 let UserRefsNum = (toBase58String(i.caller.bytes) + "_refs")
504504 let UserRefsNumValue = match getInteger(this, UserRefsNum) {
505505 case a: Int =>
506506 a
507507 case _ =>
508508 0
509509 }
510510 if (if ((PrizeAmount == 0))
511511 then true
512512 else (10000000000 > ContractGovTokenBalance))
513513 then throw("No prize to Claim or Not enough Govern Token en Contract (Min 100 Troika)")
514514 else if ((toBase58String(i.caller.bytes) != PrizeWinner))
515515 then throw("You are not the winner hence cannot claim the reward ")
516516 else if (if ((100000000 > UserStakedTokenAmount))
517517 then ((1440 * minStakeBlock) > UserLastStakeBlockValue)
518518 else false)
519519 then throw("You have to Stake ASIMI Token to claim reward ")
520520 else if (if ((height > (PrizeHeight + ActualDelay)))
521521 then (UserPushValue >= HighestPushValue)
522522 else false)
523523 then if ((UserRefsNumValue > minref))
524524 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)]))
525525 else throw("You have to have 10 referrals already staking for a minimum of 10 days to Claim the prize")
526526 else throw("You have to be the user with the highest Push and wait till countown is finished, to claim Reward")
527527 }
528528
529529
530530
531531 @Callable(i)
532532 func Addmentor (Mentor) = {
533533 let StakedToken = base58'EbLVSrAi6vS3AkLwBinzZCvAXP2yYiFJEzj1MBVHcwZ5'
534534 let GovernToken = base58'DHZVHe6JzD61zTwH4ZnHnmo3w7oKGABXwgBt4S8KkzUP'
535535 let UserMentorAddress = (toBase58String(i.caller.bytes) + "_Mentor")
536536 if ((Mentor != ""))
537537 then WriteSet([DataEntry(UserMentorAddress, Mentor)])
538538 else throw("Mentor's Address cannot be empty")
539539 }
540540
541541

github/deemru/w8io/873ac7e 
79.83 ms