tx · 55yabRpXNicqUoA7bgc87tvCiPNHB74A1WG11EHxhFCs

3MriZGLhQEu1jMDKDAbnsbh6TZuZueBAHSY:  -0.05000000 Waves

2021.03.16 01:29 [1439433] smart account 3MriZGLhQEu1jMDKDAbnsbh6TZuZueBAHSY > SELF 0.00000000 Waves

{ "type": 13, "id": "55yabRpXNicqUoA7bgc87tvCiPNHB74A1WG11EHxhFCs", "fee": 5000000, "feeAssetId": null, "timestamp": 1615847387716, "version": 2, "chainId": 84, "sender": "3MriZGLhQEu1jMDKDAbnsbh6TZuZueBAHSY", "senderPublicKey": "3idTJAmqkivFDf1EUKZ85Tt43Rp22pZb3RDiVXTWrgBq", "proofs": [ "4qRsh1pTcy8iZAjMfnGDrnFdAiDLnsJyrp9HF32dZo8CXNSj3HYBDqcKq5gxVhY1CFjyhicku6SHJcGsPsU9bvkj" ], "script": "base64:AAIEAAAAAAAAAAsIAhIDCgEIEgASAAAAAAoAAAAAEXRhc2tTdGF0dXNEZWZhdWx0AgAAAAppbmNvbXBsZXRlAAAAABJ0YXNrU3RhdHVzQ29tcGxldGUCAAAACGNvbXBsZXRlAAAAAAxhZGRyQ29udHJhY3QJAQAAAAdBZGRyZXNzAAAAAQEAAAAaAVQeulVTb30gIatILq7oKevTQfmT23BHXzEAAAAADGFzc2V0V2F2ZXNJZAUAAAAEdW5pdAAAAAASYXNzZXROZnRJbml0QW1vdW50AAAAAAAAAAABAAAAABBhc3NldE5mdERlY2ltYWxzAAAAAAAAAAAAAAAAABJhc3NldE5mdFJlaXNzdWFibGUHAAAAABdhc3NldEFtb3VudE1pblRocmVzaG9sZAAAAAAAAAAD6AAAAAASZGVjaW1hbHNBc3NldFdhdmVzAAAAAAAAAAAIAAAAAA9sYWJlbFRhc2tJZExhc3QCAAAACnRhc2tJZExhc3QAAAADAAAAAWkBAAAAB3NldFRhc2sAAAABAAAACHRhc2tOYW1lBAAAAAp0YXNrTGFzdElkAwkBAAAACWlzRGVmaW5lZAAAAAEJAAQaAAAAAgUAAAAEdGhpcwUAAAAPbGFiZWxUYXNrSWRMYXN0CQAAZAAAAAIJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMFAAAAD2xhYmVsVGFza0lkTGFzdAAAAAAAAAAAAQAAAAAAAAAAAQQAAAAJYXNzZXROYW1lCQABLAAAAAICAAAABnRhc2sgIwkAAaQAAAABBQAAAAp0YXNrTGFzdElkBAAAABBhc3NldERlc2NyaXB0aW9uCQABLAAAAAICAAAAHk5GVC10b2tlbiBvZiB0YXNrIG1hbmFnZXIgZnJvbQkABCUAAAABBQAAAAR0aGlzBAAAABVpbnRBc3NldGlucHV0SWRBbW91bnQICQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAAAAAABmFtb3VudAQAAAAKc2hhcmVJc3N1ZQkABEIAAAAFBQAAAAlhc3NldE5hbWUFAAAAEGFzc2V0RGVzY3JpcHRpb24FAAAAEmFzc2V0TmZ0SW5pdEFtb3VudAUAAAAQYXNzZXROZnREZWNpbWFscwUAAAASYXNzZXROZnRSZWlzc3VhYmxlBAAAAAxzaGFyZUlzc3VlSWQJAAJYAAAAAQkABDgAAAABBQAAAApzaGFyZUlzc3VlBAAAAA1sYWJlbFRhc2tOYW1lCQABLAAAAAICAAAACXRhc2tOYW1lXwUAAAAMc2hhcmVJc3N1ZUlkBAAAAA9sYWJlbFRhc2tTdGF0dXMJAAEsAAAAAgIAAAALdGFza1N0YXR1c18FAAAADHNoYXJlSXNzdWVJZAQAAAAPbGFiZWxUYXNrQW1vdW50CQABLAAAAAICAAAAC3Rhc2tBbW91bnRfBQAAAAxzaGFyZUlzc3VlSWQDCQAAZgAAAAIJAAGQAAAAAQgFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAEJAAACAAAAAQIAAAAcT25lIGF0dGFjaGVkIGFzc2V0cyBleHBlY3RlZAMJAQAAAAIhPQAAAAIICQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAAAAAAB2Fzc2V0SWQFAAAADGFzc2V0V2F2ZXNJZAkAAAIAAAABAgAAAB1tdXN0IGJlIGF0dGFjaGVkIGFzc2V0OiBXQVZFUwMJAQAAAAlpc0RlZmluZWQAAAABBQAAAA1sYWJlbFRhc2tOYW1lCQAAAgAAAAECAAAALFRhc2sgd2l0aCBhIHNwZWNpZmllZCBuYW1lIGlzIGFscmVhZHkgZXhpc3RzAwkAAGYAAAACBQAAABdhc3NldEFtb3VudE1pblRocmVzaG9sZAgJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAAAAAGYW1vdW50CQAAAgAAAAECAAAAP2Ftb3VudCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiB0aGUgbWluaW11bSB0aHJlc2hvbGQ6IDAuMDAwMSBXQVZFUwMJAAAAAAAAAggFAAAAAWkAAAAGY2FsbGVyBQAAAAxhZGRyQ29udHJhY3QJAAACAAAAAQIAAAAqbWV0aG9kIG1heSBub3QgYmUgY2FsbGVkIGZyb20gdGhlIGNvbnRyYWN0CQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAADWxhYmVsVGFza05hbWUFAAAACHRhc2tOYW1lCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAAD2xhYmVsVGFza1N0YXR1cwUAAAARdGFza1N0YXR1c0RlZmF1bHQJAARMAAAAAgUAAAAKc2hhcmVJc3N1ZQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIFAAAAEmFzc2V0TmZ0SW5pdEFtb3VudAkAAlkAAAABBQAAAAxzaGFyZUlzc3VlSWQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAAPbGFiZWxUYXNrU3RhdHVzBQAAABF0YXNrU3RhdHVzRGVmYXVsdAkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADBQAAAAxhZGRyQ29udHJhY3QFAAAAFWludEFzc2V0aW5wdXRJZEFtb3VudAUAAAAMYXNzZXRXYXZlc0lkCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAA9sYWJlbFRhc2tBbW91bnQFAAAAFWludEFzc2V0aW5wdXRJZEFtb3VudAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAPbGFiZWxUYXNrSWRMYXN0BQAAAAp0YXNrTGFzdElkBQAAAANuaWwAAAABaQEAAAAMY29tcGxldGVUYXNrAAAAAAQAAAALJHQwMjM5OTI0OTEJAAUUAAAAAggJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAAAAAGYW1vdW50CQEAAAAFdmFsdWUAAAABCAkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAAAAAdhc3NldElkBAAAABBhc3NldElucHV0QW1vdW50CAUAAAALJHQwMjM5OTI0OTEAAAACXzEEAAAADGFzc2V0SW5wdXRJZAgFAAAACyR0MDIzOTkyNDkxAAAAAl8yBAAAAA9sYWJlbFRhc2tTdGF0dXMJAAEsAAAAAgIAAAALdGFza1N0YXR1c18JAAJYAAAAAQUAAAAMYXNzZXRJbnB1dElkBAAAAA9sYWJlbFRhc2tBbW91bnQJAAEsAAAAAgIAAAALdGFza0Ftb3VudF8JAAJYAAAAAQUAAAAMYXNzZXRJbnB1dElkBAAAABJzdHJpbmdBc3NldElucHV0SWQJAAJYAAAAAQkBAAAABXZhbHVlAAAAAQgJAAGRAAAAAggFAAAAAWkA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dAMJAABmAAAAAgkAAZAAAAABCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAQkAAAIAAAABAgAAABxPbmUgYXR0YWNoZWQgYXNzZXRzIGV4cGVjdGVkAwkAAAAAAAACCAUAAAABaQAAAAZjYWxsZXIFAAAADGFkZHJDb250cmFjdAkAAAIAAAABAgAAACptZXRob2QgbWF5IG5vdCBiZSBjYWxsZWQgZnJvbSB0aGUgY29udHJhY3QDAwMJAAAAAAAAAgkBAAAABXZhbHVlAAAAAQgFAAAADmluZm9Bc3NldElucHV0AAAACGRlY2ltYWxzBQAAABBhc3NldE5mdERlY2ltYWxzCQAAAAAAAAIJAQAAAAV2YWx1ZQAAAAEIBQAAAA5pbmZvQXNzZXRJbnB1dAAAAApyZWlzc3VhYmxlBQAAABJhc3NldE5mdFJlaXNzdWFibGUHCQEAAAAJaXNEZWZpbmVkAAAAAQkABB0AAAACBQAAAAR0aGlzBQAAAA9sYWJlbFRhc2tTdGF0dXMHBAAAAAp0YXNrU3RhdHVzCQAEHQAAAAIFAAAABHRoaXMFAAAAD2xhYmVsVGFza1N0YXR1cwMDCQAAAAAAAAIFAAAACnRhc2tTdGF0dXMFAAAAEXRhc2tTdGF0dXNEZWZhdWx0CQAAAAAAAAIJAQAAAAV2YWx1ZQAAAAEICQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAAAAAABmFtb3VudAUAAAASYXNzZXROZnRJbml0QW1vdW50BwQAAAAWaW50QXNzZXRPdXRwdXRJZEFtb3VudAkAAGwAAAAGCQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzBQAAAA9sYWJlbFRhc2tBbW91bnQAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAFAAAAEmRlY2ltYWxzQXNzZXRXYXZlcwUAAAAERE9XTgkABEwAAAACCQEAAAAEQnVybgAAAAIFAAAADGFzc2V0SW5wdXRJZAUAAAAQYXNzZXRJbnB1dEFtb3VudAkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIFAAAAFmludEFzc2V0T3V0cHV0SWRBbW91bnQFAAAADGFzc2V0V2F2ZXNJZAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABBQAAAA9sYWJlbFRhc2tBbW91bnQJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQUAAAAPbGFiZWxUYXNrU3RhdHVzCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEFAAAADWxhYmVsVGFza05hbWUFAAAAA25pbAMJAAAAAAAAAgUAAAASdGFza1N0YXR1c0NvbXBsZXRlBQAAAAp0YXNrU3RhdHVzCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEFAAAAD2xhYmVsVGFza0Ftb3VudAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABBQAAAA9sYWJlbFRhc2tTdGF0dXMJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQUAAAANbGFiZWxUYXNrTmFtZQUAAAADbmlsCQAAAgAAAAECAAAAGVRhc2sgaGF2ZSBhIGJyb2tlbiBzdGF0dXMJAAACAAAAAQIAAAAeQXR0YWNoZWQgYXNzZXQgaXMgbm90IGV4cGVjdGVkAAAAAIlJfKk=", "height": 1439433, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: GFmJ2zp2Ji635f7RwY8YMY1X2jmVCe66S2RUB79qabVE Next: 3YiTsHvqPnXTmkxcmqGAVdjwQf2G3TJ2oWfcAcaWUaJq Diff:
OldNewDifferences
1919
2020 let i = 8
2121
22-@Callable(j)
23-func setTask (k) = {
24- let l = ((toBase58String(value(j.callerPublicKey)) + ", task: ") + k)
25- let m = ("NFT-token of task manager from" + toString(this))
26- let n = j.payments[0].amount
27- let o = Issue(l, m, e, f, g)
28- let p = toBase58String(calculateAssetId(o))
29- let q = ("taskName_" + p)
30- let r = ("taskStatus_" + p)
31- let s = ("taskAmount_" + p)
32- if ((size(j.payments) > 1))
22+let j = "taskIdLast"
23+
24+@Callable(k)
25+func setTask (l) = {
26+ let m = if (isDefined(getInteger(this, j)))
27+ then (getIntegerValue(this, j) + 1)
28+ else 1
29+ let n = ("task #" + toString(m))
30+ let o = ("NFT-token of task manager from" + toString(this))
31+ let p = k.payments[0].amount
32+ let q = Issue(n, o, e, f, g)
33+ let r = toBase58String(calculateAssetId(q))
34+ let s = ("taskName_" + r)
35+ let t = ("taskStatus_" + r)
36+ let u = ("taskAmount_" + r)
37+ if ((size(k.payments) > 1))
3338 then throw("One attached assets expected")
34- else if ((j.payments[0].assetId != d))
39+ else if ((k.payments[0].assetId != d))
3540 then throw("must be attached asset: WAVES")
36- else if ((h > j.payments[0].amount))
37- then throw("amount must be greater than the minimum threshold: 0.0001 WAVES")
38- else if ((j.caller == c))
39- then throw("method may not be called from the contract")
40- else [StringEntry(q, k), StringEntry(r, a), o, ScriptTransfer(j.caller, e, fromBase58String(p)), StringEntry(r, a), ScriptTransfer(c, n, d), IntegerEntry(s, n)]
41+ else if (isDefined(s))
42+ then throw("Task with a specified name is already exists")
43+ else if ((h > k.payments[0].amount))
44+ then throw("amount must be greater than the minimum threshold: 0.0001 WAVES")
45+ else if ((k.caller == c))
46+ then throw("method may not be called from the contract")
47+ else [StringEntry(s, l), StringEntry(t, a), q, ScriptTransfer(k.caller, e, fromBase58String(r)), StringEntry(t, a), ScriptTransfer(c, p, d), IntegerEntry(u, p), IntegerEntry(j, m)]
4148 }
4249
4350
4451
45-@Callable(j)
52+@Callable(k)
4653 func completeTask () = {
47- let t = $Tuple2(j.payments[0].amount, value(j.payments[0].assetId))
48- let u = t._1
49- let v = t._2
50- let r = ("taskStatus_" + toBase58String(v))
51- let s = ("taskAmount_" + toBase58String(v))
52- let w = toBase58String(value(j.payments[0].assetId))
53- let x = valueOrErrorMessage(assetInfo(value(j.payments[0].assetId)), (("Asset " + w) + " doesn't exist"))
54- let y = getIntegerValue(this, s)
55- if ((size(j.payments) > 1))
54+ let v = $Tuple2(k.payments[0].amount, value(k.payments[0].assetId))
55+ let w = v._1
56+ let x = v._2
57+ let t = ("taskStatus_" + toBase58String(x))
58+ let u = ("taskAmount_" + toBase58String(x))
59+ let y = toBase58String(value(k.payments[0].assetId))
60+ let z = valueOrErrorMessage(assetInfo(value(k.payments[0].assetId)), (("Asset " + y) + " doesn't exist"))
61+ let A = getIntegerValue(this, u)
62+ if ((size(k.payments) > 1))
5663 then throw("One attached assets expected")
57- else if ((j.caller == c))
64+ else if ((k.caller == c))
5865 then throw("method may not be called from the contract")
59- else if (if (if (if ((value(j.payments[0].amount) == e))
60- then (value(x.decimals) == f)
66+ else if (if (if (if ((value(k.payments[0].amount) == e))
67+ then (value(z.decimals) == f)
6168 else false)
62- then (value(x.reissuable) == g)
69+ then (value(z.reissuable) == g)
6370 else false)
64- then isDefined(getString(this, r))
71+ then isDefined(getString(this, t))
6572 else false)
66- then [StringEntry(r, b), Burn(v, u), ScriptTransfer(j.caller, y, d)]
73+ then [StringEntry(t, b), Burn(x, w), ScriptTransfer(k.caller, A, d)]
6774 else throw("Attached asset is not expected")
6875 }
6976
7077
7178
72-@Callable(j)
79+@Callable(k)
7380 func removeTask () = {
74- let z = $Tuple2(j.payments[0].amount, value(j.payments[0].assetId))
75- let u = z._1
76- let v = z._2
77- let s = ("taskAmount_" + toBase58String(v))
78- let r = ("taskStatus_" + toBase58String(v))
79- let q = ("taskName_" + toBase58String(v))
80- let w = toBase58String(value(j.payments[0].assetId))
81- let x = valueOrErrorMessage(assetInfo(value(j.payments[0].assetId)), (("Asset " + w) + " doesn't exist"))
82- if ((size(j.payments) > 1))
81+ let B = $Tuple2(k.payments[0].amount, value(k.payments[0].assetId))
82+ let w = B._1
83+ let x = B._2
84+ let u = ("taskAmount_" + toBase58String(x))
85+ let t = ("taskStatus_" + toBase58String(x))
86+ let s = ("taskName_" + toBase58String(x))
87+ let y = toBase58String(value(k.payments[0].assetId))
88+ let z = valueOrErrorMessage(assetInfo(value(k.payments[0].assetId)), (("Asset " + y) + " doesn't exist"))
89+ if ((size(k.payments) > 1))
8390 then throw("One attached assets expected")
84- else if ((j.caller == c))
91+ else if ((k.caller == c))
8592 then throw("method may not be called from the contract")
86- else if (if (if ((value(x.decimals) == f))
87- then (value(x.reissuable) == g)
93+ else if (if (if ((value(z.decimals) == f))
94+ then (value(z.reissuable) == g)
8895 else false)
89- then isDefined(getString(this, r))
96+ then isDefined(getString(this, t))
9097 else false)
9198 then {
92- let A = getString(this, r)
93- if (if ((A == a))
94- then (value(j.payments[0].amount) == e)
99+ let C = getString(this, t)
100+ if (if ((C == a))
101+ then (value(k.payments[0].amount) == e)
95102 else false)
96103 then {
97- let y = pow(getIntegerValue(this, s), 0, 1, 0, i, DOWN)
98-[Burn(v, u), ScriptTransfer(j.caller, y, d), DeleteEntry(s), DeleteEntry(r), DeleteEntry(q)]
104+ let A = pow(getIntegerValue(this, u), 0, 1, 0, i, DOWN)
105+[Burn(x, w), ScriptTransfer(k.caller, A, d), DeleteEntry(u), DeleteEntry(t), DeleteEntry(s)]
99106 }
100- else if ((b == A))
101- then [DeleteEntry(s), DeleteEntry(r), DeleteEntry(q)]
107+ else if ((b == C))
108+ then [DeleteEntry(u), DeleteEntry(t), DeleteEntry(s)]
102109 else throw("Task have a broken status")
103110 }
104111 else throw("Attached asset is not expected")
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 4 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "incomplete"
55
66 let b = "complete"
77
88 let c = Address(base58'3MriZGLhQEu1jMDKDAbnsbh6TZuZueBAHSY')
99
1010 let d = unit
1111
1212 let e = 1
1313
1414 let f = 0
1515
1616 let g = false
1717
1818 let h = 1000
1919
2020 let i = 8
2121
22-@Callable(j)
23-func setTask (k) = {
24- let l = ((toBase58String(value(j.callerPublicKey)) + ", task: ") + k)
25- let m = ("NFT-token of task manager from" + toString(this))
26- let n = j.payments[0].amount
27- let o = Issue(l, m, e, f, g)
28- let p = toBase58String(calculateAssetId(o))
29- let q = ("taskName_" + p)
30- let r = ("taskStatus_" + p)
31- let s = ("taskAmount_" + p)
32- if ((size(j.payments) > 1))
22+let j = "taskIdLast"
23+
24+@Callable(k)
25+func setTask (l) = {
26+ let m = if (isDefined(getInteger(this, j)))
27+ then (getIntegerValue(this, j) + 1)
28+ else 1
29+ let n = ("task #" + toString(m))
30+ let o = ("NFT-token of task manager from" + toString(this))
31+ let p = k.payments[0].amount
32+ let q = Issue(n, o, e, f, g)
33+ let r = toBase58String(calculateAssetId(q))
34+ let s = ("taskName_" + r)
35+ let t = ("taskStatus_" + r)
36+ let u = ("taskAmount_" + r)
37+ if ((size(k.payments) > 1))
3338 then throw("One attached assets expected")
34- else if ((j.payments[0].assetId != d))
39+ else if ((k.payments[0].assetId != d))
3540 then throw("must be attached asset: WAVES")
36- else if ((h > j.payments[0].amount))
37- then throw("amount must be greater than the minimum threshold: 0.0001 WAVES")
38- else if ((j.caller == c))
39- then throw("method may not be called from the contract")
40- else [StringEntry(q, k), StringEntry(r, a), o, ScriptTransfer(j.caller, e, fromBase58String(p)), StringEntry(r, a), ScriptTransfer(c, n, d), IntegerEntry(s, n)]
41+ else if (isDefined(s))
42+ then throw("Task with a specified name is already exists")
43+ else if ((h > k.payments[0].amount))
44+ then throw("amount must be greater than the minimum threshold: 0.0001 WAVES")
45+ else if ((k.caller == c))
46+ then throw("method may not be called from the contract")
47+ else [StringEntry(s, l), StringEntry(t, a), q, ScriptTransfer(k.caller, e, fromBase58String(r)), StringEntry(t, a), ScriptTransfer(c, p, d), IntegerEntry(u, p), IntegerEntry(j, m)]
4148 }
4249
4350
4451
45-@Callable(j)
52+@Callable(k)
4653 func completeTask () = {
47- let t = $Tuple2(j.payments[0].amount, value(j.payments[0].assetId))
48- let u = t._1
49- let v = t._2
50- let r = ("taskStatus_" + toBase58String(v))
51- let s = ("taskAmount_" + toBase58String(v))
52- let w = toBase58String(value(j.payments[0].assetId))
53- let x = valueOrErrorMessage(assetInfo(value(j.payments[0].assetId)), (("Asset " + w) + " doesn't exist"))
54- let y = getIntegerValue(this, s)
55- if ((size(j.payments) > 1))
54+ let v = $Tuple2(k.payments[0].amount, value(k.payments[0].assetId))
55+ let w = v._1
56+ let x = v._2
57+ let t = ("taskStatus_" + toBase58String(x))
58+ let u = ("taskAmount_" + toBase58String(x))
59+ let y = toBase58String(value(k.payments[0].assetId))
60+ let z = valueOrErrorMessage(assetInfo(value(k.payments[0].assetId)), (("Asset " + y) + " doesn't exist"))
61+ let A = getIntegerValue(this, u)
62+ if ((size(k.payments) > 1))
5663 then throw("One attached assets expected")
57- else if ((j.caller == c))
64+ else if ((k.caller == c))
5865 then throw("method may not be called from the contract")
59- else if (if (if (if ((value(j.payments[0].amount) == e))
60- then (value(x.decimals) == f)
66+ else if (if (if (if ((value(k.payments[0].amount) == e))
67+ then (value(z.decimals) == f)
6168 else false)
62- then (value(x.reissuable) == g)
69+ then (value(z.reissuable) == g)
6370 else false)
64- then isDefined(getString(this, r))
71+ then isDefined(getString(this, t))
6572 else false)
66- then [StringEntry(r, b), Burn(v, u), ScriptTransfer(j.caller, y, d)]
73+ then [StringEntry(t, b), Burn(x, w), ScriptTransfer(k.caller, A, d)]
6774 else throw("Attached asset is not expected")
6875 }
6976
7077
7178
72-@Callable(j)
79+@Callable(k)
7380 func removeTask () = {
74- let z = $Tuple2(j.payments[0].amount, value(j.payments[0].assetId))
75- let u = z._1
76- let v = z._2
77- let s = ("taskAmount_" + toBase58String(v))
78- let r = ("taskStatus_" + toBase58String(v))
79- let q = ("taskName_" + toBase58String(v))
80- let w = toBase58String(value(j.payments[0].assetId))
81- let x = valueOrErrorMessage(assetInfo(value(j.payments[0].assetId)), (("Asset " + w) + " doesn't exist"))
82- if ((size(j.payments) > 1))
81+ let B = $Tuple2(k.payments[0].amount, value(k.payments[0].assetId))
82+ let w = B._1
83+ let x = B._2
84+ let u = ("taskAmount_" + toBase58String(x))
85+ let t = ("taskStatus_" + toBase58String(x))
86+ let s = ("taskName_" + toBase58String(x))
87+ let y = toBase58String(value(k.payments[0].assetId))
88+ let z = valueOrErrorMessage(assetInfo(value(k.payments[0].assetId)), (("Asset " + y) + " doesn't exist"))
89+ if ((size(k.payments) > 1))
8390 then throw("One attached assets expected")
84- else if ((j.caller == c))
91+ else if ((k.caller == c))
8592 then throw("method may not be called from the contract")
86- else if (if (if ((value(x.decimals) == f))
87- then (value(x.reissuable) == g)
93+ else if (if (if ((value(z.decimals) == f))
94+ then (value(z.reissuable) == g)
8895 else false)
89- then isDefined(getString(this, r))
96+ then isDefined(getString(this, t))
9097 else false)
9198 then {
92- let A = getString(this, r)
93- if (if ((A == a))
94- then (value(j.payments[0].amount) == e)
99+ let C = getString(this, t)
100+ if (if ((C == a))
101+ then (value(k.payments[0].amount) == e)
95102 else false)
96103 then {
97- let y = pow(getIntegerValue(this, s), 0, 1, 0, i, DOWN)
98-[Burn(v, u), ScriptTransfer(j.caller, y, d), DeleteEntry(s), DeleteEntry(r), DeleteEntry(q)]
104+ let A = pow(getIntegerValue(this, u), 0, 1, 0, i, DOWN)
105+[Burn(x, w), ScriptTransfer(k.caller, A, d), DeleteEntry(u), DeleteEntry(t), DeleteEntry(s)]
99106 }
100- else if ((b == A))
101- then [DeleteEntry(s), DeleteEntry(r), DeleteEntry(q)]
107+ else if ((b == C))
108+ then [DeleteEntry(u), DeleteEntry(t), DeleteEntry(s)]
102109 else throw("Task have a broken status")
103110 }
104111 else throw("Attached asset is not expected")
105112 }
106113
107114

github/deemru/w8io/169f3d6 
47.46 ms