tx · 9wSgnJX48JcP9wAseqknKRjYGEjwm7kw5rZ4y7RhzAW 3MqxFhe869ri22Y1418TcrXUX2X9YMzG2Yb: -0.01400000 Waves 2019.06.28 21:07 [562320] smart account 3MqxFhe869ri22Y1418TcrXUX2X9YMzG2Yb > SELF 0.00000000 Waves
{ "type": 13, "id": "9wSgnJX48JcP9wAseqknKRjYGEjwm7kw5rZ4y7RhzAW", "fee": 1400000, "feeAssetId": null, "timestamp": 1561745259300, "version": 1, "sender": "3MqxFhe869ri22Y1418TcrXUX2X9YMzG2Yb", "senderPublicKey": "FRkBvFhV1T95mPTxp7sk2Ms2BuHViwyG7yPzxpxye1Kw", "proofs": [ "2Uo8T7zonBwLDmPp1m4eoN7aNmuaGPNGxweVeFBkAvSD3TNK2X78aycLg4CvMa6LeFGbgm9nAvKx2KLmzEcj716t" ], "script": "base64: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", "chainId": 84, "height": 562320, "spentComplexity": 0 } View: original | compacted Prev: Bo8FsrnwbVoY8YX22459tGpgvw8Dwj3tXAw4KU2qieKh Next: DHX94DphffTH9sh442cCJYHDQS1qcTTq7mzw9pVAqAot Diff:
Old | New | Differences | |
---|---|---|---|
85 | 85 | ||
86 | 86 | @Callable(u) | |
87 | 87 | func removeMessage (k) = { | |
88 | - | let v = extract(u.payment) | |
89 | 88 | let i = q(("owner_" + k)) | |
90 | 89 | let z = l(d) | |
91 | 90 | let B = toBase58String(u.caller.bytes) | |
107 | 106 | } | |
108 | 107 | ||
109 | 108 | ||
109 | + | ||
110 | + | @Callable(u) | |
111 | + | func violationDetected (k) = { | |
112 | + | let z = l(d) | |
113 | + | let B = toBase58String(u.caller.bytes) | |
114 | + | if ((B != g)) | |
115 | + | then throw("You aren't owner this dApp") | |
116 | + | else WriteSet([DataEntry(d, (z - 1)), DataEntry(("message_" + k), "#VIOLATION OF RULES#")]) | |
117 | + | } | |
118 | + | ||
119 | + |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 3 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let a = 10000000 | |
5 | 5 | ||
6 | 6 | let b = "NULL" | |
7 | 7 | ||
8 | 8 | let c = "all_message" | |
9 | 9 | ||
10 | 10 | let d = "active_message" | |
11 | 11 | ||
12 | 12 | let e = "earnedWaves" | |
13 | 13 | ||
14 | 14 | let f = "serviceFee" | |
15 | 15 | ||
16 | 16 | let g = "3MviKe8vybnkYuJ83e8QVSWQ1VHyfgpiF3W" | |
17 | 17 | ||
18 | 18 | func h (i,j) = { | |
19 | 19 | let k = toBase58String(sha256(toBytes((i + j)))) | |
20 | 20 | k | |
21 | 21 | } | |
22 | 22 | ||
23 | 23 | ||
24 | 24 | func l (m) = { | |
25 | 25 | let n = { | |
26 | 26 | let o = getInteger(this, m) | |
27 | 27 | if ($isInstanceOf(o, "Int")) | |
28 | 28 | then { | |
29 | 29 | let p = o | |
30 | 30 | p | |
31 | 31 | } | |
32 | 32 | else 0 | |
33 | 33 | } | |
34 | 34 | n | |
35 | 35 | } | |
36 | 36 | ||
37 | 37 | ||
38 | 38 | func q (m) = { | |
39 | 39 | let r = { | |
40 | 40 | let o = getString(this, m) | |
41 | 41 | if ($isInstanceOf(o, "String")) | |
42 | 42 | then { | |
43 | 43 | let p = o | |
44 | 44 | p | |
45 | 45 | } | |
46 | 46 | else b | |
47 | 47 | } | |
48 | 48 | r | |
49 | 49 | } | |
50 | 50 | ||
51 | 51 | ||
52 | 52 | func s () = { | |
53 | 53 | let t = { | |
54 | 54 | let o = getInteger(this, f) | |
55 | 55 | if ($isInstanceOf(o, "Int")) | |
56 | 56 | then { | |
57 | 57 | let p = o | |
58 | 58 | p | |
59 | 59 | } | |
60 | 60 | else a | |
61 | 61 | } | |
62 | 62 | t | |
63 | 63 | } | |
64 | 64 | ||
65 | 65 | ||
66 | 66 | @Callable(u) | |
67 | 67 | func setMessage (j) = { | |
68 | 68 | let v = extract(u.payment) | |
69 | 69 | let w = s() | |
70 | 70 | if (isDefined(v.assetId)) | |
71 | 71 | then throw("WAVES token only at the moment") | |
72 | 72 | else if ((v.amount != w)) | |
73 | 73 | then throw("Wrong service fee amount") | |
74 | 74 | else { | |
75 | 75 | let x = toBase58String(u.caller.bytes) | |
76 | 76 | let k = h(x, j) | |
77 | 77 | let y = l(c) | |
78 | 78 | let z = l(d) | |
79 | 79 | let A = l(e) | |
80 | 80 | WriteSet([DataEntry(("owner_" + k), x), DataEntry(("message_" + k), j), DataEntry(c, (y + 1)), DataEntry(d, (z + 1)), DataEntry(e, (A + w))]) | |
81 | 81 | } | |
82 | 82 | } | |
83 | 83 | ||
84 | 84 | ||
85 | 85 | ||
86 | 86 | @Callable(u) | |
87 | 87 | func removeMessage (k) = { | |
88 | - | let v = extract(u.payment) | |
89 | 88 | let i = q(("owner_" + k)) | |
90 | 89 | let z = l(d) | |
91 | 90 | let B = toBase58String(u.caller.bytes) | |
92 | 91 | if ((i == b)) | |
93 | 92 | then throw("Message didn't found") | |
94 | 93 | else if ((i != B)) | |
95 | 94 | then throw(("You don't owner of message " + k)) | |
96 | 95 | else WriteSet([DataEntry(d, (z - 1)), DataEntry(("message_" + k), "#REMOVED#")]) | |
97 | 96 | } | |
98 | 97 | ||
99 | 98 | ||
100 | 99 | ||
101 | 100 | @Callable(u) | |
102 | 101 | func setServiceFee (C) = { | |
103 | 102 | let B = toBase58String(u.caller.bytes) | |
104 | 103 | if ((B != g)) | |
105 | 104 | then throw("You aren't owner this dApp") | |
106 | 105 | else WriteSet([DataEntry(f, C)]) | |
107 | 106 | } | |
108 | 107 | ||
109 | 108 | ||
109 | + | ||
110 | + | @Callable(u) | |
111 | + | func violationDetected (k) = { | |
112 | + | let z = l(d) | |
113 | + | let B = toBase58String(u.caller.bytes) | |
114 | + | if ((B != g)) | |
115 | + | then throw("You aren't owner this dApp") | |
116 | + | else WriteSet([DataEntry(d, (z - 1)), DataEntry(("message_" + k), "#VIOLATION OF RULES#")]) | |
117 | + | } | |
118 | + | ||
119 | + |
github/deemru/w8io/169f3d6 44.39 ms ◑![]()