tx · FXnNxieuFemMQfuYW2JFe6qW1fhrKtFDxt5Rk5JLsihS 3MriZGLhQEu1jMDKDAbnsbh6TZuZueBAHSY: -0.05000000 Waves 2021.03.17 17:40 [1441862] smart account 3MriZGLhQEu1jMDKDAbnsbh6TZuZueBAHSY > SELF 0.00000000 Waves
{ "type": 13, "id": "FXnNxieuFemMQfuYW2JFe6qW1fhrKtFDxt5Rk5JLsihS", "fee": 5000000, "feeAssetId": null, "timestamp": 1615991996607, "version": 2, "chainId": 84, "sender": "3MriZGLhQEu1jMDKDAbnsbh6TZuZueBAHSY", "senderPublicKey": "3idTJAmqkivFDf1EUKZ85Tt43Rp22pZb3RDiVXTWrgBq", "proofs": [ "ZKK19AxdeCzdZUMAmTKKRbGRFLDqo6uAqR4sU84tQo6wvBN7KPTfWzEdzDWMu8WQC5bCQNWYwL2xePMVExwZs7j" ], "script": "base64:AAIEAAAAAAAAAAsIAhIDCgEIEgASAAAAAAkAAAAAEXRhc2tTdGF0dXNEZWZhdWx0AgAAAAppbmNvbXBsZXRlAAAAABJ0YXNrU3RhdHVzQ29tcGxldGUCAAAACGNvbXBsZXRlAAAAAAd3YXZlc0lkBQAAAAR1bml0AAAAABJhc3NldE5mdEluaXRBbW91bnQAAAAAAAAAAAEAAAAAEGFzc2V0TmZ0RGVjaW1hbHMAAAAAAAAAAAAAAAAAEmFzc2V0TmZ0UmVpc3N1YWJsZQcAAAAAF2Fzc2V0QW1vdW50TWluVGhyZXNob2xkAAAAAAAAAAPoAAAAABJkZWNpbWFsc0Fzc2V0V2F2ZXMAAAAAAAAAAAgAAAAAD2xhYmVsVGFza0lkTGFzdAIAAAAKdGFza0lkTGFzdAAAAAMAAAABaQEAAAAHc2V0VGFzawAAAAEAAAAIdGFza05hbWUEAAAACnRhc2tMYXN0SWQDCQEAAAAJaXNEZWZpbmVkAAAAAQkABBoAAAACBQAAAAR0aGlzBQAAAA9sYWJlbFRhc2tJZExhc3QJAABkAAAAAgkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwUAAAAPbGFiZWxUYXNrSWRMYXN0AAAAAAAAAAABAAAAAAAAAAABBAAAAAlhc3NldE5hbWUJAAEsAAAAAgIAAAAGdGFzayAjCQABpAAAAAEFAAAACnRhc2tMYXN0SWQEAAAAEGFzc2V0RGVzY3JpcHRpb24JAAEsAAAAAgIAAAAeTkZULXRva2VuIG9mIHRhc2sgbWFuYWdlciBmcm9tCQAEJQAAAAEFAAAABHRoaXMEAAAACXBtdEFtb3VudAgJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAAAAAGYW1vdW50BAAAAAhuZnRJc3N1ZQkABEIAAAAFBQAAAAlhc3NldE5hbWUFAAAAEGFzc2V0RGVzY3JpcHRpb24FAAAAEmFzc2V0TmZ0SW5pdEFtb3VudAUAAAAQYXNzZXROZnREZWNpbWFscwUAAAASYXNzZXROZnRSZWlzc3VhYmxlBAAAAApuZnRJc3N1ZUlkCQACWAAAAAEJAAQ4AAAAAQUAAAAIbmZ0SXNzdWUEAAAADWxhYmVsVGFza05hbWUJAAEsAAAAAgIAAAAJdGFz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", "height": 1441862, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: Fo4v8L2EFybJBcdJxykFUA7JujeTyFWMEtnhx3aXFKN3 Next: none Full:
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 4 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let a = "incomplete" | |
5 | 5 | ||
6 | 6 | let b = "complete" | |
7 | 7 | ||
8 | 8 | let c = unit | |
9 | 9 | ||
10 | 10 | let d = 1 | |
11 | 11 | ||
12 | 12 | let e = 0 | |
13 | 13 | ||
14 | 14 | let f = false | |
15 | 15 | ||
16 | 16 | let g = 1000 | |
17 | 17 | ||
18 | 18 | let h = 8 | |
19 | 19 | ||
20 | 20 | let i = "taskIdLast" | |
21 | 21 | ||
22 | 22 | @Callable(j) | |
23 | 23 | func setTask (k) = { | |
24 | 24 | let l = if (isDefined(getInteger(this, i))) | |
25 | 25 | then (getIntegerValue(this, i) + 1) | |
26 | 26 | else 1 | |
27 | 27 | let m = ("task #" + toString(l)) | |
28 | 28 | let n = ("NFT-token of task manager from" + toString(this)) | |
29 | 29 | let o = j.payments[0].amount | |
30 | 30 | let p = Issue(m, n, d, e, f) | |
31 | 31 | let q = toBase58String(calculateAssetId(p)) | |
32 | 32 | let r = ("taskName_" + q) | |
33 | 33 | let s = ("taskStatus_" + q) | |
34 | 34 | let t = ("taskAmount_" + q) | |
35 | 35 | if ((size(j.payments) != 1)) | |
36 | 36 | then throw("One attached assets expected") | |
37 | 37 | else if ((j.payments[0].assetId != c)) | |
38 | 38 | then throw("must be attached asset: WAVES") | |
39 | 39 | else if ((g > j.payments[0].amount)) | |
40 | 40 | then throw((("amount must be greater than the minimum threshold: " + toString(g)) + " WAVES")) | |
41 | 41 | else if ((j.caller == this)) | |
42 | 42 | then throw("method may not be called from the contract") | |
43 | 43 | else [StringEntry(r, k), StringEntry(s, a), p, ScriptTransfer(j.caller, d, fromBase58String(q)), IntegerEntry(t, o), IntegerEntry(i, l)] | |
44 | 44 | } | |
45 | 45 | ||
46 | 46 | ||
47 | 47 | ||
48 | 48 | @Callable(j) | |
49 | 49 | func completeTask () = { | |
50 | 50 | let u = $Tuple2(j.payments[0].amount, valueOrErrorMessage(j.payments[0].assetId, "Attached asset is not expected")) | |
51 | 51 | let o = u._1 | |
52 | 52 | let v = u._2 | |
53 | 53 | let s = ("taskStatus_" + toBase58String(v)) | |
54 | 54 | let t = ("taskAmount_" + toBase58String(v)) | |
55 | 55 | let w = toBase58String(value(j.payments[0].assetId)) | |
56 | 56 | let x = valueOrErrorMessage(assetInfo(value(j.payments[0].assetId)), (("Asset " + w) + " doesn't exist")) | |
57 | 57 | let y = getIntegerValue(this, t) | |
58 | 58 | if ((size(j.payments) != 1)) | |
59 | 59 | then throw("One attached assets expected") | |
60 | 60 | else if ((j.caller == this)) | |
61 | 61 | then throw("method may not be called from the contract") | |
62 | 62 | else if (!(isDefined(getString(this, s)))) | |
63 | 63 | then throw("Attached asset is not expected") | |
64 | 64 | else [StringEntry(s, b), Burn(v, o), ScriptTransfer(j.caller, y, c)] | |
65 | 65 | } | |
66 | 66 | ||
67 | 67 | ||
68 | 68 | ||
69 | 69 | @Callable(j) | |
70 | 70 | func removeTask () = { | |
71 | 71 | let z = $Tuple2(j.payments[0].amount, value(j.payments[0].assetId)) | |
72 | 72 | let o = z._1 | |
73 | 73 | let v = z._2 | |
74 | 74 | let t = ("taskAmount_" + toBase58String(v)) | |
75 | 75 | let s = ("taskStatus_" + toBase58String(v)) | |
76 | 76 | let r = ("taskName_" + toBase58String(v)) | |
77 | 77 | let w = toBase58String(value(j.payments[0].assetId)) | |
78 | 78 | let x = valueOrErrorMessage(assetInfo(value(j.payments[0].assetId)), (("Asset " + w) + " doesn't exist")) | |
79 | 79 | if ((size(j.payments) != 1)) | |
80 | 80 | then throw("One attached assets expected") | |
81 | 81 | else if ((j.caller == this)) | |
82 | 82 | then throw("method may not be called from the contract") | |
83 | 83 | else if (isDefined(getString(this, s))) | |
84 | 84 | then { | |
85 | 85 | let A = getString(this, s) | |
86 | 86 | if (if ((A == a)) | |
87 | 87 | then (value(j.payments[0].amount) == d) | |
88 | 88 | else false) | |
89 | 89 | then { | |
90 | 90 | let y = (getIntegerValue(this, t) / 2) | |
91 | 91 | [Burn(v, o), ScriptTransfer(j.caller, y, c), DeleteEntry(t), DeleteEntry(s), DeleteEntry(r)] | |
92 | 92 | } | |
93 | 93 | else if ((A == b)) | |
94 | 94 | then [DeleteEntry(t), DeleteEntry(s), DeleteEntry(r)] | |
95 | 95 | else throw("Task have a broken status") | |
96 | 96 | } | |
97 | 97 | else throw("Attached asset is not expected") | |
98 | 98 | } | |
99 | 99 | ||
100 | 100 | ||
101 | 101 | @Verifier(B) | |
102 | 102 | func C () = sigVerify(B.bodyBytes, B.proofs[0], B.senderPublicKey) | |
103 | 103 |
github/deemru/w8io/169f3d6 26.37 ms ◑![]()