tx · 7aCduuFsxJJVd4MuXJgUZKu2CutBLzQh4KtQK1xmVeH2

3PAPVqsf4rWzHTS1tKCdMBdNB5TU79dVk4G:  -0.00900000 Waves

2022.08.11 14:46 [3245259] smart account 3PAPVqsf4rWzHTS1tKCdMBdNB5TU79dVk4G > SELF 0.00000000 Waves

{ "type": 13, "id": "7aCduuFsxJJVd4MuXJgUZKu2CutBLzQh4KtQK1xmVeH2", "fee": 900000, "feeAssetId": null, "timestamp": 1660218458705, "version": 2, "chainId": 87, "sender": "3PAPVqsf4rWzHTS1tKCdMBdNB5TU79dVk4G", "senderPublicKey": "FRchqWYnPf1f9jMJpVkvBwtBXKqqNkRxpXFqBbFP4r5Z", "proofs": [ "4t8CYaepVSXcH6DJrRoRihGPDjT8uMpp4ZpYBkt6QP6V4GFcw5gsGCJVbMsaKyHvHomzpA8zm4g1M7aQ8pEhcM9B" ], "script": "base64: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", "height": 3245259, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: BescxwT5EBaJJgmZDNcmeUhedK437EM9giEP1LCuwLvz Next: BG5QWdP7tyVXSjm1Uqqfnk6RGE1r1uBWASvg5Dq3Q4ci Diff:
OldNewDifferences
3232
3333 func payBoostingResult (boostingId) = {
3434 let lastHeight = tryGetInteger((("boosting_" + boostingId) + "_lastHeight"))
35- let blockReward = tryGetInteger((("boosting_" + boostingId) + "_blockAmount"))
36- let toPay = ((height - lastHeight) * blockReward)
35+ if ((lastHeight != 0))
36+ then {
37+ let blockReward = tryGetInteger((("boosting_" + boostingId) + "_blockAmount"))
38+ let toPay = ((height - lastHeight) * blockReward)
3739 [IntegerEntry((("boosting_" + boostingId) + "_lastHeight"), height), ScriptTransfer(addressFromStringValue(tryGetString((("boosting_" + boostingId) + "_poolId"))), toPay, fromBase58String(tryGetString((("boosting_" + boostingId) + "_assetId"))))]
40+ }
41+ else nil
3842 }
3943
4044
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 func tryGetInteger (key) = match getInteger(this, key) {
55 case b: Int =>
66 b
77 case _ =>
88 0
99 }
1010
1111
1212 func tryGetString (key) = match getString(this, key) {
1313 case b: String =>
1414 b
1515 case _ =>
1616 ""
1717 }
1818
1919
2020 func getAssetString (assetId) = match assetId {
2121 case b: ByteVector =>
2222 toBase58String(b)
2323 case _ =>
2424 "WAVES"
2525 }
2626
2727
2828 func getAssetBytes (assetIdStr) = if ((assetIdStr == "WAVES"))
2929 then unit
3030 else fromBase58String(assetIdStr)
3131
3232
3333 func payBoostingResult (boostingId) = {
3434 let lastHeight = tryGetInteger((("boosting_" + boostingId) + "_lastHeight"))
35- let blockReward = tryGetInteger((("boosting_" + boostingId) + "_blockAmount"))
36- let toPay = ((height - lastHeight) * blockReward)
35+ if ((lastHeight != 0))
36+ then {
37+ let blockReward = tryGetInteger((("boosting_" + boostingId) + "_blockAmount"))
38+ let toPay = ((height - lastHeight) * blockReward)
3739 [IntegerEntry((("boosting_" + boostingId) + "_lastHeight"), height), ScriptTransfer(addressFromStringValue(tryGetString((("boosting_" + boostingId) + "_poolId"))), toPay, fromBase58String(tryGetString((("boosting_" + boostingId) + "_assetId"))))]
40+ }
41+ else nil
3842 }
3943
4044
4145 @Callable(i)
4246 func addBoosting (poolId,days) = {
4347 let fullAmount = i.payments[0].amount
4448 let assetId = getAssetString(i.payments[0].assetId)
4549 let newBoostingsAmount = (tryGetInteger("global_boostingsAmount") + 1)
4650 let boostingId = toString(newBoostingsAmount)
4751 if ((addressFromString(poolId) == unit))
4852 then throw("incorrect pool address")
4953 else [IntegerEntry((("boosting_" + boostingId) + "_days"), days), IntegerEntry((("boosting_" + boostingId) + "_totalAmount"), fullAmount), IntegerEntry((("boosting_" + boostingId) + "_dailyAmount"), (fullAmount / days)), IntegerEntry((("boosting_" + boostingId) + "_blockAmount"), (fullAmount / ((days * 24) * 60))), IntegerEntry((("boosting_" + boostingId) + "_startHeight"), height), IntegerEntry((("boosting_" + boostingId) + "_finishHeight"), (height + ((days * 24) * 60))), IntegerEntry((("boosting_" + boostingId) + "_lastHeight"), height), StringEntry((("boosting_" + boostingId) + "_assetId"), assetId), StringEntry((("boosting_" + boostingId) + "_owner"), toString(i.caller)), StringEntry((("boosting_" + boostingId) + "_poolId"), poolId)]
5054 }
5155
5256
5357
5458 @Callable(i)
5559 func payBoostings () = {
5660 func f (accum,next) = (accum ++ payBoostingResult(toString(next)))
5761
5862 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]
5963 let $l = li
6064 let $s = size($l)
6165 let $acc0 = nil
6266 func $f0_1 ($a,$i) = if (($i >= $s))
6367 then $a
6468 else f($a, $l[$i])
6569
6670 func $f0_2 ($a,$i) = if (($i >= $s))
6771 then $a
6872 else throw("List size exceeds 35")
6973
7074 $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($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)
7175 }
7276
7377
7478 @Verifier(tx)
7579 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
7680

github/deemru/w8io/3ef1775 
34.49 ms