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:
Old | New | Differences | |
---|---|---|---|
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 ◑