tx · 28foWu6uX7FoP1gvq6VwYKAJ78d4YrAk86Hxg5aHDbqU

3N9D8brsPwA8d2SWKxCKoG15TfAqjtp749H:  -0.01400000 Waves

2020.09.16 13:44 [1179724] smart account 3N9D8brsPwA8d2SWKxCKoG15TfAqjtp749H > SELF 0.00000000 Waves

{ "type": 13, "id": "28foWu6uX7FoP1gvq6VwYKAJ78d4YrAk86Hxg5aHDbqU", "fee": 1400000, "feeAssetId": null, "timestamp": 1600253077054, "version": 2, "chainId": 84, "sender": "3N9D8brsPwA8d2SWKxCKoG15TfAqjtp749H", "senderPublicKey": "FpA31WAx86gMxdfoFSRBf8HbjDPaHre9SnjfE1rcjTSA", "proofs": [ "4ZENv2D8gSxrQdf24EFXPs79FKA1dGV6ESaGDSSwJmYiHDjnbjDcfPr75GaWNEZLhEAbnk9KrtUSUxxkRjDURGup" ], "script": "base64:AAIEAAAAAAAAAAkIAhIDCgEIEgAAAAADAAAAAAZOU0JUaWQJAAJZAAAAAQkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEHQAAAAIFAAAABHRoaXMCAAAABk5TQlRpZAIAAAAgTlNCVGlkIGlzIG5vdCBzcGVjaWZpZWQgaW4gc3RhdGUAAAAACWhlaWdodEVuZAkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEGgAAAAIFAAAABHRoaXMCAAAACmhlaWdodF9lbmQCAAAAJGhlaWdodF9lbmQgaXMgbm90IHNwZWNpZmllZCBpbiBzdGF0ZQEAAAAOa2V5VXNlckJhbGFuY2UAAAABAAAACHVzZXJBZGRyCQAEuQAAAAIJAARMAAAAAgIAAAAHYmFsYW5jZQkABEwAAAACCQAEJQAAAAEFAAAACHVzZXJBZGRyBQAAAANuaWwCAAAAAV8AAAACAAAACmNvbnRleHRPYmoBAAAACGNhc3RWb3RlAAAAAQAAAAR2b3RlBAAAAAh2b2l0ZUtleQkABLkAAAACCQAETAAAAAICAAAABXZvaXRlCQAETAAAAAIFAAAABHZvdGUFAAAAA25pbAIAAAABXwQAAAAOdXNlckJhbGFuY2VLZXkJAQAAAA5rZXlVc2VyQmFsYW5jZQAAAAEIBQAAAApjb250ZXh0T2JqAAAABmNhbGxlcgQAAAAHcGF5bWVudAkBAAAABXZhbHVlAAAAAQkAAZEAAAACCAUAAAAKY29udGV4dE9iagAAAAhwYXltZW50cwAAAAAAAAAAAAQAAAAPYXNzZXRJZFJlY2VpdmVkCAUAAAAHcGF5bWVudAAAAAdhc3NldElkBAAAABJ0b2tlblJlY2VpdmVBbW91bnQIBQAAAAdwYXltZW50AAAABmFtb3VudAQAAAAOdm90ZU51bWJlclRoaXMJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwUAAAAIdm9pdGVLZXkAAAAAAAAAAAAEAAAAE2NvbnRyYWN0VXNlckJhbGFuY2UJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwUAAAAOdXNlckJhbGFuY2VLZXkAAAAAAAAAAAADCQEAAAACIT0AAAACBQAAAA9hc3NldElkUmVjZWl2ZWQFAAAABk5TQlRpZAkAAAIAAAABAgAAABBpbmNvcnJlY3QgYXNzZXRzAwkAAGcAAAACBQAAAAZoZWlnaHQFAAAACWhlaWdodEVuZAkAAAIAAAABAgAAAA12b3RlIGZpbmlzaGVkCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAAh2b2l0ZUtleQkAAGQAAAACBQAAAA52b3RlTnVtYmVyVGhpcwUAAAASdG9rZW5SZWNlaXZlQW1vdW50CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAA51c2VyQmFsYW5jZUtleQkAAGQAAAACBQAAABNjb250cmFjdFVzZXJCYWxhbmNlBQAAABJ0b2tlblJlY2VpdmVBbW91bnQFAAAAA25pbAAAAApjb250ZXh0T2JqAQAAAAh3aXRoZHJhdwAAAAAEAAAADnVzZXJCYWxhbmNlS2V5CQEAAAAOa2V5VXNlckJhbGFuY2UAAAABCAUAAAAKY29udGV4dE9iagAAAAZjYWxsZXIDCQAAZgAAAAIFAAAACWhlaWdodEVuZAUAAAAGaGVpZ2h0CQAAAgAAAAECAAAAD3ZvdGUgaW4gcHJvY2VzcwQAAAANY2FsbGVyQmFsYW5jZQkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzBQAAAA51c2VyQmFsYW5jZUtleQAAAAAAAAAAAAMJAABnAAAAAgAAAAAAAAAAAAUAAAANY2FsbGVyQmFsYW5jZQkAAAIAAAABAgAAABBiYWxhbmNlIGlzIGVtcHR5CQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAApjb250ZXh0T2JqAAAABmNhbGxlcgUAAAANY2FsbGVyQmFsYW5jZQUAAAAGTlNCVGlkCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAA51c2VyQmFsYW5jZUtleQAAAAAAAAAAAAUAAAADbmlsAAAAAFzqsMs=", "height": 1179724, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 7XkBHyiRnVhtGybv7sTvBbdykMC4njL1ZBaYUta5KHQB Next: 2eCkQw2TszTB2JHCvoNW4Ewc4q5kbeZw6kykvMKMSwWE Diff:
OldNewDifferences
11 {-# STDLIB_VERSION 4 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let a = fromBase58String(getStringValue(this, "NSBTid"))
4+let a = fromBase58String(valueOrErrorMessage(getString(this, "NSBTid"), "NSBTid is not specified in state"))
55
6-let b = getIntegerValue(this, "height_end")
6+let b = valueOrErrorMessage(getInteger(this, "height_end"), "height_end is not specified in state")
77
8-@Callable(c)
9-func castVote (d) = {
10- let e = makeString(["voite", d], "_")
11- let f = makeString(["balance", toString(c.caller)], "_")
12- let g = value(c.payments[0])
13- let h = g.assetId
14- let i = g.amount
15- let j = {
16- let k = getInteger(this, e)
17- if ($isInstanceOf(k, "Int"))
18- then {
19- let l = k
20- l
21- }
22- else if ($isInstanceOf(k, "Unit"))
23- then {
24- let l = k
25- 0
26- }
27- else throw("Match error")
28- }
29- let m = {
30- let k = getInteger(this, f)
31- if ($isInstanceOf(k, "Int"))
32- then {
33- let n = k
34- n
35- }
36- else if ($isInstanceOf(k, "Unit"))
37- then {
38- let n = k
39- 0
40- }
41- else throw("Match error")
42- }
43- if ((h != a))
8+func c (d) = makeString(["balance", toString(d)], "_")
9+
10+
11+@Callable(e)
12+func castVote (f) = {
13+ let g = makeString(["voite", f], "_")
14+ let h = c(e.caller)
15+ let i = value(e.payments[0])
16+ let j = i.assetId
17+ let k = i.amount
18+ let l = valueOrElse(getInteger(this, g), 0)
19+ let m = valueOrElse(getInteger(this, h), 0)
20+ if ((j != a))
4421 then throw("incorrect assets")
4522 else if ((height >= b))
4623 then throw("vote finished")
47- else [IntegerEntry(e, (j + i)), IntegerEntry(f, i)]
24+ else [IntegerEntry(g, (l + k)), IntegerEntry(h, (m + k))]
4825 }
4926
5027
5128
52-@Callable(c)
29+@Callable(e)
5330 func withdraw () = {
54- let f = makeString(["balance", toString(c.caller)], "_")
31+ let h = c(e.caller)
5532 if ((b > height))
5633 then throw("vote in process")
5734 else {
58- let o = getIntegerValue(this, f)
59-[ScriptTransfer(c.caller, o, a), IntegerEntry(f, 0)]
35+ let n = valueOrElse(getInteger(this, h), 0)
36+ if ((0 >= n))
37+ then throw("balance is empty")
38+ else [ScriptTransfer(e.caller, n, a), IntegerEntry(h, 0)]
6039 }
6140 }
6241
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 4 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let a = fromBase58String(getStringValue(this, "NSBTid"))
4+let a = fromBase58String(valueOrErrorMessage(getString(this, "NSBTid"), "NSBTid is not specified in state"))
55
6-let b = getIntegerValue(this, "height_end")
6+let b = valueOrErrorMessage(getInteger(this, "height_end"), "height_end is not specified in state")
77
8-@Callable(c)
9-func castVote (d) = {
10- let e = makeString(["voite", d], "_")
11- let f = makeString(["balance", toString(c.caller)], "_")
12- let g = value(c.payments[0])
13- let h = g.assetId
14- let i = g.amount
15- let j = {
16- let k = getInteger(this, e)
17- if ($isInstanceOf(k, "Int"))
18- then {
19- let l = k
20- l
21- }
22- else if ($isInstanceOf(k, "Unit"))
23- then {
24- let l = k
25- 0
26- }
27- else throw("Match error")
28- }
29- let m = {
30- let k = getInteger(this, f)
31- if ($isInstanceOf(k, "Int"))
32- then {
33- let n = k
34- n
35- }
36- else if ($isInstanceOf(k, "Unit"))
37- then {
38- let n = k
39- 0
40- }
41- else throw("Match error")
42- }
43- if ((h != a))
8+func c (d) = makeString(["balance", toString(d)], "_")
9+
10+
11+@Callable(e)
12+func castVote (f) = {
13+ let g = makeString(["voite", f], "_")
14+ let h = c(e.caller)
15+ let i = value(e.payments[0])
16+ let j = i.assetId
17+ let k = i.amount
18+ let l = valueOrElse(getInteger(this, g), 0)
19+ let m = valueOrElse(getInteger(this, h), 0)
20+ if ((j != a))
4421 then throw("incorrect assets")
4522 else if ((height >= b))
4623 then throw("vote finished")
47- else [IntegerEntry(e, (j + i)), IntegerEntry(f, i)]
24+ else [IntegerEntry(g, (l + k)), IntegerEntry(h, (m + k))]
4825 }
4926
5027
5128
52-@Callable(c)
29+@Callable(e)
5330 func withdraw () = {
54- let f = makeString(["balance", toString(c.caller)], "_")
31+ let h = c(e.caller)
5532 if ((b > height))
5633 then throw("vote in process")
5734 else {
58- let o = getIntegerValue(this, f)
59-[ScriptTransfer(c.caller, o, a), IntegerEntry(f, 0)]
35+ let n = valueOrElse(getInteger(this, h), 0)
36+ if ((0 >= n))
37+ then throw("balance is empty")
38+ else [ScriptTransfer(e.caller, n, a), IntegerEntry(h, 0)]
6039 }
6140 }
6241
6342

github/deemru/w8io/026f985 
26.86 ms