tx · GsD4d3LYof1YEMvpY3Hzun1XuaSuwygvoRQsjbxTsTJk 3N4ziXSMRverXyxHDUKKMR9MHXnB3TyU3Yh: -0.01000000 Waves 2023.04.18 17:23 [2540095] smart account 3N4ziXSMRverXyxHDUKKMR9MHXnB3TyU3Yh > SELF 0.00000000 Waves
{ "type": 13, "id": "GsD4d3LYof1YEMvpY3Hzun1XuaSuwygvoRQsjbxTsTJk", "fee": 1000000, "feeAssetId": null, "timestamp": 1681827897162, "version": 2, "chainId": 84, "sender": "3N4ziXSMRverXyxHDUKKMR9MHXnB3TyU3Yh", "senderPublicKey": "EU9obW1yVhR8qug3EmXPeew3DMagvJFQzY5Ku8bmcsU7", "proofs": [ "4bHFQ6ZmMcZcoQDu6BNPBStkxfKckq4f5kMjCU52wx4zrmwEzmTvuEEFo2fFTt36sCReE75rRjWZnzHg6TnQ7xNJ" ], "script": "base64:BgINCAISABIDCgEIEgASABgAA1NFUAICX18AEGNvbnRyYWN0RmlsZW5hbWUCCXRlc3QucmlkZQEIdGhyb3dFcnIBAXMJAAIBCQCsAgIJAKwCAgUQY29udHJhY3RGaWxlbmFtZQICOiAFAXMBGWtleUFjdGl2ZU1hbmFnZXJQdWJsaWNLZXkACQC5CQIJAMwIAgICJXMJAMwIAgIQbWFuYWdlclB1YmxpY0tleQUDbmlsBQNTRVABGmtleVBlbmRpbmdNYW5hZ2VyUHVibGljS2V5AAkAuQkCCQDMCAICAiVzCQDMCAICF3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5BQNuaWwFA1NFUAEdcGVuZGluZ01hbmFnZXJQdWJsaWNLZXlPclVuaXQABAckbWF0Y2gwCQCiCAEJARprZXlQZW5kaW5nTWFuYWdlclB1YmxpY0tleQADCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFzBQckbWF0Y2gwCQDZBAEFAXMDCQABAgUHJG1hdGNoMAIEVW5pdAUEdW5pdAkAAgECC01hdGNoIGVycm9yARprZXlTZXROZXdNYW5hZ2VyVm90ZVByZWZpeAEQbWFuYWdlclB1YmxpY0tleQkAuQkCCQDMCAICBiVzJXMlcwkAzAgCAgpzZXRNYW5hZ2VyCQDMCAIFEG1hbmFnZXJQdWJsaWNLZXkFA25pbAUDU0VQARRrZXlTZXROZXdNYW5hZ2VyVm90ZQIQbWFuYWdlclB1YmxpY0tleQVhZG1pbgkAuQkCCQDMCAIJARprZXlTZXROZXdNYW5hZ2VyVm90ZVByZWZpeAEFEG1hbmFnZXJQdWJsaWNLZXkJAMwIAgUFYWRtaW4FA25pbAUDU0VQARRnZXRTZXROZXdNYW5hZ2VyVm90ZQIQbWFuYWdlclB1YmxpY0tleQVhZG1pbgkBC3ZhbHVlT3JFbHNlAgkAnwgBCQEUa2V5U2V0TmV3TWFuYWdlclZvdGUCBRBtYW5hZ2VyUHVibGljS2V5BQVhZG1pbgAAAR5rZXlEZWFjdGl2YXRlTWFuYWdlclZvdGVQcmVmaXgACQC5CQIJAMwIAgIEJXMlcwkAzAgCAhFkZWFjdGl2YXRlTWFuYWdlcgUDbmlsBQNTRVABGGtleURlYWN0aXZhdGVNYW5hZ2VyVm90ZQEFYWRtaW4JALkJAgkAzAgCCQEea2V5RGVhY3RpdmF0ZU1hbmFnZXJWb3RlUHJlZml4AAkAzAgCBQVhZG1pbgUDbmlsBQNTRVABGGdldERlYWN0aXZhdGVNYW5hZ2VyVm90ZQEFYWRtaW4JAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBGGtleURlYWN0aXZhdGVNYW5hZ2VyVm90ZQEFBWFkbWluAAABHGtleUFjdGl2YXRlTWFuYWdlclZvdGVQcmVmaXgACQC5CQIJAMwIAgIEJXMlcwkAzAgCAg9hY3RpdmF0ZU1hbmFnZXIFA25pbAUDU0VQARZrZXlBY3RpdmF0ZU1hbmFnZXJWb3RlAQVhZG1pbgkAuQkCCQDMCAIJARxrZXlBY3RpdmF0ZU1hbmFnZXJWb3RlUHJlZml4AAkAzAgCBQVhZG1pbgUDbmlsBQNTRVABFmdldEFjdGl2YXRlTWFuYWdlclZvdGUBBWFkbWluCQELdmFsdWVPckVsc2UCCQCfCAEJARZrZXlBY3RpdmF0ZU1hbmFnZXJWb3RlAQUFYWRtaW4AAAEPYWRtaW5BZHJlc3NMaXN0AAkAuQkCCQDMCAICAiVzCQDMCAICEGFkbWluQWRkcmVzc0xpc3QFA25pbAUDU0VQAQ1nZXRBZG1pbnNMaXN0AAkAtQkCCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMJAQ9hZG1pbkFkcmVzc0xpc3QAAgAFA1NFUAENaXNJbkFkbWluTGlzdAEHYWRkcmVzcwQHJG1hdGNoMAkAzwgCCQENZ2V0QWRtaW5zTGlzdAAFB2FkZHJlc3MDCQABAgUHJG1hdGNoMAIDSW50BAF0BQckbWF0Y2gwBgcBEmdlblZvdGVzS2V5c0hlbHBlcgIDbHN0DGFkbWluQWRkcmVzcwQLJHQwMjE2NDIxOTAFA2xzdAQGcmVzdWx0CAULJHQwMjE2NDIxOTACXzEEBnByZWZpeAgFCyR0MDIxNjQyMTkwAl8yCQCUCgIJAM0IAgUGcmVzdWx0CQC5CQIJAMwIAgUGcHJlZml4CQDMCAIFDGFkbWluQWRkcmVzcwUDbmlsBQNTRVAFBnByZWZpeAEMZ2VuVm90ZXNLZXlzAQlrZXlQcmVmaXgECWFkbWluTGlzdAkBD2FkbWluQWRyZXNzTGlzdAAKAAIkbAkBDWdldEFkbWluc0xpc3QACgACJHMJAJADAQUCJGwKAAUkYWNjMAkAlAoCBQNuaWwFCWtleVByZWZpeAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQESZ2VuVm90ZXNLZXlzSGVscGVyAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAxMAkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKARBjb3VudFZvdGVzSGVscGVyAgZyZXN1bHQHdm90ZUtleQkAZAIFBnJlc3VsdAkBC3ZhbHVlT3JFbHNlAgkAnwgBBQd2b3RlS2V5AAABCmNvdW50Vm90ZXMBBnByZWZpeAQFdm90ZXMICQEMZ2VuVm90ZXNLZXlzAQUGcHJlZml4Al8xCgACJGwFBXZvdGVzCgACJHMJAJADAQUCJGwKAAUkYWNjMAAACgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJARBjb3VudFZvdGVzSGVscGVyAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAxMAkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKARBjbGVhclZvdGVzSGVscGVyAgZyZXN1bHQDa2V5CQDNCAIFBnJlc3VsdAkBC0RlbGV0ZUVudHJ5AQUDa2V5ARRnZXRDbGVhclZvdGVzRW50cmllcwEGcHJlZml4BAV2b3RlcwgJAQxnZW5Wb3Rlc0tleXMBBQZwcmVmaXgCXzEKAAIkbAUFdm90ZXMKAAIkcwkAkAMBBQIkbAoABSRhY2MwBQNuaWwKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBEGNsZWFyVm90ZXNIZWxwZXICBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDEwCQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoEAWkBDmNvbmZpcm1NYW5hZ2VyAAQCcG0JAR1wZW5kaW5nTWFuYWdlclB1YmxpY0tleU9yVW5pdAAEBWhhc1BNAwkBCWlzRGVmaW5lZAEFAnBtBgkBCHRocm93RXJyAQISbm8gcGVuZGluZyBtYW5hZ2VyAwkAAAIFBWhhc1BNBQVoYXNQTQQHY2hlY2tQTQMJAAACCAUBaQ9jYWxsZXJQdWJsaWNLZXkJAQV2YWx1ZQEFAnBtBgkBCHRocm93RXJyAQIbeW91IGFyZSBub3QgcGVuZGluZyBtYW5hZ2VyAwkAAAIFB2NoZWNrUE0FB2NoZWNrUE0JAMwIAgkBC1N0cmluZ0VudHJ5AgkBGWtleUFjdGl2ZU1hbmFnZXJQdWJsaWNLZXkACQDYBAEJAQV2YWx1ZQEFAnBtBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEQdm90ZUZvck5ld01hbmdlcgETbmV3TWFuYWdlclB1YmxpY0tleQQTY2FsbGVyQWRkcmVzc1N0cmluZwkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzAwkBDWlzSW5BZG1pbkxpc3QBBRNjYWxsZXJBZGRyZXNzU3RyaW5nAwkAAAIJARRnZXRTZXROZXdNYW5hZ2VyVm90ZQIFE25ld01hbmFnZXJQdWJsaWNLZXkFE2NhbGxlckFkZHJlc3NTdHJpbmcAAQkBCHRocm93RXJyAQkArAICCQCsAgIJAKwCAgkArAICAglBZGRyZXNzOiAFE2NhbGxlckFkZHJlc3NTdHJpbmcCDSBOZXdNYW5hZ2VyOiAFE25ld01hbmFnZXJQdWJsaWNLZXkCJSB2b3RlRm9yTmV3TWFuZ2VyKCkgeW91IGFscmVhZHkgdm90ZWQEBXZvdGVzCQEKY291bnRWb3RlcwEJARprZXlTZXROZXdNYW5hZ2VyVm90ZVByZWZpeAEFE25ld01hbmFnZXJQdWJsaWNLZXkDCQBnAgkAZAIFBXZvdGVzAAEAAgQRY2xlYXJWb3Rlc0VudHJpZXMJARRnZXRDbGVhclZvdGVzRW50cmllcwEJARprZXlTZXROZXdNYW5hZ2VyVm90ZVByZWZpeAEFE25ld01hbmFnZXJQdWJsaWNLZXkJAM4IAgURY2xlYXJWb3Rlc0VudHJpZXMJAMwIAgkBC1N0cmluZ0VudHJ5AgkBGmtleVBlbmRpbmdNYW5hZ2VyUHVibGljS2V5AAUTbmV3TWFuYWdlclB1YmxpY0tleQUDbmlsCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEUa2V5U2V0TmV3TWFuYWdlclZvdGUCBRNuZXdNYW5hZ2VyUHVibGljS2V5BRNjYWxsZXJBZGRyZXNzU3RyaW5nAAEFA25pbAkBCHRocm93RXJyAQkArAICCQCsAgICCUFkZHJlc3M6IAUTY2FsbGVyQWRkcmVzc1N0cmluZwISIG5vdCBpbiBBZG1pbiBsaXN0AWkBEWRlYWN0aXZhdGVNYW5hZ2VyAAQTY2FsbGVyQWRkcmVzc1N0cmluZwkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzAwkBDWlzSW5BZG1pbkxpc3QBBRNjYWxsZXJBZGRyZXNzU3RyaW5nAwkAAAIJARhnZXREZWFjdGl2YXRlTWFuYWdlclZvdGUBBRNjYWxsZXJBZGRyZXNzU3RyaW5nAAEJAQh0aHJvd0VycgEJAKwCAgkArAICAglBZGRyZXNzOiAFE2NhbGxlckFkZHJlc3NTdHJpbmcCJiBkZWFjdGl2YXRlTWFuYWdlcigpIHlvdSBhbHJlYWR5IHZvdGVkBAV2b3RlcwkBCmNvdW50Vm90ZXMBCQEea2V5RGVhY3RpdmF0ZU1hbmFnZXJWb3RlUHJlZml4AAMJAGcCCQBkAgUFdm90ZXMAAQABBBFjbGVhclZvdGVzRW50cmllcwkBFGdldENsZWFyVm90ZXNFbnRyaWVzAQkBHmtleURlYWN0aXZhdGVNYW5hZ2VyVm90ZVByZWZpeAAJAM4IAgURY2xlYXJWb3Rlc0VudHJpZXMJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBGWtleUFjdGl2ZU1hbmFnZXJQdWJsaWNLZXkABQNuaWwJAMwIAgkBDEludGVnZXJFbnRyeQIJARhrZXlEZWFjdGl2YXRlTWFuYWdlclZvdGUBBRNjYWxsZXJBZGRyZXNzU3RyaW5nAAEFA25pbAkBCHRocm93RXJyAQkArAICCQCsAgICCUFkZHJlc3M6IAUTY2FsbGVyQWRkcmVzc1N0cmluZwISIG5vdCBpbiBBZG1pbiBsaXN0AWkBD2FjdGl2YXRlTWFuYWdlcgAEE2NhbGxlckFkZHJlc3NTdHJpbmcJANgEAQgIBQFpBmNhbGxlcgVieXRlcwQUcGVuZGluZ01hbmFnZXJTdHJpbmcJARFAZXh0ck5hdGl2ZSgxMDU4KQEJARprZXlQZW5kaW5nTWFuYWdlclB1YmxpY0tleQADCQENaXNJbkFkbWluTGlzdAEFE2NhbGxlckFkZHJlc3NTdHJpbmcDCQAAAgkBFmdldEFjdGl2YXRlTWFuYWdlclZvdGUBBRNjYWxsZXJBZGRyZXNzU3RyaW5nAAEJAQh0aHJvd0VycgEJAKwCAgkArAICAglBZGRyZXNzOiAFE2NhbGxlckFkZHJlc3NTdHJpbmcCJCBhY3RpdmF0ZU1hbmFnZXIoKSB5b3UgYWxyZWFkeSB2b3RlZAQFdm90ZXMJAQpjb3VudFZvdGVzAQkBHGtleUFjdGl2YXRlTWFuYWdlclZvdGVQcmVmaXgAAwkAZwIJAGQCBQV2b3RlcwABAAIEEWNsZWFyVm90ZXNFbnRyaWVzCQEUZ2V0Q2xlYXJWb3Rlc0VudHJpZXMBCQEca2V5QWN0aXZhdGVNYW5hZ2VyVm90ZVByZWZpeAAJAM4IAgURY2xlYXJWb3Rlc0VudHJpZXMJAMwIAgkBC1N0cmluZ0VudHJ5AgkBGWtleUFjdGl2ZU1hbmFnZXJQdWJsaWNLZXkABRRwZW5kaW5nTWFuYWdlclN0cmluZwUDbmlsCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEWa2V5QWN0aXZhdGVNYW5hZ2VyVm90ZQEFE2NhbGxlckFkZHJlc3NTdHJpbmcAAQUDbmlsCQEIdGhyb3dFcnIBCQCsAgIJAKwCAgIJQWRkcmVzczogBRNjYWxsZXJBZGRyZXNzU3RyaW5nAhIgbm90IGluIEFkbWluIGxpc3QAkuYW7w==", "height": 2540095, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: AR6YkGR42shTBWuk6u8eBmFfXR5oPExJkGxYXmv6iGzo Next: CbYhGEjzPX1JjdCuyLLsou7jLwXwBGooHPFCbrykkgar Diff:
Old | New | Differences | |
---|---|---|---|
45 | 45 | func p (l) = valueOrElse(getInteger(o(l)), 0) | |
46 | 46 | ||
47 | 47 | ||
48 | - | func q () = makeString(["%s", " | |
48 | + | func q () = makeString(["%s%s", "activateManager"], a) | |
49 | 49 | ||
50 | 50 | ||
51 | - | func r () = | |
51 | + | func r (l) = makeString([q(), l], a) | |
52 | 52 | ||
53 | 53 | ||
54 | - | func s (t) = { | |
55 | - | let h = indexOf(r(), t) | |
54 | + | func s (l) = valueOrElse(getInteger(r(l)), 0) | |
55 | + | ||
56 | + | ||
57 | + | func t () = makeString(["%s", "adminAddressList"], a) | |
58 | + | ||
59 | + | ||
60 | + | func u () = split(valueOrElse(getString(this, t()), ""), a) | |
61 | + | ||
62 | + | ||
63 | + | func v (w) = { | |
64 | + | let h = indexOf(u(), w) | |
56 | 65 | if ($isInstanceOf(h, "Int")) | |
57 | 66 | then { | |
58 | - | let | |
67 | + | let x = h | |
59 | 68 | true | |
60 | 69 | } | |
61 | 70 | else false | |
62 | 71 | } | |
63 | 72 | ||
64 | 73 | ||
65 | - | func | |
66 | - | let | |
67 | - | let | |
68 | - | let | |
69 | - | $Tuple2(( | |
74 | + | func y (z,A) = { | |
75 | + | let B = z | |
76 | + | let C = B._1 | |
77 | + | let D = B._2 | |
78 | + | $Tuple2((C :+ makeString([D, A], a)), D) | |
70 | 79 | } | |
71 | 80 | ||
72 | 81 | ||
73 | - | func | |
74 | - | let | |
75 | - | let | |
76 | - | let | |
77 | - | let | |
78 | - | func | |
79 | - | then | |
80 | - | else | |
82 | + | func E (F) = { | |
83 | + | let G = t() | |
84 | + | let H = u() | |
85 | + | let I = size(H) | |
86 | + | let J = $Tuple2(nil, F) | |
87 | + | func K (L,M) = if ((M >= I)) | |
88 | + | then L | |
89 | + | else y(L, H[M]) | |
81 | 90 | ||
82 | - | func | |
83 | - | then | |
91 | + | func N (L,M) = if ((M >= I)) | |
92 | + | then L | |
84 | 93 | else throw("List size exceeds 10") | |
85 | 94 | ||
86 | - | K( | |
95 | + | N(K(K(K(K(K(K(K(K(K(K(J, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10) | |
87 | 96 | } | |
88 | 97 | ||
89 | 98 | ||
90 | - | func | |
99 | + | func O (C,P) = (C + valueOrElse(getInteger(P), 0)) | |
91 | 100 | ||
92 | 101 | ||
93 | - | func | |
94 | - | let | |
95 | - | let | |
96 | - | let | |
97 | - | let | |
98 | - | func | |
99 | - | then | |
100 | - | else L | |
102 | + | func Q (D) = { | |
103 | + | let R = E(D)._1 | |
104 | + | let H = R | |
105 | + | let I = size(H) | |
106 | + | let J = 0 | |
107 | + | func K (L,M) = if ((M >= I)) | |
108 | + | then L | |
109 | + | else O(L, H[M]) | |
101 | 110 | ||
102 | - | func | |
103 | - | then | |
111 | + | func N (L,M) = if ((M >= I)) | |
112 | + | then L | |
104 | 113 | else throw("List size exceeds 10") | |
105 | 114 | ||
106 | - | K( | |
115 | + | N(K(K(K(K(K(K(K(K(K(K(J, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10) | |
107 | 116 | } | |
108 | 117 | ||
109 | 118 | ||
110 | - | func | |
119 | + | func S (C,T) = (C :+ DeleteEntry(T)) | |
111 | 120 | ||
112 | 121 | ||
113 | - | func | |
114 | - | let | |
115 | - | let | |
116 | - | let | |
117 | - | let | |
118 | - | func | |
119 | - | then | |
120 | - | else | |
122 | + | func U (D) = { | |
123 | + | let R = E(D)._1 | |
124 | + | let H = R | |
125 | + | let I = size(H) | |
126 | + | let J = nil | |
127 | + | func K (L,M) = if ((M >= I)) | |
128 | + | then L | |
129 | + | else S(L, H[M]) | |
121 | 130 | ||
122 | - | func | |
123 | - | then | |
131 | + | func N (L,M) = if ((M >= I)) | |
132 | + | then L | |
124 | 133 | else throw("List size exceeds 10") | |
125 | 134 | ||
126 | - | K( | |
135 | + | N(K(K(K(K(K(K(K(K(K(K(J, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10) | |
127 | 136 | } | |
128 | 137 | ||
129 | 138 | ||
130 | - | @Callable( | |
139 | + | @Callable(V) | |
131 | 140 | func confirmManager () = { | |
132 | - | let | |
133 | - | let | |
141 | + | let W = g() | |
142 | + | let X = if (isDefined(W)) | |
134 | 143 | then true | |
135 | 144 | else c("no pending manager") | |
136 | - | if (( | |
145 | + | if ((X == X)) | |
137 | 146 | then { | |
138 | - | let | |
147 | + | let Y = if ((V.callerPublicKey == value(W))) | |
139 | 148 | then true | |
140 | 149 | else c("you are not pending manager") | |
141 | - | if (( | |
142 | - | then [StringEntry(e(), toBase58String(value( | |
150 | + | if ((Y == Y)) | |
151 | + | then [StringEntry(e(), toBase58String(value(W)))] | |
143 | 152 | else throw("Strict value is not equal to itself.") | |
144 | 153 | } | |
145 | 154 | else throw("Strict value is not equal to itself.") | |
147 | 156 | ||
148 | 157 | ||
149 | 158 | ||
150 | - | @Callable( | |
151 | - | func voteForNewManger ( | |
152 | - | let | |
153 | - | if ( | |
154 | - | then if ((m( | |
155 | - | then c((((("Address: " + | |
159 | + | @Callable(V) | |
160 | + | func voteForNewManger (Z) = { | |
161 | + | let aa = toBase58String(V.caller.bytes) | |
162 | + | if (v(aa)) | |
163 | + | then if ((m(Z, aa) == 1)) | |
164 | + | then c((((("Address: " + aa) + " NewManager: ") + Z) + " voteForNewManger() you already voted")) | |
156 | 165 | else { | |
157 | - | let | |
158 | - | if ((( | |
166 | + | let R = Q(i(Z)) | |
167 | + | if (((R + 1) >= 2)) | |
159 | 168 | then { | |
160 | - | let | |
161 | - | ( | |
169 | + | let ab = U(i(Z)) | |
170 | + | (ab ++ [StringEntry(f(), Z)]) | |
162 | 171 | } | |
163 | - | else [IntegerEntry(k( | |
172 | + | else [IntegerEntry(k(Z, aa), 1)] | |
164 | 173 | } | |
165 | - | else c((("Address: " + | |
174 | + | else c((("Address: " + aa) + " not in Admin list")) | |
166 | 175 | } | |
167 | 176 | ||
168 | 177 | ||
169 | 178 | ||
170 | - | @Callable( | |
179 | + | @Callable(V) | |
171 | 180 | func deactivateManager () = { | |
172 | - | let X = toBase58String(S.caller.bytes) | |
173 | - | let Z = getStringValue(f()) | |
174 | - | if (s(X)) | |
175 | - | then if ((p(X) == 1)) | |
176 | - | then c((("Address: " + X) + " deactivateManager() you already voted")) | |
181 | + | let aa = toBase58String(V.caller.bytes) | |
182 | + | if (v(aa)) | |
183 | + | then if ((p(aa) == 1)) | |
184 | + | then c((("Address: " + aa) + " deactivateManager() you already voted")) | |
177 | 185 | else { | |
178 | - | let | |
179 | - | if ((( | |
186 | + | let R = Q(n()) | |
187 | + | if (((R + 1) >= 1)) | |
180 | 188 | then { | |
181 | - | let | |
182 | - | ( | |
189 | + | let ab = U(n()) | |
190 | + | (ab ++ [DeleteEntry(e())]) | |
183 | 191 | } | |
184 | - | else [IntegerEntry(o( | |
192 | + | else [IntegerEntry(o(aa), 1)] | |
185 | 193 | } | |
186 | - | else c((("Address: " + X) + " not in Admin list")) | |
194 | + | else c((("Address: " + aa) + " not in Admin list")) | |
195 | + | } | |
196 | + | ||
197 | + | ||
198 | + | ||
199 | + | @Callable(V) | |
200 | + | func activateManager () = { | |
201 | + | let aa = toBase58String(V.caller.bytes) | |
202 | + | let ac = getStringValue(f()) | |
203 | + | if (v(aa)) | |
204 | + | then if ((s(aa) == 1)) | |
205 | + | then c((("Address: " + aa) + " activateManager() you already voted")) | |
206 | + | else { | |
207 | + | let R = Q(q()) | |
208 | + | if (((R + 1) >= 2)) | |
209 | + | then { | |
210 | + | let ab = U(q()) | |
211 | + | (ab ++ [StringEntry(e(), ac)]) | |
212 | + | } | |
213 | + | else [IntegerEntry(r(aa), 1)] | |
214 | + | } | |
215 | + | else c((("Address: " + aa) + " not in Admin list")) | |
187 | 216 | } | |
188 | 217 | ||
189 | 218 |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 6 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let a = "__" | |
5 | 5 | ||
6 | 6 | let b = "test.ride" | |
7 | 7 | ||
8 | 8 | func c (d) = throw(((b + ": ") + d)) | |
9 | 9 | ||
10 | 10 | ||
11 | 11 | func e () = makeString(["%s", "managerPublicKey"], a) | |
12 | 12 | ||
13 | 13 | ||
14 | 14 | func f () = makeString(["%s", "pendingManagerPublicKey"], a) | |
15 | 15 | ||
16 | 16 | ||
17 | 17 | func g () = { | |
18 | 18 | let h = getString(f()) | |
19 | 19 | if ($isInstanceOf(h, "String")) | |
20 | 20 | then { | |
21 | 21 | let d = h | |
22 | 22 | fromBase58String(d) | |
23 | 23 | } | |
24 | 24 | else if ($isInstanceOf(h, "Unit")) | |
25 | 25 | then unit | |
26 | 26 | else throw("Match error") | |
27 | 27 | } | |
28 | 28 | ||
29 | 29 | ||
30 | 30 | func i (j) = makeString(["%s%s%s", "setManager", j], a) | |
31 | 31 | ||
32 | 32 | ||
33 | 33 | func k (j,l) = makeString([i(j), l], a) | |
34 | 34 | ||
35 | 35 | ||
36 | 36 | func m (j,l) = valueOrElse(getInteger(k(j, l)), 0) | |
37 | 37 | ||
38 | 38 | ||
39 | 39 | func n () = makeString(["%s%s", "deactivateManager"], a) | |
40 | 40 | ||
41 | 41 | ||
42 | 42 | func o (l) = makeString([n(), l], a) | |
43 | 43 | ||
44 | 44 | ||
45 | 45 | func p (l) = valueOrElse(getInteger(o(l)), 0) | |
46 | 46 | ||
47 | 47 | ||
48 | - | func q () = makeString(["%s", " | |
48 | + | func q () = makeString(["%s%s", "activateManager"], a) | |
49 | 49 | ||
50 | 50 | ||
51 | - | func r () = | |
51 | + | func r (l) = makeString([q(), l], a) | |
52 | 52 | ||
53 | 53 | ||
54 | - | func s (t) = { | |
55 | - | let h = indexOf(r(), t) | |
54 | + | func s (l) = valueOrElse(getInteger(r(l)), 0) | |
55 | + | ||
56 | + | ||
57 | + | func t () = makeString(["%s", "adminAddressList"], a) | |
58 | + | ||
59 | + | ||
60 | + | func u () = split(valueOrElse(getString(this, t()), ""), a) | |
61 | + | ||
62 | + | ||
63 | + | func v (w) = { | |
64 | + | let h = indexOf(u(), w) | |
56 | 65 | if ($isInstanceOf(h, "Int")) | |
57 | 66 | then { | |
58 | - | let | |
67 | + | let x = h | |
59 | 68 | true | |
60 | 69 | } | |
61 | 70 | else false | |
62 | 71 | } | |
63 | 72 | ||
64 | 73 | ||
65 | - | func | |
66 | - | let | |
67 | - | let | |
68 | - | let | |
69 | - | $Tuple2(( | |
74 | + | func y (z,A) = { | |
75 | + | let B = z | |
76 | + | let C = B._1 | |
77 | + | let D = B._2 | |
78 | + | $Tuple2((C :+ makeString([D, A], a)), D) | |
70 | 79 | } | |
71 | 80 | ||
72 | 81 | ||
73 | - | func | |
74 | - | let | |
75 | - | let | |
76 | - | let | |
77 | - | let | |
78 | - | func | |
79 | - | then | |
80 | - | else | |
82 | + | func E (F) = { | |
83 | + | let G = t() | |
84 | + | let H = u() | |
85 | + | let I = size(H) | |
86 | + | let J = $Tuple2(nil, F) | |
87 | + | func K (L,M) = if ((M >= I)) | |
88 | + | then L | |
89 | + | else y(L, H[M]) | |
81 | 90 | ||
82 | - | func | |
83 | - | then | |
91 | + | func N (L,M) = if ((M >= I)) | |
92 | + | then L | |
84 | 93 | else throw("List size exceeds 10") | |
85 | 94 | ||
86 | - | K( | |
95 | + | N(K(K(K(K(K(K(K(K(K(K(J, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10) | |
87 | 96 | } | |
88 | 97 | ||
89 | 98 | ||
90 | - | func | |
99 | + | func O (C,P) = (C + valueOrElse(getInteger(P), 0)) | |
91 | 100 | ||
92 | 101 | ||
93 | - | func | |
94 | - | let | |
95 | - | let | |
96 | - | let | |
97 | - | let | |
98 | - | func | |
99 | - | then | |
100 | - | else L | |
102 | + | func Q (D) = { | |
103 | + | let R = E(D)._1 | |
104 | + | let H = R | |
105 | + | let I = size(H) | |
106 | + | let J = 0 | |
107 | + | func K (L,M) = if ((M >= I)) | |
108 | + | then L | |
109 | + | else O(L, H[M]) | |
101 | 110 | ||
102 | - | func | |
103 | - | then | |
111 | + | func N (L,M) = if ((M >= I)) | |
112 | + | then L | |
104 | 113 | else throw("List size exceeds 10") | |
105 | 114 | ||
106 | - | K( | |
115 | + | N(K(K(K(K(K(K(K(K(K(K(J, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10) | |
107 | 116 | } | |
108 | 117 | ||
109 | 118 | ||
110 | - | func | |
119 | + | func S (C,T) = (C :+ DeleteEntry(T)) | |
111 | 120 | ||
112 | 121 | ||
113 | - | func | |
114 | - | let | |
115 | - | let | |
116 | - | let | |
117 | - | let | |
118 | - | func | |
119 | - | then | |
120 | - | else | |
122 | + | func U (D) = { | |
123 | + | let R = E(D)._1 | |
124 | + | let H = R | |
125 | + | let I = size(H) | |
126 | + | let J = nil | |
127 | + | func K (L,M) = if ((M >= I)) | |
128 | + | then L | |
129 | + | else S(L, H[M]) | |
121 | 130 | ||
122 | - | func | |
123 | - | then | |
131 | + | func N (L,M) = if ((M >= I)) | |
132 | + | then L | |
124 | 133 | else throw("List size exceeds 10") | |
125 | 134 | ||
126 | - | K( | |
135 | + | N(K(K(K(K(K(K(K(K(K(K(J, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10) | |
127 | 136 | } | |
128 | 137 | ||
129 | 138 | ||
130 | - | @Callable( | |
139 | + | @Callable(V) | |
131 | 140 | func confirmManager () = { | |
132 | - | let | |
133 | - | let | |
141 | + | let W = g() | |
142 | + | let X = if (isDefined(W)) | |
134 | 143 | then true | |
135 | 144 | else c("no pending manager") | |
136 | - | if (( | |
145 | + | if ((X == X)) | |
137 | 146 | then { | |
138 | - | let | |
147 | + | let Y = if ((V.callerPublicKey == value(W))) | |
139 | 148 | then true | |
140 | 149 | else c("you are not pending manager") | |
141 | - | if (( | |
142 | - | then [StringEntry(e(), toBase58String(value( | |
150 | + | if ((Y == Y)) | |
151 | + | then [StringEntry(e(), toBase58String(value(W)))] | |
143 | 152 | else throw("Strict value is not equal to itself.") | |
144 | 153 | } | |
145 | 154 | else throw("Strict value is not equal to itself.") | |
146 | 155 | } | |
147 | 156 | ||
148 | 157 | ||
149 | 158 | ||
150 | - | @Callable( | |
151 | - | func voteForNewManger ( | |
152 | - | let | |
153 | - | if ( | |
154 | - | then if ((m( | |
155 | - | then c((((("Address: " + | |
159 | + | @Callable(V) | |
160 | + | func voteForNewManger (Z) = { | |
161 | + | let aa = toBase58String(V.caller.bytes) | |
162 | + | if (v(aa)) | |
163 | + | then if ((m(Z, aa) == 1)) | |
164 | + | then c((((("Address: " + aa) + " NewManager: ") + Z) + " voteForNewManger() you already voted")) | |
156 | 165 | else { | |
157 | - | let | |
158 | - | if ((( | |
166 | + | let R = Q(i(Z)) | |
167 | + | if (((R + 1) >= 2)) | |
159 | 168 | then { | |
160 | - | let | |
161 | - | ( | |
169 | + | let ab = U(i(Z)) | |
170 | + | (ab ++ [StringEntry(f(), Z)]) | |
162 | 171 | } | |
163 | - | else [IntegerEntry(k( | |
172 | + | else [IntegerEntry(k(Z, aa), 1)] | |
164 | 173 | } | |
165 | - | else c((("Address: " + | |
174 | + | else c((("Address: " + aa) + " not in Admin list")) | |
166 | 175 | } | |
167 | 176 | ||
168 | 177 | ||
169 | 178 | ||
170 | - | @Callable( | |
179 | + | @Callable(V) | |
171 | 180 | func deactivateManager () = { | |
172 | - | let X = toBase58String(S.caller.bytes) | |
173 | - | let Z = getStringValue(f()) | |
174 | - | if (s(X)) | |
175 | - | then if ((p(X) == 1)) | |
176 | - | then c((("Address: " + X) + " deactivateManager() you already voted")) | |
181 | + | let aa = toBase58String(V.caller.bytes) | |
182 | + | if (v(aa)) | |
183 | + | then if ((p(aa) == 1)) | |
184 | + | then c((("Address: " + aa) + " deactivateManager() you already voted")) | |
177 | 185 | else { | |
178 | - | let | |
179 | - | if ((( | |
186 | + | let R = Q(n()) | |
187 | + | if (((R + 1) >= 1)) | |
180 | 188 | then { | |
181 | - | let | |
182 | - | ( | |
189 | + | let ab = U(n()) | |
190 | + | (ab ++ [DeleteEntry(e())]) | |
183 | 191 | } | |
184 | - | else [IntegerEntry(o( | |
192 | + | else [IntegerEntry(o(aa), 1)] | |
185 | 193 | } | |
186 | - | else c((("Address: " + X) + " not in Admin list")) | |
194 | + | else c((("Address: " + aa) + " not in Admin list")) | |
195 | + | } | |
196 | + | ||
197 | + | ||
198 | + | ||
199 | + | @Callable(V) | |
200 | + | func activateManager () = { | |
201 | + | let aa = toBase58String(V.caller.bytes) | |
202 | + | let ac = getStringValue(f()) | |
203 | + | if (v(aa)) | |
204 | + | then if ((s(aa) == 1)) | |
205 | + | then c((("Address: " + aa) + " activateManager() you already voted")) | |
206 | + | else { | |
207 | + | let R = Q(q()) | |
208 | + | if (((R + 1) >= 2)) | |
209 | + | then { | |
210 | + | let ab = U(q()) | |
211 | + | (ab ++ [StringEntry(e(), ac)]) | |
212 | + | } | |
213 | + | else [IntegerEntry(r(aa), 1)] | |
214 | + | } | |
215 | + | else c((("Address: " + aa) + " not in Admin list")) | |
187 | 216 | } | |
188 | 217 | ||
189 | 218 |
github/deemru/w8io/c3f4982 68.83 ms ◑