tx · 6VFMfAC5YHBBHwV7rdR3TPwKg4D3JUDbuusqTqaTpz4r

3MwyXzxpp65TzAvdJxnexgz9G5kFkcqGLMF:  -0.01400000 Waves

2019.06.28 18:27 [562154] smart account 3MwyXzxpp65TzAvdJxnexgz9G5kFkcqGLMF > SELF 0.00000000 Waves

{ "type": 13, "id": "6VFMfAC5YHBBHwV7rdR3TPwKg4D3JUDbuusqTqaTpz4r", "fee": 1400000, "feeAssetId": null, "timestamp": 1561735693904, "version": 1, "sender": "3MwyXzxpp65TzAvdJxnexgz9G5kFkcqGLMF", "senderPublicKey": "7pDDrtFSiQHYSxpdxuBQVCeBQBwa3fFWMBmtJ85aytGX", "proofs": [ "5Qu9zBBzyiT8MFBuogB2fXyU2inkmQoQCTaFHt9xF2e7JG1GpZTJpFDZX2qB3XdGzVGbWxfx9EbnTkj8pcwNUXrn" ], "script": "base64:AAIDAAAAAAAAAAAAAAAEAQAAABNnZXRBZGRyZXNzRnJvbUVudHJ5AAAAAQAAAANrZXkEAAAAB2FkZHJlc3MEAAAAByRtYXRjaDAJAAQdAAAAAgUAAAAEdGhpcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAA3N0cgUAAAAHJG1hdGNoMAUAAAADc3RyCQAAAgAAAAECAAAAFkZpcnN0IGFkZHJlc3Mgbm90IHNldCEFAAAAB2FkZHJlc3MBAAAAGmdldEFkZHJlc3NGcm9tRW50cnlPckVtcHR5AAAAAQAAAANrZXkEAAAAB2FkZHJlc3MEAAAAByRtYXRjaDAJAAQdAAAAAgUAAAAEdGhpcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAA3N0cgUAAAAHJG1hdGNoMAUAAAADc3RyAgAAAAAFAAAAB2FkZHJlc3MBAAAADWdldEludEZyb21LZXkAAAABAAAAA2tleQQAAAASZmlyc3RBZGRyZXNzQW1vdW50BAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFuBQAAAAckbWF0Y2gwBQAAAAFuAAAAAAAAAAAABQAAABJmaXJzdEFkZHJlc3NBbW91bnQBAAAAJmNoZWNrSWZNZXRob2RDYWxsQ29tZXNGcm9tVmFsaWRBY2NvdW50AAAAAQAAAAZzZW5kZXIEAAAADGZpcnN0QWRkcmVzcwkBAAAAE2dldEFkZHJlc3NGcm9tRW50cnkAAAABAgAAAAxmaXJzdEFkZHJlc3MEAAAADXNlY29uZEFkZHJlc3MJAQAAABNnZXRBZGRyZXNzRnJvbUVudHJ5AAAAAQIAAAANc2Vjb25kQWRkcmVzcwMDCQEAAAACIT0AAAACBQAAAAxmaXJzdEFkZHJlc3MFAAAABnNlbmRlcgkBAAAAAiE9AAAAAgUAAAANc2Vjb25kQWRkcmVzcwUAAAAGc2VuZGVyBwkAAAIAAAABCQABLAAAAAICAAAAIk1ldGhvZCBjYWxsIGZyb20gaW52YWxpZCBhY2NvdW50OiAFAAAABnNlbmRlcgYAAAAGAAAAAWkBAAAADWNsYWltQ2hlYXRpbmcAAAAGAAAACnJlY2lwaWVudEEAAAAQYW1vdW50UmVjaXBpZW50QQAAAApyZWNpcGllbnRCAAAAEGFtb3VudFJlY2lwaWVudEIAAAAJdGltZXN0YW1wAAAACXNpZ25hdHVyZQQAAAAGc2VuZGVyCQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAAC3ZhbGlkU2VuZGVyCQEAAAAmY2hlY2tJZk1ldGhvZENhbGxDb21lc0Zyb21WYWxpZEFjY291bnQAAAABBQAAAAZzZW5kZXIEAAAADm9yaWdpbmFsU3RyaW5nCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIFAAAACnJlY2lwaWVudEEJAAGkAAAAAQUAAAAQYW1vdW50UmVjaXBpZW50QQUAAAAKcmVjaXBpZW50QgkAAaQAAAABBQAAABBhbW91bnRSZWNpcGllbnRCCQABpAAAAAEFAAAACXRpbWVzdGFtcAQAAAALY291bnRlclBhcnQJAQAAABNnZXRBZGRyZXNzRnJvbUVudHJ5AAAAAQkAASwAAAACBQAAAAZzZW5kZXICAAAADF9jb3VudGVycGFydAQAAAATc2lnbmVkQnlDb3VudGVycGFydAkAAfQAAAADCQACWQAAAAEFAAAADm9yaWdpbmFsU3RyaW5nCQACWQAAAAEFAAAACXNpZ25hdHVyZQkAAlkAAAABBQAAAAtjb3VudGVyUGFydAQAAAAMb2xkVGltZXN0YW1wCQEAAAANZ2V0SW50RnJvbUtleQAAAAECAAAACXRpbWVzdGFtcAMDAwUAAAALdmFsaWRTZW5kZXIFAAAAE3NpZ25lZEJ5Q291bnRlcnBhcnQHCQAAZgAAAAIFAAAACXRpbWVzdGFtcAUAAAAMb2xkVGltZXN0YW1wBwkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIJAABkAAAAAgUAAAAQYW1vdW50UmVjaXBpZW50QQUAAAAQYW1vdW50UmVjaXBpZW50QgUAAAAEdW5pdAUAAAADbmlsCQAAAgAAAAECAAAAJ1dyb25nIHNpZ25hdHVyZSBvciB0aW1lc3RhbXAgbm90IG5ld2VyIQAAAAFpAQAAAAxjb25maXJtQ2xvc2UAAAAABAAAAAZzZW5kZXIJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAALdmFsaWRTZW5kZXIJAQAAACZjaGVja0lmTWV0aG9kQ2FsbENvbWVzRnJvbVZhbGlkQWNjb3VudAAAAAEFAAAABnNlbmRlcgQAAAAJaW5pdGlhdG9yCQAEHQAAAAIFAAAABHRoaXMCAAAAFGNsb3NpbmdfaW5pdGlhdGVkX2J5AwMJAQAAAAIhPQAAAAIFAAAABnNlbmRlcgUAAAAJaW5pdGlhdG9yBQAAAAt2YWxpZFNlbmRlcgcEAAAADGZpcnN0QWRkcmVzcwkBAAAAE2dldEFkZHJlc3NGcm9tRW50cnkAAAABAgAAAAxmaXJzdEFkZHJlc3MEAAAADXNlY29uZEFkZHJlc3MJAQAAABNnZXRBZGRyZXNzRnJvbUVudHJ5AAAAAQIAAAANc2Vjb25kQWRkcmVzcwQAAAASZmlyc3RBZGRyZXNzQW1vdW50CQEAAAANZ2V0SW50RnJvbUtleQAAAAEFAAAADGZpcnN0QWRkcmVzcwQAAAATc2Vjb25kQWRkcmVzc0Ftb3VudAkBAAAADWdldEludEZyb21LZXkAAAABBQAAAA1zZWNvbmRBZGRyZXNzCQEAAAALVHJhbnNmZXJTZXQAAAABCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABBQAAAAxmaXJzdEFkZHJlc3MFAAAAEmZpcnN0QWRkcmVzc0Ftb3VudAUAAAAEdW5pdAkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAHQWRkcmVzcwAAAAEJAAJZAAAAAQUAAAANc2Vjb25kQWRkcmVzcwUAAAATc2Vjb25kQWRkcmVzc0Ftb3VudAUAAAAEdW5pdAUAAAADbmlsCQAAAgAAAAECAAAAMUluaXRpYXRvciBjYW4gbm90IGNvbmZpcm0gY2xvc2luZyBvZiB0aGUgY2hhbm5lbCEAAAABaQEAAAASY2xvc2VBZnRlclRpbWVsb2NrAAAAAAQAAAAGc2VuZGVyCQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAAC3ZhbGlkU2VuZGVyCQEAAAAmY2hlY2tJZk1ldGhvZENhbGxDb21lc0Zyb21WYWxpZEFjY291bnQAAAABBQAAAAZzZW5kZXIEAAAACHRpbWVsb2NrCQEAAAANZ2V0SW50RnJvbUtleQAAAAECAAAACHRpbWVsb2NrAwMJAABmAAAAAgUAAAAGaGVpZ2h0BQAAAAh0aW1lbG9jawUAAAALdmFsaWRTZW5kZXIHBAAAAAxmaXJzdEFkZHJlc3MJAQAAABNnZXRBZGRyZXNzRnJvbUVudHJ5AAAAAQIAAAAMZmlyc3RBZGRyZXNzBAAAAA1zZWNvbmRBZGRyZXNzCQEAAAATZ2V0QWRkcmVzc0Zyb21FbnRyeQAAAAECAAAADXNlY29uZEFkZHJlc3MEAAAAEmZpcnN0QWRkcmVzc0Ftb3VudAkBAAAADWdldEludEZyb21LZXkAAAABBQAAAAxmaXJzdEFkZHJlc3MEAAAAE3NlY29uZEFkZHJlc3NBbW91bnQJAQAAAA1nZXRJbnRGcm9tS2V5AAAAAQUAAAANc2Vjb25kQWRkcmVzcwkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAHQWRkcmVzcwAAAAEJAAJZAAAAAQUAAAAMZmlyc3RBZGRyZXNzBQAAABJmaXJzdEFkZHJlc3NBbW91bnQFAAAABHVuaXQJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEFAAAADXNlY29uZEFkZHJlc3MFAAAAE3NlY29uZEFkZHJlc3NBbW91bnQFAAAABHVuaXQFAAAAA25pbAkAAAIAAAABAgAAABVUaW1lbG9jayBzdGlsbCB2YWxpZCEAAAABaQEAAAAOaW5pdGlhbENsb3NpbmcAAAAGAAAACnJlY2lwaWVudEEAAAAQYW1vdW50UmVjaXBpZW50QQAAAApyZWNpcGllbnRCAAAAEGFtb3VudFJlY2lwaWVudEIAAAAJdGltZXN0YW1wAAAACXNpZ25hdHVyZQQAAAAGc2VuZGVyCQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAAC3ZhbGlkU2VuZGVyCQEAAAAmY2hlY2tJZk1ldGhvZENhbGxDb21lc0Zyb21WYWxpZEFjY291bnQAAAABBQAAAAZzZW5kZXIEAAAADm9yaWdpbmFsU3RyaW5nCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIFAAAACnJlY2lwaWVudEEJAAGkAAAAAQUAAAAQYW1vdW50UmVjaXBpZW50QQUAAAAKcmVjaXBpZW50QgkAAaQAAAABBQAAABBhbW91bnRSZWNpcGllbnRCCQABpAAAAAEFAAAACXRpbWVzdGFtcAQAAAASb3JpZ2luYWxTdHJpbmdCUzU4CQACWAAAAAEJAAGbAAAAAQUAAAAOb3JpZ2luYWxTdHJpbmcEAAAAC2NvdW50ZXJQYXJ0CQEAAAATZ2V0QWRkcmVzc0Zyb21FbnRyeQAAAAEJAAEsAAAAAgUAAAAGc2VuZGVyAgAAAAxfY291bnRlcnBhcnQEAAAAE3NpZ25lZEJ5Q291bnRlcnBhcnQJAAH0AAAAAwkAAZsAAAABBQAAAA5vcmlnaW5hbFN0cmluZwkAAlkAAAABBQAAAAlzaWduYXR1cmUJAAJZAAAAAQUAAAALY291bnRlclBhcnQEAAAADnRpbWVsb2NrUGVyaW9kCQEAAAANZ2V0SW50RnJvbUtleQAAAAECAAAADnRpbWVsb2NrUGVyaW9kAwMFAAAAE3NpZ25lZEJ5Q291bnRlcnBhcnQFAAAAC3ZhbGlkU2VuZGVyBwkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAAKcmVjaXBpZW50QQUAAAAQYW1vdW50UmVjaXBpZW50QQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAAKcmVjaXBpZW50QgUAAAAQYW1vdW50UmVjaXBpZW50QgkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgIAAAAUY2xvc2luZ19pbml0aWF0ZWRfYnkFAAAABnNlbmRlcgkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgIAAAAJdGltZXN0YW1wBQAAAAl0aW1lc3RhbXAJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAICAAAACHRpbWVsb2NrCQAAZAAAAAIFAAAABmhlaWdodAUAAAAOdGltZWxvY2tQZXJpb2QFAAAAA25pbAkAAAIAAAABAgAAABBXcm9uZyBzaWduYXR1cmUhAAAAAWkBAAAABGZ1bmQAAAAABAAAAAZzZW5kZXIJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAALdmFsaWRTZW5kZXIJAQAAACZjaGVja0lmTWV0aG9kQ2FsbENvbWVzRnJvbVZhbGlkQWNjb3VudAAAAAEFAAAABnNlbmRlcgQAAAAHcGF5bWVudAkBAAAAB2V4dHJhY3QAAAABCAUAAAABaQAAAAdwYXltZW50BAAAAAlhbW91bnRLZXkJAAEsAAAAAgUAAAAGc2VuZGVyAgAAAAdfYW1vdW50BAAAAA1jdXJyZW50QW1vdW50CQEAAAANZ2V0SW50RnJvbUtleQAAAAEFAAAACWFtb3VudEtleQMFAAAAC3ZhbGlkU2VuZGVyAwkBAAAAAiE9AAAAAgUAAAANY3VycmVudEFtb3VudAAAAAAAAAAAAAkAAAIAAAABAgAAAChVc2VyIGhhcyBhbHJlYWR5IGZ1bmRlZCBwYXltZW50IGNoYW5uZWwhCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAAAlhbW91bnRLZXkJAABkAAAAAgUAAAANY3VycmVudEFtb3VudAgFAAAAB3BheW1lbnQAAAAGYW1vdW50BQAAAANuaWwJAAACAAAAAQIAAAAkV3JvbmcgYWNjb3VudCB0cmllcyB0byBmdW5kIGNoYW5uZWwhAAAAAWkBAAAABGluaXQAAAAFAAAADGZpcnN0QWRkcmVzcwAAAA5maXJzdFB1YmxpY0tleQAAAA1zZWNvbmRBZGRyZXNzAAAAD3NlY29uZFB1YmxpY0tleQAAAA50aW1lbG9ja1BlcmlvZAQAAAATY3VycmVudEZpcnN0QWRkcmVzcwkBAAAAGmdldEFkZHJlc3NGcm9tRW50cnlPckVtcHR5AAAAAQkAASwAAAACBQAAAAxmaXJzdEFkZHJlc3MCAAAADF9jb3VudGVycGFydAQAAAAUY3VycmVudFNlY29uZEFkZHJlc3MJAQAAABpnZXRBZGRyZXNzRnJvbUVudHJ5T3JFbXB0eQAAAAEJAAEsAAAAAgUAAAANc2Vjb25kQWRkcmVzcwIAAAAMX2NvdW50ZXJwYXJ0AwMJAQAAAAIhPQAAAAIFAAAAE2N1cnJlbnRGaXJzdEFkZHJlc3MCAAAAAAYJAQAAAAIhPQAAAAIFAAAAFGN1cnJlbnRTZWNvbmRBZGRyZXNzAgAAAAAJAAACAAAAAQIAAAAbQ29udHJhY3QgYWxyZWFkeSBpbml0aWF0ZWQhCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACAgAAAAxmaXJzdEFkZHJlc3MFAAAADGZpcnN0QWRkcmVzcwkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgIAAAANc2Vjb25kQWRkcmVzcwUAAAANc2Vjb25kQWRkcmVzcwkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAxmaXJzdEFkZHJlc3MCAAAADF9jb3VudGVycGFydAUAAAAPc2Vjb25kUHVibGljS2V5CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAADXNlY29uZEFkZHJlc3MCAAAADF9jb3VudGVycGFydAUAAAAOZmlyc3RQdWJsaWNLZXkJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAICAAAADnRpbWVsb2NrUGVyaW9kBQAAAA50aW1lbG9ja1BlcmlvZAUAAAADbmlsAAAAAQAAAAJ0eAEAAAAGdmVyaWZ5AAAAAAQAAAAHJG1hdGNoMAUAAAACdHgGThOtmA==", "chainId": 84, "height": 562154, "spentComplexity": 0 } View: original | compacted Prev: FojUwSUufR4zkPtmChvhAGYaSv6mzrhGLkKWoG9rwJyf Next: 2YVo26kgx2XvHbNVPkA8KYp5UJMaAbTLPL1txnATXqLD Diff:
OldNewDifferences
120120 let v = ((((o + toString(p)) + q) + toString(r)) + toString(s))
121121 let C = toBase58String(toBytes(v))
122122 let w = a((k + "_counterpart"))
123- let x = sigVerify(fromBase58String(C), toBytes(t), fromBase58String(w))
123+ let x = sigVerify(toBytes(v), fromBase58String(t), fromBase58String(w))
124124 let D = g("timelockPeriod")
125125 if (if (x)
126126 then u
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 func a (b) = {
55 let c = {
66 let d = getString(this, b)
77 if ($isInstanceOf(d, "String"))
88 then {
99 let e = d
1010 e
1111 }
1212 else throw("First address not set!")
1313 }
1414 c
1515 }
1616
1717
1818 func f (b) = {
1919 let c = {
2020 let d = getString(this, b)
2121 if ($isInstanceOf(d, "String"))
2222 then {
2323 let e = d
2424 e
2525 }
2626 else ""
2727 }
2828 c
2929 }
3030
3131
3232 func g (b) = {
3333 let h = {
3434 let d = getInteger(this, b)
3535 if ($isInstanceOf(d, "Int"))
3636 then {
3737 let i = d
3838 i
3939 }
4040 else 0
4141 }
4242 h
4343 }
4444
4545
4646 func j (k) = {
4747 let l = a("firstAddress")
4848 let m = a("secondAddress")
4949 if (if ((l != k))
5050 then (m != k)
5151 else false)
5252 then throw(("Method call from invalid account: " + k))
5353 else true
5454 }
5555
5656
5757 @Callable(n)
5858 func claimCheating (o,p,q,r,s,t) = {
5959 let k = toBase58String(n.caller.bytes)
6060 let u = j(k)
6161 let v = ((((o + toString(p)) + q) + toString(r)) + toString(s))
6262 let w = a((k + "_counterpart"))
6363 let x = sigVerify(fromBase58String(v), fromBase58String(t), fromBase58String(w))
6464 let y = g("timestamp")
6565 if (if (if (u)
6666 then x
6767 else false)
6868 then (s > y)
6969 else false)
7070 then TransferSet([ScriptTransfer(n.caller, (p + r), unit)])
7171 else throw("Wrong signature or timestamp not newer!")
7272 }
7373
7474
7575
7676 @Callable(n)
7777 func confirmClose () = {
7878 let k = toBase58String(n.caller.bytes)
7979 let u = j(k)
8080 let z = getString(this, "closing_initiated_by")
8181 if (if ((k != z))
8282 then u
8383 else false)
8484 then {
8585 let l = a("firstAddress")
8686 let m = a("secondAddress")
8787 let h = g(l)
8888 let A = g(m)
8989 TransferSet([ScriptTransfer(Address(fromBase58String(l)), h, unit), ScriptTransfer(Address(fromBase58String(m)), A, unit)])
9090 }
9191 else throw("Initiator can not confirm closing of the channel!")
9292 }
9393
9494
9595
9696 @Callable(n)
9797 func closeAfterTimelock () = {
9898 let k = toBase58String(n.caller.bytes)
9999 let u = j(k)
100100 let B = g("timelock")
101101 if (if ((height > B))
102102 then u
103103 else false)
104104 then {
105105 let l = a("firstAddress")
106106 let m = a("secondAddress")
107107 let h = g(l)
108108 let A = g(m)
109109 TransferSet([ScriptTransfer(Address(fromBase58String(l)), h, unit), ScriptTransfer(Address(fromBase58String(m)), A, unit)])
110110 }
111111 else throw("Timelock still valid!")
112112 }
113113
114114
115115
116116 @Callable(n)
117117 func initialClosing (o,p,q,r,s,t) = {
118118 let k = toBase58String(n.caller.bytes)
119119 let u = j(k)
120120 let v = ((((o + toString(p)) + q) + toString(r)) + toString(s))
121121 let C = toBase58String(toBytes(v))
122122 let w = a((k + "_counterpart"))
123- let x = sigVerify(fromBase58String(C), toBytes(t), fromBase58String(w))
123+ let x = sigVerify(toBytes(v), fromBase58String(t), fromBase58String(w))
124124 let D = g("timelockPeriod")
125125 if (if (x)
126126 then u
127127 else false)
128128 then WriteSet([DataEntry(o, p), DataEntry(q, r), DataEntry("closing_initiated_by", k), DataEntry("timestamp", s), DataEntry("timelock", (height + D))])
129129 else throw("Wrong signature!")
130130 }
131131
132132
133133
134134 @Callable(n)
135135 func fund () = {
136136 let k = toBase58String(n.caller.bytes)
137137 let u = j(k)
138138 let E = extract(n.payment)
139139 let F = (k + "_amount")
140140 let G = g(F)
141141 if (u)
142142 then if ((G != 0))
143143 then throw("User has already funded payment channel!")
144144 else WriteSet([DataEntry(F, (G + E.amount))])
145145 else throw("Wrong account tries to fund channel!")
146146 }
147147
148148
149149
150150 @Callable(n)
151151 func init (l,H,m,I,D) = {
152152 let J = f((l + "_counterpart"))
153153 let K = f((m + "_counterpart"))
154154 if (if ((J != ""))
155155 then true
156156 else (K != ""))
157157 then throw("Contract already initiated!")
158158 else WriteSet([DataEntry("firstAddress", l), DataEntry("secondAddress", m), DataEntry((l + "_counterpart"), I), DataEntry((m + "_counterpart"), H), DataEntry("timelockPeriod", D)])
159159 }
160160
161161
162162 @Verifier(L)
163163 func M () = {
164164 let d = L
165165 true
166166 }
167167

github/deemru/w8io/169f3d6 
152.47 ms