tx · GuLxm32sgkzQHBakfGjEPVzaR7STJg67kaXpf9PW4MXG

3MthL3snccqwbRMfcmd75NErQhP8u93efxq:  -0.01400000 Waves

2021.05.31 12:43 [1549688] smart account 3MthL3snccqwbRMfcmd75NErQhP8u93efxq > SELF 0.00000000 Waves

{ "type": 13, "id": "GuLxm32sgkzQHBakfGjEPVzaR7STJg67kaXpf9PW4MXG", "fee": 1400000, "feeAssetId": null, "timestamp": 1622454257267, "version": 2, "chainId": 84, "sender": "3MthL3snccqwbRMfcmd75NErQhP8u93efxq", "senderPublicKey": "B7RM52cEQYyAHgnfp9MBoXTdDN4BwLFRMkoSQaGBJF5Y", "proofs": [ "3Eh2Kn17ExmjavbNVPzBDvcuo3ssqWmfjYng6vCmwz3brujrk3CCR54djibjoYPn7tHevHENZ6ca8sQBxqXD3ige" ], "script": "base64:AAIEAAAAAAAAAEUIAhIECgIBCBIFCgMIAQgSAwoBCBIDCgEIEgMKAQgSBQoDCAgIEgUKAwgICBIECgIICBIFCgMICAgSBQoDCAgIEgMKAQgAAAAoAAAAAAh1bml0VGVzdAcAAAAACW9yYWNsZUZlZQkBAAAABXZhbHVlAAAAAQkABCYAAAABAgAAACMzTjJzNVJ0YUhQQmVuQ3N4MkVDY29GUmJZSHgzbm9aaFhXMQAAAAAIc2lnbkRhcHAJAQAAAAV2YWx1ZQAAAAEJAAQmAAAAAQIAAAAjM05DMjhoU2l2cm1zVFVYYVlEMXg2TDM2Mko0WnBVbm9UZEIAAAAADGFydHdvcmtzRGFwcAkBAAAABXZhbHVlAAAAAQkABCYAAAABAgAAACMzTkJ5bmZiWEMyS2FzdFV4aHVrY01VYUU1OEs5Y0JkQjlVWQAAAAALZmVlUmVjZWl2ZXICAAAAIzNOMUU2dFhkZFJvVmFSZlE5ZFEzdmc1TGFXMmZzZDhIS3ViAAAAAAh1c2VyRGFwcAMFAAAACHVuaXRUZXN0CQEAAAAFdmFsdWUAAAABCQAEJgAAAAECAAAAIzNNdDRSR01FeWpTV1lBb2NUUHFkNTV3ZEhRUUIzUFUyVUNtCQEAAAAFdmFsdWUAAAABCQAEJgAAAAECAAAAIzNOOHhYYVlqRTI3QWE3OWQ1aEhyaEh1OUhhRm9UQm1oREVqAAAAAA13aGl0ZWxpc3REYXBwCQEAAAAFdmFsdWUAAAABCQAEJgAAAAECAAAAIzNONkJhVjFkQ0I0emc0M2dvTk5IYUN0dlIxM0JjeUo1R3NxAAAAAAtzaWduQXNzZXRJZAEAAAAg6KVqvMp3QvJwYTI1Sk9Fg7m5HuWZZxfDcerZC6EEresAAAAAC3VzZG5Bc3NldElkAQAAACAP8hwSrOTEPJrsRhqrJaiw7LoHK0bMbYhy8LXikkkBtAAAAAAMd2F2ZXNBc3NldElkAQAAAAAAAAAABWNocmlzAgAAACMzTXNHNmpQTkNyVkpVdFlCN1hKQnhTN3V0V3NYQWY0bjlWcAAAAAAEam9lcAIAAAAjM016bTRWTHdzTjl1WndiVE16UGozWHV4VjZrRWZBUjhVRE4AAAAAB3NpZ25DdXQAAAAAAAAAAAMAAAAACmNyZWF0b3JDdXQAAAAAAAAAAAoAAAAAC2Rh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", "height": 1549688, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: Fy5K4xZMjh8fnWNEbDgkfr7b1kbKvv57vuhjatMVGJNR Next: none Diff:
OldNewDifferences
221221
222222
223223 @Callable(I)
224-func cancelSale (S) = {
224+func updateSalePrice (S,aq,ar) = {
225225 let ax = H(I)
226226 let G = ax._1
227227 let ai = ax._2
228228 let at = ax._3
229+ let T = x(("current_owner_on_dapp_" + S))
230+ if ((T != ai))
231+ then throw("You don't own this NFT")
232+ else {
233+ let U = x(((("sale2nd_status_" + ai) + "_") + S))
234+ if ((U != "OPEN"))
235+ then throw("Sale not active")
236+ else {
237+ let ag = split(w(F(S)), "_")[6]
238+ let ay = split(x(((((((("sale2nd_info_" + ai) + "_") + S) + "_") + ag) + "_") + U)), "_")
239+[StringEntry((((((("sale2nd_info_" + ai) + "_") + S) + "_") + ag) + "_OPEN"), ((((((((((ay[0] + "_") + toString(aq)) + "_") + ar) + "_") + ay[3]) + "_") + ay[4]) + "_") + ay[5]))]
240+ }
241+ }
242+ }
243+
244+
245+
246+@Callable(I)
247+func cancelSale (S) = {
248+ let az = H(I)
249+ let G = az._1
250+ let ai = az._2
251+ let at = az._3
229252 let T = x(("current_owner_on_dapp_" + S))
230253 if ((T != ai))
231254 then throw("You don't own this NFT")
245268
246269 @Callable(I)
247270 func buyNFT (S) = {
248- let az = H(I)
249- let G = az._1
250- let ai = az._2
251- let at = az._3
271+ let aA = H(I)
272+ let G = aA._1
273+ let ai = aA._2
274+ let at = aA._3
252275 let T = R(S)
253- let aA = ac(S)
254- let aw = aA._1
255- let D = aA._2
256- let ag = aA._3
276+ let aB = ac(S)
277+ let aw = aB._1
278+ let D = aB._2
279+ let ag = aB._3
257280 if (!(aw))
258281 then throw("Something went wrong")
259282 else {
261284 if ((size(ay) == 0))
262285 then throw("Sale Not found!")
263286 else {
264- let aB = split(ay, "_")
265- if ((parseInt(aB[1]) == 0))
287+ let aC = split(ay, "_")
288+ if ((parseInt(aC[1]) == 0))
266289 then throw("Offer only")
267290 else {
268- let aC = J(I)
269- let K = aC._1
270- let L = aC._2
271- if (if ((aB[1] != toString(L)))
291+ let aD = J(I)
292+ let K = aD._1
293+ let L = aD._2
294+ if (if ((aC[1] != toString(L)))
272295 then true
273- else (aB[2] != toBase58String(value(K.assetId))))
296+ else (aC[2] != toBase58String(value(K.assetId))))
274297 then throw("Payment infos don't match.")
275298 else {
276299 let aj = fraction(L, m, 100)
277300 let ak = fraction(L, n, 100)
278301 let al = (L - (aj + ak))
279- let aD = ah(L, K.assetId, S, ag, T, ai)
280- let am = aD._1
281- let an = aD._2
282- let ao = aD._3
283- let ap = aD._4
302+ let aE = ah(L, K.assetId, S, ag, T, ai)
303+ let am = aE._1
304+ let an = aE._2
305+ let ao = aE._3
306+ let ap = aE._4
284307 [DeleteEntry((((((("sale2nd_info_" + T) + "_") + S) + "_") + ag) + "_OPEN")), DeleteEntry(((("sale2nd_status_" + T) + "_") + S)), DeleteEntry(("current_owner_on_dapp_" + S)), StringEntry((((((((((("sale2nd_info_" + T) + "_") + S) + "_") + ag) + "_") + toString(at)) + "_") + G) + "_CLOSED"), ((((((((((((toString(at) + "_") + toString(L)) + "_") + toBase58String(value(K.assetId))) + "_") + S) + "_") + D) + "_") + ag) + "_to_") + ai)), am, an, ao, ap]
285308 }
286309 }
292315
293316 @Callable(I)
294317 func setOffer (S) = {
295- let aE = H(I)
296- let G = aE._1
297- let aF = aE._2
298- let at = aE._3
299- let aG = J(I)
300- let K = aG._1
301- let L = aG._2
318+ let aF = H(I)
319+ let G = aF._1
320+ let aG = aF._2
321+ let at = aF._3
322+ let aH = J(I)
323+ let K = aH._1
324+ let L = aH._2
302325 let P = if (!(isDefined(K.assetId)))
303326 then "WAVES"
304327 else toBase58String(value(K.assetId))
305328 if (!(O(P)))
306329 then throw("asset not accepted")
307330 else {
308- let aH = ac(S)
309- let aw = aH._1
310- let D = aH._2
311- let ag = aH._3
331+ let aI = ac(S)
332+ let aw = aI._1
333+ let D = aI._2
334+ let ag = aI._3
312335 if (!(aw))
313336 then throw("Something went wrong")
314337 else {
315338 let T = R(S)
316-[StringEntry((((((((("offer2nd_" + aF) + "_") + S) + "_") + T) + "_") + G) + "_OPEN"), ((((((((((toString(at) + "_") + toString(L)) + "_") + P) + "_") + D) + "_") + aF) + "_") + G))]
339+[StringEntry((((((((("offer2nd_" + aG) + "_") + S) + "_") + T) + "_") + G) + "_OPEN"), ((((((((((toString(at) + "_") + toString(L)) + "_") + P) + "_") + D) + "_") + aG) + "_") + G))]
317340 }
318341 }
319342 }
321344
322345
323346 @Callable(I)
324-func acceptOffer (S,aI,aF) = {
325- let aJ = H(I)
326- let G = aJ._1
327- let ai = aJ._2
328- let at = aJ._3
347+func acceptOffer (S,aJ,aG) = {
348+ let aK = H(I)
349+ let G = aK._1
350+ let ai = aK._2
351+ let at = aK._3
329352 let T = R(S)
330353 if ((ai != T))
331354 then throw("You cannot do this action")
332355 else {
333- let aK = x((((((((("offer2nd_" + aF) + "_") + S) + "_") + T) + "_") + aI) + "_OPEN"))
334- if ((aK == ""))
356+ let aL = x((((((((("offer2nd_" + aG) + "_") + S) + "_") + T) + "_") + aJ) + "_OPEN"))
357+ if ((aL == ""))
335358 then throw("Offer not found or not for sale")
336359 else {
337- let aL = ac(S)
338- let aw = aL._1
339- let D = aL._2
340- let ag = aL._3
360+ let aM = ac(S)
361+ let aw = aM._1
362+ let D = aM._2
363+ let ag = aM._3
341364 if (!(aw))
342365 then throw("Something went wrong")
343366 else {
345368 if ((size(ay) == 0))
346369 then throw("Sale Not found!")
347370 else {
348- let aM = ((((((("offer2nd_" + aF) + "_") + S) + "_") + T) + "_") + aI)
349- let aN = V(aM)
350- let X = aN._1
351- let P = aN._2
352- let W = aN._3
371+ let aN = ((((((("offer2nd_" + aG) + "_") + S) + "_") + T) + "_") + aJ)
372+ let aO = V(aN)
373+ let X = aO._1
374+ let P = aO._2
375+ let W = aO._3
353376 let L = value(parseInt(X[1]))
354- let aO = ah(L, P, S, ag, T, X[3])
355- let am = aO._1
356- let an = aO._2
357- let ao = aO._3
358- let ap = aO._4
359-[DeleteEntry((((((("sale2nd_info_" + T) + "_") + S) + "_") + ag) + "_OPEN")), DeleteEntry((aM + "_OPEN")), DeleteEntry(((("sale2nd_status_" + T) + "_") + S)), DeleteEntry(("current_owner_on_dapp_" + S)), StringEntry((((((aM + "_") + toString(at)) + "_") + G) + "_CLOSED"), ((((((((((toString(at) + "_") + toString(L)) + "_") + toBase58String(value(P))) + "_") + D) + "_") + aF) + "_") + aI)), StringEntry((((((((((("sale2nd_info_" + T) + "_") + S) + "_") + ag) + "_") + toString(at)) + "_") + G) + "_CLOSED"), ((((((((((((toString(at) + "_") + toString(L)) + "_") + toBase58String(value(P))) + "_") + S) + "_") + D) + "_") + ag) + "_to_") + aF)), am, an, ao, ap]
377+ let aP = ah(L, P, S, ag, T, X[3])
378+ let am = aP._1
379+ let an = aP._2
380+ let ao = aP._3
381+ let ap = aP._4
382+[DeleteEntry((((((("sale2nd_info_" + T) + "_") + S) + "_") + ag) + "_OPEN")), DeleteEntry((aN + "_OPEN")), DeleteEntry(((("sale2nd_status_" + T) + "_") + S)), DeleteEntry(("current_owner_on_dapp_" + S)), StringEntry((((((aN + "_") + toString(at)) + "_") + G) + "_CLOSED"), ((((((((((toString(at) + "_") + toString(L)) + "_") + toBase58String(value(P))) + "_") + D) + "_") + aG) + "_") + aJ)), StringEntry((((((((((("sale2nd_info_" + T) + "_") + S) + "_") + ag) + "_") + toString(at)) + "_") + G) + "_CLOSED"), ((((((((((((toString(at) + "_") + toString(L)) + "_") + toBase58String(value(P))) + "_") + S) + "_") + D) + "_") + ag) + "_to_") + aG)), am, an, ao, ap]
360383 }
361384 }
362385 }
366389
367390
368391 @Callable(I)
369-func cancelOffer (S,aI,T) = {
370- let aP = H(I)
371- let G = aP._1
372- let ai = aP._2
373- let at = aP._3
374- let aM = ((((((("offer2nd_" + ai) + "_") + S) + "_") + T) + "_") + aI)
375- let aQ = V(aM)
376- let X = aQ._1
377- let P = aQ._2
378- let W = aQ._3
379-[DeleteEntry((aM + "_OPEN")), StringEntry((((((aM + "_") + toString(at)) + "_") + G) + "_CANCELLED"), ((W + "_") + toString(at))), ScriptTransfer(Address(fromBase58String(ai)), parseIntValue(X[1]), P)]
392+func cancelOffer (S,aJ,T) = {
393+ let aQ = H(I)
394+ let G = aQ._1
395+ let ai = aQ._2
396+ let at = aQ._3
397+ let aN = ((((((("offer2nd_" + ai) + "_") + S) + "_") + T) + "_") + aJ)
398+ let aR = V(aN)
399+ let X = aR._1
400+ let P = aR._2
401+ let W = aR._3
402+[DeleteEntry((aN + "_OPEN")), StringEntry((((((aN + "_") + toString(at)) + "_") + G) + "_CANCELLED"), ((W + "_") + toString(at))), ScriptTransfer(Address(fromBase58String(ai)), parseIntValue(X[1]), P)]
380403 }
381404
382405
383406
384407 @Callable(I)
385408 func makeRequest (D,ag) = {
386- let aR = H(I)
387- let G = aR._1
388- let aS = aR._2
389- let at = aR._3
390- let aT = J(I)
391- let K = aT._1
392- let L = aT._2
409+ let aS = H(I)
410+ let G = aS._1
411+ let aT = aS._2
412+ let at = aS._3
413+ let aU = J(I)
414+ let K = aU._1
415+ let L = aU._2
393416 let P = if (!(isDefined(K.assetId)))
394417 then "WAVES"
395418 else toBase58String(value(K.assetId))
396419 if (!(O(P)))
397420 then throw("asset not accepted")
398421 else {
399- let aU = af(D, ag)
400- if (!(aU))
422+ let aV = af(D, ag)
423+ if (!(aV))
401424 then throw("Something went wrong")
402- else [StringEntry((((((((("request2nd_" + aS) + "_") + ag) + "_") + D) + "_") + G) + "_OPEN"), ((((((((((toString(at) + "_") + toString(L)) + "_") + toBase58String(value(K.assetId))) + "_") + D) + "_") + aS) + "_") + G))]
425+ else [StringEntry((((((((("request2nd_" + aT) + "_") + ag) + "_") + D) + "_") + G) + "_OPEN"), ((((((((((toString(at) + "_") + toString(L)) + "_") + toBase58String(value(K.assetId))) + "_") + D) + "_") + aT) + "_") + G))]
403426 }
404427 }
405428
406429
407430
408431 @Callable(I)
409-func fillRequest (D,aS,aI) = {
410- let aV = H(I)
411- let G = aV._1
412- let T = aV._2
413- let at = aV._3
414- let aW = J(I)
415- let K = aW._1
416- let aX = aW._2
417- let aY = if (if (isDefined(K.assetId))
432+func fillRequest (D,aT,aJ) = {
433+ let aW = H(I)
434+ let G = aW._1
435+ let T = aW._2
436+ let at = aW._3
437+ let aX = J(I)
438+ let K = aX._1
439+ let aY = aX._2
440+ let aZ = if (if (isDefined(K.assetId))
418441 then M(value(K.assetId))
419442 else false)
420443 then K.assetId
421444 else throw("No NFT found")
422- let aZ = split(w(("nft_" + toBase58String(value(aY)))), "_")
423- if ((size(aZ) == 0))
445+ let ba = split(w(("nft_" + toBase58String(value(aZ)))), "_")
446+ if ((size(ba) == 0))
424447 then throw("No NFT found")
425448 else {
426- let ba = split(x((((((((("request2nd_" + aS) + "_") + aZ[6]) + "_") + D) + "_") + aI) + "_OPEN")), "_")
427- if ((size(ba) == 1))
449+ let bb = split(x((((((((("request2nd_" + aT) + "_") + ba[6]) + "_") + D) + "_") + aJ) + "_OPEN")), "_")
450+ if ((size(bb) == 1))
428451 then throw("No request found")
429- else if ((ba[3] != aZ[5]))
452+ else if ((bb[3] != ba[5]))
430453 then throw("This NFT don't match the requested artwork")
431454 else {
432- let L = value(parseInt(ba[1]))
433- let bb = ah(L, fromBase58String(ba[2]), toBase58String(value(aY)), aZ[6], T, ba[4])
434- let am = bb._1
435- let an = bb._2
436- let ao = bb._3
437- let ap = bb._4
438-[DeleteEntry((((((((("request2nd_" + aS) + "_") + aZ[6]) + "_") + D) + "_") + aI) + "_OPEN")), StringEntry((((((((("request2nd_" + aS) + "_") + aZ[6]) + "_") + D) + "_") + aI) + "_CLOSED"), ((((((((((((toString(at) + "_") + toString(L)) + "_") + ba[2]) + "_") + D) + "_") + aS) + "_") + T) + "_") + G)), am, an, ao, ap]
455+ let L = value(parseInt(bb[1]))
456+ let bc = ah(L, fromBase58String(bb[2]), toBase58String(value(aZ)), ba[6], T, bb[4])
457+ let am = bc._1
458+ let an = bc._2
459+ let ao = bc._3
460+ let ap = bc._4
461+[DeleteEntry((((((((("request2nd_" + aT) + "_") + ba[6]) + "_") + D) + "_") + aJ) + "_OPEN")), StringEntry((((((((("request2nd_" + aT) + "_") + ba[6]) + "_") + D) + "_") + aJ) + "_CLOSED"), ((((((((((((toString(at) + "_") + toString(L)) + "_") + bb[2]) + "_") + D) + "_") + aT) + "_") + T) + "_") + G)), am, an, ao, ap]
439462 }
440463 }
441464 }
443466
444467
445468 @Callable(I)
446-func cancelRequest (D,ag,bc) = {
447- let bd = H(I)
448- let G = bd._1
449- let aS = bd._2
450- let at = bd._3
451- let be = ((((((("request2nd_" + aS) + "_") + ag) + "_") + D) + "_") + bc)
452- let ba = x((be + "_OPEN"))
453- if ((size(ba) == 0))
469+func cancelRequest (D,ag,bd) = {
470+ let be = H(I)
471+ let G = be._1
472+ let aT = be._2
473+ let at = be._3
474+ let bf = ((((((("request2nd_" + aT) + "_") + ag) + "_") + D) + "_") + bd)
475+ let bb = x((bf + "_OPEN"))
476+ if ((size(bb) == 0))
454477 then throw("Request not found")
455478 else {
456- let bf = split(ba, "_")
457-[DeleteEntry((be + "_OPEN")), StringEntry((((((be + "_") + toString(at)) + "_") + G) + "_CANCELLED"), ((ba + "_") + toString(at))), ScriptTransfer(Address(fromBase58String(aS)), parseIntValue(bf[1]), fromBase58String(bf[2]))]
479+ let bg = split(bb, "_")
480+[DeleteEntry((bf + "_OPEN")), StringEntry((((((bf + "_") + toString(at)) + "_") + G) + "_CANCELLED"), ((bb + "_") + toString(at))), ScriptTransfer(Address(fromBase58String(aT)), parseIntValue(bg[1]), fromBase58String(bg[2]))]
458481 }
459482 }
460483
461484
462485
463486 @Callable(I)
464-func deleteEntry (bg) = {
487+func deleteEntry (bh) = {
465488 let ai = toString(addressFromPublicKey(I.callerPublicKey))
466489 if ((ai == k))
467- then [DeleteEntry(bg)]
490+ then [DeleteEntry(bh)]
468491 else throw("no")
469492 }
470493
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
2828 let l = "3Mzm4VLwsN9uZwbTMzPj3XuxV6kEfAR8UDN"
2929
3030 let m = 3
3131
3232 let n = 10
3333
3434 let o = valueOrElse(getBoolean(f, "conf_dapp_is_running"), true)
3535
3636 let p = valueOrElse(getString(f, "conf_maintenance_msg"), "")
3737
3838 let q = "SUSPENDED"
3939
4040 let r = "REMOVED"
4141
4242 let s = "ILLEGAL"
4343
4444 let t = "SUSPENDED"
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
7070 func H (I) = if (!(o))
7171 then throw(p)
7272 else $Tuple3(toBase58String(I.transactionId), toBase58String(I.caller.bytes), lastBlock.timestamp)
7373
7474
7575 func J (I) = if ((size(I.payments) == 0))
7676 then throw("No payment attached")
7777 else {
7878 let K = value(I.payments[0])
7979 let L = value(K.amount)
8080 $Tuple2(K, L)
8181 }
8282
8383
8484 func M (G) = {
8585 let N = value(assetInfo(G))
8686 if (if (if (if ((N.quantity != 1))
8787 then true
8888 else (N.decimals != 0))
8989 then true
9090 else (N.reissuable != false))
9191 then true
9292 else (N.issuer != d))
9393 then false
9494 else true
9595 }
9696
9797
9898 func O (P) = if (if (if (if ((P != toBase58String(h)))
9999 then (P != toBase58String(j))
100100 else false)
101101 then (P != "WAVES")
102102 else false)
103103 then (P != toBase58String(i))
104104 else false)
105105 then false
106106 else true
107107
108108
109109 func Q (P) = if ((P == "WAVES"))
110110 then unit
111111 else fromBase58String(P)
112112
113113
114114 func R (S) = {
115115 let T = x(("current_owner_on_dapp_" + S))
116116 if ((size(T) == 0))
117117 then throw("NFT not found")
118118 else {
119119 let U = x(((("sale2nd_status_" + T) + "_") + S))
120120 if ((U != "OPEN"))
121121 then throw("NFT not for sale")
122122 else T
123123 }
124124 }
125125
126126
127127 func V (v) = {
128128 let W = x((v + "_OPEN"))
129129 if ((W == ""))
130130 then throw("Offer not found")
131131 else {
132132 let X = split(W, "_")
133133 let P = Q(X[2])
134134 $Tuple3(X, P, W)
135135 }
136136 }
137137
138138
139139 func Y (A,G) = {
140140 let Z = w(E(A, G))
141141 if (if ((Z == s))
142142 then true
143143 else (Z == t))
144144 then throw(("Original Artwork flagged as " + Z))
145145 else true
146146 }
147147
148148
149149 func aa (A) = {
150150 let ab = u(z(A))
151151 if (containsElement([q, r], ab))
152152 then throw(("Original Artist " + ab))
153153 else true
154154 }
155155
156156
157157 func ac (P) = {
158158 let ad = split(w(F(P)), "_")
159159 let ae = w(B(ad[6], ad[5]))
160160 if ((size(ae) == 0))
161161 then throw("Artwork not found on SIGN Art")
162162 else if (if (!(Y(ad[6], ad[5])))
163163 then !(aa(ad[6]))
164164 else false)
165165 then $Tuple3(false, ad[5], ad[6])
166166 else $Tuple3(true, ad[5], ad[6])
167167 }
168168
169169
170170 func af (D,ag) = {
171171 let ae = w(B(ag, D))
172172 if ((size(ae) == 0))
173173 then throw("Artwork not found on SIGN Art")
174174 else if (if (!(Y(ag, D)))
175175 then !(aa(ag))
176176 else false)
177177 then false
178178 else true
179179 }
180180
181181
182182 func ah (L,P,S,ag,T,ai) = {
183183 let aj = fraction(L, m, 100)
184184 let ak = fraction(L, n, 100)
185185 let al = (L - (aj + ak))
186186 let am = ScriptTransfer(Address(fromBase58String(e)), aj, P)
187187 let an = ScriptTransfer(Address(fromBase58String(ag)), ak, P)
188188 let ao = ScriptTransfer(Address(fromBase58String(T)), al, P)
189189 let ap = ScriptTransfer(Address(fromBase58String(ai)), 1, fromBase58String(S))
190190 $Tuple4(am, an, ao, ap)
191191 }
192192
193193
194194 @Callable(I)
195195 func sellNFT (aq,ar) = {
196196 let as = H(I)
197197 let G = as._1
198198 let ai = as._2
199199 let at = as._3
200200 let au = J(I)
201201 let K = au._1
202202 let L = au._2
203203 let P = if (if (isDefined(K.assetId))
204204 then M(value(K.assetId))
205205 else false)
206206 then K.assetId
207207 else throw("Only SIGN Art NFT accepted.")
208208 if (!(O(ar)))
209209 then throw("Only SIGN, USDN or WAVES accepted")
210210 else {
211211 let av = ac(toBase58String(value(P)))
212212 let aw = av._1
213213 let D = av._2
214214 let ag = av._3
215215 if (!(aw))
216216 then throw("Something went wrong")
217217 else [StringEntry((((((("sale2nd_info_" + ai) + "_") + toBase58String(value(K.assetId))) + "_") + ag) + "_OPEN"), ((((((((((toString(at) + "_") + toString(aq)) + "_") + ar) + "_") + toBase58String(value(K.assetId))) + "_") + D) + "_") + ag)), StringEntry(((("sale2nd_status_" + ai) + "_") + toBase58String(value(K.assetId))), "OPEN"), StringEntry(("current_owner_on_dapp_" + toBase58String(value(K.assetId))), ai)]
218218 }
219219 }
220220
221221
222222
223223 @Callable(I)
224-func cancelSale (S) = {
224+func updateSalePrice (S,aq,ar) = {
225225 let ax = H(I)
226226 let G = ax._1
227227 let ai = ax._2
228228 let at = ax._3
229+ let T = x(("current_owner_on_dapp_" + S))
230+ if ((T != ai))
231+ then throw("You don't own this NFT")
232+ else {
233+ let U = x(((("sale2nd_status_" + ai) + "_") + S))
234+ if ((U != "OPEN"))
235+ then throw("Sale not active")
236+ else {
237+ let ag = split(w(F(S)), "_")[6]
238+ let ay = split(x(((((((("sale2nd_info_" + ai) + "_") + S) + "_") + ag) + "_") + U)), "_")
239+[StringEntry((((((("sale2nd_info_" + ai) + "_") + S) + "_") + ag) + "_OPEN"), ((((((((((ay[0] + "_") + toString(aq)) + "_") + ar) + "_") + ay[3]) + "_") + ay[4]) + "_") + ay[5]))]
240+ }
241+ }
242+ }
243+
244+
245+
246+@Callable(I)
247+func cancelSale (S) = {
248+ let az = H(I)
249+ let G = az._1
250+ let ai = az._2
251+ let at = az._3
229252 let T = x(("current_owner_on_dapp_" + S))
230253 if ((T != ai))
231254 then throw("You don't own this NFT")
232255 else {
233256 let U = x(((("sale2nd_status_" + ai) + "_") + S))
234257 if ((U != "OPEN"))
235258 then throw("Sale not active")
236259 else {
237260 let ag = split(w(F(S)), "_")[6]
238261 let ay = x(((((((("sale2nd_info_" + ai) + "_") + S) + "_") + ag) + "_") + U))
239262 [DeleteEntry((((((("sale2nd_info_" + ai) + "_") + S) + "_") + ag) + "_OPEN")), DeleteEntry(((("sale2nd_status_" + ai) + "_") + S)), DeleteEntry(("current_owner_on_dapp_" + S)), StringEntry((((((((((("sale2nd_info_" + ai) + "_") + S) + "_") + ag) + "_") + toString(at)) + "_") + G) + "_CANCELLED"), ay), ScriptTransfer(Address(fromBase58String(ai)), 1, fromBase58String(S))]
240263 }
241264 }
242265 }
243266
244267
245268
246269 @Callable(I)
247270 func buyNFT (S) = {
248- let az = H(I)
249- let G = az._1
250- let ai = az._2
251- let at = az._3
271+ let aA = H(I)
272+ let G = aA._1
273+ let ai = aA._2
274+ let at = aA._3
252275 let T = R(S)
253- let aA = ac(S)
254- let aw = aA._1
255- let D = aA._2
256- let ag = aA._3
276+ let aB = ac(S)
277+ let aw = aB._1
278+ let D = aB._2
279+ let ag = aB._3
257280 if (!(aw))
258281 then throw("Something went wrong")
259282 else {
260283 let ay = x((((((("sale2nd_info_" + T) + "_") + S) + "_") + ag) + "_OPEN"))
261284 if ((size(ay) == 0))
262285 then throw("Sale Not found!")
263286 else {
264- let aB = split(ay, "_")
265- if ((parseInt(aB[1]) == 0))
287+ let aC = split(ay, "_")
288+ if ((parseInt(aC[1]) == 0))
266289 then throw("Offer only")
267290 else {
268- let aC = J(I)
269- let K = aC._1
270- let L = aC._2
271- if (if ((aB[1] != toString(L)))
291+ let aD = J(I)
292+ let K = aD._1
293+ let L = aD._2
294+ if (if ((aC[1] != toString(L)))
272295 then true
273- else (aB[2] != toBase58String(value(K.assetId))))
296+ else (aC[2] != toBase58String(value(K.assetId))))
274297 then throw("Payment infos don't match.")
275298 else {
276299 let aj = fraction(L, m, 100)
277300 let ak = fraction(L, n, 100)
278301 let al = (L - (aj + ak))
279- let aD = ah(L, K.assetId, S, ag, T, ai)
280- let am = aD._1
281- let an = aD._2
282- let ao = aD._3
283- let ap = aD._4
302+ let aE = ah(L, K.assetId, S, ag, T, ai)
303+ let am = aE._1
304+ let an = aE._2
305+ let ao = aE._3
306+ let ap = aE._4
284307 [DeleteEntry((((((("sale2nd_info_" + T) + "_") + S) + "_") + ag) + "_OPEN")), DeleteEntry(((("sale2nd_status_" + T) + "_") + S)), DeleteEntry(("current_owner_on_dapp_" + S)), StringEntry((((((((((("sale2nd_info_" + T) + "_") + S) + "_") + ag) + "_") + toString(at)) + "_") + G) + "_CLOSED"), ((((((((((((toString(at) + "_") + toString(L)) + "_") + toBase58String(value(K.assetId))) + "_") + S) + "_") + D) + "_") + ag) + "_to_") + ai)), am, an, ao, ap]
285308 }
286309 }
287310 }
288311 }
289312 }
290313
291314
292315
293316 @Callable(I)
294317 func setOffer (S) = {
295- let aE = H(I)
296- let G = aE._1
297- let aF = aE._2
298- let at = aE._3
299- let aG = J(I)
300- let K = aG._1
301- let L = aG._2
318+ let aF = H(I)
319+ let G = aF._1
320+ let aG = aF._2
321+ let at = aF._3
322+ let aH = J(I)
323+ let K = aH._1
324+ let L = aH._2
302325 let P = if (!(isDefined(K.assetId)))
303326 then "WAVES"
304327 else toBase58String(value(K.assetId))
305328 if (!(O(P)))
306329 then throw("asset not accepted")
307330 else {
308- let aH = ac(S)
309- let aw = aH._1
310- let D = aH._2
311- let ag = aH._3
331+ let aI = ac(S)
332+ let aw = aI._1
333+ let D = aI._2
334+ let ag = aI._3
312335 if (!(aw))
313336 then throw("Something went wrong")
314337 else {
315338 let T = R(S)
316-[StringEntry((((((((("offer2nd_" + aF) + "_") + S) + "_") + T) + "_") + G) + "_OPEN"), ((((((((((toString(at) + "_") + toString(L)) + "_") + P) + "_") + D) + "_") + aF) + "_") + G))]
339+[StringEntry((((((((("offer2nd_" + aG) + "_") + S) + "_") + T) + "_") + G) + "_OPEN"), ((((((((((toString(at) + "_") + toString(L)) + "_") + P) + "_") + D) + "_") + aG) + "_") + G))]
317340 }
318341 }
319342 }
320343
321344
322345
323346 @Callable(I)
324-func acceptOffer (S,aI,aF) = {
325- let aJ = H(I)
326- let G = aJ._1
327- let ai = aJ._2
328- let at = aJ._3
347+func acceptOffer (S,aJ,aG) = {
348+ let aK = H(I)
349+ let G = aK._1
350+ let ai = aK._2
351+ let at = aK._3
329352 let T = R(S)
330353 if ((ai != T))
331354 then throw("You cannot do this action")
332355 else {
333- let aK = x((((((((("offer2nd_" + aF) + "_") + S) + "_") + T) + "_") + aI) + "_OPEN"))
334- if ((aK == ""))
356+ let aL = x((((((((("offer2nd_" + aG) + "_") + S) + "_") + T) + "_") + aJ) + "_OPEN"))
357+ if ((aL == ""))
335358 then throw("Offer not found or not for sale")
336359 else {
337- let aL = ac(S)
338- let aw = aL._1
339- let D = aL._2
340- let ag = aL._3
360+ let aM = ac(S)
361+ let aw = aM._1
362+ let D = aM._2
363+ let ag = aM._3
341364 if (!(aw))
342365 then throw("Something went wrong")
343366 else {
344367 let ay = x((((((("sale2nd_info_" + T) + "_") + S) + "_") + ag) + "_OPEN"))
345368 if ((size(ay) == 0))
346369 then throw("Sale Not found!")
347370 else {
348- let aM = ((((((("offer2nd_" + aF) + "_") + S) + "_") + T) + "_") + aI)
349- let aN = V(aM)
350- let X = aN._1
351- let P = aN._2
352- let W = aN._3
371+ let aN = ((((((("offer2nd_" + aG) + "_") + S) + "_") + T) + "_") + aJ)
372+ let aO = V(aN)
373+ let X = aO._1
374+ let P = aO._2
375+ let W = aO._3
353376 let L = value(parseInt(X[1]))
354- let aO = ah(L, P, S, ag, T, X[3])
355- let am = aO._1
356- let an = aO._2
357- let ao = aO._3
358- let ap = aO._4
359-[DeleteEntry((((((("sale2nd_info_" + T) + "_") + S) + "_") + ag) + "_OPEN")), DeleteEntry((aM + "_OPEN")), DeleteEntry(((("sale2nd_status_" + T) + "_") + S)), DeleteEntry(("current_owner_on_dapp_" + S)), StringEntry((((((aM + "_") + toString(at)) + "_") + G) + "_CLOSED"), ((((((((((toString(at) + "_") + toString(L)) + "_") + toBase58String(value(P))) + "_") + D) + "_") + aF) + "_") + aI)), StringEntry((((((((((("sale2nd_info_" + T) + "_") + S) + "_") + ag) + "_") + toString(at)) + "_") + G) + "_CLOSED"), ((((((((((((toString(at) + "_") + toString(L)) + "_") + toBase58String(value(P))) + "_") + S) + "_") + D) + "_") + ag) + "_to_") + aF)), am, an, ao, ap]
377+ let aP = ah(L, P, S, ag, T, X[3])
378+ let am = aP._1
379+ let an = aP._2
380+ let ao = aP._3
381+ let ap = aP._4
382+[DeleteEntry((((((("sale2nd_info_" + T) + "_") + S) + "_") + ag) + "_OPEN")), DeleteEntry((aN + "_OPEN")), DeleteEntry(((("sale2nd_status_" + T) + "_") + S)), DeleteEntry(("current_owner_on_dapp_" + S)), StringEntry((((((aN + "_") + toString(at)) + "_") + G) + "_CLOSED"), ((((((((((toString(at) + "_") + toString(L)) + "_") + toBase58String(value(P))) + "_") + D) + "_") + aG) + "_") + aJ)), StringEntry((((((((((("sale2nd_info_" + T) + "_") + S) + "_") + ag) + "_") + toString(at)) + "_") + G) + "_CLOSED"), ((((((((((((toString(at) + "_") + toString(L)) + "_") + toBase58String(value(P))) + "_") + S) + "_") + D) + "_") + ag) + "_to_") + aG)), am, an, ao, ap]
360383 }
361384 }
362385 }
363386 }
364387 }
365388
366389
367390
368391 @Callable(I)
369-func cancelOffer (S,aI,T) = {
370- let aP = H(I)
371- let G = aP._1
372- let ai = aP._2
373- let at = aP._3
374- let aM = ((((((("offer2nd_" + ai) + "_") + S) + "_") + T) + "_") + aI)
375- let aQ = V(aM)
376- let X = aQ._1
377- let P = aQ._2
378- let W = aQ._3
379-[DeleteEntry((aM + "_OPEN")), StringEntry((((((aM + "_") + toString(at)) + "_") + G) + "_CANCELLED"), ((W + "_") + toString(at))), ScriptTransfer(Address(fromBase58String(ai)), parseIntValue(X[1]), P)]
392+func cancelOffer (S,aJ,T) = {
393+ let aQ = H(I)
394+ let G = aQ._1
395+ let ai = aQ._2
396+ let at = aQ._3
397+ let aN = ((((((("offer2nd_" + ai) + "_") + S) + "_") + T) + "_") + aJ)
398+ let aR = V(aN)
399+ let X = aR._1
400+ let P = aR._2
401+ let W = aR._3
402+[DeleteEntry((aN + "_OPEN")), StringEntry((((((aN + "_") + toString(at)) + "_") + G) + "_CANCELLED"), ((W + "_") + toString(at))), ScriptTransfer(Address(fromBase58String(ai)), parseIntValue(X[1]), P)]
380403 }
381404
382405
383406
384407 @Callable(I)
385408 func makeRequest (D,ag) = {
386- let aR = H(I)
387- let G = aR._1
388- let aS = aR._2
389- let at = aR._3
390- let aT = J(I)
391- let K = aT._1
392- let L = aT._2
409+ let aS = H(I)
410+ let G = aS._1
411+ let aT = aS._2
412+ let at = aS._3
413+ let aU = J(I)
414+ let K = aU._1
415+ let L = aU._2
393416 let P = if (!(isDefined(K.assetId)))
394417 then "WAVES"
395418 else toBase58String(value(K.assetId))
396419 if (!(O(P)))
397420 then throw("asset not accepted")
398421 else {
399- let aU = af(D, ag)
400- if (!(aU))
422+ let aV = af(D, ag)
423+ if (!(aV))
401424 then throw("Something went wrong")
402- else [StringEntry((((((((("request2nd_" + aS) + "_") + ag) + "_") + D) + "_") + G) + "_OPEN"), ((((((((((toString(at) + "_") + toString(L)) + "_") + toBase58String(value(K.assetId))) + "_") + D) + "_") + aS) + "_") + G))]
425+ else [StringEntry((((((((("request2nd_" + aT) + "_") + ag) + "_") + D) + "_") + G) + "_OPEN"), ((((((((((toString(at) + "_") + toString(L)) + "_") + toBase58String(value(K.assetId))) + "_") + D) + "_") + aT) + "_") + G))]
403426 }
404427 }
405428
406429
407430
408431 @Callable(I)
409-func fillRequest (D,aS,aI) = {
410- let aV = H(I)
411- let G = aV._1
412- let T = aV._2
413- let at = aV._3
414- let aW = J(I)
415- let K = aW._1
416- let aX = aW._2
417- let aY = if (if (isDefined(K.assetId))
432+func fillRequest (D,aT,aJ) = {
433+ let aW = H(I)
434+ let G = aW._1
435+ let T = aW._2
436+ let at = aW._3
437+ let aX = J(I)
438+ let K = aX._1
439+ let aY = aX._2
440+ let aZ = if (if (isDefined(K.assetId))
418441 then M(value(K.assetId))
419442 else false)
420443 then K.assetId
421444 else throw("No NFT found")
422- let aZ = split(w(("nft_" + toBase58String(value(aY)))), "_")
423- if ((size(aZ) == 0))
445+ let ba = split(w(("nft_" + toBase58String(value(aZ)))), "_")
446+ if ((size(ba) == 0))
424447 then throw("No NFT found")
425448 else {
426- let ba = split(x((((((((("request2nd_" + aS) + "_") + aZ[6]) + "_") + D) + "_") + aI) + "_OPEN")), "_")
427- if ((size(ba) == 1))
449+ let bb = split(x((((((((("request2nd_" + aT) + "_") + ba[6]) + "_") + D) + "_") + aJ) + "_OPEN")), "_")
450+ if ((size(bb) == 1))
428451 then throw("No request found")
429- else if ((ba[3] != aZ[5]))
452+ else if ((bb[3] != ba[5]))
430453 then throw("This NFT don't match the requested artwork")
431454 else {
432- let L = value(parseInt(ba[1]))
433- let bb = ah(L, fromBase58String(ba[2]), toBase58String(value(aY)), aZ[6], T, ba[4])
434- let am = bb._1
435- let an = bb._2
436- let ao = bb._3
437- let ap = bb._4
438-[DeleteEntry((((((((("request2nd_" + aS) + "_") + aZ[6]) + "_") + D) + "_") + aI) + "_OPEN")), StringEntry((((((((("request2nd_" + aS) + "_") + aZ[6]) + "_") + D) + "_") + aI) + "_CLOSED"), ((((((((((((toString(at) + "_") + toString(L)) + "_") + ba[2]) + "_") + D) + "_") + aS) + "_") + T) + "_") + G)), am, an, ao, ap]
455+ let L = value(parseInt(bb[1]))
456+ let bc = ah(L, fromBase58String(bb[2]), toBase58String(value(aZ)), ba[6], T, bb[4])
457+ let am = bc._1
458+ let an = bc._2
459+ let ao = bc._3
460+ let ap = bc._4
461+[DeleteEntry((((((((("request2nd_" + aT) + "_") + ba[6]) + "_") + D) + "_") + aJ) + "_OPEN")), StringEntry((((((((("request2nd_" + aT) + "_") + ba[6]) + "_") + D) + "_") + aJ) + "_CLOSED"), ((((((((((((toString(at) + "_") + toString(L)) + "_") + bb[2]) + "_") + D) + "_") + aT) + "_") + T) + "_") + G)), am, an, ao, ap]
439462 }
440463 }
441464 }
442465
443466
444467
445468 @Callable(I)
446-func cancelRequest (D,ag,bc) = {
447- let bd = H(I)
448- let G = bd._1
449- let aS = bd._2
450- let at = bd._3
451- let be = ((((((("request2nd_" + aS) + "_") + ag) + "_") + D) + "_") + bc)
452- let ba = x((be + "_OPEN"))
453- if ((size(ba) == 0))
469+func cancelRequest (D,ag,bd) = {
470+ let be = H(I)
471+ let G = be._1
472+ let aT = be._2
473+ let at = be._3
474+ let bf = ((((((("request2nd_" + aT) + "_") + ag) + "_") + D) + "_") + bd)
475+ let bb = x((bf + "_OPEN"))
476+ if ((size(bb) == 0))
454477 then throw("Request not found")
455478 else {
456- let bf = split(ba, "_")
457-[DeleteEntry((be + "_OPEN")), StringEntry((((((be + "_") + toString(at)) + "_") + G) + "_CANCELLED"), ((ba + "_") + toString(at))), ScriptTransfer(Address(fromBase58String(aS)), parseIntValue(bf[1]), fromBase58String(bf[2]))]
479+ let bg = split(bb, "_")
480+[DeleteEntry((bf + "_OPEN")), StringEntry((((((bf + "_") + toString(at)) + "_") + G) + "_CANCELLED"), ((bb + "_") + toString(at))), ScriptTransfer(Address(fromBase58String(aT)), parseIntValue(bg[1]), fromBase58String(bg[2]))]
458481 }
459482 }
460483
461484
462485
463486 @Callable(I)
464-func deleteEntry (bg) = {
487+func deleteEntry (bh) = {
465488 let ai = toString(addressFromPublicKey(I.callerPublicKey))
466489 if ((ai == k))
467- then [DeleteEntry(bg)]
490+ then [DeleteEntry(bh)]
468491 else throw("no")
469492 }
470493
471494

github/deemru/w8io/873ac7e 
128.90 ms