tx · B8Aa9WGWVmR9VfdbXrSgGJnv3UAEVneGt8U8QL64uvph

3P8eeDzUnoDNbQjW617pAe76cEUDQsP1m1V:  -0.02000000 Waves

2024.04.18 19:59 [4134453] smart account 3P8eeDzUnoDNbQjW617pAe76cEUDQsP1m1V > SELF 0.00000000 Waves

{ "type": 13, "id": "B8Aa9WGWVmR9VfdbXrSgGJnv3UAEVneGt8U8QL64uvph", "fee": 2000000, "feeAssetId": null, "timestamp": 1713459622220, "version": 2, "chainId": 87, "sender": "3P8eeDzUnoDNbQjW617pAe76cEUDQsP1m1V", "senderPublicKey": "Hkj3ckU9a63dXcAMBHssA9LjpfnkrpkzdoF2TvqWXst3", "proofs": [ "4NcybYsYLidbAYrzyBk8M2N6NAwbFGZepJ7Y1DjsjJStKv65tYFuNJ118jxrALFZkCeVP5wYYvQ7ybtD8cjgWW5F" ], "script": "base64:BgIcCAISBAoCCAESAwoBCBIDCgEIEgMKAQgSAwoBCAcABWhvdXJzABgAB21pbnV0ZXMAPAENdHJ5R2V0SW50ZWdlcgEDa2V5BAckbWF0Y2gwCQCaCAIFBHRoaXMFA2tleQMJAAECBQckbWF0Y2gwAgNJbnQEAWIFByRtYXRjaDAFAWIAAAEMdHJ5R2V0U3RyaW5nAQNrZXkEByRtYXRjaDAJAJ0IAgUEdGhpcwUDa2V5AwkAAQIFByRtYXRjaDACBlN0cmluZwQBYgUHJG1hdGNoMAUBYgIAAQ5nZXRBc3NldFN0cmluZwEHYXNzZXRJZAQHJG1hdGNoMAUHYXNzZXRJZAMJAAECBQckbWF0Y2gwAgpCeXRlVmVjdG9yBAFiBQckbWF0Y2gwCQDYBAEFAWICBVdBVkVTAQ1nZXRBc3NldEJ5dGVzAQphc3NldElkU3RyAwkAAAIFCmFzc2V0SWRTdHICBVdBVkVTBQR1bml0CQDZBAEFCmFzc2V0SWRTdHIBEXBheUJvb3N0aW5nUmVzdWx0AQpib29zdGluZ0lkBApsYXN0SGVpZ2h0CQENdHJ5R2V0SW50ZWdlcgEJAKwCAgkArAICAglib29zdGluZ18FCmJvb3N0aW5nSWQCC19sYXN0SGVpZ2h0BAxmaW5pc2hIZWlnaHQJAQ10cnlHZXRJbnRlZ2VyAQkArAICCQCsAgICCWJvb3N0aW5nXwUKYm9vc3RpbmdJZAINX2ZpbmlzaEhlaWdodAMDCQECIT0CBQpsYXN0SGVpZ2h0AAAJAGYCBQxmaW5pc2hIZWlnaHQFCmxhc3RIZWlnaHQHBAtibG9ja1Jld2FyZAkAaQIJAQ10cnlHZXRJbnRlZ2VyAQkArAICCQCsAgICCWJvb3N0aW5nXwUKYm9vc3RpbmdJZAIMX3RvdGFsQW1vdW50CQBoAgkAaAIJAQ10cnlHZXRJbnRlZ2VyAQkArAICCQCsAgICCWJvb3N0aW5nXwUKYm9vc3RpbmdJZAIFX2RheXMFBWhvdXJzBQdtaW51dGVzBAV0b1BheQkAawMJAGUCCQCXAwEJAMwIAgUMZmluaXNoSGVpZ2h0CQDMCAIFBmhlaWdodAUDbmlsBQpsYXN0SGVpZ2h0BQtibG9ja1Jld2FyZAABCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJAKwCAgIJYm9vc3RpbmdfBQpib29zdGluZ0lkAgtfbGFzdEhlaWdodAUGaGVpZ2h0CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQx0cnlHZXRTdHJpbmcBCQCsAgIJAKwCAgIJYm9vc3RpbmdfBQpib29zdGluZ0lkAgdfcG9vbElkBQV0b1BheQkBDWdldEFzc2V0Qnl0ZXMBCQEMdHJ5R2V0U3RyaW5nAQkArAICCQCsAgICCWJvb3N0aW5nXwUKYm9vc3RpbmdJZAIIX2Fzc2V0SWQFA25pbAUDbmlsBQFpAQthZGRCb29zdGluZwIGcG9vbElkBGRheXMECmZ1bGxBbW91bnQICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50AwkAZgIAAQUEZGF5cwkAAgECKmFtb3VudCBvZiBkYXlzIGhhcyB0byBiZSBiZXR3ZWVuIDEgYW5kIDM2NQMJAGYCBQRkYXlzAO0CCQACAQIqYW1vdW50IG9mIGRheXMgaGFzIHRvIGJlIGJldHdlZW4gMSBhbmQgMzY1AwkAZgIAoAsJAGkCBQpmdWxsQW1vdW50BQRkYXlzCQACAQkArAICCQCsAgICJmJvb3N0aW5nIGFtb3VudCB0b28gc21hbGwsIG1pbmltdW0gaXMgCQCkAwEJAGgCAKALBQRkYXlzAiYgb2YgdGhlIHNtYWxsZXN0IHVuaXQgb2YgcGF5bWVudCBhc3NldAMJAAACCQCmCAEFBnBvb2xJZAUEdW5pdAkAAgECFmluY29ycmVjdCBwb29sIGFkZHJlc3MEB2Fzc2V0SWQJAQ5nZXRBc3NldFN0cmluZwEICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAQNcG9vbEJvb3N0aW5ncwkAtQkCCQEMdHJ5R2V0U3RyaW5nAQkArAICCQCsAgICBXBvb2xfBQZwb29sSWQCCl9ib29zdGluZ3MCASwECmJvb3N0aW5nSWQJANgEAQgFAWkNdHJhbnNhY3Rpb25JZAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICCQCsAgICCWJvb3N0aW5nXwUKYm9vc3RpbmdJZAIFX2RheXMFBGRheXMJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkArAICAglib29zdGluZ18FCmJvb3N0aW5nSWQCDF90b3RhbEFtb3VudAUKZnVsbEFtb3VudAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICCQCsAgICCWJvb3N0aW5nXwUKYm9vc3RpbmdJZAIMX2RhaWx5QW1vdW50CQBpAgUKZnVsbEFtb3VudAUEZGF5cwkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICCQCsAgICCWJvb3N0aW5nXwUKYm9vc3RpbmdJZAIMX3N0YXJ0SGVpZ2h0BQZoZWlnaHQJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkArAICAglib29zdGluZ18FCmJvb3N0aW5nSWQCDV9maW5pc2hIZWlnaHQJAGQCBQZoZWlnaHQJAGgCCQBoAgUEZGF5cwUFaG91cnMFB21pbnV0ZXMJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkArAICAglib29zdGluZ18FCmJvb3N0aW5nSWQCEF9maW5pc2hUaW1lc3RhbXAJAGQCCAUJbGFzdEJsb2NrCXRpbWVzdGFtcAkAaAIJAGgCCQBoAgkAaAIFBGRheXMFBWhvdXJzBQdtaW51dGVzADwA6AcJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkArAICAglib29zdGluZ18FCmJvb3N0aW5nSWQCC19sYXN0SGVpZ2h0BQZoZWlnaHQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgICCWJvb3N0aW5nXwUKYm9vc3RpbmdJZAIIX2Fzc2V0SWQFB2Fzc2V0SWQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgICCWJvb3N0aW5nXwUKYm9vc3RpbmdJZAIGX293bmVyCQClCAEIBQFpBmNhbGxlcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgIJYm9vc3RpbmdfBQpib29zdGluZ0lkAgdfcG9vbElkBQZwb29sSWQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgICBXBvb2xfBQZwb29sSWQCCl9ib29zdGluZ3MJAQx0cnlHZXRTdHJpbmcBCQCsAgIJAKwCAgkArAICCQCsAgICBXBvb2xfBQZwb29sSWQCCl9ib29zdGluZ3MFCmJvb3N0aW5nSWQCASwFA25pbAFpARdwb2xp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", "height": 4134453, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 4RnAu3PyDznDa5hPyFHtHwWNYyjRT19CqqLWcAaZHdc6 Next: FTvRXtCTH7rGVzHFzn6yRe6RmW6ZUZ7NVwS6R74QXTep Diff:
OldNewDifferences
7676 then accum
7777 else {
7878 let finishHeight = tryGetInteger((("boosting_" + boostingId) + "_finishHeight"))
79- if ((height > finishHeight))
80- then ((accum + boostingId) + ",")
79+ if (if ((height > finishHeight))
80+ then (indexOf(accum, boostingId) == unit)
81+ else false)
82+ then (accum ++ [boostingId])
8183 else accum
8284 }
8385
8486 let currentBoostings = split_51C(tryGetString((("pool_" + poolId) + "_boostings")), ",")
85- let newBoostings = {
87+ let newBoostings = makeString_11C({
8688 let $l = currentBoostings
8789 let $s = size($l)
88- let $acc0 = ""
90+ let $acc0 = nil
8991 func $f0_1 ($a,$i) = if (($i >= $s))
9092 then $a
9193 else checkNextBoosting($a, $l[$i])
9597 else throw("List size exceeds 25")
9698
9799 $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($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)
98- }
100+ }, ",")
99101 [if ((newBoostings == ""))
100102 then DeleteEntry((("pool_" + poolId) + "_boostings"))
101103 else StringEntry((("pool_" + poolId) + "_boostings"), newBoostings)]
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let hours = 24
55
66 let minutes = 60
77
88 func tryGetInteger (key) = match getInteger(this, key) {
99 case b: Int =>
1010 b
1111 case _ =>
1212 0
1313 }
1414
1515
1616 func tryGetString (key) = match getString(this, key) {
1717 case b: String =>
1818 b
1919 case _ =>
2020 ""
2121 }
2222
2323
2424 func getAssetString (assetId) = match assetId {
2525 case b: ByteVector =>
2626 toBase58String(b)
2727 case _ =>
2828 "WAVES"
2929 }
3030
3131
3232 func getAssetBytes (assetIdStr) = if ((assetIdStr == "WAVES"))
3333 then unit
3434 else fromBase58String(assetIdStr)
3535
3636
3737 func payBoostingResult (boostingId) = {
3838 let lastHeight = tryGetInteger((("boosting_" + boostingId) + "_lastHeight"))
3939 let finishHeight = tryGetInteger((("boosting_" + boostingId) + "_finishHeight"))
4040 if (if ((lastHeight != 0))
4141 then (finishHeight > lastHeight)
4242 else false)
4343 then {
4444 let blockReward = (tryGetInteger((("boosting_" + boostingId) + "_totalAmount")) / ((tryGetInteger((("boosting_" + boostingId) + "_days")) * hours) * minutes))
4545 let toPay = fraction((min([finishHeight, height]) - lastHeight), blockReward, 1)
4646 [IntegerEntry((("boosting_" + boostingId) + "_lastHeight"), height), ScriptTransfer(addressFromStringValue(tryGetString((("boosting_" + boostingId) + "_poolId"))), toPay, getAssetBytes(tryGetString((("boosting_" + boostingId) + "_assetId"))))]
4747 }
4848 else nil
4949 }
5050
5151
5252 @Callable(i)
5353 func addBoosting (poolId,days) = {
5454 let fullAmount = i.payments[0].amount
5555 if ((1 > days))
5656 then throw("amount of days has to be between 1 and 365")
5757 else if ((days > 365))
5858 then throw("amount of days has to be between 1 and 365")
5959 else if ((1440 > (fullAmount / days)))
6060 then throw((("boosting amount too small, minimum is " + toString((1440 * days))) + " of the smallest unit of payment asset"))
6161 else if ((addressFromString(poolId) == unit))
6262 then throw("incorrect pool address")
6363 else {
6464 let assetId = getAssetString(i.payments[0].assetId)
6565 let poolBoostings = split(tryGetString((("pool_" + poolId) + "_boostings")), ",")
6666 let boostingId = toBase58String(i.transactionId)
6767 [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) + ",")))]
6868 }
6969 }
7070
7171
7272
7373 @Callable(i)
7474 func polishFinishedBoostings (poolId) = {
7575 func checkNextBoosting (accum,boostingId) = if ((boostingId == ""))
7676 then accum
7777 else {
7878 let finishHeight = tryGetInteger((("boosting_" + boostingId) + "_finishHeight"))
79- if ((height > finishHeight))
80- then ((accum + boostingId) + ",")
79+ if (if ((height > finishHeight))
80+ then (indexOf(accum, boostingId) == unit)
81+ else false)
82+ then (accum ++ [boostingId])
8183 else accum
8284 }
8385
8486 let currentBoostings = split_51C(tryGetString((("pool_" + poolId) + "_boostings")), ",")
85- let newBoostings = {
87+ let newBoostings = makeString_11C({
8688 let $l = currentBoostings
8789 let $s = size($l)
88- let $acc0 = ""
90+ let $acc0 = nil
8991 func $f0_1 ($a,$i) = if (($i >= $s))
9092 then $a
9193 else checkNextBoosting($a, $l[$i])
9294
9395 func $f0_2 ($a,$i) = if (($i >= $s))
9496 then $a
9597 else throw("List size exceeds 25")
9698
9799 $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($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)
98- }
100+ }, ",")
99101 [if ((newBoostings == ""))
100102 then DeleteEntry((("pool_" + poolId) + "_boostings"))
101103 else StringEntry((("pool_" + poolId) + "_boostings"), newBoostings)]
102104 }
103105
104106
105107
106108 @Callable(i)
107109 func payBoosting (boostingId) = payBoostingResult(boostingId)
108110
109111
110112
111113 @Callable(i)
112114 func payPoolBoostings (poolId) = {
113115 func f (accum,boostingId) = payBoostingResult(boostingId)
114116
115117 let boostings = split_51C(tryGetString((("pool_" + poolId) + "_boostings")), ",")
116118 let payments = {
117119 let $l = boostings
118120 let $s = size($l)
119121 let $acc0 = 0
120122 func $f0_1 ($a,$i) = if (($i >= $s))
121123 then $a
122124 else f($a, $l[$i])
123125
124126 func $f0_2 ($a,$i) = if (($i >= $s))
125127 then $a
126128 else throw("List size exceeds 25")
127129
128130 $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($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)
129131 }
130132 if ((payments == payments))
131133 then {
132134 let inv = invoke(this, "polishFinishedBoostings", [poolId], nil)
133135 if ((inv == inv))
134136 then nil
135137 else throw("Strict value is not equal to itself.")
136138 }
137139 else throw("Strict value is not equal to itself.")
138140 }
139141
140142
141143
142144 @Callable(i)
143145 func payBoostings (poolIds) = {
144146 func f (accum,poolId) = {
145147 let in = invoke(this, "payPoolBoostings", [poolId], nil)
146148 if ((in == in))
147149 then 0
148150 else throw("Strict value is not equal to itself.")
149151 }
150152
151153 let invokes = {
152154 let $l = split_51C(poolIds, ",")
153155 let $s = size($l)
154156 let $acc0 = 0
155157 func $f0_1 ($a,$i) = if (($i >= $s))
156158 then $a
157159 else f($a, $l[$i])
158160
159161 func $f0_2 ($a,$i) = if (($i >= $s))
160162 then $a
161163 else throw("List size exceeds 25")
162164
163165 $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($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)
164166 }
165167 if ((invokes == invokes))
166168 then nil
167169 else throw("Strict value is not equal to itself.")
168170 }
169171
170172

github/deemru/w8io/6500d08 
33.56 ms