tx · FnsZGczRfLRYUpQ5Pg9zjdd3JC9GNCVjWVP6Uq8Nk1b 3N4ziXSMRverXyxHDUKKMR9MHXnB3TyU3Yh: -0.01000000 Waves 2023.04.18 14:06 [2539903] smart account 3N4ziXSMRverXyxHDUKKMR9MHXnB3TyU3Yh > SELF 0.00000000 Waves
{ "type": 13, "id": "FnsZGczRfLRYUpQ5Pg9zjdd3JC9GNCVjWVP6Uq8Nk1b", "fee": 1000000, "feeAssetId": null, "timestamp": 1681815991243, "version": 2, "chainId": 84, "sender": "3N4ziXSMRverXyxHDUKKMR9MHXnB3TyU3Yh", "senderPublicKey": "EU9obW1yVhR8qug3EmXPeew3DMagvJFQzY5Ku8bmcsU7", "proofs": [ "2J1qsHWKapyAay5ytcGuHcvxPCNSm4pcEXnMoMt2xgT4cCz8MCgZAJBsBtG5JidALt6grrm6jZ4Xcj22iGmLgMKM" ], "script": "base64:BgIHCAISAwoBCBAAA1NFUAICX18AEGNvbnRyYWN0RmlsZW5hbWUCCXRlc3QucmlkZQEIdGhyb3dFcnIBAXMJAAIBCQCsAgIJAKwCAgUQY29udHJhY3RGaWxlbmFtZQICOiAFAXMBGWtleUFjdGl2ZU1hbmFnZXJQdWJsaWNLZXkACQC5CQIJAMwIAgICJXMJAMwIAgIQbWFuYWdlclB1YmxpY0tleQUDbmlsBQNTRVABGmtleUN1cnJlbnRNYW5hZ2VyUHVibGljS2V5AAkAuQkCCQDMCAICAiVzCQDMCAICEWtleUN1cnJlbnRNYW5hZ2VyBQNuaWwFA1NFUAEaa2V5UGVuZGluZ01hbmFnZXJQdWJsaWNLZXkACQC5CQIJAMwIAgICJXMJAMwIAgIXcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkFA25pbAUDU0VQARprZXlTZXROZXdNYW5hZ2VyVm90ZVByZWZpeAEQbWFuYWdlclB1YmxpY0tleQkAuQkCCQDMCAICBiVzJXMlcwkAzAgCAgpzZXRNYW5hZ2VyCQDMCAIFEG1hbmFnZXJQdWJsaWNLZXkFA25pbAUDU0VQARRrZXlTZXROZXdNYW5hZ2VyVm90ZQIQbWFuYWdlclB1YmxpY0tleQVhZG1pbgkAuQkCCQDMCAIJARprZXlTZXROZXdNYW5hZ2VyVm90ZVByZWZpeAEFEG1hbmFnZXJQdWJsaWNLZXkJAMwIAgUFYWRtaW4FA25pbAUDU0VQARRnZXRTZXROZXdNYW5hZ2VyVm90ZQIFYWRtaW4QbWFuYWdlclB1YmxpY0tleQkBC3ZhbHVlT3JFbHNlAgkAnwgBCQEUa2V5U2V0TmV3TWFuYWdlclZvdGUCBQVhZG1pbgUQbWFuYWdlclB1YmxpY0tleQAAAQ9hZG1pbkFkcmVzc0xpc3QACQC5CQIJAMwIAgICJXMJAMwIAgIQYWRtaW5BZGRyZXNzTGlzdAUDbmlsBQNTRVABDWdldEFkbWluc0xpc3QACQC1CQIJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwkBD2FkbWluQWRyZXNzTGlzdAACAAUDU0VQAQ1pc0luQWRtaW5MaXN0AQdhZGRyZXNzBAckbWF0Y2gwCQDPCAIJAQ1nZXRBZG1pbnNMaXN0AAUHYWRkcmVzcwMJAAECBQckbWF0Y2gwAgNJbnQEAXQFByRtYXRjaDAGBwESZ2VuVm90ZXNLZXlzSGVscGVyAgNsc3QMYWRtaW5BZGRyZXNzBAskdDAxMzE5MTM0NQUDbHN0BAZyZXN1bHQIBQskdDAxMzE5MTM0NQJfMQQGcHJlZml4CAULJHQwMTMxOTEzNDUCXzIJAJQKAgkAzQgCBQZyZXN1bHQJALkJAgkAzAgCBQZwcmVmaXgJAMwIAgUMYWRtaW5BZGRyZXNzBQNuaWwFA1NFUAUGcHJlZml4AQxnZW5Wb3Rlc0tleXMBCWtleVByZWZpeAQJYWRtaW5MaXN0CQEPYWRtaW5BZHJlc3NMaXN0AAoAAiRsCQENZ2V0QWRtaW5zTGlzdAAKAAIkcwkAkAMBBQIkbAoABSRhY2MwCQCUCgIFA25pbAUJa2V5UHJlZml4CgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJARJnZW5Wb3Rlc0tleXNIZWxwZXICBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDEwCQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoBEGNvdW50Vm90ZXNIZWxwZXICBnJlc3VsdAd2b3RlS2V5CQBkAgUGcmVzdWx0CQELdmFsdWVPckVsc2UCCQCfCAEFB3ZvdGVLZXkAAAEKY291bnRWb3RlcwEGcHJlZml4BAV2b3RlcwgJAQxnZW5Wb3Rlc0tleXMBBQZwcmVmaXgCXzEKAAIkbAUFdm90ZXMKAAIkcwkAkAMBBQIkbAoABSRhY2MwAAAKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBEGNvdW50Vm90ZXNIZWxwZXICBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDEwCQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoBAWkBEHZvdGVGb3JOZXdNYW5nZXIBE25ld01hbmFnZXJQdWJsaWNLZXkEE2NhbGxlckFkZHJlc3NTdHJpbmcJANgEAQgIBQFpBmNhbGxlcgVieXRlcwMJAQ1pc0luQWRtaW5MaXN0AQUTY2FsbGVyQWRkcmVzc1N0cmluZwUDbmlsCQEIdGhyb3dFcnIBCQCsAgIFE2NhbGxlckFkZHJlc3NTdHJpbmcCEzogbm90IGluIEFkbWluIGxpc3QAiP69KQ==", "height": 2539903, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 4RVQyaykC1p69SkvskeQPMW3Adudx1kM9scsdxQG6XsU Next: CKXTy7STEeMVoxfMEuiYmgDHtokpGxXWFtQuzRWWcqNK Diff:
Old | New | Differences | |
---|---|---|---|
65 | 65 | } | |
66 | 66 | ||
67 | 67 | ||
68 | + | func countVotesHelper (result,voteKey) = (result + valueOrElse(getInteger(voteKey), 0)) | |
69 | + | ||
70 | + | ||
71 | + | func countVotes (prefix) = { | |
72 | + | let votes = genVotesKeys(prefix)._1 | |
73 | + | let $l = votes | |
74 | + | let $s = size($l) | |
75 | + | let $acc0 = 0 | |
76 | + | func $f0_1 ($a,$i) = if (($i >= $s)) | |
77 | + | then $a | |
78 | + | else countVotesHelper($a, $l[$i]) | |
79 | + | ||
80 | + | func $f0_2 ($a,$i) = if (($i >= $s)) | |
81 | + | then $a | |
82 | + | else throw("List size exceeds 10") | |
83 | + | ||
84 | + | $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) | |
85 | + | } | |
86 | + | ||
87 | + | ||
68 | 88 | @Callable(i) | |
69 | 89 | func voteForNewManger (newManagerPublicKey) = { | |
70 | 90 | let callerAddressString = toBase58String(i.caller.bytes) |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 6 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let SEP = "__" | |
5 | 5 | ||
6 | 6 | let contractFilename = "test.ride" | |
7 | 7 | ||
8 | 8 | func throwErr (s) = throw(((contractFilename + ": ") + s)) | |
9 | 9 | ||
10 | 10 | ||
11 | 11 | func keyActiveManagerPublicKey () = makeString(["%s", "managerPublicKey"], SEP) | |
12 | 12 | ||
13 | 13 | ||
14 | 14 | func keyCurrentManagerPublicKey () = makeString(["%s", "keyCurrentManager"], SEP) | |
15 | 15 | ||
16 | 16 | ||
17 | 17 | func keyPendingManagerPublicKey () = makeString(["%s", "pendingManagerPublicKey"], SEP) | |
18 | 18 | ||
19 | 19 | ||
20 | 20 | func keySetNewManagerVotePrefix (managerPublicKey) = makeString(["%s%s%s", "setManager", managerPublicKey], SEP) | |
21 | 21 | ||
22 | 22 | ||
23 | 23 | func keySetNewManagerVote (managerPublicKey,admin) = makeString([keySetNewManagerVotePrefix(managerPublicKey), admin], SEP) | |
24 | 24 | ||
25 | 25 | ||
26 | 26 | func getSetNewManagerVote (admin,managerPublicKey) = valueOrElse(getInteger(keySetNewManagerVote(admin, managerPublicKey)), 0) | |
27 | 27 | ||
28 | 28 | ||
29 | 29 | func adminAdressList () = makeString(["%s", "adminAddressList"], SEP) | |
30 | 30 | ||
31 | 31 | ||
32 | 32 | func getAdminsList () = split(valueOrElse(getString(this, adminAdressList()), ""), SEP) | |
33 | 33 | ||
34 | 34 | ||
35 | 35 | func isInAdminList (address) = match indexOf(getAdminsList(), address) { | |
36 | 36 | case t: Int => | |
37 | 37 | true | |
38 | 38 | case _ => | |
39 | 39 | false | |
40 | 40 | } | |
41 | 41 | ||
42 | 42 | ||
43 | 43 | func genVotesKeysHelper (lst,adminAddress) = { | |
44 | 44 | let $t013191345 = lst | |
45 | 45 | let result = $t013191345._1 | |
46 | 46 | let prefix = $t013191345._2 | |
47 | 47 | $Tuple2((result :+ makeString([prefix, adminAddress], SEP)), prefix) | |
48 | 48 | } | |
49 | 49 | ||
50 | 50 | ||
51 | 51 | func genVotesKeys (keyPrefix) = { | |
52 | 52 | let adminList = adminAdressList() | |
53 | 53 | let $l = getAdminsList() | |
54 | 54 | let $s = size($l) | |
55 | 55 | let $acc0 = $Tuple2(nil, keyPrefix) | |
56 | 56 | func $f0_1 ($a,$i) = if (($i >= $s)) | |
57 | 57 | then $a | |
58 | 58 | else genVotesKeysHelper($a, $l[$i]) | |
59 | 59 | ||
60 | 60 | func $f0_2 ($a,$i) = if (($i >= $s)) | |
61 | 61 | then $a | |
62 | 62 | else throw("List size exceeds 10") | |
63 | 63 | ||
64 | 64 | $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) | |
65 | 65 | } | |
66 | 66 | ||
67 | 67 | ||
68 | + | func countVotesHelper (result,voteKey) = (result + valueOrElse(getInteger(voteKey), 0)) | |
69 | + | ||
70 | + | ||
71 | + | func countVotes (prefix) = { | |
72 | + | let votes = genVotesKeys(prefix)._1 | |
73 | + | let $l = votes | |
74 | + | let $s = size($l) | |
75 | + | let $acc0 = 0 | |
76 | + | func $f0_1 ($a,$i) = if (($i >= $s)) | |
77 | + | then $a | |
78 | + | else countVotesHelper($a, $l[$i]) | |
79 | + | ||
80 | + | func $f0_2 ($a,$i) = if (($i >= $s)) | |
81 | + | then $a | |
82 | + | else throw("List size exceeds 10") | |
83 | + | ||
84 | + | $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) | |
85 | + | } | |
86 | + | ||
87 | + | ||
68 | 88 | @Callable(i) | |
69 | 89 | func voteForNewManger (newManagerPublicKey) = { | |
70 | 90 | let callerAddressString = toBase58String(i.caller.bytes) | |
71 | 91 | if (isInAdminList(callerAddressString)) | |
72 | 92 | then nil | |
73 | 93 | else throwErr((callerAddressString + ": not in Admin list")) | |
74 | 94 | } | |
75 | 95 | ||
76 | 96 |
github/deemru/w8io/026f985 23.83 ms ◑