tx · J2pCUW31mLEcRXVMxpwVsj9LuGRCcxfryhUFBU9YkSxL 3P6gLszP3nxzFcBNQSrvw9tmNHZJY2Jfbws: -0.01000000 Waves 2022.10.15 11:27 [3338679] smart account 3P6gLszP3nxzFcBNQSrvw9tmNHZJY2Jfbws > SELF 0.00000000 Waves
{ "type": 13, "id": "J2pCUW31mLEcRXVMxpwVsj9LuGRCcxfryhUFBU9YkSxL", "fee": 1000000, "feeAssetId": null, "timestamp": 1665822485201, "version": 2, "chainId": 87, "sender": "3P6gLszP3nxzFcBNQSrvw9tmNHZJY2Jfbws", "senderPublicKey": "AQE5TyMMMmxBtnzNfhF3zZeTe6GusFPqJM3bCzgrSecv", "proofs": [ "2kHcjy7D7G3dkViJKtZQU2m7W57EJRLZf6EL2Gjc5v9bBj2BBgmoacFuAoqbfCRwPzptVRGnxU5bsbEf9w1i9RZH" ], "script": "base64:BgIeCAISAwoBCBIFCgMICAgSBAoCCAgSAwoBCBIDCgEICwAJc2VwYXJhdG9yAgE7AAl1bmRlZmluZWQCCXVuZGVmaW5lZAAJYWRtaW5zS2V5AgZhZG1pbnMAE2NvbGxlY3RvckFkZHJlc3NLZXkCEWNvbGxlY3Rvcl9hZGRyZXNzABJwYXltYWtlckFkZHJlc3NLZXkCEHBheW1ha2VyX2FkZHJlc3MAEWhpc3RvcnlBZGRyZXNzS2V5Ag9oaXN0b3J5X2FkZHJlc3MBDWdldEV2ZW50ZXJLZXkBB2V2ZW50ZXIJAKwCAgIIZXZlbnRlcl8FB2V2ZW50ZXIBDWdldENoZWNrZXJLZXkBB2NoZWNrZXIJAKwCAgIIY2hlY2tlcl8FB2NoZWNrZXIBB2lzQWRtaW4BBmNhbGxlcgQGYWRtUm93CQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMFCWFkbWluc0tleQIAAwMJAAACBQZjYWxsZXIFBHRoaXMGCQEIY29udGFpbnMCBQZhZG1Sb3cJAKUIAQUGY2FsbGVyBgcABHVzZG4BILYmKcME9c5TkaQOS3UkL2SMUbH6369UKb1I0h0qsqrRAQRpbmZvAQphZGRyZXNzU3RyBAdhZGRyZXNzCQCmCAEFCmFkZHJlc3NTdHIECWlzQWRkcmVzcwkBCWlzRGVmaW5lZAEFB2FkZHJlc3MEDWN1cnJlbnRIZWlnaHQFBmhlaWdodAQKdXNkbkFtb3VudAMFCWlzQWRkcmVzcwkA8AcCCQEFdmFsdWUBBQdhZGRyZXNzBQR1c2RuAAAEC3dhdmVzQW1vdW50AwUJaXNBZGRyZXNzCAkA7wcBCQEFdmFsdWUBBQdhZGRyZXNzCWF2YWlsYWJsZQAABAhqc29uVXNlcgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAgF7AgEiAgR1c2RuAgEiAgE6CQCkAwEFCnVzZG5BbW91bnQCASwCASICBXdhdmVzAgEiAgE6CQCkAwEFC3dhdmVzQW1vdW50AgACAX0EBGpzb24JAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIBewIBIgIBaAIBIgIBOgkApAMBBQ1jdXJyZW50SGVpZ2h0AgEsAgEiAgF1AgEiAgE6BQhqc29uVXNlcgIAAgF9CQCUCgIFA25pbAUEanNvbgUBaQEIYWRkQWRtaW4BB2FkZHJlc3MDCQEBIQEJAQdpc0FkbWluAQgFAWkGY2FsbGVyCQACAQIRb25seSBhZG1pbiBjYW4gZG8ECW9sZEFkbVJvdwkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzBQlhZG1pbnNLZXkCAAQJbmV3QWRtUm93AwkAAAIJALECAQUJb2xkQWRtUm93AAAFB2FkZHJlc3MJAKwCAgkArAICBQlvbGRBZG1Sb3cFCXNlcGFyYXRvcgUHYWRkcmVzcwkAzAgCCQELU3RyaW5nRW50cnkCBQlhZG1pbnNLZXkFCW5ld0FkbVJvdwUDbmlsAWkBBGluaXQDCWNvbGxlY3RvcghwYXltYWtlcgdoaXN0b3J5AwkBASEBCQEHaXNBZG1pbgEIBQFpBmNhbGxlcgkAAgECEW9ubHkgYWRtaW4gY2FuIGRvCQDMCAIJAQtTdHJpbmdFbnRyeQIFE2NvbGxlY3RvckFkZHJlc3NLZXkFCWNvbGxlY3RvcgkAzAgCCQELU3RyaW5nRW50cnkCBRJwYXltYWtlckFkZHJlc3NLZXkFCHBheW1ha2VyCQDMCAIJAQtTdHJpbmdFbnRyeQIFEWhpc3RvcnlBZGRyZXNzS2V5BQdoaXN0b3J5BQNuaWwBaQEKc2V0RXZlbnRlcgIHZXZlbnRlcgRkZXNjAwkBASEBCQEHaXNBZG1pbgEIBQFpDG9yaWdpbkNhbGxlcgkAAgECEW9ubHkgYWRtaW4gY2FuIGRvCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQ1nZXRFdmVudGVyS2V5AQUHZXZlbnRlcgUEZGVzYwUDbmlsAWkBDWRlbGV0ZUV2ZW50ZXIBB2V2ZW50ZXIDCQEBIQEJAQdpc0FkbWluAQgFAWkMb3JpZ2luQ2FsbGVyCQACAQIRb25seSBhZG1pbiBjYW4gZG8JAMwIAgkBC0RlbGV0ZUVudHJ5AQkBDWdldEV2ZW50ZXJLZXkBBQdldmVudGVyBQNuaWwBaQEKc2V0Q2hlY2tlcgEHY2hlY2tlcgMJAQEhAQkBB2lzQWRtaW4BCAUBaQxvcmlnaW5DYWxsZXIJAAIBAhFvbmx5IGFkbWluIGNhbiBkbwkAzAgCCQEMQm9vbGVhbkVudHJ5AgkBDWdldENoZWNrZXJLZXkBBQdjaGVja2VyBgUDbmlsAJV15fE=", "height": 3338679, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: ELX1GV7vKiuD35ZPkyGT5nsQo1H5HFTg97bBAbfvE2Mc Next: none Diff:
Old | New | Differences | |
---|---|---|---|
26 | 26 | else contains(admRow, toString(caller))) | |
27 | 27 | then true | |
28 | 28 | else false | |
29 | + | } | |
30 | + | ||
31 | + | ||
32 | + | let usdn = base58'DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p' | |
33 | + | ||
34 | + | func info (addressStr) = { | |
35 | + | let address = addressFromString(addressStr) | |
36 | + | let isAddress = isDefined(address) | |
37 | + | let currentHeight = height | |
38 | + | let usdnAmount = if (isAddress) | |
39 | + | then assetBalance(value(address), usdn) | |
40 | + | else 0 | |
41 | + | let wavesAmount = if (isAddress) | |
42 | + | then wavesBalance(value(address)).available | |
43 | + | else 0 | |
44 | + | let jsonUser = ((((((((((((("{" + "\"") + "usdn") + "\"") + ":") + toString(usdnAmount)) + ",") + "\"") + "waves") + "\"") + ":") + toString(wavesAmount)) + "") + "}") | |
45 | + | let json = ((((((((((((("{" + "\"") + "h") + "\"") + ":") + toString(currentHeight)) + ",") + "\"") + "u") + "\"") + ":") + jsonUser) + "") + "}") | |
46 | + | $Tuple2(nil, json) | |
29 | 47 | } | |
30 | 48 | ||
31 | 49 |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 6 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let separator = ";" | |
5 | 5 | ||
6 | 6 | let undefined = "undefined" | |
7 | 7 | ||
8 | 8 | let adminsKey = "admins" | |
9 | 9 | ||
10 | 10 | let collectorAddressKey = "collector_address" | |
11 | 11 | ||
12 | 12 | let paymakerAddressKey = "paymaker_address" | |
13 | 13 | ||
14 | 14 | let historyAddressKey = "history_address" | |
15 | 15 | ||
16 | 16 | func getEventerKey (eventer) = ("eventer_" + eventer) | |
17 | 17 | ||
18 | 18 | ||
19 | 19 | func getCheckerKey (checker) = ("checker_" + checker) | |
20 | 20 | ||
21 | 21 | ||
22 | 22 | func isAdmin (caller) = { | |
23 | 23 | let admRow = valueOrElse(getString(this, adminsKey), "") | |
24 | 24 | if (if ((caller == this)) | |
25 | 25 | then true | |
26 | 26 | else contains(admRow, toString(caller))) | |
27 | 27 | then true | |
28 | 28 | else false | |
29 | + | } | |
30 | + | ||
31 | + | ||
32 | + | let usdn = base58'DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p' | |
33 | + | ||
34 | + | func info (addressStr) = { | |
35 | + | let address = addressFromString(addressStr) | |
36 | + | let isAddress = isDefined(address) | |
37 | + | let currentHeight = height | |
38 | + | let usdnAmount = if (isAddress) | |
39 | + | then assetBalance(value(address), usdn) | |
40 | + | else 0 | |
41 | + | let wavesAmount = if (isAddress) | |
42 | + | then wavesBalance(value(address)).available | |
43 | + | else 0 | |
44 | + | let jsonUser = ((((((((((((("{" + "\"") + "usdn") + "\"") + ":") + toString(usdnAmount)) + ",") + "\"") + "waves") + "\"") + ":") + toString(wavesAmount)) + "") + "}") | |
45 | + | let json = ((((((((((((("{" + "\"") + "h") + "\"") + ":") + toString(currentHeight)) + ",") + "\"") + "u") + "\"") + ":") + jsonUser) + "") + "}") | |
46 | + | $Tuple2(nil, json) | |
29 | 47 | } | |
30 | 48 | ||
31 | 49 | ||
32 | 50 | @Callable(i) | |
33 | 51 | func addAdmin (address) = if (!(isAdmin(i.caller))) | |
34 | 52 | then throw("only admin can do") | |
35 | 53 | else { | |
36 | 54 | let oldAdmRow = valueOrElse(getString(this, adminsKey), "") | |
37 | 55 | let newAdmRow = if ((size(oldAdmRow) == 0)) | |
38 | 56 | then address | |
39 | 57 | else ((oldAdmRow + separator) + address) | |
40 | 58 | [StringEntry(adminsKey, newAdmRow)] | |
41 | 59 | } | |
42 | 60 | ||
43 | 61 | ||
44 | 62 | ||
45 | 63 | @Callable(i) | |
46 | 64 | func init (collector,paymaker,history) = if (!(isAdmin(i.caller))) | |
47 | 65 | then throw("only admin can do") | |
48 | 66 | else [StringEntry(collectorAddressKey, collector), StringEntry(paymakerAddressKey, paymaker), StringEntry(historyAddressKey, history)] | |
49 | 67 | ||
50 | 68 | ||
51 | 69 | ||
52 | 70 | @Callable(i) | |
53 | 71 | func setEventer (eventer,desc) = if (!(isAdmin(i.originCaller))) | |
54 | 72 | then throw("only admin can do") | |
55 | 73 | else [StringEntry(getEventerKey(eventer), desc)] | |
56 | 74 | ||
57 | 75 | ||
58 | 76 | ||
59 | 77 | @Callable(i) | |
60 | 78 | func deleteEventer (eventer) = if (!(isAdmin(i.originCaller))) | |
61 | 79 | then throw("only admin can do") | |
62 | 80 | else [DeleteEntry(getEventerKey(eventer))] | |
63 | 81 | ||
64 | 82 | ||
65 | 83 | ||
66 | 84 | @Callable(i) | |
67 | 85 | func setChecker (checker) = if (!(isAdmin(i.originCaller))) | |
68 | 86 | then throw("only admin can do") | |
69 | 87 | else [BooleanEntry(getCheckerKey(checker), true)] | |
70 | 88 | ||
71 | 89 |
github/deemru/w8io/873ac7e 45.08 ms ◑