tx · F2Yy8Au4ez5UxSzXWFYmjXfHBpkAiz3Hcrtq7QgxZydm 3N1bfGrC9iBWbv1Rhb64cccc3cQswW8VyCV: -0.01400000 Waves 2020.07.21 12:54 [1097075] smart account 3N1bfGrC9iBWbv1Rhb64cccc3cQswW8VyCV > SELF 0.00000000 Waves
{ "type": 13, "id": "F2Yy8Au4ez5UxSzXWFYmjXfHBpkAiz3Hcrtq7QgxZydm", "fee": 1400000, "feeAssetId": null, "timestamp": 1595325280337, "version": 1, "sender": "3N1bfGrC9iBWbv1Rhb64cccc3cQswW8VyCV", "senderPublicKey": "BF56eooJyMKnwSL3B65fqLBFPfubUbW6wdky9pCGQajE", "proofs": [ "4mjp9XjnMBaaBnGoNQ11ePMDjq3pZYH84tG7nGkiXkK1bbcj4dqqAGRbSaQRKn6mfd7cpDTHmAdigpSj5b78cpKn" ], "script": "base64:AAIDAAAAAAAAAAoIARIGCgQICAgIAAAAAwEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABAAAAA2tleQQAAAAHJG1hdGNoMAkABB0AAAACBQAAAAR0aGlzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQIAAAAAAAAAAAt1c2VyQ3JlYXRlZAIAAAAHQ1JFQVRFRAAAAAANdXNlclN1c3BlbmRlZAIAAAAJU1VTUEVOREVEAAAAAQAAAAFpAQAAABJyZWdpc3RlclVwZGF0ZVVzZXIAAAAEAAAABG5hbWUAAAALZGVzY3JpcHRpb24AAAAFdGh1bWIAAAAGc29jaWFsBAAAAApjYWxsZXJBZGRyCQAEJQAAAAEJAQAAABRhZGRyZXNzRnJvbVB1YmxpY0tleQAAAAEIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQQAAAACaWQJAAJYAAAAAQgFAAAAAWkAAAANdHJhbnNhY3Rpb25JZAQAAAAHbmV3VXNlcgkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQkAASwAAAACAgAAAAV1c2VyXwUAAAAKY2FsbGVyQWRkcgMDCQAAAAAAAAIFAAAABG5hbWUCAAAAAAYJAAAAAAAAAgUAAAALZGVzY3JpcHRpb24CAAAAAAkAAAIAAAABAgAAACROYW1lIGFuZCBkZXNjcmlwdGlvbiBjYW5ub3QgYmUgZW1wdHkDCQAAAAAAAAIFAAAAB25ld1VzZXICAAAAAAkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACAgAAAAV1c2VyXwUAAAAKY2FsbGVyQWRkcgkAASwAAAACCQABLAAAAAIFAAAAAmlkAgAAAAFfCQABpAAAAAEIBQAAAAlsYXN0QmxvY2sAAAAJdGltZXN0YW1wCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAICAAAACnVzZXJfbmFtZV8FAAAACmNhbGxlckFkZHIFAAAABG5hbWUJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgIAAAAKdXNlcl9kZXNjXwUAAAAKY2FsbGVyQWRkcgUAAAALZGVzY3JpcHRpb24JAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgIAAAAMdXNlcl9zb2NpYWxfBQAAAApjYWxsZXJBZGRyBQAAAAZzb2NpYWwJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgIAAAALdXNlcl90aHVtYl8FAAAACmNhbGxlckFkZHIFAAAABXRodW1iCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAICAAAADHVzZXJfc3RhdHVzXwUAAAAKY2FsbGVyQWRkcgUAAAALdXNlckNyZWF0ZWQFAAAAA25pbAkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACAgAAAAp1c2VyX25hbWVfBQAAAApjYWxsZXJBZGRyBQAAAARuYW1lCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAICAAAACnVzZXJfZGVzY18FAAAACmNhbGxlckFkZHIFAAAAC2Rlc2NyaXB0aW9uCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAICAAAADHVzZXJfc29jaWFsXwUAAAAKY2FsbGVyQWRkcgUAAAAGc29jaWFsCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAICAAAAC3VzZXJfdGh1bWJfBQAAAApjYWxsZXJBZGRyBQAAAAV0aHVtYgUAAAADbmlsAAAAADH20QI=", "chainId": 84, "height": 1097075, "spentComplexity": 0 } View: original | compacted Prev: JDF12wDaoKN5UTg7hPNGzsxVj5kpoWYPA4RR5ofbpkDL Next: GTp4uiDVGawYf2g5esYKbQUDC1RmcLQr9eA8FVezLZ4n Diff:
Old | New | Differences | |
---|---|---|---|
18 | 18 | let callerAddr = toString(addressFromPublicKey(i.callerPublicKey)) | |
19 | 19 | let id = toBase58String(i.transactionId) | |
20 | 20 | let newUser = getStringByKey(("user_" + callerAddr)) | |
21 | - | if (( | |
22 | - | then | |
23 | - | | |
24 | - | | |
25 | - | | |
26 | - | | |
27 | - | else WriteSet([DataEntry(("user_name_" + callerAddr), name), DataEntry(("user_desc_" + callerAddr), description), DataEntry(("user_social_" + callerAddr), social), DataEntry(("user_thumb_" + callerAddr), thumb)]) | |
21 | + | if (if ((name == "")) | |
22 | + | then true | |
23 | + | else (description == "")) | |
24 | + | then throw("Name and description cannot be empty") | |
25 | + | else if ((newUser == "")) | |
26 | + | then WriteSet([DataEntry(("user_" + callerAddr), ((id + "_") + toString(lastBlock.timestamp))), DataEntry(("user_name_" + callerAddr), name), DataEntry(("user_desc_" + callerAddr), description), DataEntry(("user_social_" + callerAddr), social), DataEntry(("user_thumb_" + callerAddr), thumb), DataEntry(("user_status_" + callerAddr), userCreated)]) | |
27 | + | else WriteSet([DataEntry(("user_name_" + callerAddr), name), DataEntry(("user_desc_" + callerAddr), description), DataEntry(("user_social_" + callerAddr), social), DataEntry(("user_thumb_" + callerAddr), thumb)]) | |
28 | 28 | } | |
29 | 29 | ||
30 | 30 |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 3 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | func getStringByKey (key) = match getString(this, key) { | |
5 | 5 | case a: String => | |
6 | 6 | a | |
7 | 7 | case _ => | |
8 | 8 | "" | |
9 | 9 | } | |
10 | 10 | ||
11 | 11 | ||
12 | 12 | let userCreated = "CREATED" | |
13 | 13 | ||
14 | 14 | let userSuspended = "SUSPENDED" | |
15 | 15 | ||
16 | 16 | @Callable(i) | |
17 | 17 | func registerUpdateUser (name,description,thumb,social) = { | |
18 | 18 | let callerAddr = toString(addressFromPublicKey(i.callerPublicKey)) | |
19 | 19 | let id = toBase58String(i.transactionId) | |
20 | 20 | let newUser = getStringByKey(("user_" + callerAddr)) | |
21 | - | if (( | |
22 | - | then | |
23 | - | | |
24 | - | | |
25 | - | | |
26 | - | | |
27 | - | else WriteSet([DataEntry(("user_name_" + callerAddr), name), DataEntry(("user_desc_" + callerAddr), description), DataEntry(("user_social_" + callerAddr), social), DataEntry(("user_thumb_" + callerAddr), thumb)]) | |
21 | + | if (if ((name == "")) | |
22 | + | then true | |
23 | + | else (description == "")) | |
24 | + | then throw("Name and description cannot be empty") | |
25 | + | else if ((newUser == "")) | |
26 | + | then WriteSet([DataEntry(("user_" + callerAddr), ((id + "_") + toString(lastBlock.timestamp))), DataEntry(("user_name_" + callerAddr), name), DataEntry(("user_desc_" + callerAddr), description), DataEntry(("user_social_" + callerAddr), social), DataEntry(("user_thumb_" + callerAddr), thumb), DataEntry(("user_status_" + callerAddr), userCreated)]) | |
27 | + | else WriteSet([DataEntry(("user_name_" + callerAddr), name), DataEntry(("user_desc_" + callerAddr), description), DataEntry(("user_social_" + callerAddr), social), DataEntry(("user_thumb_" + callerAddr), thumb)]) | |
28 | 28 | } | |
29 | 29 | ||
30 | 30 |
github/deemru/w8io/873ac7e 35.59 ms ◑