tx · 4MKMPVS2fNroh4Eu9rGne7XCupDKZ14YDz7xVogmAoyP

3N1bfGrC9iBWbv1Rhb64cccc3cQswW8VyCV:  -0.01400000 Waves

2020.07.21 10:15 [1096908] smart account 3N1bfGrC9iBWbv1Rhb64cccc3cQswW8VyCV > SELF 0.00000000 Waves

{ "type": 13, "id": "4MKMPVS2fNroh4Eu9rGne7XCupDKZ14YDz7xVogmAoyP", "fee": 1400000, "feeAssetId": null, "timestamp": 1595315723785, "version": 1, "sender": "3N1bfGrC9iBWbv1Rhb64cccc3cQswW8VyCV", "senderPublicKey": "BF56eooJyMKnwSL3B65fqLBFPfubUbW6wdky9pCGQajE", "proofs": [ "4UHEDKtvSk5oumHKHg2E7u87A3utL39EYde62ctLSKCXVnLUDwEkAaKLNCHArbS3eB56ByxV6xiXwUsm4D3iUuPp" ], "script": "base64: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", "chainId": 84, "height": 1096908, "spentComplexity": 0 } View: original | compacted Prev: 2yjW4bJTeTuPYiNMHhjSGbDT1iagWUhgKHNHkRMwMQRN Next: JDF12wDaoKN5UTg7hPNGzsxVj5kpoWYPA4RR5ofbpkDL Diff:
OldNewDifferences
2525 }
2626
2727
28+let userCreated = "CREATED"
29+
30+let userSuspended = "SUSPENDED"
31+
2832 @Callable(i)
2933 func registerUser (name,description,social,thumb) = {
3034 let callerAddr = toString(addressFromPublicKey(i.callerPublicKey))
3135 let id = toBase58String(i.transactionId)
32- let createOn = lastBlock.timestamp
33- let json = (((((((((("{\"id\": \"" + id) + "\",\"name\": \"") + name) + "\",\"desc\": \"") + description) + "\",\"social\": \"") + social) + "\",\"thumb\": \"") + thumb) + "\"}")
34- if ((name == ""))
35- then throw(("Ton json = " + json))
36- else WriteSet([DataEntry(("user_" + callerAddr), json)])
36+ let newUser = getStringByKey(("user_" + callerAddr))
37+ if (if ((name == ""))
38+ then true
39+ else (description == ""))
40+ then throw("Name and description cannot be empty")
41+ else {
42+ let entriesName = DataEntry(("user_name_" + callerAddr), name)
43+ let entryDesc = DataEntry(("user_desc_" + callerAddr), description)
44+ let entrySocial = DataEntry(("user_social_" + callerAddr), social)
45+ let entryThumb = DataEntry(("user_thumb_" + callerAddr), thumb)
46+ if ((newUser == ""))
47+ then WriteSet([entriesName, entryDesc, entrySocial, entryThumb, DataEntry(("user_" + callerAddr), id)])
48+ else WriteSet([entriesName, entryDesc, entrySocial, entryThumb])
49+ }
3750 }
3851
3952
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 func getNumberByKey (key) = match getInteger(this, key) {
55 case a: Int =>
66 a
77 case _ =>
88 0
99 }
1010
1111
1212 func getStringByKey (key) = match getString(this, key) {
1313 case a: String =>
1414 a
1515 case _ =>
1616 ""
1717 }
1818
1919
2020 func getBoolByKey (key) = match getBoolean(this, key) {
2121 case a: Boolean =>
2222 a
2323 case _ =>
2424 false
2525 }
2626
2727
28+let userCreated = "CREATED"
29+
30+let userSuspended = "SUSPENDED"
31+
2832 @Callable(i)
2933 func registerUser (name,description,social,thumb) = {
3034 let callerAddr = toString(addressFromPublicKey(i.callerPublicKey))
3135 let id = toBase58String(i.transactionId)
32- let createOn = lastBlock.timestamp
33- let json = (((((((((("{\"id\": \"" + id) + "\",\"name\": \"") + name) + "\",\"desc\": \"") + description) + "\",\"social\": \"") + social) + "\",\"thumb\": \"") + thumb) + "\"}")
34- if ((name == ""))
35- then throw(("Ton json = " + json))
36- else WriteSet([DataEntry(("user_" + callerAddr), json)])
36+ let newUser = getStringByKey(("user_" + callerAddr))
37+ if (if ((name == ""))
38+ then true
39+ else (description == ""))
40+ then throw("Name and description cannot be empty")
41+ else {
42+ let entriesName = DataEntry(("user_name_" + callerAddr), name)
43+ let entryDesc = DataEntry(("user_desc_" + callerAddr), description)
44+ let entrySocial = DataEntry(("user_social_" + callerAddr), social)
45+ let entryThumb = DataEntry(("user_thumb_" + callerAddr), thumb)
46+ if ((newUser == ""))
47+ then WriteSet([entriesName, entryDesc, entrySocial, entryThumb, DataEntry(("user_" + callerAddr), id)])
48+ else WriteSet([entriesName, entryDesc, entrySocial, entryThumb])
49+ }
3750 }
3851
3952

github/deemru/w8io/3ef1775 
38.13 ms