tx · 5oLJoJgJuXhbuN7iKaQTW4YgDnFG5yY72MQnU7ivmtxq

3PQUFWidqSaJfKL6mmRXAUmg8fWEzKddvi7:  -0.01400000 Waves

2021.07.02 08:52 [2660340] smart account 3PQUFWidqSaJfKL6mmRXAUmg8fWEzKddvi7 > SELF 0.00000000 Waves

{ "type": 13, "id": "5oLJoJgJuXhbuN7iKaQTW4YgDnFG5yY72MQnU7ivmtxq", "fee": 1400000, "feeAssetId": null, "timestamp": 1625205186425, "version": 2, "chainId": 87, "sender": "3PQUFWidqSaJfKL6mmRXAUmg8fWEzKddvi7", "senderPublicKey": "Acad6kvK82JAdjtvhX9h7uo9FB6qMFjmsgEigP4Ccpeu", "proofs": [ "gtEWUSC5GXBtMXVpob9vSqq3m6uf5gSiCzWbHVDsiq1T6ZSPZVBf1tKx4RUpxr4wkpWGNMKxQbifPMw9ogHM1RS" ], "script": "base64:AAIEAAAAAAAAAB8IAhIECgIECBIECgIBCBIFCgMIAQgSAwoBCBIDCgEIAAAAMgAAAAAIdW5pdFRlc3QHAAAAAAlvcmFjbGVGZWUJAQAAAAV2YWx1ZQAAAAEJAAQmAAAAAQIAAAAjM1BBanJUcVlMZ0ZHMjRrUndpeVUzNG5vdW16NHB6MmtYUEsAAAAACHNpZ25EYXBwCQEAAAAFdmFsdWUAAAABCQAEJgAAAAECAAAAIzNQOWZOTjd3VDZ1MkJwS0ozdDJFZFFpMnBZOW9wVUU2ZXR0AAAAAAxhcnR3b3Jrc0RhcHAJAQAAAAV2YWx1ZQAAAAEJAAQmAAAAAQIAAAAjM1BEQkxkc1VyY3NpUHhOYnQ4ZzJnUVZvZWZLZ3p0M2tKelYAAAAAC2ZlZVJlY2VpdmVyAgAAACMzUEZhY3N2dVU5c24yWnN0YUxDV0tXbjQ4eVQxdmZBUlJSVQAAAAAIdXNlckRhcHAJAQAAAAV2YWx1ZQAAAAEJAAQmAAAAAQIAAAAjM1BHU1dEZ2FkNFJ0Y2VRWVhCcHEyeDczbVhMUkpZTFJxUlAAAAAADXdoaXRlbGlzdERhcHAJAQAAAAV2YWx1ZQAAAAEJAAQmAAAAAQIAAAAjM1BSRlRQbTRoYlVoeGhqUWRFOGNHYVhHQWZ6R0xxNHZhOEgAAAAAC3NpZ25Bc3NldElkAQAAACCDx5KvuFSvDgI1y5lvl1slpMZLfkCDV27XrzwDq+oRHQAAAAALdXNkbkFzc2V0SWQBAAAAILYmKcME9c5TkaQOS3UkL2SMUbH6369UKb1I0h0qsqrRAAAAAAx3YXZlc0Fzc2V0SWQBAAAAAAAAAAAFY2hyaXMCAAAAIzNQNEp1dEJLVzZwQURtOTFGeE1mR0wzRVl4S0p0V1lzV2ZYAAAAAAdzaWduQ3V0AAAAAAAAAAADAAAAAApjcmVhdG9yQ3V0AAAAAAAAAAAKAAAAAA11c2VyU3VzcGVuZGVkAgAAAAlTVVNQRU5ERUQAAAAAC3VzZXJSZW1vdmVkAgAAAAdSRU1PVkVEAAAAAAphcnRJbGxlZ2FsAgAAAAdJTExFR0FMAAAAAAxhcnRTdXNwZW5kZWQCAAAACVNVU1BFTkRFRAAAAAAOZGFwcFJ1bm5pbmdLZXkCAAAAFGNvbmZfZGFwcF9pc19ydW5uaW5nAAAAABFtYWlu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AAABCQEAAAARY2hlY2tBcnRpc3RTdGF0dXMAAAABBQAAAAtjcmVhdG9yQWRkcgcHBgEAAAAMc2V0VHJhbnNmZXJzAAAABgAAAAZhbW91bnQAAAAHYXNzZXRJZAAAAAVuZnRpZAAAAAtjcmVhdG9yQWRkcgAAAAlzYWxlT3duZXIAAAAGY2FsbGVyBAAAAA1hbW91bnRGb3JTaWduCQAAawAAAAMFAAAABmFtb3VudAUAAAAHc2lnbkN1dAAAAAAAAAAAZAQAAAAQYW1vdW50Rm9yQ3JlYXRvcgkAAGsAAAADBQAAAAZhbW91bnQFAAAACmNyZWF0b3JDdXQAAAAAAAAAAGQEAAAADmFtb3VudEZvck93bmVyCQAAZQAAAAIFAAAABmFtb3VudAkAAGQAAAACBQAAAA1hbW91bnRGb3JTaWduBQAAABBhbW91bnRGb3JDcmVhdG9yBAAAAAdzaWduRmVlCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAHQWRkcmVzcwAAAAEJAAJZAAAAAQUAAAALZmVlUmVjZWl2ZXIFAAAADWFtb3VudEZvclNpZ24FAAAAB2Fzc2V0SWQEAAAACmNyZWF0b3JGZWUJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABBQAAAAtjcmVhdG9yQWRkcgUAAAAQYW1vdW50Rm9yQ3JlYXRvcgUAAAAHYXNzZXRJZAQAAAAIb3duZXJGZWUJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABBQAAAAlzYWxlT3duZXIFAAAADmFtb3VudEZvck93bmVyBQAAAAdhc3NldElkBAAAAAxjb2xsZWN0b3JORlQJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABBQAAAAZjYWxsZXIAAAAAAAAAAAEJAAJZAAAAAQUAAAAFbmZ0aWQJAAUWAAAABAUAAAAHc2lnbkZlZQUAAAAKY3JlYXRvckZlZQUAAAAIb3duZXJGZWUFAAAADGNvbGxlY3Rvck5GVAEAAAAPdmFsaWRhdGVNaW5TZWxsAAAAAgAAAAdhc3NldElkAAAABXByaWNlBAAAAAxtaW5TZWxsV2F2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", "height": 2660340, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: AYxLqrw7D9f5NLmZF6Ehssze4KKKTj5qZAvR6eiC34BN Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 4 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+let unitTest = false
5+
6+let oracleFee = value(addressFromString("3PAjrTqYLgFG24kRwiyU34noumz4pz2kXPK"))
7+
8+let signDapp = value(addressFromString("3P9fNN7wT6u2BpKJ3t2EdQi2pY9opUE6ett"))
9+
10+let artworksDapp = value(addressFromString("3PDBLdsUrcsiPxNbt8g2gQVoefKgzt3kJzV"))
11+
12+let feeReceiver = "3PFacsvuU9sn2ZstaLCWKWn48yT1vfARRRU"
13+
14+let userDapp = value(addressFromString("3PGSWDgad4RtceQYXBpq2x73mXLRJYLRqRP"))
15+
16+let whitelistDapp = value(addressFromString("3PRFTPm4hbUhxhjQdE8cGaXGAfzGLq4va8H"))
17+
18+let signAssetId = base58'9sQutD5HnRvjM1uui5cVC4w9xkMPAfYEV8ymug3Mon2Y'
19+
20+let usdnAssetId = base58'DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p'
21+
22+let wavesAssetId = base58''
23+
24+let chris = "3P4JutBKW6pADm91FxMfGL3EYxKJtWYsWfX"
25+
26+let signCut = 3
27+
28+let creatorCut = 10
29+
30+let userSuspended = "SUSPENDED"
31+
32+let userRemoved = "REMOVED"
33+
34+let artIllegal = "ILLEGAL"
35+
36+let artSuspended = "SUSPENDED"
37+
38+let dappRunningKey = "conf_dapp_is_running"
39+
40+let maintenanceMSGKey = "conf_maintenance_msg"
41+
42+let dappRunning = valueOrElse(getBoolean(this, dappRunningKey), true)
43+
44+let maintenanceMSG = valueOrElse(getString(this, maintenanceMSGKey), "")
45+
46+let numSalesK = "num_sales"
47+
48+func getUserStrByK (key) = valueOrElse(getString(userDapp, key), "Error")
49+
50+
51+func getArtStrByK (key) = valueOrElse(getString(artworksDapp, key), "")
52+
53+
54+func getStrByK (key) = valueOrElse(getString(this, key), "")
55+
56+
57+func getIntByK (key) = valueOrElse(getInteger(this, key), 0)
58+
59+
60+func keyUserStatus (addr) = ("user_status_" + addr)
61+
62+
63+func keySignID (artistAddr,artId) = ((("art_signid_" + artId) + "_") + artistAddr)
64+
65+
66+func keyFlag (artistAddr,artId) = ((("art_flag_" + artId) + "_") + artistAddr)
67+
68+
69+func keyNFTData (id) = ("nft_" + id)
70+
71+
72+func getSaleKey (caller,nftId,artId,creatorAddr) = ((((((("sale2nd_info_" + caller) + "_") + nftId) + "_") + artId) + "_") + creatorAddr)
73+
74+
75+func getIntByKFromOracle (key) = valueOrErrorMessage(getInteger(oracleFee, key), "Integer undefine or 0 in oracle")
76+
77+
78+let currentCertificationPrice = getIntByKFromOracle(("certification_fee_" + toBase58String(signAssetId)))
79+
80+func idCallerDate (i) = if (!(dappRunning))
81+ then throw(maintenanceMSG)
82+ else $Tuple3(toBase58String(i.transactionId), toBase58String(i.caller.bytes), lastBlock.timestamp)
83+
84+
85+func isPayment (i) = if ((size(i.payments) == 0))
86+ then throw("No payment attached")
87+ else {
88+ let payment = value(i.payments[0])
89+ let amount = value(payment.amount)
90+ $Tuple2(payment, amount)
91+ }
92+
93+
94+func assetIsValid (assetDetails) = if (if (if ((assetDetails.quantity == 1))
95+ then (assetDetails.decimals == 0)
96+ else false)
97+ then (assetDetails.reissuable == false)
98+ else false)
99+ then (assetDetails.issuer == artworksDapp)
100+ else false
101+
102+
103+func isSignArtNFT (id) = {
104+ let assetDetails = value(assetInfo(id))
105+ assetIsValid(assetDetails)
106+ }
107+
108+
109+func acceptedAssetIds (assetId) = if (if (if (if ((assetId != toBase58String(signAssetId)))
110+ then (assetId != toBase58String(wavesAssetId))
111+ else false)
112+ then (assetId != "WAVES")
113+ else false)
114+ then (assetId != toBase58String(usdnAssetId))
115+ else false)
116+ then false
117+ else true
118+
119+
120+func getBidAssetId (assetId) = if ((assetId == "WAVES"))
121+ then unit
122+ else fromBase58String(assetId)
123+
124+
125+func getSaleOwnerAndStatus (nftid) = {
126+ let saleOwner = getStrByK(("current_owner_on_dapp_" + nftid))
127+ if ((size(saleOwner) == 0))
128+ then throw("NFT not found")
129+ else {
130+ let saleStatus = getStrByK(((("sale2nd_status_" + saleOwner) + "_") + nftid))
131+ if ((saleStatus != "OPEN"))
132+ then throw("NFT not for sale")
133+ else saleOwner
134+ }
135+ }
136+
137+
138+func getBidData (key) = {
139+ let bidData = getStrByK((key + "_OPEN"))
140+ if ((bidData == ""))
141+ then throw("Offer not found")
142+ else {
143+ let bidDataArr = split(bidData, "_")
144+ let assetId = getBidAssetId(bidDataArr[2])
145+ $Tuple3(bidDataArr, assetId, bidData)
146+ }
147+ }
148+
149+
150+func artIsValid (artStatus) = if ((artStatus != artIllegal))
151+ then (artStatus != artSuspended)
152+ else false
153+
154+
155+func checkArtStatus (addr,id) = {
156+ let artStatus = getArtStrByK(keyFlag(addr, id))
157+ if (artIsValid(artStatus))
158+ then true
159+ else throw(("Original Artwork flagged as " + artStatus))
160+ }
161+
162+
163+func checkArtistStatus (addr) = {
164+ let artistStatus = getUserStrByK(keyUserStatus(addr))
165+ if (containsElement([userSuspended, userRemoved], artistStatus))
166+ then throw(("Original Artist " + artistStatus))
167+ else true
168+ }
169+
170+
171+func checkNFTInfo (assetId) = {
172+ let nftData = split(getArtStrByK(keyNFTData(assetId)), "_")
173+ let artSignID = getArtStrByK(keySignID(nftData[6], nftData[5]))
174+ if (if (!(checkArtStatus(nftData[6], nftData[5])))
175+ then !(checkArtistStatus(nftData[6]))
176+ else false)
177+ then $Tuple4(false, nftData[5], nftData[6], artSignID)
178+ else $Tuple4(true, nftData[5], nftData[6], artSignID)
179+ }
180+
181+
182+func checkARTExist (artId,creatorAddr) = {
183+ let artSignID = getArtStrByK(keySignID(creatorAddr, artId))
184+ if ((size(artSignID) == 0))
185+ then throw("Artwork not found on SIGN Art")
186+ else if (if (!(checkArtStatus(creatorAddr, artId)))
187+ then !(checkArtistStatus(creatorAddr))
188+ else false)
189+ then false
190+ else true
191+ }
192+
193+
194+func setTransfers (amount,assetId,nftid,creatorAddr,saleOwner,caller) = {
195+ let amountForSign = fraction(amount, signCut, 100)
196+ let amountForCreator = fraction(amount, creatorCut, 100)
197+ let amountForOwner = (amount - (amountForSign + amountForCreator))
198+ let signFee = ScriptTransfer(Address(fromBase58String(feeReceiver)), amountForSign, assetId)
199+ let creatorFee = ScriptTransfer(Address(fromBase58String(creatorAddr)), amountForCreator, assetId)
200+ let ownerFee = ScriptTransfer(Address(fromBase58String(saleOwner)), amountForOwner, assetId)
201+ let collectorNFT = ScriptTransfer(Address(fromBase58String(caller)), 1, fromBase58String(nftid))
202+ $Tuple4(signFee, creatorFee, ownerFee, collectorNFT)
203+ }
204+
205+
206+func validateMinSell (assetId,price) = {
207+ let minSellWaves = if (unitTest)
208+ then 10
209+ else getIntByKFromOracle("waves_min_sell")
210+ let minSellUsdn = 1000000
211+ let minSellSign = if (unitTest)
212+ then 1
213+ else (currentCertificationPrice * 2)
214+ if (if (if (if (if ((assetId == toBase58String(usdnAssetId)))
215+ then (minSellUsdn > price)
216+ else false)
217+ then (price != 0)
218+ else false)
219+ then true
220+ else if (if ((assetId == toBase58String(signAssetId)))
221+ then (minSellSign > price)
222+ else false)
223+ then (price != 0)
224+ else false)
225+ then true
226+ else if (if (if ((assetId == toBase58String(wavesAssetId)))
227+ then true
228+ else (assetId == "WAVES"))
229+ then (minSellWaves > price)
230+ else false)
231+ then (price != 0)
232+ else false)
233+ then false
234+ else true
235+ }
236+
237+
238+func provideBaseData (i,nftId) = {
239+ let $t084218460 = idCallerDate(i)
240+ let id = $t084218460._1
241+ let caller = $t084218460._2
242+ let date = $t084218460._3
243+ let $t084638532 = checkNFTInfo(nftId)
244+ let isValidNFT = $t084638532._1
245+ let artId = $t084638532._2
246+ let creatorAddr = $t084638532._3
247+ let artSignID = $t084638532._4
248+ $Tuple7(id, caller, date, isValidNFT, artId, creatorAddr, artSignID)
249+ }
250+
251+
252+func updateNumSales () = {
253+ let numSales = getIntByK(numSalesK)
254+ IntegerEntry(numSalesK, (numSales + 1))
255+ }
256+
257+
258+@Callable(invoke)
259+func appRunning (isLive,message) = {
260+ let caller = toString(addressFromPublicKey(invoke.callerPublicKey))
261+ let id = toBase58String(invoke.transactionId)
262+ if (containsElement([chris, toString(this)], caller))
263+ then [BooleanEntry(dappRunningKey, isLive), StringEntry(maintenanceMSGKey, message)]
264+ else throw("You are not allowed to change this")
265+ }
266+
267+
268+
269+@Callable(i)
270+func sellNFT (price,asset) = {
271+ let $t092469282 = isPayment(i)
272+ let payment = $t092469282._1
273+ let amount = $t092469282._2
274+ let nftId = if (if (isDefined(payment.assetId))
275+ then isSignArtNFT(value(payment.assetId))
276+ else false)
277+ then toBase58String(value(payment.assetId))
278+ else throw("Only SIGN Art NFT accepted.")
279+ let $t094619553 = provideBaseData(i, nftId)
280+ let id = $t094619553._1
281+ let caller = $t094619553._2
282+ let date = $t094619553._3
283+ let isValidNFT = $t094619553._4
284+ let artId = $t094619553._5
285+ let creatorAddr = $t094619553._6
286+ let artSignID = $t094619553._7
287+ if ((size(artSignID) == 0))
288+ then throw("Artwork not found on SIGN Art")
289+ else if (!(isValidNFT))
290+ then throw("Not a valid nft")
291+ else if (!(acceptedAssetIds(asset)))
292+ then throw("Only SIGN, USDN or WAVES accepted")
293+ else if ((price == 0))
294+ then throw("Wrong minimum sell price")
295+ else if (!(validateMinSell(asset, price)))
296+ then throw("Wrong minimum sell price")
297+ 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)]
298+ }
299+
300+
301+
302+@Callable(i)
303+func updateSalePrice (nftId,price,asset) = {
304+ let $t01042610518 = provideBaseData(i, nftId)
305+ let id = $t01042610518._1
306+ let caller = $t01042610518._2
307+ let date = $t01042610518._3
308+ let isValidNFT = $t01042610518._4
309+ let artId = $t01042610518._5
310+ let creatorAddr = $t01042610518._6
311+ let artSignID = $t01042610518._7
312+ if ((size(artSignID) == 0))
313+ then throw("Artwork not found on SIGN Art, cancel your sale.")
314+ else if (!(isValidNFT))
315+ then throw("Not a valid nft")
316+ else {
317+ let saleOwner = getStrByK(("current_owner_on_dapp_" + nftId))
318+ if ((saleOwner != caller))
319+ then throw("You don't own this NFT")
320+ else {
321+ let saleStatus = getStrByK(((("sale2nd_status_" + caller) + "_") + nftId))
322+ if ((saleStatus != "OPEN"))
323+ then throw("Sale not active")
324+ else if (!(acceptedAssetIds(asset)))
325+ then throw("Only SIGN, USDN or WAVES accepted")
326+ else if ((price == 0))
327+ then throw("Wrong minimum sell price")
328+ else if (!(validateMinSell(asset, price)))
329+ then throw("Wrong minimum sell price")
330+ else {
331+ let saleKey = getSaleKey(caller, nftId, artId, creatorAddr)
332+ let saleInfo = split(getStrByK((saleKey + "_OPEN")), "_")
333+[StringEntry((saleKey + "_OPEN"), ((((((((((((saleInfo[0] + "_") + toString(price)) + "_") + asset) + "_") + saleInfo[3]) + "_") + saleInfo[4]) + "_") + saleInfo[5]) + "_") + saleInfo[6]))]
334+ }
335+ }
336+ }
337+ }
338+
339+
340+
341+@Callable(i)
342+func cancelSale (nftId) = {
343+ let $t01165811898 = provideBaseData(i, nftId)
344+ let id = $t01165811898._1
345+ let caller = $t01165811898._2
346+ let date = $t01165811898._3
347+ let isValidNFT = $t01165811898._4
348+ let artId = $t01165811898._5
349+ let creatorAddr = $t01165811898._6
350+ let artSignID = $t01165811898._7
351+ let saleOwner = getStrByK(("current_owner_on_dapp_" + nftId))
352+ if ((saleOwner != caller))
353+ then throw("You don't own this NFT")
354+ else {
355+ let saleStatus = getStrByK(((("sale2nd_status_" + caller) + "_") + nftId))
356+ if ((saleStatus != "OPEN"))
357+ then throw("Sale not active")
358+ else {
359+ let saleKey = getSaleKey(caller, nftId, artId, creatorAddr)
360+ let saleInfo = getStrByK((saleKey + "_OPEN"))
361+[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))]
362+ }
363+ }
364+ }
365+
366+
367+
368+@Callable(i)
369+func buyNFT (nftId) = {
370+ let $t01272912821 = provideBaseData(i, nftId)
371+ let id = $t01272912821._1
372+ let caller = $t01272912821._2
373+ let date = $t01272912821._3
374+ let isValidNFT = $t01272912821._4
375+ let artId = $t01272912821._5
376+ let creatorAddr = $t01272912821._6
377+ let artSignID = $t01272912821._7
378+ if ((size(artSignID) == 0))
379+ then throw("Artwork not found on SIGN Art, cancel your sale.")
380+ else if (!(isValidNFT))
381+ then throw("Not a valid nft")
382+ else {
383+ let saleOwner = getSaleOwnerAndStatus(nftId)
384+ let saleKey = getSaleKey(saleOwner, nftId, artId, creatorAddr)
385+ let saleInfo = getStrByK((saleKey + "_OPEN"))
386+ if ((size(saleInfo) == 0))
387+ then throw("Sale Not found!")
388+ else {
389+ let saleInfoArray = split(saleInfo, "_")
390+ if ((parseInt(saleInfoArray[1]) == 0))
391+ then throw("Offer only")
392+ else {
393+ let $t01331813354 = isPayment(i)
394+ let payment = $t01331813354._1
395+ let amount = $t01331813354._2
396+ let paymentAssetStr = if (isDefined(payment.assetId))
397+ then toBase58String(value(payment.assetId))
398+ else ""
399+ if (if ((saleInfoArray[1] != toString(amount)))
400+ then true
401+ else (saleInfoArray[2] != paymentAssetStr))
402+ then throw("Payment infos don't match.")
403+ else {
404+ let amountForSign = fraction(amount, signCut, 100)
405+ let amountForCreator = fraction(amount, creatorCut, 100)
406+ let amountForOwner = (amount - (amountForSign + amountForCreator))
407+ let $t01385713985 = setTransfers(amount, payment.assetId, nftId, creatorAddr, saleOwner, caller)
408+ let signFee = $t01385713985._1
409+ let creatorFee = $t01385713985._2
410+ let ownerFee = $t01385713985._3
411+ let collectorNFT = $t01385713985._4
412+[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]
413+ }
414+ }
415+ }
416+ }
417+ }
418+
419+

github/deemru/w8io/0e76f2f 
34.43 ms