tx · CRvKzGEymcewArLXX3WBr8mbTUkgsL4zqwKiTefCUZ7m

3N2eA4yzXa4wTj7pP8r6G144RRxZW7cmq4p:  -0.01400000 Waves

2022.01.27 13:01 [1897218] smart account 3N2eA4yzXa4wTj7pP8r6G144RRxZW7cmq4p > SELF 0.00000000 Waves

{ "type": 13, "id": "CRvKzGEymcewArLXX3WBr8mbTUkgsL4zqwKiTefCUZ7m", "fee": 1400000, "feeAssetId": null, "timestamp": 1643277722400, "version": 2, "chainId": 84, "sender": "3N2eA4yzXa4wTj7pP8r6G144RRxZW7cmq4p", "senderPublicKey": "Hh3eFP2XFetZSfTxQiM1Ps96f68zi8Zh5ghhCZdjgdFs", "proofs": [ "3qySYesk3zaDrs78GqRtZNWNmRVsHx14jZeagf3gFcFCwGCX6oHVrF2qNPXbrCF3YFpA9bk7NGH8UyUN6GCdjw5H" ], "script": "base64:AAIFAAAAAAAAADIIAhIECgIECBIECgIBCBIFCgMIAQgSAwoBCBIDCgEIEgMKAQgSBQoDCAgIEgUKAwgICAAAADMAAAAACHVuaXRUZXN0BwAAAAAJb3JhY2xlRmVlCQEAAAAFdmFsdWUAAAABCQAEJgAAAAECAAAAIzNOMnM1UnRhSFBCZW5Dc3gyRUNjb0ZSYllIeDNub1poWFcxAAAAAAhzaWduRGFwcAkBAAAABXZhbHVlAAAAAQkABCYAAAABAgAAACMzTkMyOGhTaXZybXNUVVhhWUQxeDZMMzYySjRacFVub1RkQgAAAAAMYXJ0d29ya3NEYXBwCQEAAAAFdmFsdWUAAAABCQAEJgAAAAECAAAAIzNOQnluZmJYQzJLYXN0VXhodWtjTVVhRTU4SzljQmRCOVVZAAAAAAtmZWVSZWNlaXZlcgIAAAAjM04xRTZ0WGRkUm9WYVJmUTlkUTN2ZzVMYVcyZnNkOEhLdWIAAAAACHVzZXJEYXBwAwUAAAAIdW5pdFRlc3QJAQAAAAV2YWx1ZQAAAAEJAAQmAAAAAQIAAAAjM010NFJHTUV5alNXWUFvY1RQcWQ1NXdkSFFRQjNQVTJVQ20JAQAAAAV2YWx1ZQAAAAEJAAQmAAAAAQIAAAAjM044eFhhWWpFMjdBYTc5ZDVoSHJoSHU5SGFGb1RCbWhERWoAAAAADXdoaXRlbGlzdERhcHAJAQAAAAV2YWx1ZQAAAAEJAAQmAAAAAQIAAAAjM042QmFWMWRDQjR6ZzQzZ29OTkhhQ3R2UjEzQmN5SjVHc3EAAAAAC3NpZ25Bc3NldElkAQAAACDopWq8yndC8nBhMjVKT0WDubke5ZlnF8Nx6tkLoQSt6wAAAAALdXNkbkFzc2V0SWQBAAAAIA/yHBKs5MQ8muxGGqslqLDsugcrRsxtiHLwteKSSQG0AAAAAAx3YXZlc0Fzc2V0SWQBAAAAAAAAAAAFY2hyaXMCAAAAIzNNc0c2alBOQ3JWSlV0WUI3WEpCeFM3dXRXc1hBZjRuOVZwAAAAAAdzaWduQ3V0AAAAAAAAAAADAAAAAApjcmVhdG9yQ3V0AAAAAAAAAAAKAAAAAA11c2VyU3VzcGVuZGVkAgAAAAlTVVNQRU5ERUQAAAAAC3VzZXJSZW1vdmVkAgAAAAdSRU1PVkVEAAAAAAphcnRJbGxlZ2Fs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AAAAAAAGBQAAAAlhcnRTaWduSUQBAAAADWNoZWNrQVJURXhpc3QAAAACAAAABWFydElkAAAAC2NyZWF0b3JBZGRyBAAAAAlhcnRTaWduSUQJAQAAAAxnZXRBcnRTdHJCeUsAAAABCQEAAAAJa2V5U2lnbklEAAAAAgUAAAALY3JlYXRvckFkZHIFAAAABWFydElkAwkAAAAAAAACCQABMQAAAAEFAAAACWFydFNpZ25JRAAAAAAAAAAAAAkAAAIAAAABAgAAAB1BcnR3b3JrIG5vdCBmb3VuZCBvbiBTSUdOIEFydAMDCQEAAAABIQAAAAEJAQAAAA5jaGVja0FydFN0YXR1cwAAAAIFAAAAC2NyZWF0b3JBZGRyBQAAAAVhcnRJZAkBAAAAASEAAAABCQEAAAARY2hlY2tBcnRpc3RTdGF0dXMAAAABBQAAAAtjcmVhdG9yQWRkcgcHBgEAAAAMc2V0VHJhbnNmZXJzAAAABgAAAAZhbW91bnQAAAAHYXNzZXRJZAAAAAVuZnRpZAAAAAtjcmVhdG9yQWRkcgAAAAlzYWxlT3duZXIAAAAGY2FsbGVyBAAAAA1hbW91bnRGb3JTaWduCQAAawAAAAMFAAAABmFtb3VudAUAAAAHc2lnbkN1dAAAAAAAAAAAZAQAAAAQYW1vdW50Rm9yQ3JlYXRvcgkAAGsAAAADBQAAAAZhbW91bnQFAAAACmNyZWF0b3JDdXQAAAAAAAAAAGQEAAAADmFtb3VudEZvck93bmVyCQAAZQAAAAIFAAAABmFtb3VudAkAAGQAAAACBQAAAA1hbW91bnRGb3JTaWduBQAAABBhbW91bnRGb3JDcmVhdG9yBAAAAAdzaWduRmVlCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAHQWRkcmVzcwAAAAEJAAJZAAAAAQUAAAALZmVlUmVjZWl2ZXIFAAAADWFtb3VudEZvclNpZ24FAAAAB2Fzc2V0SWQEAAAACmNyZWF0b3JGZWUJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABBQAAAAtjcmVhdG9yQWRkcgUAAAAQYW1vdW50Rm9yQ3JlYXRvcgUAAAAHYXNzZXRJZAQAAAAIb3duZXJGZWUJAQAAAA5TY3JpcHRUcmFuc2ZlcgAA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", "height": 1897218, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: BYfHbe3ZnUDTCmJvdv1kjEf2dB7skXZi4q3KRrm9kBMV Next: 2GSszNH86LhfLoYyqTX1i7Jg6qJ751hHq2M1SBWh5cY5 Diff:
OldNewDifferences
241241
242242
243243 func provideBaseData (i,nftId) = {
244- let $t085728611 = idCallerDate(i)
245- let id = $t085728611._1
246- let caller = $t085728611._2
247- let date = $t085728611._3
248- let $t086148683 = checkNFTInfo(nftId)
249- let isValidNFT = $t086148683._1
250- let artId = $t086148683._2
251- let creatorAddr = $t086148683._3
252- let artSignID = $t086148683._4
244+ let $t085778616 = idCallerDate(i)
245+ let id = $t085778616._1
246+ let caller = $t085778616._2
247+ let date = $t085778616._3
248+ let $t086198688 = checkNFTInfo(nftId)
249+ let isValidNFT = $t086198688._1
250+ let artId = $t086198688._2
251+ let creatorAddr = $t086198688._3
252+ let artSignID = $t086198688._4
253253 $Tuple7(id, caller, date, isValidNFT, artId, creatorAddr, artSignID)
254254 }
255255
273273
274274 @Callable(i)
275275 func sellNFT (price,asset) = {
276- let $t093969432 = isPayment(i)
277- let payment = $t093969432._1
278- let amount = $t093969432._2
276+ let $t094019437 = isPayment(i)
277+ let payment = $t094019437._1
278+ let amount = $t094019437._2
279279 let nftId = if (if (isDefined(payment.assetId))
280280 then isSignArtNFT(value(payment.assetId))
281281 else false)
282282 then toBase58String(value(payment.assetId))
283283 else throw("Only SIGN Art NFT accepted.")
284- let $t096119703 = provideBaseData(i, nftId)
285- let id = $t096119703._1
286- let caller = $t096119703._2
287- let date = $t096119703._3
288- let isValidNFT = $t096119703._4
289- let artId = $t096119703._5
290- let creatorAddr = $t096119703._6
291- let artSignID = $t096119703._7
284+ let $t096169708 = provideBaseData(i, nftId)
285+ let id = $t096169708._1
286+ let caller = $t096169708._2
287+ let date = $t096169708._3
288+ let isValidNFT = $t096169708._4
289+ let artId = $t096169708._5
290+ let creatorAddr = $t096169708._6
291+ let artSignID = $t096169708._7
292292 if ((size(artSignID) == 0))
293293 then throw("Artwork not found on SIGN Art")
294294 else if (!(isValidNFT))
295295 then throw("Not a valid nft")
296296 else if (!(acceptedAssetIds(asset)))
297297 then throw("Only SIGN, USDN or WAVES accepted")
298- else if ((price == 0))
298+ else if (!(validateMinSell(asset, price)))
299299 then throw("Wrong minimum sell price")
300- else if (!(validateMinSell(asset, price)))
301- then throw("Wrong minimum sell price")
302- 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)]
300+ 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)]
303301 }
304302
305303
306304
307305 @Callable(i)
308306 func updateSalePrice (nftId,price,asset) = {
309- let $t01057610668 = provideBaseData(i, nftId)
310- let id = $t01057610668._1
311- let caller = $t01057610668._2
312- let date = $t01057610668._3
313- let isValidNFT = $t01057610668._4
314- let artId = $t01057610668._5
315- let creatorAddr = $t01057610668._6
316- let artSignID = $t01057610668._7
307+ let $t01058210674 = provideBaseData(i, nftId)
308+ let id = $t01058210674._1
309+ let caller = $t01058210674._2
310+ let date = $t01058210674._3
311+ let isValidNFT = $t01058210674._4
312+ let artId = $t01058210674._5
313+ let creatorAddr = $t01058210674._6
314+ let artSignID = $t01058210674._7
317315 if ((size(artSignID) == 0))
318316 then throw("Artwork not found on SIGN Art, cancel your sale.")
319317 else if (!(isValidNFT))
345343
346344 @Callable(i)
347345 func cancelSale (nftId) = {
348- let $t01180812048 = provideBaseData(i, nftId)
349- let id = $t01180812048._1
350- let caller = $t01180812048._2
351- let date = $t01180812048._3
352- let isValidNFT = $t01180812048._4
353- let artId = $t01180812048._5
354- let creatorAddr = $t01180812048._6
355- let artSignID = $t01180812048._7
346+ let $t01181412054 = provideBaseData(i, nftId)
347+ let id = $t01181412054._1
348+ let caller = $t01181412054._2
349+ let date = $t01181412054._3
350+ let isValidNFT = $t01181412054._4
351+ let artId = $t01181412054._5
352+ let creatorAddr = $t01181412054._6
353+ let artSignID = $t01181412054._7
356354 let saleOwner = getStrByK(("current_owner_on_dapp_" + nftId))
357355 if ((saleOwner != caller))
358356 then throw("You don't own this NFT")
372370
373371 @Callable(i)
374372 func buyNFT (nftId) = {
375- let $t01287912971 = provideBaseData(i, nftId)
376- let id = $t01287912971._1
377- let caller = $t01287912971._2
378- let date = $t01287912971._3
379- let isValidNFT = $t01287912971._4
380- let artId = $t01287912971._5
381- let creatorAddr = $t01287912971._6
382- let artSignID = $t01287912971._7
373+ let $t01288512977 = provideBaseData(i, nftId)
374+ let id = $t01288512977._1
375+ let caller = $t01288512977._2
376+ let date = $t01288512977._3
377+ let isValidNFT = $t01288512977._4
378+ let artId = $t01288512977._5
379+ let creatorAddr = $t01288512977._6
380+ let artSignID = $t01288512977._7
383381 if ((size(artSignID) == 0))
384382 then throw("Artwork not found on SIGN Art, cancel your sale.")
385383 else if (!(isValidNFT))
395393 if ((parseInt(saleInfoArray[1]) == 0))
396394 then throw("Offer only")
397395 else {
398- let $t01346813504 = isPayment(i)
399- let payment = $t01346813504._1
400- let amount = $t01346813504._2
396+ let $t01347413510 = isPayment(i)
397+ let payment = $t01347413510._1
398+ let amount = $t01347413510._2
401399 let paymentAssetStr = if (isDefined(payment.assetId))
402400 then toBase58String(value(payment.assetId))
403401 else ""
409407 let amountForSign = fraction(amount, signCut, 100)
410408 let amountForCreator = fraction(amount, creatorCut, 100)
411409 let amountForOwner = (amount - (amountForSign + amountForCreator))
412- let $t01400714135 = setTransfers(amount, payment.assetId, nftId, creatorAddr, saleOwner, caller)
413- let signFee = $t01400714135._1
414- let creatorFee = $t01400714135._2
415- let ownerFee = $t01400714135._3
416- let collectorNFT = $t01400714135._4
410+ let $t01401314141 = setTransfers(amount, payment.assetId, nftId, creatorAddr, saleOwner, caller)
411+ let signFee = $t01401314141._1
412+ let creatorFee = $t01401314141._2
413+ let ownerFee = $t01401314141._3
414+ let collectorNFT = $t01401314141._4
417415 [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]
418416 }
419417 }
425423
426424 @Callable(i)
427425 func setOffer (nftId) = {
428- let $t01454314639 = provideBaseData(i, nftId)
429- let id = $t01454314639._1
430- let offerOwner = $t01454314639._2
431- let date = $t01454314639._3
432- let isValidNFT = $t01454314639._4
433- let artId = $t01454314639._5
434- let creatorAddr = $t01454314639._6
435- let artSignID = $t01454314639._7
426+ let $t01454914645 = provideBaseData(i, nftId)
427+ let id = $t01454914645._1
428+ let offerOwner = $t01454914645._2
429+ let date = $t01454914645._3
430+ let isValidNFT = $t01454914645._4
431+ let artId = $t01454914645._5
432+ let creatorAddr = $t01454914645._6
433+ let artSignID = $t01454914645._7
436434 if (!(isValidNFT))
437435 then throw("Not a valid nft")
438436 else {
439- let $t01470014736 = isPayment(i)
440- let payment = $t01470014736._1
441- let amount = $t01470014736._2
437+ let $t01470614742 = isPayment(i)
438+ let payment = $t01470614742._1
439+ let amount = $t01470614742._2
442440 let assetId = if (!(isDefined(payment.assetId)))
443441 then "WAVES"
444442 else toBase58String(value(payment.assetId))
459457
460458 @Callable(i)
461459 func acceptOffer (nftId,offerId,offerOwner) = {
462- let $t01553815630 = provideBaseData(i, nftId)
463- let id = $t01553815630._1
464- let caller = $t01553815630._2
465- let date = $t01553815630._3
466- let isValidNFT = $t01553815630._4
467- let artId = $t01553815630._5
468- let creatorAddr = $t01553815630._6
469- let artSignID = $t01553815630._7
460+ let $t01554415636 = provideBaseData(i, nftId)
461+ let id = $t01554415636._1
462+ let caller = $t01554415636._2
463+ let date = $t01554415636._3
464+ let isValidNFT = $t01554415636._4
465+ let artId = $t01554415636._5
466+ let creatorAddr = $t01554415636._6
467+ let artSignID = $t01554415636._7
470468 if (!(isValidNFT))
471469 then throw("Not a valid nft")
472470 else {
475473 then throw("Only sale owner can accept offer")
476474 else {
477475 let bidKey = getBidKey(offerOwner, nftId, saleOwner, offerId)
478- let $t01588415939 = getBidData(bidKey)
479- let bidDataArr = $t01588415939._1
480- let assetId = $t01588415939._2
481- let bidData = $t01588415939._3
476+ let $t01589015945 = getBidData(bidKey)
477+ let bidDataArr = $t01589015945._1
478+ let assetId = $t01589015945._2
479+ let bidData = $t01589015945._3
482480 let saleKey = getSaleKey(saleOwner, nftId, artId, creatorAddr)
483481 let saleInfo = getStrByK((saleKey + "_OPEN"))
484482 if ((size(saleInfo) == 0))
485483 then throw("Sale Not found!")
486484 else {
487485 let amount = value(parseInt(bidDataArr[1]))
488- let $t01617116298 = setTransfers(amount, assetId, nftId, creatorAddr, saleOwner, bidDataArr[6])
489- let signFee = $t01617116298._1
490- let creatorFee = $t01617116298._2
491- let ownerFee = $t01617116298._3
492- let collectorNFT = $t01617116298._4
486+ let $t01617716304 = setTransfers(amount, assetId, nftId, creatorAddr, saleOwner, bidDataArr[6])
487+ let signFee = $t01617716304._1
488+ let creatorFee = $t01617716304._2
489+ let ownerFee = $t01617716304._3
490+ let collectorNFT = $t01617716304._4
493491 [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)) + "_") + toBase58String(value(assetId)))), updateNumSales(), signFee, creatorFee, ownerFee, collectorNFT]
494492 }
495493 }
500498
501499 @Callable(i)
502500 func cancelOffer (nftId,offerId,saleOwner) = {
503- let $t01700317064 = idCallerDate(i)
504- let id = $t01700317064._1
505- let caller = $t01700317064._2
506- let date = $t01700317064._3
501+ let $t01700917070 = idCallerDate(i)
502+ let id = $t01700917070._1
503+ let caller = $t01700917070._2
504+ let date = $t01700917070._3
507505 let bidKey = getBidKey(caller, nftId, saleOwner, offerId)
508- let $t01712817183 = getBidData(bidKey)
509- let bidDataArr = $t01712817183._1
510- let assetId = $t01712817183._2
511- let bidData = $t01712817183._3
506+ let $t01713417189 = getBidData(bidKey)
507+ let bidDataArr = $t01713417189._1
508+ let assetId = $t01713417189._2
509+ let bidData = $t01713417189._3
512510 [DeleteEntry((bidKey + "_OPEN")), StringEntry((bidKey + "_CANCELLED"), ((((bidData + "_CANCELLED_") + toString(date)) + "_") + id)), ScriptTransfer(Address(fromBase58String(caller)), parseIntValue(bidDataArr[1]), assetId)]
513511 }
514512
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 idCallerDate (i) = if (!(dappRunning))
8686 then throw(maintenanceMSG)
8787 else $Tuple3(toBase58String(i.transactionId), toBase58String(i.caller.bytes), lastBlock.timestamp)
8888
8989
9090 func isPayment (i) = if ((size(i.payments) == 0))
9191 then throw("No payment attached")
9292 else {
9393 let payment = value(i.payments[0])
9494 let amount = value(payment.amount)
9595 $Tuple2(payment, amount)
9696 }
9797
9898
9999 func assetIsValid (assetDetails) = if (if (if ((assetDetails.quantity == 1))
100100 then (assetDetails.decimals == 0)
101101 else false)
102102 then (assetDetails.reissuable == false)
103103 else false)
104104 then (assetDetails.issuer == artworksDapp)
105105 else false
106106
107107
108108 func isSignArtNFT (id) = {
109109 let assetDetails = value(assetInfo(id))
110110 assetIsValid(assetDetails)
111111 }
112112
113113
114114 func acceptedAssetIds (assetId) = if (if (if (if ((assetId != toBase58String(signAssetId)))
115115 then (assetId != toBase58String(wavesAssetId))
116116 else false)
117117 then (assetId != "WAVES")
118118 else false)
119119 then (assetId != toBase58String(usdnAssetId))
120120 else false)
121121 then false
122122 else true
123123
124124
125125 func getBidAssetId (assetId) = if ((assetId == "WAVES"))
126126 then unit
127127 else fromBase58String(assetId)
128128
129129
130130 func getSaleOwnerAndStatus (nftid) = {
131131 let saleOwner = getStrByK(("current_owner_on_dapp_" + nftid))
132132 if ((size(saleOwner) == 0))
133133 then throw("NFT not found")
134134 else {
135135 let saleStatus = getStrByK(((("sale2nd_status_" + saleOwner) + "_") + nftid))
136136 if ((saleStatus != "OPEN"))
137137 then throw("NFT not for sale")
138138 else saleOwner
139139 }
140140 }
141141
142142
143143 func getBidData (key) = {
144144 let bidData = getStrByK((key + "_OPEN"))
145145 if ((bidData == ""))
146146 then throw("Offer not found")
147147 else {
148148 let bidDataArr = split(bidData, "_")
149149 let assetId = getBidAssetId(bidDataArr[2])
150150 $Tuple3(bidDataArr, assetId, bidData)
151151 }
152152 }
153153
154154
155155 func artIsValid (artStatus) = if ((artStatus != artIllegal))
156156 then (artStatus != artSuspended)
157157 else false
158158
159159
160160 func checkArtStatus (addr,id) = {
161161 let artStatus = getArtStrByK(keyFlag(addr, id))
162162 if (artIsValid(artStatus))
163163 then true
164164 else throw(("Original Artwork flagged as " + artStatus))
165165 }
166166
167167
168168 func checkArtistStatus (addr) = {
169169 let artistStatus = getUserStrByK(keyUserStatus(addr))
170170 if (containsElement([userSuspended, userRemoved], artistStatus))
171171 then throw(("Original Artist " + artistStatus))
172172 else true
173173 }
174174
175175
176176 func checkNFTInfo (assetId) = {
177177 let nftData = split(getArtStrByK(keyNFTData(assetId)), "_")
178178 let artSignID = getArtStrByK(keySignID(nftData[6], nftData[5]))
179179 if (if (!(checkArtStatus(nftData[6], nftData[5])))
180180 then !(checkArtistStatus(nftData[6]))
181181 else false)
182182 then $Tuple4(false, nftData[5], nftData[6], artSignID)
183183 else $Tuple4(true, nftData[5], nftData[6], artSignID)
184184 }
185185
186186
187187 func checkARTExist (artId,creatorAddr) = {
188188 let artSignID = getArtStrByK(keySignID(creatorAddr, artId))
189189 if ((size(artSignID) == 0))
190190 then throw("Artwork not found on SIGN Art")
191191 else if (if (!(checkArtStatus(creatorAddr, artId)))
192192 then !(checkArtistStatus(creatorAddr))
193193 else false)
194194 then false
195195 else true
196196 }
197197
198198
199199 func setTransfers (amount,assetId,nftid,creatorAddr,saleOwner,caller) = {
200200 let amountForSign = fraction(amount, signCut, 100)
201201 let amountForCreator = fraction(amount, creatorCut, 100)
202202 let amountForOwner = (amount - (amountForSign + amountForCreator))
203203 let signFee = ScriptTransfer(Address(fromBase58String(feeReceiver)), amountForSign, assetId)
204204 let creatorFee = ScriptTransfer(Address(fromBase58String(creatorAddr)), amountForCreator, assetId)
205205 let ownerFee = ScriptTransfer(Address(fromBase58String(saleOwner)), amountForOwner, assetId)
206206 let collectorNFT = ScriptTransfer(Address(fromBase58String(caller)), 1, fromBase58String(nftid))
207207 $Tuple4(signFee, creatorFee, ownerFee, collectorNFT)
208208 }
209209
210210
211211 func validateMinSell (assetId,price) = {
212212 let minSellWaves = if (unitTest)
213213 then 10
214214 else getIntByKFromOracle("waves_min_sell")
215215 let minSellUsdn = 1000000
216216 let minSellSign = if (unitTest)
217217 then 1
218218 else (currentCertificationPrice * 2)
219219 if (if (if (if (if ((assetId == toBase58String(usdnAssetId)))
220220 then (minSellUsdn > price)
221221 else false)
222222 then (price != 0)
223223 else false)
224224 then true
225225 else if (if ((assetId == toBase58String(signAssetId)))
226226 then (minSellSign > price)
227227 else false)
228228 then (price != 0)
229229 else false)
230230 then true
231231 else if (if (if ((assetId == toBase58String(wavesAssetId)))
232232 then true
233233 else (assetId == "WAVES"))
234234 then (minSellWaves > price)
235235 else false)
236236 then (price != 0)
237237 else false)
238238 then false
239239 else true
240240 }
241241
242242
243243 func provideBaseData (i,nftId) = {
244- let $t085728611 = idCallerDate(i)
245- let id = $t085728611._1
246- let caller = $t085728611._2
247- let date = $t085728611._3
248- let $t086148683 = checkNFTInfo(nftId)
249- let isValidNFT = $t086148683._1
250- let artId = $t086148683._2
251- let creatorAddr = $t086148683._3
252- let artSignID = $t086148683._4
244+ let $t085778616 = idCallerDate(i)
245+ let id = $t085778616._1
246+ let caller = $t085778616._2
247+ let date = $t085778616._3
248+ let $t086198688 = checkNFTInfo(nftId)
249+ let isValidNFT = $t086198688._1
250+ let artId = $t086198688._2
251+ let creatorAddr = $t086198688._3
252+ let artSignID = $t086198688._4
253253 $Tuple7(id, caller, date, isValidNFT, artId, creatorAddr, artSignID)
254254 }
255255
256256
257257 func updateNumSales () = {
258258 let numSales = getIntByK(numSalesK)
259259 IntegerEntry(numSalesK, (numSales + 1))
260260 }
261261
262262
263263 @Callable(invoke)
264264 func appRunning (isLive,message) = {
265265 let caller = toString(addressFromPublicKey(invoke.callerPublicKey))
266266 let id = toBase58String(invoke.transactionId)
267267 if (containsElement([chris, toString(this)], caller))
268268 then [BooleanEntry(dappRunningKey, isLive), StringEntry(maintenanceMSGKey, message)]
269269 else throw("You are not allowed to change this")
270270 }
271271
272272
273273
274274 @Callable(i)
275275 func sellNFT (price,asset) = {
276- let $t093969432 = isPayment(i)
277- let payment = $t093969432._1
278- let amount = $t093969432._2
276+ let $t094019437 = isPayment(i)
277+ let payment = $t094019437._1
278+ let amount = $t094019437._2
279279 let nftId = if (if (isDefined(payment.assetId))
280280 then isSignArtNFT(value(payment.assetId))
281281 else false)
282282 then toBase58String(value(payment.assetId))
283283 else throw("Only SIGN Art NFT accepted.")
284- let $t096119703 = provideBaseData(i, nftId)
285- let id = $t096119703._1
286- let caller = $t096119703._2
287- let date = $t096119703._3
288- let isValidNFT = $t096119703._4
289- let artId = $t096119703._5
290- let creatorAddr = $t096119703._6
291- let artSignID = $t096119703._7
284+ let $t096169708 = provideBaseData(i, nftId)
285+ let id = $t096169708._1
286+ let caller = $t096169708._2
287+ let date = $t096169708._3
288+ let isValidNFT = $t096169708._4
289+ let artId = $t096169708._5
290+ let creatorAddr = $t096169708._6
291+ let artSignID = $t096169708._7
292292 if ((size(artSignID) == 0))
293293 then throw("Artwork not found on SIGN Art")
294294 else if (!(isValidNFT))
295295 then throw("Not a valid nft")
296296 else if (!(acceptedAssetIds(asset)))
297297 then throw("Only SIGN, USDN or WAVES accepted")
298- else if ((price == 0))
298+ else if (!(validateMinSell(asset, price)))
299299 then throw("Wrong minimum sell price")
300- else if (!(validateMinSell(asset, price)))
301- then throw("Wrong minimum sell price")
302- 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)]
300+ 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)]
303301 }
304302
305303
306304
307305 @Callable(i)
308306 func updateSalePrice (nftId,price,asset) = {
309- let $t01057610668 = provideBaseData(i, nftId)
310- let id = $t01057610668._1
311- let caller = $t01057610668._2
312- let date = $t01057610668._3
313- let isValidNFT = $t01057610668._4
314- let artId = $t01057610668._5
315- let creatorAddr = $t01057610668._6
316- let artSignID = $t01057610668._7
307+ let $t01058210674 = provideBaseData(i, nftId)
308+ let id = $t01058210674._1
309+ let caller = $t01058210674._2
310+ let date = $t01058210674._3
311+ let isValidNFT = $t01058210674._4
312+ let artId = $t01058210674._5
313+ let creatorAddr = $t01058210674._6
314+ let artSignID = $t01058210674._7
317315 if ((size(artSignID) == 0))
318316 then throw("Artwork not found on SIGN Art, cancel your sale.")
319317 else if (!(isValidNFT))
320318 then throw("Not a valid nft")
321319 else {
322320 let saleOwner = getStrByK(("current_owner_on_dapp_" + nftId))
323321 if ((saleOwner != caller))
324322 then throw("You don't own this NFT")
325323 else {
326324 let saleStatus = getStrByK(((("sale2nd_status_" + caller) + "_") + nftId))
327325 if ((saleStatus != "OPEN"))
328326 then throw("Sale not active")
329327 else if (!(acceptedAssetIds(asset)))
330328 then throw("Only SIGN, USDN or WAVES accepted")
331329 else if ((price == 0))
332330 then throw("Wrong minimum sell price")
333331 else if (!(validateMinSell(asset, price)))
334332 then throw("Wrong minimum sell price")
335333 else {
336334 let saleKey = getSaleKey(caller, nftId, artId, creatorAddr)
337335 let saleInfo = split(getStrByK((saleKey + "_OPEN")), "_")
338336 [StringEntry((saleKey + "_OPEN"), ((((((((((((saleInfo[0] + "_") + toString(price)) + "_") + asset) + "_") + saleInfo[3]) + "_") + saleInfo[4]) + "_") + saleInfo[5]) + "_") + saleInfo[6]))]
339337 }
340338 }
341339 }
342340 }
343341
344342
345343
346344 @Callable(i)
347345 func cancelSale (nftId) = {
348- let $t01180812048 = provideBaseData(i, nftId)
349- let id = $t01180812048._1
350- let caller = $t01180812048._2
351- let date = $t01180812048._3
352- let isValidNFT = $t01180812048._4
353- let artId = $t01180812048._5
354- let creatorAddr = $t01180812048._6
355- let artSignID = $t01180812048._7
346+ let $t01181412054 = provideBaseData(i, nftId)
347+ let id = $t01181412054._1
348+ let caller = $t01181412054._2
349+ let date = $t01181412054._3
350+ let isValidNFT = $t01181412054._4
351+ let artId = $t01181412054._5
352+ let creatorAddr = $t01181412054._6
353+ let artSignID = $t01181412054._7
356354 let saleOwner = getStrByK(("current_owner_on_dapp_" + nftId))
357355 if ((saleOwner != caller))
358356 then throw("You don't own this NFT")
359357 else {
360358 let saleStatus = getStrByK(((("sale2nd_status_" + caller) + "_") + nftId))
361359 if ((saleStatus != "OPEN"))
362360 then throw("Sale not active")
363361 else {
364362 let saleKey = getSaleKey(caller, nftId, artId, creatorAddr)
365363 let saleInfo = getStrByK((saleKey + "_OPEN"))
366364 [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))]
367365 }
368366 }
369367 }
370368
371369
372370
373371 @Callable(i)
374372 func buyNFT (nftId) = {
375- let $t01287912971 = provideBaseData(i, nftId)
376- let id = $t01287912971._1
377- let caller = $t01287912971._2
378- let date = $t01287912971._3
379- let isValidNFT = $t01287912971._4
380- let artId = $t01287912971._5
381- let creatorAddr = $t01287912971._6
382- let artSignID = $t01287912971._7
373+ let $t01288512977 = provideBaseData(i, nftId)
374+ let id = $t01288512977._1
375+ let caller = $t01288512977._2
376+ let date = $t01288512977._3
377+ let isValidNFT = $t01288512977._4
378+ let artId = $t01288512977._5
379+ let creatorAddr = $t01288512977._6
380+ let artSignID = $t01288512977._7
383381 if ((size(artSignID) == 0))
384382 then throw("Artwork not found on SIGN Art, cancel your sale.")
385383 else if (!(isValidNFT))
386384 then throw("Not a valid nft")
387385 else {
388386 let saleOwner = getSaleOwnerAndStatus(nftId)
389387 let saleKey = getSaleKey(saleOwner, nftId, artId, creatorAddr)
390388 let saleInfo = getStrByK((saleKey + "_OPEN"))
391389 if ((size(saleInfo) == 0))
392390 then throw("Sale Not found!")
393391 else {
394392 let saleInfoArray = split(saleInfo, "_")
395393 if ((parseInt(saleInfoArray[1]) == 0))
396394 then throw("Offer only")
397395 else {
398- let $t01346813504 = isPayment(i)
399- let payment = $t01346813504._1
400- let amount = $t01346813504._2
396+ let $t01347413510 = isPayment(i)
397+ let payment = $t01347413510._1
398+ let amount = $t01347413510._2
401399 let paymentAssetStr = if (isDefined(payment.assetId))
402400 then toBase58String(value(payment.assetId))
403401 else ""
404402 if (if ((saleInfoArray[1] != toString(amount)))
405403 then true
406404 else (saleInfoArray[2] != paymentAssetStr))
407405 then throw("Payment infos don't match.")
408406 else {
409407 let amountForSign = fraction(amount, signCut, 100)
410408 let amountForCreator = fraction(amount, creatorCut, 100)
411409 let amountForOwner = (amount - (amountForSign + amountForCreator))
412- let $t01400714135 = setTransfers(amount, payment.assetId, nftId, creatorAddr, saleOwner, caller)
413- let signFee = $t01400714135._1
414- let creatorFee = $t01400714135._2
415- let ownerFee = $t01400714135._3
416- let collectorNFT = $t01400714135._4
410+ let $t01401314141 = setTransfers(amount, payment.assetId, nftId, creatorAddr, saleOwner, caller)
411+ let signFee = $t01401314141._1
412+ let creatorFee = $t01401314141._2
413+ let ownerFee = $t01401314141._3
414+ let collectorNFT = $t01401314141._4
417415 [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]
418416 }
419417 }
420418 }
421419 }
422420 }
423421
424422
425423
426424 @Callable(i)
427425 func setOffer (nftId) = {
428- let $t01454314639 = provideBaseData(i, nftId)
429- let id = $t01454314639._1
430- let offerOwner = $t01454314639._2
431- let date = $t01454314639._3
432- let isValidNFT = $t01454314639._4
433- let artId = $t01454314639._5
434- let creatorAddr = $t01454314639._6
435- let artSignID = $t01454314639._7
426+ let $t01454914645 = provideBaseData(i, nftId)
427+ let id = $t01454914645._1
428+ let offerOwner = $t01454914645._2
429+ let date = $t01454914645._3
430+ let isValidNFT = $t01454914645._4
431+ let artId = $t01454914645._5
432+ let creatorAddr = $t01454914645._6
433+ let artSignID = $t01454914645._7
436434 if (!(isValidNFT))
437435 then throw("Not a valid nft")
438436 else {
439- let $t01470014736 = isPayment(i)
440- let payment = $t01470014736._1
441- let amount = $t01470014736._2
437+ let $t01470614742 = isPayment(i)
438+ let payment = $t01470614742._1
439+ let amount = $t01470614742._2
442440 let assetId = if (!(isDefined(payment.assetId)))
443441 then "WAVES"
444442 else toBase58String(value(payment.assetId))
445443 if (!(acceptedAssetIds(assetId)))
446444 then throw("asset not accepted")
447445 else if ((amount == 0))
448446 then throw("Offer of 0 not allowed")
449447 else if (!(validateMinSell(assetId, amount)))
450448 then throw("Wrong minimum sell price")
451449 else {
452450 let saleOwner = getSaleOwnerAndStatus(nftId)
453451 [StringEntry((getBidKey(offerOwner, nftId, saleOwner, id) + "_OPEN"), ((((((((((((((toString(date) + "_") + toString(amount)) + "_") + assetId) + "_") + nftId) + "_") + artId) + "_") + creatorAddr) + "_") + offerOwner) + "_") + id))]
454452 }
455453 }
456454 }
457455
458456
459457
460458 @Callable(i)
461459 func acceptOffer (nftId,offerId,offerOwner) = {
462- let $t01553815630 = provideBaseData(i, nftId)
463- let id = $t01553815630._1
464- let caller = $t01553815630._2
465- let date = $t01553815630._3
466- let isValidNFT = $t01553815630._4
467- let artId = $t01553815630._5
468- let creatorAddr = $t01553815630._6
469- let artSignID = $t01553815630._7
460+ let $t01554415636 = provideBaseData(i, nftId)
461+ let id = $t01554415636._1
462+ let caller = $t01554415636._2
463+ let date = $t01554415636._3
464+ let isValidNFT = $t01554415636._4
465+ let artId = $t01554415636._5
466+ let creatorAddr = $t01554415636._6
467+ let artSignID = $t01554415636._7
470468 if (!(isValidNFT))
471469 then throw("Not a valid nft")
472470 else {
473471 let saleOwner = getSaleOwnerAndStatus(nftId)
474472 if ((caller != saleOwner))
475473 then throw("Only sale owner can accept offer")
476474 else {
477475 let bidKey = getBidKey(offerOwner, nftId, saleOwner, offerId)
478- let $t01588415939 = getBidData(bidKey)
479- let bidDataArr = $t01588415939._1
480- let assetId = $t01588415939._2
481- let bidData = $t01588415939._3
476+ let $t01589015945 = getBidData(bidKey)
477+ let bidDataArr = $t01589015945._1
478+ let assetId = $t01589015945._2
479+ let bidData = $t01589015945._3
482480 let saleKey = getSaleKey(saleOwner, nftId, artId, creatorAddr)
483481 let saleInfo = getStrByK((saleKey + "_OPEN"))
484482 if ((size(saleInfo) == 0))
485483 then throw("Sale Not found!")
486484 else {
487485 let amount = value(parseInt(bidDataArr[1]))
488- let $t01617116298 = setTransfers(amount, assetId, nftId, creatorAddr, saleOwner, bidDataArr[6])
489- let signFee = $t01617116298._1
490- let creatorFee = $t01617116298._2
491- let ownerFee = $t01617116298._3
492- let collectorNFT = $t01617116298._4
486+ let $t01617716304 = setTransfers(amount, assetId, nftId, creatorAddr, saleOwner, bidDataArr[6])
487+ let signFee = $t01617716304._1
488+ let creatorFee = $t01617716304._2
489+ let ownerFee = $t01617716304._3
490+ let collectorNFT = $t01617716304._4
493491 [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)) + "_") + toBase58String(value(assetId)))), updateNumSales(), signFee, creatorFee, ownerFee, collectorNFT]
494492 }
495493 }
496494 }
497495 }
498496
499497
500498
501499 @Callable(i)
502500 func cancelOffer (nftId,offerId,saleOwner) = {
503- let $t01700317064 = idCallerDate(i)
504- let id = $t01700317064._1
505- let caller = $t01700317064._2
506- let date = $t01700317064._3
501+ let $t01700917070 = idCallerDate(i)
502+ let id = $t01700917070._1
503+ let caller = $t01700917070._2
504+ let date = $t01700917070._3
507505 let bidKey = getBidKey(caller, nftId, saleOwner, offerId)
508- let $t01712817183 = getBidData(bidKey)
509- let bidDataArr = $t01712817183._1
510- let assetId = $t01712817183._2
511- let bidData = $t01712817183._3
506+ let $t01713417189 = getBidData(bidKey)
507+ let bidDataArr = $t01713417189._1
508+ let assetId = $t01713417189._2
509+ let bidData = $t01713417189._3
512510 [DeleteEntry((bidKey + "_OPEN")), StringEntry((bidKey + "_CANCELLED"), ((((bidData + "_CANCELLED_") + toString(date)) + "_") + id)), ScriptTransfer(Address(fromBase58String(caller)), parseIntValue(bidDataArr[1]), assetId)]
513511 }
514512
515513

github/deemru/w8io/3ef1775 
125.33 ms