tx · ELX1GV7vKiuD35ZPkyGT5nsQo1H5HFTg97bBAbfvE2Mc 3P6gLszP3nxzFcBNQSrvw9tmNHZJY2Jfbws: -0.01000000 Waves 2022.10.13 20:51 [3336352] smart account 3P6gLszP3nxzFcBNQSrvw9tmNHZJY2Jfbws > SELF 0.00000000 Waves
{ "type": 13, "id": "ELX1GV7vKiuD35ZPkyGT5nsQo1H5HFTg97bBAbfvE2Mc", "fee": 1000000, "feeAssetId": null, "timestamp": 1665683485210, "version": 2, "chainId": 87, "sender": "3P6gLszP3nxzFcBNQSrvw9tmNHZJY2Jfbws", "senderPublicKey": "AQE5TyMMMmxBtnzNfhF3zZeTe6GusFPqJM3bCzgrSecv", "proofs": [ "4ypQKHrKJXNnrNETx92V1pibQTFMYTAsoxtb9EdxH7pN2n2KLJxrbmT5W4H6FjFb5pfs3HBFdGRGgu1ioE5WQphs" ], "script": "base64:BgIeCAISAwoBCBIFCgMICAgSBAoCCAgSAwoBCBIDCgEICQAJc2VwYXJhdG9yAgE7AAl1bmRlZmluZWQCCXVuZGVmaW5lZAAJYWRtaW5zS2V5AgZhZG1pbnMAE2NvbGxlY3RvckFkZHJlc3NLZXkCEWNvbGxlY3Rvcl9hZGRyZXNzABJwYXltYWtlckFkZHJlc3NLZXkCEHBheW1ha2VyX2FkZHJlc3MAEWhpc3RvcnlBZGRyZXNzS2V5Ag9oaXN0b3J5X2FkZHJlc3MBDWdldEV2ZW50ZXJLZXkBB2V2ZW50ZXIJAKwCAgIIZXZlbnRlcl8FB2V2ZW50ZXIBDWdldENoZWNrZXJLZXkBB2NoZWNrZXIJAKwCAgIIY2hlY2tlcl8FB2NoZWNrZXIBB2lzQWRtaW4BBmNhbGxlcgQGYWRtUm93CQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMFCWFkbWluc0tleQIAAwMJAAACBQZjYWxsZXIFBHRoaXMGCQEIY29udGFpbnMCBQZhZG1Sb3cJAKUIAQUGY2FsbGVyBgcFAWkBCGFkZEFkbWluAQdhZGRyZXNzAwkBASEBCQEHaXNBZG1pbgEIBQFpBmNhbGxlcgkAAgECEW9ubHkgYWRtaW4gY2FuIGRvBAlvbGRBZG1Sb3cJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwUJYWRtaW5zS2V5AgAECW5ld0FkbVJvdwMJAAACCQCxAgEFCW9sZEFkbVJvdwAABQdhZGRyZXNzCQCsAgIJAKwCAgUJb2xkQWRtUm93BQlzZXBhcmF0b3IFB2FkZHJlc3MJAMwIAgkBC1N0cmluZ0VudHJ5AgUJYWRtaW5zS2V5BQluZXdBZG1Sb3cFA25pbAFpAQRpbml0Awljb2xsZWN0b3IIcGF5bWFrZXIHaGlzdG9yeQMJAQEhAQkBB2lzQWRtaW4BCAUBaQZjYWxsZXIJAAIBAhFvbmx5IGFkbWluIGNhbiBkbwkAzAgCCQELU3RyaW5nRW50cnkCBRNjb2xsZWN0b3JBZGRyZXNzS2V5BQljb2xsZWN0b3IJAMwIAgkBC1N0cmluZ0VudHJ5AgUScGF5bWFrZXJBZGRyZXNzS2V5BQhwYXltYWtlcgkAzAgCCQELU3RyaW5nRW50cnkCBRFoaXN0b3J5QWRkcmVzc0tleQUHaGlzdG9yeQUDbmlsAWkBCnNldEV2ZW50ZXICB2V2ZW50ZXIEZGVzYwMJAQEhAQkBB2lzQWRtaW4BCAUBaQxvcmlnaW5DYWxsZXIJAAIBAhFvbmx5IGFkbWluIGNhbiBkbwkAzAgCCQELU3RyaW5nRW50cnkCCQENZ2V0RXZlbnRlcktleQEFB2V2ZW50ZXIFBGRlc2MFA25pbAFpAQ1kZWxldGVFdmVudGVyAQdldmVudGVyAwkBASEBCQEHaXNBZG1pbgEIBQFpDG9yaWdpbkNhbGxlcgkAAgECEW9ubHkgYWRtaW4gY2FuIGRvCQDMCAIJAQtEZWxldGVFbnRyeQEJAQ1nZXRFdmVudGVyS2V5AQUHZXZlbnRlcgUDbmlsAWkBCnNldENoZWNrZXIBB2NoZWNrZXIDCQEBIQEJAQdpc0FkbWluAQgFAWkMb3JpZ2luQ2FsbGVyCQACAQIRb25seSBhZG1pbiBjYW4gZG8JAMwIAgkBDEJvb2xlYW5FbnRyeQIJAQ1nZXRDaGVja2VyS2V5AQUHY2hlY2tlcgYFA25pbAD+3+Jy", "height": 3336352, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: J2pCUW31mLEcRXVMxpwVsj9LuGRCcxfryhUFBU9YkSxL Full:
Old | New | Differences | |
---|---|---|---|
1 | - | # no script | |
1 | + | {-# STDLIB_VERSION 6 #-} | |
2 | + | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | + | {-# CONTENT_TYPE DAPP #-} | |
4 | + | let separator = ";" | |
5 | + | ||
6 | + | let undefined = "undefined" | |
7 | + | ||
8 | + | let adminsKey = "admins" | |
9 | + | ||
10 | + | let collectorAddressKey = "collector_address" | |
11 | + | ||
12 | + | let paymakerAddressKey = "paymaker_address" | |
13 | + | ||
14 | + | let historyAddressKey = "history_address" | |
15 | + | ||
16 | + | func getEventerKey (eventer) = ("eventer_" + eventer) | |
17 | + | ||
18 | + | ||
19 | + | func getCheckerKey (checker) = ("checker_" + checker) | |
20 | + | ||
21 | + | ||
22 | + | func isAdmin (caller) = { | |
23 | + | let admRow = valueOrElse(getString(this, adminsKey), "") | |
24 | + | if (if ((caller == this)) | |
25 | + | then true | |
26 | + | else contains(admRow, toString(caller))) | |
27 | + | then true | |
28 | + | else false | |
29 | + | } | |
30 | + | ||
31 | + | ||
32 | + | @Callable(i) | |
33 | + | func addAdmin (address) = if (!(isAdmin(i.caller))) | |
34 | + | then throw("only admin can do") | |
35 | + | else { | |
36 | + | let oldAdmRow = valueOrElse(getString(this, adminsKey), "") | |
37 | + | let newAdmRow = if ((size(oldAdmRow) == 0)) | |
38 | + | then address | |
39 | + | else ((oldAdmRow + separator) + address) | |
40 | + | [StringEntry(adminsKey, newAdmRow)] | |
41 | + | } | |
42 | + | ||
43 | + | ||
44 | + | ||
45 | + | @Callable(i) | |
46 | + | func init (collector,paymaker,history) = if (!(isAdmin(i.caller))) | |
47 | + | then throw("only admin can do") | |
48 | + | else [StringEntry(collectorAddressKey, collector), StringEntry(paymakerAddressKey, paymaker), StringEntry(historyAddressKey, history)] | |
49 | + | ||
50 | + | ||
51 | + | ||
52 | + | @Callable(i) | |
53 | + | func setEventer (eventer,desc) = if (!(isAdmin(i.originCaller))) | |
54 | + | then throw("only admin can do") | |
55 | + | else [StringEntry(getEventerKey(eventer), desc)] | |
56 | + | ||
57 | + | ||
58 | + | ||
59 | + | @Callable(i) | |
60 | + | func deleteEventer (eventer) = if (!(isAdmin(i.originCaller))) | |
61 | + | then throw("only admin can do") | |
62 | + | else [DeleteEntry(getEventerKey(eventer))] | |
63 | + | ||
64 | + | ||
65 | + | ||
66 | + | @Callable(i) | |
67 | + | func setChecker (checker) = if (!(isAdmin(i.originCaller))) | |
68 | + | then throw("only admin can do") | |
69 | + | else [BooleanEntry(getCheckerKey(checker), true)] | |
70 | + | ||
71 | + |
github/deemru/w8io/0e76f2f 47.55 ms ◑