tx · BescxwT5EBaJJgmZDNcmeUhedK437EM9giEP1LCuwLvz 3PAPVqsf4rWzHTS1tKCdMBdNB5TU79dVk4G: -0.00900000 Waves 2022.08.11 14:10 [3245221] smart account 3PAPVqsf4rWzHTS1tKCdMBdNB5TU79dVk4G > SELF 0.00000000 Waves
{ "type": 13, "id": "BescxwT5EBaJJgmZDNcmeUhedK437EM9giEP1LCuwLvz", "fee": 900000, "feeAssetId": null, "timestamp": 1660216271466, "version": 2, "chainId": 87, "sender": "3PAPVqsf4rWzHTS1tKCdMBdNB5TU79dVk4G", "senderPublicKey": "FRchqWYnPf1f9jMJpVkvBwtBXKqqNkRxpXFqBbFP4r5Z", "proofs": [ "31rqh2ZpeW74tgBBADEvEBj9mfphQQ2Luc3ow8YPtGaM899jf4dXJ3vQ1GeFgDPSq1T1ZwJyeAYd8piZEBbES3N5" ], "script": "base64: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", "height": 3245221, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: 7aCduuFsxJJVd4MuXJgUZKu2CutBLzQh4KtQK1xmVeH2 Full:
Old | New | Differences | |
---|---|---|---|
1 | - | # no script | |
1 | + | {-# STDLIB_VERSION 5 #-} | |
2 | + | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | + | {-# CONTENT_TYPE DAPP #-} | |
4 | + | func tryGetInteger (key) = match getInteger(this, key) { | |
5 | + | case b: Int => | |
6 | + | b | |
7 | + | case _ => | |
8 | + | 0 | |
9 | + | } | |
10 | + | ||
11 | + | ||
12 | + | func tryGetString (key) = match getString(this, key) { | |
13 | + | case b: String => | |
14 | + | b | |
15 | + | case _ => | |
16 | + | "" | |
17 | + | } | |
18 | + | ||
19 | + | ||
20 | + | func getAssetString (assetId) = match assetId { | |
21 | + | case b: ByteVector => | |
22 | + | toBase58String(b) | |
23 | + | case _ => | |
24 | + | "WAVES" | |
25 | + | } | |
26 | + | ||
27 | + | ||
28 | + | func getAssetBytes (assetIdStr) = if ((assetIdStr == "WAVES")) | |
29 | + | then unit | |
30 | + | else fromBase58String(assetIdStr) | |
31 | + | ||
32 | + | ||
33 | + | func payBoostingResult (boostingId) = { | |
34 | + | let lastHeight = tryGetInteger((("boosting_" + boostingId) + "_lastHeight")) | |
35 | + | let blockReward = tryGetInteger((("boosting_" + boostingId) + "_blockAmount")) | |
36 | + | let toPay = ((height - lastHeight) * blockReward) | |
37 | + | [IntegerEntry((("boosting_" + boostingId) + "_lastHeight"), height), ScriptTransfer(addressFromStringValue(tryGetString((("boosting_" + boostingId) + "_poolId"))), toPay, fromBase58String(tryGetString((("boosting_" + boostingId) + "_assetId"))))] | |
38 | + | } | |
39 | + | ||
40 | + | ||
41 | + | @Callable(i) | |
42 | + | func addBoosting (poolId,days) = { | |
43 | + | let fullAmount = i.payments[0].amount | |
44 | + | let assetId = getAssetString(i.payments[0].assetId) | |
45 | + | let newBoostingsAmount = (tryGetInteger("global_boostingsAmount") + 1) | |
46 | + | let boostingId = toString(newBoostingsAmount) | |
47 | + | if ((addressFromString(poolId) == unit)) | |
48 | + | then throw("incorrect pool address") | |
49 | + | 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)] | |
50 | + | } | |
51 | + | ||
52 | + | ||
53 | + | ||
54 | + | @Callable(i) | |
55 | + | func payBoostings () = { | |
56 | + | func f (accum,next) = (accum ++ payBoostingResult(toString(next))) | |
57 | + | ||
58 | + | 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] | |
59 | + | let $l = li | |
60 | + | let $s = size($l) | |
61 | + | let $acc0 = nil | |
62 | + | func $f0_1 ($a,$i) = if (($i >= $s)) | |
63 | + | then $a | |
64 | + | else f($a, $l[$i]) | |
65 | + | ||
66 | + | func $f0_2 ($a,$i) = if (($i >= $s)) | |
67 | + | then $a | |
68 | + | else throw("List size exceeds 35") | |
69 | + | ||
70 | + | $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) | |
71 | + | } | |
72 | + | ||
73 | + | ||
74 | + | @Verifier(tx) | |
75 | + | func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) | |
76 | + |
github/deemru/w8io/3ef1775 31.23 ms ◑