tx · JB4AmsFwcfmU7GvMLf3T4yZoxy18jEnmL3gLKmGaW2Ni

3MrWNTqFcHBqb58Za1A5crQrMV5KJ5DYhtA:  -0.01000000 Waves

2021.08.17 17:18 [1662445] smart account 3MrWNTqFcHBqb58Za1A5crQrMV5KJ5DYhtA > SELF 0.00000000 Waves

{ "type": 13, "id": "JB4AmsFwcfmU7GvMLf3T4yZoxy18jEnmL3gLKmGaW2Ni", "fee": 1000000, "feeAssetId": null, "timestamp": 1629209951146, "version": 2, "chainId": 84, "sender": "3MrWNTqFcHBqb58Za1A5crQrMV5KJ5DYhtA", "senderPublicKey": "9abKuN1XmLjjire2feZH26PmcEWhEXxiHToWSmii3Gn2", "proofs": [ "2PAt2aGUkrFH5oiVNTYJ7cjPtYXSRip3NUvBSSkrC1kdKr6ivAJ8Q6sRCxnX8W2yk5sHZ43LrnQ6P17vL59gL3uQ" ], "script": "base64:AAIFAAAAAAAAC38IAhIICgYICAgICAgSCQoHCAEBCAgBARIECgIICBIDCgEIEgQKAggIEgYKBAgICAgSBQoDCAgIGg4KAmExEgh1bml0VGVzdBoPCgJhMhIJb3JhY2xlRmVlGhEKAmEzEgtmZWVSZWNlaXZlchoOCgJhNBIIdXNlckRhcHAaEwoCYTUSDXdoaXRlbGlzdERhcHAaEwoCYTYSDXNjb25leEFzc2V0SWQaCwoCYTcSBW93bmVyGhgKAmE4EhJzY29uZXhGaXJzdFNlbGxDdXQaEQoCYTkSC2RhcHBSdW5uaW5nGhQKAmIxEg5tYWludGVuYW5jZU1TRxoTCgJiMhINdXNlclN1c3BlbmRlZBoRCgJiMxILdXNlclJlbW92ZWQaFgoCYjQSEHVzZXJVbnJlZ2lzdGVyZWQaEQoCYjUSC3VzZXJBbGxvd2VkGhIKAmI2EgxhdWN0aW9uVHlwZTEaEgoCYjcSDGF1Y3Rpb25UeXBlMhoUCgJiOBIOZ2V0U3RyaW5nQnlLZXkaCQoCYjkSA2tleRofCgJjMRIZZ2V0SW50ZWdlckJ5S2V5RnJvbU9yYWNsZRoVCgJjMhIPZ2V0SW50ZWdlckJ5S2V5GhQKAmMzEg5jaGVja1doaXRlbGlzdBoVCgJjNBIPZ2V0Qm9vbGVhbkJ5S2V5GhMKAmM1Eg1rZXlVc2VyU3RhdHVzGgwKAmM2EgZjYWxsZXIaDQoCYzcSB2tleURhdGUaCwoCYzgSBWFydElkGg0KAmM5EgdrZXlOYW1lGg0KAmQxEgdrZXlEZXNjGhMKAmQyEg1rZXlEaXNwbGF5Q2lkGhAKAmQzEgprZXlNYXhNaW50GhEKAmQ0EgtrZXlNaW5QcmljZRoTCgJkNRINa2V5SGlnaGVzdEJpZBoOCgJkNhIIa2V5QmlkSWQaCwoCZDcSBWJpZElkGhEKAmQ4EgtrZXlEdXJhdGlvbhoUCgJkORIOa2V5QXVjdGlvblR5cGUaDwoCZTESCWtleUlzc3VlZBoSCgJlMhIMS2V5TmZ0SXNzdWVyGgsKAmUzEgVuZnRJZBoPCgJlNBIJa2V5T25TYWxlGg0KAmU1EgdrZXlUYWdzGg0KAmU2EgdrZXlUeXBlGg4KAmU3EghrZXlQcmljZRoYCgJlOBISa2V5QXNzZXRJZEFjY2VwdGVkGhcKAmU5EhFrZXlIYXNoQnlUeGlkQWRkchoKCgJmMRIEdHhpZBoUCgJmMhIOa2V5T3duZXJCeUhhc2gaEAoCZjMSCnNoYTI1Nkhhc2gaGAoCZjQSEmtleVR4aWRCeUhhc2hPd25lchofCgJmNRIZY3VycmVudENlcnRpZmljYXRpb25QcmljZRoUCgJmNhIOdmFsaWRhdGVTdHJpbmcaCQoCZjcSA3N0choJCgJmOBIDbWF4GhIKAmY5Egx2YWxpZGF0ZVVzZXIaEAoCZzESCnVzZXJTdGF0dXMaGQoCZzISE3ZhbGlkYXRlQXJ0d29ya0RhdGEaEAoCZzMSCmNpZERpc3BsYXkaCgoCZzQSBG5hbWUaEQoCZzUSC2Rlc2NyaXB0aW9uGgoKAmc2EgR0YWdzGg8KAmc3EgljaGVja1VzZXIaDwoCZzgSCWlzUGF5bWVudBoHCgJnORIBaRoNCgJoMRIHcGF5bWVudBoMCgJoMhIGYW1vdW50GhUKAmgzEg92YWxpZGF0ZVBheW1lbnQaEAoCaDQSCnQwODk4MjkwMTgaDQoCaDUSB2Fzc2V0SWQaGgoCaDYSFHZhbGlkYXRlUHJpY2VBc3NldElkGhIKAmg3EgxwcmljZUFzc2V0SWQaEgoCaDgSDGFydHdvcmtQcmljZRoQCgJoORIKdDA5NjExOTY0NxoWCgJpMRIQYWNjZXB0ZWRBc3NldElkcxoVCgJpMhIPdmFsaWRhdGVNaW5TZWxsGgsKAmkzEgVwcmljZRoTCgJpNBINbWluU2VsbFNjb25leBoTCgJpNRINZ2V0QmlkQXNzZXRJZBocCgJpNhIWZ2V0UHJpY2VBc3NldElkRnJvbUJpZBoQCgJpNxIKYmlkRGF0YUtleRoNCgJpOBIHYmlkRGF0YRoQCgJpORIKYmlkRGF0YUFychoPCgJqMRIJYmlkQW1vdW50GhAKAmoyEgpiaWRBc3NldElkGhIKAmozEgxpZENhbGxlckRhdGUaEAoCajQSCmlzQmlkQ2hlY2saDAoCajUSBmlzc3VlchoOCgJqNhIIYmlkT3duZXIaEAoCajcSCmdldEFydERhdGEaCwoCajgSBWlzQmlkGhQKAmo5Eg5jYWxsZXJJc0lzc3VlchoOCgJrMRIIdG90YWxORlQaEQoCazISC2FydHdvcmtOYW1lGg4KAmszEghpc09uU2FsZRoQCgJrNBIKYW1vdW50U29sZBoQCgJrNRIKbWF4Q2FuU2VsbBoQCgJrNhIKZ2V0QmlkRGF0YRoSCgJrNxIMdDAxMzUxOTEzNjQ4GhcKAms4EhFnZXRDb21taXNzaW9uRGF0YRoTCgJrORINaXNXaGl0ZWxpc3RlZBoJCgJsMRIDY3V0GhUKAmwyEg9hbW91bnRGb3JTY29uZXgaFgoCbDMSEGFtb3VudEZvckNyZWF0b3IaEwoCbDQSDW5ld0Ftb3VudFNvbGQaEgoCbDUSDGdldElzc3VlRGF0YRoPCgJsNhIJaXNzdWVNZXRhGg4KAmw3Eghpc3N1ZU5GVBoLCgJsOBIFaWRORlQaEAoCbDkSCnNlbGxTdGF0dXMaEAoCbTESCnJlY2VpdmVORlQaEgoCbTISDGdldEJpZEtleVZhbBoKCgJtMxIEZGF0ZRoQCgJtNBIKYXNzZXRJZEJpZBoPCgJtNRIJYmlkRGVsT2xkGg8KAm02EgliaWRVcGRhdGUaDQoCbTcSB2J1eU1pbnQaEgoCbTgSDHQwMTU1MTYxNTU2NhoICgJtORICaWQaEgoCbjESDHQwMTU2NDYxNTc5NxoSCgJuMhIMdDAxNTgwMjE1OTQ4GhIKAm4zEgx0MDE1OTUzMTYwOTUaEgoCbjQSDHQwMTYxMDAxNjI5MBoSCgJuNRIMdDAxNjI5NTE2Mzk0Gg0KAm42Egdzb2xkS2V5Gg8KAm43Eglzb2xkVmFsdWUaDgoCbjgSCHNvbGREYXRhGgwKAm45EgZidXlSZXMaGgoCbzESFHNldEJpZE5vblRyYWRpdGlvbmFsGhIKAm8yEgx0MDI3NzA5Mjc3NDcaEgoCbzMSDHQwMjc3NTIyNzc4OBoMCgJvNBIGYmlkTmJyGhcKAm81EhFzZXRCaWRUcmFkaXRpb25hbBoPCgJvNhIJZW5kSGVpZ2h0GhAKAm83EgpoaWdoZXN0QmlkGhEKAm84EgtjYWxsZGVyRGF0YRoSCgJvORIMaXNQYXltZW50VmFyGh0KAnAxEhdhY2NlcHRCaWROb25UcmFkaXRpb25hbBoaCgJwMhIUYWNjZXB0QmlkVHJhZGl0aW9uYWwaEwoCcDMSDWFtb3VudEJ5QmlkSWQaEwoCcDQSDWNhbmNlbEJpZEltcGwaEgoCcDUSDHQwMjg5NDIyOTA5NBoP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", "height": 1662445, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 7Qf3HV1MQenR9Cs6egeSmnNqb9KDG8tX9GXUB7fvduqW Next: FtNWsyFPm6F3TjJaA5VcMpooc82jm41DFgYcAd6YL5h8 Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let unitTest = false
55
66 let oracleFee = value(addressFromString("3MpZQjzGogmifcEKe8mDd6ribL7nxT9ACye"))
77
88 let feeReceiver = "3N65xLq8JcCeaEiR1TJQ7dBqXBvEy6E48Wz"
99
1010 let userDapp = value(addressFromString("3N9cQgZFPHHVu8wqsn2DkQFehg3h8CNiooA"))
1111
1212 let whitelistDapp = value(addressFromString("3N9xZYGpzMFDXvXuctmU6zV8qSzm2ZfF31f"))
1313
1414 let sconexAssetId = base58'DZ8ALmuLeSZ2ocsYLAcL9MiXBFDbMNQG9LtitREyU5ZC'
1515
1616 let owner = "3N1Dhq5ZZyoojQisuTLusYjnGisqrxDwGLy"
1717
1818 let sconexFirstSellCut = 150
1919
2020 let dappRunning = valueOrElse(getBoolean(userDapp, "conf_dapp_is_running"), true)
2121
2222 let maintenanceMSG = valueOrElse(getString(userDapp, "conf_maintenance_msg"), "")
2323
2424 let userSuspended = "SUSPENDED"
2525
2626 let userRemoved = "REMOVED"
2727
2828 let userUnregistered = "UNREGISTERED"
2929
3030 let userAllowed = "ALLOWED"
3131
3232 let auctionType1 = "BIDTYPE"
3333
3434 let auctionType2 = "TRADITIONAL"
3535
3636 func getStringByKey (key) = valueOrElse(getString(this, key), "")
3737
3838
3939 func getIntegerByKeyFromOracle (key) = valueOrErrorMessage(getInteger(oracleFee, key), "Integer undefine or 0 in oracle")
4040
4141
4242 func getIntegerByKey (key) = valueOrElse(getInteger(this, key), 0)
4343
4444
4545 func checkWhitelist (key) = valueOrElse(getInteger(whitelistDapp, key), 0)
4646
4747
4848 func getBooleanByKey (key) = valueOrElse(getBoolean(this, key), false)
4949
5050
5151 func keyUserStatus (caller) = ("user_status_" + caller)
5252
5353
5454 func keyDate (caller,artId) = ((("art_date_" + artId) + "_") + caller)
5555
5656
5757 func keyName (caller,artId) = ((("art_name_" + artId) + "_") + caller)
5858
5959
6060 func keyDesc (caller,artId) = ((("art_desc_" + artId) + "_") + caller)
6161
6262
6363 func keyDisplayCid (caller,artId) = ((("art_display_cid_" + artId) + "_") + caller)
6464
6565
6666 func keyMaxMint (caller,artId) = ((("art_maxmint_" + artId) + "_") + caller)
6767
6868
6969 func keyMinPrice (caller,artId) = ((("art_minprice_" + artId) + "_") + caller)
7070
7171
7272 func keyHighestBid (artId) = ("art_highestBid_" + artId)
7373
7474
7575 func keyBidId (bidId) = ("bid_" + bidId)
7676
7777
7878 func keyDuration (caller,artId) = ((("art_duration_" + artId) + "_") + caller)
7979
8080
8181 func keyAuctionType (caller,artId) = ((("art_auctiontype_" + artId) + "_") + caller)
8282
8383
8484 func keyIssued (caller,artId) = ((("art_issued_" + artId) + "_") + caller)
8585
8686
8787 func KeyNftIssuer (nftId) = ("nft_issued_" + nftId)
8888
8989
9090 func keyOnSale (caller,artId) = ((("art_onsale_" + artId) + "_") + caller)
9191
9292
9393 func keyTags (caller,artId) = ((("art_tags_" + artId) + "_") + caller)
9494
9595
9696 func keyType (caller,artId) = ((("art_type_" + artId) + "_") + caller)
9797
9898
9999 func keyPrice (caller,artId) = ((("art_price_" + artId) + "_") + caller)
100100
101101
102102 func keyAssetIdAccepted (caller,artId) = ((("art_assetAccepted_" + artId) + "_") + caller)
103103
104104
105105 func keyHashByTxidAddr (caller,txid) = ((("get_hashbytxidaddr_" + txid) + "_") + caller)
106106
107107
108108 func keyOwnerByHash (sha256Hash) = ("get_owner_by_hash_" + sha256Hash)
109109
110110
111111 func keyTxidByHashOwner (sha256Hash,caller) = ("get_txid_by_hash_owner_" + toBase58String(sha256_16Kb(toBytes((sha256Hash + caller)))))
112112
113113
114114 let currentCertificationPrice = getIntegerByKeyFromOracle(("certification_fee_" + toBase58String(sconexAssetId)))
115115
116116 func validateString (str,max) = if ((size(str) == 0))
117117 then throw("Field cannot be is empty")
118118 else if ((size(str) > max))
119119 then throw((str + " is too long"))
120120 else true
121121
122122
123123 func validateUser (caller) = {
124124 let userStatus = valueOrElse(getString(userDapp, keyUserStatus(caller)), userUnregistered)
125125 if (if ((userStatus == userUnregistered))
126126 then true
127127 else (userStatus == userAllowed))
128128 then "Register this account first with 'Account' tab"
129129 else if ((userStatus == userSuspended))
130130 then "Account suspended"
131131 else if ((userStatus == userRemoved))
132132 then "Account removed"
133133 else ""
134134 }
135135
136136
137137 func validateArtworkData (caller,cidDisplay,name,description,tags) = {
138138 let checkUser = validateUser(caller)
139139 if ((checkUser != ""))
140140 then throw(checkUser)
141141 else if ((size(cidDisplay) == 0))
142142 then throw("Display CID cannot be empty")
143143 else if (!(validateString(name, 100)))
144144 then throw("100 Char. max name")
145145 else if (!(validateString(description, 1000)))
146146 then throw("1000 Char. max description")
147147 else if ((size(split(tags, ",")) > 5))
148148 then throw("5 tags max.")
149149 else ""
150150 }
151151
152152
153153 func isPayment (i) = if ((size(i.payments) == 0))
154154 then throw("No payment attached")
155155 else {
156156 let payment = value(i.payments[0])
157157 let amount = value(payment.amount)
158158 $Tuple2(payment, amount)
159159 }
160160
161161
162162 func validatePayment (i) = {
163163 let t089829018 = isPayment(i)
164164 let payment = t089829018._1
165165 let amount = t089829018._2
166166 let assetId = if (if (isDefined(payment.assetId))
167167 then (payment.assetId == sconexAssetId)
168168 else false)
169169 then payment.assetId
170170 else throw("Only Sconex token accepted as transaction fee")
171171 if ((amount != currentCertificationPrice))
172172 then throw(("Payment amount should be " + toString(currentCertificationPrice)))
173173 else $Tuple2(amount, assetId)
174174 }
175175
176176
177177 func validatePriceAssetId (i,priceAssetId,artworkPrice) = {
178178 let t096119647 = isPayment(i)
179179 let payment = t096119647._1
180180 let amount = t096119647._2
181181 let assetId = if (!(isDefined(payment.assetId)))
182182 then throw("Wrong asset id")
183183 else if (if ((size(priceAssetId) > 0))
184184 then (toBase58String(value(payment.assetId)) == priceAssetId)
185185 else false)
186186 then payment.assetId
187187 else throw("Wrong asset id")
188188 if (if ((assetId == unit))
189189 then (priceAssetId != "")
190190 else false)
191191 then throw("Wrong asset id")
192192 else if ((artworkPrice != amount))
193193 then throw("Payment don't match")
194194 else $Tuple2(amount, assetId)
195195 }
196196
197197
198198 func acceptedAssetIds (assetId) = if ((assetId != toBase58String(sconexAssetId)))
199199 then throw("Only Sconex accepted")
200200 else true
201201
202202
203203 func validateMinSell (assetId,price) = {
204204 let minSellSconex = if (unitTest)
205205 then 1
206206 else (currentCertificationPrice * 2)
207207 if (if (if ((assetId == toBase58String(sconexAssetId)))
208208 then (minSellSconex > price)
209209 else false)
210210 then (price != 0)
211211 else false)
212212 then throw(("Wrong minimum sell price " + toString(minSellSconex)))
213213 else true
214214 }
215215
216216
217217 func getBidAssetId (assetId) = if ((assetId == "WAVES"))
218218 then throw("Only sconex is accepted!")
219219 else fromBase58String(assetId)
220220
221221
222222 func getPriceAssetIdFromBid (bidDataKey) = {
223223 let bidData = getStringByKey((bidDataKey + "_OPEN"))
224224 if ((bidData == ""))
225225 then throw("Bid not found")
226226 else {
227227 let bidDataArr = split(bidData, "_")
228228 let bidAmount = parseIntValue(bidDataArr[1])
229229 let bidAssetId = getBidAssetId(bidDataArr[0])
230230 if ((0 >= bidAmount))
231231 then throw("Wrong amount")
232232 else $Tuple2(bidAmount, bidAssetId)
233233 }
234234 }
235235
236236
237237 func idCallerDate (i) = if (!(dappRunning))
238238 then throw(maintenanceMSG)
239239 else $Tuple3(toBase58String(i.transactionId), toBase58String(i.caller.bytes), lastBlock.timestamp)
240240
241241
242242 func isBidCheck (i,issuer,bidOwner,bidId) = if (if (if ((toBase58String(i.caller.bytes) == issuer))
243243 then (bidOwner != "")
244244 else false)
245245 then (bidId != "")
246246 else false)
247247 then true
248248 else false
249249
250250
251251 func getArtData (i,issuer,artId,isBid) = {
252252 let callerIsIssuer = (toBase58String(i.caller.bytes) == issuer)
253253 let totalNFT = getIntegerByKey("total_nft_issued")
254254 let artworkName = getStringByKey(keyName(issuer, artId))
255255 if ((artworkName == ""))
256256 then throw("Art doesn't exist")
257257 else {
258258 let isOnSale = getBooleanByKey(keyOnSale(issuer, artId))
259259 let amountSold = getIntegerByKey(keyIssued(issuer, artId))
260260 let artworkPrice = if (callerIsIssuer)
261261 then (currentCertificationPrice * 2)
262262 else getIntegerByKey(keyPrice(issuer, artId))
263263 let priceAssetId = if (callerIsIssuer)
264264 then toBase58String(sconexAssetId)
265265 else getStringByKey(keyAssetIdAccepted(issuer, artId))
266266 let maxCanSell = getIntegerByKey(keyMaxMint(issuer, artId))
267267 if (if (if (!(isBid))
268268 then !(callerIsIssuer)
269269 else false)
270270 then if (if ((0 >= artworkPrice))
271271 then true
272272 else !(isOnSale))
273273 then true
274274 else (0 >= maxCanSell)
275275 else false)
276276 then throw("Art not for sale")
277277 else if (if (if (!(isBid))
278278 then callerIsIssuer
279279 else false)
280280 then (0 >= maxCanSell)
281281 else false)
282282 then throw("Max issuable not set")
283283 else $Tuple7(totalNFT, artworkName, amountSold, artworkPrice, priceAssetId, maxCanSell, isOnSale)
284284 }
285285 }
286286
287287
288288 func getBidData (i,caller,issuer,artId,bidOwner,bidId,priceAssetId,artworkPrice,isBid) = {
289289 let checkUser = validateUser(issuer)
290290 if (if (isBid)
291291 then (checkUser != "")
292292 else false)
293293 then throw(checkUser)
294294 else {
295295 let bidDataKey = ((((((("bid_" + artId) + "_") + issuer) + "_") + bidOwner) + "_") + bidId)
296296 let t01351913648 = if (isBid)
297297 then getPriceAssetIdFromBid(bidDataKey)
298298 else validatePriceAssetId(i, priceAssetId, artworkPrice)
299299 let amount = t01351913648._1
300300 let assetId = t01351913648._2
301301 $Tuple3(bidDataKey, amount, assetId)
302302 }
303303 }
304304
305305
306306 func getCommissionData (issuer,assetId,amount,amountSold,maxCanSell) = {
307307 let isWhitelisted = checkWhitelist(issuer)
308308 let cut = if ((isWhitelisted > height))
309309 then 0
310310 else if ((assetId == sconexAssetId))
311311 then sconexFirstSellCut
312312 else throw("Only Sconex is accepted!")
313313 let amountForSconex = fraction(amount, cut, 1000)
314314 let amountForCreator = (amount - amountForSconex)
315315 if ((amountSold == maxCanSell))
316316 then throw("Art sold out")
317317 else {
318318 let newAmountSold = (amountSold + 1)
319319 $Tuple3(amountForSconex, amountForCreator, newAmountSold)
320320 }
321321 }
322322
323323
324324 func getIssueData (issuer,artId,artworkName,newAmountSold,maxCanSell,totalNFT,caller,bidOwner,bidId,i,isOnSale) = {
325325 let issueMeta = ((((((((("Creator: " + issuer) + ",ArtID: ") + artId) + ",Artwork name: ") + artworkName) + ",Issue: ") + toString(newAmountSold)) + "/") + toString(maxCanSell))
326326 let issueNFT = Issue(("SCONEX_" + toString((totalNFT + 1))), issueMeta, 1, 0, false)
327327 let idNFT = calculateAssetId(issueNFT)
328328 let sellStatus = if (if ((newAmountSold == maxCanSell))
329329 then true
330330 else !(isOnSale))
331331 then false
332332 else true
333333 let receiveNFT = if (if (if ((caller == issuer))
334334 then (bidOwner != "")
335335 else false)
336336 then (bidId != "")
337337 else false)
338338 then addressFromStringValue(bidOwner)
339339 else i.caller
340340 $Tuple4(issueNFT, idNFT, sellStatus, receiveNFT)
341341 }
342342
343343
344344 func getBidKeyVal (assetId,bidDataKey,date) = {
345345 let assetIdBid = if (!(isDefined(assetId)))
346346 then throw("Only sconex is accepted")
347347 else toBase58String(value(assetId))
348348 let bidData = getStringByKey((bidDataKey + "_OPEN"))
349349 let bidDelOld = DeleteEntry((bidDataKey + "_OPEN"))
350350 let bidUpdate = StringEntry((bidDataKey + "_CLOSED"), ((bidData + "_") + toString(date)))
351351 $Tuple3(assetIdBid, bidDelOld, bidUpdate)
352352 }
353353
354354
355355 func buyMint (i,artId,issuer,bidId,bidOwner) = {
356356 let t01551615566 = idCallerDate(i)
357357 let id = t01551615566._1
358358 let caller = t01551615566._2
359359 let date = t01551615566._3
360360 let isBid = isBidCheck(i, issuer, bidOwner, bidId)
361361 let t01564615797 = getArtData(i, issuer, artId, isBid)
362362 let totalNFT = t01564615797._1
363363 let artworkName = t01564615797._2
364364 let amountSold = t01564615797._3
365365 let artworkPrice = t01564615797._4
366366 let priceAssetId = t01564615797._5
367367 let maxCanSell = t01564615797._6
368368 let isOnSale = t01564615797._7
369369 let t01580215948 = getBidData(i, caller, issuer, artId, bidOwner, bidId, priceAssetId, artworkPrice, isBid)
370370 let bidDataKey = t01580215948._1
371371 let amount = t01580215948._2
372372 let assetId = t01580215948._3
373373 let t01595316095 = getCommissionData(issuer, value(assetId), amount, amountSold, maxCanSell)
374374 let amountForSconex = t01595316095._1
375375 let amountForCreator = t01595316095._2
376376 let newAmountSold = t01595316095._3
377377 let t01610016290 = getIssueData(issuer, artId, artworkName, newAmountSold, maxCanSell, totalNFT, caller, bidOwner, bidId, i, isOnSale)
378378 let issueNFT = t01610016290._1
379379 let idNFT = t01610016290._2
380380 let sellStatus = t01610016290._3
381381 let receiveNFT = t01610016290._4
382382 let t01629516394 = getBidKeyVal(assetId, bidDataKey, date)
383383 let assetIdBid = t01629516394._1
384384 let bidDelOld = t01629516394._2
385385 let bidUpdate = t01629516394._3
386386 let soldKey = ((((((("art_sold_" + toString(newAmountSold)) + "_of_") + toString(maxCanSell)) + "_") + artId) + "_") + issuer)
387387 let soldValue = if (!(isBid))
388388 then ((((((((((caller + "_") + toString(date)) + "_") + id) + "_") + toString(artworkPrice)) + "_") + priceAssetId) + "_") + toBase58String(idNFT))
389389 else ((((((((((toString(receiveNFT) + "_") + toString(date)) + "_") + id) + "_") + toString(amount)) + "_") + assetIdBid) + "_") + toBase58String(idNFT))
390390 let soldData = StringEntry(soldKey, soldValue)
391391 let buyRes = [IntegerEntry(keyIssued(issuer, artId), newAmountSold), StringEntry(("nft_" + toBase58String(idNFT)), soldKey), IntegerEntry("total_nft_issued", (totalNFT + 1)), BooleanEntry(keyOnSale(issuer, artId), sellStatus), issueNFT, ScriptTransfer(Address(fromBase58String(issuer)), amountForCreator, assetId), ScriptTransfer(Address(fromBase58String(feeReceiver)), amountForSconex, assetId), ScriptTransfer(receiveNFT, 1, idNFT), StringEntry(KeyNftIssuer(toBase58String(idNFT)), issuer)]
392392 if (isBid)
393393 then (((buyRes :+ soldData) :+ bidUpdate) :+ bidDelOld)
394394 else soldData :: buyRes
395395 }
396396
397397
398398 func setBidNonTraditional (i,artId,issuer) = {
399399 let t02770927747 = idCallerDate(i)
400400 let id = t02770927747._1
401401 let caller = t02770927747._2
402402 let date = t02770927747._3
403403 let t02775227788 = isPayment(i)
404404 let payment = t02775227788._1
405405 let amount = t02775227788._2
406406 let assetId = if (!(isDefined(payment.assetId)))
407407 then throw("Only sconex is accepted!")
408408 else toBase58String(value(payment.assetId))
409409 let bidNbr = getIntegerByKey(("current_bidamount_" + artId))
410410 if (!(acceptedAssetIds(assetId)))
411411 then throw("asset not accepted")
412412 else if (!(validateMinSell(assetId, amount)))
413413 then throw("Wrong min sell")
414414 else {
415415 let amountSold = getIntegerByKey(keyIssued(issuer, artId))
416416 let maxCanSell = getIntegerByKey(keyMaxMint(issuer, artId))
417417 if ((0 >= maxCanSell))
418418 then throw("No max edition set for this artwork")
419419 else if ((amountSold >= maxCanSell))
420420 then throw("Sold out, you cannot bid")
421421 else [StringEntry((((((((("bid_" + artId) + "_") + issuer) + "_") + caller) + "_") + id) + "_OPEN"), ((((assetId + "_") + toString(amount)) + "_") + toString(date))), IntegerEntry(("current_bidamount_" + artId), (bidNbr + 1))]
422422 }
423423 }
424424
425425
426426 func setBidTraditional (i,artId,issuer) = {
427427 let endHeight = getIntegerByKey(keyDuration(issuer, artId))
428428 let highestBid = getIntegerByKey(keyHighestBid(artId))
429429 if ((height > endHeight))
430430 then throw("This auction is finished already!")
431431 else {
432432 let callderData = idCallerDate(i)
433433 let id = callderData._1
434434 let caller = callderData._2
435435 let date = callderData._3
436436 let isPaymentVar = isPayment(i)
437437 let payment = isPaymentVar._1
438438 let amount = isPaymentVar._2
439439 if ((highestBid >= amount))
440440 then throw(("Please place a bid higher then: " + toString(highestBid)))
441441 else {
442442 let assetId = if (!(isDefined(payment.assetId)))
443443 then throw("Only sconex is accepted!")
444444 else toBase58String(value(payment.assetId))
445445 let bidNbr = getIntegerByKey(("current_bidamount_" + artId))
446446 if (!(acceptedAssetIds(assetId)))
447447 then throw("asset not accepted")
448448 else if (!(validateMinSell(assetId, amount)))
449449 then throw("Wrong min sell")
450450 else {
451451 let amountSold = getIntegerByKey(keyIssued(issuer, artId))
452452 let maxCanSell = getIntegerByKey(keyMaxMint(issuer, artId))
453453 if ((0 >= maxCanSell))
454454 then throw("No max edition set for this artwork")
455455 else if ((amountSold >= maxCanSell))
456456 then throw("Sold out, you cannot bid")
457457 else [StringEntry((((((((("bid_" + artId) + "_") + issuer) + "_") + caller) + "_") + id) + "_OPEN"), ((((assetId + "_") + toString(amount)) + "_") + toString(date))), IntegerEntry(("current_bidamount_" + artId), (bidNbr + 1)), IntegerEntry(keyHighestBid(artId), amount), IntegerEntry(keyBidId(toBase58String(i.transactionId)), amount)]
458458 }
459459 }
460460 }
461461 }
462462
463463
464464 func acceptBidNonTraditional (i,artId,issuer,bidId,bidOwner) = {
465465 let caller = toBase58String(i.caller.bytes)
466466 if ((caller != issuer))
467467 then throw("You cannot do this action")
468468 else buyMint(i, artId, issuer, bidId, bidOwner)
469469 }
470470
471471
472472 func acceptBidTraditional (i,artId,issuer,bidId,bidOwner) = {
473473 let endHeight = getIntegerByKey(keyDuration(issuer, artId))
474474 let highestBid = getIntegerByKey(keyHighestBid(artId))
475475 let amountByBidId = getIntegerByKey(keyBidId(bidId))
476476 if ((height > endHeight))
477477 then if ((amountByBidId == highestBid))
478478 then buyMint(i, artId, issuer, bidId, bidOwner)
479479 else throw("This is not the winning bid!")
480480 else throw("This auction is not yet finished!")
481481 }
482482
483483
484484 func cancelBidImpl (i,artId,issuer,bidId) = {
485485 let t02894229094 = idCallerDate(i)
486486 let id = t02894229094._1
487487 let caller = t02894229094._2
488488 let date = t02894229094._3
489489 let bidNbr = getIntegerByKey(("current_bidamount_" + artId))
490490 let bidDataKey = ((((((("bid_" + artId) + "_") + issuer) + "_") + caller) + "_") + bidId)
491491 let bidData = getStringByKey((bidDataKey + "_OPEN"))
492492 if ((bidData == ""))
493493 then throw("Bid not found")
494494 else {
495495 let bidDataArr = split(bidData, "_")
496496 let assetId = getBidAssetId(bidDataArr[0])
497497 let bidStatus = "CANCELED"
498498 [DeleteEntry((bidDataKey + "_OPEN")), StringEntry(((bidDataKey + "_") + bidStatus), ((bidData + "_") + toString(date))), IntegerEntry(("current_bidamount_" + artId), (bidNbr - 1)), ScriptTransfer(Address(fromBase58String(caller)), parseIntValue(bidDataArr[1]), assetId)]
499499 }
500500 }
501501
502502
503503 func cancelBidImplTraditional (i,artId,issuer,bidId) = {
504504 let t02894229094 = idCallerDate(i)
505505 let id = t02894229094._1
506506 let caller = t02894229094._2
507507 let date = t02894229094._3
508508 let bidNbr = getIntegerByKey(("current_bidamount_" + artId))
509509 let bidDataKey = ((((((("bid_" + artId) + "_") + issuer) + "_") + caller) + "_") + bidId)
510510 let bidData = getStringByKey((bidDataKey + "_OPEN"))
511511 if ((bidData == ""))
512512 then throw("Bid not found")
513513 else {
514514 let bidDataArr = split(bidData, "_")
515515 let assetId = getBidAssetId(bidDataArr[0])
516516 let bidStatus = "CANCELED"
517517 let bidAmount = parseIntValue(bidDataArr[1])
518518 let highestBid = getIntegerByKey(keyHighestBid(artId))
519519 if ((bidAmount == highestBid))
520520 then throw("You can't cancel the highest bid!")
521521 else [DeleteEntry((bidDataKey + "_OPEN")), StringEntry(((bidDataKey + "_") + bidStatus), ((bidData + "_") + toString(date))), IntegerEntry(("current_bidamount_" + artId), (bidNbr - 1)), ScriptTransfer(Address(fromBase58String(caller)), bidAmount, assetId)]
522522 }
523523 }
524524
525525
526526 @Callable(i)
527527 func addArtwork (sha256Hash,name,description,tags,type,cidDisplay) = {
528528 let t01774017781 = idCallerDate(i)
529529 let artId = t01774017781._1
530530 let caller = t01774017781._2
531531 let date = t01774017781._3
532532 let validateArtwork = validateArtworkData(caller, cidDisplay, name, description, tags)
533533 if ((validateArtwork != ""))
534534 then throw("Something went wrong!")
535535 else {
536536 let t01817018212 = validatePayment(i)
537537 let amount = t01817018212._1
538538 let assetId = t01817018212._2
539539 if (!(isDefined(amount)))
540540 then throw("Something went wrong")
541541 else {
542542 let entryExist = getStringByKey(keyTxidByHashOwner(sha256Hash, caller))
543543 if ((entryExist != ""))
544544 then throw("You already added it")
545545 else {
546546 let hashExist = getStringByKey(keyOwnerByHash(sha256Hash))
547547 if ((hashExist != ""))
548548 then throw("Hash already registered")
549549 else [StringEntry(keyOwnerByHash(sha256Hash), caller), StringEntry(keyTxidByHashOwner(sha256Hash, caller), artId), IntegerEntry(keyDate(caller, artId), date), StringEntry(keyName(caller, artId), name), StringEntry(keyDesc(caller, artId), description), StringEntry(keyDisplayCid(caller, artId), cidDisplay), StringEntry(keyType(caller, artId), type), StringEntry(keyTags(caller, artId), tags), IntegerEntry(keyMaxMint(caller, artId), 0), IntegerEntry(keyIssued(caller, artId), 0), BooleanEntry(keyOnSale(caller, artId), false), StringEntry(keyHashByTxidAddr(caller, artId), sha256Hash), ScriptTransfer(Address(fromBase58String(feeReceiver)), amount, assetId)]
550550 }
551551 }
552552 }
553553 }
554554
555555
556556
557557 @Callable(i)
558558 func sellArtwork (artId,price,maxMint,assetId,auctionType,minBid,duration) = {
559559 let t02571425747 = idCallerDate(i)
560560 let id = t02571425747._1
561561 let caller = t02571425747._2
562562 let artworkName = getStringByKey(keyName(caller, artId))
563563 if (!(containsElement([auctionType1, auctionType2], auctionType)))
564564 then throw("We dont know this auction type")
565565 else if ((artworkName == ""))
566566 then throw("This art doesn't match your account")
567567 else {
568568 let bidNbr = getIntegerByKey(("current_bidamount_" + artId))
569569 if (!(acceptedAssetIds(assetId)))
570570 then throw("Something went wrong!")
571571 else if (!(validateMinSell(assetId, price)))
572572 then throw("Something went wrong!")
573573 else {
574574 let checkUser = validateUser(caller)
575575 if ((checkUser != ""))
576576 then throw(checkUser)
577577 else {
578578 let amountSold = getIntegerByKey(keyIssued(caller, artId))
579579 let maxCanSell = getIntegerByKey(keyMaxMint(caller, artId))
580580 if ((maxMint > 10))
581581 then throw("10 editions max per artwork")
582582 else if (if ((amountSold != 0))
583583 then (amountSold == maxCanSell)
584584 else false)
585585 then throw("Max edition reached.")
586586 else if (if ((amountSold > 0))
587587 then (maxCanSell != maxMint)
588588 else false)
589589 then throw("Cannot change maximum issuable anymore")
590590 else if (if ((bidNbr > 0))
591591 then (maxCanSell != maxMint)
592592 else false)
593593 then throw("Cannot change maximum issuable with active orders")
594594 else {
595595 let sellStatus = if (if ((price > 0))
596596 then (maxMint > 0)
597597 else false)
598598 then true
599599 else false
600600 let endHeight = (duration + height)
601601 [BooleanEntry(keyOnSale(caller, artId), sellStatus), IntegerEntry(keyPrice(caller, artId), price), IntegerEntry(keyMaxMint(caller, artId), maxMint), IntegerEntry(keyMinPrice(caller, artId), minBid), IntegerEntry(keyDuration(caller, artId), endHeight), StringEntry(keyAssetIdAccepted(caller, artId), assetId), StringEntry(keyAuctionType(caller, artId), auctionType), IntegerEntry(keyHighestBid(artId), 0)]
602602 }
603603 }
604604 }
605605 }
606606 }
607607
608608
609609
610610 @Callable(i)
611611 func buyArtwork (artId,issuer) = buyMint(i, artId, issuer, "", "")
612612
613613
614614
615615 @Callable(i)
616616 func deleteEntry (entry) = {
617617 let caller = toString(addressFromPublicKey(i.callerPublicKey))
618618 if ((caller == owner))
619619 then [DeleteEntry(entry)]
620620 else throw("no")
621621 }
622622
623623
624624
625625 @Callable(i)
626626 func setBid (artId,issuer) = {
627627 let auctionType = getStringByKey(keyAuctionType(issuer, artId))
628628 if ((auctionType == auctionType1))
629629 then setBidNonTraditional(i, artId, issuer)
630630 else if ((auctionType == auctionType2))
631631 then setBidTraditional(i, artId, issuer)
632632 else throw((("Unknown auction type :" + auctionType) + ", please contact the admins"))
633633 }
634634
635635
636636
637637 @Callable(i)
638638 func acceptBid (artId,issuer,bidId,bidOwner) = {
639639 let auctionType = getStringByKey(keyAuctionType(issuer, artId))
640640 if ((auctionType == auctionType1))
641641 then acceptBidNonTraditional(i, artId, issuer, bidId, bidOwner)
642642 else if ((auctionType == auctionType2))
643643 then acceptBidTraditional(i, artId, issuer, bidId, bidOwner)
644644 else throw((("Unknown auction type :" + auctionType) + ", please contact the admins"))
645645 }
646646
647647
648648
649649 @Callable(i)
650650 func cancelBid (artId,issuer,bidId) = {
651651 let auctionType = getStringByKey(keyAuctionType(issuer, artId))
652652 if ((auctionType == auctionType1))
653653 then cancelBidImpl(i, artId, issuer, bidId)
654654 else cancelBidImplTraditional(i, artId, issuer, bidId)
655655 }
656656
657657

github/deemru/w8io/169f3d6 
59.77 ms