tx · HSZSjCp2CeQwvZGTf63HWRgbz29mi2TWximLeYdSzHZT

3N9eE86dXUm7rfc2WWCMLHkaEM4Y8yoNj7u:  -0.01440000 Waves

2020.12.30 22:17 [1331833] smart account 3N9eE86dXUm7rfc2WWCMLHkaEM4Y8yoNj7u > SELF 0.00000000 Waves

{ "type": 13, "id": "HSZSjCp2CeQwvZGTf63HWRgbz29mi2TWximLeYdSzHZT", "fee": 1440000, "feeAssetId": null, "timestamp": 1609355828017, "version": 2, "chainId": 84, "sender": "3N9eE86dXUm7rfc2WWCMLHkaEM4Y8yoNj7u", "senderPublicKey": "FFDorDp8bC9dyUK2w8hYPWPVEcbbk9zYkpHn3gcq9svn", "proofs": [ "3sPYyYHL4jkb2SqKG1kR5Mv34cU3TevvTVsv4ZxwV1CN7phFRN3jNDMzFtwXJJMqqCSZ4ZDoK129YZmrXChUEkoN" ], "script": "base64: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dAAAAAZhbW91bnQAAAAAAAAAAAAJAAAAAAAAAggFAAAAA3BtdAAAAAdhc3NldElkBQAAAAtTdGFrZWRUb2tlbgcEAAAAElVzZXJTdGFrZWRUb2tlbktleQkAASwAAAACCQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMCAAAACF9TdGFraW5nBAAAABJVc2VyR292ZXJuVG9rZW5LZXkJAAEsAAAAAgkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzAgAAAAlfRWFybmluZ3MEAAAAGFVzZXJTdGFrZVRyYW5zYWN0aW9uc0tleQkAASwAAAACCQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMCAAAAE19TdGFrZWRUcmFuc2FjdGlvbnMEAAAADUFkZHJlc3NIZWlnaHQJAAEsAAAAAgkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzAgAAAAxfUHJpemVIZWlnaHQEAAAAFVVzZXJTdGFrZVRyYW5zYWN0aW9ucwQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzBQAAABhVc2VyU3Rha2VUcmFuc2FjdGlvbnNLZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAYTmV3VXNlclN0YWtlVHJhbnNhY3Rpb25zCQAAZAAAAAIFAAAAFVVzZXJTdGFrZVRyYW5zYWN0aW9ucwAAAAAAAAAAAQQAAAAYY3VycmVudEFtb3VudFN0YWtlZFRva2VuBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMFAAAAElVzZXJTdGFrZWRUb2tlbktleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAABRuZXdBbW91bnRTdGFrZWRUb2tlbgkAAGQAAAACBQAAABhjdXJyZW50QW1vdW50U3Rha2VkVG9rZW4IBQAAAANwbXQAAAAGYW1vdW50BAAAABpDb250cmFjdFdhbGxldFN0YWtlQmFsYW5jZQkAA+sAAAACBQAAAAR0aGlzBQAAAAtTdGFrZWRUb2tlbgQAAAAMU3Rha2VCYWxhbmNlBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMCAAAADFN0YWtlQmFsYW5jZQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAABJTdGFrZUJhbGFuY2VBbW91bnQJAABkAAAAAgUAAAAMU3Rha2VCYWxhbmNlCAUAAAADcG10AAAABmFtb3VudAQAAAALUHJpemVBbW91bnQJAABlAAAAAgUAAAAaQ29udHJhY3RXYWxsZXRTdGFrZUJhbGFuY2UFAAAADFN0YWtlQmFsYW5jZQQAAAAYY3VycmVudEFtb3VudEdvdmVyblRva2VuBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMFAAAAElVzZXJHb3Zlcm5Ub2tlbktleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAABVIZWlnaHRUcmFuc2FjdEZ1bmRCb3gEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwIAAAALUHJpemVIZWlnaHQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAQUHJpemVIZWlnaHRWYWx1ZQMDCQAAAAAAAAIFAAAAFUhlaWdodFRyYW5zYWN0RnVuZEJveAAAAAAAAAAAAAkBAAAAAiE9AAAAAgUAAAALUHJpemVBbW91bnQAAAAAAAAAAAAHBQAAAAZoZWlnaHQAAAAAAAAAAAADCQAAZgAAAAIAAAAAAAAAAAEFAAAAH0dvdmVyblRva2VuU21hcnRDb250cmFjdEJhbGFuY2UJAAACAAAAAQIAAAA+Tm8gZW5vdWdoIEdvdmVyblRva2VuIEluIENvbnRyYWN0LCBQbGVhc2UgZGVwb3NpdCBHb3Zlcm5Ub2tlbnMEAAAABlJld2FyZAMJAAAAAAAAAgUAAAAfU3Rha2VkVG9rZW5TbWFydENvbnRyYWN0QmFsYW5jZQAAAAAAAAAAAAAAAAAAAAAACgMJAABmAAAAAgUAAAAYTmV3VXNlclN0YWtlVHJhbnNhY3Rpb25zAAAAAAAAAAAyCQAAaAAAAAIJAABoAAAAAgAAAAAAAAAACgUAAAAYTmV3VXNlclN0YWtlVHJhbnNhY3Rpb25zCQAAaQAAAAIFAAAAFG5ld0Ftb3VudFN0YWtlZFRva2VuBQAAAB9TdGFrZWRUb2tlblNtYXJ0Q29udHJhY3RCYWxhbmNlCQAAaAAAAAIAAAAAAAAAAAoJAABpAAAAAgUAAAAUbmV3QW1vdW50U3Rha2VkVG9rZW4FAAAAH1N0YWtlZFRva2VuU21hcnRDb250cmFjdEJhbGFuY2UEAAAAFG5ld0Ftb3VudEdvdmVyblRva2VuCQAAZAAAAAIFAAAAGGN1cnJlbnRBbW91bnRHb3Zlcm5Ub2tlbgUAAAAGUmV3YXJkCQEAAAAMU2NyaXB0UmVzdWx0AAAAAgkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAASVXNlckdvdmVyblRva2VuS2V5BQAAABRuZXdBbW91bnRHb3Zlcm5Ub2tlbgkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAASVXNlclN0YWtlZFRva2VuS2V5BQAAABRuZXdBbW91bnRTdGFrZWRUb2tlbgkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAAYVXNlclN0YWtlVHJhbnNhY3Rpb25zS2V5BQAAABhOZXdVc2VyU3Rha2VUcmFuc2FjdGlvbnMJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAICAAAADFN0YWtlQmFsYW5jZQUAAAASU3Rha2VCYWxhbmNlQW1vdW50CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACAgAAAAdGdW5kQm94BQAAAAtQcml6ZUFtb3VudAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgIAAAALUHJpemVIZWlnaHQFAAAAEFByaXplSGVpZ2h0VmFsdWUFAAAAA25pbAkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIFAAAABlJld2FyZAUAAAALR292ZXJuVG9rZW4FAAAAA25pbAkAAAIAAAABAgAAABtDYW4gZGVwb3NpdCBvbmx5IFN0YWtlVG9rZW4AAAABaQEAAAATV2l0aGRyYXdTdGFrZWRGdW5kcwAAAAEAAAAGYW1vdW50BAAAAAtTdGFrZWRUb2tlbgEAAAAg4kCrtAPNiHBMRPYvMCXeThBq6KlRf6cxe4yUvVS2aoUEAAAAC0dvdmVyblRva2VuAQAAACASiWf4V0Rs4Spwpaqhn2bfVjnt1mPO6pt7R8ZSZ6gxXgQAAAASVXNlclN0YWtlZFRva2VuS2V5CQABLAAAAAIJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwIAAAAIX1N0YWtpbmcEAAAAElVzZXJHb3Zlcm5Ub2tlbktleQkAASwAAAACCQABLAAAAAIJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwIAAAABXwkAAlgAAAABBQAAAAtHb3Zlcm5Ub2tlbgQAAAAaQ29udHJhY3RXYWxsZXRTdGFrZUJhbGFuY2UJAAPrAAAAAgUAAAAEdGhpcwUAAAALU3Rha2VkVG9rZW4EAAAADFN0YWtlQmFsYW5jZQQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzAgAAAAxTdGFrZUJhbGFuY2UDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAALUHJpemVBbW91bnQJAABlAAAAAgUAAAAaQ29udHJhY3RXYWxsZXRTdGFrZUJhbGFuY2UFAAAADFN0YWtlQmFsYW5jZQQAAAAVSGVpZ2h0VHJhbnNhY3RGdW5kQm94BAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMCAAAAC1ByaXplSGVpZ2h0AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAAEFByaXplSGVpZ2h0VmFsdWUDAwkAAAAAAAACBQAAABVIZWlnaHRUcmFuc2FjdEZ1bmRCb3gAAAAAAAAAAAAJAQAAAAIhPQAAAAIFAAAAC1ByaXplQW1vdW50AAAAAAAAAAAABwUAAAAGaGVpZ2h0AAAAAAAAAAAABAAAAApjdXJyZW50S2V5CQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAADWN1cnJlbnRBbW91bnQEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwUAAAASVXNlclN0YWtlZFRva2VuS2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAACW5ld0Ftb3VudAkAAGUAAAACBQAAAA1jdXJyZW50QW1vdW50BQAAAAZhbW91bnQEAAAAElN0YWtlQmFsYW5jZUFtb3VudAkAAGUAAAACBQAAAAxTdGFrZUJhbGFuY2UFAAAABmFtb3VudAMJAABmAAAAAgAAAAAAAAAAAAUAAAAGYW1vdW50CQAAAgAAAAECAAAAHkNhbid0IHdpdGhkcmF3IG5lZ2F0aXZlIGFtb3VudAMJAABmAAAAAgAAAAAAAAAAAAUAAAAJbmV3QW1vdW50CQAAAgAAAAEJAAEsAAAAAgIAAABBVXNlciBjYW5ub3Qgd2l0aGRyYXcgbW9yZSB0aGFuIGRlcG9zaXRlZCBmdW5kcywgWW91ciBkZXBvc2l0IGlzOiAJAAGkAAAAAQUAAAANY3VycmVudEFtb3VudAQAAAARR292ZXJuVG9rZW5BbW91bnQJAAPrAAAAAgUAAAAEdGhpcwUAAAALR292ZXJuVG9rZW4DCQAAZgAAAAIAAAAAAAAAAAEFAAAAEUdvdmVyblRva2VuQW1vdW50CQAAAgAAAAECAAAAIU5vIGVub3VnaCBHb3Zlcm5Ub2tlbiBJbiBDb250cmFjdAkBAAAADFNjcmlwdFJlc3VsdAAAAAIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAAElVzZXJHb3Zlcm5Ub2tlbktleQAAAAAAAAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAASVXNlclN0YWtlZFRva2VuS2V5BQAAAAluZXdBbW91bnQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAICAAAADFN0YWtlQmFsYW5jZQUAAAASU3Rha2VCYWxhbmNlQW1vdW50CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACAgAAAAdGdW5kQm94BQAAAAtQcml6ZUFtb3VudAkA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", "height": 1331833, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 4WiAQJuoYcLkeqp6sWrJMernFBnB16ZsLMvfvTxvpdXv Next: 33dAvJZVcoxnidKAWaEHBkubVBaEdxr65qPFt2tpZBpd Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44
55
66 @Callable(i)
77 func ReadPoolData () = {
88 let GovernTokenKey = "GovernTokenMaxDeposit"
99 let MaxGovernTokenDepositerKey = "MaxGovernTokenDepositerKey"
1010 let StakedToken = base58'GECLRH2fx2Xxix5gmrGV92AMt1A9LPohRpqwqRE16mwr'
1111 let GovernToken = base58'2FMrxDLdQhauSY7d1uDUyKP1MpxkM7BeWA2UMnk3cG3P'
1212 let UserStakedTokenKey = ((toBase58String(i.caller.bytes) + "_") + toBase58String(StakedToken))
1313 let UserGovernTokenKey = ((toBase58String(i.caller.bytes) + "_") + toBase58String(GovernToken))
1414 let Winner = getStringValue(this, MaxGovernTokenDepositerKey)
1515 let MaxGovernTokenDeposit = match getInteger(this, GovernTokenKey) {
1616 case a: Int =>
1717 a
1818 case _ =>
1919 0
2020 }
2121 let ReadUserGovernTokenKey = getStringValue(this, UserGovernTokenKey)
2222 let UserGovernTokenBalance = match getInteger(this, UserGovernTokenKey) {
2323 case a: Int =>
2424 a
2525 case _ =>
2626 0
2727 }
2828 let ReadUserStakedTokenKey = getStringValue(this, UserStakedTokenKey)
2929 let UserStakedTokenBalance = match getInteger(this, UserStakedTokenKey) {
3030 case a: Int =>
3131 a
3232 case _ =>
3333 0
3434 }
3535 throw(((((((("Winner is.....: " + Winner) + " Balance is: ") + toString(MaxGovernTokenDeposit)) + "
3636 Staked Token in your Balance is.....: ") + toString(UserStakedTokenBalance)) + "
3737 Govern Token in your Balance is.....: ") + toString(UserGovernTokenBalance)))
3838 }
3939
4040
4141
4242 @Callable(i)
4343 func ResetAccount () = {
4444 let StakedToken = base58'GECLRH2fx2Xxix5gmrGV92AMt1A9LPohRpqwqRE16mwr'
4545 let GovernToken = base58'2FMrxDLdQhauSY7d1uDUyKP1MpxkM7BeWA2UMnk3cG3P'
4646 let UserStakedTokenKey = ((toBase58String(i.caller.bytes) + "_") + toBase58String(StakedToken))
4747 let UserGovernTokenKey = ((toBase58String(i.caller.bytes) + "_") + toBase58String(GovernToken))
4848 let UserStakeTransactionsKey = (toBase58String(i.caller.bytes) + "_StakedTransactions")
4949 WriteSet([DataEntry(UserGovernTokenKey, 0), DataEntry(UserStakedTokenKey, 0), DataEntry(UserStakeTransactionsKey, 0), DataEntry("DelayCost", 0), DataEntry("Delay", 0)])
5050 }
5151
5252
5353
5454 @Callable(i)
5555 func PushReward () = {
5656 let StakedToken = base58'GECLRH2fx2Xxix5gmrGV92AMt1A9LPohRpqwqRE16mwr'
5757 let GovernToken = base58'2FMrxDLdQhauSY7d1uDUyKP1MpxkM7BeWA2UMnk3cG3P'
5858 let pmt = extract(i.payment)
5959 let currentKey = (toBase58String(i.caller.bytes) + "_Push")
6060 let ContractWalletStakeBalance = assetBalance(this, StakedToken)
6161 let StakeBalance = match getInteger(this, "StakeBalance") {
6262 case a: Int =>
6363 a
6464 case _ =>
6565 0
6666 }
6767 let PrizeAmount = (ContractWalletStakeBalance - StakeBalance)
6868 let HeightTransactFundBox = match getInteger(this, "PrizeHeight") {
6969 case a: Int =>
7070 a
7171 case _ =>
7272 0
7373 }
7474 let PrizeHeightValue = if (if ((HeightTransactFundBox == 0))
7575 then (PrizeAmount != 0)
7676 else false)
7777 then WriteSet([DataEntry("FundBox", PrizeAmount), DataEntry("PrizeHeight", height)])
7878 else WriteSet([DataEntry("FundBox", PrizeAmount), DataEntry("PrizeHeight", height)])
7979 if (if ((pmt.amount > 0))
8080 then (pmt.assetId == GovernToken)
8181 else false)
8282 then {
8383 let GovernTokenKey = "GovernTokenMaxDeposit"
8484 let MaxGovernTokenDepositerKey = "MaxGovernTokenDepositerKey"
8585 let MaxGovernTokenDeposit = match getInteger(this, GovernTokenKey) {
8686 case a: Int =>
8787 a
8888 case _ =>
8989 0
9090 }
9191 let currentAmount = match getInteger(this, currentKey) {
9292 case a: Int =>
9393 a
9494 case _ =>
9595 0
9696 }
9797 let CurrrentGovernTokenDeposit = pmt.amount
9898 if ((CurrrentGovernTokenDeposit > MaxGovernTokenDeposit))
9999 then WriteSet([DataEntry(currentKey, CurrrentGovernTokenDeposit), DataEntry(GovernTokenKey, CurrrentGovernTokenDeposit), DataEntry(MaxGovernTokenDepositerKey, currentKey)])
100100 else throw((("You have to deposit more than " + toString(MaxGovernTokenDeposit)) + " Troika"))
101101 }
102102 else throw("Can deposit only StakeToken")
103103 }
104104
105105
106106
107107 @Callable(i)
108108 func Stake () = {
109109 let StakedToken = base58'GECLRH2fx2Xxix5gmrGV92AMt1A9LPohRpqwqRE16mwr'
110110 let GovernToken = base58'2FMrxDLdQhauSY7d1uDUyKP1MpxkM7BeWA2UMnk3cG3P'
111111 let GovernTokenSmartContractBalance = assetBalance(this, GovernToken)
112112 let StakedTokenSmartContractBalance = assetBalance(this, StakedToken)
113113 let pmt = extract(i.payment)
114114 if (if ((pmt.amount > 0))
115115 then (pmt.assetId == StakedToken)
116116 else false)
117117 then {
118118 let UserStakedTokenKey = (toBase58String(i.caller.bytes) + "_Staking")
119119 let UserGovernTokenKey = (toBase58String(i.caller.bytes) + "_Earnings")
120120 let UserStakeTransactionsKey = (toBase58String(i.caller.bytes) + "_StakedTransactions")
121121 let AddressHeight = (toBase58String(i.caller.bytes) + "_PrizeHeight")
122122 let UserStakeTransactions = match getInteger(this, UserStakeTransactionsKey) {
123123 case a: Int =>
124124 a
125125 case _ =>
126126 0
127127 }
128128 let NewUserStakeTransactions = (UserStakeTransactions + 1)
129129 let currentAmountStakedToken = match getInteger(this, UserStakedTokenKey) {
130130 case a: Int =>
131131 a
132132 case _ =>
133133 0
134134 }
135135 let newAmountStakedToken = (currentAmountStakedToken + pmt.amount)
136136 let ContractWalletStakeBalance = assetBalance(this, StakedToken)
137137 let StakeBalance = match getInteger(this, "StakeBalance") {
138138 case a: Int =>
139139 a
140140 case _ =>
141141 0
142142 }
143143 let StakeBalanceAmount = (StakeBalance + pmt.amount)
144144 let PrizeAmount = (ContractWalletStakeBalance - StakeBalance)
145145 let currentAmountGovernToken = match getInteger(this, UserGovernTokenKey) {
146146 case a: Int =>
147147 a
148148 case _ =>
149149 0
150150 }
151151 let HeightTransactFundBox = match getInteger(this, "PrizeHeight") {
152152 case a: Int =>
153153 a
154154 case _ =>
155155 0
156156 }
157157 let PrizeHeightValue = if (if ((HeightTransactFundBox == 0))
158158 then (PrizeAmount != 0)
159159 else false)
160160 then height
161161 else 0
162162 if ((1 > GovernTokenSmartContractBalance))
163163 then throw("No enough GovernToken In Contract, Please deposit GovernTokens")
164164 else {
165165 let Reward = if ((StakedTokenSmartContractBalance == 0))
166166 then 10
167167 else if ((NewUserStakeTransactions > 50))
168168 then ((10 * NewUserStakeTransactions) * (newAmountStakedToken / StakedTokenSmartContractBalance))
169169 else (10 * (newAmountStakedToken / StakedTokenSmartContractBalance))
170170 let newAmountGovernToken = (currentAmountGovernToken + Reward)
171171 ScriptResult(WriteSet([DataEntry(UserGovernTokenKey, newAmountGovernToken), DataEntry(UserStakedTokenKey, newAmountStakedToken), DataEntry(UserStakeTransactionsKey, NewUserStakeTransactions), DataEntry("StakeBalance", StakeBalanceAmount), DataEntry("FundBox", PrizeAmount), DataEntry("PrizeHeight", PrizeHeightValue)]), TransferSet([ScriptTransfer(i.caller, Reward, GovernToken)]))
172172 }
173173 }
174174 else throw("Can deposit only StakeToken")
175175 }
176176
177177
178178
179179 @Callable(i)
180180 func WithdrawStakedFunds (amount) = {
181181 let StakedToken = base58'GECLRH2fx2Xxix5gmrGV92AMt1A9LPohRpqwqRE16mwr'
182182 let GovernToken = base58'2FMrxDLdQhauSY7d1uDUyKP1MpxkM7BeWA2UMnk3cG3P'
183183 let UserStakedTokenKey = (toBase58String(i.caller.bytes) + "_Staking")
184184 let UserGovernTokenKey = ((toBase58String(i.caller.bytes) + "_") + toBase58String(GovernToken))
185185 let ContractWalletStakeBalance = assetBalance(this, StakedToken)
186186 let StakeBalance = match getInteger(this, "StakeBalance") {
187187 case a: Int =>
188188 a
189189 case _ =>
190190 0
191191 }
192192 let PrizeAmount = (ContractWalletStakeBalance - StakeBalance)
193193 let HeightTransactFundBox = match getInteger(this, "PrizeHeight") {
194194 case a: Int =>
195195 a
196196 case _ =>
197197 0
198198 }
199199 let PrizeHeightValue = if (if ((HeightTransactFundBox == 0))
200200 then (PrizeAmount != 0)
201201 else false)
202202 then height
203203 else 0
204204 let currentKey = toBase58String(i.caller.bytes)
205205 let currentAmount = match getInteger(this, UserStakedTokenKey) {
206206 case a: Int =>
207207 a
208208 case _ =>
209209 0
210210 }
211211 let newAmount = (currentAmount - amount)
212212 let StakeBalanceAmount = (StakeBalance - amount)
213213 if ((0 > amount))
214214 then throw("Can't withdraw negative amount")
215215 else if ((0 > newAmount))
216216 then throw(("User cannot withdraw more than deposited funds, Your deposit is: " + toString(currentAmount)))
217217 else {
218218 let GovernTokenAmount = assetBalance(this, GovernToken)
219219 if ((1 > GovernTokenAmount))
220220 then throw("No enough GovernToken In Contract")
221221 else ScriptResult(WriteSet([DataEntry(UserGovernTokenKey, 1), DataEntry(UserStakedTokenKey, newAmount), DataEntry("StakeBalance", StakeBalanceAmount), DataEntry("FundBox", PrizeAmount), DataEntry("PrizeHeight", PrizeHeightValue)]), TransferSet([ScriptTransfer(i.caller, 1, GovernToken), ScriptTransfer(i.caller, amount, StakedToken)]))
222222 }
223223 }
224224
225225
226226
227227 @Callable(i)
228228 func HarvestGovernToiken (amount) = {
229229 let StakedToken = base58'GECLRH2fx2Xxix5gmrGV92AMt1A9LPohRpqwqRE16mwr'
230230 let GovernToken = base58'2FMrxDLdQhauSY7d1uDUyKP1MpxkM7BeWA2UMnk3cG3P'
231231 let UserGovernTokenKey = (toBase58String(i.caller.bytes) + "_Earnings")
232232 let ContractWalletStakeBalance = assetBalance(this, StakedToken)
233233 let StakeBalance = match getInteger(this, "StakeBalance") {
234234 case a: Int =>
235235 a
236236 case _ =>
237237 0
238238 }
239239 let PrizeAmount = (ContractWalletStakeBalance - StakeBalance)
240240 let HeightTransactFundBox = match getInteger(this, "PrizeHeight") {
241241 case a: Int =>
242242 a
243243 case _ =>
244244 0
245245 }
246246 let PrizeHeightValue = if (if ((HeightTransactFundBox == 0))
247247 then (PrizeAmount != 0)
248248 else false)
249249 then height
250250 else 0
251251 let TimeTest = if (if ((HeightTransactFundBox == 0))
252252 then (PrizeAmount != 0)
253253 else false)
254254 then lastBlock.timestamp
255255 else 0
256256 let currentKey = toBase58String(i.caller.bytes)
257257 let currentAmount = match getInteger(this, UserGovernTokenKey) {
258258 case a: Int =>
259259 a
260260 case _ =>
261261 0
262262 }
263263 let newAmount = (currentAmount - amount)
264264 if ((0 > amount))
265265 then throw("Can't withdraw negative amount")
266266 else if ((0 > newAmount))
267267 then throw(("User cannot withdraw more than deposited funds, Your deposit is: " + toString(currentAmount)))
268268 else {
269269 let GovernTokenAmount = assetBalance(this, GovernToken)
270270 ScriptResult(WriteSet([DataEntry(UserGovernTokenKey, newAmount), DataEntry("FundBox", PrizeAmount), DataEntry("PrizeHeight", PrizeHeightValue), DataEntry("TimeTest", TimeTest)]), TransferSet([ScriptTransfer(i.caller, amount, GovernToken)]))
271271 }
272272 }
273273
274274
275275
276276 @Callable(i)
277277 func delayprize () = {
278278 let StakedToken = base58'GECLRH2fx2Xxix5gmrGV92AMt1A9LPohRpqwqRE16mwr'
279279 let GovernToken = base58'2FMrxDLdQhauSY7d1uDUyKP1MpxkM7BeWA2UMnk3cG3P'
280280 let UserGovernTokenKey = ((toBase58String(i.caller.bytes) + "_") + toBase58String(GovernToken))
281281 let UserWalletSGovernBalance = assetBalance(Address(i.caller.bytes), GovernToken)
282282 let ContractWalletStakeBalance = assetBalance(this, StakedToken)
283283 let StakeBalance = match getInteger(this, "StakeBalance") {
284284 case a: Int =>
285285 a
286286 case _ =>
287287 0
288288 }
289289 let PrizeAmount = (ContractWalletStakeBalance - StakeBalance)
290290 let HeightTransactFundBox = match getInteger(this, "PrizeHeight") {
291291 case a: Int =>
292292 a
293293 case _ =>
294294 0
295295 }
296296 let PrizeHeightValue = if (if ((HeightTransactFundBox == 0))
297297 then (PrizeAmount != 0)
298298 else false)
299299 then WriteSet([DataEntry("FundBox", PrizeAmount), DataEntry("PrizeHeight", height)])
300300 else WriteSet([DataEntry("FundBox", PrizeAmount), DataEntry("PrizeHeight", height)])
301301 let ActualDelay = match getInteger(this, "Delay") {
302302 case a: Int =>
303303 a
304304 case _ =>
305305 0
306306 }
307307 let ActualDelayCost = match getInteger(this, "DelayCost") {
308308 case a: Int =>
309309 a
310310 case _ =>
311311 10
312312 }
313313 let pmt = extract(i.payment)
314314 if (if (isDefined(pmt.assetId))
315315 then (extract(pmt.assetId) == GovernToken)
316316 else false)
317317 then {
318318 let UserGovernTokenAmount = pmt.amount
319319 let NewDelayCost = if ((ActualDelayCost == 0))
320320 then 10
321321 else (2 * ActualDelayCost)
322322 if ((UserGovernTokenAmount >= NewDelayCost))
323323 then {
324324 let NewDelay = (ActualDelay + 10)
325325 WriteSet([DataEntry("Delay", NewDelay), DataEntry("DelayCost", NewDelayCost)])
326326 }
327327 else throw((("To delay the release of the reward ONE DAY later than expected, you need " + toString(NewDelayCost)) + "TROIKAs"))
328328 }
329329 else throw("Can Use only Govern Token to Delay Reward")
330330 }
331331
332332
333333
334334 @Callable(i)
335335 func ClaimPrize () = {
336336 let StakedToken = base58'GECLRH2fx2Xxix5gmrGV92AMt1A9LPohRpqwqRE16mwr'
337337 let GovernToken = base58'2FMrxDLdQhauSY7d1uDUyKP1MpxkM7BeWA2UMnk3cG3P'
338338 let UserStakedTokenKey = (toBase58String(i.caller.bytes) + "_Staking")
339339 let UserGovernTokenKey = (toBase58String(i.caller.bytes) + "_Push")
340340 let GovernTokenAmount = assetBalance(this, GovernToken)
341341 let ContractWalletStakeBalance = assetBalance(this, StakedToken)
342342 let StakeBalance = match getInteger(this, "StakeBalance") {
343343 case a: Int =>
344344 a
345345 case _ =>
346346 0
347347 }
348348 let PrizeAmount = (ContractWalletStakeBalance - StakeBalance)
349349 let UserGovernTokenAmount = match getInteger(this, UserGovernTokenKey) {
350350 case a: Int =>
351351 a
352352 case _ =>
353353 0
354354 }
355355 let UserStakedTokenAmount = match getInteger(this, UserStakedTokenKey) {
356356 case a: Int =>
357357 a
358358 case _ =>
359359 0
360360 }
361361 let ActualDelay = match getInteger(this, "Delay") {
362362 case a: Int =>
363363 a
364364 case _ =>
365365 0
366366 }
367367 let GovernTokenKey = "GovernTokenMaxDeposit"
368368 let MaxGovernTokenDepositerKey = "MaxGovernTokenDepositerKey"
369369 let PrizeWinner = getStringValue(this, MaxGovernTokenDepositerKey)
370370 let PrizeHeight = match getInteger(this, "PrizeHeight") {
371371 case a: Int =>
372372 a
373373 case _ =>
374374 0
375375 }
376376 let MaxGovernTokenDeposit = match getInteger(this, GovernTokenKey) {
377377 case a: Int =>
378378 a
379379 case _ =>
380380 0
381381 }
382382 if (if ((PrizeAmount == 0))
383383 then true
384384 else (100 > GovernTokenAmount))
385385 then throw("No prize to Claim or No enough Govern Token en Contract")
386386 else if ((UserGovernTokenKey != PrizeWinner))
387387 then throw("You are not the winner hence cannot claim the reward ")
388388 else if ((1 > UserStakedTokenAmount))
389389 then throw(("You have to Stake StakedToken to claim reward
390390 Your Balance of Staked Tokens is: " + toString(UserStakedTokenAmount)))
391391 else if (if (if ((UserGovernTokenAmount >= 100))
392392 then (height >= (PrizeHeight + ActualDelay))
393393 else false)
394394 then (height > 0)
395395 else false)
396396 then if ((UserGovernTokenAmount >= MaxGovernTokenDeposit))
397397 then ScriptResult(WriteSet([DataEntry(PrizeWinner, PrizeAmount), DataEntry("FundBox", 0), DataEntry(GovernTokenKey, 0), DataEntry(UserGovernTokenKey, 0), DataEntry(MaxGovernTokenDepositerKey, ""), DataEntry("PrizeHeight", 0), DataEntry("Delay", 0), DataEntry("DelayCost", 0)]), TransferSet([ScriptTransfer(i.caller, PrizeAmount, StakedToken), ScriptTransfer(i.caller, 100, GovernToken)]))
398398 else throw((("You should deposit at least " + toString(MaxGovernTokenDeposit)) + " to be able to claim reward"))
399399 else throw(((((((("You have to deposit 100 GovernToken to claim Reward
400400 Your Balance is: " + toString(UserGovernTokenAmount)) + "
401401 Deposit done at: ") + toString(PrizeHeight)) + " And wait:") + toString((PrizeHeight + 10))) + "And Height is:") + toString(height)))
402402 }
403403
404404

github/deemru/w8io/873ac7e 
45.86 ms