tx · 5ZjUJx9tuqDyKNjWBK3CSg9vr5ni5P7HT3gFvZFwY2t9

3MyZojSHcQ6HX9w5G5WEixHkn6huVhPE24y:  -0.01400000 Waves

2021.06.24 17:11 [1584562] smart account 3MyZojSHcQ6HX9w5G5WEixHkn6huVhPE24y > SELF 0.00000000 Waves

{ "type": 13, "id": "5ZjUJx9tuqDyKNjWBK3CSg9vr5ni5P7HT3gFvZFwY2t9", "fee": 1400000, "feeAssetId": null, "timestamp": 1624543936229, "version": 2, "chainId": 84, "sender": "3MyZojSHcQ6HX9w5G5WEixHkn6huVhPE24y", "senderPublicKey": "3qeBPCwzp2Z4ed5WHqoSxuLnkwVQpqkVYgxnj2MDRbgf", "proofs": [ "67NXa8fUkJmBt6TU6GKrNEcszDK9JQd8YYps8fkxqP9EA9vZExxcdVNcRdJHxvkFDqcztUgtvDM5dQEyLo37Nn92" ], "script": "base64:AAIEAAAAAAAAAEAIAhIECgIBCBIFCgMIAQgSAwoBCBIDCgEIEgMKAQgSBQoDCAgIEgUKAwgICBIECgIICBIFCgMICAgSBQoDCAgIAAAAMgAAAAAIdW5pdFRlc3QHAAAAAAlvcmFjbGVGZWUJAQAAAAV2YWx1ZQAAAAEJAAQmAAAAAQIAAAAjM04yczVSdGFIUEJlbkNzeDJFQ2NvRlJiWUh4M25vWmhYVzEAAAAACHNpZ25EYXBwCQEAAAAFdmFsdWUAAAABCQAEJgAAAAECAAAAIzNOQzI4aFNpdnJtc1RVWGFZRDF4NkwzNjJKNFpwVW5vVGRCAAAAAAxhcnR3b3Jrc0RhcHAJAQAAAAV2YWx1ZQAAAAEJAAQmAAAAAQIAAAAjM05CeW5mYlhDMkthc3RVeGh1a2NNVWFFNThLOWNCZEI5VVkAAAAAC2ZlZVJlY2VpdmVyAgAAACMzTjFFNnRYZGRSb1ZhUmZROWRRM3ZnNUxhVzJmc2Q4SEt1YgAAAAAIdXNlckRhcHADBQAAAAh1bml0VGVzdAkBAAAABXZhbHVlAAAAAQkABCYAAAABAgAAACMzTXQ0UkdNRXlqU1dZQW9jVFBxZDU1d2RIUVFCM1BVMlVDbQkBAAAABXZhbHVlAAAAAQkABCYAAAABAgAAACMzTjh4WGFZakUyN0FhNzlkNWhIcmhIdTlIYUZvVEJtaERFagAAAAANd2hpdGVsaXN0RGFwcAkBAAAABXZhbHVlAAAAAQkABCYAAAABAgAAACMzTjZCYVYxZENCNHpnNDNnb05OSGFDdHZSMTNCY3lKNUdzcQAAAAALc2lnbkFzc2V0SWQBAAAAIOilarzKd0LycGEyNUpPRYO5uR7lmWcXw3Hq2QuhBK3rAAAAAAt1c2RuQXNzZXRJZAEAAAAgD/IcEqzkxDya7EYaqyWosOy6BytGzG2IcvC14pJJAbQAAAAADHdhdmVzQXNzZXRJZAEAAAAAAAAAAAVjaHJpcwIAAAAjM01zRzZqUE5DclZKVXRZQjdYSkJ4Uzd1dFdzWEFmNG45VnAAAAAAB3NpZ25DdXQAAAAAAAAAAAMAAAAACmNyZWF0b3JDdXQAAAAAAAAAAAoAAAAAC2RhcHBSdW5uaW5nCQEAAAALdmFsdWVPckVsc2UAAAACCQAEGwAAAAIFAAAACHVzZXJEYXBwAgAA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ZmZlck93bmVyBAAAAA0kdDAxNTA2MTE1MTUzCQEAAAAPcHJvdmlkZUJhc2VEYXRhAAAAAgUAAAABaQUAAAAFbmZ0SWQEAAAAAmlkCAUAAAANJHQwMTUwNjExNTE1MwAAAAJfMQQAAAAGY2FsbGVyCAUAAAANJHQwMTUwNjExNTE1MwAAAAJfMgQAAAAEZGF0ZQgFAAAADSR0MDE1MDYxMTUxNTMAAAACXzMEAAAACmlzVmFsaWRORlQIBQAAAA0kdDAxNTA2MTE1MTUzAAAAAl80BAAAAAVhcnRJZAgFAAAADSR0MDE1MDYxMTUxNTMAAAACXzUEAAAAC2NyZWF0b3JBZGRyCAUAAAANJHQwMTUwNjExNTE1MwAAAAJfNgQAAAAJYXJ0U2lnbklECAUAAAANJHQwMTUwNjExNTE1MwAAAAJfNwMJAQAAAAEhAAAAAQUAAAAKaXNWYWxpZE5GVAkAAAIAAAABAgAAAA9Ob3QgYSB2YWxpZCBuZnQEAAAACXNhbGVPd25lcgkBAAAAFWdldFNhbGVPd25lckFuZFN0YXR1cwAAAAEFAAAABW5mdElkAwkBAAAAAiE9AAAAAgUAAAAGY2FsbGVyBQAAAAlzYWxlT3duZXIJAAACAAAAAQIAAAAgT25seSBzYWxlIG93bmVyIGNhbiBhY2NlcHQgb2ZmZXIEAAAABmJpZEtleQkBAAAACWdldEJpZEtleQAAAAQFAAAACm9mZmVyT3duZXIFAAAABW5mdElkBQAAAAlzYWxlT3duZXIFAAAAB29mZmVySWQEAAAADSR0MDE1NDA3MTU0NjIJAQAAAApnZXRCaWREYXRhAAAAAQUAAAAGYmlkS2V5BAAAAApiaWREYXRhQXJyCAUAAAANJHQwMTU0MDcxNTQ2MgAAAAJfMQQAAAAHYXNzZXRJZAgFAAAADSR0MDE1NDA3MTU0NjIAAAACXzIEAAAAB2JpZERhdGEIBQAAAA0kdDAxNTQwNzE1NDYyAAAAAl8zBAAAAAdzYWxlS2V5CQEAAAAKZ2V0U2FsZUtleQAAAAQFAAAACXNhbGVPd25lcgUAAAAFbmZ0SWQFAAAABWFydElkBQAAAAtjcmVhdG9yQWRkcgQAAAAIc2FsZUluZm8JAQAAAAlnZXRTdHJCeUsAAAABCQABLAAAAAIFAAAAB3NhbGVLZXkCAAAA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", "height": 1584562, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 774GnEpNjts7UyQwc9LotQmfJK2nqk49spNAAz9Hf6w5 Next: rYP3r4izph4MCsVztBC4weMuYDpvgYvPPsfBmYk4eFF Diff:
OldNewDifferences
2525
2626 let k = "3MsG6jPNCrVJUtYB7XJBxS7utWsXAf4n9Vp"
2727
28-let l = "3Mzm4VLwsN9uZwbTMzPj3XuxV6kEfAR8UDN"
28+let l = 3
2929
30-let m = 3
30+let m = 10
3131
32-let n = 10
32+let n = valueOrElse(getBoolean(f, "conf_dapp_is_running"), true)
3333
34-let o = valueOrElse(getBoolean(f, "conf_dapp_is_running"), true)
34+let o = valueOrElse(getString(f, "conf_maintenance_msg"), "")
3535
36-let p = valueOrElse(getString(f, "conf_maintenance_msg"), "")
36+let p = "SUSPENDED"
3737
38-let q = "SUSPENDED"
38+let q = "REMOVED"
3939
40-let r = "REMOVED"
40+let r = "ILLEGAL"
4141
42-let s = "ILLEGAL"
42+let s = "SUSPENDED"
4343
44-let t = "SUSPENDED"
44+let t = "num_sales"
4545
4646 func u (v) = valueOrElse(getString(f, v), "Error")
4747
6767 func F (G) = ("nft_" + G)
6868
6969
70-func H (v) = valueOrErrorMessage(getInteger(b, v), "Integer undefine or 0 in oracle")
70+func H (I,J,D,K) = ((((((("sale2nd_info_" + I) + "_") + J) + "_") + D) + "_") + K)
7171
7272
73-let I = H(("certification_fee_" + toBase58String(h)))
74-
75-func J (K) = if (!(o))
76- then throw(p)
77- else $Tuple3(toBase58String(K.transactionId), toBase58String(K.caller.bytes), lastBlock.timestamp)
73+func L (M,J,N,O) = ((((((("offer2nd_" + M) + "_") + J) + "_") + N) + "_") + O)
7874
7975
80-func L (K) = if ((size(K.payments) == 0))
76+func P (Q,K,D,G) = ((((((("request2nd_" + Q) + "_") + K) + "_") + D) + "_") + G)
77+
78+
79+func R (v) = valueOrErrorMessage(getInteger(b, v), "Integer undefine or 0 in oracle")
80+
81+
82+let S = R(("certification_fee_" + toBase58String(h)))
83+
84+func T (U) = if (!(n))
85+ then throw(o)
86+ else $Tuple3(toBase58String(U.transactionId), toBase58String(U.caller.bytes), lastBlock.timestamp)
87+
88+
89+func V (U) = if ((size(U.payments) == 0))
8190 then throw("No payment attached")
8291 else {
83- let M = value(K.payments[0])
84- let N = value(M.amount)
85- $Tuple2(M, N)
92+ let W = value(U.payments[0])
93+ let X = value(W.amount)
94+ $Tuple2(W, X)
8695 }
8796
8897
89-func O (G) = {
90- let P = value(assetInfo(G))
91- if (if (if (if ((P.quantity != 1))
92- then true
93- else (P.decimals != 0))
94- then true
95- else (P.reissuable != false))
96- then true
97- else (P.issuer != d))
98- then false
99- else true
98+func Y (Z) = if (if (if ((Z.quantity == 1))
99+ then (Z.decimals == 0)
100+ else false)
101+ then (Z.reissuable == false)
102+ else false)
103+ then (Z.issuer == d)
104+ else false
105+
106+
107+func aa (G) = {
108+ let Z = value(assetInfo(G))
109+ Y(Z)
100110 }
101111
102112
103-func Q (R) = if (if (if (if ((R != toBase58String(h)))
104- then (R != toBase58String(j))
113+func ab (ac) = if (if (if (if ((ac != toBase58String(h)))
114+ then (ac != toBase58String(j))
105115 else false)
106- then (R != "WAVES")
116+ then (ac != "WAVES")
107117 else false)
108- then (R != toBase58String(i))
118+ then (ac != toBase58String(i))
109119 else false)
110120 then false
111121 else true
112122
113123
114-func S (R) = if ((R == "WAVES"))
124+func ad (ac) = if ((ac == "WAVES"))
115125 then unit
116- else fromBase58String(R)
126+ else fromBase58String(ac)
117127
118128
119-func T (U) = {
120- let V = x(("current_owner_on_dapp_" + U))
121- if ((size(V) == 0))
129+func ae (af) = {
130+ let N = x(("current_owner_on_dapp_" + af))
131+ if ((size(N) == 0))
122132 then throw("NFT not found")
123133 else {
124- let W = x(((("sale2nd_status_" + V) + "_") + U))
125- if ((W != "OPEN"))
134+ let ag = x(((("sale2nd_status_" + N) + "_") + af))
135+ if ((ag != "OPEN"))
126136 then throw("NFT not for sale")
127- else V
137+ else N
128138 }
129139 }
130140
131141
132-func X (v) = {
133- let Y = x((v + "_OPEN"))
134- if ((Y == ""))
142+func ah (v) = {
143+ let ai = x((v + "_OPEN"))
144+ if ((ai == ""))
135145 then throw("Offer not found")
136146 else {
137- let Z = split(Y, "_")
138- let R = S(Z[2])
139- $Tuple3(Z, R, Y)
147+ let aj = split(ai, "_")
148+ let ac = ad(aj[2])
149+ $Tuple3(aj, ac, ai)
140150 }
141151 }
142152
143153
144-func aa (A,G) = {
145- let ab = w(E(A, G))
146- if (if ((ab == s))
154+func ak (al) = if ((al != r))
155+ then (al != s)
156+ else false
157+
158+
159+func am (A,G) = {
160+ let al = w(E(A, G))
161+ if (ak(al))
147162 then true
148- else (ab == t))
149- then throw(("Original Artwork flagged as " + ab))
163+ else throw(("Original Artwork flagged as " + al))
164+ }
165+
166+
167+func an (A) = {
168+ let ao = u(z(A))
169+ if (containsElement([p, q], ao))
170+ then throw(("Original Artist " + ao))
150171 else true
151172 }
152173
153174
154-func ac (A) = {
155- let ad = u(z(A))
156- if (containsElement([q, r], ad))
157- then throw(("Original Artist " + ad))
158- else true
175+func ap (ac) = {
176+ let aq = split(w(F(ac)), "_")
177+ let ar = w(B(aq[6], aq[5]))
178+ if (if (!(am(aq[6], aq[5])))
179+ then !(an(aq[6]))
180+ else false)
181+ then $Tuple4(false, aq[5], aq[6], ar)
182+ else $Tuple4(true, aq[5], aq[6], ar)
159183 }
160184
161185
162-func ae (R) = {
163- let af = split(w(F(R)), "_")
164- let ag = w(B(af[6], af[5]))
165- if (if (!(aa(af[6], af[5])))
166- then !(ac(af[6]))
167- else false)
168- then $Tuple4(false, af[5], af[6], ag)
169- else $Tuple4(true, af[5], af[6], ag)
170- }
171-
172-
173-func ah (D,ai) = {
174- let ag = w(B(ai, D))
175- if ((size(ag) == 0))
186+func as (D,K) = {
187+ let ar = w(B(K, D))
188+ if ((size(ar) == 0))
176189 then throw("Artwork not found on SIGN Art")
177- else if (if (!(aa(ai, D)))
178- then !(ac(ai))
190+ else if (if (!(am(K, D)))
191+ then !(an(K))
179192 else false)
180193 then false
181194 else true
182195 }
183196
184197
185-func aj (N,R,U,ai,V,ak) = {
186- let al = fraction(N, m, 100)
187- let am = fraction(N, n, 100)
188- let an = (N - (al + am))
189- let ao = ScriptTransfer(Address(fromBase58String(e)), al, R)
190- let ap = ScriptTransfer(Address(fromBase58String(ai)), am, R)
191- let aq = ScriptTransfer(Address(fromBase58String(V)), an, R)
192- let ar = ScriptTransfer(Address(fromBase58String(ak)), 1, fromBase58String(U))
193- $Tuple4(ao, ap, aq, ar)
198+func at (X,ac,af,K,N,I) = {
199+ let au = fraction(X, l, 100)
200+ let av = fraction(X, m, 100)
201+ let aw = (X - (au + av))
202+ let ax = ScriptTransfer(Address(fromBase58String(e)), au, ac)
203+ let ay = ScriptTransfer(Address(fromBase58String(K)), av, ac)
204+ let az = ScriptTransfer(Address(fromBase58String(N)), aw, ac)
205+ let aA = ScriptTransfer(Address(fromBase58String(I)), 1, fromBase58String(af))
206+ $Tuple4(ax, ay, az, aA)
194207 }
195208
196209
197-func as (R,at) = {
198- let au = if (a)
210+func aB (ac,aC) = {
211+ let aD = if (a)
199212 then 10
200- else H("waves_min_sell")
201- let av = 1000000
202- let aw = if (a)
213+ else R("waves_min_sell")
214+ let aE = 1000000
215+ let aF = if (a)
203216 then 1
204- else (I * 2)
205- if (if (if (if (if ((R == toBase58String(i)))
206- then (av > at)
217+ else (S * 2)
218+ if (if (if (if (if ((ac == toBase58String(i)))
219+ then (aE > aC)
207220 else false)
208- then (at != 0)
221+ then (aC != 0)
209222 else false)
210223 then true
211- else if (if ((R == toBase58String(h)))
212- then (aw > at)
224+ else if (if ((ac == toBase58String(h)))
225+ then (aF > aC)
213226 else false)
214- then (at != 0)
227+ then (aC != 0)
215228 else false)
216229 then true
217- else if (if (if ((R == toBase58String(j)))
230+ else if (if (if ((ac == toBase58String(j)))
218231 then true
219- else (R == "WAVES"))
220- then (au > at)
232+ else (ac == "WAVES"))
233+ then (aD > aC)
221234 else false)
222- then (at != 0)
235+ then (aC != 0)
223236 else false)
224237 then false
225238 else true
226239 }
227240
228241
229-@Callable(K)
230-func sellNFT (at,ax) = {
231- let ay = J(K)
232- let G = ay._1
233- let ak = ay._2
234- let az = ay._3
235- let aA = L(K)
236- let M = aA._1
237- let N = aA._2
238- let aB = if (if (isDefined(M.assetId))
239- then O(value(M.assetId))
242+func aG (U,J) = {
243+ let aH = T(U)
244+ let G = aH._1
245+ let I = aH._2
246+ let aI = aH._3
247+ let aJ = ap(J)
248+ let aK = aJ._1
249+ let D = aJ._2
250+ let K = aJ._3
251+ let ar = aJ._4
252+ $Tuple7(G, I, aI, aK, D, K, ar)
253+ }
254+
255+
256+func aL () = {
257+ let aM = y(t)
258+ IntegerEntry(t, (aM + 1))
259+ }
260+
261+
262+@Callable(U)
263+func sellNFT (aC,aN) = {
264+ let aO = V(U)
265+ let W = aO._1
266+ let X = aO._2
267+ let J = if (if (isDefined(W.assetId))
268+ then aa(value(W.assetId))
240269 else false)
241- then toBase58String(value(M.assetId))
270+ then toBase58String(value(W.assetId))
242271 else throw("Only SIGN Art NFT accepted.")
243- let aC = ae(aB)
244- let aD = aC._1
245- let D = aC._2
246- let ai = aC._3
247- let ag = aC._4
248- if ((size(ag) == 0))
272+ let aP = aG(U, J)
273+ let G = aP._1
274+ let I = aP._2
275+ let aI = aP._3
276+ let aK = aP._4
277+ let D = aP._5
278+ let K = aP._6
279+ let ar = aP._7
280+ if ((size(ar) == 0))
249281 then throw("Artwork not found on SIGN Art")
250- else if (!(aD))
251- then throw("Something went wrong")
252- else if (!(Q(ax)))
282+ else if (!(aK))
283+ then throw("Not a valid nft")
284+ else if (!(ab(aN)))
253285 then throw("Only SIGN, USDN or WAVES accepted")
254- else if ((at == 0))
286+ else if ((aC == 0))
255287 then throw("Wrong minimum sell price")
256- else if (!(as(ax, at)))
288+ else if (!(aB(aN, aC)))
257289 then throw("Wrong minimum sell price")
258- else [StringEntry((((((((("sale2nd_info_" + ak) + "_") + aB) + "_") + D) + "_") + ai) + "_OPEN"), ((((((((((((toString(az) + "_") + toString(at)) + "_") + ax) + "_") + aB) + "_") + D) + "_") + ai) + "_") + G)), StringEntry(((("sale2nd_status_" + ak) + "_") + aB), "OPEN"), StringEntry(("current_owner_on_dapp_" + aB), ak)]
290+ else [StringEntry((H(I, J, D, K) + "_OPEN"), ((((((((((((toString(aI) + "_") + toString(aC)) + "_") + aN) + "_") + J) + "_") + D) + "_") + K) + "_") + G)), StringEntry(((("sale2nd_status_" + I) + "_") + J), "OPEN"), StringEntry(("current_owner_on_dapp_" + J), I)]
259291 }
260292
261293
262294
263-@Callable(K)
264-func updateSalePrice (U,at,ax) = {
265- let aE = J(K)
266- let G = aE._1
267- let ak = aE._2
268- let az = aE._3
269- let aF = ae(U)
270- let aD = aF._1
271- let D = aF._2
272- let ai = aF._3
273- let ag = aF._4
274- if ((size(ag) == 0))
295+@Callable(U)
296+func updateSalePrice (J,aC,aN) = {
297+ let aQ = aG(U, J)
298+ let G = aQ._1
299+ let I = aQ._2
300+ let aI = aQ._3
301+ let aK = aQ._4
302+ let D = aQ._5
303+ let K = aQ._6
304+ let ar = aQ._7
305+ if ((size(ar) == 0))
275306 then throw("Artwork not found on SIGN Art, cancel your sale.")
276- else if (!(aD))
277- then throw("Something went wrong")
307+ else if (!(aK))
308+ then throw("Not a valid nft")
278309 else {
279- let V = x(("current_owner_on_dapp_" + U))
280- if ((V != ak))
310+ let N = x(("current_owner_on_dapp_" + J))
311+ if ((N != I))
281312 then throw("You don't own this NFT")
282313 else {
283- let W = x(((("sale2nd_status_" + ak) + "_") + U))
284- if ((W != "OPEN"))
314+ let ag = x(((("sale2nd_status_" + I) + "_") + J))
315+ if ((ag != "OPEN"))
285316 then throw("Sale not active")
286- else if (!(Q(ax)))
317+ else if (!(ab(aN)))
287318 then throw("Only SIGN, USDN or WAVES accepted")
288- else if ((at == 0))
319+ else if ((aC == 0))
289320 then throw("Wrong minimum sell price")
290- else if (!(as(ax, at)))
321+ else if (!(aB(aN, aC)))
291322 then throw("Wrong minimum sell price")
292323 else {
293- let aG = ((((((("sale2nd_info_" + ak) + "_") + U) + "_") + D) + "_") + ai)
294- let aH = split(x((aG + "_OPEN")), "_")
295-[StringEntry((aG + "_OPEN"), ((((((((((((aH[0] + "_") + toString(at)) + "_") + ax) + "_") + aH[3]) + "_") + aH[4]) + "_") + aH[5]) + "_") + aH[6]))]
324+ let aR = H(I, J, D, K)
325+ let aS = split(x((aR + "_OPEN")), "_")
326+[StringEntry((aR + "_OPEN"), ((((((((((((aS[0] + "_") + toString(aC)) + "_") + aN) + "_") + aS[3]) + "_") + aS[4]) + "_") + aS[5]) + "_") + aS[6]))]
296327 }
297328 }
298329 }
300331
301332
302333
303-@Callable(K)
304-func cancelSale (U) = {
305- let aI = J(K)
306- let G = aI._1
307- let ak = aI._2
308- let az = aI._3
309- let aJ = ae(U)
310- let aD = aJ._1
311- let D = aJ._2
312- let ai = aJ._3
313- let ag = aJ._4
314- let V = x(("current_owner_on_dapp_" + U))
315- if ((V != ak))
334+@Callable(U)
335+func cancelSale (J) = {
336+ let aT = aG(U, J)
337+ let G = aT._1
338+ let I = aT._2
339+ let aI = aT._3
340+ let aK = aT._4
341+ let D = aT._5
342+ let K = aT._6
343+ let ar = aT._7
344+ let N = x(("current_owner_on_dapp_" + J))
345+ if ((N != I))
316346 then throw("You don't own this NFT")
317347 else {
318- let W = x(((("sale2nd_status_" + ak) + "_") + U))
319- if ((W != "OPEN"))
348+ let ag = x(((("sale2nd_status_" + I) + "_") + J))
349+ if ((ag != "OPEN"))
320350 then throw("Sale not active")
321351 else {
322- let aG = ((((((("sale2nd_info_" + ak) + "_") + U) + "_") + D) + "_") + ai)
323- let aH = x((aG + "_OPEN"))
324-[DeleteEntry((aG + "_OPEN")), DeleteEntry(((("sale2nd_status_" + ak) + "_") + U)), DeleteEntry(("current_owner_on_dapp_" + U)), StringEntry((((aG + "_") + G) + "_CANCELLED"), ((((aH + "_CANCELLED_") + toString(az)) + "_") + G)), ScriptTransfer(Address(fromBase58String(ak)), 1, fromBase58String(U))]
352+ let aR = H(I, J, D, K)
353+ let aS = x((aR + "_OPEN"))
354+[DeleteEntry((aR + "_OPEN")), DeleteEntry(((("sale2nd_status_" + I) + "_") + J)), DeleteEntry(("current_owner_on_dapp_" + J)), StringEntry((((aR + "_") + G) + "_CANCELLED"), ((((aS + "_CANCELLED_") + toString(aI)) + "_") + G)), ScriptTransfer(Address(fromBase58String(I)), 1, fromBase58String(J))]
325355 }
326356 }
327357 }
328358
329359
330360
331-@Callable(K)
332-func buyNFT (U) = {
333- let aK = J(K)
334- let G = aK._1
335- let ak = aK._2
336- let az = aK._3
337- let V = T(U)
338- let aL = ae(U)
339- let aD = aL._1
340- let D = aL._2
341- let ai = aL._3
342- let ag = aL._4
343- if ((size(ag) == 0))
361+@Callable(U)
362+func buyNFT (J) = {
363+ let aU = aG(U, J)
364+ let G = aU._1
365+ let I = aU._2
366+ let aI = aU._3
367+ let aK = aU._4
368+ let D = aU._5
369+ let K = aU._6
370+ let ar = aU._7
371+ if ((size(ar) == 0))
344372 then throw("Artwork not found on SIGN Art, cancel your sale.")
345- else if (!(aD))
346- then throw("Something went wrong")
373+ else if (!(aK))
374+ then throw("Not a valid nft")
347375 else {
348- let aG = ((((((("sale2nd_info_" + V) + "_") + U) + "_") + D) + "_") + ai)
349- let aH = x((aG + "_OPEN"))
350- if ((size(aH) == 0))
376+ let N = ae(J)
377+ let aR = H(N, J, D, K)
378+ let aS = x((aR + "_OPEN"))
379+ if ((size(aS) == 0))
351380 then throw("Sale Not found!")
352381 else {
353- let aM = split(aH, "_")
354- if ((parseInt(aM[1]) == 0))
382+ let aV = split(aS, "_")
383+ if ((parseInt(aV[1]) == 0))
355384 then throw("Offer only")
356385 else {
357- let aN = L(K)
358- let M = aN._1
359- let N = aN._2
360- let aO = if (isDefined(M.assetId))
361- then toBase58String(value(M.assetId))
386+ let aW = V(U)
387+ let W = aW._1
388+ let X = aW._2
389+ let aX = if (isDefined(W.assetId))
390+ then toBase58String(value(W.assetId))
362391 else ""
363- if (if ((aM[1] != toString(N)))
392+ if (if ((aV[1] != toString(X)))
364393 then true
365- else (aM[2] != aO))
394+ else (aV[2] != aX))
366395 then throw("Payment infos don't match.")
367396 else {
368- let al = fraction(N, m, 100)
369- let am = fraction(N, n, 100)
370- let an = (N - (al + am))
371- let aP = aj(N, M.assetId, U, ai, V, ak)
372- let ao = aP._1
373- let ap = aP._2
374- let aq = aP._3
375- let ar = aP._4
376-[DeleteEntry((aG + "_OPEN")), DeleteEntry(((("sale2nd_status_" + V) + "_") + U)), DeleteEntry(("current_owner_on_dapp_" + U)), StringEntry((((aG + "_") + G) + "_CLOSED"), ((((((makeString(aM, "_") + "_CLOSED_") + toString(az)) + "_") + G) + "_") + ak)), ao, ap, aq, ar]
397+ let au = fraction(X, l, 100)
398+ let av = fraction(X, m, 100)
399+ let aw = (X - (au + av))
400+ let aY = at(X, W.assetId, J, K, N, I)
401+ let ax = aY._1
402+ let ay = aY._2
403+ let az = aY._3
404+ let aA = aY._4
405+[DeleteEntry((aR + "_OPEN")), DeleteEntry(((("sale2nd_status_" + N) + "_") + J)), DeleteEntry(("current_owner_on_dapp_" + J)), StringEntry((((aR + "_") + G) + "_CLOSED"), ((((((aS + "_CLOSED_") + toString(aI)) + "_") + G) + "_") + I)), aL(), ax, ay, az, aA]
377406 }
378407 }
379408 }
382411
383412
384413
385-@Callable(K)
386-func setOffer (U) = {
387- let aQ = J(K)
388- let G = aQ._1
389- let aR = aQ._2
390- let az = aQ._3
391- let aS = L(K)
392- let M = aS._1
393- let N = aS._2
394- let R = if (!(isDefined(M.assetId)))
395- then "WAVES"
396- else toBase58String(value(M.assetId))
397- if (!(Q(R)))
398- then throw("asset not accepted")
399- else if ((N == 0))
400- then throw("Offer of 0 not allowed")
401- else if (!(as(R, N)))
402- then throw("Wrong minimum sell price")
403- else {
404- let aT = ae(U)
405- let aD = aT._1
406- let D = aT._2
407- let ai = aT._3
408- if (!(aD))
409- then throw("Something went wrong")
414+@Callable(U)
415+func setOffer (J) = {
416+ let aZ = aG(U, J)
417+ let G = aZ._1
418+ let M = aZ._2
419+ let aI = aZ._3
420+ let aK = aZ._4
421+ let D = aZ._5
422+ let K = aZ._6
423+ let ar = aZ._7
424+ if (!(aK))
425+ then throw("Not a valid nft")
426+ else {
427+ let ba = V(U)
428+ let W = ba._1
429+ let X = ba._2
430+ let ac = if (!(isDefined(W.assetId)))
431+ then "WAVES"
432+ else toBase58String(value(W.assetId))
433+ if (!(ab(ac)))
434+ then throw("asset not accepted")
435+ else if ((X == 0))
436+ then throw("Offer of 0 not allowed")
437+ else if (!(aB(ac, X)))
438+ then throw("Wrong minimum sell price")
410439 else {
411- let V = T(U)
412-[StringEntry((((((((("offer2nd_" + aR) + "_") + U) + "_") + V) + "_") + G) + "_OPEN"), ((((((((((((((toString(az) + "_") + toString(N)) + "_") + R) + "_") + U) + "_") + D) + "_") + ai) + "_") + aR) + "_") + G))]
440+ let N = ae(J)
441+[StringEntry((L(M, J, N, G) + "_OPEN"), ((((((((((((((toString(aI) + "_") + toString(X)) + "_") + ac) + "_") + J) + "_") + D) + "_") + K) + "_") + M) + "_") + G))]
413442 }
414- }
443+ }
415444 }
416445
417446
418447
419-@Callable(K)
420-func acceptOffer (U,aU,aR) = {
421- let aV = J(K)
422- let G = aV._1
423- let ak = aV._2
424- let az = aV._3
425- let V = T(U)
426- if ((ak != V))
427- then throw("You cannot do this action")
448+@Callable(U)
449+func acceptOffer (J,O,M) = {
450+ let bb = aG(U, J)
451+ let G = bb._1
452+ let I = bb._2
453+ let aI = bb._3
454+ let aK = bb._4
455+ let D = bb._5
456+ let K = bb._6
457+ let ar = bb._7
458+ if (!(aK))
459+ then throw("Not a valid nft")
428460 else {
429- let aW = ((((((("offer2nd_" + aR) + "_") + U) + "_") + V) + "_") + aU)
430- let aX = x((aW + "_OPEN"))
431- if ((aX == ""))
432- then throw("Offer not found or not for sale")
461+ let N = ae(J)
462+ if ((I != N))
463+ then throw("Only sale owner can accept offer")
433464 else {
434- let aY = ae(U)
435- let aD = aY._1
436- let D = aY._2
437- let ai = aY._3
438- if (!(aD))
439- then throw("Something went wrong")
465+ let bc = L(M, J, N, O)
466+ let bd = ah(bc)
467+ let aj = bd._1
468+ let ac = bd._2
469+ let ai = bd._3
470+ let aR = H(N, J, D, K)
471+ let aS = x((aR + "_OPEN"))
472+ if ((size(aS) == 0))
473+ then throw("Sale Not found!")
440474 else {
441- let aG = ((((((("sale2nd_info_" + V) + "_") + U) + "_") + D) + "_") + ai)
442- let aZ = x((aG + "_OPEN"))
443- if ((size(aZ) == 0))
444- then throw("Sale Not found!")
445- else {
446- let ba = split(aZ, "_")
447- let bb = X(aW)
448- let Z = bb._1
449- let R = bb._2
450- let Y = bb._3
451- let N = value(parseInt(Z[1]))
452- let bc = aj(N, R, U, ai, V, Z[6])
453- let ao = bc._1
454- let ap = bc._2
455- let aq = bc._3
456- let ar = bc._4
457-[DeleteEntry((aG + "_OPEN")), DeleteEntry((aW + "_OPEN")), DeleteEntry(((("sale2nd_status_" + V) + "_") + U)), DeleteEntry(("current_owner_on_dapp_" + U)), StringEntry((aW + "_CLOSED"), ((((aX + "_CLOSED_") + toString(az)) + "_") + G)), StringEntry((((aG + "_") + G) + "_CLOSED"), ((((((((((makeString(ba, "_") + "_CLOSED-OFFER_") + toString(az)) + "_") + G) + "_") + aR) + "_") + toString(N)) + "_") + toBase58String(value(R)))), ao, ap, aq, ar]
458- }
475+ let X = value(parseInt(aj[1]))
476+ let be = at(X, ac, J, K, N, aj[6])
477+ let ax = be._1
478+ let ay = be._2
479+ let az = be._3
480+ let aA = be._4
481+[DeleteEntry((aR + "_OPEN")), DeleteEntry((bc + "_OPEN")), DeleteEntry(((("sale2nd_status_" + N) + "_") + J)), DeleteEntry(("current_owner_on_dapp_" + J)), StringEntry((bc + "_CLOSED"), ((((ai + "_CLOSED_") + toString(aI)) + "_") + G)), StringEntry((((aR + "_") + G) + "_CLOSED"), ((((((((((aS + "_CLOSED-OFFER_") + toString(aI)) + "_") + G) + "_") + M) + "_") + toString(X)) + "_") + toBase58String(value(ac)))), aL(), ax, ay, az, aA]
459482 }
460483 }
461484 }
463486
464487
465488
466-@Callable(K)
467-func cancelOffer (U,aU,V) = {
468- let bd = J(K)
469- let G = bd._1
470- let ak = bd._2
471- let az = bd._3
472- let aW = ((((((("offer2nd_" + ak) + "_") + U) + "_") + V) + "_") + aU)
473- let be = X(aW)
474- let Z = be._1
475- let R = be._2
476- let Y = be._3
477-[DeleteEntry((aW + "_OPEN")), StringEntry((aW + "_CANCELLED"), ((((Y + "_CANCELLED_") + toString(az)) + "_") + G)), ScriptTransfer(Address(fromBase58String(ak)), parseIntValue(Z[1]), R)]
489+@Callable(U)
490+func cancelOffer (J,O,N) = {
491+ let bf = T(U)
492+ let G = bf._1
493+ let I = bf._2
494+ let aI = bf._3
495+ let bc = L(I, J, N, O)
496+ let bg = ah(bc)
497+ let aj = bg._1
498+ let ac = bg._2
499+ let ai = bg._3
500+[DeleteEntry((bc + "_OPEN")), StringEntry((bc + "_CANCELLED"), ((((ai + "_CANCELLED_") + toString(aI)) + "_") + G)), ScriptTransfer(Address(fromBase58String(I)), parseIntValue(aj[1]), ac)]
478501 }
479502
480503
481504
482-@Callable(K)
483-func makeRequest (D,ai) = {
484- let bf = J(K)
485- let G = bf._1
486- let bg = bf._2
487- let az = bf._3
488- let bh = L(K)
489- let M = bh._1
490- let N = bh._2
491- let R = if (!(isDefined(M.assetId)))
505+@Callable(U)
506+func makeRequest (D,K) = {
507+ let bh = T(U)
508+ let G = bh._1
509+ let Q = bh._2
510+ let aI = bh._3
511+ let bi = V(U)
512+ let W = bi._1
513+ let X = bi._2
514+ let ac = if (!(isDefined(W.assetId)))
492515 then "WAVES"
493- else toBase58String(value(M.assetId))
494- if (!(Q(R)))
516+ else toBase58String(value(W.assetId))
517+ if (!(ab(ac)))
495518 then throw("asset not accepted")
496- else if (!(as(R, N)))
519+ else if (!(aB(ac, X)))
497520 then throw("Wrong minimum sell price")
498521 else {
499- let bi = ah(D, ai)
500- if (!(bi))
522+ let bj = as(D, K)
523+ if (!(bj))
501524 then throw("Something went wrong")
502- else [StringEntry((((((((("request2nd_" + bg) + "_") + ai) + "_") + D) + "_") + G) + "_OPEN"), ((((((((((toString(az) + "_") + toString(N)) + "_") + toBase58String(value(M.assetId))) + "_") + D) + "_") + bg) + "_") + G))]
525+ else [StringEntry((P(Q, K, D, G) + "_OPEN"), ((((((((((toString(aI) + "_") + toString(X)) + "_") + toBase58String(value(W.assetId))) + "_") + D) + "_") + Q) + "_") + G))]
503526 }
504527 }
505528
506529
507530
508-@Callable(K)
509-func fillRequest (D,bg,aU) = {
510- let bj = J(K)
511- let G = bj._1
512- let V = bj._2
513- let az = bj._3
514- let bk = L(K)
515- let M = bk._1
516- let bl = bk._2
517- let bm = if (if (isDefined(M.assetId))
518- then O(value(M.assetId))
531+@Callable(U)
532+func fillRequest (D,Q,O) = {
533+ let bk = T(U)
534+ let G = bk._1
535+ let N = bk._2
536+ let aI = bk._3
537+ let bl = V(U)
538+ let W = bl._1
539+ let bm = bl._2
540+ let bn = if (if (isDefined(W.assetId))
541+ then aa(value(W.assetId))
519542 else false)
520- then M.assetId
543+ then W.assetId
521544 else throw("No NFT found")
522- let bn = split(w(("nft_" + toBase58String(value(bm)))), "_")
523- if ((size(bn) == 0))
545+ let bo = split(w(("nft_" + toBase58String(value(bn)))), "_")
546+ if ((size(bo) == 0))
524547 then throw("No NFT found")
525548 else {
526- let bo = split(x((((((((("request2nd_" + bg) + "_") + bn[6]) + "_") + D) + "_") + aU) + "_OPEN")), "_")
527- if ((size(bo) == 1))
549+ let bp = P(Q, bo[6], D, O)
550+ let bq = split(x((bp + "_OPEN")), "_")
551+ if ((size(bq) == 1))
528552 then throw("No request found")
529- else if ((bo[3] != bn[5]))
553+ else if ((bq[3] != bo[5]))
530554 then throw("This NFT don't match the requested artwork")
531555 else {
532- let N = value(parseInt(bo[1]))
533- let bp = aj(N, fromBase58String(bo[2]), toBase58String(value(bm)), bn[6], V, bo[4])
534- let ao = bp._1
535- let ap = bp._2
536- let aq = bp._3
537- let ar = bp._4
538-[DeleteEntry((((((((("request2nd_" + bg) + "_") + bn[6]) + "_") + D) + "_") + aU) + "_OPEN")), StringEntry((((((((("request2nd_" + bg) + "_") + bn[6]) + "_") + D) + "_") + aU) + "_CLOSED"), ((((((((((((toString(az) + "_") + toString(N)) + "_") + bo[2]) + "_") + D) + "_") + bg) + "_") + V) + "_") + G)), ao, ap, aq, ar]
556+ let X = value(parseInt(bq[1]))
557+ let br = at(X, fromBase58String(bq[2]), toBase58String(value(bn)), bo[6], N, bq[4])
558+ let ax = br._1
559+ let ay = br._2
560+ let az = br._3
561+ let aA = br._4
562+[DeleteEntry((bp + "_OPEN")), aL(), StringEntry((bp + "_CLOSED"), ((((((((((((toString(aI) + "_") + toString(X)) + "_") + bq[2]) + "_") + D) + "_") + Q) + "_") + N) + "_") + G)), ax, ay, az, aA]
539563 }
540564 }
541565 }
542566
543567
544568
545-@Callable(K)
546-func cancelRequest (D,ai,bq) = {
547- let br = J(K)
548- let G = br._1
549- let bg = br._2
550- let az = br._3
551- let bs = ((((((("request2nd_" + bg) + "_") + ai) + "_") + D) + "_") + bq)
552- let bo = x((bs + "_OPEN"))
553- if ((size(bo) == 0))
569+@Callable(U)
570+func cancelRequest (D,K,bs) = {
571+ let bt = T(U)
572+ let G = bt._1
573+ let Q = bt._2
574+ let aI = bt._3
575+ let bp = P(Q, K, D, bs)
576+ let bq = x((bp + "_OPEN"))
577+ if ((size(bq) == 0))
554578 then throw("Request not found")
555579 else {
556- let bt = split(bo, "_")
557-[DeleteEntry((bs + "_OPEN")), StringEntry((((((bs + "_") + toString(az)) + "_") + G) + "_CANCELLED"), ((bo + "_") + toString(az))), ScriptTransfer(Address(fromBase58String(bg)), parseIntValue(bt[1]), fromBase58String(bt[2]))]
580+ let bu = split(bq, "_")
581+[DeleteEntry((bp + "_OPEN")), StringEntry((((((bp + "_") + toString(aI)) + "_") + G) + "_CANCELLED"), ((bq + "_") + toString(aI))), ScriptTransfer(Address(fromBase58String(Q)), parseIntValue(bu[1]), fromBase58String(bu[2]))]
558582 }
559583 }
560584
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 4 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = false
55
66 let b = value(addressFromString("3N2s5RtaHPBenCsx2ECcoFRbYHx3noZhXW1"))
77
88 let c = value(addressFromString("3NC28hSivrmsTUXaYD1x6L362J4ZpUnoTdB"))
99
1010 let d = value(addressFromString("3NBynfbXC2KastUxhukcMUaE58K9cBdB9UY"))
1111
1212 let e = "3N1E6tXddRoVaRfQ9dQ3vg5LaW2fsd8HKub"
1313
1414 let f = if (a)
1515 then value(addressFromString("3Mt4RGMEyjSWYAocTPqd55wdHQQB3PU2UCm"))
1616 else value(addressFromString("3N8xXaYjE27Aa79d5hHrhHu9HaFoTBmhDEj"))
1717
1818 let g = value(addressFromString("3N6BaV1dCB4zg43goNNHaCtvR13BcyJ5Gsq"))
1919
2020 let h = base58'Gf9t8FA4H3ssoZPCwrg3KwUFCci8zuUFP9ssRsUY3s6a'
2121
2222 let i = base58'25FEqEjRkqK6yCkiT7Lz6SAYz7gUFCtxfCChnrVFD5AT'
2323
2424 let j = base58''
2525
2626 let k = "3MsG6jPNCrVJUtYB7XJBxS7utWsXAf4n9Vp"
2727
28-let l = "3Mzm4VLwsN9uZwbTMzPj3XuxV6kEfAR8UDN"
28+let l = 3
2929
30-let m = 3
30+let m = 10
3131
32-let n = 10
32+let n = valueOrElse(getBoolean(f, "conf_dapp_is_running"), true)
3333
34-let o = valueOrElse(getBoolean(f, "conf_dapp_is_running"), true)
34+let o = valueOrElse(getString(f, "conf_maintenance_msg"), "")
3535
36-let p = valueOrElse(getString(f, "conf_maintenance_msg"), "")
36+let p = "SUSPENDED"
3737
38-let q = "SUSPENDED"
38+let q = "REMOVED"
3939
40-let r = "REMOVED"
40+let r = "ILLEGAL"
4141
42-let s = "ILLEGAL"
42+let s = "SUSPENDED"
4343
44-let t = "SUSPENDED"
44+let t = "num_sales"
4545
4646 func u (v) = valueOrElse(getString(f, v), "Error")
4747
4848
4949 func w (v) = valueOrElse(getString(d, v), "")
5050
5151
5252 func x (v) = valueOrElse(getString(this, v), "")
5353
5454
5555 func y (v) = valueOrElse(getInteger(this, v), 0)
5656
5757
5858 func z (A) = ("user_status_" + A)
5959
6060
6161 func B (C,D) = ((("art_signid_" + D) + "_") + C)
6262
6363
6464 func E (C,D) = ((("art_flag_" + D) + "_") + C)
6565
6666
6767 func F (G) = ("nft_" + G)
6868
6969
70-func H (v) = valueOrErrorMessage(getInteger(b, v), "Integer undefine or 0 in oracle")
70+func H (I,J,D,K) = ((((((("sale2nd_info_" + I) + "_") + J) + "_") + D) + "_") + K)
7171
7272
73-let I = H(("certification_fee_" + toBase58String(h)))
74-
75-func J (K) = if (!(o))
76- then throw(p)
77- else $Tuple3(toBase58String(K.transactionId), toBase58String(K.caller.bytes), lastBlock.timestamp)
73+func L (M,J,N,O) = ((((((("offer2nd_" + M) + "_") + J) + "_") + N) + "_") + O)
7874
7975
80-func L (K) = if ((size(K.payments) == 0))
76+func P (Q,K,D,G) = ((((((("request2nd_" + Q) + "_") + K) + "_") + D) + "_") + G)
77+
78+
79+func R (v) = valueOrErrorMessage(getInteger(b, v), "Integer undefine or 0 in oracle")
80+
81+
82+let S = R(("certification_fee_" + toBase58String(h)))
83+
84+func T (U) = if (!(n))
85+ then throw(o)
86+ else $Tuple3(toBase58String(U.transactionId), toBase58String(U.caller.bytes), lastBlock.timestamp)
87+
88+
89+func V (U) = if ((size(U.payments) == 0))
8190 then throw("No payment attached")
8291 else {
83- let M = value(K.payments[0])
84- let N = value(M.amount)
85- $Tuple2(M, N)
92+ let W = value(U.payments[0])
93+ let X = value(W.amount)
94+ $Tuple2(W, X)
8695 }
8796
8897
89-func O (G) = {
90- let P = value(assetInfo(G))
91- if (if (if (if ((P.quantity != 1))
92- then true
93- else (P.decimals != 0))
94- then true
95- else (P.reissuable != false))
96- then true
97- else (P.issuer != d))
98- then false
99- else true
98+func Y (Z) = if (if (if ((Z.quantity == 1))
99+ then (Z.decimals == 0)
100+ else false)
101+ then (Z.reissuable == false)
102+ else false)
103+ then (Z.issuer == d)
104+ else false
105+
106+
107+func aa (G) = {
108+ let Z = value(assetInfo(G))
109+ Y(Z)
100110 }
101111
102112
103-func Q (R) = if (if (if (if ((R != toBase58String(h)))
104- then (R != toBase58String(j))
113+func ab (ac) = if (if (if (if ((ac != toBase58String(h)))
114+ then (ac != toBase58String(j))
105115 else false)
106- then (R != "WAVES")
116+ then (ac != "WAVES")
107117 else false)
108- then (R != toBase58String(i))
118+ then (ac != toBase58String(i))
109119 else false)
110120 then false
111121 else true
112122
113123
114-func S (R) = if ((R == "WAVES"))
124+func ad (ac) = if ((ac == "WAVES"))
115125 then unit
116- else fromBase58String(R)
126+ else fromBase58String(ac)
117127
118128
119-func T (U) = {
120- let V = x(("current_owner_on_dapp_" + U))
121- if ((size(V) == 0))
129+func ae (af) = {
130+ let N = x(("current_owner_on_dapp_" + af))
131+ if ((size(N) == 0))
122132 then throw("NFT not found")
123133 else {
124- let W = x(((("sale2nd_status_" + V) + "_") + U))
125- if ((W != "OPEN"))
134+ let ag = x(((("sale2nd_status_" + N) + "_") + af))
135+ if ((ag != "OPEN"))
126136 then throw("NFT not for sale")
127- else V
137+ else N
128138 }
129139 }
130140
131141
132-func X (v) = {
133- let Y = x((v + "_OPEN"))
134- if ((Y == ""))
142+func ah (v) = {
143+ let ai = x((v + "_OPEN"))
144+ if ((ai == ""))
135145 then throw("Offer not found")
136146 else {
137- let Z = split(Y, "_")
138- let R = S(Z[2])
139- $Tuple3(Z, R, Y)
147+ let aj = split(ai, "_")
148+ let ac = ad(aj[2])
149+ $Tuple3(aj, ac, ai)
140150 }
141151 }
142152
143153
144-func aa (A,G) = {
145- let ab = w(E(A, G))
146- if (if ((ab == s))
154+func ak (al) = if ((al != r))
155+ then (al != s)
156+ else false
157+
158+
159+func am (A,G) = {
160+ let al = w(E(A, G))
161+ if (ak(al))
147162 then true
148- else (ab == t))
149- then throw(("Original Artwork flagged as " + ab))
163+ else throw(("Original Artwork flagged as " + al))
164+ }
165+
166+
167+func an (A) = {
168+ let ao = u(z(A))
169+ if (containsElement([p, q], ao))
170+ then throw(("Original Artist " + ao))
150171 else true
151172 }
152173
153174
154-func ac (A) = {
155- let ad = u(z(A))
156- if (containsElement([q, r], ad))
157- then throw(("Original Artist " + ad))
158- else true
175+func ap (ac) = {
176+ let aq = split(w(F(ac)), "_")
177+ let ar = w(B(aq[6], aq[5]))
178+ if (if (!(am(aq[6], aq[5])))
179+ then !(an(aq[6]))
180+ else false)
181+ then $Tuple4(false, aq[5], aq[6], ar)
182+ else $Tuple4(true, aq[5], aq[6], ar)
159183 }
160184
161185
162-func ae (R) = {
163- let af = split(w(F(R)), "_")
164- let ag = w(B(af[6], af[5]))
165- if (if (!(aa(af[6], af[5])))
166- then !(ac(af[6]))
167- else false)
168- then $Tuple4(false, af[5], af[6], ag)
169- else $Tuple4(true, af[5], af[6], ag)
170- }
171-
172-
173-func ah (D,ai) = {
174- let ag = w(B(ai, D))
175- if ((size(ag) == 0))
186+func as (D,K) = {
187+ let ar = w(B(K, D))
188+ if ((size(ar) == 0))
176189 then throw("Artwork not found on SIGN Art")
177- else if (if (!(aa(ai, D)))
178- then !(ac(ai))
190+ else if (if (!(am(K, D)))
191+ then !(an(K))
179192 else false)
180193 then false
181194 else true
182195 }
183196
184197
185-func aj (N,R,U,ai,V,ak) = {
186- let al = fraction(N, m, 100)
187- let am = fraction(N, n, 100)
188- let an = (N - (al + am))
189- let ao = ScriptTransfer(Address(fromBase58String(e)), al, R)
190- let ap = ScriptTransfer(Address(fromBase58String(ai)), am, R)
191- let aq = ScriptTransfer(Address(fromBase58String(V)), an, R)
192- let ar = ScriptTransfer(Address(fromBase58String(ak)), 1, fromBase58String(U))
193- $Tuple4(ao, ap, aq, ar)
198+func at (X,ac,af,K,N,I) = {
199+ let au = fraction(X, l, 100)
200+ let av = fraction(X, m, 100)
201+ let aw = (X - (au + av))
202+ let ax = ScriptTransfer(Address(fromBase58String(e)), au, ac)
203+ let ay = ScriptTransfer(Address(fromBase58String(K)), av, ac)
204+ let az = ScriptTransfer(Address(fromBase58String(N)), aw, ac)
205+ let aA = ScriptTransfer(Address(fromBase58String(I)), 1, fromBase58String(af))
206+ $Tuple4(ax, ay, az, aA)
194207 }
195208
196209
197-func as (R,at) = {
198- let au = if (a)
210+func aB (ac,aC) = {
211+ let aD = if (a)
199212 then 10
200- else H("waves_min_sell")
201- let av = 1000000
202- let aw = if (a)
213+ else R("waves_min_sell")
214+ let aE = 1000000
215+ let aF = if (a)
203216 then 1
204- else (I * 2)
205- if (if (if (if (if ((R == toBase58String(i)))
206- then (av > at)
217+ else (S * 2)
218+ if (if (if (if (if ((ac == toBase58String(i)))
219+ then (aE > aC)
207220 else false)
208- then (at != 0)
221+ then (aC != 0)
209222 else false)
210223 then true
211- else if (if ((R == toBase58String(h)))
212- then (aw > at)
224+ else if (if ((ac == toBase58String(h)))
225+ then (aF > aC)
213226 else false)
214- then (at != 0)
227+ then (aC != 0)
215228 else false)
216229 then true
217- else if (if (if ((R == toBase58String(j)))
230+ else if (if (if ((ac == toBase58String(j)))
218231 then true
219- else (R == "WAVES"))
220- then (au > at)
232+ else (ac == "WAVES"))
233+ then (aD > aC)
221234 else false)
222- then (at != 0)
235+ then (aC != 0)
223236 else false)
224237 then false
225238 else true
226239 }
227240
228241
229-@Callable(K)
230-func sellNFT (at,ax) = {
231- let ay = J(K)
232- let G = ay._1
233- let ak = ay._2
234- let az = ay._3
235- let aA = L(K)
236- let M = aA._1
237- let N = aA._2
238- let aB = if (if (isDefined(M.assetId))
239- then O(value(M.assetId))
242+func aG (U,J) = {
243+ let aH = T(U)
244+ let G = aH._1
245+ let I = aH._2
246+ let aI = aH._3
247+ let aJ = ap(J)
248+ let aK = aJ._1
249+ let D = aJ._2
250+ let K = aJ._3
251+ let ar = aJ._4
252+ $Tuple7(G, I, aI, aK, D, K, ar)
253+ }
254+
255+
256+func aL () = {
257+ let aM = y(t)
258+ IntegerEntry(t, (aM + 1))
259+ }
260+
261+
262+@Callable(U)
263+func sellNFT (aC,aN) = {
264+ let aO = V(U)
265+ let W = aO._1
266+ let X = aO._2
267+ let J = if (if (isDefined(W.assetId))
268+ then aa(value(W.assetId))
240269 else false)
241- then toBase58String(value(M.assetId))
270+ then toBase58String(value(W.assetId))
242271 else throw("Only SIGN Art NFT accepted.")
243- let aC = ae(aB)
244- let aD = aC._1
245- let D = aC._2
246- let ai = aC._3
247- let ag = aC._4
248- if ((size(ag) == 0))
272+ let aP = aG(U, J)
273+ let G = aP._1
274+ let I = aP._2
275+ let aI = aP._3
276+ let aK = aP._4
277+ let D = aP._5
278+ let K = aP._6
279+ let ar = aP._7
280+ if ((size(ar) == 0))
249281 then throw("Artwork not found on SIGN Art")
250- else if (!(aD))
251- then throw("Something went wrong")
252- else if (!(Q(ax)))
282+ else if (!(aK))
283+ then throw("Not a valid nft")
284+ else if (!(ab(aN)))
253285 then throw("Only SIGN, USDN or WAVES accepted")
254- else if ((at == 0))
286+ else if ((aC == 0))
255287 then throw("Wrong minimum sell price")
256- else if (!(as(ax, at)))
288+ else if (!(aB(aN, aC)))
257289 then throw("Wrong minimum sell price")
258- else [StringEntry((((((((("sale2nd_info_" + ak) + "_") + aB) + "_") + D) + "_") + ai) + "_OPEN"), ((((((((((((toString(az) + "_") + toString(at)) + "_") + ax) + "_") + aB) + "_") + D) + "_") + ai) + "_") + G)), StringEntry(((("sale2nd_status_" + ak) + "_") + aB), "OPEN"), StringEntry(("current_owner_on_dapp_" + aB), ak)]
290+ else [StringEntry((H(I, J, D, K) + "_OPEN"), ((((((((((((toString(aI) + "_") + toString(aC)) + "_") + aN) + "_") + J) + "_") + D) + "_") + K) + "_") + G)), StringEntry(((("sale2nd_status_" + I) + "_") + J), "OPEN"), StringEntry(("current_owner_on_dapp_" + J), I)]
259291 }
260292
261293
262294
263-@Callable(K)
264-func updateSalePrice (U,at,ax) = {
265- let aE = J(K)
266- let G = aE._1
267- let ak = aE._2
268- let az = aE._3
269- let aF = ae(U)
270- let aD = aF._1
271- let D = aF._2
272- let ai = aF._3
273- let ag = aF._4
274- if ((size(ag) == 0))
295+@Callable(U)
296+func updateSalePrice (J,aC,aN) = {
297+ let aQ = aG(U, J)
298+ let G = aQ._1
299+ let I = aQ._2
300+ let aI = aQ._3
301+ let aK = aQ._4
302+ let D = aQ._5
303+ let K = aQ._6
304+ let ar = aQ._7
305+ if ((size(ar) == 0))
275306 then throw("Artwork not found on SIGN Art, cancel your sale.")
276- else if (!(aD))
277- then throw("Something went wrong")
307+ else if (!(aK))
308+ then throw("Not a valid nft")
278309 else {
279- let V = x(("current_owner_on_dapp_" + U))
280- if ((V != ak))
310+ let N = x(("current_owner_on_dapp_" + J))
311+ if ((N != I))
281312 then throw("You don't own this NFT")
282313 else {
283- let W = x(((("sale2nd_status_" + ak) + "_") + U))
284- if ((W != "OPEN"))
314+ let ag = x(((("sale2nd_status_" + I) + "_") + J))
315+ if ((ag != "OPEN"))
285316 then throw("Sale not active")
286- else if (!(Q(ax)))
317+ else if (!(ab(aN)))
287318 then throw("Only SIGN, USDN or WAVES accepted")
288- else if ((at == 0))
319+ else if ((aC == 0))
289320 then throw("Wrong minimum sell price")
290- else if (!(as(ax, at)))
321+ else if (!(aB(aN, aC)))
291322 then throw("Wrong minimum sell price")
292323 else {
293- let aG = ((((((("sale2nd_info_" + ak) + "_") + U) + "_") + D) + "_") + ai)
294- let aH = split(x((aG + "_OPEN")), "_")
295-[StringEntry((aG + "_OPEN"), ((((((((((((aH[0] + "_") + toString(at)) + "_") + ax) + "_") + aH[3]) + "_") + aH[4]) + "_") + aH[5]) + "_") + aH[6]))]
324+ let aR = H(I, J, D, K)
325+ let aS = split(x((aR + "_OPEN")), "_")
326+[StringEntry((aR + "_OPEN"), ((((((((((((aS[0] + "_") + toString(aC)) + "_") + aN) + "_") + aS[3]) + "_") + aS[4]) + "_") + aS[5]) + "_") + aS[6]))]
296327 }
297328 }
298329 }
299330 }
300331
301332
302333
303-@Callable(K)
304-func cancelSale (U) = {
305- let aI = J(K)
306- let G = aI._1
307- let ak = aI._2
308- let az = aI._3
309- let aJ = ae(U)
310- let aD = aJ._1
311- let D = aJ._2
312- let ai = aJ._3
313- let ag = aJ._4
314- let V = x(("current_owner_on_dapp_" + U))
315- if ((V != ak))
334+@Callable(U)
335+func cancelSale (J) = {
336+ let aT = aG(U, J)
337+ let G = aT._1
338+ let I = aT._2
339+ let aI = aT._3
340+ let aK = aT._4
341+ let D = aT._5
342+ let K = aT._6
343+ let ar = aT._7
344+ let N = x(("current_owner_on_dapp_" + J))
345+ if ((N != I))
316346 then throw("You don't own this NFT")
317347 else {
318- let W = x(((("sale2nd_status_" + ak) + "_") + U))
319- if ((W != "OPEN"))
348+ let ag = x(((("sale2nd_status_" + I) + "_") + J))
349+ if ((ag != "OPEN"))
320350 then throw("Sale not active")
321351 else {
322- let aG = ((((((("sale2nd_info_" + ak) + "_") + U) + "_") + D) + "_") + ai)
323- let aH = x((aG + "_OPEN"))
324-[DeleteEntry((aG + "_OPEN")), DeleteEntry(((("sale2nd_status_" + ak) + "_") + U)), DeleteEntry(("current_owner_on_dapp_" + U)), StringEntry((((aG + "_") + G) + "_CANCELLED"), ((((aH + "_CANCELLED_") + toString(az)) + "_") + G)), ScriptTransfer(Address(fromBase58String(ak)), 1, fromBase58String(U))]
352+ let aR = H(I, J, D, K)
353+ let aS = x((aR + "_OPEN"))
354+[DeleteEntry((aR + "_OPEN")), DeleteEntry(((("sale2nd_status_" + I) + "_") + J)), DeleteEntry(("current_owner_on_dapp_" + J)), StringEntry((((aR + "_") + G) + "_CANCELLED"), ((((aS + "_CANCELLED_") + toString(aI)) + "_") + G)), ScriptTransfer(Address(fromBase58String(I)), 1, fromBase58String(J))]
325355 }
326356 }
327357 }
328358
329359
330360
331-@Callable(K)
332-func buyNFT (U) = {
333- let aK = J(K)
334- let G = aK._1
335- let ak = aK._2
336- let az = aK._3
337- let V = T(U)
338- let aL = ae(U)
339- let aD = aL._1
340- let D = aL._2
341- let ai = aL._3
342- let ag = aL._4
343- if ((size(ag) == 0))
361+@Callable(U)
362+func buyNFT (J) = {
363+ let aU = aG(U, J)
364+ let G = aU._1
365+ let I = aU._2
366+ let aI = aU._3
367+ let aK = aU._4
368+ let D = aU._5
369+ let K = aU._6
370+ let ar = aU._7
371+ if ((size(ar) == 0))
344372 then throw("Artwork not found on SIGN Art, cancel your sale.")
345- else if (!(aD))
346- then throw("Something went wrong")
373+ else if (!(aK))
374+ then throw("Not a valid nft")
347375 else {
348- let aG = ((((((("sale2nd_info_" + V) + "_") + U) + "_") + D) + "_") + ai)
349- let aH = x((aG + "_OPEN"))
350- if ((size(aH) == 0))
376+ let N = ae(J)
377+ let aR = H(N, J, D, K)
378+ let aS = x((aR + "_OPEN"))
379+ if ((size(aS) == 0))
351380 then throw("Sale Not found!")
352381 else {
353- let aM = split(aH, "_")
354- if ((parseInt(aM[1]) == 0))
382+ let aV = split(aS, "_")
383+ if ((parseInt(aV[1]) == 0))
355384 then throw("Offer only")
356385 else {
357- let aN = L(K)
358- let M = aN._1
359- let N = aN._2
360- let aO = if (isDefined(M.assetId))
361- then toBase58String(value(M.assetId))
386+ let aW = V(U)
387+ let W = aW._1
388+ let X = aW._2
389+ let aX = if (isDefined(W.assetId))
390+ then toBase58String(value(W.assetId))
362391 else ""
363- if (if ((aM[1] != toString(N)))
392+ if (if ((aV[1] != toString(X)))
364393 then true
365- else (aM[2] != aO))
394+ else (aV[2] != aX))
366395 then throw("Payment infos don't match.")
367396 else {
368- let al = fraction(N, m, 100)
369- let am = fraction(N, n, 100)
370- let an = (N - (al + am))
371- let aP = aj(N, M.assetId, U, ai, V, ak)
372- let ao = aP._1
373- let ap = aP._2
374- let aq = aP._3
375- let ar = aP._4
376-[DeleteEntry((aG + "_OPEN")), DeleteEntry(((("sale2nd_status_" + V) + "_") + U)), DeleteEntry(("current_owner_on_dapp_" + U)), StringEntry((((aG + "_") + G) + "_CLOSED"), ((((((makeString(aM, "_") + "_CLOSED_") + toString(az)) + "_") + G) + "_") + ak)), ao, ap, aq, ar]
397+ let au = fraction(X, l, 100)
398+ let av = fraction(X, m, 100)
399+ let aw = (X - (au + av))
400+ let aY = at(X, W.assetId, J, K, N, I)
401+ let ax = aY._1
402+ let ay = aY._2
403+ let az = aY._3
404+ let aA = aY._4
405+[DeleteEntry((aR + "_OPEN")), DeleteEntry(((("sale2nd_status_" + N) + "_") + J)), DeleteEntry(("current_owner_on_dapp_" + J)), StringEntry((((aR + "_") + G) + "_CLOSED"), ((((((aS + "_CLOSED_") + toString(aI)) + "_") + G) + "_") + I)), aL(), ax, ay, az, aA]
377406 }
378407 }
379408 }
380409 }
381410 }
382411
383412
384413
385-@Callable(K)
386-func setOffer (U) = {
387- let aQ = J(K)
388- let G = aQ._1
389- let aR = aQ._2
390- let az = aQ._3
391- let aS = L(K)
392- let M = aS._1
393- let N = aS._2
394- let R = if (!(isDefined(M.assetId)))
395- then "WAVES"
396- else toBase58String(value(M.assetId))
397- if (!(Q(R)))
398- then throw("asset not accepted")
399- else if ((N == 0))
400- then throw("Offer of 0 not allowed")
401- else if (!(as(R, N)))
402- then throw("Wrong minimum sell price")
403- else {
404- let aT = ae(U)
405- let aD = aT._1
406- let D = aT._2
407- let ai = aT._3
408- if (!(aD))
409- then throw("Something went wrong")
414+@Callable(U)
415+func setOffer (J) = {
416+ let aZ = aG(U, J)
417+ let G = aZ._1
418+ let M = aZ._2
419+ let aI = aZ._3
420+ let aK = aZ._4
421+ let D = aZ._5
422+ let K = aZ._6
423+ let ar = aZ._7
424+ if (!(aK))
425+ then throw("Not a valid nft")
426+ else {
427+ let ba = V(U)
428+ let W = ba._1
429+ let X = ba._2
430+ let ac = if (!(isDefined(W.assetId)))
431+ then "WAVES"
432+ else toBase58String(value(W.assetId))
433+ if (!(ab(ac)))
434+ then throw("asset not accepted")
435+ else if ((X == 0))
436+ then throw("Offer of 0 not allowed")
437+ else if (!(aB(ac, X)))
438+ then throw("Wrong minimum sell price")
410439 else {
411- let V = T(U)
412-[StringEntry((((((((("offer2nd_" + aR) + "_") + U) + "_") + V) + "_") + G) + "_OPEN"), ((((((((((((((toString(az) + "_") + toString(N)) + "_") + R) + "_") + U) + "_") + D) + "_") + ai) + "_") + aR) + "_") + G))]
440+ let N = ae(J)
441+[StringEntry((L(M, J, N, G) + "_OPEN"), ((((((((((((((toString(aI) + "_") + toString(X)) + "_") + ac) + "_") + J) + "_") + D) + "_") + K) + "_") + M) + "_") + G))]
413442 }
414- }
443+ }
415444 }
416445
417446
418447
419-@Callable(K)
420-func acceptOffer (U,aU,aR) = {
421- let aV = J(K)
422- let G = aV._1
423- let ak = aV._2
424- let az = aV._3
425- let V = T(U)
426- if ((ak != V))
427- then throw("You cannot do this action")
448+@Callable(U)
449+func acceptOffer (J,O,M) = {
450+ let bb = aG(U, J)
451+ let G = bb._1
452+ let I = bb._2
453+ let aI = bb._3
454+ let aK = bb._4
455+ let D = bb._5
456+ let K = bb._6
457+ let ar = bb._7
458+ if (!(aK))
459+ then throw("Not a valid nft")
428460 else {
429- let aW = ((((((("offer2nd_" + aR) + "_") + U) + "_") + V) + "_") + aU)
430- let aX = x((aW + "_OPEN"))
431- if ((aX == ""))
432- then throw("Offer not found or not for sale")
461+ let N = ae(J)
462+ if ((I != N))
463+ then throw("Only sale owner can accept offer")
433464 else {
434- let aY = ae(U)
435- let aD = aY._1
436- let D = aY._2
437- let ai = aY._3
438- if (!(aD))
439- then throw("Something went wrong")
465+ let bc = L(M, J, N, O)
466+ let bd = ah(bc)
467+ let aj = bd._1
468+ let ac = bd._2
469+ let ai = bd._3
470+ let aR = H(N, J, D, K)
471+ let aS = x((aR + "_OPEN"))
472+ if ((size(aS) == 0))
473+ then throw("Sale Not found!")
440474 else {
441- let aG = ((((((("sale2nd_info_" + V) + "_") + U) + "_") + D) + "_") + ai)
442- let aZ = x((aG + "_OPEN"))
443- if ((size(aZ) == 0))
444- then throw("Sale Not found!")
445- else {
446- let ba = split(aZ, "_")
447- let bb = X(aW)
448- let Z = bb._1
449- let R = bb._2
450- let Y = bb._3
451- let N = value(parseInt(Z[1]))
452- let bc = aj(N, R, U, ai, V, Z[6])
453- let ao = bc._1
454- let ap = bc._2
455- let aq = bc._3
456- let ar = bc._4
457-[DeleteEntry((aG + "_OPEN")), DeleteEntry((aW + "_OPEN")), DeleteEntry(((("sale2nd_status_" + V) + "_") + U)), DeleteEntry(("current_owner_on_dapp_" + U)), StringEntry((aW + "_CLOSED"), ((((aX + "_CLOSED_") + toString(az)) + "_") + G)), StringEntry((((aG + "_") + G) + "_CLOSED"), ((((((((((makeString(ba, "_") + "_CLOSED-OFFER_") + toString(az)) + "_") + G) + "_") + aR) + "_") + toString(N)) + "_") + toBase58String(value(R)))), ao, ap, aq, ar]
458- }
475+ let X = value(parseInt(aj[1]))
476+ let be = at(X, ac, J, K, N, aj[6])
477+ let ax = be._1
478+ let ay = be._2
479+ let az = be._3
480+ let aA = be._4
481+[DeleteEntry((aR + "_OPEN")), DeleteEntry((bc + "_OPEN")), DeleteEntry(((("sale2nd_status_" + N) + "_") + J)), DeleteEntry(("current_owner_on_dapp_" + J)), StringEntry((bc + "_CLOSED"), ((((ai + "_CLOSED_") + toString(aI)) + "_") + G)), StringEntry((((aR + "_") + G) + "_CLOSED"), ((((((((((aS + "_CLOSED-OFFER_") + toString(aI)) + "_") + G) + "_") + M) + "_") + toString(X)) + "_") + toBase58String(value(ac)))), aL(), ax, ay, az, aA]
459482 }
460483 }
461484 }
462485 }
463486
464487
465488
466-@Callable(K)
467-func cancelOffer (U,aU,V) = {
468- let bd = J(K)
469- let G = bd._1
470- let ak = bd._2
471- let az = bd._3
472- let aW = ((((((("offer2nd_" + ak) + "_") + U) + "_") + V) + "_") + aU)
473- let be = X(aW)
474- let Z = be._1
475- let R = be._2
476- let Y = be._3
477-[DeleteEntry((aW + "_OPEN")), StringEntry((aW + "_CANCELLED"), ((((Y + "_CANCELLED_") + toString(az)) + "_") + G)), ScriptTransfer(Address(fromBase58String(ak)), parseIntValue(Z[1]), R)]
489+@Callable(U)
490+func cancelOffer (J,O,N) = {
491+ let bf = T(U)
492+ let G = bf._1
493+ let I = bf._2
494+ let aI = bf._3
495+ let bc = L(I, J, N, O)
496+ let bg = ah(bc)
497+ let aj = bg._1
498+ let ac = bg._2
499+ let ai = bg._3
500+[DeleteEntry((bc + "_OPEN")), StringEntry((bc + "_CANCELLED"), ((((ai + "_CANCELLED_") + toString(aI)) + "_") + G)), ScriptTransfer(Address(fromBase58String(I)), parseIntValue(aj[1]), ac)]
478501 }
479502
480503
481504
482-@Callable(K)
483-func makeRequest (D,ai) = {
484- let bf = J(K)
485- let G = bf._1
486- let bg = bf._2
487- let az = bf._3
488- let bh = L(K)
489- let M = bh._1
490- let N = bh._2
491- let R = if (!(isDefined(M.assetId)))
505+@Callable(U)
506+func makeRequest (D,K) = {
507+ let bh = T(U)
508+ let G = bh._1
509+ let Q = bh._2
510+ let aI = bh._3
511+ let bi = V(U)
512+ let W = bi._1
513+ let X = bi._2
514+ let ac = if (!(isDefined(W.assetId)))
492515 then "WAVES"
493- else toBase58String(value(M.assetId))
494- if (!(Q(R)))
516+ else toBase58String(value(W.assetId))
517+ if (!(ab(ac)))
495518 then throw("asset not accepted")
496- else if (!(as(R, N)))
519+ else if (!(aB(ac, X)))
497520 then throw("Wrong minimum sell price")
498521 else {
499- let bi = ah(D, ai)
500- if (!(bi))
522+ let bj = as(D, K)
523+ if (!(bj))
501524 then throw("Something went wrong")
502- else [StringEntry((((((((("request2nd_" + bg) + "_") + ai) + "_") + D) + "_") + G) + "_OPEN"), ((((((((((toString(az) + "_") + toString(N)) + "_") + toBase58String(value(M.assetId))) + "_") + D) + "_") + bg) + "_") + G))]
525+ else [StringEntry((P(Q, K, D, G) + "_OPEN"), ((((((((((toString(aI) + "_") + toString(X)) + "_") + toBase58String(value(W.assetId))) + "_") + D) + "_") + Q) + "_") + G))]
503526 }
504527 }
505528
506529
507530
508-@Callable(K)
509-func fillRequest (D,bg,aU) = {
510- let bj = J(K)
511- let G = bj._1
512- let V = bj._2
513- let az = bj._3
514- let bk = L(K)
515- let M = bk._1
516- let bl = bk._2
517- let bm = if (if (isDefined(M.assetId))
518- then O(value(M.assetId))
531+@Callable(U)
532+func fillRequest (D,Q,O) = {
533+ let bk = T(U)
534+ let G = bk._1
535+ let N = bk._2
536+ let aI = bk._3
537+ let bl = V(U)
538+ let W = bl._1
539+ let bm = bl._2
540+ let bn = if (if (isDefined(W.assetId))
541+ then aa(value(W.assetId))
519542 else false)
520- then M.assetId
543+ then W.assetId
521544 else throw("No NFT found")
522- let bn = split(w(("nft_" + toBase58String(value(bm)))), "_")
523- if ((size(bn) == 0))
545+ let bo = split(w(("nft_" + toBase58String(value(bn)))), "_")
546+ if ((size(bo) == 0))
524547 then throw("No NFT found")
525548 else {
526- let bo = split(x((((((((("request2nd_" + bg) + "_") + bn[6]) + "_") + D) + "_") + aU) + "_OPEN")), "_")
527- if ((size(bo) == 1))
549+ let bp = P(Q, bo[6], D, O)
550+ let bq = split(x((bp + "_OPEN")), "_")
551+ if ((size(bq) == 1))
528552 then throw("No request found")
529- else if ((bo[3] != bn[5]))
553+ else if ((bq[3] != bo[5]))
530554 then throw("This NFT don't match the requested artwork")
531555 else {
532- let N = value(parseInt(bo[1]))
533- let bp = aj(N, fromBase58String(bo[2]), toBase58String(value(bm)), bn[6], V, bo[4])
534- let ao = bp._1
535- let ap = bp._2
536- let aq = bp._3
537- let ar = bp._4
538-[DeleteEntry((((((((("request2nd_" + bg) + "_") + bn[6]) + "_") + D) + "_") + aU) + "_OPEN")), StringEntry((((((((("request2nd_" + bg) + "_") + bn[6]) + "_") + D) + "_") + aU) + "_CLOSED"), ((((((((((((toString(az) + "_") + toString(N)) + "_") + bo[2]) + "_") + D) + "_") + bg) + "_") + V) + "_") + G)), ao, ap, aq, ar]
556+ let X = value(parseInt(bq[1]))
557+ let br = at(X, fromBase58String(bq[2]), toBase58String(value(bn)), bo[6], N, bq[4])
558+ let ax = br._1
559+ let ay = br._2
560+ let az = br._3
561+ let aA = br._4
562+[DeleteEntry((bp + "_OPEN")), aL(), StringEntry((bp + "_CLOSED"), ((((((((((((toString(aI) + "_") + toString(X)) + "_") + bq[2]) + "_") + D) + "_") + Q) + "_") + N) + "_") + G)), ax, ay, az, aA]
539563 }
540564 }
541565 }
542566
543567
544568
545-@Callable(K)
546-func cancelRequest (D,ai,bq) = {
547- let br = J(K)
548- let G = br._1
549- let bg = br._2
550- let az = br._3
551- let bs = ((((((("request2nd_" + bg) + "_") + ai) + "_") + D) + "_") + bq)
552- let bo = x((bs + "_OPEN"))
553- if ((size(bo) == 0))
569+@Callable(U)
570+func cancelRequest (D,K,bs) = {
571+ let bt = T(U)
572+ let G = bt._1
573+ let Q = bt._2
574+ let aI = bt._3
575+ let bp = P(Q, K, D, bs)
576+ let bq = x((bp + "_OPEN"))
577+ if ((size(bq) == 0))
554578 then throw("Request not found")
555579 else {
556- let bt = split(bo, "_")
557-[DeleteEntry((bs + "_OPEN")), StringEntry((((((bs + "_") + toString(az)) + "_") + G) + "_CANCELLED"), ((bo + "_") + toString(az))), ScriptTransfer(Address(fromBase58String(bg)), parseIntValue(bt[1]), fromBase58String(bt[2]))]
580+ let bu = split(bq, "_")
581+[DeleteEntry((bp + "_OPEN")), StringEntry((((((bp + "_") + toString(aI)) + "_") + G) + "_CANCELLED"), ((bq + "_") + toString(aI))), ScriptTransfer(Address(fromBase58String(Q)), parseIntValue(bu[1]), fromBase58String(bu[2]))]
558582 }
559583 }
560584
561585

github/deemru/w8io/169f3d6 
186.50 ms