tx · 3vtd11TjFcu5v3FUvLuZDM34Q1VJsCyL5fy1qgYYZfYH

3P2q6tfVRAhiZUoydGYwDJPybgDhSAtHGRo:  -0.01400000 Waves

2022.01.24 21:34 [2958503] smart account 3P2q6tfVRAhiZUoydGYwDJPybgDhSAtHGRo > SELF 0.00000000 Waves

{ "type": 13, "id": "3vtd11TjFcu5v3FUvLuZDM34Q1VJsCyL5fy1qgYYZfYH", "fee": 1400000, "feeAssetId": null, "timestamp": 1643049262343, "version": 2, "chainId": 87, "sender": "3P2q6tfVRAhiZUoydGYwDJPybgDhSAtHGRo", "senderPublicKey": "wY4NwyJskK4UBjW8X3dFzJfPt5SxDCcmf6ysqcho2pB", "proofs": [ "62oGtwj6XWDfYY2sUUiCUDcWSVmu9dhoszyfToWmyRnm58FNN35yrdwVZbESrKuDrm3fQ6kTYhsuM4EZUswFBD61" ], "script": "base64:AAIFAAAAAAAACToIAhIDCgEBEgQKAggBEgMKAQQSABIAEgASAwoBCBIGCgQICAEBEgMKAQgSAwoBCBIECgIICBIDCgEIEgAaDAoBQRIHJG1hdGNoMBoGCgFCEgFiGgsKAUMSBmdldFN0choMCgFEEgdnZXRCb29sGgwKAUUSB2dldFN0ckEaBgoBRhIBYRoGCgFHEgFrGgwKAUgSB2dldEludEEaDAoBSRIHYWRkcmVzcxoXCgFKEhJnZXRNYXJrZXRQcm94eUFkZHIaDQoBSxIIZ2V0RWdnSWQaFAoBTBIPZ2V0U2hhcmVBc3NldElkGgYKAU0SAWkaCwoBThIGYW1vdW50GhEKAU8SDHNoYXJlQXNzZXRJZBoSCgFQEg10b3RhbENvbXBvdW5kGhAKAVESC3RvdGFsU3Rha2VkGhAKAVISC3RvdGFsTG9ja2VkGhYKAVMSEWFtb3VudEZvckNvbXBvdW5kGhUKAVQSEHRvdGFsU2hhcmVUb2tlbnMaCQoBVRIEbmFtZRoVCgFWEhBtaW5pbXVtVGhyZXNob2xkGhAKAVcSC3NoYXJlVG9rZW5zGg8KAVgSCnNoYXJlVG9rZW4aBgoBWRIBcxoPCgFaEgplZ2dBc3NldElkGg0KAWESCG1BY2NQS2V5Gg0KAmFBEgd0b0Rpc3RyGhgKAmFCEhJ0b3RhbEZhcm1pbmdSZXdhcmQaEwoCYUMSDWN1cnJlbnRDZW9GZWUaEwoCYUQSDWNlb0ZlZU92ZXJhbGwaEQoCYUUSC2Ftb3VudFRvUGF5GhcKAmFGEhFhbW91bnRDb21wb250Q2FsbBoOCgJhRxIIY29tcG91bmQaCwoCYUgSBXRvcFVwGgwKAmFJEgZzdWNjZXMaDQoCYUoSB2Jvb2xlYW4aDgoCYUsSCGFkZHJlc3MxGg4KAmFMEghhZGRyZXNzMhoTCgJhTRINYWRkcmVzczFTaGFyZRoTCgJhThINYWRkcmVzczJTaGFyZRocCgJhTxIWY3VycmVudENlb0NvbGxlY3RlZEZlZRoUCgJhUBIOYWRkcmVzczFSZXdhcmQaFAoCYVESDmFkZHJlc3MyUmV3YXJkGg8KAmFSEglhdWN0aW9uSWQaDgoCYVMSCGZ1bmN0aW9uGg0KAmFUEgdhc3NldElkGhgKAmFVEhJmYXJtaW5nRGFwcEFkZHJlc3MaEwoCYVYSDXVzdGFrZWRSZXdhcmQaFwoCYVcSEXVuc3Rha2VkUmV3YXJkTm93GgwKAmFYEgZyZXdhcmQaFwoCYVkSEW5ld1Vuc3Rha2VkUmV3YXJkGgoKAmFaEgR0eElkGhQKAmFhEg50b3RhbExpcXVpZGl0eRoXCgJhYhIRc2hhcmVUb2tlbnNUb0dpdmUaEwoCYWMSDXNoYXJlVG9rZW5zSWQaDQoCYWQSB3JlaXNzdWUaFgoCYWUSEGZhcm1QYXJ0aWNpcGFudHMaEwoCYWYSDWtQYXJ0aWNpcGF0ZWQaGQoCYWcSE2FscmVhZHlQYXJ0aWNpcGF0ZWQaGQoCYWgSE25ld0Zhcm1QYXJ0aWNpcGFudHMaCQoCYWkSA2lkcxoRCgJhahILZmFybWluZ0RhcHAaEQoCYWsSC2NsYWltUmV3YXJkGgsKAmFsEgVhY2N1bRoLCgJhbRIFbmZ0SWQaDAoCYW4SBmludlJlcxoJCgJhbxIDaW50GgwKAmFwEgZuZnRJZHMaEAoCYXESCmZvbGRSZXN1bHQaCAoCYXISAiRsGggKAmFzEgIkcxoLCgJhdBIFJGFjYzAaCwoCYXUSBSRmMF8xGggKAmF2EgIkYRoICgJhdxICJGkaCwoCYXgSBSRmMF8yGhMKAmF5Eg1jbGFpbWVkUmV3YXJkGhQKAmF6Eg5mYXJtQ2VvRmVlU2l6ZRoNCgFiEghtQWNjQWRkchoICgJiYRICdHgaDwoCYmISCWtSZXZlcnRlZBoQCgJiYxIKdHhSZXZlcnRlZBoQCgJiZBIKbWluQmFsYW5jZRoXCgJiZRIRY3VycmVudEVnZ0JhbGFuY2UaDAoCYmYSBnJlc3VsdBoPCgJiZxIJYWRkcmVzc2VzGhIKAmJoEgxhZGRyZXNzUGFydHMaEAoCYmkSCmZpbmRSZXdhcmQaCQoCYmoSA2FjYxoJCgJiaxIDdmFsGgsKAmJsEgVwYXJ0cxoMCgJibRIGdmVyaWZ5GhIKAmJuEgxjaGVja1N0YXJ0ZWQaFgoCYm8SEHRvdGFsRWdnU3BlbmRpbmcaDQoCYnASB3BheW1lbnQaCQoCYnESA2ludhoaCgJichIUYWNjZXB0ZWRDYWxsc1N0YWtpbmcaFwoCYnMSEWFjY2VwdGVkQ2FsbHNUaGlzGhYKAmJ0EhBhbGxvd2VkQ29udHJhY3Rz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AAAAAgkBAAAAAmF1AAAAAgkBAAAAAmF1AAAAAgkBAAAAAmF1AAAAAgkBAAAAAmF1AAAAAgkBAAAAAmF1AAAAAgkBAAAAAmF1AAAAAgkBAAAAAmF1AAAAAgkBAAAAAmF1AAAAAgkBAAAAAmF1AAAAAgkBAAAAAmF1AAAAAgkBAAAAAmF1AAAAAgkBAAAAAmF1AAAAAgkBAAAAAmF1AAAAAgkBAAAAAmF1AAAAAgkBAAAAAmF1AAAAAgkBAAAAAmF1AAAAAgkBAAAAAmF1AAAAAgkBAAAAAmF1AAAAAgkBAAAAAmF1AAAAAgkBAAAAAmF1AAAAAgkBAAAAAmF1AAAAAgkBAAAAAmF1AAAAAgkBAAAAAmF1AAAAAgkBAAAAAmF1AAAAAgkBAAAAAmF1AAAAAgkBAAAAAmF1AAAAAgkBAAAAAmF1AAAAAgkBAAAAAmF1AAAAAgkBAAAAAmF1AAAAAgkBAAAAAmF1AAAAAgkBAAAAAmF1AAAAAgkBAAAAAmF1AAAAAgkBAAAAAmF1AAAAAgkBAAAAAmF1AAAAAgkBAAAAAmF1AAAAAgkBAAAAAmF1AAAAAgkBAAAAAmF1AAAAAgkBAAAAAmF1AAAAAgkBAAAAAmF1AAAAAgkBAAAAAmF1AAAAAgkBAAAAAmF1AAAAAgkBAAAAAmF1AAAAAgkBAAAAAmF1AAAAAgkBAAAAAmF1AAAAAgkBAAAAAmF1AAAAAgkBAAAAAmF1AAAAAgkBAAAAAmF1AAAAAgkBAAAAAmF1AAAAAgkBAAAAAmF1AAAAAgkBAAAAAmF1AAAAAgkBAAAAAmF1AAAAAgkBAAAAAmF1AAAAAgkBAAAAAmF1AAAAAgkBAAAAAmF1AAAAAgkBAAAAAmF1AAAAAgkBAAAAAmF1AAAAAgkBAAAAAmF1AAAAAgkBAAAAAmF1AAAAAgkBAAAAAmF1AAAAAgkBAAAAAmF1AAAAAgkBAAAAAmF1AAAAAgkBAAAAAmF1AAAAAgkBAAAAAmF1AAAAAgkBAAAAAmF1AAAAAgkBAAAAAmF1AAAAAgkBAAAAAmF1AAAAAgkBAAAAAmF1AAAAAgkBAAAAAmF1AAAAAgkBAAAAAmF1AAAAAgkBAAAAAmF1AAAAAgUAAAACYXQAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAIAAAAAAAAAAAMAAAAAAAAAAAQAAAAA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", "height": 2958503, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: vRNbg5o14iGywkgrfNGmquhgWfCDskimuSNw1hL4yej Next: 4pGCb94auLN4HbFetPh1UmF1N1pkyPF6cPpTXNoMEzLq Diff:
OldNewDifferences
105105 let totalStaked = getIntA(stakingAddress, keyGlobalStaked)
106106 let totalLocked = (totalStaked + totalCompound)
107107 let amountForCompound = fraction(amount, totalCompound, totalLocked)
108- $Tuple2([Reissue(shareAssetId, amountForCompound, true)], amountForCompound)
108+ let totalShareTokens = getInt(kTotalShareTokens)
109+ $Tuple2([Reissue(shareAssetId, amountForCompound, true), IntegerEntry(kTotalShareTokens, (totalShareTokens + amountForCompound))], amountForCompound)
109110 }
110111
111112
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)
108- $Tuple2([Reissue(shareAssetId, amountForCompound, true)], amountForCompound)
108+ let totalShareTokens = getInt(kTotalShareTokens)
109+ $Tuple2([Reissue(shareAssetId, amountForCompound, true), IntegerEntry(kTotalShareTokens, (totalShareTokens + amountForCompound))], amountForCompound)
109110 }
110111
111112
112113
113114 @Callable(i)
114115 func initCollectiveFarm (name,minimumThreshold) = if ((i.callerPublicKey != mAccPKey))
115116 then throw("_1")
116117 else if ((getBool(kInitialized) != unit))
117118 then throw("_2")
118119 else if (if ((i.payments[0].amount != 10000000))
119120 then true
120121 else (i.payments[0].assetId != getEggId()))
121122 then throw("_20")
122123 else {
123124 let shareTokens = 10000000
124125 let shareToken = Issue(name, (("Team token for the \"" + name) + "\" collective farm"), shareTokens, 8, true)
125126 [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)]
126127 }
127128
128129
129130
130131 @Callable(i)
131132 func setLock (s) = if ((i.callerPublicKey != mAccPKey))
132133 then throw("_21")
133134 else [BooleanEntry(kLocked, s)]
134135
135136
136137
137138 @Callable(i)
138139 func lockInvestments () = if ((i.caller != this))
139140 then throw("You cannot lock this contract")
140141 else [BooleanEntry(kLockedInvestments, true)]
141142
142143
143144
144145 @Callable(i)
145146 func unlockInvestments () = if ((i.caller != this))
146147 then throw("You cannot lock this contract")
147148 else [BooleanEntry(kLockedInvestments, false)]
148149
149150
150151
151152 @Callable(i)
152153 func provideLiquidity () = {
153154 let eggAssetId = getEggId()
154155 if ((getBool(kLockedInvestments) == true))
155156 then throw("Contract is locked for investments by it's CEO. Please invest in another collective farm.")
156157 else if ((getBool(kLocked) == true))
157158 then throw("_22")
158159 else if ((i.payments[0].assetId != eggAssetId))
159160 then throw("_4")
160161 else if ((1000000 > i.payments[0].amount))
161162 then throw("Min amount to invest is 0.01 EGG")
162163 else {
163164 let totalLiquidity = getInt(kTotalLiquidity)
164165 let totalShareTokens = getInt(kTotalShareTokens)
165166 let shareTokensToGive = i.payments[0].amount
166167 let shareTokensId = fromBase58String(getStr(kShareAssetId))
167168 let reissue = Reissue(getShareAssetId(), shareTokensToGive, true)
168169 let farmParticipants = getInt(kFarmParticipants)
169170 let kParticipated = (("account_" + toString(i.caller)) + "_participated")
170171 let alreadyParticipated = getBool(kParticipated)
171172 let newFarmParticipants = if ((alreadyParticipated == unit))
172173 then (farmParticipants + 1)
173174 else farmParticipants
174175 $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)
175176 }
176177 }
177178
178179
179180
180181 @Callable(i)
181182 func claimFarmingRewardProxy (ids) = if ((i.callerPublicKey != mAccPKey))
182183 then throw("_23")
183184 else {
184185 let eggAssetId = getEggId()
185186 let shareAssetId = getShareAssetId()
186187 let farmingDapp = addressFromStringValue(getStrA(mAccAddr, kFarmingDapp))
187188 func claimReward (accum,nftId) = {
188189 let invRes = invoke(farmingDapp, "claimReward", [nftId], nil)
189190 if ((invRes == invRes))
190191 then match invRes {
191192 case int: Int =>
192193 (accum + int)
193194 case _ =>
194195 throw("_5")
195196 }
196197 else throw("Strict value is not equal to itself.")
197198 }
198199
199200 let nftIds = split(ids, ";")
200201 let foldResult = {
201202 let $l = nftIds
202203 let $s = size($l)
203204 let $acc0 = 0
204205 func $f0_1 ($a,$i) = if (($i >= $s))
205206 then $a
206207 else claimReward($a, $l[$i])
207208
208209 func $f0_2 ($a,$i) = if (($i >= $s))
209210 then $a
210211 else throw("List size exceeds 10")
211212
212213 $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)
213214 }
214215 let claimedReward = match foldResult {
215216 case int: Int =>
216217 int
217218 case _ =>
218219 throw("_6")
219220 }
220221 let farmCeoFeeSize = fraction(claimedReward, feePercent, 100)
221222 let toDistr = getInt(kToDistr)
222223 let totalFarmingReward = getInt(kTotalFarmingReward)
223224 let currentCeoFee = getInt(kCeoCollectedFee)
224225 let ceoFeeOverall = getInt(kCeoCollectedFeeOverall)
225226 let amountToPay = (claimedReward - farmCeoFeeSize)
226227 let amountCompontCall = invoke(this, "calculateCompoundShareAndIssue", [amountToPay], nil)
227228 if ((amountCompontCall == amountCompontCall))
228229 then {
229230 let compound = match amountCompontCall {
230231 case int: Int =>
231232 int
232233 case _ =>
233234 throw("Error during compound calcuations")
234235 }
235236 let topUp = invoke(stakingAddress, "topUpReward", nil, [AttachedPayment(eggAssetId, (amountToPay - compound)), AttachedPayment(shareAssetId, compound)])
236237 if ((topUp == topUp))
237238 then {
238239 let succes = match topUp {
239240 case boolean: Boolean =>
240241 boolean
241242 case _ =>
242243 throw("Error during topup")
243244 }
244245 [IntegerEntry(kTotalFarmingReward, ((totalFarmingReward + claimedReward) - farmCeoFeeSize)), IntegerEntry(kToDistr, ((toDistr + claimedReward) - farmCeoFeeSize)), IntegerEntry(kCeoCollectedFee, (currentCeoFee + farmCeoFeeSize)), IntegerEntry(kCeoCollectedFeeOverall, (ceoFeeOverall + farmCeoFeeSize))]
245246 }
246247 else throw("Strict value is not equal to itself.")
247248 }
248249 else throw("Strict value is not equal to itself.")
249250 }
250251
251252
252253
253254 @Callable(i)
254255 func claimCeoFee (address1,address2,address1Share,address2Share) = if (((address1Share + address2Share) != 100))
255256 then throw("Sum of shares should be 100")
256257 else if ((getBool(kLocked) == true))
257258 then throw("_22")
258259 else if ((i.caller == this))
259260 then {
260261 let currentCeoCollectedFee = getInt(kCeoCollectedFee)
261262 let address1Reward = if ((address2 == ""))
262263 then currentCeoCollectedFee
263264 else fraction(currentCeoCollectedFee, address1Share, 100)
264265 let address2Reward = if ((address2 == ""))
265266 then 0
266267 else fraction(currentCeoCollectedFee, address2Share, 100)
267268 [ScriptTransfer(addressFromStringValue(address1), address1Reward, getEggId()), ScriptTransfer(addressFromStringValue(address2), address2Reward, getEggId()), IntegerEntry(kCeoCollectedFee, 0)]
268269 }
269270 else throw("Only manager can call the contract")
270271
271272
272273
273274 @Callable(i)
274275 func startLiquidation (auctionId) = throw("_7")
275276
276277
277278
278279 @Callable(i)
279280 func voteForLiquidation (auctionId) = throw("_7")
280281
281282
282283
283284 @Callable(i)
284285 func callUnstakeProxy (function,assetId) = if ((getBool(kLocked) == true))
285286 then throw("Contract is locked now")
286287 else if (if ((function != "unstakeNFT"))
287288 then (function != "unstakeJackpot")
288289 else false)
289290 then throw("Bad function name")
290291 else if ((i.caller != this))
291292 then throw("Can be called only by the account")
292293 else {
293294 let eggAssetId = getEggId()
294295 let shareAssetId = getShareAssetId()
295296 let farmingDappAddress = addressFromStringValue(getStrA(mAccAddr, "FARMING_DAPP"))
296297 let ustakedReward = invoke(farmingDappAddress, function, [assetId], nil)
297298 if ((ustakedReward == ustakedReward))
298299 then {
299300 let unstakedRewardNow = getInt(kUnstakedReward)
300301 let reward = match ustakedReward {
301302 case int: Int =>
302303 int
303304 case _ =>
304305 throw("Error during unstaking")
305306 }
306307 let newUnstakedReward = (reward + unstakedRewardNow)
307308 let currentCeoFee = getInt(kCeoCollectedFee)
308309 let ceoFeeOverall = getInt(kCeoCollectedFeeOverall)
309310 let farmCeoFeeSize = fraction(unstakedRewardNow, feePercent, 100)
310311 let amountToPay = (reward - fraction(reward, feePercent, 100))
311312 let amountCompontCall = invoke(this, "calculateCompoundShareAndIssue", [amountToPay], nil)
312313 if ((amountCompontCall == amountCompontCall))
313314 then {
314315 let compound = match amountCompontCall {
315316 case int: Int =>
316317 int
317318 case _ =>
318319 throw("Error during compound calcuations")
319320 }
320321 let topUp = invoke(stakingAddress, "topUpReward", nil, [AttachedPayment(eggAssetId, (amountToPay - compound)), AttachedPayment(shareAssetId, compound)])
321322 if ((topUp == topUp))
322323 then {
323324 let succes = match topUp {
324325 case boolean: Boolean =>
325326 boolean
326327 case _ =>
327328 throw("Error during topup")
328329 }
329330 [IntegerEntry(kCeoCollectedFee, (currentCeoFee + farmCeoFeeSize)), IntegerEntry(kCeoCollectedFeeOverall, (ceoFeeOverall + farmCeoFeeSize)), IntegerEntry(kUnstakedReward, newUnstakedReward)]
330331 }
331332 else throw("Strict value is not equal to itself.")
332333 }
333334 else throw("Strict value is not equal to itself.")
334335 }
335336 else throw("Strict value is not equal to itself.")
336337 }
337338
338339
339340
340341 @Callable(i)
341342 func revertTransfer (txId) = if ((getBool(kLocked) == true))
342343 then throw("Contract is locked now")
343344 else if ((i.caller != this))
344345 then throw("Can be called only by the account")
345346 else {
346347 let tx = value(transferTransactionById(fromBase58String(txId)))
347348 let kReverted = ("tx_revert_" + txId)
348349 let txReverted = getBool(kReverted)
349350 let unstakedRewardNow = getInt(kUnstakedReward)
350351 let toDistr = getInt(kToDistr)
351352 let minBalance = (unstakedRewardNow + toDistr)
352353 let currentEggBalance = assetBalance(this, getEggId())
353354 let result = [ScriptTransfer(tx.sender, tx.amount, tx.assetId), BooleanEntry(kReverted, true)]
354355 if ((txReverted == true))
355356 then throw("Tx already reverted")
356357 else if ((tx.recipient != this))
357358 then throw("Tx recipient is another account")
358359 else if ((tx.assetId == getShareAssetId()))
359360 then result
360361 else if ((tx.assetId != getEggId()))
361362 then throw("Transaction is not with EGG or share tokens")
362363 else if ((minBalance > (currentEggBalance - tx.amount)))
363364 then throw("Revert makes balance too low")
364365 else result
365366 }
366367
367368
368369
369370 @Callable(i)
370371 func claimReward () = {
371372 let addresses = getStr("rew1")
372373 let addressParts = split(addresses, ";")
373374 func findReward (acc,val) = {
374375 let parts = value(split(val, "="))
375376 if ((value(parts[0]) == toString(i.caller)))
376377 then (acc + parseIntValue(parts[1]))
377378 else 0
378379 }
379380
380381 let reward = {
381382 let $l = addressParts
382383 let $s = size($l)
383384 let $acc0 = 0
384385 func $f0_1 ($a,$i) = if (($i >= $s))
385386 then $a
386387 else findReward($a, $l[$i])
387388
388389 func $f0_2 ($a,$i) = if (($i >= $s))
389390 then $a
390391 else throw("List size exceeds 83")
391392
392393 $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)
393394 }
394395 [IntegerEntry("a", reward)]
395396 }
396397
397398
398399 @Verifier(tx)
399400 func verify () = {
400401 let checkStarted = (getInt(kTotalLiquidity) >= getInt(kLiquidityThreshold))
401402 func totalEggSpending (accum,payment) = if ((payment.assetId == getEggId()))
402403 then (accum + payment.amount)
403404 else accum
404405
405406 match tx {
406407 case inv: InvokeScriptTransaction =>
407408 let unstakedRewardNow = getInt(kUnstakedReward)
408409 let toDistr = getInt(kToDistr)
409410 let minBalance = (unstakedRewardNow + toDistr)
410411 let acceptedCallsStaking = ["stakeFarmTokens", "claimReward", "withdrawFarmTokens"]
411412 let acceptedCallsThis = ["callUnstakeProxy", "revertTransfer", "claimCeoFee", "lockInvestments", "unlockInvestments"]
412413 if (if ((inv.function == "unstakeNFT"))
413414 then true
414415 else (inv.function == "unstakeJackpot"))
415416 then throw("You cannot call these functions directly")
416417 else if ((sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) == false))
417418 then throw("_100")
418419 else if ((checkStarted == false))
419420 then throw("_14")
420421 else if ((getBool(kLocked) == true))
421422 then throw("_22")
422423 else if (if ((inv.fee > 900000))
423424 then true
424425 else (inv.feeAssetId != unit))
425426 then throw("_15")
426427 else if (if ((addressFromRecipient(inv.dApp) != stakingAddress))
427428 then (inv.function == "claimReward")
428429 else false)
429430 then throw("_16")
430431 else if ((size(inv.payments) > 2))
431432 then throw("_17")
432433 else if ((minBalance > ((assetBalance(this, getEggId()) - {
433434 let $l = inv.payments
434435 let $s = size($l)
435436 let $acc0 = 0
436437 func $f0_1 ($a,$i) = if (($i >= $s))
437438 then $a
438439 else totalEggSpending($a, $l[$i])
439440
440441 func $f0_2 ($a,$i) = if (($i >= $s))
441442 then $a
442443 else throw("List size exceeds 3")
443444
444445 $f0_2($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3)
445446 }) * 1000000)))
446447 then throw(("Your minimal balance should be = " + toString(minBalance)))
447448 else if (if ((addressFromRecipient(inv.dApp) == this))
448449 then containsElement(acceptedCallsThis, inv.function)
449450 else false)
450451 then sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
451452 else if (if ((addressFromRecipient(inv.dApp) == addressFromStringValue(getMarketProxyAddr())))
452453 then (inv.function == "callMarketplaceProxy")
453454 else false)
454455 then sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
455456 else if (if ((addressFromRecipient(inv.dApp) == stakingAddress))
456457 then containsElement(acceptedCallsStaking, inv.function)
457458 else false)
458459 then sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
459460 else {
460461 let allowedContracts = getStrA(mAccAddr, "allowed_contracts")
461462 let allowedContractsList = split(allowedContracts, ";")
462463 let dappToCall = toString(addressFromRecipient(inv.dApp))
463464 (indexOf(allowedContractsList, dappToCall) != unit)
464465 }
465466 case ss: SetScriptTransaction =>
466467 sigVerify(tx.bodyBytes, tx.proofs[0], mAccPKey)
467468 case mt: MassTransferTransaction =>
468469 sigVerify(tx.bodyBytes, tx.proofs[0], mAccPKey)
469470 case dt: DataTransaction =>
470471 sigVerify(tx.bodyBytes, tx.proofs[0], mAccPKey)
471472 case _ =>
472473 false
473474 }
474475 }
475476

github/deemru/w8io/3ef1775 
56.25 ms