tx · 6iMHavscDYT1uv5PncfW99MvxNABQqhdJrK4XiQGg6T4

3MqV2hxYA4F3eyVzMPfpPXkmvQMVjhWJ2Zz:  -0.01400000 Waves

2022.05.10 15:30 [2045570] smart account 3MqV2hxYA4F3eyVzMPfpPXkmvQMVjhWJ2Zz > SELF 0.00000000 Waves

{ "type": 13, "id": "6iMHavscDYT1uv5PncfW99MvxNABQqhdJrK4XiQGg6T4", "fee": 1400000, "feeAssetId": null, "timestamp": 1652185843124, "version": 1, "sender": "3MqV2hxYA4F3eyVzMPfpPXkmvQMVjhWJ2Zz", "senderPublicKey": "E7cYpzqL1fF9VQjL3m4zr3xXfV289rCkrfE2fJyAHMqR", "proofs": [ "67KKA6uLumjgkiwBU7HD1a5cSRT7qyL9c5Z3WtRo2VGkFx6RFdxnoprXwDLBDM1XR3EDTHYeadMY9MGgjoHxKMBp" ], "script": "base64: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bnQJAQAAABNhdmFpbGFibGVUb0NsYWltTm93AAAAAQUAAAAHYWRkcmVzcwQAAAAMZW5zdXJlQW1vdW50AwkBAAAAAiE9AAAAAgUAAAAGYW1vdW50AAAAAAAAAAAABgkBAAAACHRocm93RXJyAAAAAQIAAAAQbm90aGluZyB0byBjbGFpbQMJAAAAAAAAAgUAAAAMZW5zdXJlQW1vdW50BQAAAAxlbnN1cmVBbW91bnQEAAAAC3RvdGFsQW1vdW50CQEAAAASZ2V0VXNlclRvdGFsQW1vdW50AAAAAQUAAAAHYWRkcmVzcwQAAAAPcmVtYWluaW5nQW1vdW50CQEAAAAWZ2V0VXNlclJlbWFpbmluZ0Ftb3VudAAAAAEFAAAAB2FkZHJlc3MEAAAAD2NsYWltZWRXWEFtb3VudAkBAAAAFGdldFVzZXJDbGFpbWVkQW1vdW50AAAAAQUAAAAHYWRkcmVzcwQAAAANaXNSZXZva2VkVXNlcgkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABCAAAAABCQEAAAAKa2V5UmV2b2tlZAAAAAEFAAAAB2FkZHJlc3MHAwUAAAANaXNSZXZva2VkVXNlcgkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADBQAAAARhZGRyBQAAAA9yZW1haW5pbmdBbW91bnQFAAAAAnd4CQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAAAdrZXlVc2VyAAAAAQUAAAAHYWRkcmVzcwkBAAAACXZhbHVlVXNlcgAAAAQFAAAAC3RvdGFsQW1vdW50AAAAAAAAAAAACQAAZAAAAAIFAAAAD2NsYWltZWRXWEFtb3VudAUAAAAPcmVtYWluaW5nQW1vdW50BQAAAAZoZWlnaHQFAAAAA25pbAkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADBQAAAARhZGRyBQAAAAZhbW91bnQFAAAAAnd4CQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAAAdrZXlVc2VyAAAAAQUAAAAHYWRkcmVzcwkBAAAACXZhbHVlVXNlcgAAAAQFAAAAC3RvdGFsQW1vdW50CQAAZQAAAAIFAAAAD3JlbWFpbmluZ0Ftb3VudAUAAAAGYW1vdW50CQAAZAAAAAIFAAAAD2Ns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eQAAAAIJAQAAAAdrZXlVc2VyAAAAAQUAAAAHYWRkcmVzcwkBAAAACXZhbHVlVXNlcgAAAAQFAAAABmFtb3VudAUAAAAGYW1vdW50AAAAAAAAAAAABQAAAAZoZWlnaHQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAABNrZXlVc2VyVmVzdGluZ1N0YXJ0AAAAAQUAAAAHYWRkcmVzcwUAAAAGaGVpZ2h0CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAARa2V5VXNlclZlc3RpbmdFbmQAAAABBQAAAAdhZGRyZXNzBQAAAAllbmRIZWlnaHQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAABVrZXlVc2VyQW1vdW50UGVyQmxvY2sAAAABBQAAAAdhZGRyZXNzBQAAAA5hbW91bnRQZXJCbG9jawUAAAADbmlsCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgAAAAFpAQAAABJpbmNyZWFzZURlcG9zaXRGb3IAAAABAAAAB2FkZHJlc3MEAAAAEGF2YWlsYWJsZVRvQ2xhaW0JAQAAABNhdmFpbGFibGVUb0NsYWltTm93AAAAAQUAAAAHYWRkcmVzcwQAAAAKZm9yY2VDbGFpbQMJAABmAAAAAgUAAAAQYXZhaWxhYmxlVG9DbGFpbQAAAAAAAAAAAAkBAAAADWNsYWltSW50ZXJuYWwAAAABBQAAAAdhZGRyZXNzBQAAAAR1bml0AwkAAAAAAAACBQAAAApmb3JjZUNsYWltBQAAAApmb3JjZUNsYWltBAAAAAZhbW91bnQICQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAAAAAABmFtb3VudAQAAAAJZW5kSGVpZ2h0CQEAAAAFdmFsdWUAAAABCQAEHwAAAAEJAQAAABFrZXlVc2VyVmVzdGluZ0VuZAAAAAEFAAAAB2FkZHJlc3MEAAAACnZlc3RpbmdMZW4JAABlAAAAAgUAAAAJZW5kSGVpZ2h0BQAAAAZoZWlnaHQEAAAADmFtb3VudFBlckJsb2NrCQEAAAAFdmFsdWUAAAABCQAEHwAAAAEJAQAAABVrZXlVc2VyQW1vdW50UGVyQmxvY2sAAAABBQAAAAdhZGRyZXNzBAAAABFpbmNBbW91bnRQZXJCbG9jawkAAGkAAAACBQAAAAZhbW91bnQFAAAACnZlc3RpbmdMZW4EAAAAD3VzZXJUb3RhbEFtb3VudAkBAAAAEmdldFVzZXJUb3RhbEFtb3VudAAAAAEFAAAAB2FkZHJlc3MEAAAAE3VzZXJSZW1haW5pbmdBbW91bnQJAQAAABZnZXRVc2VyUmVtYWluaW5nQW1vdW50AAAAAQUAAAAHYWRkcmVzcwQAAAARdXNlckNsYWltZWRBbW91bnQJAQAAABRnZXRVc2VyQ2xhaW1lZEFtb3VudAAAAAEFAAAAB2FkZHJlc3MEAAAAFXVzZXJMYXN0Q2xhaW1lZEhlaWdodAkBAAAAGGdldFVzZXJMYXN0Q2xhaW1lZEhlaWdodAAAAAEFAAAAB2FkZHJlc3MEAAAABmNoZWNrcwkABEwAAAACCQEAAAALbXVzdE1hbmFnZXIAAAABBQAAAAFpCQAETAAAAAIDCQAAAAAAAAIJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQgAAAAAQkBAAAACmtleVJldm9rZWQAAAABBQAAAAdhZGRyZXNzBwcGCQEAAAAIdGhyb3dFcnIAAAABAgAAABtkZXBvc2l0IGZvciB1c2VyIGlzIHJldm9rZWQJAARMAAAAAgMJAQAAAAIhPQAAAAIJAAQiAAAAAQkBAAAAB2tleVVzZXIAAAABBQAAAAdhZGRyZXNzBQAAAAR1bml0BgkBAAAACHRocm93RXJyAAAAAQIAAAAfZGVwb3NpdCBmb3IgdXNlciBkb2Vzbid0IGV4aXN0cwkABEwAAAACAwkAAAAAAAACCQACWAAAAAEJAQAAAAV2YWx1ZQAAAAEICQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAAAAAAB2Fzc2V0SWQJAQAAAAV2YWx1ZQAAAAEJAAQiAAAAAQkBAAAADGtleVd4QXNzZXRJZAAAAAAGCQEAAAAIdGhyb3dFcnIAAAABAgAAABphdHRhY2hlZCBwYXltZW50IGlzIG5vdCBXWAkABEwAAAACAwkBAAAAAiE9AAAAAgUAAAARaW5jQW1vdW50UGVyQmxvY2sAAAAAAAAAAAAGCQEAAAAIdGhyb3dFcnIAAAABAgAAADhhdHRhY2hlZCBhbW91bnQgdG9vIHNtYWxsIOKAlCBpbmNyZWFzZSBpcyB6ZXJvIHBlciBibG9jawUAAAADbmlsAwkAAAAAAAACBQAAAAZjaGVja3MFAAAABmNoZWNrcwkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAHa2V5VXNlcgAAAAEFAAAAB2FkZHJlc3MJAQAAAAl2YWx1ZVVzZXIAAAAECQAAZAAAAAIFAAAAD3VzZXJUb3RhbEFtb3VudAUAAAAGYW1vdW50CQAAZAAAAAIFAAAAE3VzZXJSZW1haW5pbmdBbW91bnQFAAAABmFtb3VudAUAAAARdXNlckNsYWltZWRBbW91bnQFAAAAFXVzZXJMYXN0Q2xhaW1lZEhlaWdodAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAAFWtleVVzZXJBbW91bnRQZXJCbG9jawAAAAEFAAAAB2FkZHJlc3MJAABkAAAAAgUAAAAOYW1vdW50UGVyQmxvY2sFAAAAEWluY0Ftb3VudFBlckJsb2NrBQAAAANuaWwJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgAAAAFpAQAAABByZXZva2VEZXBvc2l0Rm9yAAAAAQAAAAdhZGRyZXNzBAAAAAt0b3RhbEFtb3VudAkBAAAAEmdldFVzZXJUb3RhbEFtb3VudAAAAAEFAAAAB2FkZHJlc3MEAAAAD3JlbWFpbmluZ0Ftb3VudAkBAAAAFmdldFVzZXJSZW1haW5pbmdBbW91bnQAAAABBQAAAAdhZGRyZXNzBAAAAA9jbGFpbWVkV1hBbW91bnQJAQAAABRnZXRVc2VyQ2xhaW1lZEFtb3VudAAAAAEFAAAAB2FkZHJlc3MEAAAAEWxhc3RDbGFpbWVkSGVpZ2h0CQEAAAAYZ2V0VXNlckxhc3RDbGFpbWVkSGVpZ2h0AAAAAQUAAAAHYWRkcmVzcwQAAAASdW5jbGFpbWVkQW1vdW50Tm93CQEAAAATYXZhaWxhYmxlVG9DbGFpbU5vdwAAAAEFAAAAB2FkZHJlc3MEAAAADHJldm9rZWRUb3RhbAkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABB8AAAABCQEAAAAPa2V5UmV2b2tlZFRvdGFsAAAAAAAAAAAAAAAAAAQAAAAOYW1vdW50VG9SZXZva2UJAABlAAAAAgUAAAAPcmVtYWluaW5nQW1vdW50BQAAABJ1bmNsYWltZWRBbW91bnROb3cEAAAAD25ld1Jldm9rZWRUb3RhbAkAAGQAAAACBQAAAAxyZXZva2VkVG90YWwFAAAADmFtb3VudFRvUmV2b2tlBAAAAAZjaGVja3MJAARMAAAAAgkBAAAAC211c3RNYW5hZ2VyAAAAAQUAAAABaQkABEwAAAACAwkBAAAAAiE9AAAAAgkABCIAAAABCQEAAAAHa2V5VXNlcgAAAAEFAAAAB2FkZHJlc3MFAAAABHVuaXQGCQEAAAAIdGhyb3dFcnIAAAABAgAAAB5kZXBvc2l0IGZvciB1c2VyIGlzIG5vdCBleGlzdHMJAARMAAAAAgMJAABmAAAAAgUAAAAPbmV3UmV2b2tlZFRvdGFsBQAAAAxyZXZva2VkVG90YWwGCQEAAAAIdGhyb3dFcnIAAAABAgAAADhuZXdSZXZva2VkVG90YWwgY2FuJ3QgYmUgbGVzcyBvciBlcXVhbCB0aGFuIHJldm9rZWRUb3RhbAUAAAADbmlsAwkAAAAAAAACBQAAAAZjaGVja3MFAAAABmNoZWNrcwkABEwAAAACCQEAAAAMQm9vbGVhbkVudHJ5AAAAAgkBAAAACmtleVJldm9rZWQAAAABBQAAAAdhZGRyZXNzBgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAAD2tleVJldm9rZWRUb3RhbAAAAAAFAAAAD25ld1Jldm9rZWRUb3RhbAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAHa2V5VXNlcgAAAAEFAAAAB2FkZHJlc3MJAQAAAAl2YWx1ZVVzZXIAAAAEBQAAAAt0b3RhbEFtb3VudAUAAAASdW5jbGFpbWVkQW1vdW50Tm93BQAAAA9jbGFpbWVkV1hBbW91bnQFAAAAEWxhc3RDbGFpbWVkSGVpZ2h0BQAAAANuaWwJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAAAAAWkBAAAABWNsYWltAAAAAAkBAAAADWNsYWltSW50ZXJuYWwAAAABCQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMAAAABaQEAAAANY2xhaW1SRUFET05MWQAAAAEAAAAHYWRkcmVzcwQAAAAGYW1vdW50CQEAAAATYXZhaWxhYmxlVG9DbGFpbU5vdwAAAAEFAAAAB2FkZHJlc3MJAAUUAAAAAgUAAAADbmlsBQAAAAZhbW91bnQAAAABaQEAAAAFc3RhdHMAAAABAAAAB2FkZHJlc3MJAAUUAAAAAgUAAAADbmlsCQAETAAAAAIJAQAAAAV2YWx1ZQAAAAEJAAQfAAAAAQkBAAAAE2tleVVzZXJWZXN0aW5nU3RhcnQAAAABBQAAAAdhZGRyZXNzCQAETAAAAAIJAQAAAAV2YWx1ZQAAAAEJAAQfAAAAAQkBAAAAEWtleVVzZXJWZXN0aW5nRW5kAAAAAQUAAAAHYWRkcmVzcwkABEwAAAACCQEAAAASZ2V0VXNlclRvdGFsQW1vdW50AAAAAQUAAAAHYWRkcmVzcwkABEwAAAACCQEAAAAUZ2V0VXNlckNsYWltZWRBbW91bnQAAAABBQAAAAdhZGRyZXNzCQAETAAAAAIJAQAAABZnZXRVc2VyUmVtYWluaW5nQW1vdW50AAAAAQUAAAAHYWRkcmVzcwkABEwAAAACCQEAAAATYXZhaWxhYmxlVG9DbGFpbU5vdwAAAAEFAAAAB2FkZHJlc3MFAAAAA25pbAAAAAFpAQAAAApzZXRNYW5hZ2VyAAAAAQAAABdwZW5kaW5nTWFuYWdlclB1YmxpY0tleQQAAAALY2hlY2tDYWxsZXIJAQAAAAttdXN0TWFuYWdlcgAAAAEFAAAAAWkDCQAAAAAAAAIFAAAAC2NoZWNrQ2FsbGVyBQAAAAtjaGVja0NhbGxlcgQAAAAVY2hlY2tNYW5hZ2VyUHVibGljS2V5CQACWQAAAAEFAAAAF3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5AwkAAAAAAAACBQAAABVjaGVja01hbmFnZXJQdWJsaWNLZXkFAAAAFWNoZWNrTWFuYWdlclB1YmxpY0tleQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAaa2V5UGVuZGluZ01hbmFnZXJQdWJsaWNLZXkAAAAABQAAABdwZW5kaW5nTWFuYWdlclB1YmxpY0tleQUAAAADbmlsCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4AAAABaQEAAAAOY29uZmlybU1hbmFnZXIAAAAABAAAAAJwbQkBAAAAHXBlbmRpbmdNYW5hZ2VyUHVibGljS2V5T3JVbml0AAAAAAQAAAAFaGFzUE0DCQEAAAAJaXNEZWZpbmVkAAAAAQUAAAACcG0GCQEAAAAIdGhyb3dFcnIAAAABAgAAABJubyBwZW5kaW5nIG1hbmFnZXIDCQAAAAAAAAIFAAAABWhhc1BNBQAAAAVoYXNQTQQAAAAHY2hlY2tQTQMJAAAAAAAAAggFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5CQEAAAAFdmFsdWUAAAABBQAAAAJwbQYJAQAAAAh0aHJvd0VycgAAAAECAAAAG3lvdSBhcmUgbm90IHBlbmRpbmcgbWFuYWdlcgMJAAAAAAAAAgUAAAAHY2hlY2tQTQUAAAAHY2hlY2tQTQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAATa2V5TWFuYWdlclB1YmxpY0tleQAAAAAJAAJYAAAAAQkBAAAABXZhbHVlAAAAAQUAAAACcG0JAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkBAAAAGmtleVBlbmRpbmdNYW5hZ2VyUHVibGljS2V5AAAAAAUAAAADbmlsCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4AAAABAAAAAnR4AQAAAAZ2ZXJpZnkAAAAABAAAAA90YXJnZXRQdWJsaWNLZXkEAAAAByRtYXRjaDAJAQAAABZtYW5hZ2VyUHVibGljS2V5T3JVbml0AAAAAAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAKQnl0ZVZlY3RvcgQAAAACcGsFAAAAByRtYXRjaDAFAAAAAnBrAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAARVbml0CAUAAAACdHgAAAAPc2VuZGVyUHVibGljS2V5CQAAAgAAAAECAAAAC01hdGNoIGVycm9yCQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAAUAAAAPdGFyZ2V0UHVibGljS2V5JjZFUA==", "chainId": 84, "height": 2045570, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 2N7vhN6jBWpR38ucttgJjCUxjp2TsfVz17HD1iPN8nCr Next: 9yS2XqdA2CSaP83fdiEnXmLdKDuMuwtToZQYyBcSvyHr Diff:
OldNewDifferences
1212 func d (e) = makeString(["%s", e], a)
1313
1414
15-func f (e) = makeString(["%s", "revoked", e], a)
15+func f (e) = makeString(["%s%s", "revoked", e], a)
1616
1717
18-func g (e) = makeString(["%s", "vestingStart", e], a)
18+func g () = makeString(["%s", "revokedTotal"], a)
1919
2020
21-func h (e) = makeString(["%s", "vestingEnd", e], a)
21+func h (e) = makeString(["%s%s", "vestingStart", e], a)
2222
2323
24-func i (e) = makeString(["%s", "amountPerBlock", e], a)
24+func i (e) = makeString(["%s%s", "vestingEnd", e], a)
2525
2626
27-func j () = makeString(["%s", "wxAssetId"], a)
27+func j (e) = makeString(["%s%s", "amountPerBlock", e], a)
2828
2929
30-func k (l) = throw(makeString(["vesting.ride:", l], " "))
30+func k () = makeString(["%s", "wxAssetId"], a)
3131
3232
33-func m () = {
34- let n = getString(b())
35- if ($isInstanceOf(n, "String"))
33+func l (m) = throw(makeString(["vesting.ride:", m], " "))
34+
35+
36+func n () = {
37+ let o = getString(b())
38+ if ($isInstanceOf(o, "String"))
3639 then {
37- let o = n
38- fromBase58String(o)
40+ let p = o
41+ fromBase58String(p)
3942 }
40- else if ($isInstanceOf(n, "Unit"))
43+ else if ($isInstanceOf(o, "Unit"))
4144 then unit
4245 else throw("Match error")
4346 }
4447
4548
46-func p () = {
47- let n = getString(c())
48- if ($isInstanceOf(n, "String"))
49+func q () = {
50+ let o = getString(c())
51+ if ($isInstanceOf(o, "String"))
4952 then {
50- let o = n
51- fromBase58String(o)
53+ let p = o
54+ fromBase58String(p)
5255 }
53- else if ($isInstanceOf(n, "Unit"))
56+ else if ($isInstanceOf(o, "Unit"))
5457 then unit
5558 else throw("Match error")
5659 }
5760
5861
59-func q (r) = {
60- let s = k("permission denied")
61- let n = m()
62- if ($isInstanceOf(n, "ByteVector"))
62+func r (s) = {
63+ let t = l("permission denied")
64+ let o = n()
65+ if ($isInstanceOf(o, "ByteVector"))
6366 then {
64- let t = n
65- if ((r.callerPublicKey == t))
67+ let u = o
68+ if ((s.callerPublicKey == u))
6669 then true
67- else s
70+ else t
6871 }
69- else if ($isInstanceOf(n, "Unit"))
70- then if ((r.caller == this))
72+ else if ($isInstanceOf(o, "Unit"))
73+ then if ((s.caller == this))
7174 then true
72- else s
75+ else t
7376 else throw("Match error")
7477 }
7578
7679
77-func u (v,w,x,y) = makeString(["%d%d%d%d%d", v, w, "0", x, y], a)
80+func v (w,x,y,z) = makeString(["%d%d%d%d%d", w, x, "0", y, z], a)
7881
7982
80-func z (v,w,x,y) = u(toString(v), toString(w), toString(x), toString(y))
83+func A (w,x,y,z) = v(toString(w), toString(x), toString(y), toString(z))
8184
8285
83-func A (e) = parseIntValue(split(value(getString(d(e))), a)[1])
86+func B (e) = parseIntValue(split(value(getString(d(e))), a)[1])
8487
8588
86-func B (e) = parseIntValue(split(value(getString(d(e))), a)[2])
89+func C (e) = parseIntValue(split(value(getString(d(e))), a)[2])
8790
8891
89-func C (e) = parseIntValue(split(value(getString(d(e))), a)[3])
92+func D (e) = parseIntValue(split(value(getString(d(e))), a)[3])
9093
9194
92-func D (e) = parseIntValue(split(value(getString(d(e))), a)[5])
95+func E (e) = parseIntValue(split(value(getString(d(e))), a)[5])
9396
9497
95-func E (e) = {
96- let F = valueOrElse(getBoolean(f(e)), false)
97- if (F)
98- then B(e)
98+func F (e) = {
99+ let G = valueOrElse(getBoolean(f(e)), false)
100+ if (G)
101+ then C(e)
99102 else {
100- let G = D(e)
101- if ((G >= height))
103+ let H = E(e)
104+ if ((H >= height))
102105 then 0
103106 else {
104- let H = value(getInteger(h(e)))
105- if ((height > H))
106- then B(e)
107+ let I = value(getInteger(i(e)))
108+ if ((height > I))
109+ then C(e)
107110 else {
108- let I = (height - G)
109- (value(getInteger(i(e))) * I)
111+ let J = (height - H)
112+ (value(getInteger(j(e))) * J)
110113 }
111114 }
112115 }
113116 }
114117
115118
116-@Callable(r)
117-func constructor (J) = {
118- let K = q(r)
119- if ((K == K))
120- then [StringEntry(j(), J)]
119+func K (e) = {
120+ let L = Address(value(fromBase58String(e)))
121+ let M = fromBase58String(value(getString(k())))
122+ let N = F(e)
123+ let O = if ((N != 0))
124+ then true
125+ else l("nothing to claim")
126+ if ((O == O))
127+ then {
128+ let w = B(e)
129+ let x = C(e)
130+ let y = D(e)
131+ let G = valueOrElse(getBoolean(f(e)), false)
132+ if (G)
133+ then [ScriptTransfer(L, x, M), StringEntry(d(e), A(w, 0, (y + x), height))]
134+ else [ScriptTransfer(L, N, M), StringEntry(d(e), A(w, (x - N), (y + N), height))]
135+ }
136+ else throw("Strict value is not equal to itself.")
137+ }
138+
139+
140+@Callable(s)
141+func constructor (P) = {
142+ let Q = r(s)
143+ if ((Q == Q))
144+ then [StringEntry(k(), P)]
121145 else throw("Strict value is not equal to itself.")
122146 }
123147
124148
125149
126-@Callable(r)
127-func createDepositFor (e,L) = {
128- let M = (height + L)
129- let N = r.payments[0].amount
130- let O = (M - height)
131- let P = (N / O)
132- let Q = [q(r), if ((M > height))
150+@Callable(s)
151+func withdrawRevoked () = {
152+ let N = valueOrElse(getInteger(g()), 0)
153+ let M = fromBase58String(value(getString(k())))
154+ let R = [r(s), if ((N > 0))
133155 then true
134- else k("endHeight must be more than height"), if ((getString(d(e)) == unit))
135- then true
136- else k("deposit for user already exists"), if ((toBase58String(value(r.payments[0].assetId)) == value(getString(j()))))
137- then true
138- else k("attached payment is not WX"), if ((P != 0))
139- then true
140- else k("attached amount too small or blocksDuration too large — will claimed zero per block")]
141- if ((Q == Q))
142- then [StringEntry(d(e), z(N, N, 0, height)), IntegerEntry(g(e), height), IntegerEntry(h(e), M), IntegerEntry(i(e), P)]
156+ else l("revoked amount is zero, nothing to withdraw")]
157+ if ((R == R))
158+ then [ScriptTransfer(s.caller, N, M), IntegerEntry(g(), 0)]
143159 else throw("Strict value is not equal to itself.")
144160 }
145161
146162
147163
148-@Callable(r)
149-func revokeDepositFor (e) = {
150- let Q = [q(r), if ((getString(d(e)) != unit))
164+@Callable(s)
165+func createDepositFor (e,S) = {
166+ let N = s.payments[0].amount
167+ let T = (height + S)
168+ let U = (T - height)
169+ let V = (N / U)
170+ let R = [r(s), if ((T > height))
151171 then true
152- else k("deposit for user is not exists")]
153- if ((Q == Q))
154- then {
155- let v = A(e)
156- let N = E(e)
157- let x = C(e)
158- let y = D(e)
159-[BooleanEntry(f(e), true), StringEntry(d(e), z(v, N, x, y))]
160- }
172+ else l("endHeight must be more than height"), if ((getString(d(e)) == unit))
173+ then true
174+ else l("deposit for user already exists"), if ((toBase58String(value(s.payments[0].assetId)) == value(getString(k()))))
175+ then true
176+ else l("attached payment is not WX"), if ((V != 0))
177+ then true
178+ else l("attached amount too small or blocksDuration too large — will claimed zero per block")]
179+ if ((R == R))
180+ then [StringEntry(d(e), A(N, N, 0, height)), IntegerEntry(h(e), height), IntegerEntry(i(e), T), IntegerEntry(j(e), V)]
161181 else throw("Strict value is not equal to itself.")
162182 }
163183
164184
165185
166-@Callable(r)
167-func claim () = {
168- let R = r.caller
169- let S = toString(R)
170- let T = fromBase58String(value(getString(j())))
171- let N = E(S)
172- let U = if ((N != 0))
173- then true
174- else k("nothing to claim")
175- if ((U == U))
186+@Callable(s)
187+func increaseDepositFor (e) = {
188+ let W = F(e)
189+ let X = if ((W > 0))
190+ then K(e)
191+ else unit
192+ if ((X == X))
176193 then {
177- let v = A(S)
178- let w = B(S)
179- let x = C(S)
180- let F = valueOrElse(getBoolean(f(S)), false)
181- if (F)
182- then [ScriptTransfer(R, w, T), StringEntry(d(S), z(v, 0, (x + w), height))]
183- else [ScriptTransfer(R, N, T), StringEntry(d(S), z(v, (w - N), (x + N), height))]
184- }
185- else throw("Strict value is not equal to itself.")
186- }
187-
188-
189-
190-@Callable(r)
191-func claimREADONLY (e) = {
192- let N = E(e)
193- $Tuple2(nil, N)
194- }
195-
196-
197-
198-@Callable(r)
199-func stats (e) = $Tuple2(nil, [value(getInteger(g(e))), value(getInteger(h(e))), A(e), C(e), B(e), E(e)])
200-
201-
202-
203-@Callable(r)
204-func setManager (V) = {
205- let W = q(r)
206- if ((W == W))
207- then {
208- let X = fromBase58String(V)
209- if ((X == X))
210- then [StringEntry(c(), V)]
194+ let N = s.payments[0].amount
195+ let T = value(getInteger(i(e)))
196+ let U = (T - height)
197+ let V = value(getInteger(j(e)))
198+ let Y = (N / U)
199+ let Z = B(e)
200+ let aa = C(e)
201+ let ab = D(e)
202+ let ac = E(e)
203+ let R = [r(s), if ((valueOrElse(getBoolean(f(e)), false) == false))
204+ then true
205+ else l("deposit for user is revoked"), if ((getString(d(e)) != unit))
206+ then true
207+ else l("deposit for user doesn't exists"), if ((toBase58String(value(s.payments[0].assetId)) == value(getString(k()))))
208+ then true
209+ else l("attached payment is not WX"), if ((Y != 0))
210+ then true
211+ else l("attached amount too small — increase is zero per block")]
212+ if ((R == R))
213+ then [StringEntry(d(e), A((Z + N), (aa + N), ab, ac)), IntegerEntry(j(e), (V + Y))]
211214 else throw("Strict value is not equal to itself.")
212215 }
213216 else throw("Strict value is not equal to itself.")
215218
216219
217220
218-@Callable(r)
219-func confirmManager () = {
220- let Y = p()
221- let Z = if (isDefined(Y))
221+@Callable(s)
222+func revokeDepositFor (e) = {
223+ let w = B(e)
224+ let x = C(e)
225+ let y = D(e)
226+ let z = E(e)
227+ let ad = F(e)
228+ let ae = valueOrElse(getInteger(g()), 0)
229+ let af = (x - ad)
230+ let ag = (ae + af)
231+ let R = [r(s), if ((getString(d(e)) != unit))
222232 then true
223- else k("no pending manager")
224- if ((Z == Z))
233+ else l("deposit for user is not exists"), if ((ag > ae))
234+ then true
235+ else l("newRevokedTotal can't be less or equal than revokedTotal")]
236+ if ((R == R))
237+ then [BooleanEntry(f(e), true), IntegerEntry(g(), ag), StringEntry(d(e), A(w, ad, y, z))]
238+ else throw("Strict value is not equal to itself.")
239+ }
240+
241+
242+
243+@Callable(s)
244+func claim () = K(toBase58String(s.caller.bytes))
245+
246+
247+
248+@Callable(s)
249+func claimREADONLY (e) = {
250+ let N = F(e)
251+ $Tuple2(nil, N)
252+ }
253+
254+
255+
256+@Callable(s)
257+func stats (e) = $Tuple2(nil, [value(getInteger(h(e))), value(getInteger(i(e))), B(e), D(e), C(e), F(e)])
258+
259+
260+
261+@Callable(s)
262+func setManager (ah) = {
263+ let ai = r(s)
264+ if ((ai == ai))
225265 then {
226- let aa = if ((r.callerPublicKey == value(Y)))
227- then true
228- else k("you are not pending manager")
229- if ((aa == aa))
230- then [StringEntry(b(), toBase58String(value(Y))), DeleteEntry(c())]
266+ let aj = fromBase58String(ah)
267+ if ((aj == aj))
268+ then [StringEntry(c(), ah)]
231269 else throw("Strict value is not equal to itself.")
232270 }
233271 else throw("Strict value is not equal to itself.")
234272 }
235273
236274
237-@Verifier(ab)
238-func ac () = {
239- let ad = {
240- let n = m()
241- if ($isInstanceOf(n, "ByteVector"))
275+
276+@Callable(s)
277+func confirmManager () = {
278+ let ak = q()
279+ let al = if (isDefined(ak))
280+ then true
281+ else l("no pending manager")
282+ if ((al == al))
283+ then {
284+ let am = if ((s.callerPublicKey == value(ak)))
285+ then true
286+ else l("you are not pending manager")
287+ if ((am == am))
288+ then [StringEntry(b(), toBase58String(value(ak))), DeleteEntry(c())]
289+ else throw("Strict value is not equal to itself.")
290+ }
291+ else throw("Strict value is not equal to itself.")
292+ }
293+
294+
295+@Verifier(an)
296+func ao () = {
297+ let ap = {
298+ let o = n()
299+ if ($isInstanceOf(o, "ByteVector"))
242300 then {
243- let t = n
244- t
301+ let u = o
302+ u
245303 }
246- else if ($isInstanceOf(n, "Unit"))
247- then ab.senderPublicKey
304+ else if ($isInstanceOf(o, "Unit"))
305+ then an.senderPublicKey
248306 else throw("Match error")
249307 }
250- sigVerify(ab.bodyBytes, ab.proofs[0], ad)
308+ sigVerify(an.bodyBytes, an.proofs[0], ap)
251309 }
252310
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "__"
55
66 func b () = "%s__managerPublicKey"
77
88
99 func c () = "%s__pendingManagerPublicKey"
1010
1111
1212 func d (e) = makeString(["%s", e], a)
1313
1414
15-func f (e) = makeString(["%s", "revoked", e], a)
15+func f (e) = makeString(["%s%s", "revoked", e], a)
1616
1717
18-func g (e) = makeString(["%s", "vestingStart", e], a)
18+func g () = makeString(["%s", "revokedTotal"], a)
1919
2020
21-func h (e) = makeString(["%s", "vestingEnd", e], a)
21+func h (e) = makeString(["%s%s", "vestingStart", e], a)
2222
2323
24-func i (e) = makeString(["%s", "amountPerBlock", e], a)
24+func i (e) = makeString(["%s%s", "vestingEnd", e], a)
2525
2626
27-func j () = makeString(["%s", "wxAssetId"], a)
27+func j (e) = makeString(["%s%s", "amountPerBlock", e], a)
2828
2929
30-func k (l) = throw(makeString(["vesting.ride:", l], " "))
30+func k () = makeString(["%s", "wxAssetId"], a)
3131
3232
33-func m () = {
34- let n = getString(b())
35- if ($isInstanceOf(n, "String"))
33+func l (m) = throw(makeString(["vesting.ride:", m], " "))
34+
35+
36+func n () = {
37+ let o = getString(b())
38+ if ($isInstanceOf(o, "String"))
3639 then {
37- let o = n
38- fromBase58String(o)
40+ let p = o
41+ fromBase58String(p)
3942 }
40- else if ($isInstanceOf(n, "Unit"))
43+ else if ($isInstanceOf(o, "Unit"))
4144 then unit
4245 else throw("Match error")
4346 }
4447
4548
46-func p () = {
47- let n = getString(c())
48- if ($isInstanceOf(n, "String"))
49+func q () = {
50+ let o = getString(c())
51+ if ($isInstanceOf(o, "String"))
4952 then {
50- let o = n
51- fromBase58String(o)
53+ let p = o
54+ fromBase58String(p)
5255 }
53- else if ($isInstanceOf(n, "Unit"))
56+ else if ($isInstanceOf(o, "Unit"))
5457 then unit
5558 else throw("Match error")
5659 }
5760
5861
59-func q (r) = {
60- let s = k("permission denied")
61- let n = m()
62- if ($isInstanceOf(n, "ByteVector"))
62+func r (s) = {
63+ let t = l("permission denied")
64+ let o = n()
65+ if ($isInstanceOf(o, "ByteVector"))
6366 then {
64- let t = n
65- if ((r.callerPublicKey == t))
67+ let u = o
68+ if ((s.callerPublicKey == u))
6669 then true
67- else s
70+ else t
6871 }
69- else if ($isInstanceOf(n, "Unit"))
70- then if ((r.caller == this))
72+ else if ($isInstanceOf(o, "Unit"))
73+ then if ((s.caller == this))
7174 then true
72- else s
75+ else t
7376 else throw("Match error")
7477 }
7578
7679
77-func u (v,w,x,y) = makeString(["%d%d%d%d%d", v, w, "0", x, y], a)
80+func v (w,x,y,z) = makeString(["%d%d%d%d%d", w, x, "0", y, z], a)
7881
7982
80-func z (v,w,x,y) = u(toString(v), toString(w), toString(x), toString(y))
83+func A (w,x,y,z) = v(toString(w), toString(x), toString(y), toString(z))
8184
8285
83-func A (e) = parseIntValue(split(value(getString(d(e))), a)[1])
86+func B (e) = parseIntValue(split(value(getString(d(e))), a)[1])
8487
8588
86-func B (e) = parseIntValue(split(value(getString(d(e))), a)[2])
89+func C (e) = parseIntValue(split(value(getString(d(e))), a)[2])
8790
8891
89-func C (e) = parseIntValue(split(value(getString(d(e))), a)[3])
92+func D (e) = parseIntValue(split(value(getString(d(e))), a)[3])
9093
9194
92-func D (e) = parseIntValue(split(value(getString(d(e))), a)[5])
95+func E (e) = parseIntValue(split(value(getString(d(e))), a)[5])
9396
9497
95-func E (e) = {
96- let F = valueOrElse(getBoolean(f(e)), false)
97- if (F)
98- then B(e)
98+func F (e) = {
99+ let G = valueOrElse(getBoolean(f(e)), false)
100+ if (G)
101+ then C(e)
99102 else {
100- let G = D(e)
101- if ((G >= height))
103+ let H = E(e)
104+ if ((H >= height))
102105 then 0
103106 else {
104- let H = value(getInteger(h(e)))
105- if ((height > H))
106- then B(e)
107+ let I = value(getInteger(i(e)))
108+ if ((height > I))
109+ then C(e)
107110 else {
108- let I = (height - G)
109- (value(getInteger(i(e))) * I)
111+ let J = (height - H)
112+ (value(getInteger(j(e))) * J)
110113 }
111114 }
112115 }
113116 }
114117
115118
116-@Callable(r)
117-func constructor (J) = {
118- let K = q(r)
119- if ((K == K))
120- then [StringEntry(j(), J)]
119+func K (e) = {
120+ let L = Address(value(fromBase58String(e)))
121+ let M = fromBase58String(value(getString(k())))
122+ let N = F(e)
123+ let O = if ((N != 0))
124+ then true
125+ else l("nothing to claim")
126+ if ((O == O))
127+ then {
128+ let w = B(e)
129+ let x = C(e)
130+ let y = D(e)
131+ let G = valueOrElse(getBoolean(f(e)), false)
132+ if (G)
133+ then [ScriptTransfer(L, x, M), StringEntry(d(e), A(w, 0, (y + x), height))]
134+ else [ScriptTransfer(L, N, M), StringEntry(d(e), A(w, (x - N), (y + N), height))]
135+ }
136+ else throw("Strict value is not equal to itself.")
137+ }
138+
139+
140+@Callable(s)
141+func constructor (P) = {
142+ let Q = r(s)
143+ if ((Q == Q))
144+ then [StringEntry(k(), P)]
121145 else throw("Strict value is not equal to itself.")
122146 }
123147
124148
125149
126-@Callable(r)
127-func createDepositFor (e,L) = {
128- let M = (height + L)
129- let N = r.payments[0].amount
130- let O = (M - height)
131- let P = (N / O)
132- let Q = [q(r), if ((M > height))
150+@Callable(s)
151+func withdrawRevoked () = {
152+ let N = valueOrElse(getInteger(g()), 0)
153+ let M = fromBase58String(value(getString(k())))
154+ let R = [r(s), if ((N > 0))
133155 then true
134- else k("endHeight must be more than height"), if ((getString(d(e)) == unit))
135- then true
136- else k("deposit for user already exists"), if ((toBase58String(value(r.payments[0].assetId)) == value(getString(j()))))
137- then true
138- else k("attached payment is not WX"), if ((P != 0))
139- then true
140- else k("attached amount too small or blocksDuration too large — will claimed zero per block")]
141- if ((Q == Q))
142- then [StringEntry(d(e), z(N, N, 0, height)), IntegerEntry(g(e), height), IntegerEntry(h(e), M), IntegerEntry(i(e), P)]
156+ else l("revoked amount is zero, nothing to withdraw")]
157+ if ((R == R))
158+ then [ScriptTransfer(s.caller, N, M), IntegerEntry(g(), 0)]
143159 else throw("Strict value is not equal to itself.")
144160 }
145161
146162
147163
148-@Callable(r)
149-func revokeDepositFor (e) = {
150- let Q = [q(r), if ((getString(d(e)) != unit))
164+@Callable(s)
165+func createDepositFor (e,S) = {
166+ let N = s.payments[0].amount
167+ let T = (height + S)
168+ let U = (T - height)
169+ let V = (N / U)
170+ let R = [r(s), if ((T > height))
151171 then true
152- else k("deposit for user is not exists")]
153- if ((Q == Q))
154- then {
155- let v = A(e)
156- let N = E(e)
157- let x = C(e)
158- let y = D(e)
159-[BooleanEntry(f(e), true), StringEntry(d(e), z(v, N, x, y))]
160- }
172+ else l("endHeight must be more than height"), if ((getString(d(e)) == unit))
173+ then true
174+ else l("deposit for user already exists"), if ((toBase58String(value(s.payments[0].assetId)) == value(getString(k()))))
175+ then true
176+ else l("attached payment is not WX"), if ((V != 0))
177+ then true
178+ else l("attached amount too small or blocksDuration too large — will claimed zero per block")]
179+ if ((R == R))
180+ then [StringEntry(d(e), A(N, N, 0, height)), IntegerEntry(h(e), height), IntegerEntry(i(e), T), IntegerEntry(j(e), V)]
161181 else throw("Strict value is not equal to itself.")
162182 }
163183
164184
165185
166-@Callable(r)
167-func claim () = {
168- let R = r.caller
169- let S = toString(R)
170- let T = fromBase58String(value(getString(j())))
171- let N = E(S)
172- let U = if ((N != 0))
173- then true
174- else k("nothing to claim")
175- if ((U == U))
186+@Callable(s)
187+func increaseDepositFor (e) = {
188+ let W = F(e)
189+ let X = if ((W > 0))
190+ then K(e)
191+ else unit
192+ if ((X == X))
176193 then {
177- let v = A(S)
178- let w = B(S)
179- let x = C(S)
180- let F = valueOrElse(getBoolean(f(S)), false)
181- if (F)
182- then [ScriptTransfer(R, w, T), StringEntry(d(S), z(v, 0, (x + w), height))]
183- else [ScriptTransfer(R, N, T), StringEntry(d(S), z(v, (w - N), (x + N), height))]
184- }
185- else throw("Strict value is not equal to itself.")
186- }
187-
188-
189-
190-@Callable(r)
191-func claimREADONLY (e) = {
192- let N = E(e)
193- $Tuple2(nil, N)
194- }
195-
196-
197-
198-@Callable(r)
199-func stats (e) = $Tuple2(nil, [value(getInteger(g(e))), value(getInteger(h(e))), A(e), C(e), B(e), E(e)])
200-
201-
202-
203-@Callable(r)
204-func setManager (V) = {
205- let W = q(r)
206- if ((W == W))
207- then {
208- let X = fromBase58String(V)
209- if ((X == X))
210- then [StringEntry(c(), V)]
194+ let N = s.payments[0].amount
195+ let T = value(getInteger(i(e)))
196+ let U = (T - height)
197+ let V = value(getInteger(j(e)))
198+ let Y = (N / U)
199+ let Z = B(e)
200+ let aa = C(e)
201+ let ab = D(e)
202+ let ac = E(e)
203+ let R = [r(s), if ((valueOrElse(getBoolean(f(e)), false) == false))
204+ then true
205+ else l("deposit for user is revoked"), if ((getString(d(e)) != unit))
206+ then true
207+ else l("deposit for user doesn't exists"), if ((toBase58String(value(s.payments[0].assetId)) == value(getString(k()))))
208+ then true
209+ else l("attached payment is not WX"), if ((Y != 0))
210+ then true
211+ else l("attached amount too small — increase is zero per block")]
212+ if ((R == R))
213+ then [StringEntry(d(e), A((Z + N), (aa + N), ab, ac)), IntegerEntry(j(e), (V + Y))]
211214 else throw("Strict value is not equal to itself.")
212215 }
213216 else throw("Strict value is not equal to itself.")
214217 }
215218
216219
217220
218-@Callable(r)
219-func confirmManager () = {
220- let Y = p()
221- let Z = if (isDefined(Y))
221+@Callable(s)
222+func revokeDepositFor (e) = {
223+ let w = B(e)
224+ let x = C(e)
225+ let y = D(e)
226+ let z = E(e)
227+ let ad = F(e)
228+ let ae = valueOrElse(getInteger(g()), 0)
229+ let af = (x - ad)
230+ let ag = (ae + af)
231+ let R = [r(s), if ((getString(d(e)) != unit))
222232 then true
223- else k("no pending manager")
224- if ((Z == Z))
233+ else l("deposit for user is not exists"), if ((ag > ae))
234+ then true
235+ else l("newRevokedTotal can't be less or equal than revokedTotal")]
236+ if ((R == R))
237+ then [BooleanEntry(f(e), true), IntegerEntry(g(), ag), StringEntry(d(e), A(w, ad, y, z))]
238+ else throw("Strict value is not equal to itself.")
239+ }
240+
241+
242+
243+@Callable(s)
244+func claim () = K(toBase58String(s.caller.bytes))
245+
246+
247+
248+@Callable(s)
249+func claimREADONLY (e) = {
250+ let N = F(e)
251+ $Tuple2(nil, N)
252+ }
253+
254+
255+
256+@Callable(s)
257+func stats (e) = $Tuple2(nil, [value(getInteger(h(e))), value(getInteger(i(e))), B(e), D(e), C(e), F(e)])
258+
259+
260+
261+@Callable(s)
262+func setManager (ah) = {
263+ let ai = r(s)
264+ if ((ai == ai))
225265 then {
226- let aa = if ((r.callerPublicKey == value(Y)))
227- then true
228- else k("you are not pending manager")
229- if ((aa == aa))
230- then [StringEntry(b(), toBase58String(value(Y))), DeleteEntry(c())]
266+ let aj = fromBase58String(ah)
267+ if ((aj == aj))
268+ then [StringEntry(c(), ah)]
231269 else throw("Strict value is not equal to itself.")
232270 }
233271 else throw("Strict value is not equal to itself.")
234272 }
235273
236274
237-@Verifier(ab)
238-func ac () = {
239- let ad = {
240- let n = m()
241- if ($isInstanceOf(n, "ByteVector"))
275+
276+@Callable(s)
277+func confirmManager () = {
278+ let ak = q()
279+ let al = if (isDefined(ak))
280+ then true
281+ else l("no pending manager")
282+ if ((al == al))
283+ then {
284+ let am = if ((s.callerPublicKey == value(ak)))
285+ then true
286+ else l("you are not pending manager")
287+ if ((am == am))
288+ then [StringEntry(b(), toBase58String(value(ak))), DeleteEntry(c())]
289+ else throw("Strict value is not equal to itself.")
290+ }
291+ else throw("Strict value is not equal to itself.")
292+ }
293+
294+
295+@Verifier(an)
296+func ao () = {
297+ let ap = {
298+ let o = n()
299+ if ($isInstanceOf(o, "ByteVector"))
242300 then {
243- let t = n
244- t
301+ let u = o
302+ u
245303 }
246- else if ($isInstanceOf(n, "Unit"))
247- then ab.senderPublicKey
304+ else if ($isInstanceOf(o, "Unit"))
305+ then an.senderPublicKey
248306 else throw("Match error")
249307 }
250- sigVerify(ab.bodyBytes, ab.proofs[0], ad)
308+ sigVerify(an.bodyBytes, an.proofs[0], ap)
251309 }
252310

github/deemru/w8io/169f3d6 
152.31 ms