tx · BWDbpYX7c6rPUuCvUMShk4mTa5sqUsPqVo2Bta7yq9XQ

3MrWNTqFcHBqb58Za1A5crQrMV5KJ5DYhtA:  -0.01000000 Waves

2021.08.22 19:31 [1669778] smart account 3MrWNTqFcHBqb58Za1A5crQrMV5KJ5DYhtA > SELF 0.00000000 Waves

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

github/deemru/w8io/026f985 
64.47 ms