tx · HrM3MX1xqNoX6tNPaSuCdjshYxAHHNqGVVvU5vt4peXy

3Mpyt9mstw2DAmePxv4vs9h73KPMWNYycjH:  -0.01000000 Waves

2021.06.14 09:22 [1569639] smart account 3Mpyt9mstw2DAmePxv4vs9h73KPMWNYycjH > SELF 0.00000000 Waves

{ "type": 13, "id": "HrM3MX1xqNoX6tNPaSuCdjshYxAHHNqGVVvU5vt4peXy", "fee": 1000000, "feeAssetId": null, "timestamp": 1623651778906, "version": 2, "chainId": 84, "sender": "3Mpyt9mstw2DAmePxv4vs9h73KPMWNYycjH", "senderPublicKey": "Hmth5b3KoYWLBiaWzSbk5xGvxzadP9eX9vjANHfrU1kh", "proofs": [ "63GVvvopePFc3bCaRXsiFnLdDKTHnTNDZdq9CG2XgYGFdGa6srRHkCQoBVGvjN2QXNA8zQnUYXbC26eSBZb9YjmP" ], "script": "base64:AAIEAAAAAAAAAEAIAhIECgIBCBIFCgMIAQgSAwoBCBIDCgEIEgMKAQgSBQoDCAgIEgUKAwgICBIECgIICBIFCgMICAgSBQoDCAgIAAAAKgAAAAAIdW5pdFRlc3QGAAAAAAlvcmFjbGVGZWUJAQAAAAV2YWx1ZQAAAAEJAAQmAAAAAQIAAAAjM04yczVSdGFIUEJlbkNzeDJFQ2NvRlJiWUh4M25vWmhYVzEAAAAACHNpZ25EYXBwCQEAAAAFdmFsdWUAAAABCQAEJgAAAAECAAAAIzNOQzI4aFNpdnJtc1RVWGFZRDF4NkwzNjJKNFpwVW5vVGRCAAAAAAxhcnR3b3Jrc0RhcHAJAQAAAAV2YWx1ZQAAAAEJAAQmAAAAAQIAAAAjM05CeW5mYlhDMkthc3RVeGh1a2NNVWFFNThLOWNCZEI5VVkAAAAAC2ZlZVJlY2VpdmVyAgAAACMzTjFFNnRYZGRSb1ZhUmZROWRRM3ZnNUxhVzJmc2Q4SEt1YgAAAAAIdXNlckRhcHADBQAAAAh1bml0VGVzdAkBAAAABXZhbHVlAAAAAQkABCYAAAABAgAAACMzTXQ0UkdNRXlqU1dZQW9jVFBxZDU1d2RIUVFCM1BVMlVDbQkBAAAABXZhbHVlAAAAAQkABCYAAAABAgAAACMzTjh4WGFZakUyN0FhNzlkNWhIcmhIdTlIYUZvVEJtaERFagAAAAANd2hpdGVsaXN0RGFwcAkBAAAABXZhbHVlAAAAAQkABCYAAAABAgAAACMzTjZCYVYxZENCNHpnNDNnb05OSGFDdHZSMTNCY3lKNUdzcQAAAAALc2lnbkFzc2V0SWQBAAAAIOilarzKd0LycGEyNUpPRYO5uR7lmWcXw3Hq2QuhBK3rAAAAAAt1c2RuQXNzZXRJZAEAAAAgD/IcEqzkxDya7EYaqyWosOy6BytGzG2IcvC14pJJAbQAAAAADHdhdmVzQXNzZXRJZAEAAAAAAAAAAAVjaHJpcwIAAAAjM01zRzZqUE5DclZKVXRZQjdYSkJ4Uzd1dFdzWEFmNG45VnAAAAAAB3NpZ25DdXQAAAAAAAAAAAMAAAAACmNyZWF0b3JDdXQAAAAAAAAAAAoAAAAAC2RhcHBSdW5uaW5nCQEAAAALdmFsdWVPckVsc2UAAAACCQAEGwAAAAIFAAAACHVzZXJEYXBwAgAA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BQAAABBhbW91bnRGb3JDcmVhdG9yBAAAAAdzaWduRmVlCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAHQWRkcmVzcwAAAAEJAAJZAAAAAQUAAAALZmVlUmVjZWl2ZXIFAAAADWFtb3VudEZvclNpZ24FAAAAB2Fzc2V0SWQEAAAACmNyZWF0b3JGZWUJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABBQAAAAtjcmVhdG9yQWRkcgUAAAAQYW1vdW50Rm9yQ3JlYXRvcgUAAAAHYXNzZXRJZAQAAAAIb3duZXJGZWUJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABBQAAAAlzYWxlT3duZXIFAAAADmFtb3VudEZvck93bmVyBQAAAAdhc3NldElkBAAAAAxjb2xsZWN0b3JORlQJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABBQAAAAZjYWxsZXIAAAAAAAAAAAEJAAJZAAAAAQUAAAAFbmZ0aWQJAAUWAAAABAUAAAAHc2lnbkZlZQUAAAAKY3JlYXRvckZlZQUAAAAIb3duZXJGZWUFAAAADGNvbGxlY3Rvck5GVAEAAAAPdmFsaWRhdGVNaW5TZWxsAAAAAgAAAAdhc3NldElkAAAABXByaWNlBAAAAAxtaW5TZWxsV2F2ZXMDBQAAAAh1bml0VGVzdAAAAAAAAAAACgkBAAAAE2dldEludEJ5S0Zyb21PcmFjbGUAAAABAgAAAA53YXZlc19taW5fc2VsbAQAAAALbWluU2VsbFVzZG4AAAAAAAAPQkAEAAAAC21pblNlbGxTaWduAwUAAAAIdW5pdFRlc3QAAAAAAAAAAAEJAABoAAAAAgUAAAAZY3VycmVudENlcnRpZmljYXRpb25QcmljZQAAAAAAAAAAAgMDAwMDCQAAAAAAAAIFAAAAB2Fzc2V0SWQJAAJYAAAAAQUAAAALdXNkbkFzc2V0SWQJAABmAAAAAgUAAAALbWluU2VsbFVzZG4FAAAABXByaWNlBwkBAAAAAiE9AAAAAgUAAAAFcHJpY2UAAAAAAAAAAAAHBgMDCQAAAAAAAAIFAAAAB2Fzc2V0SWQJ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", "height": 1569639, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: none Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 4 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+let unitTest = true
5+
6+let oracleFee = value(addressFromString("3N2s5RtaHPBenCsx2ECcoFRbYHx3noZhXW1"))
7+
8+let signDapp = value(addressFromString("3NC28hSivrmsTUXaYD1x6L362J4ZpUnoTdB"))
9+
10+let artworksDapp = value(addressFromString("3NBynfbXC2KastUxhukcMUaE58K9cBdB9UY"))
11+
12+let feeReceiver = "3N1E6tXddRoVaRfQ9dQ3vg5LaW2fsd8HKub"
13+
14+let userDapp = if (unitTest)
15+ then value(addressFromString("3Mt4RGMEyjSWYAocTPqd55wdHQQB3PU2UCm"))
16+ else value(addressFromString("3N8xXaYjE27Aa79d5hHrhHu9HaFoTBmhDEj"))
17+
18+let whitelistDapp = value(addressFromString("3N6BaV1dCB4zg43goNNHaCtvR13BcyJ5Gsq"))
19+
20+let signAssetId = base58'Gf9t8FA4H3ssoZPCwrg3KwUFCci8zuUFP9ssRsUY3s6a'
21+
22+let usdnAssetId = base58'25FEqEjRkqK6yCkiT7Lz6SAYz7gUFCtxfCChnrVFD5AT'
23+
24+let wavesAssetId = base58''
25+
26+let chris = "3MsG6jPNCrVJUtYB7XJBxS7utWsXAf4n9Vp"
27+
28+let signCut = 3
29+
30+let creatorCut = 10
31+
32+let dappRunning = valueOrElse(getBoolean(userDapp, "conf_dapp_is_running"), true)
33+
34+let maintenanceMSG = valueOrElse(getString(userDapp, "conf_maintenance_msg"), "")
35+
36+let userSuspended = "SUSPENDED"
37+
38+let userRemoved = "REMOVED"
39+
40+let artIllegal = "ILLEGAL"
41+
42+let artSuspended = "SUSPENDED"
43+
44+func getUserStrByK (key) = valueOrElse(getString(userDapp, key), "Error")
45+
46+
47+func getArtStrByK (key) = valueOrElse(getString(artworksDapp, key), "")
48+
49+
50+func getStrByK (key) = valueOrElse(getString(this, key), "")
51+
52+
53+func getIntByK (key) = valueOrElse(getInteger(this, key), 0)
54+
55+
56+func keyUserStatus (addr) = ("user_status_" + addr)
57+
58+
59+func keySignID (artistAddr,artId) = ((("art_signid_" + artId) + "_") + artistAddr)
60+
61+
62+func keyFlag (artistAddr,artId) = ((("art_flag_" + artId) + "_") + artistAddr)
63+
64+
65+func keyNFTData (id) = ("nft_" + id)
66+
67+
68+func getIntByKFromOracle (key) = valueOrErrorMessage(getInteger(oracleFee, key), "Integer undefine or 0 in oracle")
69+
70+
71+let currentCertificationPrice = getIntByKFromOracle(("certification_fee_" + toBase58String(signAssetId)))
72+
73+func idCallerDate (i) = if (!(dappRunning))
74+ then throw(maintenanceMSG)
75+ else $Tuple3(toBase58String(i.transactionId), toBase58String(i.caller.bytes), lastBlock.timestamp)
76+
77+
78+func isPayment (i) = if ((size(i.payments) == 0))
79+ then throw("No payment attached")
80+ else {
81+ let payment = value(i.payments[0])
82+ let amount = value(payment.amount)
83+ $Tuple2(payment, amount)
84+ }
85+
86+
87+func isSignArtNFT (id) = {
88+ let assetDetails = value(assetInfo(id))
89+ if (if (if (if ((assetDetails.quantity != 1))
90+ then true
91+ else (assetDetails.decimals != 0))
92+ then true
93+ else (assetDetails.reissuable != false))
94+ then true
95+ else (assetDetails.issuer != artworksDapp))
96+ then false
97+ else true
98+ }
99+
100+
101+func acceptedAssetIds (assetId) = if (if (if (if ((assetId != toBase58String(signAssetId)))
102+ then (assetId != toBase58String(wavesAssetId))
103+ else false)
104+ then (assetId != "WAVES")
105+ else false)
106+ then (assetId != toBase58String(usdnAssetId))
107+ else false)
108+ then false
109+ else true
110+
111+
112+func getBidAssetId (assetId) = if ((assetId == "WAVES"))
113+ then unit
114+ else fromBase58String(assetId)
115+
116+
117+func getSaleOwnerAndStatus (nftid) = {
118+ let saleOwner = getStrByK(("current_owner_on_dapp_" + nftid))
119+ if ((size(saleOwner) == 0))
120+ then throw("NFT not found")
121+ else {
122+ let saleStatus = getStrByK(((("sale2nd_status_" + saleOwner) + "_") + nftid))
123+ if ((saleStatus != "OPEN"))
124+ then throw("NFT not for sale")
125+ else saleOwner
126+ }
127+ }
128+
129+
130+func getBidData (key) = {
131+ let bidData = getStrByK((key + "_OPEN"))
132+ if ((bidData == ""))
133+ then throw("Offer not found")
134+ else {
135+ let bidDataArr = split(bidData, "_")
136+ let assetId = getBidAssetId(bidDataArr[2])
137+ $Tuple3(bidDataArr, assetId, bidData)
138+ }
139+ }
140+
141+
142+func checkArtStatus (addr,id) = {
143+ let artStatus = getArtStrByK(keyFlag(addr, id))
144+ if (if ((artStatus == artIllegal))
145+ then true
146+ else (artStatus == artSuspended))
147+ then throw(("Original Artwork flagged as " + artStatus))
148+ else true
149+ }
150+
151+
152+func checkArtistStatus (addr) = {
153+ let artistStatus = getUserStrByK(keyUserStatus(addr))
154+ if (containsElement([userSuspended, userRemoved], artistStatus))
155+ then throw(("Original Artist " + artistStatus))
156+ else true
157+ }
158+
159+
160+func checkNFTInfo (assetId) = {
161+ let nftData = split(getArtStrByK(keyNFTData(assetId)), "_")
162+ let artSignID = getArtStrByK(keySignID(nftData[6], nftData[5]))
163+ if (if (!(checkArtStatus(nftData[6], nftData[5])))
164+ then !(checkArtistStatus(nftData[6]))
165+ else false)
166+ then $Tuple4(false, nftData[5], nftData[6], artSignID)
167+ else $Tuple4(true, nftData[5], nftData[6], artSignID)
168+ }
169+
170+
171+func checkARTExist (artId,creatorAddr) = {
172+ let artSignID = getArtStrByK(keySignID(creatorAddr, artId))
173+ if ((size(artSignID) == 0))
174+ then throw("Artwork not found on SIGN Art")
175+ else if (if (!(checkArtStatus(creatorAddr, artId)))
176+ then !(checkArtistStatus(creatorAddr))
177+ else false)
178+ then false
179+ else true
180+ }
181+
182+
183+func setTransfers (amount,assetId,nftid,creatorAddr,saleOwner,caller) = {
184+ let amountForSign = fraction(amount, signCut, 100)
185+ let amountForCreator = fraction(amount, creatorCut, 100)
186+ let amountForOwner = (amount - (amountForSign + amountForCreator))
187+ let signFee = ScriptTransfer(Address(fromBase58String(feeReceiver)), amountForSign, assetId)
188+ let creatorFee = ScriptTransfer(Address(fromBase58String(creatorAddr)), amountForCreator, assetId)
189+ let ownerFee = ScriptTransfer(Address(fromBase58String(saleOwner)), amountForOwner, assetId)
190+ let collectorNFT = ScriptTransfer(Address(fromBase58String(caller)), 1, fromBase58String(nftid))
191+ $Tuple4(signFee, creatorFee, ownerFee, collectorNFT)
192+ }
193+
194+
195+func validateMinSell (assetId,price) = {
196+ let minSellWaves = if (unitTest)
197+ then 10
198+ else getIntByKFromOracle("waves_min_sell")
199+ let minSellUsdn = 1000000
200+ let minSellSign = if (unitTest)
201+ then 1
202+ else (currentCertificationPrice * 2)
203+ if (if (if (if (if ((assetId == toBase58String(usdnAssetId)))
204+ then (minSellUsdn > price)
205+ else false)
206+ then (price != 0)
207+ else false)
208+ then true
209+ else if (if ((assetId == toBase58String(signAssetId)))
210+ then (minSellSign > price)
211+ else false)
212+ then (price != 0)
213+ else false)
214+ then true
215+ else if (if (if ((assetId == toBase58String(wavesAssetId)))
216+ then true
217+ else (assetId == "WAVES"))
218+ then (minSellWaves > price)
219+ else false)
220+ then (price != 0)
221+ else false)
222+ then false
223+ else true
224+ }
225+
226+
227+@Callable(i)
228+func sellNFT (price,asset) = {
229+ let $t081758214 = idCallerDate(i)
230+ let id = $t081758214._1
231+ let caller = $t081758214._2
232+ let date = $t081758214._3
233+ let $t082228258 = isPayment(i)
234+ let payment = $t082228258._1
235+ let amount = $t082228258._2
236+ let nftId = if (if (isDefined(payment.assetId))
237+ then isSignArtNFT(value(payment.assetId))
238+ else false)
239+ then toBase58String(value(payment.assetId))
240+ else throw("Only SIGN Art NFT accepted.")
241+ let $t084408509 = checkNFTInfo(nftId)
242+ let isValidNFT = $t084408509._1
243+ let artId = $t084408509._2
244+ let creatorAddr = $t084408509._3
245+ let artSignID = $t084408509._4
246+ if ((size(artSignID) == 0))
247+ then throw("Artwork not found on SIGN Art")
248+ else if (!(isValidNFT))
249+ then throw("Something went wrong")
250+ else if (!(acceptedAssetIds(asset)))
251+ then throw("Only SIGN, USDN or WAVES accepted")
252+ else if ((price == 0))
253+ then throw("Wrong minimum sell price")
254+ else if (!(validateMinSell(asset, price)))
255+ then throw("Wrong minimum sell price")
256+ else [StringEntry((((((((("sale2nd_info_" + 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)]
257+ }
258+
259+
260+
261+@Callable(i)
262+func updateSalePrice (nftid,price,asset) = {
263+ let $t094239462 = idCallerDate(i)
264+ let id = $t094239462._1
265+ let caller = $t094239462._2
266+ let date = $t094239462._3
267+ let $t094709539 = checkNFTInfo(nftid)
268+ let isValidNFT = $t094709539._1
269+ let artId = $t094709539._2
270+ let creatorAddr = $t094709539._3
271+ let artSignID = $t094709539._4
272+ if ((size(artSignID) == 0))
273+ then throw("Artwork not found on SIGN Art, cancel your sale.")
274+ else if (!(isValidNFT))
275+ then throw("Something went wrong")
276+ else {
277+ let saleOwner = getStrByK(("current_owner_on_dapp_" + nftid))
278+ if ((saleOwner != caller))
279+ then throw("You don't own this NFT")
280+ else {
281+ let saleStatus = getStrByK(((("sale2nd_status_" + caller) + "_") + nftid))
282+ if ((saleStatus != "OPEN"))
283+ then throw("Sale not active")
284+ else if (!(acceptedAssetIds(asset)))
285+ then throw("Only SIGN, USDN or WAVES accepted")
286+ else if ((price == 0))
287+ then throw("Wrong minimum sell price")
288+ else if (!(validateMinSell(asset, price)))
289+ then throw("Wrong minimum sell price")
290+ else {
291+ let saleKey = ((((((("sale2nd_info_" + caller) + "_") + nftid) + "_") + artId) + "_") + creatorAddr)
292+ let saleInfo = split(getStrByK((saleKey + "_OPEN")), "_")
293+[StringEntry((saleKey + "_OPEN"), ((((((((((((saleInfo[0] + "_") + toString(price)) + "_") + asset) + "_") + saleInfo[3]) + "_") + saleInfo[4]) + "_") + saleInfo[5]) + "_") + saleInfo[6]))]
294+ }
295+ }
296+ }
297+ }
298+
299+
300+
301+@Callable(i)
302+func cancelSale (nftid) = {
303+ let $t01071510754 = idCallerDate(i)
304+ let id = $t01071510754._1
305+ let caller = $t01071510754._2
306+ let date = $t01071510754._3
307+ let $t01076210987 = checkNFTInfo(nftid)
308+ let isValidNFT = $t01076210987._1
309+ let artId = $t01076210987._2
310+ let creatorAddr = $t01076210987._3
311+ let artSignID = $t01076210987._4
312+ let saleOwner = getStrByK(("current_owner_on_dapp_" + nftid))
313+ if ((saleOwner != caller))
314+ then throw("You don't own this NFT")
315+ else {
316+ let saleStatus = getStrByK(((("sale2nd_status_" + caller) + "_") + nftid))
317+ if ((saleStatus != "OPEN"))
318+ then throw("Sale not active")
319+ else {
320+ let saleKey = ((((((("sale2nd_info_" + caller) + "_") + nftid) + "_") + artId) + "_") + creatorAddr)
321+ let saleInfo = getStrByK((saleKey + "_OPEN"))
322+[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))]
323+ }
324+ }
325+ }
326+
327+
328+
329+@Callable(i)
330+func buyNFT (nftid) = {
331+ let $t01182211861 = idCallerDate(i)
332+ let id = $t01182211861._1
333+ let caller = $t01182211861._2
334+ let date = $t01182211861._3
335+ let saleOwner = getSaleOwnerAndStatus(nftid)
336+ let $t01191711986 = checkNFTInfo(nftid)
337+ let isValidNFT = $t01191711986._1
338+ let artId = $t01191711986._2
339+ let creatorAddr = $t01191711986._3
340+ let artSignID = $t01191711986._4
341+ if ((size(artSignID) == 0))
342+ then throw("Artwork not found on SIGN Art, cancel your sale.")
343+ else if (!(isValidNFT))
344+ then throw("Something went wrong")
345+ else {
346+ let saleKey = ((((((("sale2nd_info_" + saleOwner) + "_") + nftid) + "_") + artId) + "_") + creatorAddr)
347+ let saleInfo = getStrByK((saleKey + "_OPEN"))
348+ if ((size(saleInfo) == 0))
349+ then throw("Sale Not found!")
350+ else {
351+ let saleInfoArray = split(saleInfo, "_")
352+ if ((parseInt(saleInfoArray[1]) == 0))
353+ then throw("Offer only")
354+ else {
355+ let $t01246412500 = isPayment(i)
356+ let payment = $t01246412500._1
357+ let amount = $t01246412500._2
358+ let paymentAssetStr = if (isDefined(payment.assetId))
359+ then toBase58String(value(payment.assetId))
360+ else ""
361+ if (if ((saleInfoArray[1] != toString(amount)))
362+ then true
363+ else (saleInfoArray[2] != paymentAssetStr))
364+ then throw("Payment infos don't match.")
365+ else {
366+ let amountForSign = fraction(amount, signCut, 100)
367+ let amountForCreator = fraction(amount, creatorCut, 100)
368+ let amountForOwner = (amount - (amountForSign + amountForCreator))
369+ let $t01301113139 = setTransfers(amount, payment.assetId, nftid, creatorAddr, saleOwner, caller)
370+ let signFee = $t01301113139._1
371+ let creatorFee = $t01301113139._2
372+ let ownerFee = $t01301113139._3
373+ let collectorNFT = $t01301113139._4
374+[DeleteEntry((saleKey + "_OPEN")), DeleteEntry(((("sale2nd_status_" + saleOwner) + "_") + nftid)), DeleteEntry(("current_owner_on_dapp_" + nftid)), StringEntry((((saleKey + "_") + id) + "_CLOSED"), ((((((makeString(saleInfoArray, "_") + "_CLOSED_") + toString(date)) + "_") + id) + "_") + caller)), signFee, creatorFee, ownerFee, collectorNFT]
375+ }
376+ }
377+ }
378+ }
379+ }
380+
381+
382+
383+@Callable(i)
384+func setOffer (nftid) = {
385+ let $t01355813600 = idCallerDate(i)
386+ let id = $t01355813600._1
387+ let offerOwner = $t01355813600._2
388+ let date = $t01355813600._3
389+ let $t01360813644 = isPayment(i)
390+ let payment = $t01360813644._1
391+ let amount = $t01360813644._2
392+ let assetId = if (!(isDefined(payment.assetId)))
393+ then "WAVES"
394+ else toBase58String(value(payment.assetId))
395+ if (!(acceptedAssetIds(assetId)))
396+ then throw("asset not accepted")
397+ else if ((amount == 0))
398+ then throw("Offer of 0 not allowed")
399+ else if (!(validateMinSell(assetId, amount)))
400+ then throw("Wrong minimum sell price")
401+ else {
402+ let $t01398414042 = checkNFTInfo(nftid)
403+ let isValidNFT = $t01398414042._1
404+ let artId = $t01398414042._2
405+ let creatorAddr = $t01398414042._3
406+ if (!(isValidNFT))
407+ then throw("Something went wrong")
408+ else {
409+ let saleOwner = getSaleOwnerAndStatus(nftid)
410+[StringEntry((((((((("offer2nd_" + offerOwner) + "_") + nftid) + "_") + saleOwner) + "_") + id) + "_OPEN"), ((((((((((((((toString(date) + "_") + toString(amount)) + "_") + assetId) + "_") + nftid) + "_") + artId) + "_") + creatorAddr) + "_") + offerOwner) + "_") + id))]
411+ }
412+ }
413+ }
414+
415+
416+
417+@Callable(i)
418+func acceptOffer (nftid,offerId,offerOwner) = {
419+ let $t01459114662 = idCallerDate(i)
420+ let id = $t01459114662._1
421+ let caller = $t01459114662._2
422+ let date = $t01459114662._3
423+ let saleOwner = getSaleOwnerAndStatus(nftid)
424+ if ((caller != saleOwner))
425+ then throw("You cannot do this action")
426+ else {
427+ let bidKey = ((((((("offer2nd_" + offerOwner) + "_") + nftid) + "_") + saleOwner) + "_") + offerId)
428+ let bidValue = getStrByK((bidKey + "_OPEN"))
429+ if ((bidValue == ""))
430+ then throw("Offer not found or not for sale")
431+ else {
432+ let $t01499215050 = checkNFTInfo(nftid)
433+ let isValidNFT = $t01499215050._1
434+ let artId = $t01499215050._2
435+ let creatorAddr = $t01499215050._3
436+ if (!(isValidNFT))
437+ then throw("Something went wrong")
438+ else {
439+ let saleKey = ((((((("sale2nd_info_" + saleOwner) + "_") + nftid) + "_") + artId) + "_") + creatorAddr)
440+ let saleValue = getStrByK((saleKey + "_OPEN"))
441+ if ((size(saleValue) == 0))
442+ then throw("Sale Not found!")
443+ else {
444+ let saleValArr = split(saleValue, "_")
445+ let $t01540515460 = getBidData(bidKey)
446+ let bidDataArr = $t01540515460._1
447+ let assetId = $t01540515460._2
448+ let bidData = $t01540515460._3
449+ let amount = value(parseInt(bidDataArr[1]))
450+ let $t01551715644 = setTransfers(amount, assetId, nftid, creatorAddr, saleOwner, bidDataArr[6])
451+ let signFee = $t01551715644._1
452+ let creatorFee = $t01551715644._2
453+ let ownerFee = $t01551715644._3
454+ let collectorNFT = $t01551715644._4
455+[DeleteEntry((saleKey + "_OPEN")), DeleteEntry((bidKey + "_OPEN")), DeleteEntry(((("sale2nd_status_" + saleOwner) + "_") + nftid)), DeleteEntry(("current_owner_on_dapp_" + nftid)), StringEntry((bidKey + "_CLOSED"), ((((bidValue + "_CLOSED_") + toString(date)) + "_") + id)), StringEntry((((saleKey + "_") + id) + "_CLOSED"), ((((((((((makeString(saleValArr, "_") + "_CLOSED-OFFER_") + toString(date)) + "_") + id) + "_") + offerOwner) + "_") + toString(amount)) + "_") + toBase58String(value(assetId)))), signFee, creatorFee, ownerFee, collectorNFT]
456+ }
457+ }
458+ }
459+ }
460+ }
461+
462+
463+
464+@Callable(i)
465+func cancelOffer (nftid,offerId,saleOwner) = {
466+ let $t01631116373 = idCallerDate(i)
467+ let id = $t01631116373._1
468+ let caller = $t01631116373._2
469+ let date = $t01631116373._3
470+ let bidKey = ((((((("offer2nd_" + caller) + "_") + nftid) + "_") + saleOwner) + "_") + offerId)
471+ let $t01645116506 = getBidData(bidKey)
472+ let bidDataArr = $t01645116506._1
473+ let assetId = $t01645116506._2
474+ let bidData = $t01645116506._3
475+[DeleteEntry((bidKey + "_OPEN")), StringEntry((bidKey + "_CANCELLED"), ((((bidData + "_CANCELLED_") + toString(date)) + "_") + id)), ScriptTransfer(Address(fromBase58String(caller)), parseIntValue(bidDataArr[1]), assetId)]
476+ }
477+
478+
479+
480+@Callable(i)
481+func makeRequest (artId,creatorAddr) = {
482+ let $t01684416888 = idCallerDate(i)
483+ let id = $t01684416888._1
484+ let requestOwner = $t01684416888._2
485+ let date = $t01684416888._3
486+ let $t01689616932 = isPayment(i)
487+ let payment = $t01689616932._1
488+ let amount = $t01689616932._2
489+ let assetId = if (!(isDefined(payment.assetId)))
490+ then "WAVES"
491+ else toBase58String(value(payment.assetId))
492+ if (!(acceptedAssetIds(assetId)))
493+ then throw("asset not accepted")
494+ else if (!(validateMinSell(assetId, amount)))
495+ then throw("Wrong minimum sell price")
496+ else {
497+ let isValidART = checkARTExist(artId, creatorAddr)
498+ if (!(isValidART))
499+ then throw("Something went wrong")
500+ else [StringEntry((((((((("request2nd_" + requestOwner) + "_") + creatorAddr) + "_") + artId) + "_") + id) + "_OPEN"), ((((((((((toString(date) + "_") + toString(amount)) + "_") + toBase58String(value(payment.assetId))) + "_") + artId) + "_") + requestOwner) + "_") + id))]
501+ }
502+ }
503+
504+
505+
506+@Callable(i)
507+func fillRequest (artId,requestOwner,offerId) = {
508+ let $t01775617798 = idCallerDate(i)
509+ let id = $t01775617798._1
510+ let saleOwner = $t01775617798._2
511+ let date = $t01775617798._3
512+ let $t01780417848 = isPayment(i)
513+ let payment = $t01780417848._1
514+ let amountAttached = $t01780417848._2
515+ let NFTid = if (if (isDefined(payment.assetId))
516+ then isSignArtNFT(value(payment.assetId))
517+ else false)
518+ then payment.assetId
519+ else throw("No NFT found")
520+ let NFTdata = split(getArtStrByK(("nft_" + toBase58String(value(NFTid)))), "_")
521+ if ((size(NFTdata) == 0))
522+ then throw("No NFT found")
523+ else {
524+ let requestData = split(getStrByK((((((((("request2nd_" + requestOwner) + "_") + NFTdata[6]) + "_") + artId) + "_") + offerId) + "_OPEN")), "_")
525+ if ((size(requestData) == 1))
526+ then throw("No request found")
527+ else if ((requestData[3] != NFTdata[5]))
528+ then throw("This NFT don't match the requested artwork")
529+ else {
530+ let amount = value(parseInt(requestData[1]))
531+ let $t01858118756 = setTransfers(amount, fromBase58String(requestData[2]), toBase58String(value(NFTid)), NFTdata[6], saleOwner, requestData[4])
532+ let signFee = $t01858118756._1
533+ let creatorFee = $t01858118756._2
534+ let ownerFee = $t01858118756._3
535+ let collectorNFT = $t01858118756._4
536+[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, collectorNFT]
537+ }
538+ }
539+ }
540+
541+
542+
543+@Callable(i)
544+func cancelRequest (artId,creatorAddr,requestId) = {
545+ let $t01932119365 = idCallerDate(i)
546+ let id = $t01932119365._1
547+ let requestOwner = $t01932119365._2
548+ let date = $t01932119365._3
549+ let requesDataKey = ((((((("request2nd_" + requestOwner) + "_") + creatorAddr) + "_") + artId) + "_") + requestId)
550+ let requestData = getStrByK((requesDataKey + "_OPEN"))
551+ if ((size(requestData) == 0))
552+ then throw("Request not found")
553+ else {
554+ let requestDataArr = split(requestData, "_")
555+[DeleteEntry((requesDataKey + "_OPEN")), StringEntry((((((requesDataKey + "_") + toString(date)) + "_") + id) + "_CANCELLED"), ((requestData + "_") + toString(date))), ScriptTransfer(Address(fromBase58String(requestOwner)), parseIntValue(requestDataArr[1]), fromBase58String(requestDataArr[2]))]
556+ }
557+ }
558+
559+

github/deemru/w8io/873ac7e 
33.18 ms