tx · 8xJT4YYGVjt3ykdwu7SNGvV24L6RQxyVipX1zmeZn513
3MzLFtW4HAnHScA7x9AoxtiiPrGPLyKdK5f: -0.01400000 Waves
2021.01.10 11:51 [1347113] smart account 3MzLFtW4HAnHScA7x9AoxtiiPrGPLyKdK5f > SELF 0.00000000 Waves
{
"type": 13,
"id": "8xJT4YYGVjt3ykdwu7SNGvV24L6RQxyVipX1zmeZn513",
"fee": 1400000,
"feeAssetId": null,
"timestamp": 1610268785862,
"version": 2,
"chainId": 84,
"sender": "3MzLFtW4HAnHScA7x9AoxtiiPrGPLyKdK5f",
"senderPublicKey": "6wBzB7Bw3oZwcxqF44P6x9GRDda14XkVXQdfCQSAWpeP",
"proofs": [
"5hEAgVW27akM2QoEVzhScCkwdEmNrwd7yAJzWSweNREr74m1Wh4nuhUqByWv44Uu7LWVsNqVz7oFgqSfwb3RsPLD"
],
"script": "base64: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",
"height": 1347113,
"applicationStatus": "succeeded",
"spentComplexity": 0
}
View: original | compacted
Prev: 5aCdcKYHsh24jqy7W7GZx1hp6zUPMR5yuwiRt7ZjMrGL
Next: 3c2xPB8Q5EEee9DTQiAwBVP4wbdJh9YLzh86zb8Yt5XY
Diff:
Old | New | | Differences |
---|
17 | 17 | | func keyUserStatus (caller) = ("user_" + caller) |
---|
18 | 18 | | |
---|
19 | 19 | | |
---|
| 20 | + | func keyUserMessage (caller) = ("msg_" + caller) |
---|
| 21 | + | |
---|
| 22 | + | |
---|
| 23 | + | func keyUserUpdate (caller) = ("update_" + caller) |
---|
| 24 | + | |
---|
| 25 | + | |
---|
| 26 | + | func makeJSON (statusToSet,msg,timestamp) = (((((("{\"status\": \"" + statusToSet) + "\", \"message\":\"") + msg) + "\",\"timestamp\":\"") + timestamp) + "\"}") |
---|
| 27 | + | |
---|
| 28 | + | |
---|
20 | 29 | | @Callable(i) |
---|
21 | 30 | | func setStatus (address,status,msg) = { |
---|
22 | 31 | | let caller = toString(addressFromPublicKey(i.callerPublicKey)) |
---|
|
31 | 40 | | else false) |
---|
32 | 41 | | then throw("Application exist already") |
---|
33 | 42 | | else if (containsElement([chris, joep, toString(this)], caller)) |
---|
34 | | - | then [StringEntry((keyUserStatus(address) + toString(timestamp)), statusToSet), StringEntry((("message_" + address) + toString(timestamp)), msg)] |
---|
| 43 | + | then [StringEntry(keyUserStatus(address), makeJSON(address, toBase64String(toBytes(msg)), toString(timestamp)))] |
---|
35 | 44 | | else throw("Not allowed to change user status") |
---|
36 | 45 | | } |
---|
37 | 46 | | |
---|
Full:
Old | New | | Differences |
---|
1 | 1 | | {-# STDLIB_VERSION 4 #-} |
---|
2 | 2 | | {-# SCRIPT_TYPE ACCOUNT #-} |
---|
3 | 3 | | {-# CONTENT_TYPE DAPP #-} |
---|
4 | 4 | | let chris = "3MsG6jPNCrVJUtYB7XJBxS7utWsXAf4n9Vp" |
---|
5 | 5 | | |
---|
6 | 6 | | let joep = "3Mzm4VLwsN9uZwbTMzPj3XuxV6kEfAR8UDN" |
---|
7 | 7 | | |
---|
8 | 8 | | let received = "RECEIVED" |
---|
9 | 9 | | |
---|
10 | 10 | | let rejected = "REJECTED" |
---|
11 | 11 | | |
---|
12 | 12 | | let accepted = "ACCEPTED" |
---|
13 | 13 | | |
---|
14 | 14 | | func getStringByKey (key) = valueOrElse(getString(this, key), "") |
---|
15 | 15 | | |
---|
16 | 16 | | |
---|
17 | 17 | | func keyUserStatus (caller) = ("user_" + caller) |
---|
18 | 18 | | |
---|
19 | 19 | | |
---|
| 20 | + | func keyUserMessage (caller) = ("msg_" + caller) |
---|
| 21 | + | |
---|
| 22 | + | |
---|
| 23 | + | func keyUserUpdate (caller) = ("update_" + caller) |
---|
| 24 | + | |
---|
| 25 | + | |
---|
| 26 | + | func makeJSON (statusToSet,msg,timestamp) = (((((("{\"status\": \"" + statusToSet) + "\", \"message\":\"") + msg) + "\",\"timestamp\":\"") + timestamp) + "\"}") |
---|
| 27 | + | |
---|
| 28 | + | |
---|
20 | 29 | | @Callable(i) |
---|
21 | 30 | | func setStatus (address,status,msg) = { |
---|
22 | 31 | | let caller = toString(addressFromPublicKey(i.callerPublicKey)) |
---|
23 | 32 | | let id = toBase58String(i.transactionId) |
---|
24 | 33 | | let currentStatus = getStringByKey(keyUserStatus(address)) |
---|
25 | 34 | | let timestamp = lastBlock.timestamp |
---|
26 | 35 | | let statusToSet = if (containsElement([received, rejected, accepted], status)) |
---|
27 | 36 | | then status |
---|
28 | 37 | | else throw("Unknown status") |
---|
29 | 38 | | if (if ((currentStatus == received)) |
---|
30 | 39 | | then (status == received) |
---|
31 | 40 | | else false) |
---|
32 | 41 | | then throw("Application exist already") |
---|
33 | 42 | | else if (containsElement([chris, joep, toString(this)], caller)) |
---|
34 | | - | then [StringEntry((keyUserStatus(address) + toString(timestamp)), statusToSet), StringEntry((("message_" + address) + toString(timestamp)), msg)] |
---|
| 43 | + | then [StringEntry(keyUserStatus(address), makeJSON(address, toBase64String(toBytes(msg)), toString(timestamp)))] |
---|
35 | 44 | | else throw("Not allowed to change user status") |
---|
36 | 45 | | } |
---|
37 | 46 | | |
---|
38 | 47 | | |
---|