tx · 2QsDyX5bwV7BKEW9r9dsguE7gxTLa8k5XQTCesGNp6Ye

3N1iuGv9mkA6RVTv7xrHPjpHV6BCbp7h9EB:  -0.05000000 Waves

2022.02.23 23:34 [1936782] smart account 3N1iuGv9mkA6RVTv7xrHPjpHV6BCbp7h9EB > SELF 0.00000000 Waves

{ "type": 13, "id": "2QsDyX5bwV7BKEW9r9dsguE7gxTLa8k5XQTCesGNp6Ye", "fee": 5000000, "feeAssetId": null, "timestamp": 1645648502291, "version": 2, "chainId": 84, "sender": "3N1iuGv9mkA6RVTv7xrHPjpHV6BCbp7h9EB", "senderPublicKey": "C3duaC4UJn1CHNpyMmowNdSnFbjhxCfHL87Bw3drFc9F", "proofs": [ "5Kcknxd1gyqsyvjKro5VPQf2PGGsBwnfBqX8wKye9TQrDUuzipK2kxxdC9mwjxeFHN5HP58YshjohondFnpZ4kVE" ], "script": "base64:AAIFAAAAAAAAACMIAhIECgIBCBIDCgEIEgMKAQgSAwoBCBIECgIICBIECgIICAAAABUAAAAAEE5GVElzc3VlckFkZHJlc3MBAAAAGgFUHGxTJ+I/h4i6I3N6fLvL7h0Kb+yXKwKPAAAAABRORlRJc3N1ZXJmZWVSZWNlaXZlcgEAAAAaAVSxX/e+WgEFvutxYGXKhaqvyxqE/HBFHq8AAAAAE05GVElzc3VlcmZlZVBlcmNlbnQAAAAAAAAAAAMAAAAAEEFydGlzdGZlZVBlcmNlbnQAAAAAAAAAAAcAAAAACW9yYWNsZUZlZQkBAAAABXZhbHVlAAAAAQkABCYAAAABAgAAACMzTXBaUWp6R29nbWlmY0VLZThtRGQ2cmliTDdueFQ5QUN5ZQAAAAALZmVlUmVjZWl2ZXICAAAAIzNONjV4THE4SmNDZWFFaVIxVEpRN2RCcVhCdkV5NkU0OFd6AAAAAAhjZXJ0RGFwcAIAAAAjM014Y1hyTmJNWktZYVNyaGNmZU1tMmhabkJlQ3UzeVJXc3cAAAAACHVzZXJEYXBwCQEAAAAFdmFsdWUAAAABCQAEJgAAAAECAAAAIzNNenY0VUhHUkNDNUtrblpiOHg1d2ZGVVF6enBZOUc0R240AAAAAA13aGl0ZWxpc3REYXBwCQEAAAAFdmFsdWUAAAABCQAEJgAAAAECAAAAIzNOOXhaWUdwek1GRFh2WHVjdG1VNnpWOHFTem0yWmZGMzFmAAAAAAtVU0ROQXNzZXRJZAEAAAAgAIUpTOkTLqoXmGxvzdEleYQFDyLlDcuqJGsbsu9ZirwAAAAADGF1Y3Rpb25UeXBlMQIAAAAHQklEVFlQRQAAAAAMYXVjdGlvblR5cGUyAgAAAAtUUkFESVRJT05BTAAAAAAMYXVjdGlvblR5cGUzAgAAAAZESVJFQ1QBAAAADmdldFN0cmluZ0J5S2V5AAAAAQAAAANrZXkJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQdAAAAAgUAAAAEdGhpcwUAAAADa2V5AgAAAAABAAAADmtleUF1Y3Rpb25UeXBlAAAAAQAAAAlhdWN0aW9uSWQJAAEsAAAAAgkAASwAAAACAgAAAAhhdWN0aW9uXwUAAAAJYXVjdGlvbklkAgAAAAtfYWN0aW9uVHlwZQEAAAANdHJ5R2V0SW50ZWdl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", "height": 1936782, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 1EN8W8yxEMRgx6y6sLtowfurHg5tRUFRHU5nahtRnkB Next: none Diff:
OldNewDifferences
177177 let artId = getArtId(assetId)
178178 let percentageKey = ((("art_royalty" + artId) + "_") + ArtistAddress)
179179 if ((ArtistAddress == ""))
180- then [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")), ScriptTransfer(i.caller, fraction(bidAmount, ((100 - NFTIssuerfeePercent) - ArtistfeePercent), 100), USDNAssetId), ScriptTransfer(Address(NFTIssuerfeeReceiver), fraction(bidAmount, ArtistfeePercent, 100), USDNAssetId), ScriptTransfer(Address(NFTIssuerfeeReceiver), fraction(bidAmount, NFTIssuerfeePercent, 100), USDNAssetId), ScriptTransfer(addressFromStringValue(bidAuthor), 1, fromBase58String(assetId))]
181- else [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")), ScriptTransfer(i.caller, fraction(bidAmount, ((100 - NFTIssuerfeePercent) - ArtistfeePercent), 100), USDNAssetId), ScriptTransfer(Address(fromBase58String(ArtistAddress)), fraction(bidAmount, ArtistfeePercent, 100), USDNAssetId), ScriptTransfer(Address(NFTIssuerfeeReceiver), fraction(bidAmount, NFTIssuerfeePercent, 100), USDNAssetId), ScriptTransfer(addressFromStringValue(bidAuthor), 1, fromBase58String(assetId))]
180+ then [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")), ScriptTransfer(addressFromStringValue(auctionOwner), fraction(bidAmount, ((100 - NFTIssuerfeePercent) - ArtistfeePercent), 100), USDNAssetId), ScriptTransfer(Address(NFTIssuerfeeReceiver), fraction(bidAmount, ArtistfeePercent, 100), USDNAssetId), ScriptTransfer(Address(NFTIssuerfeeReceiver), fraction(bidAmount, NFTIssuerfeePercent, 100), USDNAssetId), ScriptTransfer(addressFromStringValue(bidAuthor), 1, fromBase58String(assetId))]
181+ else [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")), ScriptTransfer(addressFromStringValue(auctionOwner), fraction(bidAmount, ((100 - NFTIssuerfeePercent) - ArtistfeePercent), 100), USDNAssetId), ScriptTransfer(Address(fromBase58String(ArtistAddress)), fraction(bidAmount, ArtistfeePercent, 100), USDNAssetId), ScriptTransfer(Address(NFTIssuerfeeReceiver), fraction(bidAmount, NFTIssuerfeePercent, 100), USDNAssetId), ScriptTransfer(addressFromStringValue(bidAuthor), 1, fromBase58String(assetId))]
182182 }
183183 else throw("Not a directBuy auction!")
184184 }
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let NFTIssuerAddress = base58'3MrWNTqFcHBqb58Za1A5crQrMV5KJ5DYhtA'
55
66 let NFTIssuerfeeReceiver = base58'3N65xLq8JcCeaEiR1TJQ7dBqXBvEy6E48Wz'
77
88 let NFTIssuerfeePercent = 3
99
1010 let ArtistfeePercent = 7
1111
1212 let oracleFee = value(addressFromString("3MpZQjzGogmifcEKe8mDd6ribL7nxT9ACye"))
1313
1414 let feeReceiver = "3N65xLq8JcCeaEiR1TJQ7dBqXBvEy6E48Wz"
1515
1616 let certDapp = "3MxcXrNbMZKYaSrhcfeMm2hZnBeCu3yRWsw"
1717
1818 let userDapp = value(addressFromString("3Mzv4UHGRCC5KknZb8x5wfFUQzzpY9G4Gn4"))
1919
2020 let whitelistDapp = value(addressFromString("3N9xZYGpzMFDXvXuctmU6zV8qSzm2ZfF31f"))
2121
2222 let USDNAssetId = base58'132maRL3uF35tc2bpRih9D6MYq5DR6H28zkop786dKyu'
2323
2424 let auctionType1 = "BIDTYPE"
2525
2626 let auctionType2 = "TRADITIONAL"
2727
2828 let auctionType3 = "DIRECT"
2929
3030 func getStringByKey (key) = valueOrElse(getString(this, key), "")
3131
3232
3333 func keyAuctionType (auctionId) = (("auction_" + auctionId) + "_actionType")
3434
3535
3636 func tryGetInteger (key) = {
3737 let val = match getInteger(this, key) {
3838 case b: Int =>
3939 b
4040 case _ =>
4141 0
4242 }
4343 val
4444 }
4545
4646
4747 func tryGetString (key) = {
4848 let val = match getString(this, key) {
4949 case b: String =>
5050 b
5151 case _ =>
5252 ""
5353 }
5454 val
5555 }
5656
5757
5858 func getNFTIssuer (assetId) = {
5959 let myassetinfo = value(assetInfo(assetId))
6060 if ((myassetinfo.issuer == Address(NFTIssuerAddress)))
6161 then "true"
6262 else ""
6363 }
6464
6565
6666 func getNFTArtist (assetId) = {
6767 let ArtistAddress = match getString(Address(NFTIssuerAddress), ("nft_issued_" + assetId)) {
6868 case b: String =>
6969 b
7070 case _ =>
7171 ""
7272 }
7373 ArtistAddress
7474 }
7575
7676
7777 func getArtId (assetId) = {
7878 let ArtistAddress = match getString(Address(NFTIssuerAddress), ("nft_artId_" + assetId)) {
7979 case b: String =>
8080 b
8181 case _ =>
8282 ""
8383 }
8484 ArtistAddress
8585 }
8686
8787
8888 func acceptedAssetIds (assetId) = if ((assetId != toBase58String(USDNAssetId)))
8989 then throw("Only USDN accepted")
9090 else true
9191
9292
9393 @Callable(i)
9494 func initAuction (startPrice,auctionType) = {
9595 let auctionId = toBase58String(i.transactionId)
9696 if ((size(i.payments) == 0))
9797 then throw("No payment attached")
9898 else if ((size(i.payments) >= 2))
9999 then throw("Too many payments attached")
100100 else {
101101 let pmt = value(i.payments[0])
102102 let assetId = value(pmt.assetId)
103103 let asset = getNFTIssuer(assetId)
104104 if ((asset == ""))
105105 then throw("You can only sell an NFT created on SCONE Marketplace")
106106 else if (!(containsElement([auctionType1, auctionType3], auctionType)))
107107 then throw("We don't know this auction type")
108108 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))]
109109 }
110110 }
111111
112112
113113
114114 @Callable(i)
115115 func cancelAuction (auctionId) = {
116116 let auctionOwner = tryGetString((("auction_" + auctionId) + "_owner"))
117117 if ((toString(i.caller) != auctionOwner))
118118 then throw("Only allowed to auction owner")
119119 else if ((tryGetString((("auction_" + auctionId) + "_status")) != "open"))
120120 then throw("auction is close")
121121 else [StringEntry((("auction_" + auctionId) + "_status"), "cancelled"), DeleteEntry((((("address_" + auctionOwner) + "_auction_") + auctionId) + "_lockedNFT")), ScriptTransfer(i.caller, 1, fromBase58String(getStringValue(this, (("auction_" + auctionId) + "_assetId"))))]
122122 }
123123
124124
125125
126126 @Callable(i)
127127 func placeBid (auctionId) = {
128128 let pmt = value(i.payments[0])
129129 let amount = pmt.amount
130130 let bidId = toBase58String(i.transactionId)
131131 let assetId = getStringValue(this, (("auction_" + auctionId) + "_assetId"))
132132 let PayAssetId = if (!(isDefined(pmt.assetId)))
133133 then throw("Only USDN is accepted!")
134134 else toBase58String(value(pmt.assetId))
135135 if (!(acceptedAssetIds(PayAssetId)))
136136 then throw("Auction does only support USDN payments")
137137 else {
138138 let minPrice = tryGetInteger((("auction_" + auctionId) + "_startPrice"))
139139 if ((minPrice > amount))
140140 then throw(("The minimal initial price is set as " + toString(minPrice)))
141141 else {
142142 let auctionType = getStringByKey(keyAuctionType(auctionId))
143143 if ((auctionType == auctionType1))
144144 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")]
145145 else throw("Not a BidType auction!")
146146 }
147147 }
148148 }
149149
150150
151151
152152 @Callable(i)
153153 func directBuy (auctionId) = {
154154 let pmt = value(i.payments[0])
155155 let amount = pmt.amount
156156 let bidId = toBase58String(i.transactionId)
157157 let assetId = getStringValue(this, (("auction_" + auctionId) + "_assetId"))
158158 let auctionOwner = tryGetString((("auction_" + auctionId) + "_owner"))
159159 let bidAmount = amount
160160 let bidAuthor = toString(i.caller)
161161 let PayAssetId = if (!(isDefined(pmt.assetId)))
162162 then throw("Only USDN is accepted!")
163163 else toBase58String(value(pmt.assetId))
164164 if (!(acceptedAssetIds(PayAssetId)))
165165 then throw("Auction does only support USDN payments")
166166 else {
167167 let minPrice = tryGetInteger((("auction_" + auctionId) + "_startPrice"))
168168 if ((minPrice != amount))
169169 then throw(("The exact price is set as " + toString(minPrice)))
170170 else {
171171 let auctionType = getStringByKey(keyAuctionType(auctionId))
172172 if ((auctionType == auctionType3))
173173 then {
174174 let recordPrice = tryGetInteger((assetId + "_recordPrice"))
175175 let newRecordPrice = max([recordPrice, bidAmount])
176176 let ArtistAddress = getNFTArtist(assetId)
177177 let artId = getArtId(assetId)
178178 let percentageKey = ((("art_royalty" + artId) + "_") + ArtistAddress)
179179 if ((ArtistAddress == ""))
180- then [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")), ScriptTransfer(i.caller, fraction(bidAmount, ((100 - NFTIssuerfeePercent) - ArtistfeePercent), 100), USDNAssetId), ScriptTransfer(Address(NFTIssuerfeeReceiver), fraction(bidAmount, ArtistfeePercent, 100), USDNAssetId), ScriptTransfer(Address(NFTIssuerfeeReceiver), fraction(bidAmount, NFTIssuerfeePercent, 100), USDNAssetId), ScriptTransfer(addressFromStringValue(bidAuthor), 1, fromBase58String(assetId))]
181- else [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")), ScriptTransfer(i.caller, fraction(bidAmount, ((100 - NFTIssuerfeePercent) - ArtistfeePercent), 100), USDNAssetId), ScriptTransfer(Address(fromBase58String(ArtistAddress)), fraction(bidAmount, ArtistfeePercent, 100), USDNAssetId), ScriptTransfer(Address(NFTIssuerfeeReceiver), fraction(bidAmount, NFTIssuerfeePercent, 100), USDNAssetId), ScriptTransfer(addressFromStringValue(bidAuthor), 1, fromBase58String(assetId))]
180+ then [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")), ScriptTransfer(addressFromStringValue(auctionOwner), fraction(bidAmount, ((100 - NFTIssuerfeePercent) - ArtistfeePercent), 100), USDNAssetId), ScriptTransfer(Address(NFTIssuerfeeReceiver), fraction(bidAmount, ArtistfeePercent, 100), USDNAssetId), ScriptTransfer(Address(NFTIssuerfeeReceiver), fraction(bidAmount, NFTIssuerfeePercent, 100), USDNAssetId), ScriptTransfer(addressFromStringValue(bidAuthor), 1, fromBase58String(assetId))]
181+ else [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")), ScriptTransfer(addressFromStringValue(auctionOwner), fraction(bidAmount, ((100 - NFTIssuerfeePercent) - ArtistfeePercent), 100), USDNAssetId), ScriptTransfer(Address(fromBase58String(ArtistAddress)), fraction(bidAmount, ArtistfeePercent, 100), USDNAssetId), ScriptTransfer(Address(NFTIssuerfeeReceiver), fraction(bidAmount, NFTIssuerfeePercent, 100), USDNAssetId), ScriptTransfer(addressFromStringValue(bidAuthor), 1, fromBase58String(assetId))]
182182 }
183183 else throw("Not a directBuy auction!")
184184 }
185185 }
186186 }
187187
188188
189189
190190 @Callable(i)
191191 func cancelBid (auctionId,bidId) = {
192192 let assetId = getStringValue(this, (("auction_" + auctionId) + "_assetId"))
193193 let bidAuthor = tryGetString((((("auction_" + auctionId) + "_bid_") + bidId) + "_author"))
194194 let bidAmount = tryGetInteger((((("auction_" + auctionId) + "_bid_") + bidId) + "_amount"))
195195 if (if ((toString(i.caller) != bidAuthor))
196196 then (i.caller != this)
197197 else false)
198198 then throw("Only allowed to the bid author or admin")
199199 else if ((tryGetString((((("auction_" + auctionId) + "_bid_") + bidId) + "_status")) != "open"))
200200 then throw("bid is not open")
201201 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)]
202202 }
203203
204204
205205
206206 @Callable(i)
207207 func acceptBid (auctionId,bidId) = {
208208 let auctionOwner = tryGetString((("auction_" + auctionId) + "_owner"))
209209 let bidAuthor = tryGetString((((("auction_" + auctionId) + "_bid_") + bidId) + "_author"))
210210 let bidAmount = tryGetInteger((((("auction_" + auctionId) + "_bid_") + bidId) + "_amount"))
211211 let bidStatus = tryGetString((((("auction_" + auctionId) + "_bid_") + bidId) + "_status"))
212212 let assetId = tryGetString((("auction_" + auctionId) + "_assetId"))
213213 if ((toString(i.caller) != auctionOwner))
214214 then throw("Only allowed to auction owner")
215215 else if ((bidStatus != "open"))
216216 then throw("Bid was cancelled and cannot be accepted")
217217 else {
218218 let recordPrice = tryGetInteger((assetId + "_recordPrice"))
219219 let newRecordPrice = max([recordPrice, bidAmount])
220220 let ArtistAddress = getNFTArtist(assetId)
221221 let artId = getArtId(assetId)
222222 let percentageKey = ((("art_royalty" + artId) + "_") + ArtistAddress)
223223 if ((ArtistAddress == ""))
224224 then [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")), ScriptTransfer(i.caller, fraction(bidAmount, ((100 - NFTIssuerfeePercent) - ArtistfeePercent), 100), USDNAssetId), ScriptTransfer(Address(NFTIssuerfeeReceiver), fraction(bidAmount, ArtistfeePercent, 100), USDNAssetId), ScriptTransfer(Address(NFTIssuerfeeReceiver), fraction(bidAmount, NFTIssuerfeePercent, 100), USDNAssetId), ScriptTransfer(addressFromStringValue(bidAuthor), 1, fromBase58String(assetId))]
225225 else [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")), ScriptTransfer(i.caller, fraction(bidAmount, ((100 - NFTIssuerfeePercent) - ArtistfeePercent), 100), USDNAssetId), ScriptTransfer(Address(fromBase58String(ArtistAddress)), fraction(bidAmount, ArtistfeePercent, 100), USDNAssetId), ScriptTransfer(Address(NFTIssuerfeeReceiver), fraction(bidAmount, NFTIssuerfeePercent, 100), USDNAssetId), ScriptTransfer(addressFromStringValue(bidAuthor), 1, fromBase58String(assetId))]
226226 }
227227 }
228228
229229
230230 @Verifier(tx)
231231 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
232232

github/deemru/w8io/169f3d6 
78.64 ms