tx · Guwa1N5APTsD8CAJYcr7UmFAtKtXqoTqpwt95Aq7Lsz5

3N9evuqxGecMq9hBmpdJu2VkMzdR5VNVrvK:  -0.01000000 Waves

2021.07.25 14:15 [1629095] smart account 3N9evuqxGecMq9hBmpdJu2VkMzdR5VNVrvK > SELF 0.00000000 Waves

{ "type": 13, "id": "Guwa1N5APTsD8CAJYcr7UmFAtKtXqoTqpwt95Aq7Lsz5", "fee": 1000000, "feeAssetId": null, "timestamp": 1627211803295, "version": 2, "chainId": 84, "sender": "3N9evuqxGecMq9hBmpdJu2VkMzdR5VNVrvK", "senderPublicKey": "AHY8zupoYc6HPJ5fh1gQiGE9bNZSeifFbcQQ89okxVug", "proofs": [ "3yVPYG8AD49raCNxritvvuhSF1RiGyienzRU4q8uHHcgFtp2KgUGnzcoStLuDYLCKjsHsnaML5CZgC8gBNiTy2Rw" ], "script": "base64:AAIDAAAAAAAABw0IARIAEgASABIDCgEBEgASAwoBARIAEgASAwoBCBoHCgJhMRIBaRoQCgJhMhIKY3VycmVudEtleRoRCgJhMxILR292ZXJuVG9rZW4aEgoCYTQSDERldkJveEFtb3VudBoNCgJhNRIHJG1hdGNoMBoHCgJhNhIBYRoRCgJhNxILU3Rha2VkVG9rZW4aEgoCYTgSDG1pblB1c2hCbG9jaxoTCgJhORINbWluU3Rha2VCbG9jaxoUCgJiMRIORGVsYXlBZnRlclB1c2gaDgoCYjISCFdhaXRUaW1lGgwKAmIzEgZtaW5yZWYaHQoCYjQSF3VzZXJXYWxsZXRHb3Zlcm5CYWxhbmNlGgkKAmI1EgNwbXQaDgoCYjYSCFVzZXJQdXNoGhoKAmI3EhRVc2VyTGFzdFB1c2hPbGRWYWx1ZRoRCgJiOBILVXNlclJlZnNOdW0aFgoCYjkSEFVzZXJSZWZzTnVtVmFsdWUaFgoCYzESEEhpZ2hlc3RQdXNoVmFsdWUaFwoCYzISEVVzZXJMYXN0UHVzaEJsb2NrGhgKAmMzEhJVc2VyTGFzdFN0YWtlQmxvY2saDwoCYzQSCVVzZXJTdGFrZRogCgJjNRIaQ29udHJhY3RXYWxsZXRTdGFrZUJhbGFuY2UaEgoCYzYSDFN0YWtlQmFsYW5jZRoRCgJjNxILUHJpemVBbW91bnQaGwoCYzgSFUhlaWdodFRyYW5zYWN0RnVuZEJveBoWCgJjORIQUHJpemVIZWlnaHRWYWx1ZRoRCgJkMRILQWN0dWFsRGVsYXkaGAoCZDISEkhpZ2hlc3RQdXNoQWRkcmVzcxocCgJkMxIWVXNlckxhc3RQdXNoQmxvY2tWYWx1ZRodCgJkNBIXVXNlckxhc3RTdGFrZUJsb2NrVmFsdWUaFAoCZDUSDlVzZXJTdGFrZVZhbHVlGhMKAmQ2Eg1EZXZCb3hCYWxhbmNlGhMKAmQ3Eg1Vc2VyUHVzaHZhbHVlGg4KAmQ4EghOZXdEZWxheRoZCgJkORITUHJpemVIZWlnaHRWYWx1ZU5ldxoJCgJlMRIDdHh0GiUKAmUyEh9Hb3Zlcm5Ub2tlblNtYXJ0Q29udHJhY3RCYWxhbmNlGg0KAmUzEgdVc2VyQVBZGhgKAmU0EhJVc2VyU3Rha2VkVG9rZW5LZXkaGAoCZTUSElVzZXJHb3Zlcm5Ub2tlbktleRoeCgJlNhIYVXNlclN0YWtlVHJhbnNhY3Rpb25zS2V5GhMKAmU3Eg1BZGRyZXNzSGVpZ2h0GhsKAmU4EhVVc2VyU3Rha2VUcmFuc2FjdGlvbnMaGwoCZTkSFU1heFN0YWtlZERlcG9zaXRWYWx1ZRoeCgJmMRIYTWF4U3Rha2VkRGVwb3NpdE5ld1ZhbHVlGhMKAmYyEg1Vc2VyUHVzaFZhbHVlGiAKAmYzEhpVc2VyTGFzdFN0YWtlQmxvY2tOZXdWYWx1ZRoeCgJmNBIYTmV3VXNlclN0YWtlVHJhbnNhY3Rpb25zGh4KAmY1EhhjdXJyZW50QW1vdW50U3Rha2VkVG9rZW4aGgoCZjYSFG5ld0Ftb3VudFN0YWtlZFRva2VuGhgKAmY3EhJTdGFrZUJhbGFuY2VBbW91bnQaHgoCZjgSGGN1cnJlbnRBbW91bnRHb3Zlcm5Ub2tlbhoMCgJmORIGUmV3YXJkGhIKAmcxEgxVc2VyQVBZVmFsdWUaGgoCZzISFG5ld0Ftb3VudEdvdmVyblRva2VuGgwKAmczEgZhbW91bnQaEwoCZzQSDWN1cnJlbnRBbW91bnQaDwoCZzUSCW5ld0Ftb3VudBoeCgJnNhIYTGFzdEJpZ1N0YWtlclJld2FyZEJsb2NrGhUKAmc3Eg9CaWdTdGFrZXJSZXdhcmQaGAoCZzgSEkxpbWlXaXRoZHJhd1Jld2FyZBobCgJnORIVVXNlckdvdmVyblRva2VuQW1vdW50GiMKAmgxEh1MYXN0QmlnU3Rha2VyUmV3YXJkQmxvY2tWYWx1ZRofCgJoMhIZQmlnU3Rha2VyUmV3YXJkVG90YWxWYWx1ZRoYCgJoMxISQmlnU3Rha2VyUmV3YXJkVGF4Gg8KAmg0EglEZWxheURheXMaHgoCaDUSGFVzZXJXYWxsZXRTR292ZXJuQmFsYW5jZRoVCgJoNhIPQWN0dWFsRGVsYXlDb3N0GhIKAmg3EgxOZXdEZWxheUNvc3QaHQoCaDgSF0NvbnRyYWN0R292VG9rZW5CYWxhbmNlGhsKAmg5EhVVc2VyU3Rha2VkVG9rZW5BbW91bnQaEQoCaTESC1ByaXplV2lubmVyGhEKAmkyEgtQcml6ZUhlaWdodBoMCgJpMxIGTWVudG9yGhcKAmk0EhFV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", "height": 1629095, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 9XdmtBzhbtuE6vDfMLiZSPTocEuye5JhMAyHU39Zw7A9 Next: 26VYd4Gz6diGzEvmHd8dEoK6ND7iqBP4hGytUuGUFCGw Diff:
OldNewDifferences
2828 func PushReward () = {
2929 let StakedToken = base58'DEjmrvdViZH7trtuAqaKQFjNjfbK6D7yMHm18UQ8Hj21'
3030 let GovernToken = base58'27RauQwTvdbcPqeFkzoTf5WPt3HtEAmRDVxprWUNp6bA'
31- let minPushBlock = 0
32- let minStakeBlock = (1 * 1)
33- let DelayAfterPush = 5
34- let WaitTime = 5
31+ let minPushBlock = 10
32+ let minStakeBlock = (7 * 1440)
33+ let DelayAfterPush = 60
34+ let WaitTime = 1440
3535 let minref = 0
3636 let userWalletGovernBalance = assetBalance(Address(i.caller.bytes), GovernToken)
3737 let pmt = extract(i.payment)
101101 case _ =>
102102 0
103103 }
104- let NewDelay = (ActualDelay + DelayAfterPush)
105104 let HighestPushAddress = match getInteger(this, "HighestPushAddress") {
106105 case a: Int =>
107106 a
134133 }
135134 let DevBoxAmount = (DevBoxBalance + ((pmt.amount * 5) / 1000))
136135 let UserPushvalue = (pmt.amount + UserLastPushOldValue)
136+ let NewDelay = if (if ((height > ((PrizeHeightValue + ActualDelay) + WaitTime)))
137+ then (HighestPushValue > 0)
138+ else false)
139+ then 0
140+ else (ActualDelay + DelayAfterPush)
137141 let PrizeHeightValueNew = if (if ((height > ((PrizeHeightValue + NewDelay) + WaitTime)))
138142 then (HighestPushValue > 0)
139143 else false)
198202 case _ =>
199203 0
200204 }
205+ let MaxStakedDepositValue = match getInteger(this, "MaxStakedDepositValue") {
206+ case a: Int =>
207+ a
208+ case _ =>
209+ 0
210+ }
211+ let MaxStakedDepositNewValue = if ((pmt.amount > MaxStakedDepositValue))
212+ then pmt.amount
213+ else MaxStakedDepositValue
201214 let UserPushValue = match getInteger(this, UserPush) {
202215 case a: Int =>
203216 a
272285 then ((100 * Reward) / currentAmountGovernToken)
273286 else 0
274287 let newAmountGovernToken = (currentAmountGovernToken + Reward)
275- ScriptResult(WriteSet([DataEntry(UserGovernTokenKey, newAmountGovernToken), DataEntry(UserStakedTokenKey, newAmountStakedToken), DataEntry(UserStakeTransactionsKey, NewUserStakeTransactions), DataEntry("StakeBalance", StakeBalanceAmount), DataEntry("PrizeHeight", PrizeHeightValue), DataEntry(UserAPY, UserAPYValue), DataEntry(UserLastStakeBlock, UserLastStakeBlockNewValue), DataEntry(UserPush, UserPushValue)]), TransferSet([ScriptTransfer(i.caller, Reward, GovernToken)]))
288+ ScriptResult(WriteSet([DataEntry(UserGovernTokenKey, newAmountGovernToken), DataEntry(UserStakedTokenKey, newAmountStakedToken), DataEntry(UserStakeTransactionsKey, NewUserStakeTransactions), DataEntry("StakeBalance", StakeBalanceAmount), DataEntry("PrizeHeight", PrizeHeightValue), DataEntry(UserAPY, UserAPYValue), DataEntry(UserLastStakeBlock, UserLastStakeBlockNewValue), DataEntry(UserPush, UserPushValue), DataEntry("MaxStakedDepositValue", MaxStakedDepositNewValue)]), TransferSet([ScriptTransfer(i.caller, Reward, GovernToken)]))
276289 }
277290 }
278291 else throw("Can deposit only StakeToken")
356369 let BigStakerReward = (toBase58String(i.caller.bytes) + "_BigStaker")
357370 let UserGovernTokenKey = (toBase58String(i.caller.bytes) + "_Earnings")
358371 let LimiWithdrawReward = 10
359- let UserStakedTokenKey = (toBase58String(i.caller.bytes) + "_Staking")
360- let currentAmountStakedToken = match getInteger(this, UserStakedTokenKey) {
361- case a: Int =>
362- a
363- case _ =>
364- 0
365- }
366372 let UserGovernTokenAmount = match getInteger(this, UserGovernTokenKey) {
367373 case a: Int =>
368374 a
375381 case _ =>
376382 0
377383 }
378- let BigStakersBalance = match getInteger(this, "BigStakersBalance") {
384+ let BigStakerRewardTotalValue = match getInteger(this, "BigStakerRewardTotal") {
379385 case a: Int =>
380386 a
381387 case _ =>
413419 case _ =>
414420 0
415421 }
416- let StakeBalanceAmount = (BigStakersBalance - amount)
417- let NewAmountStakedToken = (currentAmountStakedToken + amount)
422+ let StakeBalanceAmount = (BigStakerRewardTotalValue - amount)
418423 let BigStakerRewardTax = if (((height - LastBigStakerRewardBlockValue) >= LimiWithdrawReward))
419424 then (1 * 100000000)
420- else if (((height - LastBigStakerRewardBlockValue) == 0))
421- then UserGovernTokenAmount
422- else (((UserGovernTokenAmount / 100) * LimiWithdrawReward) / (height - LastBigStakerRewardBlockValue))
425+ else (((UserGovernTokenAmount / 100) * LimiWithdrawReward) / (height - LastBigStakerRewardBlockValue))
423426 if ((0 > amount))
424427 then throw("Can't withdraw negative amount ")
425- else if (((1 * 100000000) > UserGovernTokenAmount))
426- then throw(("Not enough Earned Troikan Tokens to do transaction, you need at least 300 Troikans, you have: " + toString((assetBalance(this, GovernToken) / 100000000))))
427- else ScriptResult(WriteSet([DataEntry(BigStakerReward, 0), DataEntry("BigStakersBalance", StakeBalanceAmount), DataEntry(UserGovernTokenKey, (UserGovernTokenAmount - BigStakerRewardTax)), DataEntry("PrizeHeight", PrizeHeightValue), DataEntry(UserStakedTokenKey, NewAmountStakedToken), DataEntry(LastBigStakerRewardBlock, height)]), TransferSet([ScriptTransfer(i.caller, amount, StakedToken)]))
428+ else if (((1000 * 100000000) > UserGovernTokenAmount))
429+ then throw(("Not enough Earned Troikan Tokens to do transaction, you need at least 1000 Troikans, you have: " + toString((assetBalance(this, GovernToken) / 100000000))))
430+ else if ((BigStakerRewardTax > (1 * 100000000)))
431+ then throw(("Be careful it will cost you: " + toString((BigStakerRewardTax / 100000000))))
432+ else ScriptResult(WriteSet([DataEntry(BigStakerReward, 0), DataEntry("BigStakerRewardTotal", StakeBalanceAmount), DataEntry(UserGovernTokenKey, (UserGovernTokenAmount - BigStakerRewardTax)), DataEntry("PrizeHeight", PrizeHeightValue), DataEntry(LastBigStakerRewardBlock, height)]), TransferSet([ScriptTransfer(i.caller, amount, StakedToken)]))
428433 }
429434
430435
487492 func delayprize () = {
488493 let StakedToken = base58'DEjmrvdViZH7trtuAqaKQFjNjfbK6D7yMHm18UQ8Hj21'
489494 let GovernToken = base58'27RauQwTvdbcPqeFkzoTf5WPt3HtEAmRDVxprWUNp6bA'
490- let DelayDays = (1 * 1)
495+ let DelayDays = (1 * 1440)
491496 let UserGovernTokenKey = ((toBase58String(i.caller.bytes) + "_") + toBase58String(GovernToken))
492497 let UserWalletSGovernBalance = assetBalance(Address(i.caller.bytes), GovernToken)
493498 let ContractWalletStakeBalance = assetBalance(this, StakedToken)
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44
55
66 @Callable(i)
77 func DevWithdraw () = {
88 let currentKey = toBase58String(i.caller.bytes)
99 let GovernToken = base58'27RauQwTvdbcPqeFkzoTf5WPt3HtEAmRDVxprWUNp6bA'
1010 if ((currentKey == "3P74buHt98BnojFcaREJZtb98KDyUmZGemJ"))
1111 then {
1212 let DevBoxAmount = match getInteger(this, "DevBox") {
1313 case a: Int =>
1414 a
1515 case _ =>
1616 0
1717 }
1818 if ((0 > DevBoxAmount))
1919 then throw("Not enough balance")
2020 else ScriptResult(WriteSet([DataEntry("DevBox", 0)]), TransferSet([ScriptTransfer(i.caller, DevBoxAmount, GovernToken)]))
2121 }
2222 else throw("You cannot withdraw as your are not the Dev.")
2323 }
2424
2525
2626
2727 @Callable(i)
2828 func PushReward () = {
2929 let StakedToken = base58'DEjmrvdViZH7trtuAqaKQFjNjfbK6D7yMHm18UQ8Hj21'
3030 let GovernToken = base58'27RauQwTvdbcPqeFkzoTf5WPt3HtEAmRDVxprWUNp6bA'
31- let minPushBlock = 0
32- let minStakeBlock = (1 * 1)
33- let DelayAfterPush = 5
34- let WaitTime = 5
31+ let minPushBlock = 10
32+ let minStakeBlock = (7 * 1440)
33+ let DelayAfterPush = 60
34+ let WaitTime = 1440
3535 let minref = 0
3636 let userWalletGovernBalance = assetBalance(Address(i.caller.bytes), GovernToken)
3737 let pmt = extract(i.payment)
3838 let UserPush = (toBase58String(i.caller.bytes) + "_Push")
3939 let UserLastPushOldValue = match getInteger(this, UserPush) {
4040 case a: Int =>
4141 a
4242 case _ =>
4343 0
4444 }
4545 let UserRefsNum = (toBase58String(i.caller.bytes) + "_refs")
4646 let UserRefsNumValue = match getInteger(this, UserRefsNum) {
4747 case a: Int =>
4848 a
4949 case _ =>
5050 0
5151 }
5252 let HighestPushValue = match getInteger(this, "HighestPush") {
5353 case a: Int =>
5454 a
5555 case _ =>
5656 0
5757 }
5858 if ((userWalletGovernBalance > pmt.amount))
5959 then if (if (((pmt.amount + UserLastPushOldValue) > HighestPushValue))
6060 then (pmt.assetId == GovernToken)
6161 else false)
6262 then {
6363 let UserLastPushBlock = (toBase58String(i.caller.bytes) + "_UserLastPushBlock")
6464 let UserLastStakeBlock = (toBase58String(i.caller.bytes) + "_UserLastStakeBlock")
6565 let UserStake = (toBase58String(i.caller.bytes) + "_Staking")
6666 let ContractWalletStakeBalance = assetBalance(this, StakedToken)
6767 let StakeBalance = match getInteger(this, "StakeBalance") {
6868 case a: Int =>
6969 a
7070 case _ =>
7171 0
7272 }
7373 let PrizeAmount = match getInteger(this, "FundBox") {
7474 case a: Int =>
7575 a
7676 case _ =>
7777 0
7878 }
7979 let HeightTransactFundBox = match getInteger(this, "PrizeHeight") {
8080 case a: Int =>
8181 a
8282 case _ =>
8383 0
8484 }
8585 let PrizeHeightValue = if (if ((HeightTransactFundBox == 0))
8686 then (PrizeAmount == 0)
8787 else false)
8888 then 0
8989 else if (if ((HeightTransactFundBox == 0))
9090 then (PrizeAmount != 0)
9191 else false)
9292 then height
9393 else if (if ((HeightTransactFundBox != 0))
9494 then (PrizeAmount != 0)
9595 else false)
9696 then HeightTransactFundBox
9797 else 0
9898 let ActualDelay = match getInteger(this, "Delay") {
9999 case a: Int =>
100100 a
101101 case _ =>
102102 0
103103 }
104- let NewDelay = (ActualDelay + DelayAfterPush)
105104 let HighestPushAddress = match getInteger(this, "HighestPushAddress") {
106105 case a: Int =>
107106 a
108107 case _ =>
109108 0
110109 }
111110 let UserLastPushBlockValue = match getInteger(this, UserLastPushBlock) {
112111 case a: Int =>
113112 a
114113 case _ =>
115114 0
116115 }
117116 let UserLastStakeBlockValue = match getInteger(this, UserLastStakeBlock) {
118117 case a: Int =>
119118 a
120119 case _ =>
121120 0
122121 }
123122 let UserStakeValue = match getInteger(this, UserStake) {
124123 case a: Int =>
125124 a
126125 case _ =>
127126 0
128127 }
129128 let DevBoxBalance = match getInteger(this, "DevBox") {
130129 case a: Int =>
131130 a
132131 case _ =>
133132 0
134133 }
135134 let DevBoxAmount = (DevBoxBalance + ((pmt.amount * 5) / 1000))
136135 let UserPushvalue = (pmt.amount + UserLastPushOldValue)
136+ let NewDelay = if (if ((height > ((PrizeHeightValue + ActualDelay) + WaitTime)))
137+ then (HighestPushValue > 0)
138+ else false)
139+ then 0
140+ else (ActualDelay + DelayAfterPush)
137141 let PrizeHeightValueNew = if (if ((height > ((PrizeHeightValue + NewDelay) + WaitTime)))
138142 then (HighestPushValue > 0)
139143 else false)
140144 then height
141145 else PrizeHeightValue
142146 if (if ((UserPushvalue > 0))
143147 then ((height - UserLastStakeBlockValue) > minStakeBlock)
144148 else false)
145149 then if (((height - UserLastPushBlockValue) > minPushBlock))
146150 then if ((UserStakeValue > 0))
147151 then if ((UserPushvalue > HighestPushValue))
148152 then if ((PrizeAmount > 0))
149153 then if (if (if (if (((PrizeHeightValueNew + NewDelay) > height))
150154 then true
151155 else (height > ((PrizeHeightValueNew + NewDelay) + WaitTime)))
152156 then (HighestPushValue > 0)
153157 else false)
154158 then true
155159 else (HighestPushValue == 0))
156160 then if ((UserRefsNumValue >= minref))
157161 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)])
158162 else throw("You have to have 10 referrals already staking for a minimum of 10 days, to push")
159163 else {
160164 let txt = if ((HighestPushValue > 0))
161165 then "You cannot Push after rewarding Prize and before One day has passed after award"
162166 else "Unexpected error"
163167 throw(txt)
164168 }
165169 else throw("You cannot push before the reward is unlocked, no reward has been detected yet")
166170 else throw("Your push in troikan token, should be Higher than last Highest Push")
167171 else throw("To be able to participate in Pushing for the reward you need to Stake ASIMIs in the dApp")
168172 else throw("You have to wait 10min before you can make a new Push")
169173 else throw(("Your Push dot not comply one of the following conditions: " + "1. Positive Value for Push in Troikan Toke
170174 2. Must Staked ASIMI Token for a minimum of week "))
171175 }
172176 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"))
173177 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 !")
174178 }
175179
176180
177181
178182 @Callable(i)
179183 func Stake () = {
180184 let StakedToken = base58'DEjmrvdViZH7trtuAqaKQFjNjfbK6D7yMHm18UQ8Hj21'
181185 let GovernToken = base58'27RauQwTvdbcPqeFkzoTf5WPt3HtEAmRDVxprWUNp6bA'
182186 let pmt = extract(i.payment)
183187 if (if ((pmt.amount > 0))
184188 then (pmt.assetId == StakedToken)
185189 else false)
186190 then {
187191 let GovernTokenSmartContractBalance = assetBalance(this, GovernToken)
188192 let UserAPY = (toBase58String(i.caller.bytes) + "_APY")
189193 let UserPush = (toBase58String(i.caller.bytes) + "_Push")
190194 let UserStakedTokenKey = (toBase58String(i.caller.bytes) + "_Staking")
191195 let UserGovernTokenKey = (toBase58String(i.caller.bytes) + "_Earnings")
192196 let UserLastStakeBlock = (toBase58String(i.caller.bytes) + "_UserLastStakeBlock")
193197 let UserStakeTransactionsKey = (toBase58String(i.caller.bytes) + "_StakedTransactions")
194198 let AddressHeight = (toBase58String(i.caller.bytes) + "_PrizeHeight")
195199 let UserStakeTransactions = match getInteger(this, UserStakeTransactionsKey) {
196200 case a: Int =>
197201 a
198202 case _ =>
199203 0
200204 }
205+ let MaxStakedDepositValue = match getInteger(this, "MaxStakedDepositValue") {
206+ case a: Int =>
207+ a
208+ case _ =>
209+ 0
210+ }
211+ let MaxStakedDepositNewValue = if ((pmt.amount > MaxStakedDepositValue))
212+ then pmt.amount
213+ else MaxStakedDepositValue
201214 let UserPushValue = match getInteger(this, UserPush) {
202215 case a: Int =>
203216 a
204217 case _ =>
205218 0
206219 }
207220 let UserLastStakeBlockValue = match getInteger(this, UserLastStakeBlock) {
208221 case a: Int =>
209222 a
210223 case _ =>
211224 0
212225 }
213226 let UserLastStakeBlockNewValue = if ((UserLastStakeBlockValue == 0))
214227 then height
215228 else UserLastStakeBlockValue
216229 let NewUserStakeTransactions = (UserStakeTransactions + 1)
217230 let currentAmountStakedToken = match getInteger(this, UserStakedTokenKey) {
218231 case a: Int =>
219232 a
220233 case _ =>
221234 0
222235 }
223236 let newAmountStakedToken = (currentAmountStakedToken + pmt.amount)
224237 let ContractWalletStakeBalance = assetBalance(this, StakedToken)
225238 let StakeBalance = match getInteger(this, "StakeBalance") {
226239 case a: Int =>
227240 a
228241 case _ =>
229242 0
230243 }
231244 let StakeBalanceAmount = (StakeBalance + pmt.amount)
232245 let PrizeAmount = match getInteger(this, "FundBox") {
233246 case a: Int =>
234247 a
235248 case _ =>
236249 0
237250 }
238251 let currentAmountGovernToken = match getInteger(this, UserGovernTokenKey) {
239252 case a: Int =>
240253 a
241254 case _ =>
242255 0
243256 }
244257 let HeightTransactFundBox = match getInteger(this, "PrizeHeight") {
245258 case a: Int =>
246259 a
247260 case _ =>
248261 0
249262 }
250263 let PrizeHeightValue = if (if ((HeightTransactFundBox == 0))
251264 then (PrizeAmount == 0)
252265 else false)
253266 then 0
254267 else if (if ((HeightTransactFundBox == 0))
255268 then (PrizeAmount != 0)
256269 else false)
257270 then height
258271 else if (if ((HeightTransactFundBox != 0))
259272 then (PrizeAmount != 0)
260273 else false)
261274 then HeightTransactFundBox
262275 else 0
263276 if ((100000000 > GovernTokenSmartContractBalance))
264277 then throw("No enough GovernToken In Contract, Please deposit GovernTokens")
265278 else {
266279 let Reward = if ((StakeBalance == 0))
267280 then 10000
268281 else if ((NewUserStakeTransactions > 10))
269282 then ((10000 * NewUserStakeTransactions) * (1 + (newAmountStakedToken / StakeBalance)))
270283 else (10000 * (1 + (newAmountStakedToken / StakeBalance)))
271284 let UserAPYValue = if ((currentAmountGovernToken > 0))
272285 then ((100 * Reward) / currentAmountGovernToken)
273286 else 0
274287 let newAmountGovernToken = (currentAmountGovernToken + Reward)
275- ScriptResult(WriteSet([DataEntry(UserGovernTokenKey, newAmountGovernToken), DataEntry(UserStakedTokenKey, newAmountStakedToken), DataEntry(UserStakeTransactionsKey, NewUserStakeTransactions), DataEntry("StakeBalance", StakeBalanceAmount), DataEntry("PrizeHeight", PrizeHeightValue), DataEntry(UserAPY, UserAPYValue), DataEntry(UserLastStakeBlock, UserLastStakeBlockNewValue), DataEntry(UserPush, UserPushValue)]), TransferSet([ScriptTransfer(i.caller, Reward, GovernToken)]))
288+ ScriptResult(WriteSet([DataEntry(UserGovernTokenKey, newAmountGovernToken), DataEntry(UserStakedTokenKey, newAmountStakedToken), DataEntry(UserStakeTransactionsKey, NewUserStakeTransactions), DataEntry("StakeBalance", StakeBalanceAmount), DataEntry("PrizeHeight", PrizeHeightValue), DataEntry(UserAPY, UserAPYValue), DataEntry(UserLastStakeBlock, UserLastStakeBlockNewValue), DataEntry(UserPush, UserPushValue), DataEntry("MaxStakedDepositValue", MaxStakedDepositNewValue)]), TransferSet([ScriptTransfer(i.caller, Reward, GovernToken)]))
276289 }
277290 }
278291 else throw("Can deposit only StakeToken")
279292 }
280293
281294
282295
283296 @Callable(i)
284297 func WithdrawStakedFunds (amount) = {
285298 let StakedToken = base58'DEjmrvdViZH7trtuAqaKQFjNjfbK6D7yMHm18UQ8Hj21'
286299 let GovernToken = base58'27RauQwTvdbcPqeFkzoTf5WPt3HtEAmRDVxprWUNp6bA'
287300 let UserLastStakeBlock = (toBase58String(i.caller.bytes) + "_UserLastStakeBlock")
288301 let UserStakedTokenKey = (toBase58String(i.caller.bytes) + "_Staking")
289302 let UserGovernTokenKey = ((toBase58String(i.caller.bytes) + "_") + toBase58String(GovernToken))
290303 let ContractWalletStakeBalance = assetBalance(this, StakedToken)
291304 let UserLastStakeBlockValue = match getInteger(this, UserLastStakeBlock) {
292305 case a: Int =>
293306 a
294307 case _ =>
295308 0
296309 }
297310 let StakeBalance = match getInteger(this, "StakeBalance") {
298311 case a: Int =>
299312 a
300313 case _ =>
301314 0
302315 }
303316 let PrizeAmount = match getInteger(this, "FundBox") {
304317 case a: Int =>
305318 a
306319 case _ =>
307320 0
308321 }
309322 let HeightTransactFundBox = match getInteger(this, "PrizeHeight") {
310323 case a: Int =>
311324 a
312325 case _ =>
313326 0
314327 }
315328 let PrizeHeightValue = if (if ((HeightTransactFundBox == 0))
316329 then (PrizeAmount == 0)
317330 else false)
318331 then 0
319332 else if (if ((HeightTransactFundBox == 0))
320333 then (PrizeAmount != 0)
321334 else false)
322335 then height
323336 else if (if ((HeightTransactFundBox != 0))
324337 then (PrizeAmount != 0)
325338 else false)
326339 then HeightTransactFundBox
327340 else 0
328341 let currentKey = toBase58String(i.caller.bytes)
329342 let currentAmount = match getInteger(this, UserStakedTokenKey) {
330343 case a: Int =>
331344 a
332345 case _ =>
333346 0
334347 }
335348 let newAmount = (currentAmount - amount)
336349 let StakeBalanceAmount = (StakeBalance - amount)
337350 let UserLastStakeBlockNewValue = if ((StakeBalanceAmount == 0))
338351 then 0
339352 else UserLastStakeBlockValue
340353 if ((0 > amount))
341354 then throw("Can't withdraw negative amount")
342355 else if ((0 > newAmount))
343356 then throw(("User cannot withdraw more than deposited funds, Your deposit is: " + toString((currentAmount / 100000000))))
344357 else if ((100000000 > assetBalance(this, GovernToken)))
345358 then throw(("Not enough Troika In Contract: " + toString((assetBalance(this, GovernToken) / 100000000))))
346359 else ScriptResult(WriteSet([DataEntry(UserGovernTokenKey, 100000000), DataEntry(UserStakedTokenKey, newAmount), DataEntry("StakeBalance", StakeBalanceAmount), DataEntry("PrizeHeight", PrizeHeightValue), DataEntry(UserLastStakeBlock, UserLastStakeBlockNewValue)]), TransferSet([ScriptTransfer(i.caller, 100000000, GovernToken), ScriptTransfer(i.caller, amount, StakedToken)]))
347360 }
348361
349362
350363
351364 @Callable(i)
352365 func WithdrawBigStakeReward () = {
353366 let StakedToken = base58'DEjmrvdViZH7trtuAqaKQFjNjfbK6D7yMHm18UQ8Hj21'
354367 let GovernToken = base58'27RauQwTvdbcPqeFkzoTf5WPt3HtEAmRDVxprWUNp6bA'
355368 let LastBigStakerRewardBlock = (toBase58String(i.caller.bytes) + "LastBigStakerRewardBlock")
356369 let BigStakerReward = (toBase58String(i.caller.bytes) + "_BigStaker")
357370 let UserGovernTokenKey = (toBase58String(i.caller.bytes) + "_Earnings")
358371 let LimiWithdrawReward = 10
359- let UserStakedTokenKey = (toBase58String(i.caller.bytes) + "_Staking")
360- let currentAmountStakedToken = match getInteger(this, UserStakedTokenKey) {
361- case a: Int =>
362- a
363- case _ =>
364- 0
365- }
366372 let UserGovernTokenAmount = match getInteger(this, UserGovernTokenKey) {
367373 case a: Int =>
368374 a
369375 case _ =>
370376 0
371377 }
372378 let LastBigStakerRewardBlockValue = match getInteger(this, LastBigStakerRewardBlock) {
373379 case a: Int =>
374380 a
375381 case _ =>
376382 0
377383 }
378- let BigStakersBalance = match getInteger(this, "BigStakersBalance") {
384+ let BigStakerRewardTotalValue = match getInteger(this, "BigStakerRewardTotal") {
379385 case a: Int =>
380386 a
381387 case _ =>
382388 0
383389 }
384390 let PrizeAmount = match getInteger(this, "FundBox") {
385391 case a: Int =>
386392 a
387393 case _ =>
388394 0
389395 }
390396 let HeightTransactFundBox = match getInteger(this, "PrizeHeight") {
391397 case a: Int =>
392398 a
393399 case _ =>
394400 0
395401 }
396402 let PrizeHeightValue = if (if ((HeightTransactFundBox == 0))
397403 then (PrizeAmount == 0)
398404 else false)
399405 then 0
400406 else if (if ((HeightTransactFundBox == 0))
401407 then (PrizeAmount != 0)
402408 else false)
403409 then height
404410 else if (if ((HeightTransactFundBox != 0))
405411 then (PrizeAmount != 0)
406412 else false)
407413 then HeightTransactFundBox
408414 else 0
409415 let currentKey = toBase58String(i.caller.bytes)
410416 let amount = match getInteger(this, BigStakerReward) {
411417 case a: Int =>
412418 a
413419 case _ =>
414420 0
415421 }
416- let StakeBalanceAmount = (BigStakersBalance - amount)
417- let NewAmountStakedToken = (currentAmountStakedToken + amount)
422+ let StakeBalanceAmount = (BigStakerRewardTotalValue - amount)
418423 let BigStakerRewardTax = if (((height - LastBigStakerRewardBlockValue) >= LimiWithdrawReward))
419424 then (1 * 100000000)
420- else if (((height - LastBigStakerRewardBlockValue) == 0))
421- then UserGovernTokenAmount
422- else (((UserGovernTokenAmount / 100) * LimiWithdrawReward) / (height - LastBigStakerRewardBlockValue))
425+ else (((UserGovernTokenAmount / 100) * LimiWithdrawReward) / (height - LastBigStakerRewardBlockValue))
423426 if ((0 > amount))
424427 then throw("Can't withdraw negative amount ")
425- else if (((1 * 100000000) > UserGovernTokenAmount))
426- then throw(("Not enough Earned Troikan Tokens to do transaction, you need at least 300 Troikans, you have: " + toString((assetBalance(this, GovernToken) / 100000000))))
427- else ScriptResult(WriteSet([DataEntry(BigStakerReward, 0), DataEntry("BigStakersBalance", StakeBalanceAmount), DataEntry(UserGovernTokenKey, (UserGovernTokenAmount - BigStakerRewardTax)), DataEntry("PrizeHeight", PrizeHeightValue), DataEntry(UserStakedTokenKey, NewAmountStakedToken), DataEntry(LastBigStakerRewardBlock, height)]), TransferSet([ScriptTransfer(i.caller, amount, StakedToken)]))
428+ else if (((1000 * 100000000) > UserGovernTokenAmount))
429+ then throw(("Not enough Earned Troikan Tokens to do transaction, you need at least 1000 Troikans, you have: " + toString((assetBalance(this, GovernToken) / 100000000))))
430+ else if ((BigStakerRewardTax > (1 * 100000000)))
431+ then throw(("Be careful it will cost you: " + toString((BigStakerRewardTax / 100000000))))
432+ else ScriptResult(WriteSet([DataEntry(BigStakerReward, 0), DataEntry("BigStakerRewardTotal", StakeBalanceAmount), DataEntry(UserGovernTokenKey, (UserGovernTokenAmount - BigStakerRewardTax)), DataEntry("PrizeHeight", PrizeHeightValue), DataEntry(LastBigStakerRewardBlock, height)]), TransferSet([ScriptTransfer(i.caller, amount, StakedToken)]))
428433 }
429434
430435
431436
432437 @Callable(i)
433438 func HarvestGovernToiken (amount) = {
434439 let StakedToken = base58'DEjmrvdViZH7trtuAqaKQFjNjfbK6D7yMHm18UQ8Hj21'
435440 let GovernToken = base58'27RauQwTvdbcPqeFkzoTf5WPt3HtEAmRDVxprWUNp6bA'
436441 let ContractWalletStakeBalance = assetBalance(this, StakedToken)
437442 let UserGovernTokenKey = (toBase58String(i.caller.bytes) + "_Earnings")
438443 let StakeBalance = match getInteger(this, "StakeBalance") {
439444 case a: Int =>
440445 a
441446 case _ =>
442447 0
443448 }
444449 let PrizeAmount = match getInteger(this, "FundBox") {
445450 case a: Int =>
446451 a
447452 case _ =>
448453 0
449454 }
450455 let HeightTransactFundBox = match getInteger(this, "PrizeHeight") {
451456 case a: Int =>
452457 a
453458 case _ =>
454459 0
455460 }
456461 let PrizeHeightValue = if (if ((HeightTransactFundBox == 0))
457462 then (PrizeAmount == 0)
458463 else false)
459464 then 0
460465 else if (if ((HeightTransactFundBox == 0))
461466 then (PrizeAmount != 0)
462467 else false)
463468 then height
464469 else if (if ((HeightTransactFundBox != 0))
465470 then (PrizeAmount != 0)
466471 else false)
467472 then HeightTransactFundBox
468473 else 0
469474 let currentKey = toBase58String(i.caller.bytes)
470475 let currentAmount = match getInteger(this, UserGovernTokenKey) {
471476 case a: Int =>
472477 a
473478 case _ =>
474479 0
475480 }
476481 let newAmount = (currentAmount - amount)
477482 if ((0 > amount))
478483 then throw("Can't withdraw negative amount")
479484 else if ((0 > newAmount))
480485 then throw(("User cannot withdraw more than deposited funds, Your deposit is: " + toString((currentAmount / 100000000))))
481486 else ScriptResult(WriteSet([DataEntry(UserGovernTokenKey, newAmount), DataEntry("PrizeHeight", PrizeHeightValue)]), TransferSet([ScriptTransfer(i.caller, amount, GovernToken)]))
482487 }
483488
484489
485490
486491 @Callable(i)
487492 func delayprize () = {
488493 let StakedToken = base58'DEjmrvdViZH7trtuAqaKQFjNjfbK6D7yMHm18UQ8Hj21'
489494 let GovernToken = base58'27RauQwTvdbcPqeFkzoTf5WPt3HtEAmRDVxprWUNp6bA'
490- let DelayDays = (1 * 1)
495+ let DelayDays = (1 * 1440)
491496 let UserGovernTokenKey = ((toBase58String(i.caller.bytes) + "_") + toBase58String(GovernToken))
492497 let UserWalletSGovernBalance = assetBalance(Address(i.caller.bytes), GovernToken)
493498 let ContractWalletStakeBalance = assetBalance(this, StakedToken)
494499 let StakeBalance = match getInteger(this, "StakeBalance") {
495500 case a: Int =>
496501 a
497502 case _ =>
498503 0
499504 }
500505 let PrizeAmount = match getInteger(this, "FundBox") {
501506 case a: Int =>
502507 a
503508 case _ =>
504509 0
505510 }
506511 let HeightTransactFundBox = match getInteger(this, "PrizeHeight") {
507512 case a: Int =>
508513 a
509514 case _ =>
510515 0
511516 }
512517 let PrizeHeightValue = if (if ((HeightTransactFundBox == 0))
513518 then (PrizeAmount == 0)
514519 else false)
515520 then 0
516521 else if (if ((HeightTransactFundBox == 0))
517522 then (PrizeAmount != 0)
518523 else false)
519524 then height
520525 else if (if ((HeightTransactFundBox != 0))
521526 then (PrizeAmount != 0)
522527 else false)
523528 then HeightTransactFundBox
524529 else 0
525530 let ActualDelay = match getInteger(this, "Delay") {
526531 case a: Int =>
527532 a
528533 case _ =>
529534 0
530535 }
531536 let ActualDelayCost = match getInteger(this, "DelayCost") {
532537 case a: Int =>
533538 a
534539 case _ =>
535540 10
536541 }
537542 let pmt = extract(i.payment)
538543 let DevBoxBalance = match getInteger(this, "DevBox") {
539544 case a: Int =>
540545 a
541546 case _ =>
542547 0
543548 }
544549 if (if (isDefined(pmt.assetId))
545550 then (extract(pmt.assetId) == GovernToken)
546551 else false)
547552 then if ((PrizeAmount > 0))
548553 then {
549554 let UserGovernTokenAmount = pmt.amount
550555 let DevBoxAmount = (DevBoxBalance + ((pmt.amount * 5) / 1000))
551556 let NewDelayCost = if ((ActualDelayCost == 0))
552557 then 1000000000
553558 else (2 * ActualDelayCost)
554559 if ((UserGovernTokenAmount >= NewDelayCost))
555560 then {
556561 let NewDelay = (ActualDelay + DelayDays)
557562 WriteSet([DataEntry("Delay", NewDelay), DataEntry("DelayCost", NewDelayCost), DataEntry("PrizeHeight", PrizeHeightValue), DataEntry("DevBox", DevBoxAmount)])
558563 }
559564 else throw((("To delay the release of the reward ONE DAY later than expected, you need " + toString(NewDelayCost)) + "TROIKAs"))
560565 }
561566 else throw("You cannot delay the reward before reward is received! Please wait until a reward is available")
562567 else throw("Can Use only Troika Token to Delay Reward")
563568 }
564569
565570
566571
567572 @Callable(i)
568573 func ClaimPrize () = {
569574 let StakedToken = base58'DEjmrvdViZH7trtuAqaKQFjNjfbK6D7yMHm18UQ8Hj21'
570575 let GovernToken = base58'27RauQwTvdbcPqeFkzoTf5WPt3HtEAmRDVxprWUNp6bA'
571576 let UserStakedTokenKey = (toBase58String(i.caller.bytes) + "_Staking")
572577 let UserPush = (toBase58String(i.caller.bytes) + "_Push")
573578 let UserLastStakeBlock = (toBase58String(i.caller.bytes) + "_UserLastStakeBlock")
574579 let minStakeBlock = 7
575580 let minref = 0
576581 let ContractGovTokenBalance = assetBalance(this, GovernToken)
577582 let ContractWalletStakeBalance = assetBalance(this, StakedToken)
578583 let StakeBalance = match getInteger(this, "StakeBalance") {
579584 case a: Int =>
580585 a
581586 case _ =>
582587 0
583588 }
584589 let PrizeAmount = match getInteger(this, "FundBox") {
585590 case a: Int =>
586591 a
587592 case _ =>
588593 0
589594 }
590595 let UserPushValue = match getInteger(this, UserPush) {
591596 case a: Int =>
592597 a
593598 case _ =>
594599 0
595600 }
596601 let UserLastStakeBlockValue = match getInteger(this, UserLastStakeBlock) {
597602 case a: Int =>
598603 a
599604 case _ =>
600605 0
601606 }
602607 let UserStakedTokenAmount = match getInteger(this, UserStakedTokenKey) {
603608 case a: Int =>
604609 a
605610 case _ =>
606611 0
607612 }
608613 let ActualDelay = match getInteger(this, "Delay") {
609614 case a: Int =>
610615 a
611616 case _ =>
612617 0
613618 }
614619 let PrizeWinner = getStringValue(this, "HighestPushAddress")
615620 let PrizeHeight = match getInteger(this, "PrizeHeight") {
616621 case a: Int =>
617622 a
618623 case _ =>
619624 0
620625 }
621626 let HighestPushValue = match getInteger(this, "HighestPush") {
622627 case a: Int =>
623628 a
624629 case _ =>
625630 0
626631 }
627632 let UserRefsNum = (toBase58String(i.caller.bytes) + "_refs")
628633 let UserRefsNumValue = match getInteger(this, UserRefsNum) {
629634 case a: Int =>
630635 a
631636 case _ =>
632637 0
633638 }
634639 if (if ((PrizeAmount == 0))
635640 then true
636641 else (10000000000 > ContractGovTokenBalance))
637642 then throw("No prize to Claim or Not enough Govern Token en Contract (Min 100 Troika)")
638643 else if ((toBase58String(i.caller.bytes) != PrizeWinner))
639644 then throw("You are not the winner hence cannot claim the reward ")
640645 else if (if ((100000000 > UserStakedTokenAmount))
641646 then (minStakeBlock > UserLastStakeBlockValue)
642647 else false)
643648 then throw("You have to Stake ASIMI Token to claim reward ")
644649 else if (if ((height > (PrizeHeight + ActualDelay)))
645650 then (UserPushValue >= HighestPushValue)
646651 else false)
647652 then if ((UserRefsNumValue >= minref))
648653 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)]))
649654 else throw("You have to have 10 referrals already staking for a minimum of 10 days to Claim the prize")
650655 else throw("You have to be the user with the highest Push and wait till countown is finished, to claim Reward")
651656 }
652657
653658
654659
655660 @Callable(i)
656661 func Addmentor (Mentor) = {
657662 let StakedToken = base58'DEjmrvdViZH7trtuAqaKQFjNjfbK6D7yMHm18UQ8Hj21'
658663 let GovernToken = base58'27RauQwTvdbcPqeFkzoTf5WPt3HtEAmRDVxprWUNp6bA'
659664 let UserMentorAddress = (toBase58String(i.caller.bytes) + "_Mentor")
660665 if ((Mentor != ""))
661666 then WriteSet([DataEntry(UserMentorAddress, Mentor)])
662667 else throw("Mentor's Address cannot be empty")
663668 }
664669
665670

github/deemru/w8io/026f985 
65.74 ms