tx · AZfWigjEZ4Adk6Qz5yGgiUMctVU7jJ4yjWrSZdBjFroG

3N6La2hCxBVks6Siq8ZmRzucLBuJxg7wRaT:  -0.01400000 Waves

2022.04.08 02:17 [1998795] smart account 3N6La2hCxBVks6Siq8ZmRzucLBuJxg7wRaT > SELF 0.00000000 Waves

{ "type": 13, "id": "AZfWigjEZ4Adk6Qz5yGgiUMctVU7jJ4yjWrSZdBjFroG", "fee": 1400000, "feeAssetId": null, "timestamp": 1649373462437, "version": 2, "chainId": 84, "sender": "3N6La2hCxBVks6Siq8ZmRzucLBuJxg7wRaT", "senderPublicKey": "Gf3uFobhhYtBpzXRrxbexbMj9oTPtJuJjHsdCDsmy1mX", "proofs": [ "3eSf8e3Nx4sg1GXoBQNhiKxperjQXcEqzjrrmHW5ERA33nXqh6KgEQQadtAXdbrMvHCoA8v5DNK45nErHXLrM5bp" ], "script": "base64:AAIFAAAAAAAAAC4IAhIDCgEIEgQKAggIEgQKAgEIEgMKAQgSAwoBCBIDCgEIEgQKAggIEgQKAggIAAAAHAAAAAATTkZUSXNzdWVyZmVlUGVyY2VudAAAAAAAAAAAAwAAAAANc2NvbmV4RGFwcEtleQIAAAAKc2NvbmV4RGFwcAAAAAAJb3JhY2xlS2V5AgAAAAlvcmFjbGVLZXkBAAAABmdldFN0cgAAAAEAAAADa2V5BAAAAAckbWF0Y2gwCQAEHQAAAAIFAAAABHRoaXMFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFiBQAAAAckbWF0Y2gwBQAAAAFiAgAAAAAAAAAABm9yYWNsZQkBAAAABmdldFN0cgAAAAEFAAAACW9yYWNsZUtleQAAAAAJb3JhY2xlRmVlCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQmAAAAAQUAAAAGb3JhY2xlAgAAACtDb2xsZWN0aW9ucyBkYXBwIGRvZXNudCBoYXZlIG9yYWNsZSBkZWZpbmVkAAAAAApzY29uZXhEYXBwCQEAAAARQGV4dHJOYXRpdmUoMTA1MykAAAACBQAAAAlvcmFjbGVGZWUFAAAADXNjb25leERhcHBLZXkAAAAAD2NvbGxlY3Rpb25zRGFwcAkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEHQAAAAIFAAAACW9yYWNsZUZlZQIAAAAPY29sbGVjdGlvbnNEYXBwAgAAABhjb2xsZWN0aW9uRGFwcCBub3QgZm91bmQAAAAAC2ZlZVJlY2VpdmVyCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQdAAAAAgUAAAAJb3JhY2xlRmVlAgAAAAtmZWVSZWNlaXZlcgIAAAAVZmVlUmVjZWl2ZXIgbm90IGZvdW5kAAAAAAhjZXJ0RGFwcAkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEHQAAAAIFAAAACW9yYWNsZUZlZQIAAAAIY2VydERhcHACAAAAEmNlcnREYXBwIG5vdCBmb3VuZAAAAAAHZmVlRGFwcAkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEHQAAAAIFAAAACW9yYWNsZUZlZQIAAAAHZmVlRGFwcAIAAAARZmVlRGFwcCBub3QgZm91bmQBAAAAGWdldEludGVnZXJCeUtleUZyb21PcmFjbGUAAAABAAAAA2tleQkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEGgAAAAIFAAAACW9yYWNsZUZlZQUAAAADa2V5AgAAAB9JbnRlZ2VyIHVuZGVmaW5lIG9yIDAgaW4gb3JhY2xlAAAAAAtVU0ROQXNzZXRJZAkAAlkAAAABCQEAAAARQGV4dHJOYXRpdmUoMTA1MykAAAACBQAAAAlvcmFjbGVGZWUCAAAAC1VTRE5Bc3NldElkAAAAAAxtaW5VU0ROUHJpY2UJAQAAABlnZXRJbnRlZ2VyQnlLZXlGcm9tT3JhY2xlAAAAAQkAASwAAAACAgAAAARtaW5fCQACWAAAAAEFAAAAC1VTRE5Bc3NldElkAAAAAAh1c2VyRGFwcAkBAAAABXZhbHVlAAAAAQkABCYAAAABCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQdAAAAAgUAAAAJb3JhY2xlRmVlAgAAAAh1c2VyRGFwcAIAAAASdXNlcmRhcHAgbm90IGZvdW5kAAAAAAxhdWN0aW9uVHlwZTECAAAAB0JJRFRZUEUAAAAADGF1Y3Rpb25UeXBlMgIAAAALVFJBRElUSU9OQUwAAAAADGF1Y3Rpb25UeXBlMwIAAAAGRElSRUNUAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEAAAADa2V5CQEAAAALdmFsdWVPckVsc2UAAAACCQAEHQAAAAIFAAAABHRoaXMFAAAAA2tleQIAAAAAAQAAAA5rZXlBdWN0aW9uVHlwZQAAAAEAAAAJYXVjdGlvbklkCQABLAAAAAIJAAEsAAAAAgIAAAAIYXVjdGlvbl8FAAAACWF1Y3Rpb25JZAIAAAALX2FjdGlvblR5cGUBAAAADmdldFN0cmZyb21NYWluAAAAAQAAAANrZXkEAAAAByRtYXRjaDAJAAQdAAAAAgkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQUAAAAKc2NvbmV4RGFwcAUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAWIFAAAAByRtYXRjaDAFAAAAAWICAAAAAAEAAAAOZ2V0SW50ZnJv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", "height": 1998795, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: AKNc2Br7FLTYWXbCcPqNTB512SgzQzqtYnLd554G3LD5 Next: none Diff:
OldNewDifferences
2929
3030 let feeDapp = valueOrErrorMessage(getString(oracleFee, "feeDapp"), "feeDapp not found")
3131
32-let userDapp = value(addressFromString(valueOrErrorMessage(getString(oracleFee, "userDapp"), "userdapp not found")))
32+func getIntegerByKeyFromOracle (key) = valueOrErrorMessage(getInteger(oracleFee, key), "Integer undefine or 0 in oracle")
33+
3334
3435 let USDNAssetId = fromBase58String(getStringValue(oracleFee, "USDNAssetId"))
36+
37+let minUSDNPrice = getIntegerByKeyFromOracle(("min_" + toBase58String(USDNAssetId)))
38+
39+let userDapp = value(addressFromString(valueOrErrorMessage(getString(oracleFee, "userDapp"), "userdapp not found")))
3540
3641 let auctionType1 = "BIDTYPE"
3742
146151 else {
147152 let pmt = value(i.payments[0])
148153 let assetId = value(pmt.assetId)
149- let asset = getNFTIssuer(assetId)
150- if ((asset == ""))
151- then throw("You can only sell an NFT created on SCONE Marketplace")
152- else if (!(containsElement([auctionType1, auctionType3], auctionType)))
153- then throw("We don't know this auction type")
154- else [StringEntry((("auction_" + auctionId) + "_status"), "open"), StringEntry((("auction_" + toBase58String(assetId)) + "_last"), auctionId), StringEntry((("auction_" + auctionId) + "_assetName"), asset), StringEntry((("auction_" + auctionId) + "_assetId"), toBase58String(assetId)), IntegerEntry((("auction_" + auctionId) + "_startedAt"), lastBlock.timestamp), StringEntry((("auction_" + auctionId) + "_owner"), toString(i.caller)), IntegerEntry((("auction_" + auctionId) + "_startPrice"), startPrice), StringEntry(keyAuctionType(auctionId), auctionType), StringEntry((((("address_" + toString(i.caller)) + "_auction_") + auctionId) + "_lockedNFT"), toBase58String(assetId))]
154+ if ((minUSDNPrice > startPrice))
155+ then throw(("Wrong minimum sell price " + toString(minUSDNPrice)))
156+ else {
157+ let asset = getNFTIssuer(assetId)
158+ if ((asset == ""))
159+ then throw("You can only sell an NFT created on SCONE Marketplace")
160+ else if (!(containsElement([auctionType1, auctionType3], auctionType)))
161+ then throw("We don't know this auction type")
162+ else [StringEntry((("auction_" + auctionId) + "_status"), "open"), StringEntry((("auction_" + toBase58String(assetId)) + "_last"), auctionId), StringEntry((("auction_" + auctionId) + "_assetName"), asset), StringEntry((("auction_" + auctionId) + "_assetId"), toBase58String(assetId)), IntegerEntry((("auction_" + auctionId) + "_startedAt"), lastBlock.timestamp), StringEntry((("auction_" + auctionId) + "_owner"), toString(i.caller)), IntegerEntry((("auction_" + auctionId) + "_startPrice"), startPrice), StringEntry(keyAuctionType(auctionId), auctionType), StringEntry((((("address_" + toString(i.caller)) + "_auction_") + auctionId) + "_lockedNFT"), toBase58String(assetId))]
163+ }
155164 }
156165 }
157166
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let NFTIssuerfeePercent = 3
55
66 let sconexDappKey = "sconexDapp"
77
88 let oracleKey = "oracleKey"
99
1010 func getStr (key) = match getString(this, key) {
1111 case b: String =>
1212 b
1313 case _ =>
1414 ""
1515 }
1616
1717
1818 let oracle = getStr(oracleKey)
1919
2020 let oracleFee = valueOrErrorMessage(addressFromString(oracle), "Collections dapp doesnt have oracle defined")
2121
2222 let sconexDapp = getStringValue(oracleFee, sconexDappKey)
2323
2424 let collectionsDapp = valueOrErrorMessage(getString(oracleFee, "collectionsDapp"), "collectionDapp not found")
2525
2626 let feeReceiver = valueOrErrorMessage(getString(oracleFee, "feeReceiver"), "feeReceiver not found")
2727
2828 let certDapp = valueOrErrorMessage(getString(oracleFee, "certDapp"), "certDapp not found")
2929
3030 let feeDapp = valueOrErrorMessage(getString(oracleFee, "feeDapp"), "feeDapp not found")
3131
32-let userDapp = value(addressFromString(valueOrErrorMessage(getString(oracleFee, "userDapp"), "userdapp not found")))
32+func getIntegerByKeyFromOracle (key) = valueOrErrorMessage(getInteger(oracleFee, key), "Integer undefine or 0 in oracle")
33+
3334
3435 let USDNAssetId = fromBase58String(getStringValue(oracleFee, "USDNAssetId"))
36+
37+let minUSDNPrice = getIntegerByKeyFromOracle(("min_" + toBase58String(USDNAssetId)))
38+
39+let userDapp = value(addressFromString(valueOrErrorMessage(getString(oracleFee, "userDapp"), "userdapp not found")))
3540
3641 let auctionType1 = "BIDTYPE"
3742
3843 let auctionType2 = "TRADITIONAL"
3944
4045 let auctionType3 = "DIRECT"
4146
4247 func getStringByKey (key) = valueOrElse(getString(this, key), "")
4348
4449
4550 func keyAuctionType (auctionId) = (("auction_" + auctionId) + "_actionType")
4651
4752
4853 func getStrfromMain (key) = match getString(addressFromStringValue(sconexDapp), key) {
4954 case b: String =>
5055 b
5156 case _ =>
5257 ""
5358 }
5459
5560
5661 func getIntfromMain (key) = match getInteger(addressFromStringValue(sconexDapp), key) {
5762 case b: Int =>
5863 b
5964 case _ =>
6065 0
6166 }
6267
6368
6469 func tryGetInteger (key) = {
6570 let val = match getInteger(this, key) {
6671 case b: Int =>
6772 b
6873 case _ =>
6974 0
7075 }
7176 val
7277 }
7378
7479
7580 func tryGetString (key) = {
7681 let val = match getString(this, key) {
7782 case b: String =>
7883 b
7984 case _ =>
8085 ""
8186 }
8287 val
8388 }
8489
8590
8691 func getNFTIssuer (assetId) = {
8792 let myassetinfo = value(assetInfo(assetId))
8893 if ((myassetinfo.issuer == addressFromStringValue(sconexDapp)))
8994 then "true"
9095 else ""
9196 }
9297
9398
9499 func getNFTArtist (assetId) = {
95100 let ArtistAddress = match getString(addressFromStringValue(sconexDapp), ("nft_issued_" + assetId)) {
96101 case b: String =>
97102 b
98103 case _ =>
99104 ""
100105 }
101106 ArtistAddress
102107 }
103108
104109
105110 func getArtId (assetId) = {
106111 let ArtistAddress = match getString(addressFromStringValue(sconexDapp), ("nft_artId_" + assetId)) {
107112 case b: String =>
108113 b
109114 case _ =>
110115 ""
111116 }
112117 ArtistAddress
113118 }
114119
115120
116121 func acceptedAssetIds (assetId) = if ((assetId != toBase58String(USDNAssetId)))
117122 then throw("Only USDN accepted")
118123 else true
119124
120125
121126 @Callable(i)
122127 func initDapp (dappKey) = if ((i.caller != this))
123128 then throw("You cannot do this action")
124129 else if ((oracle != ""))
125130 then throw("oracle already set, you can't override!")
126131 else [StringEntry(oracleKey, dappKey)]
127132
128133
129134
130135 @Callable(i)
131136 func transferNft (nftID,receiveNFT) = if ((i.caller == this))
132137 then [ScriptTransfer(addressFromStringValue(receiveNFT), 1, fromBase58String(nftID))]
133138 else throw("Only the dApp can transfer NFT's")
134139
135140
136141
137142 @Callable(i)
138143 func initAuction (startPrice,auctionType) = {
139144 let auctionId = toBase58String(i.transactionId)
140145 if ((size(i.payments) == 0))
141146 then throw("No payment attached")
142147 else if ((size(i.payments) >= 2))
143148 then throw("Too many payments attached")
144149 else if ((i.payments[0].amount != 1))
145150 then throw("No nft attached to the payment")
146151 else {
147152 let pmt = value(i.payments[0])
148153 let assetId = value(pmt.assetId)
149- let asset = getNFTIssuer(assetId)
150- if ((asset == ""))
151- then throw("You can only sell an NFT created on SCONE Marketplace")
152- else if (!(containsElement([auctionType1, auctionType3], auctionType)))
153- then throw("We don't know this auction type")
154- else [StringEntry((("auction_" + auctionId) + "_status"), "open"), StringEntry((("auction_" + toBase58String(assetId)) + "_last"), auctionId), StringEntry((("auction_" + auctionId) + "_assetName"), asset), StringEntry((("auction_" + auctionId) + "_assetId"), toBase58String(assetId)), IntegerEntry((("auction_" + auctionId) + "_startedAt"), lastBlock.timestamp), StringEntry((("auction_" + auctionId) + "_owner"), toString(i.caller)), IntegerEntry((("auction_" + auctionId) + "_startPrice"), startPrice), StringEntry(keyAuctionType(auctionId), auctionType), StringEntry((((("address_" + toString(i.caller)) + "_auction_") + auctionId) + "_lockedNFT"), toBase58String(assetId))]
154+ if ((minUSDNPrice > startPrice))
155+ then throw(("Wrong minimum sell price " + toString(minUSDNPrice)))
156+ else {
157+ let asset = getNFTIssuer(assetId)
158+ if ((asset == ""))
159+ then throw("You can only sell an NFT created on SCONE Marketplace")
160+ else if (!(containsElement([auctionType1, auctionType3], auctionType)))
161+ then throw("We don't know this auction type")
162+ else [StringEntry((("auction_" + auctionId) + "_status"), "open"), StringEntry((("auction_" + toBase58String(assetId)) + "_last"), auctionId), StringEntry((("auction_" + auctionId) + "_assetName"), asset), StringEntry((("auction_" + auctionId) + "_assetId"), toBase58String(assetId)), IntegerEntry((("auction_" + auctionId) + "_startedAt"), lastBlock.timestamp), StringEntry((("auction_" + auctionId) + "_owner"), toString(i.caller)), IntegerEntry((("auction_" + auctionId) + "_startPrice"), startPrice), StringEntry(keyAuctionType(auctionId), auctionType), StringEntry((((("address_" + toString(i.caller)) + "_auction_") + auctionId) + "_lockedNFT"), toBase58String(assetId))]
163+ }
155164 }
156165 }
157166
158167
159168
160169 @Callable(i)
161170 func cancelAuction (auctionId) = {
162171 let auctionOwner = tryGetString((("auction_" + auctionId) + "_owner"))
163172 if ((toString(i.caller) != auctionOwner))
164173 then throw("Only allowed to auction owner")
165174 else if ((tryGetString((("auction_" + auctionId) + "_status")) != "open"))
166175 then throw("auction is close")
167176 else [StringEntry((("auction_" + auctionId) + "_status"), "cancelled"), DeleteEntry((((("address_" + auctionOwner) + "_auction_") + auctionId) + "_lockedNFT")), ScriptTransfer(i.caller, 1, fromBase58String(getStringValue(this, (("auction_" + auctionId) + "_assetId"))))]
168177 }
169178
170179
171180
172181 @Callable(i)
173182 func placeBid (auctionId) = {
174183 let pmt = value(i.payments[0])
175184 let amount = pmt.amount
176185 let bidId = toBase58String(i.transactionId)
177186 let assetId = getStringValue(this, (("auction_" + auctionId) + "_assetId"))
178187 let PayAssetId = if (!(isDefined(pmt.assetId)))
179188 then throw("Only USDN is accepted!")
180189 else toBase58String(value(pmt.assetId))
181190 if (!(acceptedAssetIds(PayAssetId)))
182191 then throw("Auction does only support USDN payments")
183192 else {
184193 let minPrice = tryGetInteger((("auction_" + auctionId) + "_startPrice"))
185194 if ((minPrice > amount))
186195 then throw(("The minimal initial price is set as " + toString(minPrice)))
187196 else {
188197 let auctionType = getStringByKey(keyAuctionType(auctionId))
189198 if ((auctionType == auctionType1))
190199 then [StringEntry((((("auction_" + auctionId) + "_bid_") + bidId) + "_author"), toString(i.caller)), StringEntry((((("assetId_" + assetId) + "_bid_") + bidId) + "_data"), (((((("{\"auctionId\": \"" + auctionId) + "\", \"author\": \"") + toString(i.caller)) + "\", \"amount\": \"") + toString(amount)) + "\", \"status\": \"open\"}")), IntegerEntry((((("auction_" + auctionId) + "_bid_") + bidId) + "_amount"), amount), StringEntry(((((("address_" + toString(i.caller)) + "_auction_") + auctionId) + "_bid_") + bidId), assetId), StringEntry((((("auction_" + auctionId) + "_bid_") + bidId) + "_status"), "open")]
191200 else throw("Not a BidType auction!")
192201 }
193202 }
194203 }
195204
196205
197206
198207 @Callable(i)
199208 func directBuy (auctionId) = {
200209 let pmt = value(i.payments[0])
201210 let amount = pmt.amount
202211 let bidId = toBase58String(i.transactionId)
203212 let assetId = getStringValue(this, (("auction_" + auctionId) + "_assetId"))
204213 let auctionOwner = tryGetString((("auction_" + auctionId) + "_owner"))
205214 let bidAmount = amount
206215 let bidAuthor = toString(i.caller)
207216 let PayAssetId = if (!(isDefined(pmt.assetId)))
208217 then throw("Only USDN is accepted!")
209218 else toBase58String(value(pmt.assetId))
210219 if (!(acceptedAssetIds(PayAssetId)))
211220 then throw("Auction does only support USDN payments")
212221 else {
213222 let minPrice = tryGetInteger((("auction_" + auctionId) + "_startPrice"))
214223 if ((minPrice != amount))
215224 then throw(("The exact price is set as " + toString(minPrice)))
216225 else {
217226 let auctionType = getStringByKey(keyAuctionType(auctionId))
218227 if ((auctionType == auctionType3))
219228 then {
220229 let recordPrice = tryGetInteger((assetId + "_recordPrice"))
221230 let newRecordPrice = max([recordPrice, bidAmount])
222231 let ArtistAddress = getNFTArtist(assetId)
223232 let artId = getArtId(assetId)
224233 let transferres = invoke(this, "transferNft", [assetId, bidAuthor], nil)
225234 if ((transferres == transferres))
226235 then {
227236 let invokeTeamFeeSplit = invoke(valueOrErrorMessage(addressFromString(feeDapp), (feeDapp + " not found")), "payFeeResell", [artId, auctionOwner], [AttachedPayment(USDNAssetId, amount)])
228237 if ((invokeTeamFeeSplit == invokeTeamFeeSplit))
229238 then {
230239 let buyRes = [StringEntry((((("auction_" + auctionId) + "_bid_") + bidId) + "_author"), toString(i.caller)), StringEntry((((("auction_" + auctionId) + "_bid_") + bidId) + "_status"), "finished"), StringEntry((("auction_" + auctionId) + "_status"), "finished"), StringEntry((((("assetId_" + assetId) + "_bid_") + bidId) + "_data"), (((((("{\"auctionId\": \"" + auctionId) + "\", \"author\": \"") + toString(i.caller)) + "\", \"amount\": \"") + toString(bidAmount)) + "\", \"status\": \"finished\"}")), IntegerEntry((("auction_" + auctionId) + "_finalPrice"), bidAmount), IntegerEntry((assetId + "_recordPrice"), newRecordPrice), DeleteEntry((((("address_" + auctionOwner) + "_auction_") + auctionId) + "_lockedNFT"))]
231240 let res = invoke(addressFromStringValue(certDapp), "createCert", [bidAuthor, assetId, ArtistAddress], nil)
232241 if ((res == res))
233242 then buyRes
234243 else throw("Strict value is not equal to itself.")
235244 }
236245 else throw("Strict value is not equal to itself.")
237246 }
238247 else throw("Strict value is not equal to itself.")
239248 }
240249 else throw("Not a directBuy auction!")
241250 }
242251 }
243252 }
244253
245254
246255
247256 @Callable(i)
248257 func cancelBid (auctionId,bidId) = {
249258 let assetId = getStringValue(this, (("auction_" + auctionId) + "_assetId"))
250259 let bidAuthor = tryGetString((((("auction_" + auctionId) + "_bid_") + bidId) + "_author"))
251260 let bidAmount = tryGetInteger((((("auction_" + auctionId) + "_bid_") + bidId) + "_amount"))
252261 if (if ((toString(i.caller) != bidAuthor))
253262 then (i.caller != this)
254263 else false)
255264 then throw("Only allowed to the bid author or admin")
256265 else if ((tryGetString((((("auction_" + auctionId) + "_bid_") + bidId) + "_status")) != "open"))
257266 then throw("bid is not open")
258267 else [StringEntry((((("assetId_" + assetId) + "_bid_") + bidId) + "_data"), (((((("{\"auctionId\": \"" + auctionId) + "\", \"author\": \"") + toString(i.caller)) + "\", \"amount\": \"") + toString(bidAmount)) + "\", \"status\": \"cancelled\"}")), StringEntry((((("auction_" + auctionId) + "_bid_") + bidId) + "_status"), "cancelled"), DeleteEntry(((((("address_" + bidAuthor) + "_auction_") + auctionId) + "_bid_") + bidId)), ScriptTransfer(Address(fromBase58String(bidAuthor)), bidAmount, USDNAssetId)]
259268 }
260269
261270
262271
263272 @Callable(i)
264273 func acceptBid (auctionId,bidId) = {
265274 let auctionOwner = tryGetString((("auction_" + auctionId) + "_owner"))
266275 let bidAuthor = tryGetString((((("auction_" + auctionId) + "_bid_") + bidId) + "_author"))
267276 let bidAmount = tryGetInteger((((("auction_" + auctionId) + "_bid_") + bidId) + "_amount"))
268277 let bidStatus = tryGetString((((("auction_" + auctionId) + "_bid_") + bidId) + "_status"))
269278 let assetId = tryGetString((("auction_" + auctionId) + "_assetId"))
270279 if ((toString(i.caller) != auctionOwner))
271280 then throw("Only allowed to auction owner")
272281 else if ((bidStatus != "open"))
273282 then throw("Bid was cancelled and cannot be accepted")
274283 else {
275284 let recordPrice = tryGetInteger((assetId + "_recordPrice"))
276285 let newRecordPrice = max([recordPrice, bidAmount])
277286 let ArtistAddress = getNFTArtist(assetId)
278287 let artId = getArtId(assetId)
279288 let invokeTeamFeeSplit = invoke(valueOrErrorMessage(addressFromString(feeDapp), (feeDapp + " not found")), "payFeeResell", [artId, auctionOwner], [AttachedPayment(USDNAssetId, bidAmount)])
280289 if ((invokeTeamFeeSplit == invokeTeamFeeSplit))
281290 then {
282291 let transferres = invoke(this, "transferNft", [assetId, bidAuthor], nil)
283292 if ((transferres == transferres))
284293 then {
285294 let buyRes = [StringEntry((((("auction_" + auctionId) + "_bid_") + bidId) + "_status"), "finished"), StringEntry((("auction_" + auctionId) + "_status"), "finished"), StringEntry((((("assetId_" + assetId) + "_bid_") + bidId) + "_data"), (((((("{\"auctionId\": \"" + auctionId) + "\", \"author\": \"") + toString(i.caller)) + "\", \"amount\": \"") + toString(bidAmount)) + "\", \"status\": \"finished\"}")), IntegerEntry((("auction_" + auctionId) + "_finalPrice"), bidAmount), IntegerEntry((assetId + "_recordPrice"), newRecordPrice), DeleteEntry(((((("address_" + bidAuthor) + "_auction_") + auctionId) + "_bid_") + bidId)), DeleteEntry((((("address_" + auctionOwner) + "_auction_") + auctionId) + "_lockedNFT"))]
286295 let res = invoke(addressFromStringValue(certDapp), "createCert", [bidAuthor, assetId, ArtistAddress], nil)
287296 if ((res == res))
288297 then buyRes
289298 else throw("Strict value is not equal to itself.")
290299 }
291300 else throw("Strict value is not equal to itself.")
292301 }
293302 else throw("Strict value is not equal to itself.")
294303 }
295304 }
296305
297306
298307 @Verifier(tx)
299308 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
300309

github/deemru/w8io/169f3d6 
884.90 ms