2021.09.17 17:48 [2772100] smart account 3PQf8xUsCEfKtvpRNX9PZN3jK961gapuJNz > SELF 0.00000000 Waves

{ "type": 13, "id": "BbvpHvFTygZTaBx3K9qKPDoLDeuXxGhE17PRzP9RVUiB", "fee": 1400000, "feeAssetId": null, "timestamp": 1631890225644, "version": 2, "chainId": 87, "sender": "3PQf8xUsCEfKtvpRNX9PZN3jK961gapuJNz", "senderPublicKey": "FFz7jPe4hyVFHBLwTwV6MrPitEQiv9qMLmYvaSdeqpaT", "proofs": [ "3C9wKFAFFUrGqWLKYqR46PcftbPDhPfJTp1bzQ54UvUwwPiC2U22qn12hTDK7VSjFqmePH7gt3YLskoHoBpDfXUc" ], "script": "base64:AAIFAAAAAAAAC/4IAhIECgIIARIDCgEEEgASABIAEgMKAQgSAwoBCBIDCgEIEgMKAQgSBAoCCAgSAwoBCBIFCgMIAQESABoOCgJhMRIIbUFjY1BLZXkaDgoCYTISCG1BY2NBZGRyGhAKAmEzEgpmZWVQZXJjZW50GhMKAmE0Eg1vbGRFZ2dBc3NldElkGhgKAmE1EhJzd2FwRWdnRGFwcEFkZHJlc3MaFQoCYTYSD2tUb3RhbExpcXVpZGl0eRoSCgJhNxIMa0luaXRpYWxpemVkGhkKAmE4EhNrTGlxdWlkaXR5VGhyZXNob2xkGhcKAmE5EhFrRmFybVBhcnRpY2lwYW50cxoXCgJiMRIRa1RvdGFsU2hhcmVUb2tlbnMaEwoCYjISDWtTaGFyZUFzc2V0SWQaEgoCYjMSDGtGYXJtaW5nRGFwcBoWCgJiNBIQa01hcmtldFByb3h5RGFwcBoNCgJiNRIHa0xvY2tlZBoZCgJiNhITa1RvdGFsRmFybWluZ1Jld2FyZBoWCgJiNxIQa0Nlb0NvbGxlY3RlZEZlZRodCgJiOBIXa0Nlb0NvbGxlY3RlZEZlZU92ZXJhbGwaDgoCYjkSCGtUb0Rpc3RyGhUKAmMxEg9rVW5zdGFrZWRSZXdhcmQaGAoCYzISEmtMb2NrZWRJbnZlc3RtZW50cxoMCgJjMxIGZ2V0SW50GgkKAmM0EgNrZXkaDQoCYzUSByRtYXRjaDAaBwoCYzYSAWIaDAoCYzcSBmdldFN0choNCgJjOBIHZ2V0Qm9vbBoNCgJjORIHZ2V0U3RyQRoHCgJkMRIBYRoHCgJkMhIBaxoYCgJkMxISZ2V0TWFya2V0UHJveHlBZGRyGg4KAmQ0EghnZXRFZ2dJZBoVCgJkNRIPZ2V0U2hhcmVBc3NldElkGgcKAmQ2EgFpGgoKAmQ3EgRuYW1lGhYKAmQ4EhBtaW5pbXVtVGhyZXNob2xkGhEKAmQ5EgtzaGFyZVRva2VucxoQCgJlMRIKc2hhcmVUb2tlbhoHCgJlMhIBcxoQCgJlMxIKZWdnQXNzZXRJZBoUCgJlNBIOdG90YWxMaXF1aWRpdHkaFgoCZTUSEHRvdGFsU2hhcmVUb2tlbnMaHAoCZTYSFmN1cnJlbnRMaXF1aWRpdHlBbW91bnQaFwoCZTcSEXNoYXJlVG9rZW5zVG9HaXZlGhMKAmU4Eg1zaGFyZVRva2Vuc0lkGg0KAmU5EgdyZWlzc3VlGhYKAmYxEhBmYXJtUGFydGljaXBhbnRzGhMKAmYyEg1rUGFydGljaXBhdGVkGhkKAmYzEhNhbHJlYWR5UGFydGljaXBhdGVkGhkKAmY0EhNuZXdGYXJtUGFydGljaXBhbnRzGgkKAmY1EgNpZHMaEQoCZjYSC2Zhcm1pbmdEYXBwGhEKAmY3EgtjbGFpbVJld2FyZBoLCgJmOBIFYWNjdW0aCwoCZjkSBW5mdElkGgwKAmcxEgZpbnZSZXMaCQoCZzISA2ludBoMCgJnMxIGbmZ0SWRzGhAKAmc0Egpmb2xkUmVzdWx0GhMKAmc1Eg0kbGlzdDU3NDY1Nzc4GhMKAmc2Eg0kc2l6ZTU3NDY1Nzc4GhMKAmc3Eg0kYWNjMDU3NDY1Nzc4GhMKAmc4Eg0kYWNjMTU3NDY1Nzc4GhMKAmc5Eg0kYWNjMjU3NDY1Nzc4GhMKAmgxEg0kYWNjMzU3NDY1Nzc4GhMKAmgyEg0kYWNjNDU3NDY1Nzc4GhMKAmgzEg0kYWNjNTU3NDY1Nzc4GhMKAmg0Eg0kYWNjNjU3NDY1Nzc4GhMKAmg1Eg0kYWNjNzU3NDY1Nzc4GhMKAmg2Eg0kYWNjODU3NDY1Nzc4GhMKAmg3Eg0kYWNjOTU3NDY1Nzc4GhQKAmg4Eg4kYWNjMTA1NzQ2NTc3OBoUCgJoORIOJGFjYzExNTc0NjU3NzgaEwoCaTESDWNsYWltZWRSZXdhcmQaFAoCaTISDmZhcm1DZW9GZWVTaXplGg0KAmkzEgd0b0Rpc3RyGhgKAmk0EhJ0b3RhbEZhcm1pbmdSZXdhcmQaEwoCaTUSDWN1cnJlbnRDZW9GZWUaEwoCaTYSDWNlb0ZlZU92ZXJhbGwaDQoCaTcSB2FkZHJlc3MaHAoCaTgSFmN1cnJlbnRDZW9Db2xsZWN0ZWRGZWUaDwoCaTkSCWF1Y3Rpb25JZBoOCgJqMRIIZnVuY3Rpb24aDQoCajISB2Fzc2V0SWQaGAoCajMSEmZhcm1pbmdEYXBwQWRkcmVzcxoTCgJqNBINdXN0YWtlZFJld2FyZBoXCgJqNRIRdW5zdGFrZWRSZXdhcmROb3caFwoCajYSEW5ld1Vuc3Rha2VkUmV3YXJkGgoKAmo3EgR0eElkGggKAmo4EgJ0eBoPCgJqORIJa1JldmVydGVkGhAKAmsxEgp0eFJldmVydGVkGhAKAmsyEgptaW5CYWxhbmNlGhcKAmszEhFjdXJyZW50RWdnQmFsYW5jZRoPCgJrNBIJYWRkcmVzc2VzGh0KAms1Ehd0b3RhbFJld2FyZFRvRGlzdHJpYnV0ZRoSCgJrNhIMYWRkcmVzc1BhaXJzGhQKAms3Eg5wcm9jZXNzQWRkcmVzcxoRCgJrOBILYWRkcmVzc1BhaXIaEgoCazkSDGFkZHJlc3NQYXJ0cxoQCgJsMRIKYWRkcmVzc1N0choVCgJsMhIPdXNlclNoYXJlVG9rZW5zGhEKAmwzEgtrQWRkckVhcm5lZBoVCgJsNBIPYWRkclRvdGFsRWFybmVkGhMKAmw1Eg11c2VyUmV3YXJkTm93GgkKAmw2EgNyZXMaDAoCbDcSBnJlc3VsdBoVCgJsOBIPJGxpc3QxMDUwNzEwNTU0GhUKAmw5Eg8kc2l6ZTEwNTA3MTA1NTQaFQoCbTESDyRhY2MwMTA1MDcxMDU1NBoVCgJtMhIPJGFjYzExMDUwNzEwNTU0GhUKAm0zEg8kYWNjMjEwNTA3MTA1NTQaFQoCbTQSDyRhY2MzMTA1MDcxMDU1NBoVCgJtNRIPJGFjYzQxMDUwNzEwNTU0GhUKAm02Eg8kYWNjNTEwNTA3MTA1NTQaFQoCbTcSDyRhY2M2MTA1MDcxMDU1NBoVCgJtOBIPJGFjYzcxMDUwNzEwNTU0GhUKAm05Eg8kYWNjODEwNTA3MTA1NTQaFQoCbjESDyRhY2M5MTA1MDcxMDU1NBoWCgJuMhIQJGFjYzEwMTA1MDcxMDU1NBoWCgJuMxIQJGFjYzExMTA1MDcxMDU1NBoWCgJuNBIQJGFjYzEyMTA1MDcxMDU1NBoWCgJuNRIQJGFjYzEzMTA1MDcxMDU1NBoWCgJuNhIQJGFjYzE0MTA1MDcxMDU1NBoWCgJuNxIQJGFjYzE1MTA1MDcxMDU1NBoWCgJuOBIQJGFjYzE2MTA1MDcxMDU1NBoWCgJuORIQJGFjYzE3MTA1MDcxMDU1NBoWCgJvMRIQJGFjYzE4MTA1MDcxMDU1NBoWCgJvMhIQJGFjYzE5MTA1MDcxMDU1NBoWCgJvMxIQJGFjYzIwMTA1MDcxMDU1NBoWCgJvNBIQJGFjYzIxMTA1MDcxMDU1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BQAAAAJsOQAAAAAAAAAACQUAAAACbjEEAAAAAm4yCQEAAAACazcAAAACBQAAAAJuMQkAAZEAAAACBQAAAAJsOAAAAAAAAAAACQMJAAAAAAAAAgUAAAACbDkAAAAAAAAAAAoFAAAAAm4yBAAAAAJuMwkBAAAAAms3AAAAAgUAAAACbjIJAAGRAAAAAgUAAAACbDgAAAAAAAAAAAoDCQAAAAAAAAIFAAAAAmw5AAAAAAAAAAALBQAAAAJuMwQAAAACbjQJAQAAAAJrNwAAAAIFAAAAAm4zCQABkQAAAAIFAAAAAmw4AAAAAAAAAAALAwkAAAAAAAACBQAAAAJsOQAAAAAAAAAADAUAAAACbjQEAAAAAm41CQEAAAACazcAAAACBQAAAAJuNAkAAZEAAAACBQAAAAJsOAAAAAAAAAAADAMJAAAAAAAAAgUAAAACbDkAAAAAAAAAAA0FAAAAAm41BAAAAAJuNgkBAAAAAms3AAAAAgUAAAACbjUJAAGRAAAAAgUAAAACbDgAAAAAAAAAAA0DCQAAAAAAAAIFAAAAAmw5AAAAAAAAAAAOBQAAAAJuNgQAAAACbjcJAQAAAAJrNwAAAAIFAAAAAm42CQABkQAAAAIFAAAAAmw4AAAAAAAAAAAOAwkAAAAAAAACBQAAAAJsOQAAAAAAAAAADwUAAAACbjcEAAAAAm44CQEAAAACazcAAAACBQAAAAJuNwkAAZEAAAACBQAAAAJsOAAAAAAAAAAADwMJAAAAAAAAAgUAAAACbDkAAAAAAAAAABAFAAAAAm44BAAAAAJuOQkBAAAAAms3AAAAAgUAAAACbjgJAAGRAAAAAgUAAAACbDgAAAAAAAAAABADCQAAAAAAAAIFAAAAAmw5AAAAAAAAAAARBQAAAAJuOQQAAAACbzEJAQAAAAJrNwAAAAIFAAAAAm45CQABkQAAAAIFAAAAAmw4AAAAAAAAAAARAwkAAAAAAAACBQAAAAJsOQAAAAAAAAAAEgUAAAACbzEEAAAAAm8yCQEAAAACazcAAAACBQAAAAJvMQkAAZEAAAACBQAAAAJsOAAAAAAAAAAAEgMJAAAAAAAAAgUAAAACbDkAAAAAAAAAABMFAAAAAm8yBAAAAAJvMwkBAAAAAms3AAAAAgUAAAACbzIJAAGRAAAAAgUAAAACbDgAAAAAAAAAABMDCQAAAAAA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", "height": 2772100, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: FnHaCj9jG3ENTs82sUZqGwrGJugQm6C2nYz8dzFgtcxP Next: Erc2SFTfR4JMbucYWLw4RZ7K8kdMPfcWxkfyVwnRXg65 Diff:
OldNewDifferences
66 let mAccAddr = addressFromPublicKey(mAccPKey)
77
88 let feePercent = getIntegerValue(mAccAddr, (("f_" + toString(this)) + "_fee"))
9+
10+let oldEggAssetId = base58'JCGDtrVy64cCJ1wCKfCaiNQMnyYwii71TbE5QeAHfxgF'
11+
12+let swapEggDappAddress = addressFromStringValue("3PJQUUiJdvz9etUKED9ju7o7VrcNMtnkXBU")
913
1014 let kTotalLiquidity = "total_liquidity"
1115
1923
2024 let kShareAssetId = "SHARE_ASSET_ID"
2125
22-let kIncubatorDapp = "INCUBATOR_DAPP"
23-
24-let kBreederDapp = "BREEDER_DAPP"
25-
2626 let kFarmingDapp = "FARMING_DAPP"
2727
2828 let kMarketProxyDapp = "MARKETPLACE_PROXY_DAPP"
29-
30-let kAuctionDapp = "AUCTION_DAPP"
3129
3230 let kLocked = "LOCKED"
3331
7573 }
7674
7775
78-func getIntA (address,key) = match getInteger(address, key) {
79- case b: Int =>
80- b
81- case _ =>
82- 0
83-}
84-
85-
8676 func getMarketProxyAddr () = getStrA(mAccAddr, kMarketProxyDapp)
8777
8878
9787 then throw("_1")
9888 else if ((getBool(kInitialized) != unit))
9989 then throw("_2")
100- else if (if ((i.payments[0].amount != 10))
90+ else if (if ((i.payments[0].amount != (10 * 1000000)))
10191 then true
10292 else (i.payments[0].assetId != getEggId()))
10393 then throw("_20")
139129 then throw("_22")
140130 else if ((i.payments[0].assetId != eggAssetId))
141131 then throw("_4")
142- else {
143- let totalLiquidity = getInt(kTotalLiquidity)
144- let totalShareTokens = getInt(kTotalShareTokens)
145- let currentLiquidityAmount = i.payments[0].amount
146- let shareTokensToGive = (currentLiquidityAmount * 1000000)
147- let shareTokensId = fromBase58String(getStr(kShareAssetId))
148- let reissue = Reissue(getShareAssetId(), shareTokensToGive, true)
149- let farmParticipants = getInt(kFarmParticipants)
150- let kParticipated = (("account_" + toString(i.caller)) + "_participated")
151- let alreadyParticipated = getBool(kParticipated)
152- let newFarmParticipants = if ((alreadyParticipated == unit))
153- then (farmParticipants + 1)
154- else farmParticipants
155-[reissue, ScriptTransfer(i.caller, shareTokensToGive, shareTokensId), IntegerEntry(kTotalShareTokens, (totalShareTokens + shareTokensToGive)), IntegerEntry(kTotalLiquidity, (totalLiquidity + value(i.payments[0].amount))), IntegerEntry(kFarmParticipants, newFarmParticipants), BooleanEntry(kParticipated, true)]
156- }
132+ else if ((1000000 > i.payments[0].amount))
133+ then throw("Min amount to invest is 0.01 EGG")
134+ else {
135+ let totalLiquidity = getInt(kTotalLiquidity)
136+ let totalShareTokens = getInt(kTotalShareTokens)
137+ let currentLiquidityAmount = i.payments[0].amount
138+ let shareTokensToGive = currentLiquidityAmount
139+ let shareTokensId = fromBase58String(getStr(kShareAssetId))
140+ let reissue = Reissue(getShareAssetId(), shareTokensToGive, true)
141+ let farmParticipants = getInt(kFarmParticipants)
142+ let kParticipated = (("account_" + toString(i.caller)) + "_participated")
143+ let alreadyParticipated = getBool(kParticipated)
144+ let newFarmParticipants = if ((alreadyParticipated == unit))
145+ then (farmParticipants + 1)
146+ else farmParticipants
147+[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)]
148+ }
157149 }
158150
159151
177169
178170 let nftIds = split(ids, ";")
179171 let foldResult = {
180- let $list54885520 = nftIds
181- let $size54885520 = size($list54885520)
182- let $acc054885520 = 0
183- if (($size54885520 == 0))
184- then $acc054885520
172+ let $list57465778 = nftIds
173+ let $size57465778 = size($list57465778)
174+ let $acc057465778 = 0
175+ if (($size57465778 == 0))
176+ then $acc057465778
185177 else {
186- let $acc154885520 = claimReward($acc054885520, $list54885520[0])
187- if (($size54885520 == 1))
188- then $acc154885520
178+ let $acc157465778 = claimReward($acc057465778, $list57465778[0])
179+ if (($size57465778 == 1))
180+ then $acc157465778
189181 else {
190- let $acc254885520 = claimReward($acc154885520, $list54885520[1])
191- if (($size54885520 == 2))
192- then $acc254885520
182+ let $acc257465778 = claimReward($acc157465778, $list57465778[1])
183+ if (($size57465778 == 2))
184+ then $acc257465778
193185 else {
194- let $acc354885520 = claimReward($acc254885520, $list54885520[2])
195- if (($size54885520 == 3))
196- then $acc354885520
186+ let $acc357465778 = claimReward($acc257465778, $list57465778[2])
187+ if (($size57465778 == 3))
188+ then $acc357465778
197189 else {
198- let $acc454885520 = claimReward($acc354885520, $list54885520[3])
199- if (($size54885520 == 4))
200- then $acc454885520
190+ let $acc457465778 = claimReward($acc357465778, $list57465778[3])
191+ if (($size57465778 == 4))
192+ then $acc457465778
201193 else {
202- let $acc554885520 = claimReward($acc454885520, $list54885520[4])
203- if (($size54885520 == 5))
204- then $acc554885520
194+ let $acc557465778 = claimReward($acc457465778, $list57465778[4])
195+ if (($size57465778 == 5))
196+ then $acc557465778
205197 else {
206- let $acc654885520 = claimReward($acc554885520, $list54885520[5])
207- if (($size54885520 == 6))
208- then $acc654885520
198+ let $acc657465778 = claimReward($acc557465778, $list57465778[5])
199+ if (($size57465778 == 6))
200+ then $acc657465778
209201 else {
210- let $acc754885520 = claimReward($acc654885520, $list54885520[6])
211- if (($size54885520 == 7))
212- then $acc754885520
202+ let $acc757465778 = claimReward($acc657465778, $list57465778[6])
203+ if (($size57465778 == 7))
204+ then $acc757465778
213205 else {
214- let $acc854885520 = claimReward($acc754885520, $list54885520[7])
215- if (($size54885520 == 8))
216- then $acc854885520
206+ let $acc857465778 = claimReward($acc757465778, $list57465778[7])
207+ if (($size57465778 == 8))
208+ then $acc857465778
217209 else {
218- let $acc954885520 = claimReward($acc854885520, $list54885520[8])
219- if (($size54885520 == 9))
220- then $acc954885520
210+ let $acc957465778 = claimReward($acc857465778, $list57465778[8])
211+ if (($size57465778 == 9))
212+ then $acc957465778
221213 else {
222- let $acc1054885520 = claimReward($acc954885520, $list54885520[9])
223- if (($size54885520 == 10))
224- then $acc1054885520
214+ let $acc1057465778 = claimReward($acc957465778, $list57465778[9])
215+ if (($size57465778 == 10))
216+ then $acc1057465778
225217 else {
226- let $acc1154885520 = claimReward($acc1054885520, $list54885520[10])
218+ let $acc1157465778 = claimReward($acc1057465778, $list57465778[10])
227219 throw("List size exceed 10")
228220 }
229221 }
239231 }
240232 let claimedReward = match foldResult {
241233 case int: Int =>
242- (int * 1000000)
234+ int
243235 case _ =>
244236 throw("_6")
245237 }
259251 else if ((i.caller == this))
260252 then {
261253 let currentCeoCollectedFee = getInt(kCeoCollectedFee)
262-[ScriptTransfer(addressFromStringValue(address), (currentCeoCollectedFee / 1000000), getEggId()), IntegerEntry(kCeoCollectedFee, 0)]
254+[ScriptTransfer(addressFromStringValue(address), currentCeoCollectedFee, getEggId()), IntegerEntry(kCeoCollectedFee, 0)]
263255 }
264256 else throw("_8")
265257
292284 let unstakedRewardNow = getInt(kUnstakedReward)
293285 let newUnstakedReward = match ustakedReward {
294286 case int: Int =>
295- (unstakedRewardNow + (int * 1000000))
287+ (unstakedRewardNow + int)
296288 case _ =>
297289 throw("Error during unstaking")
298290 }
323315 then throw("Tx already reverted")
324316 else if ((tx.recipient != this))
325317 then throw("Tx recipient is another account")
326- else if ((tx.assetId != getEggId()))
327- then throw("Transaction is not with EGG tokens")
318+ else if (if ((tx.assetId != getEggId()))
319+ then (tx.assetId != getShareAssetId())
320+ else false)
321+ then throw("Transaction is not with EGG or share tokens")
328322 else if ((minBalance > (currentEggBalance - tx.amount)))
329323 then throw("Revert makes balance too low")
330324 else [ScriptTransfer(tx.sender, tx.amount, tx.assetId), BooleanEntry(kReverted, true)]
333327
334328
335329 @Callable(i)
336-func distributeRewards (addresses) = if ((i.caller != mAccAddr))
330+func distributeRewards (addresses,totalShareTokens,totalRewardToDistribute) = if ((i.caller != mAccAddr))
337331 then throw("Method can be called only by master account")
338332 else {
339333 let addressPairs = split(addresses, ";")
341335 let addressParts = split(addressPair, "=")
342336 let addressStr = addressParts[0]
343337 let address = addressFromStringValue(addressStr)
344- let eggletsAmount = parseIntValue(addressParts[1])
345- let change = parseIntValue(addressParts[2])
338+ let userShareTokens = parseIntValue(addressParts[1])
346339 let kAddrEarned = (("address_" + addressStr) + "_total_earned")
347340 let addrTotalEarned = getInt(kAddrEarned)
348- let totalRewardNow = ((eggletsAmount * 1000000) + change)
349- let kAddrChange = (("address_" + addressStr) + "_change")
350- let earnedLastDay = (totalRewardNow - getInt(kAddrChange))
351- let res = [IntegerEntry(kAddrChange, change), IntegerEntry(kAddrEarned, (addrTotalEarned + earnedLastDay)), IntegerEntry(((("address_" + addressStr) + "_reward_") + toString(lastBlock.timestamp)), earnedLastDay)]
352- if ((eggletsAmount > 0))
353- then $Tuple2((accum._1 + eggletsAmount), ((accum._2 ++ res) ++ [ScriptTransfer(address, eggletsAmount, getEggId())]))
354- else $Tuple2(accum._1, (accum._2 ++ res))
341+ let userRewardNow = fraction(totalRewardToDistribute, userShareTokens, totalShareTokens)
342+ let res = [IntegerEntry(kAddrEarned, (addrTotalEarned + userRewardNow)), IntegerEntry(((("address_" + addressStr) + "_reward_") + toString(lastBlock.timestamp)), userRewardNow), ScriptTransfer(address, userRewardNow, getEggId())]
343+ $Tuple2((accum._1 + userRewardNow), (accum._2 ++ res))
355344 }
356345
357346 let result = {
358- let $list1041710464 = addressPairs
359- let $size1041710464 = size($list1041710464)
360- let $acc01041710464 = $Tuple2(0, nil)
361- if (($size1041710464 == 0))
362- then $acc01041710464
347+ let $list1050710554 = addressPairs
348+ let $size1050710554 = size($list1050710554)
349+ let $acc01050710554 = $Tuple2(0, nil)
350+ if (($size1050710554 == 0))
351+ then $acc01050710554
363352 else {
364- let $acc11041710464 = processAddress($acc01041710464, $list1041710464[0])
365- if (($size1041710464 == 1))
366- then $acc11041710464
353+ let $acc11050710554 = processAddress($acc01050710554, $list1050710554[0])
354+ if (($size1050710554 == 1))
355+ then $acc11050710554
367356 else {
368- let $acc21041710464 = processAddress($acc11041710464, $list1041710464[1])
369- if (($size1041710464 == 2))
370- then $acc21041710464
357+ let $acc21050710554 = processAddress($acc11050710554, $list1050710554[1])
358+ if (($size1050710554 == 2))
359+ then $acc21050710554
371360 else {
372- let $acc31041710464 = processAddress($acc21041710464, $list1041710464[2])
373- if (($size1041710464 == 3))
374- then $acc31041710464
361+ let $acc31050710554 = processAddress($acc21050710554, $list1050710554[2])
362+ if (($size1050710554 == 3))
363+ then $acc31050710554
375364 else {
376- let $acc41041710464 = processAddress($acc31041710464, $list1041710464[3])
377- if (($size1041710464 == 4))
378- then $acc41041710464
365+ let $acc41050710554 = processAddress($acc31050710554, $list1050710554[3])
366+ if (($size1050710554 == 4))
367+ then $acc41050710554
379368 else {
380- let $acc51041710464 = processAddress($acc41041710464, $list1041710464[4])
381- if (($size1041710464 == 5))
382- then $acc51041710464
369+ let $acc51050710554 = processAddress($acc41050710554, $list1050710554[4])
370+ if (($size1050710554 == 5))
371+ then $acc51050710554
383372 else {
384- let $acc61041710464 = processAddress($acc51041710464, $list1041710464[5])
385- if (($size1041710464 == 6))
386- then $acc61041710464
373+ let $acc61050710554 = processAddress($acc51050710554, $list1050710554[5])
374+ if (($size1050710554 == 6))
375+ then $acc61050710554
387376 else {
388- let $acc71041710464 = processAddress($acc61041710464, $list1041710464[6])
389- if (($size1041710464 == 7))
390- then $acc71041710464
377+ let $acc71050710554 = processAddress($acc61050710554, $list1050710554[6])
378+ if (($size1050710554 == 7))
379+ then $acc71050710554
391380 else {
392- let $acc81041710464 = processAddress($acc71041710464, $list1041710464[7])
393- if (($size1041710464 == 8))
394- then $acc81041710464
381+ let $acc81050710554 = processAddress($acc71050710554, $list1050710554[7])
382+ if (($size1050710554 == 8))
383+ then $acc81050710554
395384 else {
396- let $acc91041710464 = processAddress($acc81041710464, $list1041710464[8])
397- if (($size1041710464 == 9))
398- then $acc91041710464
385+ let $acc91050710554 = processAddress($acc81050710554, $list1050710554[8])
386+ if (($size1050710554 == 9))
387+ then $acc91050710554
399388 else {
400- let $acc101041710464 = processAddress($acc91041710464, $list1041710464[9])
401- if (($size1041710464 == 10))
402- then $acc101041710464
389+ let $acc101050710554 = processAddress($acc91050710554, $list1050710554[9])
390+ if (($size1050710554 == 10))
391+ then $acc101050710554
403392 else {
404- let $acc111041710464 = processAddress($acc101041710464, $list1041710464[10])
405- if (($size1041710464 == 11))
406- then $acc111041710464
393+ let $acc111050710554 = processAddress($acc101050710554, $list1050710554[10])
394+ if (($size1050710554 == 11))
395+ then $acc111050710554
407396 else {
408- let $acc121041710464 = processAddress($acc111041710464, $list1041710464[11])
409- if (($size1041710464 == 12))
410- then $acc121041710464
397+ let $acc121050710554 = processAddress($acc111050710554, $list1050710554[11])
398+ if (($size1050710554 == 12))
399+ then $acc121050710554
411400 else {
412- let $acc131041710464 = processAddress($acc121041710464, $list1041710464[12])
413- if (($size1041710464 == 13))
414- then $acc131041710464
401+ let $acc131050710554 = processAddress($acc121050710554, $list1050710554[12])
402+ if (($size1050710554 == 13))
403+ then $acc131050710554
415404 else {
416- let $acc141041710464 = processAddress($acc131041710464, $list1041710464[13])
417- if (($size1041710464 == 14))
418- then $acc141041710464
405+ let $acc141050710554 = processAddress($acc131050710554, $list1050710554[13])
406+ if (($size1050710554 == 14))
407+ then $acc141050710554
419408 else {
420- let $acc151041710464 = processAddress($acc141041710464, $list1041710464[14])
421- if (($size1041710464 == 15))
422- then $acc151041710464
409+ let $acc151050710554 = processAddress($acc141050710554, $list1050710554[14])
410+ if (($size1050710554 == 15))
411+ then $acc151050710554
423412 else {
424- let $acc161041710464 = processAddress($acc151041710464, $list1041710464[15])
425- if (($size1041710464 == 16))
426- then $acc161041710464
413+ let $acc161050710554 = processAddress($acc151050710554, $list1050710554[15])
414+ if (($size1050710554 == 16))
415+ then $acc161050710554
427416 else {
428- let $acc171041710464 = processAddress($acc161041710464, $list1041710464[16])
429- if (($size1041710464 == 17))
430- then $acc171041710464
417+ let $acc171050710554 = processAddress($acc161050710554, $list1050710554[16])
418+ if (($size1050710554 == 17))
419+ then $acc171050710554
431420 else {
432- let $acc181041710464 = processAddress($acc171041710464, $list1041710464[17])
433- if (($size1041710464 == 18))
434- then $acc181041710464
421+ let $acc181050710554 = processAddress($acc171050710554, $list1050710554[17])
422+ if (($size1050710554 == 18))
423+ then $acc181050710554
435424 else {
436- let $acc191041710464 = processAddress($acc181041710464, $list1041710464[18])
437- if (($size1041710464 == 19))
438- then $acc191041710464
425+ let $acc191050710554 = processAddress($acc181050710554, $list1050710554[18])
426+ if (($size1050710554 == 19))
427+ then $acc191050710554
439428 else {
440- let $acc201041710464 = processAddress($acc191041710464, $list1041710464[19])
441- if (($size1041710464 == 20))
442- then $acc201041710464
429+ let $acc201050710554 = processAddress($acc191050710554, $list1050710554[19])
430+ if (($size1050710554 == 20))
431+ then $acc201050710554
443432 else {
444- let $acc211041710464 = processAddress($acc201041710464, $list1041710464[20])
433+ let $acc211050710554 = processAddress($acc201050710554, $list1050710554[20])
445434 throw("List size exceed 20")
446435 }
447436 }
466455 }
467456 }
468457 let toDistr = getInt(kToDistr)
469- (result._2 ++ [IntegerEntry(kToDistr, (toDistr - (result._1 * 1000000))), IntegerEntry(kUnstakedReward, 0)])
458+ (result._2 ++ [IntegerEntry(kToDistr, (toDistr - result._1)), IntegerEntry(kUnstakedReward, 0)])
459+ }
460+
461+
462+
463+@Callable(i)
464+func swapEgg () = if ((i.caller != mAccAddr))
465+ then throw("Method can be called by master account only")
466+ else {
467+ let oldEggBalance = assetBalance(this, oldEggAssetId)
468+ let swapTx = invoke(swapEggDappAddress, "swapEgg", nil, [AttachedPayment(oldEggAssetId, oldEggBalance)])
469+ if ((swapTx == swapTx))
470+ then [BooleanEntry("swapped_egg", true), IntegerEntry("swapped_egg_amount", oldEggBalance)]
471+ else throw("Strict value is not equal to itself.")
470472 }
471473
472474
501503 else if ((size(inv.payments) > 2))
502504 then throw("_17")
503505 else if ((minBalance > ((assetBalance(this, getEggId()) - {
504- let $list1180711849 = inv.payments
505- let $size1180711849 = size($list1180711849)
506- let $acc01180711849 = 0
507- if (($size1180711849 == 0))
508- then $acc01180711849
506+ let $list1229312335 = inv.payments
507+ let $size1229312335 = size($list1229312335)
508+ let $acc01229312335 = 0
509+ if (($size1229312335 == 0))
510+ then $acc01229312335
509511 else {
510- let $acc11180711849 = totalEggSpending($acc01180711849, $list1180711849[0])
511- if (($size1180711849 == 1))
512- then $acc11180711849
512+ let $acc11229312335 = totalEggSpending($acc01229312335, $list1229312335[0])
513+ if (($size1229312335 == 1))
514+ then $acc11229312335
513515 else {
514- let $acc21180711849 = totalEggSpending($acc11180711849, $list1180711849[1])
515- if (($size1180711849 == 2))
516- then $acc21180711849
516+ let $acc21229312335 = totalEggSpending($acc11229312335, $list1229312335[1])
517+ if (($size1229312335 == 2))
518+ then $acc21229312335
517519 else {
518- let $acc31180711849 = totalEggSpending($acc21180711849, $list1180711849[2])
519- if (($size1180711849 == 3))
520- then $acc31180711849
520+ let $acc31229312335 = totalEggSpending($acc21229312335, $list1229312335[2])
521+ if (($size1229312335 == 3))
522+ then $acc31229312335
521523 else {
522- let $acc41180711849 = totalEggSpending($acc31180711849, $list1180711849[3])
524+ let $acc41229312335 = totalEggSpending($acc31229312335, $list1229312335[3])
523525 throw("List size exceed 3")
524526 }
525527 }
555557 let dappToCall = toString(addressFromRecipient(inv.dApp))
556558 (indexOf(allowedContractsList, dappToCall) != unit)
557559 }
560+ case mt: MassTransferTransaction =>
561+ sigVerify(tx.bodyBytes, tx.proofs[0], mAccPKey)
562+ case dt: DataTransaction =>
563+ sigVerify(tx.bodyBytes, tx.proofs[0], mAccPKey)
558564 case ss: SetScriptTransaction =>
559565 sigVerify(tx.bodyBytes, tx.proofs[0], mAccPKey)
560566 case _ =>
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let mAccPKey = base58'23NWm7kUDQqbTVkirjd5JXWRZaWVoS4ZesmRNHicBa3T'
55
66 let mAccAddr = addressFromPublicKey(mAccPKey)
77
88 let feePercent = getIntegerValue(mAccAddr, (("f_" + toString(this)) + "_fee"))
9+
10+let oldEggAssetId = base58'JCGDtrVy64cCJ1wCKfCaiNQMnyYwii71TbE5QeAHfxgF'
11+
12+let swapEggDappAddress = addressFromStringValue("3PJQUUiJdvz9etUKED9ju7o7VrcNMtnkXBU")
913
1014 let kTotalLiquidity = "total_liquidity"
1115
1216 let kInitialized = "INITIALIZED"
1317
1418 let kLiquidityThreshold = "LIQUIDITY_THRESHOLD"
1519
1620 let kFarmParticipants = "farm_participants"
1721
1822 let kTotalShareTokens = "total_share_tokens"
1923
2024 let kShareAssetId = "SHARE_ASSET_ID"
2125
22-let kIncubatorDapp = "INCUBATOR_DAPP"
23-
24-let kBreederDapp = "BREEDER_DAPP"
25-
2626 let kFarmingDapp = "FARMING_DAPP"
2727
2828 let kMarketProxyDapp = "MARKETPLACE_PROXY_DAPP"
29-
30-let kAuctionDapp = "AUCTION_DAPP"
3129
3230 let kLocked = "LOCKED"
3331
3432 let kTotalFarmingReward = "total_farming_reward"
3533
3634 let kCeoCollectedFee = "ceo_collected_fee"
3735
3836 let kCeoCollectedFeeOverall = "ceo_fee_overall"
3937
4038 let kToDistr = "to_distribute"
4139
4240 let kUnstakedReward = "unstaked_reward"
4341
4442 let kLockedInvestments = "locked_investments"
4543
4644 func getInt (key) = match getInteger(this, key) {
4745 case b: Int =>
4846 b
4947 case _ =>
5048 0
5149 }
5250
5351
5452 func getStr (key) = match getString(this, key) {
5553 case b: String =>
5654 b
5755 case _ =>
5856 ""
5957 }
6058
6159
6260 func getBool (key) = match getBoolean(this, key) {
6361 case b: Boolean =>
6462 b
6563 case _ =>
6664 unit
6765 }
6866
6967
7068 func getStrA (a,k) = match getString(a, k) {
7169 case b: String =>
7270 b
7371 case _ =>
7472 ""
7573 }
7674
7775
78-func getIntA (address,key) = match getInteger(address, key) {
79- case b: Int =>
80- b
81- case _ =>
82- 0
83-}
84-
85-
8676 func getMarketProxyAddr () = getStrA(mAccAddr, kMarketProxyDapp)
8777
8878
8979 func getEggId () = fromBase58String(getStringValue(mAccAddr, "EGG_ASSET_ID"))
9080
9181
9282 func getShareAssetId () = fromBase58String(getStr(kShareAssetId))
9383
9484
9585 @Callable(i)
9686 func initCollectiveFarm (name,minimumThreshold) = if ((i.callerPublicKey != mAccPKey))
9787 then throw("_1")
9888 else if ((getBool(kInitialized) != unit))
9989 then throw("_2")
100- else if (if ((i.payments[0].amount != 10))
90+ else if (if ((i.payments[0].amount != (10 * 1000000)))
10191 then true
10292 else (i.payments[0].assetId != getEggId()))
10393 then throw("_20")
10494 else {
10595 let shareTokens = 10000000
10696 let shareToken = Issue(name, (("Share token for the \"" + name) + "\" collective farm"), shareTokens, 8, true)
10797 [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)]
10898 }
10999
110100
111101
112102 @Callable(i)
113103 func setLock (s) = if ((i.callerPublicKey != mAccPKey))
114104 then throw("_21")
115105 else [BooleanEntry(kLocked, s)]
116106
117107
118108
119109 @Callable(i)
120110 func lockInvestments () = if ((i.caller != this))
121111 then throw("You cannot lock this contract")
122112 else [BooleanEntry(kLockedInvestments, true)]
123113
124114
125115
126116 @Callable(i)
127117 func unlockInvestments () = if ((i.caller != this))
128118 then throw("You cannot lock this contract")
129119 else [BooleanEntry(kLockedInvestments, false)]
130120
131121
132122
133123 @Callable(i)
134124 func provideLiquidity () = {
135125 let eggAssetId = getEggId()
136126 if ((getBool(kLockedInvestments) == true))
137127 then throw("Contract is locked for investments by it's CEO. Please invest in another collective farm.")
138128 else if ((getBool(kLocked) == true))
139129 then throw("_22")
140130 else if ((i.payments[0].assetId != eggAssetId))
141131 then throw("_4")
142- else {
143- let totalLiquidity = getInt(kTotalLiquidity)
144- let totalShareTokens = getInt(kTotalShareTokens)
145- let currentLiquidityAmount = i.payments[0].amount
146- let shareTokensToGive = (currentLiquidityAmount * 1000000)
147- let shareTokensId = fromBase58String(getStr(kShareAssetId))
148- let reissue = Reissue(getShareAssetId(), shareTokensToGive, true)
149- let farmParticipants = getInt(kFarmParticipants)
150- let kParticipated = (("account_" + toString(i.caller)) + "_participated")
151- let alreadyParticipated = getBool(kParticipated)
152- let newFarmParticipants = if ((alreadyParticipated == unit))
153- then (farmParticipants + 1)
154- else farmParticipants
155-[reissue, ScriptTransfer(i.caller, shareTokensToGive, shareTokensId), IntegerEntry(kTotalShareTokens, (totalShareTokens + shareTokensToGive)), IntegerEntry(kTotalLiquidity, (totalLiquidity + value(i.payments[0].amount))), IntegerEntry(kFarmParticipants, newFarmParticipants), BooleanEntry(kParticipated, true)]
156- }
132+ else if ((1000000 > i.payments[0].amount))
133+ then throw("Min amount to invest is 0.01 EGG")
134+ else {
135+ let totalLiquidity = getInt(kTotalLiquidity)
136+ let totalShareTokens = getInt(kTotalShareTokens)
137+ let currentLiquidityAmount = i.payments[0].amount
138+ let shareTokensToGive = currentLiquidityAmount
139+ let shareTokensId = fromBase58String(getStr(kShareAssetId))
140+ let reissue = Reissue(getShareAssetId(), shareTokensToGive, true)
141+ let farmParticipants = getInt(kFarmParticipants)
142+ let kParticipated = (("account_" + toString(i.caller)) + "_participated")
143+ let alreadyParticipated = getBool(kParticipated)
144+ let newFarmParticipants = if ((alreadyParticipated == unit))
145+ then (farmParticipants + 1)
146+ else farmParticipants
147+[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)]
148+ }
157149 }
158150
159151
160152
161153 @Callable(i)
162154 func claimFarmingRewardProxy (ids) = if ((i.callerPublicKey != mAccPKey))
163155 then throw("_23")
164156 else {
165157 let farmingDapp = addressFromStringValue(getStrA(mAccAddr, kFarmingDapp))
166158 func claimReward (accum,nftId) = {
167159 let invRes = invoke(farmingDapp, "claimReward", [nftId], nil)
168160 if ((invRes == invRes))
169161 then match invRes {
170162 case int: Int =>
171163 (accum + int)
172164 case _ =>
173165 throw("_5")
174166 }
175167 else throw("Strict value is not equal to itself.")
176168 }
177169
178170 let nftIds = split(ids, ";")
179171 let foldResult = {
180- let $list54885520 = nftIds
181- let $size54885520 = size($list54885520)
182- let $acc054885520 = 0
183- if (($size54885520 == 0))
184- then $acc054885520
172+ let $list57465778 = nftIds
173+ let $size57465778 = size($list57465778)
174+ let $acc057465778 = 0
175+ if (($size57465778 == 0))
176+ then $acc057465778
185177 else {
186- let $acc154885520 = claimReward($acc054885520, $list54885520[0])
187- if (($size54885520 == 1))
188- then $acc154885520
178+ let $acc157465778 = claimReward($acc057465778, $list57465778[0])
179+ if (($size57465778 == 1))
180+ then $acc157465778
189181 else {
190- let $acc254885520 = claimReward($acc154885520, $list54885520[1])
191- if (($size54885520 == 2))
192- then $acc254885520
182+ let $acc257465778 = claimReward($acc157465778, $list57465778[1])
183+ if (($size57465778 == 2))
184+ then $acc257465778
193185 else {
194- let $acc354885520 = claimReward($acc254885520, $list54885520[2])
195- if (($size54885520 == 3))
196- then $acc354885520
186+ let $acc357465778 = claimReward($acc257465778, $list57465778[2])
187+ if (($size57465778 == 3))
188+ then $acc357465778
197189 else {
198- let $acc454885520 = claimReward($acc354885520, $list54885520[3])
199- if (($size54885520 == 4))
200- then $acc454885520
190+ let $acc457465778 = claimReward($acc357465778, $list57465778[3])
191+ if (($size57465778 == 4))
192+ then $acc457465778
201193 else {
202- let $acc554885520 = claimReward($acc454885520, $list54885520[4])
203- if (($size54885520 == 5))
204- then $acc554885520
194+ let $acc557465778 = claimReward($acc457465778, $list57465778[4])
195+ if (($size57465778 == 5))
196+ then $acc557465778
205197 else {
206- let $acc654885520 = claimReward($acc554885520, $list54885520[5])
207- if (($size54885520 == 6))
208- then $acc654885520
198+ let $acc657465778 = claimReward($acc557465778, $list57465778[5])
199+ if (($size57465778 == 6))
200+ then $acc657465778
209201 else {
210- let $acc754885520 = claimReward($acc654885520, $list54885520[6])
211- if (($size54885520 == 7))
212- then $acc754885520
202+ let $acc757465778 = claimReward($acc657465778, $list57465778[6])
203+ if (($size57465778 == 7))
204+ then $acc757465778
213205 else {
214- let $acc854885520 = claimReward($acc754885520, $list54885520[7])
215- if (($size54885520 == 8))
216- then $acc854885520
206+ let $acc857465778 = claimReward($acc757465778, $list57465778[7])
207+ if (($size57465778 == 8))
208+ then $acc857465778
217209 else {
218- let $acc954885520 = claimReward($acc854885520, $list54885520[8])
219- if (($size54885520 == 9))
220- then $acc954885520
210+ let $acc957465778 = claimReward($acc857465778, $list57465778[8])
211+ if (($size57465778 == 9))
212+ then $acc957465778
221213 else {
222- let $acc1054885520 = claimReward($acc954885520, $list54885520[9])
223- if (($size54885520 == 10))
224- then $acc1054885520
214+ let $acc1057465778 = claimReward($acc957465778, $list57465778[9])
215+ if (($size57465778 == 10))
216+ then $acc1057465778
225217 else {
226- let $acc1154885520 = claimReward($acc1054885520, $list54885520[10])
218+ let $acc1157465778 = claimReward($acc1057465778, $list57465778[10])
227219 throw("List size exceed 10")
228220 }
229221 }
230222 }
231223 }
232224 }
233225 }
234226 }
235227 }
236228 }
237229 }
238230 }
239231 }
240232 let claimedReward = match foldResult {
241233 case int: Int =>
242- (int * 1000000)
234+ int
243235 case _ =>
244236 throw("_6")
245237 }
246238 let farmCeoFeeSize = fraction(claimedReward, feePercent, 100)
247239 let toDistr = getInt(kToDistr)
248240 let totalFarmingReward = getInt(kTotalFarmingReward)
249241 let currentCeoFee = getInt(kCeoCollectedFee)
250242 let ceoFeeOverall = getInt(kCeoCollectedFeeOverall)
251243 [IntegerEntry(kTotalFarmingReward, ((totalFarmingReward + claimedReward) - farmCeoFeeSize)), IntegerEntry(kToDistr, ((toDistr + claimedReward) - farmCeoFeeSize)), IntegerEntry(kCeoCollectedFee, (currentCeoFee + farmCeoFeeSize)), IntegerEntry(kCeoCollectedFeeOverall, (ceoFeeOverall + farmCeoFeeSize))]
252244 }
253245
254246
255247
256248 @Callable(i)
257249 func claimCeoFee (address) = if ((getBool(kLocked) == true))
258250 then throw("_22")
259251 else if ((i.caller == this))
260252 then {
261253 let currentCeoCollectedFee = getInt(kCeoCollectedFee)
262-[ScriptTransfer(addressFromStringValue(address), (currentCeoCollectedFee / 1000000), getEggId()), IntegerEntry(kCeoCollectedFee, 0)]
254+[ScriptTransfer(addressFromStringValue(address), currentCeoCollectedFee, getEggId()), IntegerEntry(kCeoCollectedFee, 0)]
263255 }
264256 else throw("_8")
265257
266258
267259
268260 @Callable(i)
269261 func startLiquidation (auctionId) = throw("_7")
270262
271263
272264
273265 @Callable(i)
274266 func voteForLiquidation (auctionId) = throw("_7")
275267
276268
277269
278270 @Callable(i)
279271 func callUnstakeProxy (function,assetId) = if ((getBool(kLocked) == true))
280272 then throw("Contract is locked now")
281273 else if (if ((function != "unstakeNFT"))
282274 then (function != "unstakeJackpot")
283275 else false)
284276 then throw("Bad function name")
285277 else if ((i.caller != this))
286278 then throw("Can be called only by the account")
287279 else {
288280 let farmingDappAddress = addressFromStringValue(getStrA(mAccAddr, "FARMING_DAPP"))
289281 let ustakedReward = invoke(farmingDappAddress, function, [assetId], nil)
290282 if ((ustakedReward == ustakedReward))
291283 then {
292284 let unstakedRewardNow = getInt(kUnstakedReward)
293285 let newUnstakedReward = match ustakedReward {
294286 case int: Int =>
295- (unstakedRewardNow + (int * 1000000))
287+ (unstakedRewardNow + int)
296288 case _ =>
297289 throw("Error during unstaking")
298290 }
299291 let currentCeoFee = getInt(kCeoCollectedFee)
300292 let ceoFeeOverall = getInt(kCeoCollectedFeeOverall)
301293 let farmCeoFeeSize = fraction(unstakedRewardNow, feePercent, 100)
302294 [IntegerEntry(kCeoCollectedFee, (currentCeoFee + farmCeoFeeSize)), IntegerEntry(kCeoCollectedFeeOverall, (ceoFeeOverall + farmCeoFeeSize)), IntegerEntry(kUnstakedReward, newUnstakedReward)]
303295 }
304296 else throw("Strict value is not equal to itself.")
305297 }
306298
307299
308300
309301 @Callable(i)
310302 func revertTransfer (txId) = if ((getBool(kLocked) == true))
311303 then throw("Contract is locked now")
312304 else if ((i.caller != this))
313305 then throw("Can be called only by the account")
314306 else {
315307 let tx = value(transferTransactionById(fromBase58String(txId)))
316308 let kReverted = ("tx_revert_" + txId)
317309 let txReverted = getBool(kReverted)
318310 let unstakedRewardNow = getInt(kUnstakedReward)
319311 let toDistr = getInt(kToDistr)
320312 let minBalance = (unstakedRewardNow + toDistr)
321313 let currentEggBalance = assetBalance(this, getEggId())
322314 if ((txReverted == true))
323315 then throw("Tx already reverted")
324316 else if ((tx.recipient != this))
325317 then throw("Tx recipient is another account")
326- else if ((tx.assetId != getEggId()))
327- then throw("Transaction is not with EGG tokens")
318+ else if (if ((tx.assetId != getEggId()))
319+ then (tx.assetId != getShareAssetId())
320+ else false)
321+ then throw("Transaction is not with EGG or share tokens")
328322 else if ((minBalance > (currentEggBalance - tx.amount)))
329323 then throw("Revert makes balance too low")
330324 else [ScriptTransfer(tx.sender, tx.amount, tx.assetId), BooleanEntry(kReverted, true)]
331325 }
332326
333327
334328
335329 @Callable(i)
336-func distributeRewards (addresses) = if ((i.caller != mAccAddr))
330+func distributeRewards (addresses,totalShareTokens,totalRewardToDistribute) = if ((i.caller != mAccAddr))
337331 then throw("Method can be called only by master account")
338332 else {
339333 let addressPairs = split(addresses, ";")
340334 func processAddress (accum,addressPair) = {
341335 let addressParts = split(addressPair, "=")
342336 let addressStr = addressParts[0]
343337 let address = addressFromStringValue(addressStr)
344- let eggletsAmount = parseIntValue(addressParts[1])
345- let change = parseIntValue(addressParts[2])
338+ let userShareTokens = parseIntValue(addressParts[1])
346339 let kAddrEarned = (("address_" + addressStr) + "_total_earned")
347340 let addrTotalEarned = getInt(kAddrEarned)
348- let totalRewardNow = ((eggletsAmount * 1000000) + change)
349- let kAddrChange = (("address_" + addressStr) + "_change")
350- let earnedLastDay = (totalRewardNow - getInt(kAddrChange))
351- let res = [IntegerEntry(kAddrChange, change), IntegerEntry(kAddrEarned, (addrTotalEarned + earnedLastDay)), IntegerEntry(((("address_" + addressStr) + "_reward_") + toString(lastBlock.timestamp)), earnedLastDay)]
352- if ((eggletsAmount > 0))
353- then $Tuple2((accum._1 + eggletsAmount), ((accum._2 ++ res) ++ [ScriptTransfer(address, eggletsAmount, getEggId())]))
354- else $Tuple2(accum._1, (accum._2 ++ res))
341+ let userRewardNow = fraction(totalRewardToDistribute, userShareTokens, totalShareTokens)
342+ let res = [IntegerEntry(kAddrEarned, (addrTotalEarned + userRewardNow)), IntegerEntry(((("address_" + addressStr) + "_reward_") + toString(lastBlock.timestamp)), userRewardNow), ScriptTransfer(address, userRewardNow, getEggId())]
343+ $Tuple2((accum._1 + userRewardNow), (accum._2 ++ res))
355344 }
356345
357346 let result = {
358- let $list1041710464 = addressPairs
359- let $size1041710464 = size($list1041710464)
360- let $acc01041710464 = $Tuple2(0, nil)
361- if (($size1041710464 == 0))
362- then $acc01041710464
347+ let $list1050710554 = addressPairs
348+ let $size1050710554 = size($list1050710554)
349+ let $acc01050710554 = $Tuple2(0, nil)
350+ if (($size1050710554 == 0))
351+ then $acc01050710554
363352 else {
364- let $acc11041710464 = processAddress($acc01041710464, $list1041710464[0])
365- if (($size1041710464 == 1))
366- then $acc11041710464
353+ let $acc11050710554 = processAddress($acc01050710554, $list1050710554[0])
354+ if (($size1050710554 == 1))
355+ then $acc11050710554
367356 else {
368- let $acc21041710464 = processAddress($acc11041710464, $list1041710464[1])
369- if (($size1041710464 == 2))
370- then $acc21041710464
357+ let $acc21050710554 = processAddress($acc11050710554, $list1050710554[1])
358+ if (($size1050710554 == 2))
359+ then $acc21050710554
371360 else {
372- let $acc31041710464 = processAddress($acc21041710464, $list1041710464[2])
373- if (($size1041710464 == 3))
374- then $acc31041710464
361+ let $acc31050710554 = processAddress($acc21050710554, $list1050710554[2])
362+ if (($size1050710554 == 3))
363+ then $acc31050710554
375364 else {
376- let $acc41041710464 = processAddress($acc31041710464, $list1041710464[3])
377- if (($size1041710464 == 4))
378- then $acc41041710464
365+ let $acc41050710554 = processAddress($acc31050710554, $list1050710554[3])
366+ if (($size1050710554 == 4))
367+ then $acc41050710554
379368 else {
380- let $acc51041710464 = processAddress($acc41041710464, $list1041710464[4])
381- if (($size1041710464 == 5))
382- then $acc51041710464
369+ let $acc51050710554 = processAddress($acc41050710554, $list1050710554[4])
370+ if (($size1050710554 == 5))
371+ then $acc51050710554
383372 else {
384- let $acc61041710464 = processAddress($acc51041710464, $list1041710464[5])
385- if (($size1041710464 == 6))
386- then $acc61041710464
373+ let $acc61050710554 = processAddress($acc51050710554, $list1050710554[5])
374+ if (($size1050710554 == 6))
375+ then $acc61050710554
387376 else {
388- let $acc71041710464 = processAddress($acc61041710464, $list1041710464[6])
389- if (($size1041710464 == 7))
390- then $acc71041710464
377+ let $acc71050710554 = processAddress($acc61050710554, $list1050710554[6])
378+ if (($size1050710554 == 7))
379+ then $acc71050710554
391380 else {
392- let $acc81041710464 = processAddress($acc71041710464, $list1041710464[7])
393- if (($size1041710464 == 8))
394- then $acc81041710464
381+ let $acc81050710554 = processAddress($acc71050710554, $list1050710554[7])
382+ if (($size1050710554 == 8))
383+ then $acc81050710554
395384 else {
396- let $acc91041710464 = processAddress($acc81041710464, $list1041710464[8])
397- if (($size1041710464 == 9))
398- then $acc91041710464
385+ let $acc91050710554 = processAddress($acc81050710554, $list1050710554[8])
386+ if (($size1050710554 == 9))
387+ then $acc91050710554
399388 else {
400- let $acc101041710464 = processAddress($acc91041710464, $list1041710464[9])
401- if (($size1041710464 == 10))
402- then $acc101041710464
389+ let $acc101050710554 = processAddress($acc91050710554, $list1050710554[9])
390+ if (($size1050710554 == 10))
391+ then $acc101050710554
403392 else {
404- let $acc111041710464 = processAddress($acc101041710464, $list1041710464[10])
405- if (($size1041710464 == 11))
406- then $acc111041710464
393+ let $acc111050710554 = processAddress($acc101050710554, $list1050710554[10])
394+ if (($size1050710554 == 11))
395+ then $acc111050710554
407396 else {
408- let $acc121041710464 = processAddress($acc111041710464, $list1041710464[11])
409- if (($size1041710464 == 12))
410- then $acc121041710464
397+ let $acc121050710554 = processAddress($acc111050710554, $list1050710554[11])
398+ if (($size1050710554 == 12))
399+ then $acc121050710554
411400 else {
412- let $acc131041710464 = processAddress($acc121041710464, $list1041710464[12])
413- if (($size1041710464 == 13))
414- then $acc131041710464
401+ let $acc131050710554 = processAddress($acc121050710554, $list1050710554[12])
402+ if (($size1050710554 == 13))
403+ then $acc131050710554
415404 else {
416- let $acc141041710464 = processAddress($acc131041710464, $list1041710464[13])
417- if (($size1041710464 == 14))
418- then $acc141041710464
405+ let $acc141050710554 = processAddress($acc131050710554, $list1050710554[13])
406+ if (($size1050710554 == 14))
407+ then $acc141050710554
419408 else {
420- let $acc151041710464 = processAddress($acc141041710464, $list1041710464[14])
421- if (($size1041710464 == 15))
422- then $acc151041710464
409+ let $acc151050710554 = processAddress($acc141050710554, $list1050710554[14])
410+ if (($size1050710554 == 15))
411+ then $acc151050710554
423412 else {
424- let $acc161041710464 = processAddress($acc151041710464, $list1041710464[15])
425- if (($size1041710464 == 16))
426- then $acc161041710464
413+ let $acc161050710554 = processAddress($acc151050710554, $list1050710554[15])
414+ if (($size1050710554 == 16))
415+ then $acc161050710554
427416 else {
428- let $acc171041710464 = processAddress($acc161041710464, $list1041710464[16])
429- if (($size1041710464 == 17))
430- then $acc171041710464
417+ let $acc171050710554 = processAddress($acc161050710554, $list1050710554[16])
418+ if (($size1050710554 == 17))
419+ then $acc171050710554
431420 else {
432- let $acc181041710464 = processAddress($acc171041710464, $list1041710464[17])
433- if (($size1041710464 == 18))
434- then $acc181041710464
421+ let $acc181050710554 = processAddress($acc171050710554, $list1050710554[17])
422+ if (($size1050710554 == 18))
423+ then $acc181050710554
435424 else {
436- let $acc191041710464 = processAddress($acc181041710464, $list1041710464[18])
437- if (($size1041710464 == 19))
438- then $acc191041710464
425+ let $acc191050710554 = processAddress($acc181050710554, $list1050710554[18])
426+ if (($size1050710554 == 19))
427+ then $acc191050710554
439428 else {
440- let $acc201041710464 = processAddress($acc191041710464, $list1041710464[19])
441- if (($size1041710464 == 20))
442- then $acc201041710464
429+ let $acc201050710554 = processAddress($acc191050710554, $list1050710554[19])
430+ if (($size1050710554 == 20))
431+ then $acc201050710554
443432 else {
444- let $acc211041710464 = processAddress($acc201041710464, $list1041710464[20])
433+ let $acc211050710554 = processAddress($acc201050710554, $list1050710554[20])
445434 throw("List size exceed 20")
446435 }
447436 }
448437 }
449438 }
450439 }
451440 }
452441 }
453442 }
454443 }
455444 }
456445 }
457446 }
458447 }
459448 }
460449 }
461450 }
462451 }
463452 }
464453 }
465454 }
466455 }
467456 }
468457 let toDistr = getInt(kToDistr)
469- (result._2 ++ [IntegerEntry(kToDistr, (toDistr - (result._1 * 1000000))), IntegerEntry(kUnstakedReward, 0)])
458+ (result._2 ++ [IntegerEntry(kToDistr, (toDistr - result._1)), IntegerEntry(kUnstakedReward, 0)])
459+ }
460+
461+
462+
463+@Callable(i)
464+func swapEgg () = if ((i.caller != mAccAddr))
465+ then throw("Method can be called by master account only")
466+ else {
467+ let oldEggBalance = assetBalance(this, oldEggAssetId)
468+ let swapTx = invoke(swapEggDappAddress, "swapEgg", nil, [AttachedPayment(oldEggAssetId, oldEggBalance)])
469+ if ((swapTx == swapTx))
470+ then [BooleanEntry("swapped_egg", true), IntegerEntry("swapped_egg_amount", oldEggBalance)]
471+ else throw("Strict value is not equal to itself.")
470472 }
471473
472474
473475 @Verifier(tx)
474476 func verify () = {
475477 let checkStarted = (getInt(kTotalLiquidity) >= getInt(kLiquidityThreshold))
476478 func totalEggSpending (accum,payment) = if ((payment.assetId == getEggId()))
477479 then (accum + payment.amount)
478480 else accum
479481
480482 match tx {
481483 case inv: InvokeScriptTransaction =>
482484 let unstakedRewardNow = getInt(kUnstakedReward)
483485 let toDistr = getInt(kToDistr)
484486 let minBalance = (unstakedRewardNow + toDistr)
485487 if (if ((inv.function == "unstakeNFT"))
486488 then true
487489 else (inv.function == "unstakeJackpot"))
488490 then throw("You cannot call these functions directly")
489491 else if ((sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) == false))
490492 then throw("_100")
491493 else if ((checkStarted == false))
492494 then throw("_14")
493495 else if ((getBool(kLocked) == true))
494496 then throw("_22")
495497 else if (if ((inv.fee > 900000))
496498 then true
497499 else (inv.feeAssetId != unit))
498500 then throw("_15")
499501 else if ((inv.function == "claimReward"))
500502 then throw("_16")
501503 else if ((size(inv.payments) > 2))
502504 then throw("_17")
503505 else if ((minBalance > ((assetBalance(this, getEggId()) - {
504- let $list1180711849 = inv.payments
505- let $size1180711849 = size($list1180711849)
506- let $acc01180711849 = 0
507- if (($size1180711849 == 0))
508- then $acc01180711849
506+ let $list1229312335 = inv.payments
507+ let $size1229312335 = size($list1229312335)
508+ let $acc01229312335 = 0
509+ if (($size1229312335 == 0))
510+ then $acc01229312335
509511 else {
510- let $acc11180711849 = totalEggSpending($acc01180711849, $list1180711849[0])
511- if (($size1180711849 == 1))
512- then $acc11180711849
512+ let $acc11229312335 = totalEggSpending($acc01229312335, $list1229312335[0])
513+ if (($size1229312335 == 1))
514+ then $acc11229312335
513515 else {
514- let $acc21180711849 = totalEggSpending($acc11180711849, $list1180711849[1])
515- if (($size1180711849 == 2))
516- then $acc21180711849
516+ let $acc21229312335 = totalEggSpending($acc11229312335, $list1229312335[1])
517+ if (($size1229312335 == 2))
518+ then $acc21229312335
517519 else {
518- let $acc31180711849 = totalEggSpending($acc21180711849, $list1180711849[2])
519- if (($size1180711849 == 3))
520- then $acc31180711849
520+ let $acc31229312335 = totalEggSpending($acc21229312335, $list1229312335[2])
521+ if (($size1229312335 == 3))
522+ then $acc31229312335
521523 else {
522- let $acc41180711849 = totalEggSpending($acc31180711849, $list1180711849[3])
524+ let $acc41229312335 = totalEggSpending($acc31229312335, $list1229312335[3])
523525 throw("List size exceed 3")
524526 }
525527 }
526528 }
527529 }
528530 }) * 1000000)))
529531 then throw(("Your minimal balance should be = " + toString(minBalance)))
530532 else if (if ((addressFromRecipient(inv.dApp) == this))
531533 then (inv.function == "callUnstakeProxy")
532534 else false)
533535 then sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
534536 else if (if ((addressFromRecipient(inv.dApp) == this))
535537 then (inv.function == "revertTransfer")
536538 else false)
537539 then sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
538540 else if (if ((addressFromRecipient(inv.dApp) == this))
539541 then (inv.function == "claimCeoFee")
540542 else false)
541543 then sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
542544 else if (if ((addressFromRecipient(inv.dApp) == this))
543545 then if ((inv.function == "lockInvestments"))
544546 then true
545547 else (inv.function == "unlockInvestments")
546548 else false)
547549 then sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
548550 else if (if ((addressFromRecipient(inv.dApp) == addressFromStringValue(getMarketProxyAddr())))
549551 then (inv.function == "callMarketplaceProxy")
550552 else false)
551553 then sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
552554 else {
553555 let allowedContracts = getStrA(mAccAddr, "allowed_contracts")
554556 let allowedContractsList = split(allowedContracts, ";")
555557 let dappToCall = toString(addressFromRecipient(inv.dApp))
556558 (indexOf(allowedContractsList, dappToCall) != unit)
557559 }
560+ case mt: MassTransferTransaction =>
561+ sigVerify(tx.bodyBytes, tx.proofs[0], mAccPKey)
562+ case dt: DataTransaction =>
563+ sigVerify(tx.bodyBytes, tx.proofs[0], mAccPKey)
558564 case ss: SetScriptTransaction =>
559565 sigVerify(tx.bodyBytes, tx.proofs[0], mAccPKey)
560566 case _ =>
561567 false
562568 }
563569 }
564570

github/deemru/w8io/786bc32 
336.83 ms