tx · 38DkxBW3tz2ZjJyLcpyZZAeM2FDgcoaG2xDXDdhTVj88

3MzLFtW4HAnHScA7x9AoxtiiPrGPLyKdK5f:  -0.01400000 Waves

2021.01.11 08:30 [1348370] smart account 3MzLFtW4HAnHScA7x9AoxtiiPrGPLyKdK5f > SELF 0.00000000 Waves

{ "type": 13, "id": "38DkxBW3tz2ZjJyLcpyZZAeM2FDgcoaG2xDXDdhTVj88", "fee": 1400000, "feeAssetId": null, "timestamp": 1610343077900, "version": 2, "chainId": 84, "sender": "3MzLFtW4HAnHScA7x9AoxtiiPrGPLyKdK5f", "senderPublicKey": "6wBzB7Bw3oZwcxqF44P6x9GRDda14XkVXQdfCQSAWpeP", "proofs": [ "62hnHzJWb881JsYb7Z59BsNMUgw5JnAfjXxJqAv7MwTW5C3keUkZ1PY15ti4AbTuiT3yVRJeKg4nFvZ1ac5frt7y" ], "script": "base64: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", "height": 1348370, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 4NJ59iwCA4nvPbJQLZzMw9ubZKMubhr3TzRJAwbopYxV Next: none Diff:
OldNewDifferences
2727 func keyUserUpdate (caller) = ("update_" + caller)
2828
2929
30-func makeJSON (statusToSet,msg,timestamp) = (((((("{\"status\": \"" + statusToSet) + "\", \"message\":\"") + msg) + "\",\"timestamp\":\"") + timestamp) + "\"}")
30+func makeJSON (requestStatus,result,msg,timestamp) = (((((((("{\"requestStatus\": \"" + requestStatus) + "\", \"result\": \"") + result) + "\", \"message\":\"") + msg) + "\",\"timestamp\":\"") + timestamp) + "\"}")
3131
3232
3333 @Callable(i)
34-func setStatus (address,reqStatus,applicationStatus,msg) = {
34+func setStatus (address,reqStatus,result,msg) = {
3535 let caller = toString(addressFromPublicKey(i.callerPublicKey))
3636 let id = toBase58String(i.transactionId)
3737 let currentStatus = getStringByKey(keyUserStatus(address))
3838 let timestamp = lastBlock.timestamp
39- let statusToSet = if (containsElement([RECEIVED, REJECTED, ACCEPTED], reqStatus))
39+ let resultToSet = if (containsElement([RECEIVED, REJECTED, ACCEPTED], result))
40+ then result
41+ else throw("Unknown result for requested status")
42+ let requestedStatus = if (containsElement([REGULAR, VERIFIED], reqStatus))
4043 then reqStatus
41- else throw("Unknown status")
42- if (if ((currentStatus == RECEIVED))
43- then (reqStatus == RECEIVED)
44+ else throw("Unknown status request")
45+ if (if ((currentStatus == REGULAR))
46+ then (requestedStatus == REGULAR)
4447 else false)
45- then throw("Application exist already")
46- else if (containsElement([chris, joep, toString(this)], caller))
47- then [StringEntry(keyUserStatus(address), makeJSON(statusToSet, toBase64String(toBytes(msg)), toString(timestamp)))]
48- else throw("Not allowed to change user status")
48+ then throw("This status is already set")
49+ else if (if ((currentStatus == VERIFIED))
50+ then (requestedStatus == VERIFIED)
51+ else false)
52+ then throw("This status is already set")
53+ else if (containsElement([chris, joep, toString(this)], caller))
54+ then [StringEntry(keyUserStatus(address), makeJSON(reqStatus, result, toBase64String(toBytes(msg)), toString(timestamp)))]
55+ else throw("Not allowed to change user status")
4956 }
5057
5158
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 4 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let chris = "3MsG6jPNCrVJUtYB7XJBxS7utWsXAf4n9Vp"
55
66 let joep = "3Mzm4VLwsN9uZwbTMzPj3XuxV6kEfAR8UDN"
77
88 let RECEIVED = "RECEIVED"
99
1010 let REJECTED = "REJECTED"
1111
1212 let ACCEPTED = "ACCEPTED"
1313
1414 let REGULAR = "REGULAR"
1515
1616 let VERIFIED = "VERIFIED"
1717
1818 func getStringByKey (key) = valueOrElse(getString(this, key), "")
1919
2020
2121 func keyUserStatus (caller) = ("user_" + caller)
2222
2323
2424 func keyUserMessage (caller) = ("msg_" + caller)
2525
2626
2727 func keyUserUpdate (caller) = ("update_" + caller)
2828
2929
30-func makeJSON (statusToSet,msg,timestamp) = (((((("{\"status\": \"" + statusToSet) + "\", \"message\":\"") + msg) + "\",\"timestamp\":\"") + timestamp) + "\"}")
30+func makeJSON (requestStatus,result,msg,timestamp) = (((((((("{\"requestStatus\": \"" + requestStatus) + "\", \"result\": \"") + result) + "\", \"message\":\"") + msg) + "\",\"timestamp\":\"") + timestamp) + "\"}")
3131
3232
3333 @Callable(i)
34-func setStatus (address,reqStatus,applicationStatus,msg) = {
34+func setStatus (address,reqStatus,result,msg) = {
3535 let caller = toString(addressFromPublicKey(i.callerPublicKey))
3636 let id = toBase58String(i.transactionId)
3737 let currentStatus = getStringByKey(keyUserStatus(address))
3838 let timestamp = lastBlock.timestamp
39- let statusToSet = if (containsElement([RECEIVED, REJECTED, ACCEPTED], reqStatus))
39+ let resultToSet = if (containsElement([RECEIVED, REJECTED, ACCEPTED], result))
40+ then result
41+ else throw("Unknown result for requested status")
42+ let requestedStatus = if (containsElement([REGULAR, VERIFIED], reqStatus))
4043 then reqStatus
41- else throw("Unknown status")
42- if (if ((currentStatus == RECEIVED))
43- then (reqStatus == RECEIVED)
44+ else throw("Unknown status request")
45+ if (if ((currentStatus == REGULAR))
46+ then (requestedStatus == REGULAR)
4447 else false)
45- then throw("Application exist already")
46- else if (containsElement([chris, joep, toString(this)], caller))
47- then [StringEntry(keyUserStatus(address), makeJSON(statusToSet, toBase64String(toBytes(msg)), toString(timestamp)))]
48- else throw("Not allowed to change user status")
48+ then throw("This status is already set")
49+ else if (if ((currentStatus == VERIFIED))
50+ then (requestedStatus == VERIFIED)
51+ else false)
52+ then throw("This status is already set")
53+ else if (containsElement([chris, joep, toString(this)], caller))
54+ then [StringEntry(keyUserStatus(address), makeJSON(reqStatus, result, toBase64String(toBytes(msg)), toString(timestamp)))]
55+ else throw("Not allowed to change user status")
4956 }
5057
5158

github/deemru/w8io/169f3d6 
54.11 ms