tx · BAEBUeykQRiGK9xAMWdkqAvyrTQpcSp4kTwneprLF9jv

3N9yxjwDM9T8cFxAxjrw8k5wiGxRxHh9FdW:  -0.01400000 Waves

2021.05.20 08:29 [1533580] smart account 3N9yxjwDM9T8cFxAxjrw8k5wiGxRxHh9FdW > SELF 0.00000000 Waves

{ "type": 13, "id": "BAEBUeykQRiGK9xAMWdkqAvyrTQpcSp4kTwneprLF9jv", "fee": 1400000, "feeAssetId": null, "timestamp": 1621488622315, "version": 2, "chainId": 84, "sender": "3N9yxjwDM9T8cFxAxjrw8k5wiGxRxHh9FdW", "senderPublicKey": "7nc1RVTNTXy1DvKS2F4boNQWQir3Lqpvi8zMoo42M3nP", "proofs": [ "DCWEC8CqB1W9LTvVms9AYNoQxYHZbjkbAmA73gM2LyL7PB4uv8s5wdUStunF4u36Zqp7FmxBETQovcdDRKGx6MC" ], "script": "base64:AAIEAAAAAAAAAD4IAhIECgIBCBIDCgEIEgMKAQgSAwoBCBIFCgMICAgSBQoDCAgIEgQKAggIEgUKAwgICBIFCgMICAgSAwoBCAAAACgAAAAACHVuaXRUZXN0BwAAAAAJb3JhY2xlRmVlCQEAAAAFdmFsdWUAAAABCQAEJgAAAAECAAAAIzNOMnM1UnRhSFBCZW5Dc3gyRUNjb0ZSYllIeDNub1poWFcxAAAAAAhzaWduRGFwcAkBAAAABXZhbHVlAAAAAQkABCYAAAABAgAAACMzTkMyOGhTaXZybXNUVVhhWUQxeDZMMzYySjRacFVub1RkQgAAAAAMYXJ0d29ya3NEYXBwCQEAAAAFdmFsdWUAAAABCQAEJgAAAAECAAAAIzNOQnluZmJYQzJLYXN0VXhodWtjTVVhRTU4SzljQmRCOVVZAAAAAAtmZWVSZWNlaXZlcgIAAAAjM04xRTZ0WGRkUm9WYVJmUTlkUTN2ZzVMYVcyZnNkOEhLdWIAAAAACHVzZXJEYXBwAwUAAAAIdW5pdFRlc3QJAQAAAAV2YWx1ZQAAAAEJAAQmAAAAAQIAAAAjM010NFJHTUV5alNXWUFvY1RQcWQ1NXdkSFFRQjNQVTJVQ20JAQAAAAV2YWx1ZQAAAAEJAAQmAAAAAQIAAAAjM044eFhhWWpFMjdBYTc5ZDVoSHJoSHU5SGFGb1RCbWhERWoAAAAADXdoaXRlbGlzdERhcHAJAQAAAAV2YWx1ZQAAAAEJAAQmAAAAAQIAAAAjM042QmFWMWRDQjR6ZzQzZ29OTkhhQ3R2UjEzQmN5SjVHc3EAAAAAC3NpZ25Bc3NldElkAQAAACDopWq8yndC8nBhMjVKT0WDubke5ZlnF8Nx6tkLoQSt6wAAAAALdXNkbkFzc2V0SWQBAAAAIA/yHBKs5MQ8muxGGqslqLDsugcrRsxtiHLwteKSSQG0AAAAAAx3YXZlc0Fzc2V0SWQBAAAAAAAAAAAFY2hyaXMCAAAAIzNNc0c2alBOQ3JWSlV0WUI3WEpCeFM3dXRXc1hBZjRuOVZwAAAAAARqb2VwAgAAACMzTXptNFZMd3NOOXVad2JUTXpQajNYdXhWNmtFZkFSOFVETgAAAAAHc2lnbkN1dAAAAAAAAAAAAwAAAAAKY3JlYXRvckN1dAAAAAAAAAAACgAAAAALZGFwcFJ1bm5p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", "height": 1533580, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: EyajSE7nubYAW2kg9wjL5UGCzK2fcSg4zmdiVnMB9uqD Next: HoaSvvJfMvGuRWPu6KpKBSsXJairWath6b8ixdAuaoAX Diff:
OldNewDifferences
205205 else false)
206206 then payment.assetId
207207 else throw("Only SIGN Art NFT accepted.")
208- if (!(acceptedAssetIds(asset)))
209- then throw("Only SIGN, USDN or WAVES accepted")
210- else {
211- let $t074347510 = checkNFTInfo(toBase58String(value(assetId)))
212- let isValidNFT = $t074347510._1
213- let creatorAddr = $t074347510._2
214- if (!(isValidNFT))
215- then throw("Something went wrong")
216- else [StringEntry((((((("sale2nd_info_" + caller) + "_") + toBase58String(value(payment.assetId))) + "_") + creatorAddr) + "_OPEN"), ((((toString(date) + "_") + toString(price)) + "_") + asset)), StringEntry(((("sale2nd_status_" + caller) + "_") + toBase58String(value(payment.assetId))), "OPEN"), StringEntry(("current_owner_on_dapp_" + toBase58String(value(payment.assetId))), caller)]
217- }
208+ let nftName = assetInfo(value(payment.assetId))
209+ if (true)
210+ then throw(("NFT Name = " + value(nftName).name))
211+ else if (!(acceptedAssetIds(asset)))
212+ then throw("Only SIGN, USDN or WAVES accepted")
213+ else {
214+ let $t075507626 = checkNFTInfo(toBase58String(value(assetId)))
215+ let isValidNFT = $t075507626._1
216+ let creatorAddr = $t075507626._2
217+ if (!(isValidNFT))
218+ then throw("Something went wrong")
219+ else [StringEntry((((((("sale2nd_info_" + caller) + "_") + toBase58String(value(payment.assetId))) + "_") + creatorAddr) + "_OPEN"), ((((toString(date) + "_") + toString(price)) + "_") + asset)), StringEntry(((("sale2nd_status_" + caller) + "_") + toBase58String(value(payment.assetId))), "OPEN"), StringEntry(("current_owner_on_dapp_" + toBase58String(value(payment.assetId))), caller)]
220+ }
218221 }
219222
220223
221224
222225 @Callable(i)
223226 func cancelSale (nftid) = {
224- let $t081868225 = idCallerDate(i)
225- let id = $t081868225._1
226- let caller = $t081868225._2
227- let date = $t081868225._3
227+ let $t083028341 = idCallerDate(i)
228+ let id = $t083028341._1
229+ let caller = $t083028341._2
230+ let date = $t083028341._3
228231 let saleOwner = getStrByK(("current_owner_on_dapp_" + nftid))
229232 if ((saleOwner != caller))
230233 then throw("You don't own this NFT")
244247
245248 @Callable(i)
246249 func buyNFT (nftid) = {
247- let $t093549425 = idCallerDate(i)
248- let id = $t093549425._1
249- let caller = $t093549425._2
250- let date = $t093549425._3
250+ let $t094709541 = idCallerDate(i)
251+ let id = $t094709541._1
252+ let caller = $t094709541._2
253+ let date = $t094709541._3
251254 let saleOwner = getSaleOwnerAndStatus(nftid)
252- let $t094809531 = checkNFTInfo(nftid)
253- let isValidNFT = $t094809531._1
254- let creatorAddr = $t094809531._2
255+ let $t095969647 = checkNFTInfo(nftid)
256+ let isValidNFT = $t095969647._1
257+ let creatorAddr = $t095969647._2
255258 if (!(isValidNFT))
256259 then throw("Something went wrong")
257260 else {
263266 if ((parseInt(saleInfoArray[1]) == 0))
264267 then throw("Offer only")
265268 else {
266- let $t098679903 = isPayment(i)
267- let payment = $t098679903._1
268- let amount = $t098679903._2
269+ let $t0998310019 = isPayment(i)
270+ let payment = $t0998310019._1
271+ let amount = $t0998310019._2
269272 if (if ((saleInfoArray[1] != toString(amount)))
270273 then true
271274 else (saleInfoArray[2] != toBase58String(value(payment.assetId))))
274277 let amountForSign = fraction(amount, signCut, 100)
275278 let amountForCreator = fraction(amount, creatorCut, 100)
276279 let amountForOwner = (amount - (amountForSign + amountForCreator))
277- let $t01032610454 = setTransfers(amount, payment.assetId, nftid, creatorAddr, saleOwner, caller)
278- let signFee = $t01032610454._1
279- let creatorFee = $t01032610454._2
280- let ownerFee = $t01032610454._3
281- let collectorFee = $t01032610454._4
280+ let $t01044210570 = setTransfers(amount, payment.assetId, nftid, creatorAddr, saleOwner, caller)
281+ let signFee = $t01044210570._1
282+ let creatorFee = $t01044210570._2
283+ let ownerFee = $t01044210570._3
284+ let collectorFee = $t01044210570._4
282285 [DeleteEntry((((((("sale2nd_info_" + saleOwner) + "_") + nftid) + "_") + creatorAddr) + "_OPEN")), DeleteEntry(((("sale2nd_status_" + saleOwner) + "_") + nftid)), DeleteEntry(("current_owner_on_dapp_" + nftid)), StringEntry((((((((((("sale2nd_info_" + saleOwner) + "_") + nftid) + "_") + creatorAddr) + "_") + toString(date)) + "_") + id) + "_CLOSED"), ((((((toString(date) + "_") + toString(amount)) + "_") + toBase58String(value(payment.assetId))) + "_to_") + caller)), signFee, creatorFee, ownerFee, collectorFee]
283286 }
284287 }
290293
291294 @Callable(i)
292295 func setOffer (nftid) = {
293- let $t01154211584 = idCallerDate(i)
294- let id = $t01154211584._1
295- let offerOwner = $t01154211584._2
296- let date = $t01154211584._3
297- let $t01158911625 = isPayment(i)
298- let payment = $t01158911625._1
299- let amount = $t01158911625._2
296+ let $t01165811700 = idCallerDate(i)
297+ let id = $t01165811700._1
298+ let offerOwner = $t01165811700._2
299+ let date = $t01165811700._3
300+ let $t01170511741 = isPayment(i)
301+ let payment = $t01170511741._1
302+ let amount = $t01170511741._2
300303 let assetId = if (!(isDefined(payment.assetId)))
301304 then "WAVES"
302305 else toBase58String(value(payment.assetId))
303306 if (!(acceptedAssetIds(assetId)))
304307 then throw("asset not accepted")
305308 else {
306- let $t01181111862 = checkNFTInfo(nftid)
307- let isValidNFT = $t01181111862._1
308- let creatorAddr = $t01181111862._2
309+ let $t01192711978 = checkNFTInfo(nftid)
310+ let isValidNFT = $t01192711978._1
311+ let creatorAddr = $t01192711978._2
309312 if (!(isValidNFT))
310313 then throw("Something went wrong")
311314 else {
319322
320323 @Callable(i)
321324 func acceptOffer (nftid,offerId,offerOwner) = {
322- let $t01241012480 = idCallerDate(i)
323- let id = $t01241012480._1
324- let caller = $t01241012480._2
325- let date = $t01241012480._3
325+ let $t01252612596 = idCallerDate(i)
326+ let id = $t01252612596._1
327+ let caller = $t01252612596._2
328+ let date = $t01252612596._3
326329 let saleOwner = getSaleOwnerAndStatus(nftid)
327330 if ((caller != saleOwner))
328331 then throw("You cannot do this action")
331334 if ((offerExist == ""))
332335 then throw("Offer not found or not for sale")
333336 else {
334- let $t01278512836 = checkNFTInfo(nftid)
335- let isValidNFT = $t01278512836._1
336- let creatorAddr = $t01278512836._2
337+ let $t01290112952 = checkNFTInfo(nftid)
338+ let isValidNFT = $t01290112952._1
339+ let creatorAddr = $t01290112952._2
337340 if (!(isValidNFT))
338341 then throw("Something went wrong")
339342 else {
342345 then throw("Sale Not found!")
343346 else {
344347 let bidDataKey = ((((((("offer2nd_" + offerOwner) + "_") + nftid) + "_") + saleOwner) + "_") + offerId)
345- let $t01317213231 = getBidData(bidDataKey)
346- let bidDataArr = $t01317213231._1
347- let assetId = $t01317213231._2
348- let bidData = $t01317213231._3
348+ let $t01328813347 = getBidData(bidDataKey)
349+ let bidDataArr = $t01328813347._1
350+ let assetId = $t01328813347._2
351+ let bidData = $t01328813347._3
349352 let amount = value(parseInt(bidDataArr[1]))
350- let $t01328513412 = setTransfers(amount, assetId, nftid, creatorAddr, saleOwner, bidDataArr[3])
351- let signFee = $t01328513412._1
352- let creatorFee = $t01328513412._2
353- let ownerFee = $t01328513412._3
354- let collectorFee = $t01328513412._4
353+ let $t01340113528 = setTransfers(amount, assetId, nftid, creatorAddr, saleOwner, bidDataArr[3])
354+ let signFee = $t01340113528._1
355+ let creatorFee = $t01340113528._2
356+ let ownerFee = $t01340113528._3
357+ let collectorFee = $t01340113528._4
355358 [DeleteEntry((((((("sale2nd_info_" + saleOwner) + "_") + nftid) + "_") + creatorAddr) + "_OPEN")), DeleteEntry((bidDataKey + "_OPEN")), DeleteEntry(((("sale2nd_status_" + saleOwner) + "_") + nftid)), DeleteEntry(("current_owner_on_dapp_" + nftid)), StringEntry((((((bidDataKey + "_") + toString(date)) + "_") + id) + "_CLOSED"), ((((((((toString(date) + "_") + toString(amount)) + "_") + toBase58String(value(assetId))) + "_") + offerOwner) + "_") + offerId)), StringEntry((((((((((("sale2nd_info_" + saleOwner) + "_") + nftid) + "_") + creatorAddr) + "_") + toString(date)) + "_") + id) + "_CLOSED"), ((((((toString(date) + "_") + toString(amount)) + "_") + toBase58String(value(assetId))) + "_to_") + offerOwner)), signFee, creatorFee, ownerFee, collectorFee]
356359 }
357360 }
363366
364367 @Callable(i)
365368 func cancelOffer (nftid,offerId,saleOwner) = {
366- let $t01418614247 = idCallerDate(i)
367- let id = $t01418614247._1
368- let caller = $t01418614247._2
369- let date = $t01418614247._3
369+ let $t01430214363 = idCallerDate(i)
370+ let id = $t01430214363._1
371+ let caller = $t01430214363._2
372+ let date = $t01430214363._3
370373 let bidDataKey = ((((((("offer2nd_" + caller) + "_") + nftid) + "_") + saleOwner) + "_") + offerId)
371- let $t01432814387 = getBidData(bidDataKey)
372- let bidDataArr = $t01432814387._1
373- let assetId = $t01432814387._2
374- let bidData = $t01432814387._3
374+ let $t01444414503 = getBidData(bidDataKey)
375+ let bidDataArr = $t01444414503._1
376+ let assetId = $t01444414503._2
377+ let bidData = $t01444414503._3
375378 [DeleteEntry((bidDataKey + "_OPEN")), StringEntry((((((bidDataKey + "_") + toString(date)) + "_") + id) + "_CANCELLED"), ((bidData + "_") + toString(date))), ScriptTransfer(Address(fromBase58String(caller)), parseIntValue(bidDataArr[1]), assetId)]
376379 }
377380
379382
380383 @Callable(i)
381384 func makeRequest (artId,creatorAddr) = {
382- let $t01472214766 = idCallerDate(i)
383- let id = $t01472214766._1
384- let requestOwner = $t01472214766._2
385- let date = $t01472214766._3
386- let $t01477114807 = isPayment(i)
387- let payment = $t01477114807._1
388- let amount = $t01477114807._2
385+ let $t01483814882 = idCallerDate(i)
386+ let id = $t01483814882._1
387+ let requestOwner = $t01483814882._2
388+ let date = $t01483814882._3
389+ let $t01488714923 = isPayment(i)
390+ let payment = $t01488714923._1
391+ let amount = $t01488714923._2
389392 let assetId = if (!(isDefined(payment.assetId)))
390393 then "WAVES"
391394 else toBase58String(value(payment.assetId))
403406
404407 @Callable(i)
405408 func fillRequest (artId,requestOwner,offerId) = {
406- let $t01558215624 = idCallerDate(i)
407- let id = $t01558215624._1
408- let saleOwner = $t01558215624._2
409- let date = $t01558215624._3
410- let $t01562915673 = isPayment(i)
411- let payment = $t01562915673._1
412- let amountAttached = $t01562915673._2
409+ let $t01569815740 = idCallerDate(i)
410+ let id = $t01569815740._1
411+ let saleOwner = $t01569815740._2
412+ let date = $t01569815740._3
413+ let $t01574515789 = isPayment(i)
414+ let payment = $t01574515789._1
415+ let amountAttached = $t01574515789._2
413416 let NFTid = if (if (isDefined(payment.assetId))
414417 then isSignArtNFT(value(payment.assetId))
415418 else false)
426429 then throw("This NFT don't match the requested artwork")
427430 else {
428431 let amount = value(parseInt(requestData[1]))
429- let $t01639316568 = setTransfers(amount, fromBase58String(requestData[2]), toBase58String(value(NFTid)), NFTdata[6], saleOwner, requestData[4])
430- let signFee = $t01639316568._1
431- let creatorFee = $t01639316568._2
432- let ownerFee = $t01639316568._3
433- let collectorFee = $t01639316568._4
432+ let $t01650916684 = setTransfers(amount, fromBase58String(requestData[2]), toBase58String(value(NFTid)), NFTdata[6], saleOwner, requestData[4])
433+ let signFee = $t01650916684._1
434+ let creatorFee = $t01650916684._2
435+ let ownerFee = $t01650916684._3
436+ let collectorFee = $t01650916684._4
434437 [DeleteEntry((((((((("request2nd_" + requestOwner) + "_") + NFTdata[6]) + "_") + artId) + "_") + offerId) + "_OPEN")), StringEntry((((((((("request2nd_" + requestOwner) + "_") + NFTdata[6]) + "_") + artId) + "_") + offerId) + "_CLOSED"), ((((((((((((toString(date) + "_") + toString(amount)) + "_") + requestData[2]) + "_") + artId) + "_") + requestOwner) + "_") + saleOwner) + "_") + id)), signFee, creatorFee, ownerFee, collectorFee]
435438 }
436439 }
440443
441444 @Callable(i)
442445 func cancelRequest (artId,creatorAddr,requestId) = {
443- let $t01702817072 = idCallerDate(i)
444- let id = $t01702817072._1
445- let requestOwner = $t01702817072._2
446- let date = $t01702817072._3
446+ let $t01714417188 = idCallerDate(i)
447+ let id = $t01714417188._1
448+ let requestOwner = $t01714417188._2
449+ let date = $t01714417188._3
447450 let requesDataKey = ((((((("request2nd_" + requestOwner) + "_") + creatorAddr) + "_") + artId) + "_") + requestId)
448451 let requestData = getStrByK((requesDataKey + "_OPEN"))
449452 if ((size(requestData) == 0))
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 4 #-}
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 joep = "3Mzm4VLwsN9uZwbTMzPj3XuxV6kEfAR8UDN"
2929
3030 let signCut = 3
3131
3232 let creatorCut = 10
3333
3434 let dappRunning = valueOrElse(getBoolean(userDapp, "conf_dapp_is_running"), true)
3535
3636 let maintenanceMSG = valueOrElse(getString(userDapp, "conf_maintenance_msg"), "")
3737
3838 let userSuspended = "SUSPENDED"
3939
4040 let userRemoved = "REMOVED"
4141
4242 let artIllegal = "ILLEGAL"
4343
4444 let artSuspended = "SUSPENDED"
4545
4646 func getUserStrByK (key) = valueOrElse(getString(userDapp, key), "Error")
4747
4848
4949 func getArtStrByK (key) = valueOrElse(getString(artworksDapp, key), "")
5050
5151
5252 func getStrByK (key) = valueOrElse(getString(this, key), "")
5353
5454
5555 func getIntByK (key) = valueOrElse(getInteger(this, key), 0)
5656
5757
5858 func keyUserStatus (addr) = ("user_status_" + addr)
5959
6060
6161 func keySignID (artistAddr,artId) = ((("art_signid_" + artId) + "_") + artistAddr)
6262
6363
6464 func keyFlag (artistAddr,artId) = ((("art_flag_" + artId) + "_") + artistAddr)
6565
6666
6767 func keyNFTData (id) = ("nft_" + id)
6868
6969
7070 func idCallerDate (i) = if (!(dappRunning))
7171 then throw(maintenanceMSG)
7272 else $Tuple3(toBase58String(i.transactionId), toBase58String(i.caller.bytes), lastBlock.timestamp)
7373
7474
7575 func isPayment (i) = if ((size(i.payments) == 0))
7676 then throw("No payment attached")
7777 else {
7878 let payment = value(i.payments[0])
7979 let amount = value(payment.amount)
8080 $Tuple2(payment, amount)
8181 }
8282
8383
8484 func isSignArtNFT (id) = {
8585 let assetDetails = value(assetInfo(id))
8686 if (if (if (if ((assetDetails.quantity != 1))
8787 then true
8888 else (assetDetails.decimals != 0))
8989 then true
9090 else (assetDetails.reissuable != false))
9191 then true
9292 else (assetDetails.issuer != artworksDapp))
9393 then false
9494 else true
9595 }
9696
9797
9898 func acceptedAssetIds (assetId) = if (if (if (if ((assetId != toBase58String(signAssetId)))
9999 then (assetId != toBase58String(wavesAssetId))
100100 else false)
101101 then (assetId != "WAVES")
102102 else false)
103103 then (assetId != toBase58String(usdnAssetId))
104104 else false)
105105 then false
106106 else true
107107
108108
109109 func getBidAssetId (assetId) = if ((assetId == "WAVES"))
110110 then unit
111111 else fromBase58String(assetId)
112112
113113
114114 func getSaleOwnerAndStatus (nftid) = {
115115 let saleOwner = getStrByK(("current_owner_on_dapp_" + nftid))
116116 if ((size(saleOwner) == 0))
117117 then throw("NFT not found")
118118 else {
119119 let saleStatus = getStrByK(((("sale2nd_status_" + saleOwner) + "_") + nftid))
120120 if ((saleStatus != "OPEN"))
121121 then throw("NFT not for sale")
122122 else saleOwner
123123 }
124124 }
125125
126126
127127 func getBidData (key) = {
128128 let bidData = getStrByK((key + "_OPEN"))
129129 if ((bidData == ""))
130130 then throw("Offer not found")
131131 else {
132132 let bidDataArr = split(bidData, "_")
133133 let assetId = getBidAssetId(bidDataArr[2])
134134 $Tuple3(bidDataArr, assetId, bidData)
135135 }
136136 }
137137
138138
139139 func checkArtStatus (addr,id) = {
140140 let artStatus = getArtStrByK(keyFlag(addr, id))
141141 if (if ((artStatus == artIllegal))
142142 then true
143143 else (artStatus == artSuspended))
144144 then throw(("Original Artwork flagged as " + artStatus))
145145 else true
146146 }
147147
148148
149149 func checkArtistStatus (addr) = {
150150 let artistStatus = getUserStrByK(keyUserStatus(addr))
151151 if (containsElement([userSuspended, userRemoved], artistStatus))
152152 then throw(("Original Artist " + artistStatus))
153153 else true
154154 }
155155
156156
157157 func checkNFTInfo (assetId) = {
158158 let nftData = split(getArtStrByK(keyNFTData(assetId)), "_")
159159 let artSignID = getArtStrByK(keySignID(nftData[6], nftData[5]))
160160 if ((size(artSignID) == 0))
161161 then throw("Artwork not found on SIGN Art")
162162 else if (if (!(checkArtStatus(nftData[6], nftData[5])))
163163 then !(checkArtistStatus(nftData[6]))
164164 else false)
165165 then $Tuple2(false, nftData[6])
166166 else $Tuple2(true, nftData[6])
167167 }
168168
169169
170170 func checkARTExist (artId,creatorAddr) = {
171171 let artSignID = getArtStrByK(keySignID(creatorAddr, artId))
172172 if ((size(artSignID) == 0))
173173 then throw("Artwork not found on SIGN Art")
174174 else if (if (!(checkArtStatus(creatorAddr, artId)))
175175 then !(checkArtistStatus(creatorAddr))
176176 else false)
177177 then false
178178 else true
179179 }
180180
181181
182182 func setTransfers (amount,assetId,nftid,creatorAddr,saleOwner,caller) = {
183183 let amountForSign = fraction(amount, signCut, 100)
184184 let amountForCreator = fraction(amount, creatorCut, 100)
185185 let amountForOwner = (amount - (amountForSign + amountForCreator))
186186 let signFee = ScriptTransfer(Address(fromBase58String(feeReceiver)), amountForSign, assetId)
187187 let creatorFee = ScriptTransfer(Address(fromBase58String(creatorAddr)), amountForCreator, assetId)
188188 let ownerFee = ScriptTransfer(Address(fromBase58String(saleOwner)), amountForOwner, assetId)
189189 let collectorFee = ScriptTransfer(Address(fromBase58String(caller)), 1, fromBase58String(nftid))
190190 $Tuple4(signFee, creatorFee, ownerFee, collectorFee)
191191 }
192192
193193
194194 @Callable(i)
195195 func sellNFT (price,asset) = {
196196 let $t070747113 = idCallerDate(i)
197197 let id = $t070747113._1
198198 let caller = $t070747113._2
199199 let date = $t070747113._3
200200 let $t071187154 = isPayment(i)
201201 let payment = $t071187154._1
202202 let amount = $t071187154._2
203203 let assetId = if (if (isDefined(payment.assetId))
204204 then isSignArtNFT(value(payment.assetId))
205205 else false)
206206 then payment.assetId
207207 else throw("Only SIGN Art NFT accepted.")
208- if (!(acceptedAssetIds(asset)))
209- then throw("Only SIGN, USDN or WAVES accepted")
210- else {
211- let $t074347510 = checkNFTInfo(toBase58String(value(assetId)))
212- let isValidNFT = $t074347510._1
213- let creatorAddr = $t074347510._2
214- if (!(isValidNFT))
215- then throw("Something went wrong")
216- else [StringEntry((((((("sale2nd_info_" + caller) + "_") + toBase58String(value(payment.assetId))) + "_") + creatorAddr) + "_OPEN"), ((((toString(date) + "_") + toString(price)) + "_") + asset)), StringEntry(((("sale2nd_status_" + caller) + "_") + toBase58String(value(payment.assetId))), "OPEN"), StringEntry(("current_owner_on_dapp_" + toBase58String(value(payment.assetId))), caller)]
217- }
208+ let nftName = assetInfo(value(payment.assetId))
209+ if (true)
210+ then throw(("NFT Name = " + value(nftName).name))
211+ else if (!(acceptedAssetIds(asset)))
212+ then throw("Only SIGN, USDN or WAVES accepted")
213+ else {
214+ let $t075507626 = checkNFTInfo(toBase58String(value(assetId)))
215+ let isValidNFT = $t075507626._1
216+ let creatorAddr = $t075507626._2
217+ if (!(isValidNFT))
218+ then throw("Something went wrong")
219+ else [StringEntry((((((("sale2nd_info_" + caller) + "_") + toBase58String(value(payment.assetId))) + "_") + creatorAddr) + "_OPEN"), ((((toString(date) + "_") + toString(price)) + "_") + asset)), StringEntry(((("sale2nd_status_" + caller) + "_") + toBase58String(value(payment.assetId))), "OPEN"), StringEntry(("current_owner_on_dapp_" + toBase58String(value(payment.assetId))), caller)]
220+ }
218221 }
219222
220223
221224
222225 @Callable(i)
223226 func cancelSale (nftid) = {
224- let $t081868225 = idCallerDate(i)
225- let id = $t081868225._1
226- let caller = $t081868225._2
227- let date = $t081868225._3
227+ let $t083028341 = idCallerDate(i)
228+ let id = $t083028341._1
229+ let caller = $t083028341._2
230+ let date = $t083028341._3
228231 let saleOwner = getStrByK(("current_owner_on_dapp_" + nftid))
229232 if ((saleOwner != caller))
230233 then throw("You don't own this NFT")
231234 else {
232235 let saleStatus = getStrByK(((("sale2nd_status_" + caller) + "_") + nftid))
233236 if ((saleStatus != "OPEN"))
234237 then throw("Sale not active")
235238 else {
236239 let creatorAddr = split(getArtStrByK(keyNFTData(nftid)), "_")[6]
237240 let saleInfo = getStrByK(((((((("sale2nd_info_" + caller) + "_") + nftid) + "_") + creatorAddr) + "_") + saleStatus))
238241 [DeleteEntry((((((("sale2nd_info_" + caller) + "_") + nftid) + "_") + creatorAddr) + "_OPEN")), DeleteEntry(((("sale2nd_status_" + caller) + "_") + nftid)), DeleteEntry(("current_owner_on_dapp_" + nftid)), StringEntry((((((((((("sale2nd_info_" + caller) + "_") + nftid) + "_") + creatorAddr) + "_") + toString(date)) + "_") + id) + "_CANCELLED"), saleInfo), ScriptTransfer(Address(fromBase58String(caller)), 1, fromBase58String(nftid))]
239242 }
240243 }
241244 }
242245
243246
244247
245248 @Callable(i)
246249 func buyNFT (nftid) = {
247- let $t093549425 = idCallerDate(i)
248- let id = $t093549425._1
249- let caller = $t093549425._2
250- let date = $t093549425._3
250+ let $t094709541 = idCallerDate(i)
251+ let id = $t094709541._1
252+ let caller = $t094709541._2
253+ let date = $t094709541._3
251254 let saleOwner = getSaleOwnerAndStatus(nftid)
252- let $t094809531 = checkNFTInfo(nftid)
253- let isValidNFT = $t094809531._1
254- let creatorAddr = $t094809531._2
255+ let $t095969647 = checkNFTInfo(nftid)
256+ let isValidNFT = $t095969647._1
257+ let creatorAddr = $t095969647._2
255258 if (!(isValidNFT))
256259 then throw("Something went wrong")
257260 else {
258261 let saleInfo = getStrByK((((((("sale2nd_info_" + saleOwner) + "_") + nftid) + "_") + creatorAddr) + "_OPEN"))
259262 if ((size(saleInfo) == 0))
260263 then throw("Sale Not found!")
261264 else {
262265 let saleInfoArray = split(saleInfo, "_")
263266 if ((parseInt(saleInfoArray[1]) == 0))
264267 then throw("Offer only")
265268 else {
266- let $t098679903 = isPayment(i)
267- let payment = $t098679903._1
268- let amount = $t098679903._2
269+ let $t0998310019 = isPayment(i)
270+ let payment = $t0998310019._1
271+ let amount = $t0998310019._2
269272 if (if ((saleInfoArray[1] != toString(amount)))
270273 then true
271274 else (saleInfoArray[2] != toBase58String(value(payment.assetId))))
272275 then throw("Payment infos don't match.")
273276 else {
274277 let amountForSign = fraction(amount, signCut, 100)
275278 let amountForCreator = fraction(amount, creatorCut, 100)
276279 let amountForOwner = (amount - (amountForSign + amountForCreator))
277- let $t01032610454 = setTransfers(amount, payment.assetId, nftid, creatorAddr, saleOwner, caller)
278- let signFee = $t01032610454._1
279- let creatorFee = $t01032610454._2
280- let ownerFee = $t01032610454._3
281- let collectorFee = $t01032610454._4
280+ let $t01044210570 = setTransfers(amount, payment.assetId, nftid, creatorAddr, saleOwner, caller)
281+ let signFee = $t01044210570._1
282+ let creatorFee = $t01044210570._2
283+ let ownerFee = $t01044210570._3
284+ let collectorFee = $t01044210570._4
282285 [DeleteEntry((((((("sale2nd_info_" + saleOwner) + "_") + nftid) + "_") + creatorAddr) + "_OPEN")), DeleteEntry(((("sale2nd_status_" + saleOwner) + "_") + nftid)), DeleteEntry(("current_owner_on_dapp_" + nftid)), StringEntry((((((((((("sale2nd_info_" + saleOwner) + "_") + nftid) + "_") + creatorAddr) + "_") + toString(date)) + "_") + id) + "_CLOSED"), ((((((toString(date) + "_") + toString(amount)) + "_") + toBase58String(value(payment.assetId))) + "_to_") + caller)), signFee, creatorFee, ownerFee, collectorFee]
283286 }
284287 }
285288 }
286289 }
287290 }
288291
289292
290293
291294 @Callable(i)
292295 func setOffer (nftid) = {
293- let $t01154211584 = idCallerDate(i)
294- let id = $t01154211584._1
295- let offerOwner = $t01154211584._2
296- let date = $t01154211584._3
297- let $t01158911625 = isPayment(i)
298- let payment = $t01158911625._1
299- let amount = $t01158911625._2
296+ let $t01165811700 = idCallerDate(i)
297+ let id = $t01165811700._1
298+ let offerOwner = $t01165811700._2
299+ let date = $t01165811700._3
300+ let $t01170511741 = isPayment(i)
301+ let payment = $t01170511741._1
302+ let amount = $t01170511741._2
300303 let assetId = if (!(isDefined(payment.assetId)))
301304 then "WAVES"
302305 else toBase58String(value(payment.assetId))
303306 if (!(acceptedAssetIds(assetId)))
304307 then throw("asset not accepted")
305308 else {
306- let $t01181111862 = checkNFTInfo(nftid)
307- let isValidNFT = $t01181111862._1
308- let creatorAddr = $t01181111862._2
309+ let $t01192711978 = checkNFTInfo(nftid)
310+ let isValidNFT = $t01192711978._1
311+ let creatorAddr = $t01192711978._2
309312 if (!(isValidNFT))
310313 then throw("Something went wrong")
311314 else {
312315 let saleOwner = getSaleOwnerAndStatus(nftid)
313316 [StringEntry((((((((("offer2nd_" + offerOwner) + "_") + nftid) + "_") + saleOwner) + "_") + id) + "_OPEN"), ((((((((toString(date) + "_") + toString(amount)) + "_") + assetId) + "_") + offerOwner) + "_") + id))]
314317 }
315318 }
316319 }
317320
318321
319322
320323 @Callable(i)
321324 func acceptOffer (nftid,offerId,offerOwner) = {
322- let $t01241012480 = idCallerDate(i)
323- let id = $t01241012480._1
324- let caller = $t01241012480._2
325- let date = $t01241012480._3
325+ let $t01252612596 = idCallerDate(i)
326+ let id = $t01252612596._1
327+ let caller = $t01252612596._2
328+ let date = $t01252612596._3
326329 let saleOwner = getSaleOwnerAndStatus(nftid)
327330 if ((caller != saleOwner))
328331 then throw("You cannot do this action")
329332 else {
330333 let offerExist = getStrByK((((((((("offer2nd_" + offerOwner) + "_") + nftid) + "_") + saleOwner) + "_") + offerId) + "_OPEN"))
331334 if ((offerExist == ""))
332335 then throw("Offer not found or not for sale")
333336 else {
334- let $t01278512836 = checkNFTInfo(nftid)
335- let isValidNFT = $t01278512836._1
336- let creatorAddr = $t01278512836._2
337+ let $t01290112952 = checkNFTInfo(nftid)
338+ let isValidNFT = $t01290112952._1
339+ let creatorAddr = $t01290112952._2
337340 if (!(isValidNFT))
338341 then throw("Something went wrong")
339342 else {
340343 let saleInfo = getStrByK((((((("sale2nd_info_" + saleOwner) + "_") + nftid) + "_") + creatorAddr) + "_OPEN"))
341344 if ((size(saleInfo) == 0))
342345 then throw("Sale Not found!")
343346 else {
344347 let bidDataKey = ((((((("offer2nd_" + offerOwner) + "_") + nftid) + "_") + saleOwner) + "_") + offerId)
345- let $t01317213231 = getBidData(bidDataKey)
346- let bidDataArr = $t01317213231._1
347- let assetId = $t01317213231._2
348- let bidData = $t01317213231._3
348+ let $t01328813347 = getBidData(bidDataKey)
349+ let bidDataArr = $t01328813347._1
350+ let assetId = $t01328813347._2
351+ let bidData = $t01328813347._3
349352 let amount = value(parseInt(bidDataArr[1]))
350- let $t01328513412 = setTransfers(amount, assetId, nftid, creatorAddr, saleOwner, bidDataArr[3])
351- let signFee = $t01328513412._1
352- let creatorFee = $t01328513412._2
353- let ownerFee = $t01328513412._3
354- let collectorFee = $t01328513412._4
353+ let $t01340113528 = setTransfers(amount, assetId, nftid, creatorAddr, saleOwner, bidDataArr[3])
354+ let signFee = $t01340113528._1
355+ let creatorFee = $t01340113528._2
356+ let ownerFee = $t01340113528._3
357+ let collectorFee = $t01340113528._4
355358 [DeleteEntry((((((("sale2nd_info_" + saleOwner) + "_") + nftid) + "_") + creatorAddr) + "_OPEN")), DeleteEntry((bidDataKey + "_OPEN")), DeleteEntry(((("sale2nd_status_" + saleOwner) + "_") + nftid)), DeleteEntry(("current_owner_on_dapp_" + nftid)), StringEntry((((((bidDataKey + "_") + toString(date)) + "_") + id) + "_CLOSED"), ((((((((toString(date) + "_") + toString(amount)) + "_") + toBase58String(value(assetId))) + "_") + offerOwner) + "_") + offerId)), StringEntry((((((((((("sale2nd_info_" + saleOwner) + "_") + nftid) + "_") + creatorAddr) + "_") + toString(date)) + "_") + id) + "_CLOSED"), ((((((toString(date) + "_") + toString(amount)) + "_") + toBase58String(value(assetId))) + "_to_") + offerOwner)), signFee, creatorFee, ownerFee, collectorFee]
356359 }
357360 }
358361 }
359362 }
360363 }
361364
362365
363366
364367 @Callable(i)
365368 func cancelOffer (nftid,offerId,saleOwner) = {
366- let $t01418614247 = idCallerDate(i)
367- let id = $t01418614247._1
368- let caller = $t01418614247._2
369- let date = $t01418614247._3
369+ let $t01430214363 = idCallerDate(i)
370+ let id = $t01430214363._1
371+ let caller = $t01430214363._2
372+ let date = $t01430214363._3
370373 let bidDataKey = ((((((("offer2nd_" + caller) + "_") + nftid) + "_") + saleOwner) + "_") + offerId)
371- let $t01432814387 = getBidData(bidDataKey)
372- let bidDataArr = $t01432814387._1
373- let assetId = $t01432814387._2
374- let bidData = $t01432814387._3
374+ let $t01444414503 = getBidData(bidDataKey)
375+ let bidDataArr = $t01444414503._1
376+ let assetId = $t01444414503._2
377+ let bidData = $t01444414503._3
375378 [DeleteEntry((bidDataKey + "_OPEN")), StringEntry((((((bidDataKey + "_") + toString(date)) + "_") + id) + "_CANCELLED"), ((bidData + "_") + toString(date))), ScriptTransfer(Address(fromBase58String(caller)), parseIntValue(bidDataArr[1]), assetId)]
376379 }
377380
378381
379382
380383 @Callable(i)
381384 func makeRequest (artId,creatorAddr) = {
382- let $t01472214766 = idCallerDate(i)
383- let id = $t01472214766._1
384- let requestOwner = $t01472214766._2
385- let date = $t01472214766._3
386- let $t01477114807 = isPayment(i)
387- let payment = $t01477114807._1
388- let amount = $t01477114807._2
385+ let $t01483814882 = idCallerDate(i)
386+ let id = $t01483814882._1
387+ let requestOwner = $t01483814882._2
388+ let date = $t01483814882._3
389+ let $t01488714923 = isPayment(i)
390+ let payment = $t01488714923._1
391+ let amount = $t01488714923._2
389392 let assetId = if (!(isDefined(payment.assetId)))
390393 then "WAVES"
391394 else toBase58String(value(payment.assetId))
392395 if (!(acceptedAssetIds(assetId)))
393396 then throw("asset not accepted")
394397 else {
395398 let isValidART = checkARTExist(artId, creatorAddr)
396399 if (!(isValidART))
397400 then throw("Something went wrong")
398401 else [StringEntry((((((((("request2nd_" + requestOwner) + "_") + creatorAddr) + "_") + artId) + "_") + id) + "_OPEN"), ((((((((((toString(date) + "_") + toString(amount)) + "_") + toBase58String(value(payment.assetId))) + "_") + artId) + "_") + requestOwner) + "_") + id))]
399402 }
400403 }
401404
402405
403406
404407 @Callable(i)
405408 func fillRequest (artId,requestOwner,offerId) = {
406- let $t01558215624 = idCallerDate(i)
407- let id = $t01558215624._1
408- let saleOwner = $t01558215624._2
409- let date = $t01558215624._3
410- let $t01562915673 = isPayment(i)
411- let payment = $t01562915673._1
412- let amountAttached = $t01562915673._2
409+ let $t01569815740 = idCallerDate(i)
410+ let id = $t01569815740._1
411+ let saleOwner = $t01569815740._2
412+ let date = $t01569815740._3
413+ let $t01574515789 = isPayment(i)
414+ let payment = $t01574515789._1
415+ let amountAttached = $t01574515789._2
413416 let NFTid = if (if (isDefined(payment.assetId))
414417 then isSignArtNFT(value(payment.assetId))
415418 else false)
416419 then payment.assetId
417420 else throw("No NFT found")
418421 let NFTdata = split(getArtStrByK(("nft_" + toBase58String(value(NFTid)))), "_")
419422 if ((size(NFTdata) == 0))
420423 then throw("No NFT found")
421424 else {
422425 let requestData = split(getStrByK((((((((("request2nd_" + requestOwner) + "_") + NFTdata[6]) + "_") + artId) + "_") + offerId) + "_OPEN")), "_")
423426 if ((size(requestData) == 1))
424427 then throw("No request found")
425428 else if ((requestData[3] != NFTdata[5]))
426429 then throw("This NFT don't match the requested artwork")
427430 else {
428431 let amount = value(parseInt(requestData[1]))
429- let $t01639316568 = setTransfers(amount, fromBase58String(requestData[2]), toBase58String(value(NFTid)), NFTdata[6], saleOwner, requestData[4])
430- let signFee = $t01639316568._1
431- let creatorFee = $t01639316568._2
432- let ownerFee = $t01639316568._3
433- let collectorFee = $t01639316568._4
432+ let $t01650916684 = setTransfers(amount, fromBase58String(requestData[2]), toBase58String(value(NFTid)), NFTdata[6], saleOwner, requestData[4])
433+ let signFee = $t01650916684._1
434+ let creatorFee = $t01650916684._2
435+ let ownerFee = $t01650916684._3
436+ let collectorFee = $t01650916684._4
434437 [DeleteEntry((((((((("request2nd_" + requestOwner) + "_") + NFTdata[6]) + "_") + artId) + "_") + offerId) + "_OPEN")), StringEntry((((((((("request2nd_" + requestOwner) + "_") + NFTdata[6]) + "_") + artId) + "_") + offerId) + "_CLOSED"), ((((((((((((toString(date) + "_") + toString(amount)) + "_") + requestData[2]) + "_") + artId) + "_") + requestOwner) + "_") + saleOwner) + "_") + id)), signFee, creatorFee, ownerFee, collectorFee]
435438 }
436439 }
437440 }
438441
439442
440443
441444 @Callable(i)
442445 func cancelRequest (artId,creatorAddr,requestId) = {
443- let $t01702817072 = idCallerDate(i)
444- let id = $t01702817072._1
445- let requestOwner = $t01702817072._2
446- let date = $t01702817072._3
446+ let $t01714417188 = idCallerDate(i)
447+ let id = $t01714417188._1
448+ let requestOwner = $t01714417188._2
449+ let date = $t01714417188._3
447450 let requesDataKey = ((((((("request2nd_" + requestOwner) + "_") + creatorAddr) + "_") + artId) + "_") + requestId)
448451 let requestData = getStrByK((requesDataKey + "_OPEN"))
449452 if ((size(requestData) == 0))
450453 then throw("Request not found")
451454 else {
452455 let requestDataArr = split(requestData, "_")
453456 [DeleteEntry((requesDataKey + "_OPEN")), StringEntry((((((requesDataKey + "_") + toString(date)) + "_") + id) + "_CANCELLED"), ((requestData + "_") + toString(date))), ScriptTransfer(Address(fromBase58String(requestOwner)), parseIntValue(requestDataArr[1]), fromBase58String(requestDataArr[2]))]
454457 }
455458 }
456459
457460
458461
459462 @Callable(i)
460463 func deleteEntry (entry) = {
461464 let caller = toString(addressFromPublicKey(i.callerPublicKey))
462465 if ((caller == chris))
463466 then [DeleteEntry(entry)]
464467 else throw("no")
465468 }
466469
467470

github/deemru/w8io/026f985 
85.86 ms