tx · 3EDoMavUgGSjtjUoh3YWjn6298Mjc6E92hgD6eR7RNL3

3MqEAEVk1NcbRAuEPAX7nyzUqMHbhvRofez:  -0.00800000 Waves

2023.11.08 12:20 [2834192] smart account 3MqEAEVk1NcbRAuEPAX7nyzUqMHbhvRofez > SELF 0.00000000 Waves

{ "type": 13, "id": "3EDoMavUgGSjtjUoh3YWjn6298Mjc6E92hgD6eR7RNL3", "fee": 800000, "feeAssetId": null, "timestamp": 1699435287373, "version": 2, "chainId": 84, "sender": "3MqEAEVk1NcbRAuEPAX7nyzUqMHbhvRofez", "senderPublicKey": "Brp6cacBXyKUcZr5Uc6VDKsnFcaEeQ8nQzrZQyobDsuf", "proofs": [ "4wYueUj3U2KXdeeuRK6NFk9DrooeoDphsFhWCJkHb1cfgNL4JxtVLLX1YBkTLS3VmqFq4c953L4T1JtRb7uuuMD" ], "script": "base64:BgIbCAISBAoCCAESAwoBCBIAEgMKAQgSABIDCgEICQACbGkJAMwIAgIBMQkAzAgCAgEyCQDMCAICATMJAMwIAgIBNAkAzAgCAgE1CQDMCAICATYJAMwIAgIBNwkAzAgCAgE4CQDMCAICATkJAMwIAgICMTAJAMwIAgICMTEJAMwIAgICMTIJAMwIAgICMTMJAMwIAgICMTQJAMwIAgICMTUJAMwIAgICMTYJAMwIAgICMTcJAMwIAgICMTgJAMwIAgICMTkJAMwIAgICMjAJAMwIAgICMjEJAMwIAgICMjIJAMwIAgICMjMJAMwIAgICMjQJAMwIAgICMjUJAMwIAgICMjYJAMwIAgICMjcJAMwIAgICMjgJAMwIAgICMjkJAMwIAgICMzAJAMwIAgICMzEJAMwIAgICMzIJAMwIAgICMzMJAMwIAgICMzQJAMwIAgICMzUJAMwIAgICMzYJAMwIAgICMzcJAMwIAgICMzgJAMwIAgICMzkJAMwIAgICNDAJAMwIAgICNDEJAMwIAgICNDIJAMwIAgICNDMJAMwIAgICNDQJAMwIAgICNDUJAMwIAgICNDYJAMwIAgICNDcJAMwIAgICNDgJAMwIAgICNDkJAMwIAgICNTAJAMwIAgICNTEJAMwIAgICNTIJAMwIAgICNTMJAMwIAgICNTUJAMwIAgICNTYFA25pbAAFaG91cnMAAQAHbWludXRlcwAKAQ10cnlHZXRJbnRlZ2VyAQNrZXkEByRtYXRjaDAJAJoIAgUEdGhpcwUDa2V5AwkAAQIFByRtYXRjaDACA0ludAQBYgUHJG1hdGNoMAUBYgAAAQx0cnlHZXRTdHJpbmcBA2tleQQHJG1hdGNoMAkAnQgCBQR0aGlzBQNrZXkDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFiBQckbWF0Y2gwBQFiAgABDmdldEFzc2V0U3RyaW5nAQdhc3NldElkBAckbWF0Y2gwBQdhc3NldElkAwkAAQIFByRtYXRjaDACCkJ5dGVWZWN0b3IEAWIFByRtYXRjaDAJANgEAQUBYgIFV0FWRVMBDWdldEFzc2V0Qnl0ZXMBCmFzc2V0SWRTdHIDCQAAAgUKYXNzZXRJZFN0cgIFV0FWRVMFBHVuaXQJANkEAQUKYXNzZXRJZFN0cgERcGF5Qm9vc3RpbmdSZXN1bHQBCmJvb3N0aW5nSWQECmxhc3RIZWlnaHQJAQ10cnlHZXRJbnRlZ2VyAQkArAICCQCsAgICCWJvb3N0aW5nXwUKYm9vc3RpbmdJZAILX2xhc3RIZWlnaHQEDGZpbmlzaEhlaWdodAkBDXRyeUdldEludGVnZXIBCQCsAgIJAKwCAgIJYm9vc3RpbmdfBQpib29zdGluZ0lkAg1fZmluaXNoSGVpZ2h0BBFnZXRGaW5pc2hlZFBvb2xJZAkBDHRyeUdldFN0cmluZwEJAKwCAgkArAICAglib29zdGluZ18FCmJvb3N0aW5nSWQCB19wb29sSWQEEGdldFBvb2xCb29zdGluZ3MJAQx0cnlHZXRTdHJpbmcBCQCsAgIJAKwCAgIFcG9vbF8FEWdldEZpbmlzaGVkUG9vbElkAgpfYm9vc3RpbmdzBAdzaXplU3RyCQCxAgEFEGdldFBvb2xCb29zdGluZ3MECWZpbmRJbmRleAkBBXZhbHVlAQkAswkCBRBnZXRQb29sQm9vc3RpbmdzBQpib29zdGluZ0lkBBVyZW1vdmVFbmRlZEJvb3N0aW5nSUQJAKwCAgkArwICBRBnZXRQb29sQm9vc3RpbmdzCQBlAgUHc2l6ZVN0cgkAZQIFB3NpemVTdHIFCWZpbmRJbmRleAkAsgICBRBnZXRQb29sQm9vc3RpbmdzCQBlAgUHc2l6ZVN0cgkAZAIFCWZpbmRJbmRleAABAwMJAQIhPQIFCmxhc3RIZWlnaHQAAAkAZgIFDGZpbmlzaEhlaWdodAUKbGFzdEhlaWdodAcEC2Jsb2NrUmV3YXJkCQBpAgkBDXRyeUdldEludGVnZXIBCQCsAgIJAKwCAgIJYm9vc3RpbmdfBQpib29zdGluZ0lkAgxfdG90YWxBbW91bnQJAGgCCQBoAgkBDXRyeUdldEludGVnZXIBCQCsAgIJAKwCAgIJYm9vc3RpbmdfBQpib29zdGluZ0lkAgVfZGF5cwUFaG91cnMFB21pbnV0ZXMEBXRvUGF5CQBrAwkAZQIJAJcDAQkAzAgCBQxmaW5pc2hIZWlnaHQJAMwIAgUGaGVpZ2h0BQNuaWwFCmxhc3RIZWlnaHQFC2Jsb2NrUmV3YXJkAAEJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkArAICAglib29zdGluZ18FCmJvb3N0aW5nSWQCC19sYXN0SGVpZ2h0BQZoZWlnaHQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBEUBleHRyTmF0aXZlKDEwNjIpAQkBDHRyeUdldFN0cmluZwEJAKwCAgkArAICAglib29zdGluZ18FCmJvb3N0aW5nSWQCB19wb29sSWQFBXRvUGF5CQENZ2V0QXNzZXRCeXRlcwEJAQx0cnlHZXRTdHJpbmcBCQCsAgIJAKwCAgIJYm9vc3RpbmdfBQpib29zdGluZ0lkAghfYXNzZXRJZAkAzAgCCQELU3RyaW5nRW50cnkCAhFnZXRGaW5pc2hlZFBvb2xJZAURZ2V0RmluaXNoZWRQb29sSWQJAMwIAgkBC1N0cmluZ0VudHJ5AgIQZ2V0UG9vbEJvb3N0aW5ncwUQZ2V0UG9vbEJvb3N0aW5ncwkAzAgCCQEMSW50ZWdlckVudHJ5AgIJZmluZEluZGV4BQlmaW5kSW5kZXgJAMwIAgkBDEludGVnZXJFbnRyeQICB3NpemVTdHIFB3NpemVTdHIJAMwIAgkBC1N0cmluZ0VudHJ5AgILbGVmdCBzdHJpbmcJAK8CAgUQZ2V0UG9vbEJvb3N0aW5ncwkAZQIFB3NpemVTdHIJAGUCBQdzaXplU3RyBQlmaW5kSW5kZXgJAMwIAgkBC1N0cmluZ0VudHJ5AgIMcmlnaHQgc3RyaW5nCQCyAgIFEGdldFBvb2xCb29zdGluZ3MJAGUCBQdzaXplU3RyCQBkAgUJZmluZEluZGV4AAEJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgICBXBvb2xfBRFnZXRGaW5pc2hlZFBvb2xJZAIKX2Jvb3N0aW5ncwUVcmVtb3ZlRW5kZWRCb29zdGluZ0lEBQNuaWwFA25pbAEQZW5kZWRCb29zdGluZ0lkcwEKYm9vc3RpbmdJZAQKbGFzdEhlaWdodAkBDXRyeUdldEludGVnZXIBCQCsAgIJAKwCAgIJYm9vc3RpbmdfBQpib29zdGluZ0lkAgtfbGFzdEhlaWdodAQMZmluaXNoSGVpZ2h0CQENdHJ5R2V0SW50ZWdlcgEJAKwCAgkArAICAglib29zdGluZ18FCmJvb3N0aW5nSWQCDV9maW5pc2hIZWlnaHQDCQBnAgUKbGFzdEhlaWdodAUMZmluaXNoSGVpZ2h0CQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICAgtsaXN0IGVuZGVkIAkApAMBBQZoZWlnaHQCDCBib29zdGluZ0lkcwkArAICCQCsAgIJAQx0cnlHZXRTdHJpbmcBCQCsAgIJAKwCAgILbGlzdCBlbmRlZCAJAKQDAQUGaGVpZ2h0AgwgYm9vc3RpbmdJZHMFCmJvb3N0aW5nSWQCASwFA25pbAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgIUbGlzdCBvbmdvaW5nIGJvb3N0cyAJAKQDAQUGaGVpZ2h0AgwgYm9vc3RpbmdJZHMJAKwCAgkArAICCQEMdHJ5R2V0U3RyaW5nAQkArAICCQCsAgICFGxpc3Qgb25nb2luZyBib29zdHMgCQCkAwEFBmhlaWdodAIMIGJvb3N0aW5nSWRzBQpib29zdGluZ0lkAgEsBQNuaWwGAWkBC2FkZEJvb3N0aW5nAgZwb29sSWQEZGF5cwMJAGYCAAEFBGRheXMJAAIBAiphbW91bnQgb2YgZGF5cyBoYXMgdG8gYmUgYmV0d2VlbiAxIGFuZCAzNjUDCQBmAgUEZGF5cwDtAgkAAgECKmFtb3VudCBvZiBkYXlzIGhhcyB0byBiZSBiZXR3ZWVuIDEgYW5kIDM2NQMHCQACAQImdW5kZXIgbWFpbnRlbmFuY2UgdW50aWwgZnVydGhlciBub3RpY2UECmZ1bGxBbW91bnQICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50AwkAZgIAoAsJAGkCBQpmdWxsQW1vdW50BQRkYXlzCQACAQkArAICCQCsAgICJmJvb3N0aW5nIGFtb3VudCB0b28gc21hbGwsIG1pbmltdW0gaXMgCQCkAwEJAGgCAKALBQRkYXlzAiYgb2YgdGhlIHNtYWxsZXN0IHVuaXQgb2YgcGF5bWVudCBhc3NldAQHYXNzZXRJZAkBDmdldEFzc2V0U3RyaW5nAQgJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkAwkAAAIFBmhlaWdodAkBDXRyeUdldEludGVnZXIBAgZoZWlnaHQJAAIBAg13YWl0IDEgbWludXRlBAVlbnRyeQMJAGYCCQCxAgEJAQx0cnlHZXRTdHJpbmcBCQCsAgIJAKwCAgIFcG9vbF8FBnBvb2xJZAIKX2Jvb3N0aW5ncwALCQACAQIVbWF4IDUgYm9vc3RzIHBlciBwb29sCQD8BwQFBHRoaXMCCmVudHJ5RW5kZWQFA25pbAUDbmlsAwkAAAIFBWVudHJ5BQVlbnRyeQQKYm9vc3RpbmdJZAMJAGYCCQCxAgEJAKwCAgkArAICAhRsaXN0IG9uZ29pbmcgYm9vc3RzIAkApAMBBQZoZWlnaHQCDCBib29zdGluZ0lkcwADCQACAQIjd2FpdCB0aWxsIG90aGVyIGJvb3N0cyBhcmUgZmluaXNoZWQJAK8CAgkBDHRyeUdldFN0cmluZwEJAKwCAgkArAICAgtsaXN0IGVuZGVkIAkApAMBBQZoZWlnaHQCDCBib29zdGluZ0lkcwABAwkAAAIJAKYIAQUGcG9vbElkBQR1bml0CQACAQIWaW5jb3JyZWN0IHBvb2wgYWRkcmVzcwkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICCQCsAgICCWJvb3N0aW5nXwUKYm9vc3RpbmdJZAIFX2RheXMFBGRheXMJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkArAICAglib29zdGluZ18FCmJvb3N0aW5nSWQCDF90b3RhbEFtb3VudAUKZnVsbEFtb3VudAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICCQCsAgICCWJvb3N0aW5nXwUKYm9vc3RpbmdJZAIMX2RhaWx5QW1vdW50CQBpAgUKZnVsbEFtb3VudAUEZGF5cwkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICCQCsAgICCWJvb3N0aW5nXwUKYm9vc3RpbmdJZAIMX3N0YXJ0SGVpZ2h0BQZoZWlnaHQJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkArAICAglib29zdGluZ18FCmJvb3N0aW5nSWQCDV9maW5pc2hIZWlnaHQJAGQCBQZoZWlnaHQJAGgCCQBoAgUEZGF5cwUFaG91cnMFB21pbnV0ZXMJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkArAICAglib29zdGluZ18FCmJvb3N0aW5nSWQCEF9maW5pc2hUaW1lc3RhbXAJAGQCCAUJbGFzdEJsb2NrCXRpbWVzdGFtcAkAaAIJAGgCCQBoAgkAaAIFBGRheXMFBWhvdXJzBQdtaW51dGVzADwA6AcJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkArAICAglib29zdGluZ18FCmJvb3N0aW5nSWQCC19sYXN0SGVpZ2h0BQZoZWlnaHQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgICCWJvb3N0aW5nXwUKYm9vc3RpbmdJZAIIX2Fzc2V0SWQFB2Fzc2V0SWQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgICCWJvb3N0aW5nXwUKYm9vc3RpbmdJZAIGX293bmVyCQClCAEIBQFpBmNhbGxlcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgIJYm9vc3RpbmdfBQpib29zdGluZ0lkAgdfcG9vbElkBQZwb29sSWQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgICBXBvb2xfBQZwb29sSWQCCl9ib29zdGluZ3MJAKwCAgkArAICCQEMdHJ5R2V0U3RyaW5nAQkArAICCQCsAgICBXBvb2xfBQZwb29sSWQCCl9ib29zdGluZ3MFCmJvb3N0aW5nSWQCASwFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQtwYXlCb29zdGluZwEKYm9vc3RpbmdJZAkBEXBheUJvb3N0aW5nUmVzdWx0AQUKYm9vc3RpbmdJZAFpAQxwYXlCb29zdGluZ3MACgEBZgIFYWNjdW0EbmV4dAQCaW4JAPwHBAUEdGhpcwILcGF5Qm9vc3RpbmcJAMwIAgUEbmV4dAUDbmlsBQNuaWwDCQAAAgUCaW4FAmluBQJpbgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgQIcGF5bWVudHMKAAIkbAUCbGkKAAIkcwkAkAMBBQIkbAoABSRhY2MwAAAKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBAWYCBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDU2CQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEF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", "height": 2834192, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: AG4uBoCjs4TNUi2No4zSUyZQKerKBRh1oJqUrV7fqZ8z Next: FWud1Dwk6YnPfNiqGFX9tvcMKtSVPK5br8CirJduDHXe Diff:
OldNewDifferences
5050 then {
5151 let blockReward = (tryGetInteger((("boosting_" + boostingId) + "_totalAmount")) / ((tryGetInteger((("boosting_" + boostingId) + "_days")) * hours) * minutes))
5252 let toPay = fraction((min([finishHeight, height]) - lastHeight), blockReward, 1)
53-[IntegerEntry((("boosting_" + boostingId) + "_lastHeight"), height), ScriptTransfer(addressFromStringValue(tryGetString((("boosting_" + boostingId) + "_poolId"))), toPay, getAssetBytes(tryGetString((("boosting_" + boostingId) + "_assetId")))), StringEntry("getFinishedPoolId", getFinishedPoolId), StringEntry("getPoolBoostings", getPoolBoostings), IntegerEntry("findIndex", findIndex), IntegerEntry("sizeStr", sizeStr)]
53+[IntegerEntry((("boosting_" + boostingId) + "_lastHeight"), height), ScriptTransfer(addressFromStringValue(tryGetString((("boosting_" + boostingId) + "_poolId"))), toPay, getAssetBytes(tryGetString((("boosting_" + boostingId) + "_assetId")))), StringEntry("getFinishedPoolId", getFinishedPoolId), StringEntry("getPoolBoostings", getPoolBoostings), IntegerEntry("findIndex", findIndex), IntegerEntry("sizeStr", sizeStr), StringEntry("left string", take(getPoolBoostings, (sizeStr - (sizeStr - findIndex)))), StringEntry("right string", takeRight(getPoolBoostings, (sizeStr - (findIndex + 1)))), StringEntry((("pool_" + getFinishedPoolId) + "_boostings"), removeEndedBoostingID)]
5454 }
5555 else nil
5656 }
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let li = ["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", "55", "56"]
55
66 let hours = 1
77
88 let minutes = 10
99
1010 func tryGetInteger (key) = match getInteger(this, key) {
1111 case b: Int =>
1212 b
1313 case _ =>
1414 0
1515 }
1616
1717
1818 func tryGetString (key) = match getString(this, key) {
1919 case b: String =>
2020 b
2121 case _ =>
2222 ""
2323 }
2424
2525
2626 func getAssetString (assetId) = match assetId {
2727 case b: ByteVector =>
2828 toBase58String(b)
2929 case _ =>
3030 "WAVES"
3131 }
3232
3333
3434 func getAssetBytes (assetIdStr) = if ((assetIdStr == "WAVES"))
3535 then unit
3636 else fromBase58String(assetIdStr)
3737
3838
3939 func payBoostingResult (boostingId) = {
4040 let lastHeight = tryGetInteger((("boosting_" + boostingId) + "_lastHeight"))
4141 let finishHeight = tryGetInteger((("boosting_" + boostingId) + "_finishHeight"))
4242 let getFinishedPoolId = tryGetString((("boosting_" + boostingId) + "_poolId"))
4343 let getPoolBoostings = tryGetString((("pool_" + getFinishedPoolId) + "_boostings"))
4444 let sizeStr = size(getPoolBoostings)
4545 let findIndex = value(indexOf(getPoolBoostings, boostingId))
4646 let removeEndedBoostingID = (take(getPoolBoostings, (sizeStr - (sizeStr - findIndex))) + takeRight(getPoolBoostings, (sizeStr - (findIndex + 1))))
4747 if (if ((lastHeight != 0))
4848 then (finishHeight > lastHeight)
4949 else false)
5050 then {
5151 let blockReward = (tryGetInteger((("boosting_" + boostingId) + "_totalAmount")) / ((tryGetInteger((("boosting_" + boostingId) + "_days")) * hours) * minutes))
5252 let toPay = fraction((min([finishHeight, height]) - lastHeight), blockReward, 1)
53-[IntegerEntry((("boosting_" + boostingId) + "_lastHeight"), height), ScriptTransfer(addressFromStringValue(tryGetString((("boosting_" + boostingId) + "_poolId"))), toPay, getAssetBytes(tryGetString((("boosting_" + boostingId) + "_assetId")))), StringEntry("getFinishedPoolId", getFinishedPoolId), StringEntry("getPoolBoostings", getPoolBoostings), IntegerEntry("findIndex", findIndex), IntegerEntry("sizeStr", sizeStr)]
53+[IntegerEntry((("boosting_" + boostingId) + "_lastHeight"), height), ScriptTransfer(addressFromStringValue(tryGetString((("boosting_" + boostingId) + "_poolId"))), toPay, getAssetBytes(tryGetString((("boosting_" + boostingId) + "_assetId")))), StringEntry("getFinishedPoolId", getFinishedPoolId), StringEntry("getPoolBoostings", getPoolBoostings), IntegerEntry("findIndex", findIndex), IntegerEntry("sizeStr", sizeStr), StringEntry("left string", take(getPoolBoostings, (sizeStr - (sizeStr - findIndex)))), StringEntry("right string", takeRight(getPoolBoostings, (sizeStr - (findIndex + 1)))), StringEntry((("pool_" + getFinishedPoolId) + "_boostings"), removeEndedBoostingID)]
5454 }
5555 else nil
5656 }
5757
5858
5959 func endedBoostingIds (boostingId) = {
6060 let lastHeight = tryGetInteger((("boosting_" + boostingId) + "_lastHeight"))
6161 let finishHeight = tryGetInteger((("boosting_" + boostingId) + "_finishHeight"))
6262 if ((lastHeight >= finishHeight))
6363 then [StringEntry((("list ended " + toString(height)) + " boostingIds"), ((tryGetString((("list ended " + toString(height)) + " boostingIds")) + boostingId) + ","))]
6464 else [StringEntry((("list ongoing boosts " + toString(height)) + " boostingIds"), ((tryGetString((("list ongoing boosts " + toString(height)) + " boostingIds")) + boostingId) + ","))]
6565 }
6666
6767
6868 @Callable(i)
6969 func addBoosting (poolId,days) = if ((1 > days))
7070 then throw("amount of days has to be between 1 and 365")
7171 else if ((days > 365))
7272 then throw("amount of days has to be between 1 and 365")
7373 else if (false)
7474 then throw("under maintenance until further notice")
7575 else {
7676 let fullAmount = i.payments[0].amount
7777 if ((1440 > (fullAmount / days)))
7878 then throw((("boosting amount too small, minimum is " + toString((1440 * days))) + " of the smallest unit of payment asset"))
7979 else {
8080 let assetId = getAssetString(i.payments[0].assetId)
8181 if ((height == tryGetInteger("height")))
8282 then throw("wait 1 minute")
8383 else {
8484 let entry = if ((size(tryGetString((("pool_" + poolId) + "_boostings"))) > 11))
8585 then throw("max 5 boosts per pool")
8686 else invoke(this, "entryEnded", nil, nil)
8787 if ((entry == entry))
8888 then {
8989 let boostingId = if ((size((("list ongoing boosts " + toString(height)) + " boostingIds")) > 3))
9090 then throw("wait till other boosts are finished")
9191 else take(tryGetString((("list ended " + toString(height)) + " boostingIds")), 1)
9292 if ((addressFromString(poolId) == unit))
9393 then throw("incorrect pool address")
9494 else [IntegerEntry((("boosting_" + boostingId) + "_days"), days), IntegerEntry((("boosting_" + boostingId) + "_totalAmount"), fullAmount), IntegerEntry((("boosting_" + boostingId) + "_dailyAmount"), (fullAmount / days)), IntegerEntry((("boosting_" + boostingId) + "_startHeight"), height), IntegerEntry((("boosting_" + boostingId) + "_finishHeight"), (height + ((days * hours) * minutes))), IntegerEntry((("boosting_" + boostingId) + "_finishTimestamp"), (lastBlock.timestamp + ((((days * hours) * minutes) * 60) * 1000))), IntegerEntry((("boosting_" + boostingId) + "_lastHeight"), height), StringEntry((("boosting_" + boostingId) + "_assetId"), assetId), StringEntry((("boosting_" + boostingId) + "_owner"), toString(i.caller)), StringEntry((("boosting_" + boostingId) + "_poolId"), poolId), StringEntry((("pool_" + poolId) + "_boostings"), ((tryGetString((("pool_" + poolId) + "_boostings")) + boostingId) + ","))]
9595 }
9696 else throw("Strict value is not equal to itself.")
9797 }
9898 }
9999 }
100100
101101
102102
103103 @Callable(i)
104104 func payBoosting (boostingId) = payBoostingResult(boostingId)
105105
106106
107107
108108 @Callable(i)
109109 func payBoostings () = {
110110 func f (accum,next) = {
111111 let in = invoke(this, "payBoosting", [next], nil)
112112 if ((in == in))
113113 then in
114114 else throw("Strict value is not equal to itself.")
115115 }
116116
117117 let payments = {
118118 let $l = li
119119 let $s = size($l)
120120 let $acc0 = 0
121121 func $f0_1 ($a,$i) = if (($i >= $s))
122122 then $a
123123 else f($a, $l[$i])
124124
125125 func $f0_2 ($a,$i) = if (($i >= $s))
126126 then $a
127127 else throw("List size exceeds 56")
128128
129129 $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($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)
130130 }
131131 if ((payments == payments))
132132 then nil
133133 else throw("Strict value is not equal to itself.")
134134 }
135135
136136
137137
138138 @Callable(i)
139139 func endedBoostings (boostingId) = endedBoostingIds(boostingId)
140140
141141
142142
143143 @Callable(i)
144144 func entryEnded () = {
145145 func f (accum,next) = {
146146 let in = invoke(this, "endedBoostings", [next], nil)
147147 if ((in == in))
148148 then in
149149 else throw("Strict value is not equal to itself.")
150150 }
151151
152152 let end = {
153153 let $l = li
154154 let $s = size($l)
155155 let $acc0 = 0
156156 func $f0_1 ($a,$i) = if (($i >= $s))
157157 then $a
158158 else f($a, $l[$i])
159159
160160 func $f0_2 ($a,$i) = if (($i >= $s))
161161 then $a
162162 else throw("List size exceeds 56")
163163
164164 $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($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)
165165 }
166166 if ((end == end))
167167 then [IntegerEntry("height", height)]
168168 else throw("Strict value is not equal to itself.")
169169 }
170170
171171
172172
173173 @Callable(i)
174174 func deleteEntr (poolId) = [DeleteEntry((("pool_" + poolId) + "_boostings"))]
175175
176176

github/deemru/w8io/c3f4982 
57.95 ms