tx · vRNbg5o14iGywkgrfNGmquhgWfCDskimuSNw1hL4yej

3P2q6tfVRAhiZUoydGYwDJPybgDhSAtHGRo:  -0.01400000 Waves

2022.01.24 20:12 [2958421] smart account 3P2q6tfVRAhiZUoydGYwDJPybgDhSAtHGRo > SELF 0.00000000 Waves

{ "type": 13, "id": "vRNbg5o14iGywkgrfNGmquhgWfCDskimuSNw1hL4yej", "fee": 1400000, "feeAssetId": null, "timestamp": 1643044370618, "version": 2, "chainId": 87, "sender": "3P2q6tfVRAhiZUoydGYwDJPybgDhSAtHGRo", "senderPublicKey": "wY4NwyJskK4UBjW8X3dFzJfPt5SxDCcmf6ysqcho2pB", "proofs": [ "52Zis8Qhh1dVTPxgs632XZKnPreFs1hpQugu3UiRfGnoRYKPe5u9az143iFdn3sr7bzcMXRFjfobeZH5F8ZxTWte" ], "script": "base64:AAIFAAAAAAAACToIAhIDCgEBEgQKAggBEgMKAQQSABIAEgASAwoBCBIGCgQICAEBEgMKAQgSAwoBCBIECgIICBIDCgEIEgAaDAoBQRIHJG1hdGNoMBoGCgFCEgFiGgsKAUMSBmdldFN0choMCgFEEgdnZXRCb29sGgwKAUUSB2dldFN0ckEaBgoBRhIBYRoGCgFHEgFrGgwKAUgSB2dldEludEEaDAoBSRIHYWRkcmVzcxoXCgFKEhJnZXRNYXJrZXRQcm94eUFkZHIaDQoBSxIIZ2V0RWdnSWQaFAoBTBIPZ2V0U2hhcmVBc3NldElkGgYKAU0SAWkaCwoBThIGYW1vdW50GhEKAU8SDHNoYXJlQXNzZXRJZBoSCgFQEg10b3RhbENvbXBvdW5kGhAKAVESC3RvdGFsU3Rha2VkGhAKAVISC3RvdGFsTG9ja2VkGhYKAVMSEWFtb3VudEZvckNvbXBvdW5kGgkKAVQSBG5hbWUaFQoBVRIQbWluaW11bVRocmVzaG9sZBoQCgFWEgtzaGFyZVRva2VucxoPCgFXEgpzaGFyZVRva2VuGgYKAVgSAXMaDwoBWRIKZWdnQXNzZXRJZBoTCgFaEg50b3RhbExpcXVpZGl0eRoNCgFhEghtQWNjUEtleRoNCgJhQRIHdG9EaXN0choYCgJhQhISdG90YWxGYXJtaW5nUmV3YXJkGhMKAmFDEg1jdXJyZW50Q2VvRmVlGhMKAmFEEg1jZW9GZWVPdmVyYWxsGhEKAmFFEgthbW91bnRUb1BheRoXCgJhRhIRYW1vdW50Q29tcG9udENhbGwaDgoCYUcSCGNvbXBvdW5kGgsKAmFIEgV0b3BVcBoMCgJhSRIGc3VjY2VzGg0KAmFKEgdib29sZWFuGg4KAmFLEghhZGRyZXNzMRoOCgJhTBIIYWRkcmVzczIaEwoCYU0SDWFkZHJlc3MxU2hhcmUaEwoCYU4SDWFkZHJlc3MyU2hhcmUaHAoCYU8SFmN1cnJlbnRDZW9Db2xsZWN0ZWRGZWUaFAoCYVASDmFkZHJlc3MxUmV3YXJkGhQKAmFREg5hZGRyZXNzMlJld2FyZBoPCgJhUhIJYXVjdGlvbklkGg4KAmFTEghmdW5jdGlvbhoNCgJhVBIHYXNzZXRJZBoYCgJhVRISZmFybWluZ0RhcHBBZGRyZXNzGhMKAmFWEg11c3Rha2VkUmV3YXJkGhcKAmFXEhF1bnN0YWtlZFJld2FyZE5vdxoMCgJhWBIGcmV3YXJkGhcKAmFZEhFuZXdVbnN0YWtlZFJld2FyZBoKCgJhWhIEdHhJZBoWCgJhYRIQdG90YWxTaGFyZVRva2VucxoXCgJhYhIRc2hhcmVUb2tlbnNUb0dpdmUaEwoCYWMSDXNoYXJlVG9rZW5zSWQaDQoCYWQSB3JlaXNzdWUaFgoCYWUSEGZhcm1QYXJ0aWNpcGFudHMaEwoCYWYSDWtQYXJ0aWNpcGF0ZWQaGQoCYWcSE2FscmVhZHlQYXJ0aWNpcGF0ZWQaGQoCYWgSE25ld0Zhcm1QYXJ0aWNpcGFudHMaCQoCYWkSA2lkcxoRCgJhahILZmFybWluZ0RhcHAaEQoCYWsSC2NsYWltUmV3YXJkGgsKAmFsEgVhY2N1bRoLCgJhbRIFbmZ0SWQaDAoCYW4SBmludlJlcxoJCgJhbxIDaW50GgwKAmFwEgZuZnRJZHMaEAoCYXESCmZvbGRSZXN1bHQaCAoCYXISAiRsGggKAmFzEgIkcxoLCgJhdBIFJGFjYzAaCwoCYXUSBSRmMF8xGggKAmF2EgIkYRoICgJhdxICJGkaCwoCYXgSBSRmMF8yGhMKAmF5Eg1jbGFpbWVkUmV3YXJkGhQKAmF6Eg5mYXJtQ2VvRmVlU2l6ZRoNCgFiEghtQWNjQWRkchoICgJiYRICdHgaDwoCYmISCWtSZXZlcnRlZBoQCgJiYxIKdHhSZXZlcnRlZBoQCgJiZBIKbWluQmFsYW5jZRoXCgJiZRIRY3VycmVudEVnZ0JhbGFuY2UaDAoCYmYSBnJlc3VsdBoPCgJiZxIJYWRkcmVzc2VzGhIKAmJoEgxhZGRyZXNzUGFydHMaEAoCYmkSCmZpbmRSZXdhcmQaCQoCYmoSA2FjYxoJCgJiaxIDdmFsGgsKAmJsEgVwYXJ0cxoMCgJibRIGdmVyaWZ5GhIKAmJuEgxjaGVja1N0YXJ0ZWQaFgoCYm8SEHRvdGFsRWdnU3BlbmRpbmcaDQoCYnASB3BheW1lbnQaCQoCYnESA2ludhoaCgJichIUYWNjZXB0ZWRDYWxsc1N0YWtpbmcaFwoCYnMSEWFjY2VwdGVkQ2FsbHNUaGlzGhYKAmJ0EhBhbGxvd2VkQ29udHJhY3Rz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AAACYXUAAAACCQEAAAACYXUAAAACCQEAAAACYXUAAAACCQEAAAACYXUAAAACCQEAAAACYXUAAAACCQEAAAACYXUAAAACCQEAAAACYXUAAAACCQEAAAACYXUAAAACCQEAAAACYXUAAAACCQEAAAACYXUAAAACCQEAAAACYXUAAAACCQEAAAACYXUAAAACCQEAAAACYXUAAAACCQEAAAACYXUAAAACCQEAAAACYXUAAAACCQEAAAACYXUAAAACCQEAAAACYXUAAAACCQEAAAACYXUAAAACCQEAAAACYXUAAAACCQEAAAACYXUAAAACCQEAAAACYXUAAAACCQEAAAACYXUAAAACCQEAAAACYXUAAAACCQEAAAACYXUAAAACCQEAAAACYXUAAAACCQEAAAACYXUAAAACCQEAAAACYXUAAAACCQEAAAACYXUAAAACCQEAAAACYXUAAAACCQEAAAACYXUAAAACCQEAAAACYXUAAAACCQEAAAACYXUAAAACCQEAAAACYXUAAAACCQEAAAACYXUAAAACCQEAAAACYXUAAAACCQEAAAACYXUAAAACCQEAAAACYXUAAAACCQEAAAACYXUAAAACCQEAAAACYXUAAAACCQEAAAACYXUAAAACCQEAAAACYXUAAAACCQEAAAACYXUAAAACCQEAAAACYXUAAAACCQEAAAACYXUAAAACCQEAAAACYXUAAAACCQEAAAACYXUAAAACCQEAAAACYXUAAAACCQEAAAACYXUAAAACCQEAAAACYXUAAAACCQEAAAACYXUAAAACCQEAAAACYXUAAAACCQEAAAACYXUAAAACCQEAAAACYXUAAAACCQEAAAACYXUAAAACCQEAAAACYXUAAAACCQEAAAACYXUAAAACCQEAAAACYXUAAAACCQEAAAACYXUAAAACCQEAAAACYXUAAAACCQEAAAACYXUAAAACCQEAAAACYXUAAAACCQEAAAACYXUAAAACCQEAAAACYXUAAAACCQEAAAACYXUAAAACBQAAAAJhdAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAgAAAAAAAAAAAwAAAAAAAAAABAAAAAAAAAAABQAAAAAAAAAABgAAAAAAAAAABwAAAAAAAAAACAAAAAAAAAAACQAAAAAAAAAACgAAAAAAAAAACwAAAAAAAAAADAAAAAAAAAAADQAA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", "height": 2958421, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 4wxeeS9FQWtdTok6XULSodkaVCrRZkbbT1MZWsPqCnEo Next: 3vtd11TjFcu5v3FUvLuZDM34Q1VJsCyL5fy1qgYYZfYH Diff:
OldNewDifferences
297297 if ((ustakedReward == ustakedReward))
298298 then {
299299 let unstakedRewardNow = getInt(kUnstakedReward)
300- let newUnstakedReward = match ustakedReward {
300+ let reward = match ustakedReward {
301301 case int: Int =>
302- (unstakedRewardNow + int)
302+ int
303303 case _ =>
304304 throw("Error during unstaking")
305305 }
306+ let newUnstakedReward = (reward + unstakedRewardNow)
306307 let currentCeoFee = getInt(kCeoCollectedFee)
307308 let ceoFeeOverall = getInt(kCeoCollectedFeeOverall)
308309 let farmCeoFeeSize = fraction(unstakedRewardNow, feePercent, 100)
309- let amountToPay = ((newUnstakedReward - unstakedRewardNow) - farmCeoFeeSize)
310+ let amountToPay = (reward - fraction(reward, feePercent, 100))
310311 let amountCompontCall = invoke(this, "calculateCompoundShareAndIssue", [amountToPay], nil)
311312 if ((amountCompontCall == amountCompontCall))
312313 then {
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let mAccPKey = base58'HyXCiJpt1eh1M1zZWDpYzbVW81yZL4XBjiJjGwxZqk2'
55
66 let mAccAddr = addressFromPublicKey(mAccPKey)
77
88 let feePercent = getIntegerValue(mAccAddr, (("f_" + toString(this)) + "_fee"))
99
1010 let stakingAddress = addressFromStringValue(valueOrErrorMessage(getString(mAccAddr, (("f_" + toString(this)) + "_stake_address")), (("f_" + toString(this)) + "_stake_address not defined")))
1111
1212 let kTotalLiquidity = "total_liquidity"
1313
1414 let kInitialized = "INITIALIZED"
1515
1616 let kLiquidityThreshold = "LIQUIDITY_THRESHOLD"
1717
1818 let kFarmParticipants = "farm_participants"
1919
2020 let kTotalShareTokens = "total_share_tokens"
2121
2222 let kShareAssetId = "SHARE_ASSET_ID"
2323
2424 let kIncubatorDapp = "INCUBATOR_DAPP"
2525
2626 let kBreederDapp = "BREEDER_DAPP"
2727
2828 let kFarmingDapp = "FARMING_DAPP"
2929
3030 let kMarketProxyDapp = "MARKETPLACE_PROXY_DAPP"
3131
3232 let kAuctionDapp = "AUCTION_DAPP"
3333
3434 let kLocked = "LOCKED"
3535
3636 let kTotalFarmingReward = "total_farming_reward"
3737
3838 let kCeoCollectedFee = "ceo_collected_fee"
3939
4040 let kCeoCollectedFeeOverall = "ceo_fee_overall"
4141
4242 let kToDistr = "to_distribute"
4343
4444 let kUnstakedReward = "unstaked_reward"
4545
4646 let kLockedInvestments = "locked_investments"
4747
4848 let keyTotalCompound = "total_compound"
4949
5050 let keyGlobalStaked = "global_staked"
5151
5252 func getInt (key) = match getInteger(this, key) {
5353 case b: Int =>
5454 b
5555 case _ =>
5656 0
5757 }
5858
5959
6060 func getStr (key) = match getString(this, key) {
6161 case b: String =>
6262 b
6363 case _ =>
6464 ""
6565 }
6666
6767
6868 func getBool (key) = match getBoolean(this, key) {
6969 case b: Boolean =>
7070 b
7171 case _ =>
7272 unit
7373 }
7474
7575
7676 func getStrA (a,k) = match getString(a, k) {
7777 case b: String =>
7878 b
7979 case _ =>
8080 ""
8181 }
8282
8383
8484 func getIntA (address,key) = match getInteger(address, key) {
8585 case b: Int =>
8686 b
8787 case _ =>
8888 0
8989 }
9090
9191
9292 func getMarketProxyAddr () = getStrA(mAccAddr, kMarketProxyDapp)
9393
9494
9595 func getEggId () = fromBase58String(getStringValue(mAccAddr, "EGG_ASSET_ID"))
9696
9797
9898 func getShareAssetId () = fromBase58String(getStr(kShareAssetId))
9999
100100
101101 @Callable(i)
102102 func calculateCompoundShareAndIssue (amount) = {
103103 let shareAssetId = getShareAssetId()
104104 let totalCompound = getIntA(stakingAddress, keyTotalCompound)
105105 let totalStaked = getIntA(stakingAddress, keyGlobalStaked)
106106 let totalLocked = (totalStaked + totalCompound)
107107 let amountForCompound = fraction(amount, totalCompound, totalLocked)
108108 $Tuple2([Reissue(shareAssetId, amountForCompound, true)], amountForCompound)
109109 }
110110
111111
112112
113113 @Callable(i)
114114 func initCollectiveFarm (name,minimumThreshold) = if ((i.callerPublicKey != mAccPKey))
115115 then throw("_1")
116116 else if ((getBool(kInitialized) != unit))
117117 then throw("_2")
118118 else if (if ((i.payments[0].amount != 10000000))
119119 then true
120120 else (i.payments[0].assetId != getEggId()))
121121 then throw("_20")
122122 else {
123123 let shareTokens = 10000000
124124 let shareToken = Issue(name, (("Team token for the \"" + name) + "\" collective farm"), shareTokens, 8, true)
125125 [StringEntry(kShareAssetId, toBase58String(calculateAssetId(shareToken))), BooleanEntry(kInitialized, true), IntegerEntry(kTotalLiquidity, 10), IntegerEntry(kTotalShareTokens, shareTokens), shareToken, ScriptTransfer(i.caller, shareTokens, calculateAssetId(shareToken)), BooleanEntry(kLocked, false), IntegerEntry(kLiquidityThreshold, minimumThreshold)]
126126 }
127127
128128
129129
130130 @Callable(i)
131131 func setLock (s) = if ((i.callerPublicKey != mAccPKey))
132132 then throw("_21")
133133 else [BooleanEntry(kLocked, s)]
134134
135135
136136
137137 @Callable(i)
138138 func lockInvestments () = if ((i.caller != this))
139139 then throw("You cannot lock this contract")
140140 else [BooleanEntry(kLockedInvestments, true)]
141141
142142
143143
144144 @Callable(i)
145145 func unlockInvestments () = if ((i.caller != this))
146146 then throw("You cannot lock this contract")
147147 else [BooleanEntry(kLockedInvestments, false)]
148148
149149
150150
151151 @Callable(i)
152152 func provideLiquidity () = {
153153 let eggAssetId = getEggId()
154154 if ((getBool(kLockedInvestments) == true))
155155 then throw("Contract is locked for investments by it's CEO. Please invest in another collective farm.")
156156 else if ((getBool(kLocked) == true))
157157 then throw("_22")
158158 else if ((i.payments[0].assetId != eggAssetId))
159159 then throw("_4")
160160 else if ((1000000 > i.payments[0].amount))
161161 then throw("Min amount to invest is 0.01 EGG")
162162 else {
163163 let totalLiquidity = getInt(kTotalLiquidity)
164164 let totalShareTokens = getInt(kTotalShareTokens)
165165 let shareTokensToGive = i.payments[0].amount
166166 let shareTokensId = fromBase58String(getStr(kShareAssetId))
167167 let reissue = Reissue(getShareAssetId(), shareTokensToGive, true)
168168 let farmParticipants = getInt(kFarmParticipants)
169169 let kParticipated = (("account_" + toString(i.caller)) + "_participated")
170170 let alreadyParticipated = getBool(kParticipated)
171171 let newFarmParticipants = if ((alreadyParticipated == unit))
172172 then (farmParticipants + 1)
173173 else farmParticipants
174174 $Tuple2([reissue, ScriptTransfer(i.caller, shareTokensToGive, shareTokensId), IntegerEntry(kTotalShareTokens, (totalShareTokens + shareTokensToGive)), IntegerEntry(kTotalLiquidity, (totalLiquidity + (value(i.payments[0].amount) / 1000000))), IntegerEntry(kFarmParticipants, newFarmParticipants), BooleanEntry(kParticipated, true)], shareTokensToGive)
175175 }
176176 }
177177
178178
179179
180180 @Callable(i)
181181 func claimFarmingRewardProxy (ids) = if ((i.callerPublicKey != mAccPKey))
182182 then throw("_23")
183183 else {
184184 let eggAssetId = getEggId()
185185 let shareAssetId = getShareAssetId()
186186 let farmingDapp = addressFromStringValue(getStrA(mAccAddr, kFarmingDapp))
187187 func claimReward (accum,nftId) = {
188188 let invRes = invoke(farmingDapp, "claimReward", [nftId], nil)
189189 if ((invRes == invRes))
190190 then match invRes {
191191 case int: Int =>
192192 (accum + int)
193193 case _ =>
194194 throw("_5")
195195 }
196196 else throw("Strict value is not equal to itself.")
197197 }
198198
199199 let nftIds = split(ids, ";")
200200 let foldResult = {
201201 let $l = nftIds
202202 let $s = size($l)
203203 let $acc0 = 0
204204 func $f0_1 ($a,$i) = if (($i >= $s))
205205 then $a
206206 else claimReward($a, $l[$i])
207207
208208 func $f0_2 ($a,$i) = if (($i >= $s))
209209 then $a
210210 else throw("List size exceeds 10")
211211
212212 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
213213 }
214214 let claimedReward = match foldResult {
215215 case int: Int =>
216216 int
217217 case _ =>
218218 throw("_6")
219219 }
220220 let farmCeoFeeSize = fraction(claimedReward, feePercent, 100)
221221 let toDistr = getInt(kToDistr)
222222 let totalFarmingReward = getInt(kTotalFarmingReward)
223223 let currentCeoFee = getInt(kCeoCollectedFee)
224224 let ceoFeeOverall = getInt(kCeoCollectedFeeOverall)
225225 let amountToPay = (claimedReward - farmCeoFeeSize)
226226 let amountCompontCall = invoke(this, "calculateCompoundShareAndIssue", [amountToPay], nil)
227227 if ((amountCompontCall == amountCompontCall))
228228 then {
229229 let compound = match amountCompontCall {
230230 case int: Int =>
231231 int
232232 case _ =>
233233 throw("Error during compound calcuations")
234234 }
235235 let topUp = invoke(stakingAddress, "topUpReward", nil, [AttachedPayment(eggAssetId, (amountToPay - compound)), AttachedPayment(shareAssetId, compound)])
236236 if ((topUp == topUp))
237237 then {
238238 let succes = match topUp {
239239 case boolean: Boolean =>
240240 boolean
241241 case _ =>
242242 throw("Error during topup")
243243 }
244244 [IntegerEntry(kTotalFarmingReward, ((totalFarmingReward + claimedReward) - farmCeoFeeSize)), IntegerEntry(kToDistr, ((toDistr + claimedReward) - farmCeoFeeSize)), IntegerEntry(kCeoCollectedFee, (currentCeoFee + farmCeoFeeSize)), IntegerEntry(kCeoCollectedFeeOverall, (ceoFeeOverall + farmCeoFeeSize))]
245245 }
246246 else throw("Strict value is not equal to itself.")
247247 }
248248 else throw("Strict value is not equal to itself.")
249249 }
250250
251251
252252
253253 @Callable(i)
254254 func claimCeoFee (address1,address2,address1Share,address2Share) = if (((address1Share + address2Share) != 100))
255255 then throw("Sum of shares should be 100")
256256 else if ((getBool(kLocked) == true))
257257 then throw("_22")
258258 else if ((i.caller == this))
259259 then {
260260 let currentCeoCollectedFee = getInt(kCeoCollectedFee)
261261 let address1Reward = if ((address2 == ""))
262262 then currentCeoCollectedFee
263263 else fraction(currentCeoCollectedFee, address1Share, 100)
264264 let address2Reward = if ((address2 == ""))
265265 then 0
266266 else fraction(currentCeoCollectedFee, address2Share, 100)
267267 [ScriptTransfer(addressFromStringValue(address1), address1Reward, getEggId()), ScriptTransfer(addressFromStringValue(address2), address2Reward, getEggId()), IntegerEntry(kCeoCollectedFee, 0)]
268268 }
269269 else throw("Only manager can call the contract")
270270
271271
272272
273273 @Callable(i)
274274 func startLiquidation (auctionId) = throw("_7")
275275
276276
277277
278278 @Callable(i)
279279 func voteForLiquidation (auctionId) = throw("_7")
280280
281281
282282
283283 @Callable(i)
284284 func callUnstakeProxy (function,assetId) = if ((getBool(kLocked) == true))
285285 then throw("Contract is locked now")
286286 else if (if ((function != "unstakeNFT"))
287287 then (function != "unstakeJackpot")
288288 else false)
289289 then throw("Bad function name")
290290 else if ((i.caller != this))
291291 then throw("Can be called only by the account")
292292 else {
293293 let eggAssetId = getEggId()
294294 let shareAssetId = getShareAssetId()
295295 let farmingDappAddress = addressFromStringValue(getStrA(mAccAddr, "FARMING_DAPP"))
296296 let ustakedReward = invoke(farmingDappAddress, function, [assetId], nil)
297297 if ((ustakedReward == ustakedReward))
298298 then {
299299 let unstakedRewardNow = getInt(kUnstakedReward)
300- let newUnstakedReward = match ustakedReward {
300+ let reward = match ustakedReward {
301301 case int: Int =>
302- (unstakedRewardNow + int)
302+ int
303303 case _ =>
304304 throw("Error during unstaking")
305305 }
306+ let newUnstakedReward = (reward + unstakedRewardNow)
306307 let currentCeoFee = getInt(kCeoCollectedFee)
307308 let ceoFeeOverall = getInt(kCeoCollectedFeeOverall)
308309 let farmCeoFeeSize = fraction(unstakedRewardNow, feePercent, 100)
309- let amountToPay = ((newUnstakedReward - unstakedRewardNow) - farmCeoFeeSize)
310+ let amountToPay = (reward - fraction(reward, feePercent, 100))
310311 let amountCompontCall = invoke(this, "calculateCompoundShareAndIssue", [amountToPay], nil)
311312 if ((amountCompontCall == amountCompontCall))
312313 then {
313314 let compound = match amountCompontCall {
314315 case int: Int =>
315316 int
316317 case _ =>
317318 throw("Error during compound calcuations")
318319 }
319320 let topUp = invoke(stakingAddress, "topUpReward", nil, [AttachedPayment(eggAssetId, (amountToPay - compound)), AttachedPayment(shareAssetId, compound)])
320321 if ((topUp == topUp))
321322 then {
322323 let succes = match topUp {
323324 case boolean: Boolean =>
324325 boolean
325326 case _ =>
326327 throw("Error during topup")
327328 }
328329 [IntegerEntry(kCeoCollectedFee, (currentCeoFee + farmCeoFeeSize)), IntegerEntry(kCeoCollectedFeeOverall, (ceoFeeOverall + farmCeoFeeSize)), IntegerEntry(kUnstakedReward, newUnstakedReward)]
329330 }
330331 else throw("Strict value is not equal to itself.")
331332 }
332333 else throw("Strict value is not equal to itself.")
333334 }
334335 else throw("Strict value is not equal to itself.")
335336 }
336337
337338
338339
339340 @Callable(i)
340341 func revertTransfer (txId) = if ((getBool(kLocked) == true))
341342 then throw("Contract is locked now")
342343 else if ((i.caller != this))
343344 then throw("Can be called only by the account")
344345 else {
345346 let tx = value(transferTransactionById(fromBase58String(txId)))
346347 let kReverted = ("tx_revert_" + txId)
347348 let txReverted = getBool(kReverted)
348349 let unstakedRewardNow = getInt(kUnstakedReward)
349350 let toDistr = getInt(kToDistr)
350351 let minBalance = (unstakedRewardNow + toDistr)
351352 let currentEggBalance = assetBalance(this, getEggId())
352353 let result = [ScriptTransfer(tx.sender, tx.amount, tx.assetId), BooleanEntry(kReverted, true)]
353354 if ((txReverted == true))
354355 then throw("Tx already reverted")
355356 else if ((tx.recipient != this))
356357 then throw("Tx recipient is another account")
357358 else if ((tx.assetId == getShareAssetId()))
358359 then result
359360 else if ((tx.assetId != getEggId()))
360361 then throw("Transaction is not with EGG or share tokens")
361362 else if ((minBalance > (currentEggBalance - tx.amount)))
362363 then throw("Revert makes balance too low")
363364 else result
364365 }
365366
366367
367368
368369 @Callable(i)
369370 func claimReward () = {
370371 let addresses = getStr("rew1")
371372 let addressParts = split(addresses, ";")
372373 func findReward (acc,val) = {
373374 let parts = value(split(val, "="))
374375 if ((value(parts[0]) == toString(i.caller)))
375376 then (acc + parseIntValue(parts[1]))
376377 else 0
377378 }
378379
379380 let reward = {
380381 let $l = addressParts
381382 let $s = size($l)
382383 let $acc0 = 0
383384 func $f0_1 ($a,$i) = if (($i >= $s))
384385 then $a
385386 else findReward($a, $l[$i])
386387
387388 func $f0_2 ($a,$i) = if (($i >= $s))
388389 then $a
389390 else throw("List size exceeds 83")
390391
391392 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83)
392393 }
393394 [IntegerEntry("a", reward)]
394395 }
395396
396397
397398 @Verifier(tx)
398399 func verify () = {
399400 let checkStarted = (getInt(kTotalLiquidity) >= getInt(kLiquidityThreshold))
400401 func totalEggSpending (accum,payment) = if ((payment.assetId == getEggId()))
401402 then (accum + payment.amount)
402403 else accum
403404
404405 match tx {
405406 case inv: InvokeScriptTransaction =>
406407 let unstakedRewardNow = getInt(kUnstakedReward)
407408 let toDistr = getInt(kToDistr)
408409 let minBalance = (unstakedRewardNow + toDistr)
409410 let acceptedCallsStaking = ["stakeFarmTokens", "claimReward", "withdrawFarmTokens"]
410411 let acceptedCallsThis = ["callUnstakeProxy", "revertTransfer", "claimCeoFee", "lockInvestments", "unlockInvestments"]
411412 if (if ((inv.function == "unstakeNFT"))
412413 then true
413414 else (inv.function == "unstakeJackpot"))
414415 then throw("You cannot call these functions directly")
415416 else if ((sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) == false))
416417 then throw("_100")
417418 else if ((checkStarted == false))
418419 then throw("_14")
419420 else if ((getBool(kLocked) == true))
420421 then throw("_22")
421422 else if (if ((inv.fee > 900000))
422423 then true
423424 else (inv.feeAssetId != unit))
424425 then throw("_15")
425426 else if (if ((addressFromRecipient(inv.dApp) != stakingAddress))
426427 then (inv.function == "claimReward")
427428 else false)
428429 then throw("_16")
429430 else if ((size(inv.payments) > 2))
430431 then throw("_17")
431432 else if ((minBalance > ((assetBalance(this, getEggId()) - {
432433 let $l = inv.payments
433434 let $s = size($l)
434435 let $acc0 = 0
435436 func $f0_1 ($a,$i) = if (($i >= $s))
436437 then $a
437438 else totalEggSpending($a, $l[$i])
438439
439440 func $f0_2 ($a,$i) = if (($i >= $s))
440441 then $a
441442 else throw("List size exceeds 3")
442443
443444 $f0_2($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3)
444445 }) * 1000000)))
445446 then throw(("Your minimal balance should be = " + toString(minBalance)))
446447 else if (if ((addressFromRecipient(inv.dApp) == this))
447448 then containsElement(acceptedCallsThis, inv.function)
448449 else false)
449450 then sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
450451 else if (if ((addressFromRecipient(inv.dApp) == addressFromStringValue(getMarketProxyAddr())))
451452 then (inv.function == "callMarketplaceProxy")
452453 else false)
453454 then sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
454455 else if (if ((addressFromRecipient(inv.dApp) == stakingAddress))
455456 then containsElement(acceptedCallsStaking, inv.function)
456457 else false)
457458 then sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
458459 else {
459460 let allowedContracts = getStrA(mAccAddr, "allowed_contracts")
460461 let allowedContractsList = split(allowedContracts, ";")
461462 let dappToCall = toString(addressFromRecipient(inv.dApp))
462463 (indexOf(allowedContractsList, dappToCall) != unit)
463464 }
464465 case ss: SetScriptTransaction =>
465466 sigVerify(tx.bodyBytes, tx.proofs[0], mAccPKey)
466467 case mt: MassTransferTransaction =>
467468 sigVerify(tx.bodyBytes, tx.proofs[0], mAccPKey)
468469 case dt: DataTransaction =>
469470 sigVerify(tx.bodyBytes, tx.proofs[0], mAccPKey)
470471 case _ =>
471472 false
472473 }
473474 }
474475

github/deemru/w8io/6500d08 
58.92 ms