tx · 9uKLfQRDDJSQqLUEYkvnqMYo19MGS1MeUucqWhPuRnM2 3MvCKDNrXFLCPCMjLTQXzfiHYejGf5QST42: -0.00200000 Waves 2022.07.07 13:21 [2129143] smart account 3MvCKDNrXFLCPCMjLTQXzfiHYejGf5QST42 > SELF 0.00000000 Waves
{ "type": 13, "id": "9uKLfQRDDJSQqLUEYkvnqMYo19MGS1MeUucqWhPuRnM2", "fee": 200000, "feeAssetId": null, "timestamp": 1657189353966, "version": 2, "chainId": 84, "sender": "3MvCKDNrXFLCPCMjLTQXzfiHYejGf5QST42", "senderPublicKey": "Bm8NA6cDADuRW1tDcjPsFdpsoUGwdxSD16MjDxtar9JB", "proofs": [ "3rfFPBzGkcZ22rAVe5Gjy3VY4Aw9eFXYTAcVG7nn8rQKkZp9qPAXncq7EgHjt3xprtFdXGGfxP4Lzw7RryZZYLm9" ], "script": "base64:AAIFAAAAAAAAABAIAhIDCgEIEgMKAQgSABIAAAAABAEAAAAMZ2V0T3duZXJBZGRyAAAAAAQAAAAFb3duZXIJAAQdAAAAAgUAAAAEdGhpcwIAAAAFb3duZXIDCQEAAAABIQAAAAEJAQAAAAlpc0RlZmluZWQAAAABBQAAAAVvd25lcgkAAAIAAAABAgAAAAppbml0IGZpcnN0CQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABCQEAAAAFdmFsdWUAAAABBQAAAAVvd25lcgEAAAAKY2hlY2tPd25lcgAAAAEAAAAGY2FsbGVyCQAAAAAAAAIFAAAABmNhbGxlcgkBAAAADGdldE93bmVyQWRkcgAAAAABAAAAE2NoYW5nZU93bmVySW50ZXJuYWwAAAACAAAABmNhbGxlcgAAAARhZGRyAwkBAAAACmNoZWNrT3duZXIAAAABBQAAAAZjYWxsZXIJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgIAAAAFb3duZXIJAAQlAAAAAQUAAAAEYWRkcgUAAAADbmlsCQAAAgAAAAECAAAACk9ubHkgb3duZXIBAAAADGluaXRJbnRlcm5hbAAAAAIAAAAGY2FsbGVyAAAABGFkZHIEAAAABW93bmVyCQAEHQAAAAIFAAAABHRoaXMCAAAABW93bmVyAwMJAAAAAAAAAgUAAAAGY2FsbGVyBQAAAAR0aGlzCQEAAAABIQAAAAEJAQAAAAlpc0RlZmluZWQAAAABBQAAAAVvd25lcgcJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgIAAAAFb3duZXIFAAAABGFkZHIFAAAAA25pbAkAAAIAAAABAgAAAApPbmx5IGFkbWluAAAABAAAAAFpAQAAAAlpbml0T3duZXIAAAABAAAABGFkZHIJAQAAAAxpbml0SW50ZXJuYWwAAAACCAUAAAABaQAAAAZjYWxsZXIFAAAABGFkZHIAAAABaQEAAAALY2hhbmdlT3duZXIAAAABAAAABGFkZHIJAQAAABNjaGFuZ2VPd25lckludGVybmFsAAAAAggFAAAAAWkAAAAGY2FsbGVyCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABBQAAAARhZGRyAAAAAWkBAAAACGNhbGxGdW5jAAAAAAMJAQAAAApjaGVja093bmVyAAAAAQgFAAAAAWkAAAAGY2FsbGVyCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgUAAAAGaGVpZ2h0BQAAAANuaWwJAAACAAAAAQIAAAAKT25seSBPd25lcgAAAAFpAQAAAAlzaG93T3duZXIAAAAACQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAICAAAAATEJAAQlAAAAAQkBAAAADGdldE93bmVyQWRkcgAAAAAFAAAAA25pbAAAAAAJCgWg", "height": 2129143, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: Cb4VtPpScxPvbGFQe7hgVKjiA9mYJ8TRrfL5wrWuSdcv Next: 7VbCGjFHGxK3KZ61w1AjXM1vDyHwFcGRPShxfwmrKTqJ Full:
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 5 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | - | let separator = "_" | |
5 | - | ||
6 | - | let secondSeparator = "/" | |
7 | - | ||
8 | - | func getMappingKey (mappingName,addr,separator) = makeString([mappingName, addr], separator) | |
9 | - | ||
10 | - | ||
11 | - | func getElements (mappingName,addr,separator) = getStringValue(this, getMappingKey(mappingName, addr, separator)) | |
12 | - | ||
13 | - | ||
14 | - | func getValueByKey (key) = getStringValue(this, key) | |
15 | - | ||
16 | - | ||
17 | - | func setMappingValue (mappingName,addr) = { | |
18 | - | let secondKey = getMappingKey(mappingName, addr, secondSeparator) | |
19 | - | StringEntry(getMappingKey("mapString", addr, separator), secondKey) | |
4 | + | func getOwnerAddr () = { | |
5 | + | let owner = getString(this, "owner") | |
6 | + | if (!(isDefined(owner))) | |
7 | + | then throw("init first") | |
8 | + | else addressFromStringValue(value(owner)) | |
20 | 9 | } | |
21 | 10 | ||
22 | 11 | ||
23 | - | func setSecondMappingValue (mappingName,addr,val) = if ((100 >= size(val))) | |
24 | - | then StringEntry(getMappingKey("mapString", addr, secondSeparator), val) | |
25 | - | else throw("overcrowded") | |
12 | + | func checkOwner (caller) = (caller == getOwnerAddr()) | |
13 | + | ||
14 | + | ||
15 | + | func changeOwnerInternal (caller,addr) = if (checkOwner(caller)) | |
16 | + | then [StringEntry("owner", toString(addr))] | |
17 | + | else throw("Only owner") | |
18 | + | ||
19 | + | ||
20 | + | func initInternal (caller,addr) = { | |
21 | + | let owner = getString(this, "owner") | |
22 | + | if (if ((caller == this)) | |
23 | + | then !(isDefined(owner)) | |
24 | + | else false) | |
25 | + | then [StringEntry("owner", addr)] | |
26 | + | else throw("Only admin") | |
27 | + | } | |
26 | 28 | ||
27 | 29 | ||
28 | 30 | @Callable(i) | |
29 | - | func | |
31 | + | func initOwner (addr) = initInternal(i.caller, addr) | |
30 | 32 | ||
31 | 33 | ||
32 | 34 | ||
33 | 35 | @Callable(i) | |
34 | - | func | |
36 | + | func changeOwner (addr) = changeOwnerInternal(i.caller, addressFromStringValue(addr)) | |
35 | 37 | ||
36 | 38 | ||
37 | 39 | ||
38 | 40 | @Callable(i) | |
39 | - | func getMap () = [StringEntry("1", getElements("mapString", toString(this), separator))] | |
41 | + | func callFunc () = if (checkOwner(i.caller)) | |
42 | + | then [IntegerEntry(toString(i.caller), height)] | |
43 | + | else throw("Only Owner") | |
40 | 44 | ||
41 | 45 | ||
42 | 46 | ||
43 | 47 | @Callable(i) | |
44 | - | func | |
48 | + | func showOwner () = [StringEntry("1", toString(getOwnerAddr()))] | |
45 | 49 | ||
46 | 50 |
github/deemru/w8io/169f3d6 36.98 ms ◑![]()