tx · Csu4R8K7XRQJvikycqWcG7gU43RdHhDwnPbuPom9PTbk 3PR8Yve57E6TrJGC1Ht5ydDc4UAJY529f9X: -0.01000000 Waves 2023.06.26 12:48 [3705091] smart account 3PR8Yve57E6TrJGC1Ht5ydDc4UAJY529f9X > SELF 0.00000000 Waves
{ "type": 13, "id": "Csu4R8K7XRQJvikycqWcG7gU43RdHhDwnPbuPom9PTbk", "fee": 1000000, "feeAssetId": null, "timestamp": 1687772915930, "version": 2, "chainId": 87, "sender": "3PR8Yve57E6TrJGC1Ht5ydDc4UAJY529f9X", "senderPublicKey": "4KoHqDJgFL4FWb6CrZ8s5X61XDqtdaENwRuyViRAHxQE", "proofs": [ "3p4uSVFJ86iLhzLJzBmkzWq8QbFEqdiWHyfBHHfQpYR1w949aMGbkdjhtFibLSGSkJu7TA4PJQXPwfoaNQqW5w4D" ], "script": "base64:BgIECAISAAMAAmxpCQDMCAICAjYwCQDMCAICAjYxCQDMCAICAjYyCQDMCAICAjYzCQDMCAICAjY0CQDMCAICAjY1CQDMCAICAjY2CQDMCAICAjY3CQDMCAICAjY4CQDMCAICAjY5CQDMCAICAjcwCQDMCAICAjcxCQDMCAICAjcyCQDMCAICAjczCQDMCAICAjc0CQDMCAICAjc1CQDMCAICAjc2CQDMCAICAjc3CQDMCAICAjc4CQDMCAICAjc5CQDMCAICAjgwCQDMCAICAjgxCQDMCAICAjgyCQDMCAICAjgzCQDMCAICAjg0CQDMCAICAjg1CQDMCAICAjg2CQDMCAICAjg3CQDMCAICAjg4CQDMCAICAjg5CQDMCAICAjkwCQDMCAICAjkxCQDMCAICAjkyCQDMCAICAjkzCQDMCAICAjk0CQDMCAICAjk1CQDMCAICAjk2CQDMCAICAjk3CQDMCAICAjk4CQDMCAICAjk5CQDMCAICAzEwMAkAzAgCAgMxMDEJAMwIAgIDMTAyCQDMCAICAzEwMwkAzAgCAgMxMDQJAMwIAgIDMTA1CQDMCAICAzEwNgkAzAgCAgMxMDcJAMwIAgIDMTA4CQDMCAICAzEwOQkAzAgCAgMxMTAJAMwIAgIDMTExCQDMCAICAzExMgkAzAgCAgMxMTMJAMwIAgIDMTE0CQDMCAICAzExNQkAzAgCAgMxMTYJAMwIAgIDMTE3CQDMCAICAzExOAkAzAgCAgMxMTkJAMwIAgIDMTIwCQDMCAICAzEyMQkAzAgCAgMxMjIJAMwIAgIDMTIzCQDMCAICAzEyNAkAzAgCAgMxMjUJAMwIAgIDMTI2CQDMCAICAzEyNwkAzAgCAgMxMjgJAMwIAgIDMTI5CQDMCAICAzEzMAkAzAgCAgMxMzEJAMwIAgIDMTMyCQDMCAICAzEzMwkAzAgCAgMxMzQJAMwIAgIDMTM1CQDMCAICAzEzNgkAzAgCAgMxMzcJAMwIAgIDMTM4CQDMCAICAzEzOQkAzAgCAgMxNDAJAMwIAgIDMTQxCQDMCAICAzE0MgkAzAgCAgMxNDMJAMwIAgIDMTQ0CQDMCAICAzE0NQkAzAgCAgMxNDYJAMwIAgIDMTQ3CQDMCAICAzE0OAkAzAgCAgMxNDkJAMwIAgIDMTUwCQDMCAICAzE1MQkAzAgCAgMxNTIJAMwIAgIDMTUzCQDMCAICAzE1NAkAzAgCAgMxNTUJAMwIAgIDMTU2CQDMCAICAzE1NwkAzAgCAgMxNTgJAMwIAgIDMTU5CQDMCAICAzE2MAkAzAgCAgMxNjEJAMwIAgIDMTYyCQDMCAICAzE2MwkAzAgCAgMxNjQJAMwIAgIDMTY1CQDMCAICAzE2NgkAzAgCAgMxNjcJAMwIAgIDMTY4CQDMCAICAzE2OQkAzAgCAgMxNzAJAMwIAgIDMTcxCQDMCAICAzE3MgkAzAgCAgMxNzMJAMwIAgIDMTc0CQDMCAICAzE3NQkAzAgCAgMxNzYJAMwIAgIDMTc3CQDMCAICAzE3OAkAzAgCAgMxNzkJAMwIAgIDMTgwCQDMCAICAzE4MQkAzAgCAgMxODIJAMwIAgIDMTgzCQDMCAICAzE4NAkAzAgCAgMxODUJAMwIAgIDMTg2CQDMCAICAzE4NwkAzAgCAgMxODgJAMwIAgIDMTg5CQDMCAICAzE5MAkAzAgCAgMxOTEJAMwIAgIDMTkyCQDMCAICAzE5MwkAzAgCAgMxOTQJAMwIAgIDMTk1CQDMCAICAzE5NgkAzAgCAgMxOTcJAMwIAgIDMTk4CQDMCAICAzE5OQkAzAgCAgMyMDAJAMwIAgIDMjAxCQDMCAICAzIwMgkAzAgCAgMyMDMJAMwIAgIDMjA0CQDMCAICAzIwNQkAzAgCAgMyMDYJAMwIAgIDMjA3CQDMCAICAzIwOAkAzAgCAgMyMDkJAMwIAgIDMjEwCQDMCAICAzIxMQkAzAgCAgMyMTIJAMwIAgIDMjEzCQDMCAICAzIxNAkAzAgCAgMyMTUJAMwIAgIDMjE2CQDMCAICAzIxNwkAzAgCAgMyMTgJAMwIAgIDMjE5CQDMCAICAzIyMAkAzAgCAgMyMjEJAMwIAgIDMjIyCQDMCAICAzIyMwkAzAgCAgMyMjQJAMwIAgIDMjI1CQDMCAICAzIyNgkAzAgCAgMyMjcJAMwIAgIDMjI4CQDMCAICAzIyOQkAzAgCAgMyMzAJAMwIAgIDMjMxCQDMCAICAzIzMgkAzAgCAgMyMzMJAMwIAgIDMjM0CQDMCAICAzIzNQkAzAgCAgMyMzYJAMwIAgIDMjM3CQDMCAICAzIzOAkAzAgCAgMyMzkJAMwIAgIDMjQwCQDMCAICAzI0MQkAzAgCAgMy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", "height": 3705091, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 4mPNCKRmqFSDtXTQS2xVgfMdFmoxsiULPh5sZhiGZeg2 Next: HRDAL51GPEuaGDseiMWrsboXfqZE9E9UGLS5WZ9YR7DK Diff:
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 6 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | - | let li = [ | |
4 | + | let li = ["60", "61", "62", "63", "64", "65", "66", "67", "68", "69", "70", "71", "72", "73", "74", "75", "76", "77", "78", "79", "80", "81", "82", "83", "84", "85", "86", "87", "88", "89", "90", "91", "92", "93", "94", "95", "96", "97", "98", "99", "100", "101", "102", "103", "104", "105", "106", "107", "108", "109", "110", "111", "112", "113", "114", "115", "116", "117", "118", "119", "120", "121", "122", "123", "124", "125", "126", "127", "128", "129", "130", "131", "132", "133", "134", "135", "136", "137", "138", "139", "140", "141", "142", "143", "144", "145", "146", "147", "148", "149", "150", "151", "152", "153", "154", "155", "156", "157", "158", "159", "160", "161", "162", "163", "164", "165", "166", "167", "168", "169", "170", "171", "172", "173", "174", "175", "176", "177", "178", "179", "180", "181", "182", "183", "184", "185", "186", "187", "188", "189", "190", "191", "192", "193", "194", "195", "196", "197", "198", "199", "200", "201", "202", "203", "204", "205", "206", "207", "208", "209", "210", "211", "212", "213", "214", "215", "216", "217", "218", "219", "220", "221", "222", "223", "224", "225", "226", "227", "228", "229", "230", "231", "232", "233", "234", "235", "236", "237", "238", "239", "240", "241", "242", "243", "244", "245", "246", "247", "248", "249"] | |
5 | 5 | ||
6 | 6 | let bAddress = Address(base58'3PAeY7RgwuNUZNscGqahqJxFTFDkh7fbNwJ') | |
7 | + | ||
8 | + | func tryGetInteger (key) = match getInteger(bAddress, key) { | |
9 | + | case b: Int => | |
10 | + | b | |
11 | + | case _ => | |
12 | + | 0 | |
13 | + | } | |
14 | + | ||
7 | 15 | ||
8 | 16 | @Callable(i) | |
9 | 17 | func payBoostings () = { | |
10 | 18 | func f (accum,boostingId) = { | |
11 | - | let inv = invoke(bAddress, "payBoosting", [boostingId], nil) | |
12 | - | if ((inv == inv)) | |
13 | - | then accum | |
14 | - | else throw("Strict value is not equal to itself.") | |
19 | + | let blockReward = tryGetInteger((("boosting_" + boostingId) + "_blockAmount")) | |
20 | + | let lastHeight = tryGetInteger((("boosting_" + boostingId) + "_lastHeight")) | |
21 | + | let finishHeight = tryGetInteger((("boosting_" + boostingId) + "_finishHeight")) | |
22 | + | let toPay = ((min([finishHeight, height]) - lastHeight) * blockReward) | |
23 | + | if (if ((toPay > 0)) | |
24 | + | then (55 > accum) | |
25 | + | else false) | |
26 | + | then { | |
27 | + | let inv = invoke(bAddress, "payBoosting", [boostingId], nil) | |
28 | + | if ((inv == inv)) | |
29 | + | then (accum + 1) | |
30 | + | else throw("Strict value is not equal to itself.") | |
31 | + | } | |
32 | + | else accum | |
15 | 33 | } | |
16 | 34 | ||
17 | 35 | let result = { |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 6 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | - | let li = [ | |
4 | + | let li = ["60", "61", "62", "63", "64", "65", "66", "67", "68", "69", "70", "71", "72", "73", "74", "75", "76", "77", "78", "79", "80", "81", "82", "83", "84", "85", "86", "87", "88", "89", "90", "91", "92", "93", "94", "95", "96", "97", "98", "99", "100", "101", "102", "103", "104", "105", "106", "107", "108", "109", "110", "111", "112", "113", "114", "115", "116", "117", "118", "119", "120", "121", "122", "123", "124", "125", "126", "127", "128", "129", "130", "131", "132", "133", "134", "135", "136", "137", "138", "139", "140", "141", "142", "143", "144", "145", "146", "147", "148", "149", "150", "151", "152", "153", "154", "155", "156", "157", "158", "159", "160", "161", "162", "163", "164", "165", "166", "167", "168", "169", "170", "171", "172", "173", "174", "175", "176", "177", "178", "179", "180", "181", "182", "183", "184", "185", "186", "187", "188", "189", "190", "191", "192", "193", "194", "195", "196", "197", "198", "199", "200", "201", "202", "203", "204", "205", "206", "207", "208", "209", "210", "211", "212", "213", "214", "215", "216", "217", "218", "219", "220", "221", "222", "223", "224", "225", "226", "227", "228", "229", "230", "231", "232", "233", "234", "235", "236", "237", "238", "239", "240", "241", "242", "243", "244", "245", "246", "247", "248", "249"] | |
5 | 5 | ||
6 | 6 | let bAddress = Address(base58'3PAeY7RgwuNUZNscGqahqJxFTFDkh7fbNwJ') | |
7 | + | ||
8 | + | func tryGetInteger (key) = match getInteger(bAddress, key) { | |
9 | + | case b: Int => | |
10 | + | b | |
11 | + | case _ => | |
12 | + | 0 | |
13 | + | } | |
14 | + | ||
7 | 15 | ||
8 | 16 | @Callable(i) | |
9 | 17 | func payBoostings () = { | |
10 | 18 | func f (accum,boostingId) = { | |
11 | - | let inv = invoke(bAddress, "payBoosting", [boostingId], nil) | |
12 | - | if ((inv == inv)) | |
13 | - | then accum | |
14 | - | else throw("Strict value is not equal to itself.") | |
19 | + | let blockReward = tryGetInteger((("boosting_" + boostingId) + "_blockAmount")) | |
20 | + | let lastHeight = tryGetInteger((("boosting_" + boostingId) + "_lastHeight")) | |
21 | + | let finishHeight = tryGetInteger((("boosting_" + boostingId) + "_finishHeight")) | |
22 | + | let toPay = ((min([finishHeight, height]) - lastHeight) * blockReward) | |
23 | + | if (if ((toPay > 0)) | |
24 | + | then (55 > accum) | |
25 | + | else false) | |
26 | + | then { | |
27 | + | let inv = invoke(bAddress, "payBoosting", [boostingId], nil) | |
28 | + | if ((inv == inv)) | |
29 | + | then (accum + 1) | |
30 | + | else throw("Strict value is not equal to itself.") | |
31 | + | } | |
32 | + | else accum | |
15 | 33 | } | |
16 | 34 | ||
17 | 35 | let result = { | |
18 | 36 | let $l = li | |
19 | 37 | let $s = size($l) | |
20 | 38 | let $acc0 = 0 | |
21 | 39 | func $f0_1 ($a,$i) = if (($i >= $s)) | |
22 | 40 | then $a | |
23 | 41 | else f($a, $l[$i]) | |
24 | 42 | ||
25 | 43 | func $f0_2 ($a,$i) = if (($i >= $s)) | |
26 | 44 | then $a | |
27 | 45 | else throw("List size exceeds 55") | |
28 | 46 | ||
29 | 47 | $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($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) | |
30 | 48 | } | |
31 | 49 | if ((result == result)) | |
32 | 50 | then nil | |
33 | 51 | else throw("Strict value is not equal to itself.") | |
34 | 52 | } | |
35 | 53 | ||
36 | 54 | ||
37 | 55 | @Verifier(tx) | |
38 | 56 | func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) | |
39 | 57 |
github/deemru/w8io/0e76f2f 55.02 ms ◑