tx · LyW9DYmWqm2HmapPNBYnUAqWU7XDM4YyQVJG7bWrFxX

3MwzVVTXiYGQsp48VX8adQ8cpqERGusRZfD:  -0.01400000 Waves

2020.11.25 17:37 [1281063] smart account 3MwzVVTXiYGQsp48VX8adQ8cpqERGusRZfD > SELF 0.00000000 Waves

{ "type": 13, "id": "LyW9DYmWqm2HmapPNBYnUAqWU7XDM4YyQVJG7bWrFxX", "fee": 1400000, "feeAssetId": null, "timestamp": 1606315074064, "version": 2, "chainId": 84, "sender": "3MwzVVTXiYGQsp48VX8adQ8cpqERGusRZfD", "senderPublicKey": "8ejXYSqoG5h6bNLBRchYHfFvhrj7S4h1tpKRWqZ4oj8D", "proofs": [ "2BkRBHg1VttC3XpzpsBXiE8G1cBC5YMFvEo52yMG6WpeZNabEpSZNjE1iuFEmKsvpZ15687t7SULArvZz7TatMXi" ], "script": "base64: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", "height": 1281063, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: ARWQhEgZ8kDv3r1zYovyygWwYqnnHXU6KvnFYkW7oohU Next: 99vpEaHsoXs5bTSJCkLur9BwsH1j39xfZNWKMQRahiY2 Full:
OldNewDifferences
11 {-# STDLIB_VERSION 4 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4+func itemKey (user,id) = ((("user_" + user) + "_item_") + toString(id))
5+
6+
7+func counterKey (user) = (("user_" + user) + "_counter")
8+
9+
10+func getCounter (user) = {
11+ let counter = getInteger(this, counterKey(user))
12+ match counter {
13+ case c: Int =>
14+ c
15+ case _ =>
16+ 0
17+ }
18+ }
19+
20+
21+func itemExists (user,id) = isDefined(getString(this, itemKey(user, id)))
422
523
624 @Callable(i)
7-func myAddress () = {
8- let message1 = "this.bytes"
9- let message2 = toBase58String(this.bytes)
10- let message3 = " tx.sender.bytes"
11- let message4 = toBase58String(i.caller.bytes)
12- throw((((message1 + message2) + message3) + message4))
25+func createItem (content) = {
26+ let user = toBase58String(i.caller.bytes)
27+ let counter = getCounter(user)
28+[StringEntry(itemKey(user, (counter + 1)), content), IntegerEntry(counterKey(user), (counter + 1))]
29+ }
30+
31+
32+
33+@Callable(i)
34+func removeItem (id) = {
35+ let user = toBase58String(i.caller.bytes)
36+ if (!(itemExists(user, id)))
37+ then throw("Item doesn't exist")
38+ else [DeleteEntry(itemKey(user, id))]
39+ }
40+
41+
42+
43+@Callable(i)
44+func updateItem (id,content) = {
45+ let user = toBase58String(i.caller.bytes)
46+ if (!(itemExists(user, id)))
47+ then throw("Item doesn't exist")
48+ else [StringEntry(itemKey(user, id), content)]
1349 }
1450
1551
1652 @Verifier(tx)
1753 func verify () = {
1854 let signature = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
55+ let owner = (this.bytes == tx.sender.bytes)
1956 match tx {
2057 case t: InvokeScriptTransaction =>
2158 signature
2259 case _ =>
23- signature
60+ if (signature)
61+ then owner
62+ else false
2463 }
2564 }
2665

github/deemru/w8io/873ac7e 
36.28 ms