tx · 5q7NqzRNaUknEiir5JFQtCPkKaHdz5q1pHMt8r7bUzVx

3MsmgWBZKrHwbVbSQiqmStRiFyg5hkfxxa2:  -0.00300000 Waves

2022.08.16 17:08 [2187131] smart account 3MsmgWBZKrHwbVbSQiqmStRiFyg5hkfxxa2 > SELF 0.00000000 Waves

{ "type": 13, "id": "5q7NqzRNaUknEiir5JFQtCPkKaHdz5q1pHMt8r7bUzVx", "fee": 300000, "feeAssetId": null, "timestamp": 1660658891025, "version": 2, "chainId": 84, "sender": "3MsmgWBZKrHwbVbSQiqmStRiFyg5hkfxxa2", "senderPublicKey": "9TejtrnvgE7MvzMR4DcLbf3dqUzovyt4BKEmCsqha2z", "proofs": [ "5PvBHS9RrqeM2AQR5bxKHWver1qTP1d2ZtLkMEnkbfx6nT5RZhPTtwRShgrj2uy4PakkXzUyMymXGAxKzjmZZa2p" ], "script": "base64:AAIFAAAAAAAAAAcIAhIDCgEIAAAACQAAAAAJaGVpZ2h0RW5kCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwIAAAAKaGVpZ2h0X2VuZAIAAAAkaGVpZ2h0X2VuZCBpcyBub3Qgc3BlY2lmaWVkIGluIHN0YXRlAAAAAAxhc3NldHNTdHJpbmcJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABB0AAAACBQAAAAR0aGlzAgAAABBhdmFpbGFibGVfYXNzZXRzAgAAACVBc3NldHMgbGlzdCBpcyBub3Qgc3BlY2lmaWVkIGluIHN0YXRlAQAAAAlhc0FueUxpc3QAAAABAAAAA3ZhbAQAAAAHJG1hdGNoMAUAAAADdmFsAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAlMaXN0W0FueV0EAAAACnZhbEFueUx5c3QFAAAAByRtYXRjaDAFAAAACnZhbEFueUx5c3QJAAACAAAAAQIAAAAbZmFpbCB0byBjYXN0IGludG8gTGlzdFtBbnldAQAAAAVhc0ludAAAAAEAAAADdmFsBAAAAAckbWF0Y2gwBQAAAAN2YWwDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAAGdmFsSW50BQAAAAckbWF0Y2gwBQAAAAZ2YWxJbnQJAAACAAAAAQIAAAAVZmFpbCB0byBjYXN0IGludG8gSW50AAAAABNuc2J0U3Rha2luZ0NvbnRyYWN0CQEAAAAHQWRkcmVzcwAAAAEBAAAAGgFUOrz+4umfUdrssqn6lKJS7u88U0ntbQvvAAAAAA5hdmFpbGFibGVWb3RlcwkABLUAAAACBQAAAAxhc3NldHNTdHJpbmcCAAAAASwBAAAADmtleVVzZXJCYWxhbmNlAAAAAQAAAAh1c2VyQWRkcgkABLkAAAACCQAETAAAAAICAAAAB2JhbGFuY2UJAARMAAAAAgkABCUAAAABBQAAAAh1c2VyQWRkcgUAAAADbmlsAgAAAAFfAQAAAAtrZXlVc2VyVm90ZQAAAAIAAAAIdXNlckFkZHIAAAAEdm90ZQkABLkAAAACCQAETAAAAAICAAAABHZvdGUJAARMAAAAAgUAAAAIdXNlckFkZHIJAARMAAAAAgUAAAAEdm90ZQUAAAADbmlsAgAAAAFfAQAAAA9rZXlVc2VyTGFzdFZvdGUAAAABAAAACHVzZXJBZGRyCQAEuQAAAAIJAARMAAAAAgIAAAAJbGFzdF92b3RlCQAETAAAAAIFAAAACHVzZXJBZGRyBQAAAANuaWwCAAAAAV8AAAABAAAACmNvbnRleHRPYmoBAAAACGNhc3RWb3RlAAAAAQAAAA1uZXdVc2VyQ2hvaWNlBAAAAAt1c2VyQWRkcmVzcwkABCUAAAABCAUAAAAKY29udGV4dE9iagAAAAZjYWxsZXIDCQAAAAAAAAIJAQAAAA9jb250YWluc0VsZW1lbnQAAAACBQAAAA5hdmFpbGFibGVWb3RlcwUAAAANbmV3VXNlckNob2ljZQcJAAACAAAAAQIAAAAPSW5jb3JyZWN0IHZvdGUhAwkAAGcAAAACBQAAAAZoZWlnaHQFAAAACWhlaWdodEVuZAkAAAIAAAABAgAAAA12b3RlIGZpbmlzaGVkBAAAAAhuc2J0RGF0YQkBAAAACWFzQW55TGlzdAAAAAEJAAP8AAAABAUAAAATbnNidFN0YWtpbmdDb250cmFjdAIAAAAWbnNidFN0YWtpbmdTWVNSRUFET05MWQkABEwAAAACBQAAAAt1c2VyQWRkcmVzcwUAAAADbmlsBQAAAANuaWwEAAAAEm5ld1VzZXJWb3RpbmdQb3dlcgkBAAAABWFzSW50AAAAAQkAAZEAAAACBQAAAAhuc2J0RGF0YQAAAAAAAAAAAAQAAAATbmV3VG90YWxCeUNob2ljZUtFWQkABLkAAAACCQAETAAAAAICAAAABHZvdGUJAARMAAAAAgUAAAANbmV3VXNlckNob2ljZQUAAAADbmlsAgAAAAFfBAAAABZuZXdUb3RhbEJ5Q2hvaWNlQW1vdW50CQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMFAAAAE25ld1RvdGFsQnlDaG9pY2VLRVkAAAAAAAAAAAAEAAAAFW5ld1VzZXJWb3RpbmdQb3dlcktFWQkBAAAAC2tleVVzZXJWb3RlAAAAAgUAAAALdXNlckFkZHJlc3MFAAAADW5ld1VzZXJDaG9pY2UEAAAAEXByZXZVc2VyQ2hvaWNlS0VZCQEAAAAPa2V5VXNlckxhc3RWb3RlAAAAAQUAAAALdXNlckFkZHJlc3MEAAAADnByZXZVc2VyQ2hvaWNlCQEAAAALdmFsdWVPckVsc2UAAAACCQAEHQAAAAIFAAAABHRoaXMFAAAAEXByZXZVc2VyQ2hvaWNlS0VZBQAAAA1uZXdVc2VyQ2hvaWNlBAAAABZwcmV2VXNlclZvdGluZ1Bvd2VyS0VZCQEAAAALa2V5VXNlclZvdGUAAAACBQAAAAt1c2VyQWRkcmVzcwUAAAAOcHJldlVzZXJDaG9pY2UEAAAAE3ByZXZVc2VyVm90aW5nUG93ZXIJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwUAAAAWcHJldlVzZXJWb3RpbmdQb3dlcktFWQAAAAAAAAAAAAQAAAAUcHJldlRvdGFsQnlDaG9pY2VLRVkJAAS5AAAAAgkABEwAAAACAgAAAAR2b3RlCQAETAAAAAIFAAAADnByZXZVc2VyQ2hvaWNlBQAAAANuaWwCAAAAAV8EAAAAF3ByZXZUb3RhbEJ5Q2hvaWNlQW1vdW50CQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMFAAAAFHByZXZUb3RhbEJ5Q2hvaWNlS0VZAAAAAAAAAAAABAAAAA1yZWZyZXNoVG90YWxzAwkBAAAAAiE9AAAAAgUAAAAOcHJldlVzZXJDaG9pY2UFAAAADW5ld1VzZXJDaG9pY2UJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAFnByZXZVc2VyVm90aW5nUG93ZXJLRVkAAAAAAAAAAAAJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAFHByZXZUb3RhbEJ5Q2hvaWNlS0VZCQAAZQAAAAIFAAAAF3ByZXZUb3RhbEJ5Q2hvaWNlQW1vdW50BQAAABNwcmV2VXNlclZvdGluZ1Bvd2VyCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABNuZXdUb3RhbEJ5Q2hvaWNlS0VZCQAAZAAAAAIFAAAAFm5ld1RvdGFsQnlDaG9pY2VBbW91bnQFAAAAEm5ld1VzZXJWb3RpbmdQb3dlcgUAAAADbmlsCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABNuZXdUb3RhbEJ5Q2hvaWNlS0VZCQAAZQAAAAIJAABkAAAAAgUAAAAWbmV3VG90YWxCeUNob2ljZUFtb3VudAUAAAASbmV3VXNlclZvdGluZ1Bvd2VyBQAAABNwcmV2VXNlclZvdGluZ1Bvd2VyBQAAAANuaWwJAAROAAAAAgUAAAANcmVmcmVzaFRvdGFscwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAVbmV3VXNlclZvdGluZ1Bvd2VyS0VZBQAAABJuZXdVc2VyVm90aW5nUG93ZXIJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAARcHJldlVzZXJDaG9pY2VLRVkFAAAADW5ld1VzZXJDaG9pY2UFAAAAA25pbAAAAACsLJ9i", "height": 2187131, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: HaM2bFQuteMT4pz8zqMq3W448jdq8UkiLqNXSj1dmWej Next: HmvHufMZAcVfrfdrQTyhJBEXQRXuSaBsKjYBvFJYxoDC Diff:
OldNewDifferences
77
88 func c (d) = {
99 let e = d
10- if ($isInstanceOf(e, "(Int, Int, Int, Int, Int)"))
10+ if ($isInstanceOf(e, "List[Any]"))
1111 then {
1212 let f = e
1313 f
14+ }
15+ else throw("fail to cast into List[Any]")
16+ }
17+
18+
19+func g (d) = {
20+ let e = d
21+ if ($isInstanceOf(e, "Int"))
22+ then {
23+ let h = e
24+ h
1425 }
1526 else throw("fail to cast into Int")
1627 }
1728
1829
19-let g = Address(base58'3N9be2mwrA52WJho6DiesZkk4351GvpnWuj')
30+let i = Address(base58'3MuGfNhF98CNBCfthhoJEo6SYUv7zTgkK4J')
2031
21-let h = split(b, ",")
32+let j = split(b, ",")
2233
23-func i (j) = makeString(["balance", toString(j)], "_")
34+func k (l) = makeString(["balance", toString(l)], "_")
2435
2536
26-func k (j,l) = makeString(["vote", j, l], "_")
37+func m (l,n) = makeString(["vote", l, n], "_")
2738
2839
29-@Callable(m)
30-func castVote (l) = if ((containsElement(h, l) == false))
31- then throw("Incorrect vote!")
32- else {
33- let n = makeString(["vote", l], "_")
34- let o = k(toString(m.caller), l)
35- let p = c(invoke(g, "swapParamsByUserSYSREADONLY", [toString(m.caller), 0], nil))
36- let q = p._1
37- let r = p._2
38- let s = p._3
39- let t = p._4
40- let u = p._5
41- let v = t
42- let w = valueOrElse(getInteger(this, n), 0)
43- let x = valueOrElse(getInteger(this, o), 0)
44- if ((height >= a))
40+func o (l) = makeString(["last_vote", l], "_")
41+
42+
43+@Callable(p)
44+func castVote (q) = {
45+ let r = toString(p.caller)
46+ if ((containsElement(j, q) == false))
47+ then throw("Incorrect vote!")
48+ else if ((height >= a))
4549 then throw("vote finished")
46- else [IntegerEntry(n, ((w + v) - x)), IntegerEntry(o, v)]
47- }
50+ else {
51+ let s = c(invoke(i, "nsbtStakingSYSREADONLY", [r], nil))
52+ let t = g(s[0])
53+ let u = makeString(["vote", q], "_")
54+ let v = valueOrElse(getInteger(this, u), 0)
55+ let w = m(r, q)
56+ let x = o(r)
57+ let y = valueOrElse(getString(this, x), q)
58+ let z = m(r, y)
59+ let A = valueOrElse(getInteger(this, z), 0)
60+ let B = makeString(["vote", y], "_")
61+ let C = valueOrElse(getInteger(this, B), 0)
62+ let D = if ((y != q))
63+ then [IntegerEntry(z, 0), IntegerEntry(B, (C - A)), IntegerEntry(u, (v + t))]
64+ else [IntegerEntry(u, ((v + t) - A))]
65+ (D ++ [IntegerEntry(w, t), StringEntry(x, q)])
66+ }
67+ }
4868
4969
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = valueOrErrorMessage(getInteger(this, "height_end"), "height_end is not specified in state")
55
66 let b = valueOrErrorMessage(getString(this, "available_assets"), "Assets list is not specified in state")
77
88 func c (d) = {
99 let e = d
10- if ($isInstanceOf(e, "(Int, Int, Int, Int, Int)"))
10+ if ($isInstanceOf(e, "List[Any]"))
1111 then {
1212 let f = e
1313 f
14+ }
15+ else throw("fail to cast into List[Any]")
16+ }
17+
18+
19+func g (d) = {
20+ let e = d
21+ if ($isInstanceOf(e, "Int"))
22+ then {
23+ let h = e
24+ h
1425 }
1526 else throw("fail to cast into Int")
1627 }
1728
1829
19-let g = Address(base58'3N9be2mwrA52WJho6DiesZkk4351GvpnWuj')
30+let i = Address(base58'3MuGfNhF98CNBCfthhoJEo6SYUv7zTgkK4J')
2031
21-let h = split(b, ",")
32+let j = split(b, ",")
2233
23-func i (j) = makeString(["balance", toString(j)], "_")
34+func k (l) = makeString(["balance", toString(l)], "_")
2435
2536
26-func k (j,l) = makeString(["vote", j, l], "_")
37+func m (l,n) = makeString(["vote", l, n], "_")
2738
2839
29-@Callable(m)
30-func castVote (l) = if ((containsElement(h, l) == false))
31- then throw("Incorrect vote!")
32- else {
33- let n = makeString(["vote", l], "_")
34- let o = k(toString(m.caller), l)
35- let p = c(invoke(g, "swapParamsByUserSYSREADONLY", [toString(m.caller), 0], nil))
36- let q = p._1
37- let r = p._2
38- let s = p._3
39- let t = p._4
40- let u = p._5
41- let v = t
42- let w = valueOrElse(getInteger(this, n), 0)
43- let x = valueOrElse(getInteger(this, o), 0)
44- if ((height >= a))
40+func o (l) = makeString(["last_vote", l], "_")
41+
42+
43+@Callable(p)
44+func castVote (q) = {
45+ let r = toString(p.caller)
46+ if ((containsElement(j, q) == false))
47+ then throw("Incorrect vote!")
48+ else if ((height >= a))
4549 then throw("vote finished")
46- else [IntegerEntry(n, ((w + v) - x)), IntegerEntry(o, v)]
47- }
50+ else {
51+ let s = c(invoke(i, "nsbtStakingSYSREADONLY", [r], nil))
52+ let t = g(s[0])
53+ let u = makeString(["vote", q], "_")
54+ let v = valueOrElse(getInteger(this, u), 0)
55+ let w = m(r, q)
56+ let x = o(r)
57+ let y = valueOrElse(getString(this, x), q)
58+ let z = m(r, y)
59+ let A = valueOrElse(getInteger(this, z), 0)
60+ let B = makeString(["vote", y], "_")
61+ let C = valueOrElse(getInteger(this, B), 0)
62+ let D = if ((y != q))
63+ then [IntegerEntry(z, 0), IntegerEntry(B, (C - A)), IntegerEntry(u, (v + t))]
64+ else [IntegerEntry(u, ((v + t) - A))]
65+ (D ++ [IntegerEntry(w, t), StringEntry(x, q)])
66+ }
67+ }
4868
4969

github/deemru/w8io/169f3d6 
31.57 ms