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:
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 4 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | + | func a (b,c) = ((("user_" + b) + "_item_") + toString(c)) | |
4 | 5 | ||
5 | 6 | ||
6 | - | @Callable(a) | |
7 | - | func myAddress () = { | |
8 | - | let b = "this.bytes" | |
9 | - | let c = toBase58String(this.bytes) | |
10 | - | let d = " tx.sender.bytes" | |
11 | - | let e = toBase58String(a.caller.bytes) | |
12 | - | throw((((b + c) + d) + e)) | |
7 | + | func d (b) = (("user_" + b) + "_counter") | |
8 | + | ||
9 | + | ||
10 | + | func e (b) = { | |
11 | + | let f = getInteger(this, d(b)) | |
12 | + | let g = f | |
13 | + | if ($isInstanceOf(g, "Int")) | |
14 | + | then { | |
15 | + | let h = g | |
16 | + | h | |
17 | + | } | |
18 | + | else 0 | |
13 | 19 | } | |
14 | 20 | ||
15 | 21 | ||
16 | - | @Verifier(f) | |
17 | - | func g () = { | |
18 | - | let h = sigVerify(f.bodyBytes, f.proofs[0], f.senderPublicKey) | |
19 | - | let i = f | |
20 | - | if ($isInstanceOf(i, "InvokeScriptTransaction")) | |
22 | + | func i (b,c) = isDefined(getString(this, a(b, c))) | |
23 | + | ||
24 | + | ||
25 | + | @Callable(j) | |
26 | + | func createItem (k) = { | |
27 | + | let b = toBase58String(j.caller.bytes) | |
28 | + | let f = e(b) | |
29 | + | [StringEntry(a(b, (f + 1)), k), IntegerEntry(d(b), (f + 1))] | |
30 | + | } | |
31 | + | ||
32 | + | ||
33 | + | ||
34 | + | @Callable(j) | |
35 | + | func removeItem (c) = { | |
36 | + | let b = toBase58String(j.caller.bytes) | |
37 | + | if (!(i(b, c))) | |
38 | + | then throw("Item doesn't exist") | |
39 | + | else [DeleteEntry(a(b, c))] | |
40 | + | } | |
41 | + | ||
42 | + | ||
43 | + | ||
44 | + | @Callable(j) | |
45 | + | func updateItem (c,k) = { | |
46 | + | let b = toBase58String(j.caller.bytes) | |
47 | + | if (!(i(b, c))) | |
48 | + | then throw("Item doesn't exist") | |
49 | + | else [StringEntry(a(b, c), k)] | |
50 | + | } | |
51 | + | ||
52 | + | ||
53 | + | @Verifier(l) | |
54 | + | func m () = { | |
55 | + | let n = sigVerify(l.bodyBytes, l.proofs[0], l.senderPublicKey) | |
56 | + | let o = (this.bytes == l.sender.bytes) | |
57 | + | let g = l | |
58 | + | if ($isInstanceOf(g, "InvokeScriptTransaction")) | |
21 | 59 | then { | |
22 | - | let | |
23 | - | | |
60 | + | let p = g | |
61 | + | n | |
24 | 62 | } | |
25 | - | else h | |
63 | + | else if (n) | |
64 | + | then o | |
65 | + | else false | |
26 | 66 | } | |
27 | 67 |
github/deemru/w8io/873ac7e 25.43 ms ◑![]()