tx · 9CVWPL3rJxdUrhyZPug5dEXRr3yMxpzvJRn7ibVB9Kp3

3N2eA4yzXa4wTj7pP8r6G144RRxZW7cmq4p:  -0.01400000 Waves

2022.02.24 10:51 [1937461] smart account 3N2eA4yzXa4wTj7pP8r6G144RRxZW7cmq4p > SELF 0.00000000 Waves

{ "type": 13, "id": "9CVWPL3rJxdUrhyZPug5dEXRr3yMxpzvJRn7ibVB9Kp3", "fee": 1400000, "feeAssetId": null, "timestamp": 1645689132940, "version": 2, "chainId": 84, "sender": "3N2eA4yzXa4wTj7pP8r6G144RRxZW7cmq4p", "senderPublicKey": "Hh3eFP2XFetZSfTxQiM1Ps96f68zi8Zh5ghhCZdjgdFs", "proofs": [ "4AhchaHWSqepYThP5wqfL5wYP9nn4bN6ZUgicLsTqG6Ty86WteQtJcB8mJhEVmqxfQpRCcxFVYrf1sraWpD3Hmky" ], "script": "base64:AAIFAAAAAAAAADMIAhIECgIECBIECgIBCBIFCgMIAQgSAwoBCBIDCgEIEgMKAQgSBQoDCAgIEgYKBAgICAgAAAA1AAAAAAh1bml0VGVzdAcAAAAACW9yYWNsZUZlZQkBAAAABXZhbHVlAAAAAQkABCYAAAABAgAAACMzTjJzNVJ0YUhQQmVuQ3N4MkVDY29GUmJZSHgzbm9aaFhXMQAAAAAIc2lnbkRhcHAJAQAAAAV2YWx1ZQAAAAEJAAQmAAAAAQIAAAAjM05DMjhoU2l2cm1zVFVYYVlEMXg2TDM2Mko0WnBVbm9UZEIAAAAADGFydHdvcmtzRGFwcAkBAAAABXZhbHVlAAAAAQkABCYAAAABAgAAACMzTkJ5bmZiWEMyS2FzdFV4aHVrY01VYUU1OEs5Y0JkQjlVWQAAAAALZmVlUmVjZWl2ZXICAAAAIzNOMUU2dFhkZFJvVmFSZlE5ZFEzdmc1TGFXMmZzZDhIS3ViAAAAAAh1c2VyRGFwcAMFAAAACHVuaXRUZXN0CQEAAAAFdmFsdWUAAAABCQAEJgAAAAECAAAAIzNNdDRSR01FeWpTV1lBb2NUUHFkNTV3ZEhRUUIzUFUyVUNtCQEAAAAFdmFsdWUAAAABCQAEJgAAAAECAAAAIzNOOHhYYVlqRTI3QWE3OWQ1aEhyaEh1OUhhRm9UQm1oREVqAAAAAA13aGl0ZWxpc3REYXBwCQEAAAAFdmFsdWUAAAABCQAEJgAAAAECAAAAIzNONkJhVjFkQ0I0emc0M2dvTk5IYUN0dlIxM0JjeUo1R3NxAAAAAAtzaWduQXNzZXRJZAEAAAAg6KVqvMp3QvJwYTI1Sk9Fg7m5HuWZZxfDcerZC6EEresAAAAAC3VzZG5Bc3NldElkAQAAACAP8hwSrOTEPJrsRhqrJaiw7LoHK0bMbYhy8LXikkkBtAAAAAAMd2F2ZXNBc3NldElkAQAAAAAAAAAABWNocmlzAgAAACMzTXNHNmpQTkNyVkpVdFlCN1hKQnhTN3V0V3NYQWY0bjlWcAAAAAAHc2lnbkN1dAAAAAAAAAAAAwAAAAAKY3JlYXRvckN1dAAAAAAAAAAACgAAAAANdXNlclN1c3BlbmRlZAIAAAAJU1VTUEVOREVEAAAAAAt1c2VyUmVtb3ZlZAIAAAAHUkVNT1ZFRAAAAAAKYXJ0SWxsZWdh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JHQwMTY3NjcxNjg1OQkBAAAAD3Byb3ZpZGVCYXNlRGF0YQAAAAIFAAAAAWkFAAAABW5mdElkBAAAAAJpZAgFAAAADSR0MDE2NzY3MTY4NTkAAAACXzEEAAAABmNhbGxlcggFAAAADSR0MDE2NzY3MTY4NTkAAAACXzIEAAAABGRhdGUIBQAAAA0kdDAxNjc2NzE2ODU5AAAAAl8zBAAAAAppc1ZhbGlkTkZUCAUAAAANJHQwMTY3NjcxNjg1OQAAAAJfNAQAAAAFYXJ0SWQIBQAAAA0kdDAxNjc2NzE2ODU5AAAAAl81BAAAAAtjcmVhdG9yQWRkcggFAAAADSR0MDE2NzY3MTY4NTkAAAACXzYEAAAACWFydFNpZ25JRAgFAAAADSR0MDE2NzY3MTY4NTkAAAACXzcDCQEAAAABIQAAAAEFAAAACmlzVmFsaWRORlQJAAACAAAAAQIAAAAPTm90IGEgdmFsaWQgbmZ0BAAAAAlzYWxlT3duZXIJAQAAABVnZXRTYWxlT3duZXJBbmRTdGF0dXMAAAABBQAAAAVuZnRJZAMJAQAAAAIhPQAAAAIFAAAABmNhbGxlcgUAAAAJc2FsZU93bmVyCQAAAgAAAAECAAAAIE9ubHkgc2FsZSBvd25lciBjYW4gYWNjZXB0IG9mZmVyBAAAAAZiaWRLZXkJAQAAAAlnZXRCaWRLZXkAAAAEBQAAAApvZmZlck93bmVyBQAAAAVuZnRJZAUAAAAJc2FsZU93bmVyBQAAAAdvZmZlcklkBAAAAA0kdDAxNzExMzE3MTY4CQEAAAAKZ2V0QmlkRGF0YQAAAAEFAAAABmJpZEtleQQAAAAKYmlkRGF0YUFycggFAAAADSR0MDE3MTEzMTcxNjgAAAACXzEEAAAAB2Fzc2V0SWQIBQAAAA0kdDAxNzExMzE3MTY4AAAAAl8yBAAAAAdiaWREYXRhCAUAAAANJHQwMTcxMTMxNzE2OAAAAAJfMwQAAAAHc2FsZUtleQkBAAAACmdldFNhbGVLZXkAAAAEBQAAAAlzYWxlT3duZXIFAAAABW5mdElkBQAAAAVhcnRJZAUAAAALY3JlYXRvckFkZHIEAAAACHNhbGVJbmZvCQEAAAAJZ2V0U3RyQnlLAAAAAQkAASwAAAACBQAAAAdzYWxlS2V5AgAAAAVfT1BFTgMJAAAAAAAA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", "height": 1937461, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 6Dr21qBzTkXzyFZxtsfNaXWRgENG1nZGtP58oPHm5TXv Next: 4CJtpADESBy9AqfrcAqKgRsZonsyqcpsvw5wzRrvf8uw Diff:
OldNewDifferences
8585 func keyArtistAgentAddr (artistAddr) = ("artist_agent_" + artistAddr)
8686
8787
88-func keySecondaryShare (artistAddr) = ("artist_agent_secondary" + artistAddr)
88+func keySecondaryShare (artistAddr) = ("artist_agent_secondary_" + artistAddr)
8989
9090
9191 func idCallerDate (i) = if (!(dappRunning))
213213 else false)
214214 then fraction(amount, agentShare, 100)
215215 else 0
216- let signFee = ScriptTransfer(Address(fromBase58String(feeReceiver)), (amountForSign - amountForAgent), assetId)
217- let agentFee = ScriptTransfer(Address(fromBase58String(agent)), amountForAgent, assetId)
216+ let commissions = if ((amountForAgent != 0))
217+ then [ScriptTransfer(Address(fromBase58String(feeReceiver)), (amountForSign - amountForAgent), assetId), ScriptTransfer(Address(fromBase58String(agent)), amountForAgent, assetId)]
218+ else [ScriptTransfer(Address(fromBase58String(feeReceiver)), amountForSign, assetId)]
218219 let creatorFee = ScriptTransfer(Address(fromBase58String(creatorAddr)), amountForCreator, assetId)
219220 let ownerFee = ScriptTransfer(Address(fromBase58String(saleOwner)), amountForOwner, assetId)
220221 let collectorNFT = ScriptTransfer(Address(fromBase58String(caller)), 1, fromBase58String(nftid))
221- $Tuple5(signFee, creatorFee, ownerFee, collectorNFT, agentFee)
222+ $Tuple4(commissions, creatorFee, ownerFee, collectorNFT)
222223 }
223224
224225
255256
256257
257258 func provideBaseData (i,nftId) = {
258- let $t093499388 = idCallerDate(i)
259- let id = $t093499388._1
260- let caller = $t093499388._2
261- let date = $t093499388._3
262- let $t093919460 = checkNFTInfo(nftId)
263- let isValidNFT = $t093919460._1
264- let artId = $t093919460._2
265- let creatorAddr = $t093919460._3
266- let artSignID = $t093919460._4
259+ let $t097339772 = idCallerDate(i)
260+ let id = $t097339772._1
261+ let caller = $t097339772._2
262+ let date = $t097339772._3
263+ let $t097759844 = checkNFTInfo(nftId)
264+ let isValidNFT = $t097759844._1
265+ let artId = $t097759844._2
266+ let creatorAddr = $t097759844._3
267+ let artSignID = $t097759844._4
267268 $Tuple7(id, caller, date, isValidNFT, artId, creatorAddr, artSignID)
268269 }
269270
287288
288289 @Callable(i)
289290 func sellNFT (price,asset) = {
290- let $t01017310209 = isPayment(i)
291- let payment = $t01017310209._1
292- let amount = $t01017310209._2
291+ let $t01055710593 = isPayment(i)
292+ let payment = $t01055710593._1
293+ let amount = $t01055710593._2
293294 if ((amount != 1))
294295 then throw("No NFT attached")
295296 else {
298299 else false)
299300 then toBase58String(value(payment.assetId))
300301 else throw("Only SIGN Art NFT accepted.")
301- let $t01044310535 = provideBaseData(i, nftId)
302- let id = $t01044310535._1
303- let caller = $t01044310535._2
304- let date = $t01044310535._3
305- let isValidNFT = $t01044310535._4
306- let artId = $t01044310535._5
307- let creatorAddr = $t01044310535._6
308- let artSignID = $t01044310535._7
302+ let $t01082710919 = provideBaseData(i, nftId)
303+ let id = $t01082710919._1
304+ let caller = $t01082710919._2
305+ let date = $t01082710919._3
306+ let isValidNFT = $t01082710919._4
307+ let artId = $t01082710919._5
308+ let creatorAddr = $t01082710919._6
309+ let artSignID = $t01082710919._7
309310 if ((size(artSignID) == 0))
310311 then throw("Artwork not found on SIGN Art")
311312 else if (!(isValidNFT))
322323
323324 @Callable(i)
324325 func updateSalePrice (nftId,price,asset) = {
325- let $t01140911501 = provideBaseData(i, nftId)
326- let id = $t01140911501._1
327- let caller = $t01140911501._2
328- let date = $t01140911501._3
329- let isValidNFT = $t01140911501._4
330- let artId = $t01140911501._5
331- let creatorAddr = $t01140911501._6
332- let artSignID = $t01140911501._7
326+ let $t01179311885 = provideBaseData(i, nftId)
327+ let id = $t01179311885._1
328+ let caller = $t01179311885._2
329+ let date = $t01179311885._3
330+ let isValidNFT = $t01179311885._4
331+ let artId = $t01179311885._5
332+ let creatorAddr = $t01179311885._6
333+ let artSignID = $t01179311885._7
333334 if ((size(artSignID) == 0))
334335 then throw("Artwork not found on SIGN Art, cancel your sale.")
335336 else if (!(isValidNFT))
359360
360361 @Callable(i)
361362 func cancelSale (nftId) = {
362- let $t01264312883 = provideBaseData(i, nftId)
363- let id = $t01264312883._1
364- let caller = $t01264312883._2
365- let date = $t01264312883._3
366- let isValidNFT = $t01264312883._4
367- let artId = $t01264312883._5
368- let creatorAddr = $t01264312883._6
369- let artSignID = $t01264312883._7
363+ let $t01302713267 = provideBaseData(i, nftId)
364+ let id = $t01302713267._1
365+ let caller = $t01302713267._2
366+ let date = $t01302713267._3
367+ let isValidNFT = $t01302713267._4
368+ let artId = $t01302713267._5
369+ let creatorAddr = $t01302713267._6
370+ let artSignID = $t01302713267._7
370371 let saleOwner = getStrByK(("current_owner_on_dapp_" + nftId))
371372 if ((saleOwner != caller))
372373 then throw("You don't own this NFT")
386387
387388 @Callable(i)
388389 func buyNFT (nftId) = {
389- let $t01371413806 = provideBaseData(i, nftId)
390- let id = $t01371413806._1
391- let caller = $t01371413806._2
392- let date = $t01371413806._3
393- let isValidNFT = $t01371413806._4
394- let artId = $t01371413806._5
395- let creatorAddr = $t01371413806._6
396- let artSignID = $t01371413806._7
390+ let $t01409814190 = provideBaseData(i, nftId)
391+ let id = $t01409814190._1
392+ let caller = $t01409814190._2
393+ let date = $t01409814190._3
394+ let isValidNFT = $t01409814190._4
395+ let artId = $t01409814190._5
396+ let creatorAddr = $t01409814190._6
397+ let artSignID = $t01409814190._7
397398 if ((size(artSignID) == 0))
398399 then throw("Artwork not found on SIGN Art, cancel your sale.")
399400 else if (!(isValidNFT))
409410 if ((parseInt(saleInfoArray[1]) == 0))
410411 then throw("Offer only")
411412 else {
412- let $t01430314339 = isPayment(i)
413- let payment = $t01430314339._1
414- let amount = $t01430314339._2
413+ let $t01468714723 = isPayment(i)
414+ let payment = $t01468714723._1
415+ let amount = $t01468714723._2
415416 let paymentAssetStr = if (isDefined(payment.assetId))
416417 then toBase58String(value(payment.assetId))
417418 else ""
420421 else (saleInfoArray[2] != paymentAssetStr))
421422 then throw("Payment infos don't match.")
422423 else {
423- let $t01484514983 = setTransfers(amount, payment.assetId, nftId, creatorAddr, saleOwner, caller)
424- let signFee = $t01484514983._1
425- let creatorFee = $t01484514983._2
426- let ownerFee = $t01484514983._3
427- let collectorNFT = $t01484514983._4
428- let agentFee = $t01484514983._5
429-[DeleteEntry((saleKey + "_OPEN")), DeleteEntry(((("sale2nd_status_" + saleOwner) + "_") + nftId)), DeleteEntry(("current_owner_on_dapp_" + nftId)), StringEntry((((saleKey + "_") + id) + "_CLOSED"), ((((((saleInfo + "_CLOSED_") + toString(date)) + "_") + id) + "_") + caller)), updateNumSales(), signFee, creatorFee, ownerFee, collectorNFT, agentFee]
424+ let $t01522915361 = setTransfers(amount, payment.assetId, nftId, creatorAddr, saleOwner, caller)
425+ let commissions = $t01522915361._1
426+ let creatorFee = $t01522915361._2
427+ let ownerFee = $t01522915361._3
428+ let collectorNFT = $t01522915361._4
429+ ([DeleteEntry((saleKey + "_OPEN")), DeleteEntry(((("sale2nd_status_" + saleOwner) + "_") + nftId)), DeleteEntry(("current_owner_on_dapp_" + nftId)), StringEntry((((saleKey + "_") + id) + "_CLOSED"), ((((((saleInfo + "_CLOSED_") + toString(date)) + "_") + id) + "_") + caller)), updateNumSales(), creatorFee, ownerFee, collectorNFT] ++ commissions)
430430 }
431431 }
432432 }
437437
438438 @Callable(i)
439439 func setOffer (nftId) = {
440- let $t01540115497 = provideBaseData(i, nftId)
441- let id = $t01540115497._1
442- let offerOwner = $t01540115497._2
443- let date = $t01540115497._3
444- let isValidNFT = $t01540115497._4
445- let artId = $t01540115497._5
446- let creatorAddr = $t01540115497._6
447- let artSignID = $t01540115497._7
440+ let $t01577215868 = provideBaseData(i, nftId)
441+ let id = $t01577215868._1
442+ let offerOwner = $t01577215868._2
443+ let date = $t01577215868._3
444+ let isValidNFT = $t01577215868._4
445+ let artId = $t01577215868._5
446+ let creatorAddr = $t01577215868._6
447+ let artSignID = $t01577215868._7
448448 if (!(isValidNFT))
449449 then throw("Not a valid nft")
450450 else {
451- let $t01555815594 = isPayment(i)
452- let payment = $t01555815594._1
453- let amount = $t01555815594._2
451+ let $t01592915965 = isPayment(i)
452+ let payment = $t01592915965._1
453+ let amount = $t01592915965._2
454454 let assetId = if (!(isDefined(payment.assetId)))
455455 then "WAVES"
456456 else toBase58String(value(payment.assetId))
471471
472472 @Callable(i)
473473 func acceptOffer (nftId,offerId,offerOwner) = {
474- let $t01639616488 = provideBaseData(i, nftId)
475- let id = $t01639616488._1
476- let caller = $t01639616488._2
477- let date = $t01639616488._3
478- let isValidNFT = $t01639616488._4
479- let artId = $t01639616488._5
480- let creatorAddr = $t01639616488._6
481- let artSignID = $t01639616488._7
474+ let $t01676716859 = provideBaseData(i, nftId)
475+ let id = $t01676716859._1
476+ let caller = $t01676716859._2
477+ let date = $t01676716859._3
478+ let isValidNFT = $t01676716859._4
479+ let artId = $t01676716859._5
480+ let creatorAddr = $t01676716859._6
481+ let artSignID = $t01676716859._7
482482 if (!(isValidNFT))
483483 then throw("Not a valid nft")
484484 else {
487487 then throw("Only sale owner can accept offer")
488488 else {
489489 let bidKey = getBidKey(offerOwner, nftId, saleOwner, offerId)
490- let $t01674216797 = getBidData(bidKey)
491- let bidDataArr = $t01674216797._1
492- let assetId = $t01674216797._2
493- let bidData = $t01674216797._3
490+ let $t01711317168 = getBidData(bidKey)
491+ let bidDataArr = $t01711317168._1
492+ let assetId = $t01711317168._2
493+ let bidData = $t01711317168._3
494494 let saleKey = getSaleKey(saleOwner, nftId, artId, creatorAddr)
495495 let saleInfo = getStrByK((saleKey + "_OPEN"))
496496 if ((size(saleInfo) == 0))
497497 then throw("Sale Not found!")
498498 else {
499499 let amount = value(parseInt(bidDataArr[1]))
500- let $t01703317170 = setTransfers(amount, assetId, nftId, creatorAddr, saleOwner, bidDataArr[6])
501- let signFee = $t01703317170._1
502- let creatorFee = $t01703317170._2
503- let ownerFee = $t01703317170._3
504- let collectorNFT = $t01703317170._4
505- let agentFee = $t01703317170._5
500+ let $t01740417535 = setTransfers(amount, assetId, nftId, creatorAddr, saleOwner, bidDataArr[6])
501+ let commissions = $t01740417535._1
502+ let creatorFee = $t01740417535._2
503+ let ownerFee = $t01740417535._3
504+ let collectorNFT = $t01740417535._4
506505 let assetIdStr = if (isDefined(assetId))
507506 then toBase58String(value(assetId))
508507 else "WAVES"
509-[DeleteEntry((saleKey + "_OPEN")), DeleteEntry((bidKey + "_OPEN")), DeleteEntry(((("sale2nd_status_" + saleOwner) + "_") + nftId)), DeleteEntry(("current_owner_on_dapp_" + nftId)), StringEntry((bidKey + "_CLOSED"), ((((bidData + "_CLOSED_") + toString(date)) + "_") + id)), StringEntry((((saleKey + "_") + id) + "_CLOSED"), ((((((((((saleInfo + "_CLOSED-OFFER_") + toString(date)) + "_") + id) + "_") + offerOwner) + "_") + toString(amount)) + "_") + assetIdStr)), updateNumSales(), signFee, creatorFee, ownerFee, collectorNFT, agentFee]
508+ ([DeleteEntry((saleKey + "_OPEN")), DeleteEntry((bidKey + "_OPEN")), DeleteEntry(((("sale2nd_status_" + saleOwner) + "_") + nftId)), DeleteEntry(("current_owner_on_dapp_" + nftId)), StringEntry((bidKey + "_CLOSED"), ((((bidData + "_CLOSED_") + toString(date)) + "_") + id)), StringEntry((((saleKey + "_") + id) + "_CLOSED"), ((((((((((saleInfo + "_CLOSED-OFFER_") + toString(date)) + "_") + id) + "_") + offerOwner) + "_") + toString(amount)) + "_") + assetIdStr)), updateNumSales(), creatorFee, ownerFee, collectorNFT] ++ commissions)
510509 }
511510 }
512511 }
516515
517516 @Callable(i)
518517 func cancelOffer (nftId,offerId,offerOwner,saleOwner) = {
519- let $t01797718049 = idCallerDate(i)
520- let id = $t01797718049._1
521- let caller = $t01797718049._2
522- let date = $t01797718049._3
518+ let $t01833518407 = idCallerDate(i)
519+ let id = $t01833518407._1
520+ let caller = $t01833518407._2
521+ let date = $t01833518407._3
523522 if (if ((caller != offerOwner))
524523 then (caller != saleOwner)
525524 else false)
526525 then throw("You cannot cancel this offer.")
527526 else {
528527 let bidKey = getBidKey(offerOwner, nftId, saleOwner, offerId)
529- let $t01822118276 = getBidData(bidKey)
530- let bidDataArr = $t01822118276._1
531- let assetId = $t01822118276._2
532- let bidData = $t01822118276._3
528+ let $t01857918634 = getBidData(bidKey)
529+ let bidDataArr = $t01857918634._1
530+ let assetId = $t01857918634._2
531+ let bidData = $t01857918634._3
533532 [DeleteEntry((bidKey + "_OPEN")), StringEntry((bidKey + "_CANCELLED"), ((((bidData + "_CANCELLED_") + toString(date)) + "_") + id)), ScriptTransfer(Address(fromBase58String(caller)), parseIntValue(bidDataArr[1]), assetId)]
534533 }
535534 }
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let unitTest = false
55
66 let oracleFee = value(addressFromString("3N2s5RtaHPBenCsx2ECcoFRbYHx3noZhXW1"))
77
88 let signDapp = value(addressFromString("3NC28hSivrmsTUXaYD1x6L362J4ZpUnoTdB"))
99
1010 let artworksDapp = value(addressFromString("3NBynfbXC2KastUxhukcMUaE58K9cBdB9UY"))
1111
1212 let feeReceiver = "3N1E6tXddRoVaRfQ9dQ3vg5LaW2fsd8HKub"
1313
1414 let userDapp = if (unitTest)
1515 then value(addressFromString("3Mt4RGMEyjSWYAocTPqd55wdHQQB3PU2UCm"))
1616 else value(addressFromString("3N8xXaYjE27Aa79d5hHrhHu9HaFoTBmhDEj"))
1717
1818 let whitelistDapp = value(addressFromString("3N6BaV1dCB4zg43goNNHaCtvR13BcyJ5Gsq"))
1919
2020 let signAssetId = base58'Gf9t8FA4H3ssoZPCwrg3KwUFCci8zuUFP9ssRsUY3s6a'
2121
2222 let usdnAssetId = base58'25FEqEjRkqK6yCkiT7Lz6SAYz7gUFCtxfCChnrVFD5AT'
2323
2424 let wavesAssetId = base58''
2525
2626 let chris = "3MsG6jPNCrVJUtYB7XJBxS7utWsXAf4n9Vp"
2727
2828 let signCut = 3
2929
3030 let creatorCut = 10
3131
3232 let userSuspended = "SUSPENDED"
3333
3434 let userRemoved = "REMOVED"
3535
3636 let artIllegal = "ILLEGAL"
3737
3838 let artSuspended = "SUSPENDED"
3939
4040 let dappRunningKey = "conf_dapp_is_running"
4141
4242 let maintenanceMSGKey = "conf_maintenance_msg"
4343
4444 let dappRunning = valueOrElse(getBoolean(this, dappRunningKey), true)
4545
4646 let maintenanceMSG = valueOrElse(getString(this, maintenanceMSGKey), "")
4747
4848 let numSalesK = "num_sales"
4949
5050 func getUserStrByK (key) = valueOrElse(getString(userDapp, key), "Error")
5151
5252
5353 func getArtStrByK (key) = valueOrElse(getString(artworksDapp, key), "")
5454
5555
5656 func getStrByK (key) = valueOrElse(getString(this, key), "")
5757
5858
5959 func getIntByK (key) = valueOrElse(getInteger(this, key), 0)
6060
6161
6262 func keyUserStatus (addr) = ("user_status_" + addr)
6363
6464
6565 func keySignID (artistAddr,artId) = ((("art_signid_" + artId) + "_") + artistAddr)
6666
6767
6868 func keyFlag (artistAddr,artId) = ((("art_flag_" + artId) + "_") + artistAddr)
6969
7070
7171 func keyNFTData (id) = ("nft_" + id)
7272
7373
7474 func getSaleKey (caller,nftId,artId,creatorAddr) = ((((((("sale2nd_info_" + caller) + "_") + nftId) + "_") + artId) + "_") + creatorAddr)
7575
7676
7777 func getBidKey (offerOwner,nftId,saleOwner,offerId) = ((((((("offer2nd_" + offerOwner) + "_") + nftId) + "_") + saleOwner) + "_") + offerId)
7878
7979
8080 func getIntByKFromOracle (key) = valueOrErrorMessage(getInteger(oracleFee, key), "Integer undefine or 0 in oracle")
8181
8282
8383 let currentCertificationPrice = getIntByKFromOracle(("certification_fee_" + toBase58String(signAssetId)))
8484
8585 func keyArtistAgentAddr (artistAddr) = ("artist_agent_" + artistAddr)
8686
8787
88-func keySecondaryShare (artistAddr) = ("artist_agent_secondary" + artistAddr)
88+func keySecondaryShare (artistAddr) = ("artist_agent_secondary_" + artistAddr)
8989
9090
9191 func idCallerDate (i) = if (!(dappRunning))
9292 then throw(maintenanceMSG)
9393 else $Tuple3(toBase58String(i.transactionId), toBase58String(i.caller.bytes), lastBlock.timestamp)
9494
9595
9696 func isPayment (i) = if ((size(i.payments) == 0))
9797 then throw("No payment attached")
9898 else {
9999 let payment = value(i.payments[0])
100100 let amount = value(payment.amount)
101101 $Tuple2(payment, amount)
102102 }
103103
104104
105105 func assetIsValid (assetDetails) = if (if (if ((assetDetails.quantity == 1))
106106 then (assetDetails.decimals == 0)
107107 else false)
108108 then (assetDetails.reissuable == false)
109109 else false)
110110 then (assetDetails.issuer == artworksDapp)
111111 else false
112112
113113
114114 func isSignArtNFT (id) = {
115115 let assetDetails = value(assetInfo(id))
116116 assetIsValid(assetDetails)
117117 }
118118
119119
120120 func acceptedAssetIds (assetId) = if (if (if (if ((assetId != toBase58String(signAssetId)))
121121 then (assetId != toBase58String(wavesAssetId))
122122 else false)
123123 then (assetId != "WAVES")
124124 else false)
125125 then (assetId != toBase58String(usdnAssetId))
126126 else false)
127127 then false
128128 else true
129129
130130
131131 func getBidAssetId (assetId) = if ((assetId == "WAVES"))
132132 then unit
133133 else fromBase58String(assetId)
134134
135135
136136 func getSaleOwnerAndStatus (nftid) = {
137137 let saleOwner = getStrByK(("current_owner_on_dapp_" + nftid))
138138 if ((size(saleOwner) == 0))
139139 then throw("NFT not found")
140140 else {
141141 let saleStatus = getStrByK(((("sale2nd_status_" + saleOwner) + "_") + nftid))
142142 if ((saleStatus != "OPEN"))
143143 then throw("NFT not for sale")
144144 else saleOwner
145145 }
146146 }
147147
148148
149149 func getBidData (key) = {
150150 let bidData = getStrByK((key + "_OPEN"))
151151 if ((bidData == ""))
152152 then throw("Offer not found")
153153 else {
154154 let bidDataArr = split(bidData, "_")
155155 let assetId = getBidAssetId(bidDataArr[2])
156156 $Tuple3(bidDataArr, assetId, bidData)
157157 }
158158 }
159159
160160
161161 func artIsValid (artStatus) = if ((artStatus != artIllegal))
162162 then (artStatus != artSuspended)
163163 else false
164164
165165
166166 func checkArtStatus (addr,id) = {
167167 let artStatus = getArtStrByK(keyFlag(addr, id))
168168 if (artIsValid(artStatus))
169169 then true
170170 else throw(("Original Artwork flagged as " + artStatus))
171171 }
172172
173173
174174 func checkArtistStatus (addr) = {
175175 let artistStatus = getUserStrByK(keyUserStatus(addr))
176176 if (containsElement([userSuspended, userRemoved], artistStatus))
177177 then throw(("Original Artist " + artistStatus))
178178 else true
179179 }
180180
181181
182182 func checkNFTInfo (assetId) = {
183183 let nftData = split(getArtStrByK(keyNFTData(assetId)), "_")
184184 let artSignID = getArtStrByK(keySignID(nftData[6], nftData[5]))
185185 if (if (!(checkArtStatus(nftData[6], nftData[5])))
186186 then !(checkArtistStatus(nftData[6]))
187187 else false)
188188 then $Tuple4(false, nftData[5], nftData[6], artSignID)
189189 else $Tuple4(true, nftData[5], nftData[6], artSignID)
190190 }
191191
192192
193193 func checkARTExist (artId,creatorAddr) = {
194194 let artSignID = getArtStrByK(keySignID(creatorAddr, artId))
195195 if ((size(artSignID) == 0))
196196 then throw("Artwork not found on SIGN Art")
197197 else if (if (!(checkArtStatus(creatorAddr, artId)))
198198 then !(checkArtistStatus(creatorAddr))
199199 else false)
200200 then false
201201 else true
202202 }
203203
204204
205205 func setTransfers (amount,assetId,nftid,creatorAddr,saleOwner,caller) = {
206206 let agent = valueOrElse(getString(userDapp, keyArtistAgentAddr(creatorAddr)), feeReceiver)
207207 let agentShare = valueOrElse(getInteger(userDapp, keySecondaryShare(creatorAddr)), 0)
208208 let amountForSign = fraction(amount, signCut, 100)
209209 let amountForCreator = fraction(amount, creatorCut, 100)
210210 let amountForOwner = (amount - (amountForSign + amountForCreator))
211211 let amountForAgent = if (if ((agent != feeReceiver))
212212 then (agentShare > 0)
213213 else false)
214214 then fraction(amount, agentShare, 100)
215215 else 0
216- let signFee = ScriptTransfer(Address(fromBase58String(feeReceiver)), (amountForSign - amountForAgent), assetId)
217- let agentFee = ScriptTransfer(Address(fromBase58String(agent)), amountForAgent, assetId)
216+ let commissions = if ((amountForAgent != 0))
217+ then [ScriptTransfer(Address(fromBase58String(feeReceiver)), (amountForSign - amountForAgent), assetId), ScriptTransfer(Address(fromBase58String(agent)), amountForAgent, assetId)]
218+ else [ScriptTransfer(Address(fromBase58String(feeReceiver)), amountForSign, assetId)]
218219 let creatorFee = ScriptTransfer(Address(fromBase58String(creatorAddr)), amountForCreator, assetId)
219220 let ownerFee = ScriptTransfer(Address(fromBase58String(saleOwner)), amountForOwner, assetId)
220221 let collectorNFT = ScriptTransfer(Address(fromBase58String(caller)), 1, fromBase58String(nftid))
221- $Tuple5(signFee, creatorFee, ownerFee, collectorNFT, agentFee)
222+ $Tuple4(commissions, creatorFee, ownerFee, collectorNFT)
222223 }
223224
224225
225226 func validateMinSell (assetId,price) = {
226227 let minSellWaves = if (unitTest)
227228 then 10
228229 else getIntByKFromOracle("waves_min_sell")
229230 let minSellUsdn = 1000000
230231 let minSellSign = if (unitTest)
231232 then 1
232233 else (currentCertificationPrice * 2)
233234 if (if (if (if (if ((assetId == toBase58String(usdnAssetId)))
234235 then (minSellUsdn > price)
235236 else false)
236237 then (price != 0)
237238 else false)
238239 then true
239240 else if (if ((assetId == toBase58String(signAssetId)))
240241 then (minSellSign > price)
241242 else false)
242243 then (price != 0)
243244 else false)
244245 then true
245246 else if (if (if ((assetId == toBase58String(wavesAssetId)))
246247 then true
247248 else (assetId == "WAVES"))
248249 then (minSellWaves > price)
249250 else false)
250251 then (price != 0)
251252 else false)
252253 then false
253254 else true
254255 }
255256
256257
257258 func provideBaseData (i,nftId) = {
258- let $t093499388 = idCallerDate(i)
259- let id = $t093499388._1
260- let caller = $t093499388._2
261- let date = $t093499388._3
262- let $t093919460 = checkNFTInfo(nftId)
263- let isValidNFT = $t093919460._1
264- let artId = $t093919460._2
265- let creatorAddr = $t093919460._3
266- let artSignID = $t093919460._4
259+ let $t097339772 = idCallerDate(i)
260+ let id = $t097339772._1
261+ let caller = $t097339772._2
262+ let date = $t097339772._3
263+ let $t097759844 = checkNFTInfo(nftId)
264+ let isValidNFT = $t097759844._1
265+ let artId = $t097759844._2
266+ let creatorAddr = $t097759844._3
267+ let artSignID = $t097759844._4
267268 $Tuple7(id, caller, date, isValidNFT, artId, creatorAddr, artSignID)
268269 }
269270
270271
271272 func updateNumSales () = {
272273 let numSales = getIntByK(numSalesK)
273274 IntegerEntry(numSalesK, (numSales + 1))
274275 }
275276
276277
277278 @Callable(invoke)
278279 func appRunning (isLive,message) = {
279280 let caller = toString(addressFromPublicKey(invoke.callerPublicKey))
280281 let id = toBase58String(invoke.transactionId)
281282 if (containsElement([chris, toString(this)], caller))
282283 then [BooleanEntry(dappRunningKey, isLive), StringEntry(maintenanceMSGKey, message)]
283284 else throw("You are not allowed to change this")
284285 }
285286
286287
287288
288289 @Callable(i)
289290 func sellNFT (price,asset) = {
290- let $t01017310209 = isPayment(i)
291- let payment = $t01017310209._1
292- let amount = $t01017310209._2
291+ let $t01055710593 = isPayment(i)
292+ let payment = $t01055710593._1
293+ let amount = $t01055710593._2
293294 if ((amount != 1))
294295 then throw("No NFT attached")
295296 else {
296297 let nftId = if (if (isDefined(payment.assetId))
297298 then isSignArtNFT(value(payment.assetId))
298299 else false)
299300 then toBase58String(value(payment.assetId))
300301 else throw("Only SIGN Art NFT accepted.")
301- let $t01044310535 = provideBaseData(i, nftId)
302- let id = $t01044310535._1
303- let caller = $t01044310535._2
304- let date = $t01044310535._3
305- let isValidNFT = $t01044310535._4
306- let artId = $t01044310535._5
307- let creatorAddr = $t01044310535._6
308- let artSignID = $t01044310535._7
302+ let $t01082710919 = provideBaseData(i, nftId)
303+ let id = $t01082710919._1
304+ let caller = $t01082710919._2
305+ let date = $t01082710919._3
306+ let isValidNFT = $t01082710919._4
307+ let artId = $t01082710919._5
308+ let creatorAddr = $t01082710919._6
309+ let artSignID = $t01082710919._7
309310 if ((size(artSignID) == 0))
310311 then throw("Artwork not found on SIGN Art")
311312 else if (!(isValidNFT))
312313 then throw("Not a valid nft")
313314 else if (!(acceptedAssetIds(asset)))
314315 then throw("Only SIGN, USDN or WAVES accepted")
315316 else if (!(validateMinSell(asset, price)))
316317 then throw("Wrong minimum sell price")
317318 else [StringEntry((getSaleKey(caller, nftId, artId, creatorAddr) + "_OPEN"), ((((((((((((toString(date) + "_") + toString(price)) + "_") + asset) + "_") + nftId) + "_") + artId) + "_") + creatorAddr) + "_") + id)), StringEntry(((("sale2nd_status_" + caller) + "_") + nftId), "OPEN"), StringEntry(("current_owner_on_dapp_" + nftId), caller)]
318319 }
319320 }
320321
321322
322323
323324 @Callable(i)
324325 func updateSalePrice (nftId,price,asset) = {
325- let $t01140911501 = provideBaseData(i, nftId)
326- let id = $t01140911501._1
327- let caller = $t01140911501._2
328- let date = $t01140911501._3
329- let isValidNFT = $t01140911501._4
330- let artId = $t01140911501._5
331- let creatorAddr = $t01140911501._6
332- let artSignID = $t01140911501._7
326+ let $t01179311885 = provideBaseData(i, nftId)
327+ let id = $t01179311885._1
328+ let caller = $t01179311885._2
329+ let date = $t01179311885._3
330+ let isValidNFT = $t01179311885._4
331+ let artId = $t01179311885._5
332+ let creatorAddr = $t01179311885._6
333+ let artSignID = $t01179311885._7
333334 if ((size(artSignID) == 0))
334335 then throw("Artwork not found on SIGN Art, cancel your sale.")
335336 else if (!(isValidNFT))
336337 then throw("Not a valid nft")
337338 else {
338339 let saleOwner = getStrByK(("current_owner_on_dapp_" + nftId))
339340 if ((saleOwner != caller))
340341 then throw("You don't own this NFT")
341342 else {
342343 let saleStatus = getStrByK(((("sale2nd_status_" + caller) + "_") + nftId))
343344 if ((saleStatus != "OPEN"))
344345 then throw("Sale not active")
345346 else if (!(acceptedAssetIds(asset)))
346347 then throw("Only SIGN, USDN or WAVES accepted")
347348 else if (!(validateMinSell(asset, price)))
348349 then throw("Wrong minimum sell price")
349350 else {
350351 let saleKey = getSaleKey(caller, nftId, artId, creatorAddr)
351352 let saleInfo = split(getStrByK((saleKey + "_OPEN")), "_")
352353 [StringEntry((saleKey + "_OPEN"), ((((((((((((saleInfo[0] + "_") + toString(price)) + "_") + asset) + "_") + saleInfo[3]) + "_") + saleInfo[4]) + "_") + saleInfo[5]) + "_") + saleInfo[6]))]
353354 }
354355 }
355356 }
356357 }
357358
358359
359360
360361 @Callable(i)
361362 func cancelSale (nftId) = {
362- let $t01264312883 = provideBaseData(i, nftId)
363- let id = $t01264312883._1
364- let caller = $t01264312883._2
365- let date = $t01264312883._3
366- let isValidNFT = $t01264312883._4
367- let artId = $t01264312883._5
368- let creatorAddr = $t01264312883._6
369- let artSignID = $t01264312883._7
363+ let $t01302713267 = provideBaseData(i, nftId)
364+ let id = $t01302713267._1
365+ let caller = $t01302713267._2
366+ let date = $t01302713267._3
367+ let isValidNFT = $t01302713267._4
368+ let artId = $t01302713267._5
369+ let creatorAddr = $t01302713267._6
370+ let artSignID = $t01302713267._7
370371 let saleOwner = getStrByK(("current_owner_on_dapp_" + nftId))
371372 if ((saleOwner != caller))
372373 then throw("You don't own this NFT")
373374 else {
374375 let saleStatus = getStrByK(((("sale2nd_status_" + caller) + "_") + nftId))
375376 if ((saleStatus != "OPEN"))
376377 then throw("Sale not active")
377378 else {
378379 let saleKey = getSaleKey(caller, nftId, artId, creatorAddr)
379380 let saleInfo = getStrByK((saleKey + "_OPEN"))
380381 [DeleteEntry((saleKey + "_OPEN")), DeleteEntry(((("sale2nd_status_" + caller) + "_") + nftId)), DeleteEntry(("current_owner_on_dapp_" + nftId)), StringEntry((((saleKey + "_") + id) + "_CANCELLED"), ((((saleInfo + "_CANCELLED_") + toString(date)) + "_") + id)), ScriptTransfer(Address(fromBase58String(caller)), 1, fromBase58String(nftId))]
381382 }
382383 }
383384 }
384385
385386
386387
387388 @Callable(i)
388389 func buyNFT (nftId) = {
389- let $t01371413806 = provideBaseData(i, nftId)
390- let id = $t01371413806._1
391- let caller = $t01371413806._2
392- let date = $t01371413806._3
393- let isValidNFT = $t01371413806._4
394- let artId = $t01371413806._5
395- let creatorAddr = $t01371413806._6
396- let artSignID = $t01371413806._7
390+ let $t01409814190 = provideBaseData(i, nftId)
391+ let id = $t01409814190._1
392+ let caller = $t01409814190._2
393+ let date = $t01409814190._3
394+ let isValidNFT = $t01409814190._4
395+ let artId = $t01409814190._5
396+ let creatorAddr = $t01409814190._6
397+ let artSignID = $t01409814190._7
397398 if ((size(artSignID) == 0))
398399 then throw("Artwork not found on SIGN Art, cancel your sale.")
399400 else if (!(isValidNFT))
400401 then throw("Not a valid nft")
401402 else {
402403 let saleOwner = getSaleOwnerAndStatus(nftId)
403404 let saleKey = getSaleKey(saleOwner, nftId, artId, creatorAddr)
404405 let saleInfo = getStrByK((saleKey + "_OPEN"))
405406 if ((size(saleInfo) == 0))
406407 then throw("Sale Not found!")
407408 else {
408409 let saleInfoArray = split(saleInfo, "_")
409410 if ((parseInt(saleInfoArray[1]) == 0))
410411 then throw("Offer only")
411412 else {
412- let $t01430314339 = isPayment(i)
413- let payment = $t01430314339._1
414- let amount = $t01430314339._2
413+ let $t01468714723 = isPayment(i)
414+ let payment = $t01468714723._1
415+ let amount = $t01468714723._2
415416 let paymentAssetStr = if (isDefined(payment.assetId))
416417 then toBase58String(value(payment.assetId))
417418 else ""
418419 if (if ((saleInfoArray[1] != toString(amount)))
419420 then true
420421 else (saleInfoArray[2] != paymentAssetStr))
421422 then throw("Payment infos don't match.")
422423 else {
423- let $t01484514983 = setTransfers(amount, payment.assetId, nftId, creatorAddr, saleOwner, caller)
424- let signFee = $t01484514983._1
425- let creatorFee = $t01484514983._2
426- let ownerFee = $t01484514983._3
427- let collectorNFT = $t01484514983._4
428- let agentFee = $t01484514983._5
429-[DeleteEntry((saleKey + "_OPEN")), DeleteEntry(((("sale2nd_status_" + saleOwner) + "_") + nftId)), DeleteEntry(("current_owner_on_dapp_" + nftId)), StringEntry((((saleKey + "_") + id) + "_CLOSED"), ((((((saleInfo + "_CLOSED_") + toString(date)) + "_") + id) + "_") + caller)), updateNumSales(), signFee, creatorFee, ownerFee, collectorNFT, agentFee]
424+ let $t01522915361 = setTransfers(amount, payment.assetId, nftId, creatorAddr, saleOwner, caller)
425+ let commissions = $t01522915361._1
426+ let creatorFee = $t01522915361._2
427+ let ownerFee = $t01522915361._3
428+ let collectorNFT = $t01522915361._4
429+ ([DeleteEntry((saleKey + "_OPEN")), DeleteEntry(((("sale2nd_status_" + saleOwner) + "_") + nftId)), DeleteEntry(("current_owner_on_dapp_" + nftId)), StringEntry((((saleKey + "_") + id) + "_CLOSED"), ((((((saleInfo + "_CLOSED_") + toString(date)) + "_") + id) + "_") + caller)), updateNumSales(), creatorFee, ownerFee, collectorNFT] ++ commissions)
430430 }
431431 }
432432 }
433433 }
434434 }
435435
436436
437437
438438 @Callable(i)
439439 func setOffer (nftId) = {
440- let $t01540115497 = provideBaseData(i, nftId)
441- let id = $t01540115497._1
442- let offerOwner = $t01540115497._2
443- let date = $t01540115497._3
444- let isValidNFT = $t01540115497._4
445- let artId = $t01540115497._5
446- let creatorAddr = $t01540115497._6
447- let artSignID = $t01540115497._7
440+ let $t01577215868 = provideBaseData(i, nftId)
441+ let id = $t01577215868._1
442+ let offerOwner = $t01577215868._2
443+ let date = $t01577215868._3
444+ let isValidNFT = $t01577215868._4
445+ let artId = $t01577215868._5
446+ let creatorAddr = $t01577215868._6
447+ let artSignID = $t01577215868._7
448448 if (!(isValidNFT))
449449 then throw("Not a valid nft")
450450 else {
451- let $t01555815594 = isPayment(i)
452- let payment = $t01555815594._1
453- let amount = $t01555815594._2
451+ let $t01592915965 = isPayment(i)
452+ let payment = $t01592915965._1
453+ let amount = $t01592915965._2
454454 let assetId = if (!(isDefined(payment.assetId)))
455455 then "WAVES"
456456 else toBase58String(value(payment.assetId))
457457 if (!(acceptedAssetIds(assetId)))
458458 then throw("asset not accepted")
459459 else if ((amount == 0))
460460 then throw("Offer of 0 not allowed")
461461 else if (!(validateMinSell(assetId, amount)))
462462 then throw("Wrong minimum sell price")
463463 else {
464464 let saleOwner = getSaleOwnerAndStatus(nftId)
465465 [StringEntry((getBidKey(offerOwner, nftId, saleOwner, id) + "_OPEN"), ((((((((((((((toString(date) + "_") + toString(amount)) + "_") + assetId) + "_") + nftId) + "_") + artId) + "_") + creatorAddr) + "_") + offerOwner) + "_") + id))]
466466 }
467467 }
468468 }
469469
470470
471471
472472 @Callable(i)
473473 func acceptOffer (nftId,offerId,offerOwner) = {
474- let $t01639616488 = provideBaseData(i, nftId)
475- let id = $t01639616488._1
476- let caller = $t01639616488._2
477- let date = $t01639616488._3
478- let isValidNFT = $t01639616488._4
479- let artId = $t01639616488._5
480- let creatorAddr = $t01639616488._6
481- let artSignID = $t01639616488._7
474+ let $t01676716859 = provideBaseData(i, nftId)
475+ let id = $t01676716859._1
476+ let caller = $t01676716859._2
477+ let date = $t01676716859._3
478+ let isValidNFT = $t01676716859._4
479+ let artId = $t01676716859._5
480+ let creatorAddr = $t01676716859._6
481+ let artSignID = $t01676716859._7
482482 if (!(isValidNFT))
483483 then throw("Not a valid nft")
484484 else {
485485 let saleOwner = getSaleOwnerAndStatus(nftId)
486486 if ((caller != saleOwner))
487487 then throw("Only sale owner can accept offer")
488488 else {
489489 let bidKey = getBidKey(offerOwner, nftId, saleOwner, offerId)
490- let $t01674216797 = getBidData(bidKey)
491- let bidDataArr = $t01674216797._1
492- let assetId = $t01674216797._2
493- let bidData = $t01674216797._3
490+ let $t01711317168 = getBidData(bidKey)
491+ let bidDataArr = $t01711317168._1
492+ let assetId = $t01711317168._2
493+ let bidData = $t01711317168._3
494494 let saleKey = getSaleKey(saleOwner, nftId, artId, creatorAddr)
495495 let saleInfo = getStrByK((saleKey + "_OPEN"))
496496 if ((size(saleInfo) == 0))
497497 then throw("Sale Not found!")
498498 else {
499499 let amount = value(parseInt(bidDataArr[1]))
500- let $t01703317170 = setTransfers(amount, assetId, nftId, creatorAddr, saleOwner, bidDataArr[6])
501- let signFee = $t01703317170._1
502- let creatorFee = $t01703317170._2
503- let ownerFee = $t01703317170._3
504- let collectorNFT = $t01703317170._4
505- let agentFee = $t01703317170._5
500+ let $t01740417535 = setTransfers(amount, assetId, nftId, creatorAddr, saleOwner, bidDataArr[6])
501+ let commissions = $t01740417535._1
502+ let creatorFee = $t01740417535._2
503+ let ownerFee = $t01740417535._3
504+ let collectorNFT = $t01740417535._4
506505 let assetIdStr = if (isDefined(assetId))
507506 then toBase58String(value(assetId))
508507 else "WAVES"
509-[DeleteEntry((saleKey + "_OPEN")), DeleteEntry((bidKey + "_OPEN")), DeleteEntry(((("sale2nd_status_" + saleOwner) + "_") + nftId)), DeleteEntry(("current_owner_on_dapp_" + nftId)), StringEntry((bidKey + "_CLOSED"), ((((bidData + "_CLOSED_") + toString(date)) + "_") + id)), StringEntry((((saleKey + "_") + id) + "_CLOSED"), ((((((((((saleInfo + "_CLOSED-OFFER_") + toString(date)) + "_") + id) + "_") + offerOwner) + "_") + toString(amount)) + "_") + assetIdStr)), updateNumSales(), signFee, creatorFee, ownerFee, collectorNFT, agentFee]
508+ ([DeleteEntry((saleKey + "_OPEN")), DeleteEntry((bidKey + "_OPEN")), DeleteEntry(((("sale2nd_status_" + saleOwner) + "_") + nftId)), DeleteEntry(("current_owner_on_dapp_" + nftId)), StringEntry((bidKey + "_CLOSED"), ((((bidData + "_CLOSED_") + toString(date)) + "_") + id)), StringEntry((((saleKey + "_") + id) + "_CLOSED"), ((((((((((saleInfo + "_CLOSED-OFFER_") + toString(date)) + "_") + id) + "_") + offerOwner) + "_") + toString(amount)) + "_") + assetIdStr)), updateNumSales(), creatorFee, ownerFee, collectorNFT] ++ commissions)
510509 }
511510 }
512511 }
513512 }
514513
515514
516515
517516 @Callable(i)
518517 func cancelOffer (nftId,offerId,offerOwner,saleOwner) = {
519- let $t01797718049 = idCallerDate(i)
520- let id = $t01797718049._1
521- let caller = $t01797718049._2
522- let date = $t01797718049._3
518+ let $t01833518407 = idCallerDate(i)
519+ let id = $t01833518407._1
520+ let caller = $t01833518407._2
521+ let date = $t01833518407._3
523522 if (if ((caller != offerOwner))
524523 then (caller != saleOwner)
525524 else false)
526525 then throw("You cannot cancel this offer.")
527526 else {
528527 let bidKey = getBidKey(offerOwner, nftId, saleOwner, offerId)
529- let $t01822118276 = getBidData(bidKey)
530- let bidDataArr = $t01822118276._1
531- let assetId = $t01822118276._2
532- let bidData = $t01822118276._3
528+ let $t01857918634 = getBidData(bidKey)
529+ let bidDataArr = $t01857918634._1
530+ let assetId = $t01857918634._2
531+ let bidData = $t01857918634._3
533532 [DeleteEntry((bidKey + "_OPEN")), StringEntry((bidKey + "_CANCELLED"), ((((bidData + "_CANCELLED_") + toString(date)) + "_") + id)), ScriptTransfer(Address(fromBase58String(caller)), parseIntValue(bidDataArr[1]), assetId)]
534533 }
535534 }
536535
537536

github/deemru/w8io/3ef1775 
130.45 ms