tx · 6Pwbo6XCYEVXHwQFSgd52y96HPwXGJzgNyPmunPoTepz

3NC28hSivrmsTUXaYD1x6L362J4ZpUnoTdB:  -0.01400000 Waves

2020.01.31 17:15 [878651] smart account 3NC28hSivrmsTUXaYD1x6L362J4ZpUnoTdB > SELF 0.00000000 Waves

{ "type": 13, "id": "6Pwbo6XCYEVXHwQFSgd52y96HPwXGJzgNyPmunPoTepz", "fee": 1400000, "feeAssetId": null, "timestamp": 1580480217499, "version": 1, "sender": "3NC28hSivrmsTUXaYD1x6L362J4ZpUnoTdB", "senderPublicKey": "Gd5NihbWQoWuTnSvq25TuV2BYZG4U1e9KDqZn9zBPix7", "proofs": [ "2TDs68sV28u8MSk8azWRjjdaiHikxST1wuCCx2ZgVH6s1nNGXUJfitaXZpfdoUfKpNmQW3U29nsEpmnS9TAPodFS" ], "script": "base64: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AgAAAAFfBQAAAA1jYWxsZXJBZGRyZXNzBQAAAARkYXRhBQAAAANuaWwJAQAAAAtUcmFuc2ZlclNldAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAHEBleHRyVXNlcihhZGRyZXNzRnJvbVN0cmluZykAAAABBQAAAARiYW5rBQAAAAZhbW91bnQIBQAAAAdwYXltZW50AAAAB2Fzc2V0SWQFAAAAA25pbAAAAAZpbnZva2UBAAAAD2NyZWF0ZUFncmVlbWVudAAAAAMAAAAEaGFzaAAAAAV0aXRsZQAAAAlhZGRyZXNzZXMEAAAAB3BheW1lbnQJAQAAAAdleHRyYWN0AAAAAQgFAAAABmludm9rZQAAAAdwYXltZW50BAAAAAZhbW91bnQJAQAAAAdleHRyYWN0AAAAAQgFAAAAB3BheW1lbnQAAAAGYW1vdW50BAAAAAJpZAkBAAAAB2V4dHJhY3QAAAABCAUAAAAGaW52b2tlAAAADXRyYW5zYWN0aW9uSWQEAAAADmFkZHJlc3Nlc0FycmF5CQAETAAAAAIJAQAAAAhnZXRWYWx1ZQAAAAIFAAAACWFkZHJlc3NlcwIAAAAIYWRkcmVzczEJAARMAAAAAgkBAAAACGdldFZhbHVlAAAAAgUAAAAJYWRkcmVzc2VzAgAAAAhhZGRyZXNzMgkABEwAAAACCQEAAAAIZ2V0VmFsdWUAAAACBQAAAAlhZGRyZXNzZXMCAAAACGFkZHJlc3MzCQAETAAAAAIJAQAAAAhnZXRWYWx1ZQAAAAIFAAAACWFkZHJlc3NlcwIAAAAIYWRkcmVzczQJAARMAAAAAgkBAAAACGdldFZhbHVlAAAAAgUAAAAJYWRkcmVzc2VzAgAAAAhhZGRyZXNzNQkABEwAAAACCQEAAAAIZ2V0VmFsdWUAAAACBQAAAAlhZGRyZXNzZXMCAAAACGFkZHJlc3M2BQAAAANuaWwEAAAADnRvdGFsQWRkcmVzc2VzBAAAAA0kbGlzdDc0MjU3NDY1BQAAAA5hZGRyZXNzZXNBcnJheQQAAAANJHNpemU3NDI1NzQ2NQkAAZAAAAABBQAAAA0kbGlzdDc0MjU3NDY1BAAAAA0kYWNjMDc0MjU3NDY1AAAAAAAAAAAAAwkAAAAAAAACBQAAAA0kc2l6ZTc0MjU3NDY1AAAAAAAAAAAABQAAAA0kYWNjMDc0MjU3NDY1BAAAAA0kYWNjMTc0MjU3NDY1CQEAAAAMY291bnRQYXJ0aWVzAAAAAgUAAAANJGFjYzA3NDI1NzQ2NQkAAZEAAAACBQAAAA0kbGlzdDc0MjU3NDY1AAAAAAAAAAAAAwkAAAAAAAACBQAAAA0kc2l6ZTc0MjU3NDY1AAAAAAAAAAABBQAAAA0kYWNjMTc0MjU3NDY1BAAAAA0kYWNjMjc0MjU3NDY1CQEAAAAMY291bnRQYXJ0aWVzAAAAAgUAAAANJGFjYzE3NDI1NzQ2NQkAAZEAAAACBQAAAA0kbGlzdDc0MjU3NDY1AAAAAAAAAAABAwkAAAAAAAACBQAAAA0kc2l6ZTc0MjU3NDY1AAAAAAAAAAACBQAAAA0kYWNjMjc0MjU3NDY1BAAAAA0kYWNjMzc0MjU3NDY1CQEAAAAMY291bnRQYXJ0aWVzAAAAAgUAAAANJGFjYzI3NDI1NzQ2NQkAAZEAAAACBQAAAA0kbGlzdDc0MjU3NDY1AAAAAAAAAAACAwkAAAAAAAACBQAAAA0kc2l6ZTc0MjU3NDY1AAAAAAAAAAADBQAAAA0kYWNjMzc0MjU3NDY1BAAAAA0kYWNjNDc0MjU3NDY1CQEAAAAMY291bnRQYXJ0aWVzAAAAAgUAAAANJGFjYzM3NDI1NzQ2NQkAAZEAAAACBQAAAA0kbGlzdDc0MjU3NDY1AAAAAAAAAAADAwkAAAAAAAACBQAAAA0kc2l6ZTc0MjU3NDY1AAAAAAAAAAAEBQAAAA0kYWNjNDc0MjU3NDY1BAAAAA0kYWNjNTc0MjU3NDY1CQEAAAAMY291bnRQYXJ0aWVzAAAAAgUAAAANJGFjYzQ3NDI1NzQ2NQkAAZEAAAACBQAAAA0kbGlzdDc0MjU3NDY1AAAAAAAAAAAEAwkAAAAAAAACBQAAAA0kc2l6ZTc0MjU3NDY1AAAAAAAAAAAFBQAAAA0kYWNjNTc0MjU3NDY1BAAAAA0kYWNjNjc0MjU3NDY1CQEAAAAMY291bnRQYXJ0aWVzAAAAAgUAAAANJGFjYzU3NDI1NzQ2NQkAAZEAAAACBQAAAA0kbGlzdDc0MjU3NDY1AAAAAAAAAAAFAwkAAAAAAAACBQAAAA0kc2l6ZTc0MjU3NDY1AAAAAAAAAAAGBQAAAA0k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AAtUcmFuc2ZlclNldAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAHEBleHRyVXNlcihhZGRyZXNzRnJvbVN0cmluZykAAAABBQAAAARiYW5rBQAAAAZhbW91bnQFAAAADnBheW1lbnRBc3NldElkCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAABxAZXh0clVzZXIoYWRkcmVzc0Zyb21TdHJpbmcpAAAAAQkAAZEAAAACBQAAAA5hZGRyZXNzZXNBcnJheQAAAAAAAAAAAAAAAAAAAAAAAAUAAAAOcGF5bWVudEFzc2V0SWQJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAHEBleHRyVXNlcihhZGRyZXNzRnJvbVN0cmluZykAAAABCQABkQAAAAIFAAAADmFkZHJlc3Nlc0FycmF5AAAAAAAAAAABAAAAAAAAAAAABQAAAA5wYXltZW50QXNzZXRJZAkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAcQGV4dHJVc2VyKGFkZHJlc3NGcm9tU3RyaW5nKQAAAAEJAAGRAAAAAgUAAAAOYWRkcmVzc2VzQXJyYXkAAAAAAAAAAAIAAAAAAAAAAAAFAAAADnBheW1lbnRBc3NldElkCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAABxAZXh0clVzZXIoYWRkcmVzc0Zyb21TdHJpbmcpAAAAAQkAAZEAAAACBQAAAA5hZGRyZXNzZXNBcnJheQAAAAAAAAAAAwAAAAAAAAAAAAUAAAAOcGF5bWVudEFzc2V0SWQJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAHEBleHRyVXNlcihhZGRyZXNzRnJvbVN0cmluZykAAAABCQABkQAAAAIFAAAADmFkZHJlc3Nlc0FycmF5AAAAAAAAAAAEAAAAAAAAAAAABQAAAA5wYXltZW50QXNzZXRJZAkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAcQGV4dHJVc2VyKGFkZHJlc3NGcm9tU3RyaW5nKQAAAAEJAAGRAAAAAgUAAAAOYWRkcmVzc2VzQXJyYXkAAAAAAAAAAAUAAAAAAAAAAAAFAAAADnBheW1lbnRBc3NldElkBQAAAANuaWwJAAACAAAAAQkAASwAAAACAgAAAB5OZWVkcyAyIHRvIDYgcGFydGllcyBhZGRyZXNzZXMJAAGkAAAAAQUAAAAOdG90YWxBZGRyZXNzZXMAAAAGaW52b2tlAQAAAA1zaWduQWdyZWVtZW50AAAAAgAAAARoYXNoAAAAC2FncmVlbWVudElkBAAAAAdwYXltZW50CQEAAAAHZXh0cmFjdAAAAAEIBQAAAAZpbnZva2UAAAAHcGF5bWVudAQAAAAGYW1vdW50CQEAAAAHZXh0cmFjdAAAAAEIBQAAAAdwYXltZW50AAAABmFtb3VudAQAAAACaWQJAQAAAAdleHRyYWN0AAAAAQgFAAAABmludm9rZQAAAA10cmFuc2FjdGlvbklkBAAAAAZzaWduZXIJAAJYAAAAAQgIBQAAAAZpbnZva2UAAAAGY2FsbGVyAAAABWJ5dGVzBAAAABNzaWduaW5nUmVxdWVzdEV4aXN0CQEAAAAUY2hlY2tJZlBlbmRpbmdUb1NpZ24AAAABCQABLAAAAAIJAAEsAAAAAgUAAAAGc2lnbmVyAgAAAARfTUFfBQAAAAthZ3JlZW1lbnRJZAMJAQAAAAEhAAAAAQUAAAATc2lnbmluZ1JlcXVlc3RFeGlzdAkAAAIAAAABAgAAACNTb3JyeSB0aGVyZSBpcyBubyBwZW5kaW5nIHNpZ25hdHVyZQkBAAAADFNjcmlwdFJlc3VsdAAAAAIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAZzaWduZXICAAAABF9NQV8FAAAAC2FncmVlbWVudElkCQABLAAAAAICAAAAB1NJR05FRF8JAAJYAAAAAQUAAAACaWQFAAAAA25pbAkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAcQGV4dHJVc2VyKGFkZHJlc3NGcm9tU3RyaW5nKQAAAAEFAAAABnNpZ25lcgAAAAAAAAehIAUAAAAEdW5pdAUAAAADbmlsAAAAAB2efa0=", "chainId": 84, "height": 878651, "spentComplexity": 0 } View: original | compacted Prev: 6Un94hdcteHYjTYtM4MuNwwNWvJVevqBRfrDZ8jSZXCQ Next: 5qMD6qYEK8HYE1JrSKTKToHTa1XNUquTPVNFiHniikN1 Diff:
OldNewDifferences
3838 }
3939
4040
41-@Callable(k)
42-func fileCertification (l,m,e,n) = {
43- let o = extract(k.transactionId)
44- let p = c(l, e)
45- let q = h(e)
46- let j = toBase58String(k.caller.bytes)
47- let r = i(j)
48- if ((p != "NONE"))
41+func k (l) = if (if ((size(l) == 35))
42+ then (take(l, 2) == "3N")
43+ else false)
44+ then true
45+ else (take(l, 2) == "3M")
46+
47+
48+func m (n,l) = if ((size(l) > 0))
49+ then (n + 1)
50+ else (n + 0)
51+
52+
53+func o (p) = {
54+ let f = getString(this, p)
55+ if ($isInstanceOf(f, "String"))
56+ then {
57+ let g = f
58+ if ((g == "PENDING"))
59+ then true
60+ else false
61+ }
62+ else false
63+ }
64+
65+
66+func q (r) = take(drop(r, 1), value(indexOf(drop(r, 1), "\"")))
67+
68+
69+func s (r,p) = {
70+ let t = value(indexOf(r, (("\"" + p) + "\":")))
71+ let u = drop(r, ((t + size(p)) + 3))
72+ let v = q(u)
73+ v
74+ }
75+
76+
77+@Callable(w)
78+func fileCertification (x,y,e,u) = {
79+ let z = extract(w.transactionId)
80+ let A = c(x, e)
81+ let B = h(e)
82+ let j = toBase58String(w.caller.bytes)
83+ let C = i(j)
84+ if ((A != "NONE"))
4985 then throw("This entry already exist")
50- else if ((q != "NONE"))
86+ else if ((B != "NONE"))
5187 then throw("This uuid already exist")
5288 else if ((size(e) > 36))
5389 then throw("Uuid is too long")
54- else if ((size(l) > 64))
90+ else if ((size(x) > 64))
5591 then throw("Hash is too long")
56- else if ((size(m) > 64))
92+ else if ((size(y) > 64))
5793 then throw("Title is too long")
58- else if ((r > 0))
59- then ScriptResult(WriteSet([DataEntry(e, toBase58String(o)), DataEntry((l + e), toBase58String(o)), DataEntry((m + e), toBase58String(o)), DataEntry(("addr_WHITELISTED_" + j), (r - 1)), DataEntry(((("data_fc_" + toBase58String(o)) + "_") + j), n)]), TransferSet([ScriptTransfer(k.caller, 500000, unit)]))
94+ else if ((C > 0))
95+ then ScriptResult(WriteSet([DataEntry(e, toBase58String(z)), DataEntry((x + e), toBase58String(z)), DataEntry((y + e), toBase58String(z)), DataEntry(("addr_WHITELISTED_" + j), (C - 1)), DataEntry(((("data_fc_" + toBase58String(z)) + "_") + j), u)]), TransferSet([ScriptTransfer(w.caller, 500000, unit)]))
6096 else {
61- let s = extract(k.payment)
62- let t = extract(s.amount)
63- let u = if (isDefined(s.assetId))
64- then extract(s.assetId)
97+ let D = extract(w.payment)
98+ let E = extract(D.amount)
99+ let F = if (isDefined(D.assetId))
100+ then extract(D.assetId)
65101 else throw("Waves is not accepted as payment")
66- let v = {
67- let f = getString(a, ("white_list_token_" + toBase58String(extract(u))))
102+ let G = {
103+ let f = getString(a, ("white_list_token_" + toBase58String(extract(F))))
68104 if ($isInstanceOf(f, "String"))
69105 then {
70106 let g = f
72108 }
73109 else throw("This token is not accepted at the moment")
74110 }
75- let w = getIntegerValue(a, ("certification_fee_" + toBase58String(extract(u))))
76- if ((v != "WHITELISTED"))
111+ let H = getIntegerValue(a, ("certification_fee_" + toBase58String(extract(F))))
112+ if ((G != "WHITELISTED"))
77113 then throw("This token is not accepted at the moment")
78- else if (if ((t != w))
79- then (0 >= r)
114+ else if (if ((E != H))
115+ then (0 >= C)
80116 else false)
81117 then throw("The price is wrong")
82- else ScriptResult(WriteSet([DataEntry(e, toBase58String(o)), DataEntry((l + e), toBase58String(o)), DataEntry((m + e), toBase58String(o)), DataEntry(((("data_fc_" + toBase58String(o)) + "_") + j), n)]), TransferSet([ScriptTransfer(addressFromStringValue(b), t, s.assetId)]))
118+ else ScriptResult(WriteSet([DataEntry(e, toBase58String(z)), DataEntry((x + e), toBase58String(z)), DataEntry((y + e), toBase58String(z)), DataEntry(((("data_fc_" + toBase58String(z)) + "_") + j), u)]), TransferSet([ScriptTransfer(addressFromStringValue(b), E, D.assetId)]))
83119 }
84120 }
85121
86122
87123
88-@Callable(k)
89-func emailCertification (x,e,n) = {
90- let o = extract(k.transactionId)
91- let p = c(x, e)
92- let q = h(e)
93- let j = toBase58String(k.caller.bytes)
94- let r = i(j)
95- if ((p != "NONE"))
124+@Callable(w)
125+func emailCertification (I,e,u) = {
126+ let z = extract(w.transactionId)
127+ let A = c(I, e)
128+ let B = h(e)
129+ let j = toBase58String(w.caller.bytes)
130+ let C = i(j)
131+ if ((A != "NONE"))
96132 then throw("This entry already exist")
97- else if ((q != "NONE"))
133+ else if ((B != "NONE"))
98134 then throw("This uuid already exist")
99135 else if ((size(e) > 36))
100136 then throw("Uuid is too long")
101- else if ((r > 0))
102- then ScriptResult(WriteSet([DataEntry(e, toBase58String(o)), DataEntry((x + e), toBase58String(o)), DataEntry(("addr_WHITELISTED_" + j), (r - 1)), DataEntry(((("data_ec_" + toBase58String(o)) + "_") + j), n)]), TransferSet([ScriptTransfer(k.caller, 500000, unit)]))
137+ else if ((C > 0))
138+ then ScriptResult(WriteSet([DataEntry(e, toBase58String(z)), DataEntry((I + e), toBase58String(z)), DataEntry(("addr_WHITELISTED_" + j), (C - 1)), DataEntry(((("data_ec_" + toBase58String(z)) + "_") + j), u)]), TransferSet([ScriptTransfer(w.caller, 500000, unit)]))
103139 else {
104- let s = extract(k.payment)
105- let t = extract(s.amount)
106- let u = if (isDefined(s.assetId))
107- then extract(s.assetId)
140+ let D = extract(w.payment)
141+ let E = extract(D.amount)
142+ let F = if (isDefined(D.assetId))
143+ then extract(D.assetId)
108144 else throw("Waves is not accepted as payment")
109- let v = {
110- let f = getString(a, ("white_list_token_" + toBase58String(extract(u))))
145+ let G = {
146+ let f = getString(a, ("white_list_token_" + toBase58String(extract(F))))
111147 if ($isInstanceOf(f, "String"))
112148 then {
113149 let g = f
115151 }
116152 else throw("This token is not accepted at the moment")
117153 }
118- let w = getIntegerValue(a, ("certification_fee_" + toBase58String(extract(u))))
119- if ((v != "WHITELISTED"))
154+ let H = getIntegerValue(a, ("certification_fee_" + toBase58String(extract(F))))
155+ if ((G != "WHITELISTED"))
120156 then throw("This token is not accepted at the moment")
121- else if (if ((t != w))
122- then (0 >= r)
157+ else if (if ((E != H))
158+ then (0 >= C)
123159 else false)
124160 then throw("The price is wrong")
125- else ScriptResult(WriteSet([DataEntry(e, toBase58String(o)), DataEntry((x + e), toBase58String(o)), DataEntry(((("data_ec_" + toBase58String(o)) + "_") + j), n)]), TransferSet([ScriptTransfer(addressFromStringValue(b), t, s.assetId)]))
161+ else ScriptResult(WriteSet([DataEntry(e, toBase58String(z)), DataEntry((I + e), toBase58String(z)), DataEntry(((("data_ec_" + toBase58String(z)) + "_") + j), u)]), TransferSet([ScriptTransfer(addressFromStringValue(b), E, D.assetId)]))
126162 }
163+ }
164+
165+
166+
167+@Callable(w)
168+func createAgreement (x,y,J) = {
169+ let D = extract(w.payment)
170+ let E = extract(D.amount)
171+ let z = extract(w.transactionId)
172+ let K = [s(J, "address1"), s(J, "address2"), s(J, "address3"), s(J, "address4"), s(J, "address5"), s(J, "address6")]
173+ let L = {
174+ let M = K
175+ let N = size(M)
176+ let O = 0
177+ if ((N == 0))
178+ then O
179+ else {
180+ let P = m(O, M[0])
181+ if ((N == 1))
182+ then P
183+ else {
184+ let Q = m(P, M[1])
185+ if ((N == 2))
186+ then Q
187+ else {
188+ let R = m(Q, M[2])
189+ if ((N == 3))
190+ then R
191+ else {
192+ let S = m(R, M[3])
193+ if ((N == 4))
194+ then S
195+ else {
196+ let T = m(S, M[4])
197+ if ((N == 5))
198+ then T
199+ else {
200+ let U = m(T, M[5])
201+ if ((N == 6))
202+ then U
203+ else {
204+ let V = m(U, M[6])
205+ throw("List size exceed 6")
206+ }
207+ }
208+ }
209+ }
210+ }
211+ }
212+ }
213+ }
214+ let F = if (isDefined(D.assetId))
215+ then extract(D.assetId)
216+ else throw("Waves is not accepted as payment")
217+ let G = {
218+ let f = getString(a, ("white_list_token_" + toBase58String(extract(F))))
219+ if ($isInstanceOf(f, "String"))
220+ then {
221+ let g = f
222+ g
223+ }
224+ else throw("This token is not accepted at the moment")
225+ }
226+ let H = getIntegerValue(a, ("certification_fee_" + toBase58String(extract(F))))
227+ if ((G != "WHITELISTED"))
228+ then throw("Only payments in SIGN are allowed at the moment")
229+ else if (((H * L) > E))
230+ then throw(("The price is wrong, it should be " + toString((H * L))))
231+ else if ((L == 2))
232+ then ScriptResult(WriteSet([DataEntry(("title_MA_" + toBase58String(z)), y), DataEntry(("hash_MA_" + toBase58String(z)), x), DataEntry(("data_MA_" + toBase58String(z)), J), DataEntry(((K[0] + "_MA_") + toBase58String(z)), "PENDING"), DataEntry(((K[1] + "_MA_") + toBase58String(z)), "PENDING")]), TransferSet([ScriptTransfer(addressFromStringValue(b), E, F), ScriptTransfer(addressFromStringValue(K[0]), 0, F), ScriptTransfer(addressFromStringValue(K[1]), 0, F)]))
233+ else if ((L == 3))
234+ then ScriptResult(WriteSet([DataEntry(("title_MA_" + toBase58String(z)), y), DataEntry(("hash_MA_" + toBase58String(z)), x), DataEntry(("data_MA_" + toBase58String(z)), J), DataEntry(((K[0] + "_MA_") + toBase58String(z)), "PENDING"), DataEntry(((K[1] + "_MA_") + toBase58String(z)), "PENDING"), DataEntry(((K[2] + "_MA_") + toBase58String(z)), "PENDING")]), TransferSet([ScriptTransfer(addressFromStringValue(b), E, F), ScriptTransfer(addressFromStringValue(K[0]), 0, F), ScriptTransfer(addressFromStringValue(K[1]), 0, F), ScriptTransfer(addressFromStringValue(K[2]), 0, F)]))
235+ else if ((L == 4))
236+ then ScriptResult(WriteSet([DataEntry(("title_MA_" + toBase58String(z)), y), DataEntry(("hash_MA_" + toBase58String(z)), x), DataEntry(("data_MA_" + toBase58String(z)), J), DataEntry(((K[0] + "_MA_") + toBase58String(z)), "PENDING"), DataEntry(((K[1] + "_MA_") + toBase58String(z)), "PENDING"), DataEntry(((K[2] + "_MA_") + toBase58String(z)), "PENDING"), DataEntry(((K[3] + "_MA_") + toBase58String(z)), "PENDING")]), TransferSet([ScriptTransfer(addressFromStringValue(b), E, F), ScriptTransfer(addressFromStringValue(K[0]), 0, F), ScriptTransfer(addressFromStringValue(K[1]), 0, F), ScriptTransfer(addressFromStringValue(K[2]), 0, F), ScriptTransfer(addressFromStringValue(K[3]), 0, F)]))
237+ else if ((L == 5))
238+ then ScriptResult(WriteSet([DataEntry(("title_MA_" + toBase58String(z)), y), DataEntry(("hash_MA_" + toBase58String(z)), x), DataEntry(("data_MA_" + toBase58String(z)), J), DataEntry(((K[0] + "_MA_") + toBase58String(z)), "PENDING"), DataEntry(((K[1] + "_MA_") + toBase58String(z)), "PENDING"), DataEntry(((K[2] + "_MA_") + toBase58String(z)), "PENDING"), DataEntry(((K[3] + "_MA_") + toBase58String(z)), "PENDING"), DataEntry(((K[4] + "_MA_") + toBase58String(z)), "PENDING")]), TransferSet([ScriptTransfer(addressFromStringValue(b), E, F), ScriptTransfer(addressFromStringValue(K[0]), 0, F), ScriptTransfer(addressFromStringValue(K[1]), 0, F), ScriptTransfer(addressFromStringValue(K[2]), 0, F), ScriptTransfer(addressFromStringValue(K[3]), 0, F), ScriptTransfer(addressFromStringValue(K[4]), 0, F)]))
239+ else if ((L == 6))
240+ then ScriptResult(WriteSet([DataEntry(("title_MA_" + toBase58String(z)), y), DataEntry(("hash_MA_" + toBase58String(z)), x), DataEntry(("data_MA_" + toBase58String(z)), J), DataEntry(((K[0] + "_MA_") + toBase58String(z)), "PENDING"), DataEntry(((K[1] + "_MA_") + toBase58String(z)), "PENDING"), DataEntry(((K[2] + "_MA_") + toBase58String(z)), "PENDING"), DataEntry(((K[3] + "_MA_") + toBase58String(z)), "PENDING"), DataEntry(((K[4] + "_MA_") + toBase58String(z)), "PENDING"), DataEntry(((K[5] + "_MA_") + toBase58String(z)), "PENDING")]), TransferSet([ScriptTransfer(addressFromStringValue(b), E, F), ScriptTransfer(addressFromStringValue(K[0]), 0, F), ScriptTransfer(addressFromStringValue(K[1]), 0, F), ScriptTransfer(addressFromStringValue(K[2]), 0, F), ScriptTransfer(addressFromStringValue(K[3]), 0, F), ScriptTransfer(addressFromStringValue(K[4]), 0, F), ScriptTransfer(addressFromStringValue(K[5]), 0, F)]))
241+ else throw(("Needs 2 to 6 parties addresses" + toString(L)))
242+ }
243+
244+
245+
246+@Callable(w)
247+func signAgreement (x,W) = {
248+ let D = extract(w.payment)
249+ let E = extract(D.amount)
250+ let z = extract(w.transactionId)
251+ let X = toBase58String(w.caller.bytes)
252+ let Y = o(((X + "_MA_") + W))
253+ if (!(Y))
254+ then throw("Sorry there is no pending signature")
255+ else ScriptResult(WriteSet([DataEntry(((X + "_MA_") + W), ("SIGNED_" + toBase58String(z)))]), TransferSet([ScriptTransfer(addressFromStringValue(X), 500000, unit)]))
127256 }
128257
129258
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = extract(addressFromString("3N2s5RtaHPBenCsx2ECcoFRbYHx3noZhXW1"))
55
66 let b = "3N1E6tXddRoVaRfQ9dQ3vg5LaW2fsd8HKub"
77
88 func c (d,e) = {
99 let f = getString(this, (d + e))
1010 if ($isInstanceOf(f, "String"))
1111 then {
1212 let g = f
1313 g
1414 }
1515 else "NONE"
1616 }
1717
1818
1919 func h (e) = {
2020 let f = getString(this, e)
2121 if ($isInstanceOf(f, "String"))
2222 then {
2323 let g = f
2424 g
2525 }
2626 else "NONE"
2727 }
2828
2929
3030 func i (j) = {
3131 let f = getInteger(this, ("addr_WHITELISTED_" + j))
3232 if ($isInstanceOf(f, "Int"))
3333 then {
3434 let g = f
3535 g
3636 }
3737 else 0
3838 }
3939
4040
41-@Callable(k)
42-func fileCertification (l,m,e,n) = {
43- let o = extract(k.transactionId)
44- let p = c(l, e)
45- let q = h(e)
46- let j = toBase58String(k.caller.bytes)
47- let r = i(j)
48- if ((p != "NONE"))
41+func k (l) = if (if ((size(l) == 35))
42+ then (take(l, 2) == "3N")
43+ else false)
44+ then true
45+ else (take(l, 2) == "3M")
46+
47+
48+func m (n,l) = if ((size(l) > 0))
49+ then (n + 1)
50+ else (n + 0)
51+
52+
53+func o (p) = {
54+ let f = getString(this, p)
55+ if ($isInstanceOf(f, "String"))
56+ then {
57+ let g = f
58+ if ((g == "PENDING"))
59+ then true
60+ else false
61+ }
62+ else false
63+ }
64+
65+
66+func q (r) = take(drop(r, 1), value(indexOf(drop(r, 1), "\"")))
67+
68+
69+func s (r,p) = {
70+ let t = value(indexOf(r, (("\"" + p) + "\":")))
71+ let u = drop(r, ((t + size(p)) + 3))
72+ let v = q(u)
73+ v
74+ }
75+
76+
77+@Callable(w)
78+func fileCertification (x,y,e,u) = {
79+ let z = extract(w.transactionId)
80+ let A = c(x, e)
81+ let B = h(e)
82+ let j = toBase58String(w.caller.bytes)
83+ let C = i(j)
84+ if ((A != "NONE"))
4985 then throw("This entry already exist")
50- else if ((q != "NONE"))
86+ else if ((B != "NONE"))
5187 then throw("This uuid already exist")
5288 else if ((size(e) > 36))
5389 then throw("Uuid is too long")
54- else if ((size(l) > 64))
90+ else if ((size(x) > 64))
5591 then throw("Hash is too long")
56- else if ((size(m) > 64))
92+ else if ((size(y) > 64))
5793 then throw("Title is too long")
58- else if ((r > 0))
59- then ScriptResult(WriteSet([DataEntry(e, toBase58String(o)), DataEntry((l + e), toBase58String(o)), DataEntry((m + e), toBase58String(o)), DataEntry(("addr_WHITELISTED_" + j), (r - 1)), DataEntry(((("data_fc_" + toBase58String(o)) + "_") + j), n)]), TransferSet([ScriptTransfer(k.caller, 500000, unit)]))
94+ else if ((C > 0))
95+ then ScriptResult(WriteSet([DataEntry(e, toBase58String(z)), DataEntry((x + e), toBase58String(z)), DataEntry((y + e), toBase58String(z)), DataEntry(("addr_WHITELISTED_" + j), (C - 1)), DataEntry(((("data_fc_" + toBase58String(z)) + "_") + j), u)]), TransferSet([ScriptTransfer(w.caller, 500000, unit)]))
6096 else {
61- let s = extract(k.payment)
62- let t = extract(s.amount)
63- let u = if (isDefined(s.assetId))
64- then extract(s.assetId)
97+ let D = extract(w.payment)
98+ let E = extract(D.amount)
99+ let F = if (isDefined(D.assetId))
100+ then extract(D.assetId)
65101 else throw("Waves is not accepted as payment")
66- let v = {
67- let f = getString(a, ("white_list_token_" + toBase58String(extract(u))))
102+ let G = {
103+ let f = getString(a, ("white_list_token_" + toBase58String(extract(F))))
68104 if ($isInstanceOf(f, "String"))
69105 then {
70106 let g = f
71107 g
72108 }
73109 else throw("This token is not accepted at the moment")
74110 }
75- let w = getIntegerValue(a, ("certification_fee_" + toBase58String(extract(u))))
76- if ((v != "WHITELISTED"))
111+ let H = getIntegerValue(a, ("certification_fee_" + toBase58String(extract(F))))
112+ if ((G != "WHITELISTED"))
77113 then throw("This token is not accepted at the moment")
78- else if (if ((t != w))
79- then (0 >= r)
114+ else if (if ((E != H))
115+ then (0 >= C)
80116 else false)
81117 then throw("The price is wrong")
82- else ScriptResult(WriteSet([DataEntry(e, toBase58String(o)), DataEntry((l + e), toBase58String(o)), DataEntry((m + e), toBase58String(o)), DataEntry(((("data_fc_" + toBase58String(o)) + "_") + j), n)]), TransferSet([ScriptTransfer(addressFromStringValue(b), t, s.assetId)]))
118+ else ScriptResult(WriteSet([DataEntry(e, toBase58String(z)), DataEntry((x + e), toBase58String(z)), DataEntry((y + e), toBase58String(z)), DataEntry(((("data_fc_" + toBase58String(z)) + "_") + j), u)]), TransferSet([ScriptTransfer(addressFromStringValue(b), E, D.assetId)]))
83119 }
84120 }
85121
86122
87123
88-@Callable(k)
89-func emailCertification (x,e,n) = {
90- let o = extract(k.transactionId)
91- let p = c(x, e)
92- let q = h(e)
93- let j = toBase58String(k.caller.bytes)
94- let r = i(j)
95- if ((p != "NONE"))
124+@Callable(w)
125+func emailCertification (I,e,u) = {
126+ let z = extract(w.transactionId)
127+ let A = c(I, e)
128+ let B = h(e)
129+ let j = toBase58String(w.caller.bytes)
130+ let C = i(j)
131+ if ((A != "NONE"))
96132 then throw("This entry already exist")
97- else if ((q != "NONE"))
133+ else if ((B != "NONE"))
98134 then throw("This uuid already exist")
99135 else if ((size(e) > 36))
100136 then throw("Uuid is too long")
101- else if ((r > 0))
102- then ScriptResult(WriteSet([DataEntry(e, toBase58String(o)), DataEntry((x + e), toBase58String(o)), DataEntry(("addr_WHITELISTED_" + j), (r - 1)), DataEntry(((("data_ec_" + toBase58String(o)) + "_") + j), n)]), TransferSet([ScriptTransfer(k.caller, 500000, unit)]))
137+ else if ((C > 0))
138+ then ScriptResult(WriteSet([DataEntry(e, toBase58String(z)), DataEntry((I + e), toBase58String(z)), DataEntry(("addr_WHITELISTED_" + j), (C - 1)), DataEntry(((("data_ec_" + toBase58String(z)) + "_") + j), u)]), TransferSet([ScriptTransfer(w.caller, 500000, unit)]))
103139 else {
104- let s = extract(k.payment)
105- let t = extract(s.amount)
106- let u = if (isDefined(s.assetId))
107- then extract(s.assetId)
140+ let D = extract(w.payment)
141+ let E = extract(D.amount)
142+ let F = if (isDefined(D.assetId))
143+ then extract(D.assetId)
108144 else throw("Waves is not accepted as payment")
109- let v = {
110- let f = getString(a, ("white_list_token_" + toBase58String(extract(u))))
145+ let G = {
146+ let f = getString(a, ("white_list_token_" + toBase58String(extract(F))))
111147 if ($isInstanceOf(f, "String"))
112148 then {
113149 let g = f
114150 g
115151 }
116152 else throw("This token is not accepted at the moment")
117153 }
118- let w = getIntegerValue(a, ("certification_fee_" + toBase58String(extract(u))))
119- if ((v != "WHITELISTED"))
154+ let H = getIntegerValue(a, ("certification_fee_" + toBase58String(extract(F))))
155+ if ((G != "WHITELISTED"))
120156 then throw("This token is not accepted at the moment")
121- else if (if ((t != w))
122- then (0 >= r)
157+ else if (if ((E != H))
158+ then (0 >= C)
123159 else false)
124160 then throw("The price is wrong")
125- else ScriptResult(WriteSet([DataEntry(e, toBase58String(o)), DataEntry((x + e), toBase58String(o)), DataEntry(((("data_ec_" + toBase58String(o)) + "_") + j), n)]), TransferSet([ScriptTransfer(addressFromStringValue(b), t, s.assetId)]))
161+ else ScriptResult(WriteSet([DataEntry(e, toBase58String(z)), DataEntry((I + e), toBase58String(z)), DataEntry(((("data_ec_" + toBase58String(z)) + "_") + j), u)]), TransferSet([ScriptTransfer(addressFromStringValue(b), E, D.assetId)]))
126162 }
163+ }
164+
165+
166+
167+@Callable(w)
168+func createAgreement (x,y,J) = {
169+ let D = extract(w.payment)
170+ let E = extract(D.amount)
171+ let z = extract(w.transactionId)
172+ let K = [s(J, "address1"), s(J, "address2"), s(J, "address3"), s(J, "address4"), s(J, "address5"), s(J, "address6")]
173+ let L = {
174+ let M = K
175+ let N = size(M)
176+ let O = 0
177+ if ((N == 0))
178+ then O
179+ else {
180+ let P = m(O, M[0])
181+ if ((N == 1))
182+ then P
183+ else {
184+ let Q = m(P, M[1])
185+ if ((N == 2))
186+ then Q
187+ else {
188+ let R = m(Q, M[2])
189+ if ((N == 3))
190+ then R
191+ else {
192+ let S = m(R, M[3])
193+ if ((N == 4))
194+ then S
195+ else {
196+ let T = m(S, M[4])
197+ if ((N == 5))
198+ then T
199+ else {
200+ let U = m(T, M[5])
201+ if ((N == 6))
202+ then U
203+ else {
204+ let V = m(U, M[6])
205+ throw("List size exceed 6")
206+ }
207+ }
208+ }
209+ }
210+ }
211+ }
212+ }
213+ }
214+ let F = if (isDefined(D.assetId))
215+ then extract(D.assetId)
216+ else throw("Waves is not accepted as payment")
217+ let G = {
218+ let f = getString(a, ("white_list_token_" + toBase58String(extract(F))))
219+ if ($isInstanceOf(f, "String"))
220+ then {
221+ let g = f
222+ g
223+ }
224+ else throw("This token is not accepted at the moment")
225+ }
226+ let H = getIntegerValue(a, ("certification_fee_" + toBase58String(extract(F))))
227+ if ((G != "WHITELISTED"))
228+ then throw("Only payments in SIGN are allowed at the moment")
229+ else if (((H * L) > E))
230+ then throw(("The price is wrong, it should be " + toString((H * L))))
231+ else if ((L == 2))
232+ then ScriptResult(WriteSet([DataEntry(("title_MA_" + toBase58String(z)), y), DataEntry(("hash_MA_" + toBase58String(z)), x), DataEntry(("data_MA_" + toBase58String(z)), J), DataEntry(((K[0] + "_MA_") + toBase58String(z)), "PENDING"), DataEntry(((K[1] + "_MA_") + toBase58String(z)), "PENDING")]), TransferSet([ScriptTransfer(addressFromStringValue(b), E, F), ScriptTransfer(addressFromStringValue(K[0]), 0, F), ScriptTransfer(addressFromStringValue(K[1]), 0, F)]))
233+ else if ((L == 3))
234+ then ScriptResult(WriteSet([DataEntry(("title_MA_" + toBase58String(z)), y), DataEntry(("hash_MA_" + toBase58String(z)), x), DataEntry(("data_MA_" + toBase58String(z)), J), DataEntry(((K[0] + "_MA_") + toBase58String(z)), "PENDING"), DataEntry(((K[1] + "_MA_") + toBase58String(z)), "PENDING"), DataEntry(((K[2] + "_MA_") + toBase58String(z)), "PENDING")]), TransferSet([ScriptTransfer(addressFromStringValue(b), E, F), ScriptTransfer(addressFromStringValue(K[0]), 0, F), ScriptTransfer(addressFromStringValue(K[1]), 0, F), ScriptTransfer(addressFromStringValue(K[2]), 0, F)]))
235+ else if ((L == 4))
236+ then ScriptResult(WriteSet([DataEntry(("title_MA_" + toBase58String(z)), y), DataEntry(("hash_MA_" + toBase58String(z)), x), DataEntry(("data_MA_" + toBase58String(z)), J), DataEntry(((K[0] + "_MA_") + toBase58String(z)), "PENDING"), DataEntry(((K[1] + "_MA_") + toBase58String(z)), "PENDING"), DataEntry(((K[2] + "_MA_") + toBase58String(z)), "PENDING"), DataEntry(((K[3] + "_MA_") + toBase58String(z)), "PENDING")]), TransferSet([ScriptTransfer(addressFromStringValue(b), E, F), ScriptTransfer(addressFromStringValue(K[0]), 0, F), ScriptTransfer(addressFromStringValue(K[1]), 0, F), ScriptTransfer(addressFromStringValue(K[2]), 0, F), ScriptTransfer(addressFromStringValue(K[3]), 0, F)]))
237+ else if ((L == 5))
238+ then ScriptResult(WriteSet([DataEntry(("title_MA_" + toBase58String(z)), y), DataEntry(("hash_MA_" + toBase58String(z)), x), DataEntry(("data_MA_" + toBase58String(z)), J), DataEntry(((K[0] + "_MA_") + toBase58String(z)), "PENDING"), DataEntry(((K[1] + "_MA_") + toBase58String(z)), "PENDING"), DataEntry(((K[2] + "_MA_") + toBase58String(z)), "PENDING"), DataEntry(((K[3] + "_MA_") + toBase58String(z)), "PENDING"), DataEntry(((K[4] + "_MA_") + toBase58String(z)), "PENDING")]), TransferSet([ScriptTransfer(addressFromStringValue(b), E, F), ScriptTransfer(addressFromStringValue(K[0]), 0, F), ScriptTransfer(addressFromStringValue(K[1]), 0, F), ScriptTransfer(addressFromStringValue(K[2]), 0, F), ScriptTransfer(addressFromStringValue(K[3]), 0, F), ScriptTransfer(addressFromStringValue(K[4]), 0, F)]))
239+ else if ((L == 6))
240+ then ScriptResult(WriteSet([DataEntry(("title_MA_" + toBase58String(z)), y), DataEntry(("hash_MA_" + toBase58String(z)), x), DataEntry(("data_MA_" + toBase58String(z)), J), DataEntry(((K[0] + "_MA_") + toBase58String(z)), "PENDING"), DataEntry(((K[1] + "_MA_") + toBase58String(z)), "PENDING"), DataEntry(((K[2] + "_MA_") + toBase58String(z)), "PENDING"), DataEntry(((K[3] + "_MA_") + toBase58String(z)), "PENDING"), DataEntry(((K[4] + "_MA_") + toBase58String(z)), "PENDING"), DataEntry(((K[5] + "_MA_") + toBase58String(z)), "PENDING")]), TransferSet([ScriptTransfer(addressFromStringValue(b), E, F), ScriptTransfer(addressFromStringValue(K[0]), 0, F), ScriptTransfer(addressFromStringValue(K[1]), 0, F), ScriptTransfer(addressFromStringValue(K[2]), 0, F), ScriptTransfer(addressFromStringValue(K[3]), 0, F), ScriptTransfer(addressFromStringValue(K[4]), 0, F), ScriptTransfer(addressFromStringValue(K[5]), 0, F)]))
241+ else throw(("Needs 2 to 6 parties addresses" + toString(L)))
242+ }
243+
244+
245+
246+@Callable(w)
247+func signAgreement (x,W) = {
248+ let D = extract(w.payment)
249+ let E = extract(D.amount)
250+ let z = extract(w.transactionId)
251+ let X = toBase58String(w.caller.bytes)
252+ let Y = o(((X + "_MA_") + W))
253+ if (!(Y))
254+ then throw("Sorry there is no pending signature")
255+ else ScriptResult(WriteSet([DataEntry(((X + "_MA_") + W), ("SIGNED_" + toBase58String(z)))]), TransferSet([ScriptTransfer(addressFromStringValue(X), 500000, unit)]))
127256 }
128257
129258

github/deemru/w8io/3ef1775 
98.96 ms