tx · ECVqdyGHEJDvbJhFh8bN35gEJsxtcLkQa4RJMysp2vep

3MwyXzxpp65TzAvdJxnexgz9G5kFkcqGLMF:  -0.01000000 Waves

2019.06.26 22:07 [559493] smart account 3MwyXzxpp65TzAvdJxnexgz9G5kFkcqGLMF > SELF 0.00000000 Waves

{ "type": 13, "id": "ECVqdyGHEJDvbJhFh8bN35gEJsxtcLkQa4RJMysp2vep", "fee": 1000000, "feeAssetId": null, "timestamp": 1561576057622, "version": 1, "sender": "3MwyXzxpp65TzAvdJxnexgz9G5kFkcqGLMF", "senderPublicKey": "7pDDrtFSiQHYSxpdxuBQVCeBQBwa3fFWMBmtJ85aytGX", "proofs": [ "2YgQSxFKwATakNV9iKUEA4ngno9YVZEratL3WUAacsLVsmDUDnvtczWvYdpfaW3k2MCxDPfjobfspCzDuz9X31AF" ], "script": "base64:AAIDAAAAAAAAAAAAAAAEAQAAABNnZXRBZGRyZXNzRnJvbUVudHJ5AAAAAQAAAANrZXkEAAAAB2FkZHJlc3MEAAAAByRtYXRjaDAJAAQdAAAAAgUAAAAEdGhpcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAA3N0cgUAAAAHJG1hdGNoMAUAAAADc3RyCQAAAgAAAAECAAAAFkZpcnN0IGFkZHJlc3Mgbm90IHNldCEFAAAAB2FkZHJlc3MBAAAAGmdldEFkZHJlc3NGcm9tRW50cnlPckVtcHR5AAAAAQAAAANrZXkEAAAAB2FkZHJlc3MEAAAAByRtYXRjaDAJAAQdAAAAAgUAAAAEdGhpcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAA3N0cgUAAAAHJG1hdGNoMAUAAAADc3RyAgAAAAAFAAAAB2FkZHJlc3MBAAAADWdldEludEZyb21LZXkAAAABAAAAA2tleQQAAAASZmlyc3RBZGRyZXNzQW1vdW50BAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFuBQAAAAckbWF0Y2gwBQAAAAFuAAAAAAAAAAAABQAAABJmaXJzdEFkZHJlc3NBbW91bnQBAAAAJmNoZWNrSWZNZXRob2RDYWxsQ29tZXNGcm9tVmFsaWRBY2NvdW50AAAAAQAAAAZzZW5kZXIEAAAADGZpcnN0QWRkcmVzcwkBAAAAE2dldEFkZHJlc3NGcm9tRW50cnkAAAABAgAAAAxmaXJzdEFkZHJlc3MEAAAADXNlY29uZEFkZHJlc3MJAQAAABNnZXRBZGRyZXNzRnJvbUVudHJ5AAAAAQIAAAANc2Vjb25kQWRkcmVzcwMDCQEAAAACIT0AAAACBQAAAAxmaXJzdEFkZHJlc3MFAAAABnNlbmRlcgkBAAAAAiE9AAAAAgUAAAANc2Vjb25kQWRkcmVzcwUAAAAGc2VuZGVyBwkAAAIAAAABCQABLAAAAAICAAAAIk1ldGhvZCBjYWxsIGZyb20gaW52YWxpZCBhY2NvdW50OiAFAAAABnNlbmRlcgYAAAAGAAAAAWkBAAAADWNsYWltQ2hlYXRpbmcAAAAGAAAACnJlY2lwaWVudEEAAAAQYW1vdW50UmVjaXBpZW50QQAAAApyZWNpcGllbnRCAAAAEGFtb3VudFJlY2lwaWVudEIAAAAJdGltZXN0YW1wAAAACXNpZ25hdHVyZQQAAAAGc2VuZGVyCQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAAC3ZhbGlkU2VuZGVyCQEAAAAmY2hlY2tJZk1ldGhvZENhbGxDb21lc0Zyb21WYWxpZEFjY291bnQAAAABBQAAAAZzZW5kZXIEAAAADm9yaWdpbmFsU3RyaW5nCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIFAAAACnJlY2lwaWVudEEJAAGkAAAAAQUAAAAQYW1vdW50UmVjaXBpZW50QQUAAAAKcmVjaXBpZW50QgkAAaQAAAABBQAAABBhbW91bnRSZWNpcGllbnRCCQABpAAAAAEFAAAACXRpbWVzdGFtcAQAAAALY291bnRlclBhcnQJAQAAABNnZXRBZGRyZXNzRnJvbUVudHJ5AAAAAQkAASwAAAACBQAAAAZzZW5kZXICAAAADF9jb3VudGVycGFydAQAAAATc2lnbmVkQnlDb3VudGVycGFydAkAAfQAAAADCQACWQAAAAEFAAAADm9yaWdpbmFsU3RyaW5nCQACWQAAAAEFAAAACXNpZ25hdHVyZQkAAlkAAAABBQAAAAtjb3VudGVyUGFydAQAAAAMb2xkVGltZXN0YW1wCQEAAAANZ2V0SW50RnJvbUtleQAAAAECAAAACXRpbWVzdGFtcAMDAwUAAAALdmFsaWRTZW5kZXIFAAAAE3NpZ25lZEJ5Q291bnRlcnBhcnQHCQAAZgAAAAIFAAAACXRpbWVzdGFtcAUAAAAMb2xkVGltZXN0YW1wBwkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIJAABkAAAAAgUAAAAQYW1vdW50UmVjaXBpZW50QQUAAAAQYW1vdW50UmVjaXBpZW50QgUAAAAEdW5pdAUAAAADbmlsCQAAAgAAAAECAAAAJ1dyb25nIHNpZ25hdHVyZSBvciB0aW1lc3RhbXAgbm90IG5ld2VyIQAAAAFpAQAAAAxjb25maXJtQ2xvc2UAAAAABAAAAAZzZW5kZXIJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAALdmFsaWRTZW5kZXIJAQAAACZjaGVja0lmTWV0aG9kQ2FsbENvbWVzRnJvbVZhbGlkQWNjb3VudAAAAAEFAAAABnNlbmRlcgQAAAAJaW5pdGlhdG9yCQAEHQAAAAIFAAAABHRoaXMCAAAAFGNsb3NpbmdfaW5pdGlhdGVkX2J5AwMJAQAAAAIhPQAAAAIFAAAABnNlbmRlcgUAAAAJaW5pdGlhdG9yBQAAAAt2YWxpZFNlbmRlcgcEAAAADGZpcnN0QWRkcmVzcwkBAAAAE2dldEFkZHJlc3NGcm9tRW50cnkAAAABAgAAAAxmaXJzdEFkZHJlc3MEAAAADXNlY29uZEFkZHJlc3MJAQAAABNnZXRBZGRyZXNzRnJvbUVudHJ5AAAAAQIAAAANc2Vjb25kQWRkcmVzcwQAAAASZmlyc3RBZGRyZXNzQW1vdW50CQEAAAANZ2V0SW50RnJvbUtleQAAAAEFAAAADGZpcnN0QWRkcmVzcwQAAAATc2Vjb25kQWRkcmVzc0Ftb3VudAkBAAAADWdldEludEZyb21LZXkAAAABBQAAAA1zZWNvbmRBZGRyZXNzCQEAAAALVHJhbnNmZXJTZXQAAAABCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABBQAAAAxmaXJzdEFkZHJlc3MFAAAAEmZpcnN0QWRkcmVzc0Ftb3VudAUAAAAEdW5pdAkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAHQWRkcmVzcwAAAAEJAAJZAAAAAQUAAAANc2Vjb25kQWRkcmVzcwUAAAATc2Vjb25kQWRkcmVzc0Ftb3VudAUAAAAEdW5pdAUAAAADbmlsCQAAAgAAAAECAAAAMUluaXRpYXRvciBjYW4gbm90IGNvbmZpcm0gY2xvc2luZyBvZiB0aGUgY2hhbm5lbCEAAAABaQEAAAASY2xvc2VBZnRlclRpbWVsb2NrAAAAAAQAAAAGc2VuZGVyCQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAAC3ZhbGlkU2VuZGVyCQEAAAAmY2hlY2tJZk1ldGhvZENhbGxDb21lc0Zyb21WYWxpZEFjY291bnQAAAABBQAAAAZzZW5kZXIEAAAACHRpbWVsb2NrCQEAAAANZ2V0SW50RnJvbUtleQAAAAECAAAACHRpbWVsb2NrAwMJAABmAAAAAgUAAAAGaGVpZ2h0BQAAAAh0aW1lbG9jawUAAAALdmFsaWRTZW5kZXIHBAAAAAxmaXJzdEFkZHJlc3MJAQAAABNnZXRBZGRyZXNzRnJvbUVudHJ5AAAAAQIAAAAMZmlyc3RBZGRyZXNzBAAAAA1zZWNvbmRBZGRyZXNzCQEAAAATZ2V0QWRkcmVzc0Zyb21FbnRyeQAAAAECAAAADXNlY29uZEFkZHJlc3MEAAAAEmZpcnN0QWRkcmVzc0Ftb3VudAkBAAAADWdldEludEZyb21LZXkAAAABBQAAAAxmaXJzdEFkZHJlc3MEAAAAE3NlY29uZEFkZHJlc3NBbW91bnQJAQAAAA1nZXRJbnRGcm9tS2V5AAAAAQUAAAANc2Vjb25kQWRkcmVzcwkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAHQWRkcmVzcwAAAAEJAAJZAAAAAQUAAAAMZmlyc3RBZGRyZXNzBQAAABJmaXJzdEFkZHJlc3NBbW91bnQFAAAABHVuaXQJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEFAAAADXNlY29uZEFkZHJlc3MFAAAAE3NlY29uZEFkZHJlc3NBbW91bnQFAAAABHVuaXQFAAAAA25pbAkAAAIAAAABAgAAABVUaW1lbG9jayBzdGlsbCB2YWxpZCEAAAABaQEAAAAOaW5pdGlhbENsb3NpbmcAAAAGAAAACnJlY2lwaWVudEEAAAAQYW1vdW50UmVjaXBpZW50QQAAAApyZWNpcGllbnRCAAAAEGFtb3VudFJlY2lwaWVudEIAAAAJdGltZXN0YW1wAAAACXNpZ25hdHVyZQQAAAAGc2VuZGVyCQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAAC3ZhbGlkU2VuZGVyCQEAAAAmY2hlY2tJZk1ldGhvZENhbGxDb21lc0Zyb21WYWxpZEFjY291bnQAAAABBQAAAAZzZW5kZXIEAAAADm9yaWdpbmFsU3RyaW5nCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIFAAAACnJlY2lwaWVudEEJAAGkAAAAAQUAAAAQYW1vdW50UmVjaXBpZW50QQUAAAAKcmVjaXBpZW50QgkAAaQAAAABBQAAABBhbW91bnRSZWNpcGllbnRCCQABpAAAAAEFAAAACXRpbWVzdGFtcAQAAAALY291bnRlclBhcnQJAQAAABNnZXRBZGRyZXNzRnJvbUVudHJ5AAAAAQkAASwAAAACBQAAAAZzZW5kZXICAAAADF9jb3VudGVycGFydAQAAAATc2lnbmVkQnlDb3VudGVycGFydAkAAfQAAAADCQABmwAAAAEFAAAADm9yaWdpbmFsU3RyaW5nCQABmwAAAAEFAAAACXNpZ25hdHVyZQkAAZsAAAABBQAAAAtjb3VudGVyUGFydAQAAAAOdGltZWxvY2tQZXJpb2QJAQAAAA1nZXRJbnRGcm9tS2V5AAAAAQIAAAAOdGltZWxvY2tQZXJpb2QDAwUAAAATc2lnbmVkQnlDb3VudGVycGFydAUAAAALdmFsaWRTZW5kZXIHCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAAApyZWNpcGllbnRBBQAAABBhbW91bnRSZWNpcGllbnRBCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAAApyZWNpcGllbnRCBQAAABBhbW91bnRSZWNpcGllbnRCCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACAgAAABRjbG9zaW5nX2luaXRpYXRlZF9ieQUAAAAGc2VuZGVyCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACAgAAAAl0aW1lc3RhbXAFAAAACXRpbWVzdGFtcAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgIAAAAIdGltZWxvY2sJAABkAAAAAgUAAAAGaGVpZ2h0BQAAAA50aW1lbG9ja1BlcmlvZAUAAAADbmlsCQAAAgAAAAECAAAAEFdyb25nIHNpZ25hdHVyZSEAAAABaQEAAAAEZnVuZAAAAAAEAAAABnNlbmRlcgkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAAAt2YWxpZFNlbmRlcgkBAAAAJmNoZWNrSWZNZXRob2RDYWxsQ29tZXNGcm9tVmFsaWRBY2NvdW50AAAAAQUAAAAGc2VuZGVyBAAAAAdwYXltZW50CQEAAAAHZXh0cmFjdAAAAAEIBQAAAAFpAAAAB3BheW1lbnQEAAAACWFtb3VudEtleQkAASwAAAACBQAAAAZzZW5kZXICAAAAB19hbW91bnQEAAAADWN1cnJlbnRBbW91bnQJAQAAAA1nZXRJbnRGcm9tS2V5AAAAAQUAAAAJYW1vdW50S2V5AwUAAAALdmFsaWRTZW5kZXIDCQEAAAACIT0AAAACBQAAAA1jdXJyZW50QW1vdW50AAAAAAAAAAAACQAAAgAAAAECAAAAKFVzZXIgaGFzIGFscmVhZHkgZnVuZGVkIHBheW1lbnQgY2hhbm5lbCEJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAACWFtb3VudEtleQkAAGQAAAACBQAAAA1jdXJyZW50QW1vdW50CAUAAAAHcGF5bWVudAAAAAZhbW91bnQFAAAAA25pbAkAAAIAAAABAgAAACRXcm9uZyBhY2NvdW50IHRyaWVzIHRvIGZ1bmQgY2hhbm5lbCEAAAABaQEAAAAEaW5pdAAAAAUAAAAMZmlyc3RBZGRyZXNzAAAADmZpcnN0UHVibGljS2V5AAAADXNlY29uZEFkZHJlc3MAAAAPc2Vjb25kUHVibGljS2V5AAAADnRpbWVsb2NrUGVyaW9kBAAAABNjdXJyZW50Rmlyc3RBZGRyZXNzCQEAAAAaZ2V0QWRkcmVzc0Zyb21FbnRyeU9yRW1wdHkAAAABCQABLAAAAAIFAAAADGZpcnN0QWRkcmVzcwIAAAAMX2NvdW50ZXJwYXJ0BAAAABRjdXJyZW50U2Vjb25kQWRkcmVzcwkBAAAAGmdldEFkZHJlc3NGcm9tRW50cnlPckVtcHR5AAAAAQkAASwAAAACBQAAAA1zZWNvbmRBZGRyZXNzAgAAAAxfY291bnRlcnBhcnQDAwkBAAAAAiE9AAAAAgUAAAATY3VycmVudEZpcnN0QWRkcmVzcwIAAAAABgkBAAAAAiE9AAAAAgUAAAAUY3VycmVudFNlY29uZEFkZHJlc3MCAAAAAAkAAAIAAAABAgAAABtDb250cmFjdCBhbHJlYWR5IGluaXRpYXRlZCEJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAICAAAADGZpcnN0QWRkcmVzcwUAAAAMZmlyc3RBZGRyZXNzCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACAgAAAA1zZWNvbmRBZGRyZXNzBQAAAA1zZWNvbmRBZGRyZXNzCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAADGZpcnN0QWRkcmVzcwIAAAAMX2NvdW50ZXJwYXJ0BQAAAA9zZWNvbmRQdWJsaWNLZXkJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAANc2Vjb25kQWRkcmVzcwIAAAAMX2NvdW50ZXJwYXJ0BQAAAA5maXJzdFB1YmxpY0tleQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgIAAAAOdGltZWxvY2tQZXJpb2QFAAAADnRpbWVsb2NrUGVyaW9kBQAAAANuaWwAAAABAAAAAnR4AQAAAAZ2ZXJpZnkAAAAABAAAAAckbWF0Y2gwBQAAAAJ0eAY7KBpD", "chainId": 84, "height": 559493, "spentComplexity": 0 } View: original | compacted Prev: none Next: BPubZeJ2S3Tf2FnDypEMhJ1A3z7WW6QWG3cLx7GBkSnf Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 3 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+func a (b) = {
5+ let c = {
6+ let d = getString(this, b)
7+ if ($isInstanceOf(d, "String"))
8+ then {
9+ let e = d
10+ e
11+ }
12+ else throw("First address not set!")
13+ }
14+ c
15+ }
16+
17+
18+func f (b) = {
19+ let c = {
20+ let d = getString(this, b)
21+ if ($isInstanceOf(d, "String"))
22+ then {
23+ let e = d
24+ e
25+ }
26+ else ""
27+ }
28+ c
29+ }
30+
31+
32+func g (b) = {
33+ let h = {
34+ let d = getInteger(this, b)
35+ if ($isInstanceOf(d, "Int"))
36+ then {
37+ let i = d
38+ i
39+ }
40+ else 0
41+ }
42+ h
43+ }
44+
45+
46+func j (k) = {
47+ let l = a("firstAddress")
48+ let m = a("secondAddress")
49+ if (if ((l != k))
50+ then (m != k)
51+ else false)
52+ then throw(("Method call from invalid account: " + k))
53+ else true
54+ }
55+
56+
57+@Callable(n)
58+func claimCheating (o,p,q,r,s,t) = {
59+ let k = toBase58String(n.caller.bytes)
60+ let u = j(k)
61+ let v = ((((o + toString(p)) + q) + toString(r)) + toString(s))
62+ let w = a((k + "_counterpart"))
63+ let x = sigVerify(fromBase58String(v), fromBase58String(t), fromBase58String(w))
64+ let y = g("timestamp")
65+ if (if (if (u)
66+ then x
67+ else false)
68+ then (s > y)
69+ else false)
70+ then TransferSet([ScriptTransfer(n.caller, (p + r), unit)])
71+ else throw("Wrong signature or timestamp not newer!")
72+ }
73+
74+
75+
76+@Callable(n)
77+func confirmClose () = {
78+ let k = toBase58String(n.caller.bytes)
79+ let u = j(k)
80+ let z = getString(this, "closing_initiated_by")
81+ if (if ((k != z))
82+ then u
83+ else false)
84+ then {
85+ let l = a("firstAddress")
86+ let m = a("secondAddress")
87+ let h = g(l)
88+ let A = g(m)
89+ TransferSet([ScriptTransfer(Address(fromBase58String(l)), h, unit), ScriptTransfer(Address(fromBase58String(m)), A, unit)])
90+ }
91+ else throw("Initiator can not confirm closing of the channel!")
92+ }
93+
94+
95+
96+@Callable(n)
97+func closeAfterTimelock () = {
98+ let k = toBase58String(n.caller.bytes)
99+ let u = j(k)
100+ let B = g("timelock")
101+ if (if ((height > B))
102+ then u
103+ else false)
104+ then {
105+ let l = a("firstAddress")
106+ let m = a("secondAddress")
107+ let h = g(l)
108+ let A = g(m)
109+ TransferSet([ScriptTransfer(Address(fromBase58String(l)), h, unit), ScriptTransfer(Address(fromBase58String(m)), A, unit)])
110+ }
111+ else throw("Timelock still valid!")
112+ }
113+
114+
115+
116+@Callable(n)
117+func initialClosing (o,p,q,r,s,t) = {
118+ let k = toBase58String(n.caller.bytes)
119+ let u = j(k)
120+ let v = ((((o + toString(p)) + q) + toString(r)) + toString(s))
121+ let w = a((k + "_counterpart"))
122+ let x = sigVerify(toBytes(v), toBytes(t), toBytes(w))
123+ let C = g("timelockPeriod")
124+ if (if (x)
125+ then u
126+ else false)
127+ then WriteSet([DataEntry(o, p), DataEntry(q, r), DataEntry("closing_initiated_by", k), DataEntry("timestamp", s), DataEntry("timelock", (height + C))])
128+ else throw("Wrong signature!")
129+ }
130+
131+
132+
133+@Callable(n)
134+func fund () = {
135+ let k = toBase58String(n.caller.bytes)
136+ let u = j(k)
137+ let D = extract(n.payment)
138+ let E = (k + "_amount")
139+ let F = g(E)
140+ if (u)
141+ then if ((F != 0))
142+ then throw("User has already funded payment channel!")
143+ else WriteSet([DataEntry(E, (F + D.amount))])
144+ else throw("Wrong account tries to fund channel!")
145+ }
146+
147+
148+
149+@Callable(n)
150+func init (l,G,m,H,C) = {
151+ let I = f((l + "_counterpart"))
152+ let J = f((m + "_counterpart"))
153+ if (if ((I != ""))
154+ then true
155+ else (J != ""))
156+ then throw("Contract already initiated!")
157+ else WriteSet([DataEntry("firstAddress", l), DataEntry("secondAddress", m), DataEntry((l + "_counterpart"), H), DataEntry((m + "_counterpart"), G), DataEntry("timelockPeriod", C)])
158+ }
159+
160+
161+@Verifier(K)
162+func L () = {
163+ let d = K
164+ true
165+ }
166+

github/deemru/w8io/169f3d6 
41.61 ms