tx · ChRwMccoe1de7gNbYea5xusnEVaSq97uZEcVEafh5ov7 3PLJHro4tbUssVMHY538QqsVZWPVHTUpHir: -0.01000000 Waves 2023.05.05 12:16 [3629867] smart account 3PLJHro4tbUssVMHY538QqsVZWPVHTUpHir > SELF 0.00000000 Waves
{ "type": 13, "id": "ChRwMccoe1de7gNbYea5xusnEVaSq97uZEcVEafh5ov7", "fee": 1000000, "feeAssetId": null, "timestamp": 1683278258890, "version": 2, "chainId": 87, "sender": "3PLJHro4tbUssVMHY538QqsVZWPVHTUpHir", "senderPublicKey": "8er5GibY1hbf7RjN9rdnQW5Ua9xM7UtDohqbdEukAT7v", "proofs": [ "5PXEpTiNCh5mrJyq2rE4kdgZEV7RvPDiXE1ZxRx1YZn1VWDa33xEzbB4t8MWfZj7FmctkgmbLb1wVWywLYpy5hKE" ], "script": "base64:BgIJCAISBQoDCAgBBwAQTGFzdENvbnRlc3RJZEtleQIPbGFzdF9jb250ZXN0X2lkAA1Db250ZXN0UHJlZml4Aghjb250ZXN0XwAMU3RhdHVzX0RyYWZ0AgVkcmFmdAANU3RhdHVzX0FjdGl2ZQIGYWN0aXZlAAtTdGF0dXNfU3RvcAIEc3RvcAANU3RhdHVzX0RlbHRlZAIHZGVsZXRlZAEOY2FsY1ByaXplRm91bmQBCHBheW1lbnRzCgEEY2FsYwIFYWNjdW0EbmV4dAQJYXNzZXROYW1lBAckbWF0Y2gwCAUEbmV4dAdhc3NldElkAwkAAQIFByRtYXRjaDACCkJ5dGVWZWN0b3IEAXQFByRtYXRjaDAJANgEAQUBdAIFV0FWRVMDAwkAZgIJALECAQUJYXNzZXROYW1lAAAJAGYCCAUEbmV4dAZhbW91bnQAAAcJAM0IAgUFYWNjdW0JAKwCAgkArAICBQlhc3NldE5hbWUCAToJAKQDAQgFBG5leHQGYW1vdW50BQVhY2N1bQkAugkCCgACJGwFCHBheW1lbnRzCgACJHMJAJADAQUCJGwKAAUkYWNjMAUDbmlsCgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQRjYWxjAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAxMAkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKAgF8AQFpAQZjcmVhdGUDBG5hbWUEZGVzYwllbmRIZWlnaHQEDXByaXplRm91bmRTdHIJAQ5jYWxjUHJpemVGb3VuZAEIBQFpCHBheW1lbnRzAwkAAAIJALECAQUNcHJpemVGb3VuZFN0cgAACQACAQIRTm8gcGF5bWVudHMgZW1wdHkDCQAAAgkAsQIBBQRuYW1lAAAJAAIBAgpOYW1lIGVtcHR5AwkAAAIJALECAQUEZGVzYwAACQACAQIKRGVzYyBlbXB0eQMJAGYCBQZoZWlnaHQFCWVuZEhlaWdodAkAAgECEEludmFsaWQgZGF0ZSBlbmQECWNvbnRlc3RJZAkBC3ZhbHVlT3JFbHNlAgkAnwgBBRBMYXN0Q29udGVzdElkS2V5AAEJAJQKAgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgUNQ29udGVzdFByZWZpeAkApAMBBQljb250ZXN0SWQCBV9uYW1lBQRuYW1lCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICBQ1Db250ZXN0UHJlZml4CQCkAwEFCWNvbnRlc3RJZAIFX2Rlc2MFBGRlc2MJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkArAICBQ1Db250ZXN0UHJlZml4CQCkAwEFCWNvbnRlc3RJZAIKX2VuZEhlaWdodAUJZW5kSGVpZ2h0CQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICBQ1Db250ZXN0UHJlZml4CQCkAwEFCWNvbnRlc3RJZAIGX293bmVyCQClCAEIBQFpBmNhbGxlcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgUNQ29udGVzdFByZWZpeAkApAMBBQljb250ZXN0SWQCC19wcml6ZUZvdW5kBQ1wcml6ZUZvdW5kU3RyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICBQ1Db250ZXN0UHJlZml4CQCkAwEFCWNvbnRlc3RJZAIHX3N0YXR1cwUMU3RhdHVzX0RyYWZ0CQDMCAIJAQxJbnRlZ2VyRW50cnkCBRBMYXN0Q29udGVzdElkS2V5CQBkAgUJY29udGVzdElkAAEFA25pbAUJY29udGVzdElkAQJ0eAEGdmVyaWZ5AAkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAgFAnR4D3NlbmRlclB1YmxpY0tlebVo3Dk=", "height": 3629867, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: GC3nuBjfqgb1dVhqVYdFaGFnKLExD3rFkGerDPHPKVH6 Next: ePPXtX7Dztm4xosyPuYDoYRFbMxWQMkjppEYkxTD5Jw Diff:
Old | New | Differences | |
---|---|---|---|
58 | 58 | then throw("Invalid date end") | |
59 | 59 | else { | |
60 | 60 | let contestId = valueOrElse(getInteger(LastContestIdKey), 1) | |
61 | - | [StringEntry(((ContestPrefix + toString(contestId)) + "_name"), name), StringEntry(((ContestPrefix + toString(contestId)) + "_desc"), desc), IntegerEntry(((ContestPrefix + toString(contestId)) + "_endHeight"), endHeight), StringEntry(((ContestPrefix + toString(contestId)) + "_owner"), toString(i.caller)), StringEntry(((ContestPrefix + toString(contestId)) + "_prizeFound"), prizeFoundStr), StringEntry(((ContestPrefix + toString(contestId)) + "_status"), Status_Draft), IntegerEntry(LastContestIdKey, (contestId + 1))] | |
61 | + | $Tuple2([StringEntry(((ContestPrefix + toString(contestId)) + "_name"), name), StringEntry(((ContestPrefix + toString(contestId)) + "_desc"), desc), IntegerEntry(((ContestPrefix + toString(contestId)) + "_endHeight"), endHeight), StringEntry(((ContestPrefix + toString(contestId)) + "_owner"), toString(i.caller)), StringEntry(((ContestPrefix + toString(contestId)) + "_prizeFound"), prizeFoundStr), StringEntry(((ContestPrefix + toString(contestId)) + "_status"), Status_Draft), IntegerEntry(LastContestIdKey, (contestId + 1))], contestId) | |
62 | 62 | } | |
63 | 63 | } | |
64 | 64 |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 6 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let LastContestIdKey = "last_contest_id" | |
5 | 5 | ||
6 | 6 | let ContestPrefix = "contest_" | |
7 | 7 | ||
8 | 8 | let Status_Draft = "draft" | |
9 | 9 | ||
10 | 10 | let Status_Active = "active" | |
11 | 11 | ||
12 | 12 | let Status_Stop = "stop" | |
13 | 13 | ||
14 | 14 | let Status_Delted = "deleted" | |
15 | 15 | ||
16 | 16 | func calcPrizeFound (payments) = { | |
17 | 17 | func calc (accum,next) = { | |
18 | 18 | let assetName = match next.assetId { | |
19 | 19 | case t: ByteVector => | |
20 | 20 | toBase58String(t) | |
21 | 21 | case _ => | |
22 | 22 | "WAVES" | |
23 | 23 | } | |
24 | 24 | if (if ((size(assetName) > 0)) | |
25 | 25 | then (next.amount > 0) | |
26 | 26 | else false) | |
27 | 27 | then (accum :+ ((assetName + ":") + toString(next.amount))) | |
28 | 28 | else accum | |
29 | 29 | } | |
30 | 30 | ||
31 | 31 | makeString_2C({ | |
32 | 32 | let $l = payments | |
33 | 33 | let $s = size($l) | |
34 | 34 | let $acc0 = nil | |
35 | 35 | func $f0_1 ($a,$i) = if (($i >= $s)) | |
36 | 36 | then $a | |
37 | 37 | else calc($a, $l[$i]) | |
38 | 38 | ||
39 | 39 | func $f0_2 ($a,$i) = if (($i >= $s)) | |
40 | 40 | then $a | |
41 | 41 | else throw("List size exceeds 10") | |
42 | 42 | ||
43 | 43 | $f0_2($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) | |
44 | 44 | }, "|") | |
45 | 45 | } | |
46 | 46 | ||
47 | 47 | ||
48 | 48 | @Callable(i) | |
49 | 49 | func create (name,desc,endHeight) = { | |
50 | 50 | let prizeFoundStr = calcPrizeFound(i.payments) | |
51 | 51 | if ((size(prizeFoundStr) == 0)) | |
52 | 52 | then throw("No payments empty") | |
53 | 53 | else if ((size(name) == 0)) | |
54 | 54 | then throw("Name empty") | |
55 | 55 | else if ((size(desc) == 0)) | |
56 | 56 | then throw("Desc empty") | |
57 | 57 | else if ((height > endHeight)) | |
58 | 58 | then throw("Invalid date end") | |
59 | 59 | else { | |
60 | 60 | let contestId = valueOrElse(getInteger(LastContestIdKey), 1) | |
61 | - | [StringEntry(((ContestPrefix + toString(contestId)) + "_name"), name), StringEntry(((ContestPrefix + toString(contestId)) + "_desc"), desc), IntegerEntry(((ContestPrefix + toString(contestId)) + "_endHeight"), endHeight), StringEntry(((ContestPrefix + toString(contestId)) + "_owner"), toString(i.caller)), StringEntry(((ContestPrefix + toString(contestId)) + "_prizeFound"), prizeFoundStr), StringEntry(((ContestPrefix + toString(contestId)) + "_status"), Status_Draft), IntegerEntry(LastContestIdKey, (contestId + 1))] | |
61 | + | $Tuple2([StringEntry(((ContestPrefix + toString(contestId)) + "_name"), name), StringEntry(((ContestPrefix + toString(contestId)) + "_desc"), desc), IntegerEntry(((ContestPrefix + toString(contestId)) + "_endHeight"), endHeight), StringEntry(((ContestPrefix + toString(contestId)) + "_owner"), toString(i.caller)), StringEntry(((ContestPrefix + toString(contestId)) + "_prizeFound"), prizeFoundStr), StringEntry(((ContestPrefix + toString(contestId)) + "_status"), Status_Draft), IntegerEntry(LastContestIdKey, (contestId + 1))], contestId) | |
62 | 62 | } | |
63 | 63 | } | |
64 | 64 | ||
65 | 65 | ||
66 | 66 | @Verifier(tx) | |
67 | 67 | func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) | |
68 | 68 |
github/deemru/w8io/3ef1775 32.57 ms ◑