tx · EKh4Paqbr7R9syVTqKHRh3za72M7eBG7rTDrQwheuFbv
3MqxFhe869ri22Y1418TcrXUX2X9YMzG2Yb: -0.01400000 Waves
2019.06.28 06:14 [561426] smart account 3MqxFhe869ri22Y1418TcrXUX2X9YMzG2Yb > SELF 0.00000000 Waves
{
"type": 13,
"id": "EKh4Paqbr7R9syVTqKHRh3za72M7eBG7rTDrQwheuFbv",
"fee": 1400000,
"feeAssetId": null,
"timestamp": 1561691740627,
"version": 1,
"sender": "3MqxFhe869ri22Y1418TcrXUX2X9YMzG2Yb",
"senderPublicKey": "FRkBvFhV1T95mPTxp7sk2Ms2BuHViwyG7yPzxpxye1Kw",
"proofs": [
"4bgCMVAyLPkz1D6KBzakrf3RB7XCfNSezqi4SaLmW3opkXUc4SWmTcB5JLWPPiXy46DR9CWofANiDkULwpn3LJAf"
],
"script": "base64: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",
"chainId": 84,
"height": 561426,
"spentComplexity": 0
}
View: original | compacted
Prev: 6V5htFLFAefvn6jwNrPdn5noA7Z8GLkTFE7Lc84Gr6A7
Next: 7p2nd2GTxzJ3wckcWQsqw82V1nbN9kUf5AYgj6MZg8ak
Diff:
Old | New | | Differences |
---|
1 | 1 | | {-# STDLIB_VERSION 3 #-} |
---|
2 | 2 | | {-# SCRIPT_TYPE ACCOUNT #-} |
---|
3 | 3 | | {-# CONTENT_TYPE DAPP #-} |
---|
4 | | - | let priceadv = 10000000 |
---|
| 4 | + | let serviceFee = 10000000 |
---|
5 | 5 | | |
---|
6 | 6 | | let empty = "NULL" |
---|
7 | 7 | | |
---|
8 | 8 | | let allMessageBoardKey = "all_message" |
---|
9 | 9 | | |
---|
10 | 10 | | let activeMessageKey = "active_message" |
---|
| 11 | + | |
---|
| 12 | + | let earnedWavesKey = "earnedWaves" |
---|
11 | 13 | | |
---|
12 | 14 | | func uniqueKey (owner,text) = { |
---|
13 | 15 | | let uKey = toBase58String(sha256(toBytes((owner + text)))) |
---|
|
42 | 44 | | let pmt = extract(i.payment) |
---|
43 | 45 | | if (isDefined(pmt.assetId)) |
---|
44 | 46 | | then throw("WAVES token only at the moment") |
---|
45 | | - | else if ((pmt.amount != priceadv)) |
---|
| 47 | + | else if ((pmt.amount != serviceFee)) |
---|
46 | 48 | | then throw("You need pay 0.1 WAVES") |
---|
47 | 49 | | else { |
---|
48 | 50 | | let ownerAddress = toBase58String(i.caller.bytes) |
---|
49 | 51 | | let uKey = uniqueKey(ownerAddress, text) |
---|
50 | 52 | | let allMessage = getNumberByKey(allMessageBoardKey) |
---|
51 | 53 | | let actMessage = getNumberByKey(activeMessageKey) |
---|
52 | | - | WriteSet([DataEntry(("owner_" + uKey), ownerAddress), DataEntry(("message_" + uKey), text), DataEntry(allMessageBoardKey, (allMessage + 1)), DataEntry(activeMessageKey, (actMessage + 1))]) |
---|
| 54 | + | let earnedWaves = getNumberByKey(earnedWavesKey) |
---|
| 55 | + | WriteSet([DataEntry(("owner_" + uKey), ownerAddress), DataEntry(("message_" + uKey), text), DataEntry(allMessageBoardKey, (allMessage + 1)), DataEntry(activeMessageKey, (actMessage + 1)), DataEntry(earnedWavesKey, (earnedWaves + serviceFee))]) |
---|
53 | 56 | | } |
---|
54 | 57 | | } |
---|
55 | 58 | | |
---|
Full:
Old | New | | Differences |
---|
1 | 1 | | {-# STDLIB_VERSION 3 #-} |
---|
2 | 2 | | {-# SCRIPT_TYPE ACCOUNT #-} |
---|
3 | 3 | | {-# CONTENT_TYPE DAPP #-} |
---|
4 | | - | let priceadv = 10000000 |
---|
| 4 | + | let serviceFee = 10000000 |
---|
5 | 5 | | |
---|
6 | 6 | | let empty = "NULL" |
---|
7 | 7 | | |
---|
8 | 8 | | let allMessageBoardKey = "all_message" |
---|
9 | 9 | | |
---|
10 | 10 | | let activeMessageKey = "active_message" |
---|
| 11 | + | |
---|
| 12 | + | let earnedWavesKey = "earnedWaves" |
---|
11 | 13 | | |
---|
12 | 14 | | func uniqueKey (owner,text) = { |
---|
13 | 15 | | let uKey = toBase58String(sha256(toBytes((owner + text)))) |
---|
14 | 16 | | uKey |
---|
15 | 17 | | } |
---|
16 | 18 | | |
---|
17 | 19 | | |
---|
18 | 20 | | func getNumberByKey (key) = { |
---|
19 | 21 | | let num = match getInteger(this, key) { |
---|
20 | 22 | | case a: Int => |
---|
21 | 23 | | a |
---|
22 | 24 | | case _ => |
---|
23 | 25 | | 0 |
---|
24 | 26 | | } |
---|
25 | 27 | | num |
---|
26 | 28 | | } |
---|
27 | 29 | | |
---|
28 | 30 | | |
---|
29 | 31 | | func getStrByKey (key) = { |
---|
30 | 32 | | let str = match getString(this, key) { |
---|
31 | 33 | | case a: String => |
---|
32 | 34 | | a |
---|
33 | 35 | | case _ => |
---|
34 | 36 | | empty |
---|
35 | 37 | | } |
---|
36 | 38 | | str |
---|
37 | 39 | | } |
---|
38 | 40 | | |
---|
39 | 41 | | |
---|
40 | 42 | | @Callable(i) |
---|
41 | 43 | | func setMessage (text) = { |
---|
42 | 44 | | let pmt = extract(i.payment) |
---|
43 | 45 | | if (isDefined(pmt.assetId)) |
---|
44 | 46 | | then throw("WAVES token only at the moment") |
---|
45 | | - | else if ((pmt.amount != priceadv)) |
---|
| 47 | + | else if ((pmt.amount != serviceFee)) |
---|
46 | 48 | | then throw("You need pay 0.1 WAVES") |
---|
47 | 49 | | else { |
---|
48 | 50 | | let ownerAddress = toBase58String(i.caller.bytes) |
---|
49 | 51 | | let uKey = uniqueKey(ownerAddress, text) |
---|
50 | 52 | | let allMessage = getNumberByKey(allMessageBoardKey) |
---|
51 | 53 | | let actMessage = getNumberByKey(activeMessageKey) |
---|
52 | | - | WriteSet([DataEntry(("owner_" + uKey), ownerAddress), DataEntry(("message_" + uKey), text), DataEntry(allMessageBoardKey, (allMessage + 1)), DataEntry(activeMessageKey, (actMessage + 1))]) |
---|
| 54 | + | let earnedWaves = getNumberByKey(earnedWavesKey) |
---|
| 55 | + | WriteSet([DataEntry(("owner_" + uKey), ownerAddress), DataEntry(("message_" + uKey), text), DataEntry(allMessageBoardKey, (allMessage + 1)), DataEntry(activeMessageKey, (actMessage + 1)), DataEntry(earnedWavesKey, (earnedWaves + serviceFee))]) |
---|
53 | 56 | | } |
---|
54 | 57 | | } |
---|
55 | 58 | | |
---|
56 | 59 | | |
---|
57 | 60 | | |
---|
58 | 61 | | @Callable(i) |
---|
59 | 62 | | func removeMessage (uKey) = { |
---|
60 | 63 | | let pmt = extract(i.payment) |
---|
61 | 64 | | let owner = getStrByKey(("owner_" + uKey)) |
---|
62 | 65 | | let actMessage = getNumberByKey(activeMessageKey) |
---|
63 | 66 | | let senderAddress = toBase58String(i.caller.bytes) |
---|
64 | 67 | | if ((owner == empty)) |
---|
65 | 68 | | then throw("Message didn't found") |
---|
66 | 69 | | else if ((owner != senderAddress)) |
---|
67 | 70 | | then throw(("You don't owner of message " + uKey)) |
---|
68 | 71 | | else WriteSet([DataEntry(activeMessageKey, (actMessage - 1)), DataEntry(("message_" + uKey), "#REMOVED#")]) |
---|
69 | 72 | | } |
---|
70 | 73 | | |
---|
71 | 74 | | |
---|