tx · 3QfcYyt4Q6rU3wUNCRLiePSCv1EHAuY37wFPuzYHaMo2

3PQ5smtcz4F9F3rhbj3PX6GBgM4YtPkeHCg:  -0.01200000 Waves

2023.08.27 18:35 [3794907] smart account 3PQ5smtcz4F9F3rhbj3PX6GBgM4YtPkeHCg > SELF 0.00000000 Waves

{ "type": 13, "id": "3QfcYyt4Q6rU3wUNCRLiePSCv1EHAuY37wFPuzYHaMo2", "fee": 1200000, "feeAssetId": null, "timestamp": 1693150505010, "version": 2, "chainId": 87, "sender": "3PQ5smtcz4F9F3rhbj3PX6GBgM4YtPkeHCg", "senderPublicKey": "FR8teTy3vHXM8K3qgseLD8fgBc5Rw5ge9NBZQFYYUJYL", "proofs": [ "5WB7Hgzj5FXfUKPC9myix7U8VCCVGG6AnGx3xHj54w1CsmB6EC8JHyrrnjHU55rQmAJQpfSdP1BUSMzzEauMUR5C" ], "script": "base64:AAIFAAAAAAAAABcIAhIDCgEIEg4KDAgBAQgICAgIAQgBCAAAACMBAAAAFHRyeUdldFN0cmluZ0V4dGVybmFsAAAAAgAAAAdhZGRyZXNzAAAAA2tleQQAAAAHJG1hdGNoMAkABB0AAAACBQAAAAdhZGRyZXNzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQIAAAAAAQAAAAx0cnlHZXRTdHJpbmcAAAABAAAAA2tleQkBAAAAFHRyeUdldFN0cmluZ0V4dGVybmFsAAAAAgUAAAAEdGhpcwUAAAADa2V5AQAAAAlnZXRPcmFjbGUAAAAACQEAAAAHQWRkcmVzcwAAAAEJAAJZAAAAAQkBAAAADHRyeUdldFN0cmluZwAAAAECAAAAFHN0YXRpY19vcmFjbGVBZGRyZXNzAQAAABJnZXRDZk1hc3RlckFkZHJlc3MAAAAACQEAAAAHQWRkcmVzcwAAAAEJAAJZAAAAAQkBAAAAFHRyeUdldFN0cmluZ0V4dGVybmFsAAAAAgkBAAAACWdldE9yYWNsZQAAAAACAAAAFnN0YXRpY19jZk1hc3RlckFkZHJlc3MBAAAAEGdldEJhY2tlbmRQdWJLZXkAAAAACQACWQAAAAEJAQAAABFAZXh0ck5hdGl2ZSgxMDUzKQAAAAIJAQAAAAlnZXRPcmFjbGUAAAAAAgAAABRzdGF0aWNfYmFja2VuZFB1YktleQEAAAAKZ2V0TWF4RGlmZgAAAAAJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIJAQAAAAlnZXRPcmFjbGUAAAAAAgAAABNzdGF0aWNfbWF4UHJveHlEaWZmAAAAAA9rVG90YWxMaXF1aWRpdHkCAAAAD3RvdGFsX2xpcXVpZGl0eQAAAAAMa0luaXRpYWxpemVkAgAAAAtJTklUSUFMSVpFRAAAAAATa0xpcXVpZGl0eVRocmVzaG9sZAIAAAATTElRVUlESVRZX1RIUkVTSE9MRAAAAAARa1RvdGFsU2hhcmVUb2tlbnMCAAAAEnRvdGFsX3NoYXJlX3Rva2VucwAAAAANa1NoYXJlQXNzZXRJZAIAAAAOU0hBUkVfQVNTRVRfSUQAAAAADmtJbmN1YmF0b3JEYXBwAgAAAA5JTkNVQkFUT1JfREFQUAAAAAAMa0JyZWVkZXJEYXBwAgAAAAxCUkVFREVSX0RBUFAAAAAADGtGYXJtaW5nRGFwcAIAAAAMRkFSTUlOR19EQVBQAAAAABBrTWFya2V0UHJveHlEYXBwAgAAABZNQVJLRVRQTEFDRV9QUk9YWV9EQVBQAAAAAAxrQXVjdGlvbkRhcHACAAAADEFVQ1RJT05fREFQUAAAAAAHa0xvY2tlZAIAAAAGTE9DS0VEAAAAABNrVG90YWxGYXJtaW5nUmV3YXJkAgAAABR0b3RhbF9mYXJtaW5nX3Jld2FyZAAAAAAQa0Nlb0NvbGxlY3RlZEZlZQIAAAARY2VvX2NvbGxlY3RlZF9mZWUAAAAAF2tDZW9Db2xsZWN0ZWRGZWVPdmVyYWxsAgAAAA9jZW9fZmVlX292ZXJhbGwAAAAACGtUb0Rpc3RyAgAAAA10b19kaXN0cmlidXRlAQAAAAZnZXRJbnQAAAABAAAAA2tleQQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYgUAAAAHJG1hdGNoMAUAAAABYgAAAAAAAAAAAAEAAAAHZ2V0Qm9vbAAAAAEAAAADa2V5BAAAAAckbWF0Y2gwCQAEGwAAAAIFAAAABHRoaXMFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAHQm9vbGVhbgQAAAABYgUAAAAHJG1hdGNoMAUAAAABYgUAAAAEdW5pdAEAAAAIZ2V0Qm9vbEEAAAACAAAAAWEAAAADa2V5BAAAAAckbWF0Y2gwCQAEGwAAAAIFAAAAAWEFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAHQm9vbGVhbgQAAAABYgUAAAAHJG1hdGNoMAUAAAABYgUAAAAEdW5pdAEAAAAHZ2V0SW50QQAAAAIAAAAHYWRkcmVzcwAAAANrZXkEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAHYWRkcmVzcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWIFAAAAByRtYXRjaDAFAAAAAWIAAAAAAAAAAAABAAAADmdldEF1Y3Rpb25BZGRyAAAAAAkBAAAAFHRyeUdldFN0cmluZ0V4dGVybmFsAAAAAgkBAAAAEmdldENmTWFzdGVyQWRkcmVzcwAAAAAFAAAADGtBdWN0aW9uRGFwcAEAAAANYW1vdW50T3JDbGVhcgAAAAEAAAAGYW1vdW50AwkBAAAACGNvbnRhaW5zAAAAAgUAAAAGYW1vdW50AgAAAAEwAgAAAAAFAAAABmFtb3VudAEAAAAOZ2V0QXNzZXRPcmlnaW4AAAABAAAACmdlbmVyYXRpb24EAAAAEGluY3ViYXRvckFkZHJlc3MJAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIJAQAAABJnZXRDZk1hc3RlckFkZHJlc3MAAAAABQAAAA5rSW5jdWJhdG9yRGFwcAQAAAAOYnJlZWRlckFkZHJlc3MJAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIJAQAAABJnZXRDZk1hc3RlckFkZHJlc3MAAAAABQAAAAxrQnJlZWRlckRhcHADCQAAAAAAAAIFAAAACmdlbmVyYXRpb24CAAAAAUcJAAJZAAAAAQUAAAAQaW5jdWJhdG9yQWRkcmVzcwkAAlkAAAABBQAAAA5icmVlZGVyQWRkcmVzcwEAAAAOZ2V0QXNzZXRSYXJpdHkAAAACAAAABGdlbm8AAAAKZ2VuZXJhdGlvbgQAAAAIcXVhbnRpdHkJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIJAQAAAAdBZGRyZXNzAAAAAQkBAAAADmdldEFzc2V0T3JpZ2luAAAAAQUAAAAKZ2VuZXJhdGlvbgkAASwAAAACCQABLAAAAAICAAAABnN0YXRzXwUAAAAEZ2VubwIAAAAJX3F1YW50aXR5BAAAAAVwb3dlcgkAAGwAAAAGCQAAaQAAAAIAAAAAAAAAJxAFAAAACHF1YW50aXR5AAAAAAAAAAAEAAAAAAAAAAAFAAAAAAAAAAABAAAAAAAAAAACBQAAAAVGTE9PUgMJAABmAAAAAgUAAAAFcG93ZXIAAAAAAAAAAAAFAAAABXBvd2VyAAAAAAAAAAACAQAAAAhhc1N0cmluZwAAAAEAAAAFdmFsdWUEAAAAByRtYXRjaDAFAAAABXZhbHVlAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAABnN0cmluZwUAAAAHJG1hdGNoMAUAAAAGc3RyaW5nCQAAAgAAAAECAAAAHHdyb25nIHR5cGUsIGV4cGVjdGVkOiBTdHJpbmcBAAAAFGdldEFzc2V0RmFybWluZ1Bvd2VyAAAAAQAAAAdhc3NldElkBAAAAA5icmVlZGVyQWRkcmVzcwkAAlkAAAABCQEAAAAUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwAAAACCQEAAAASZ2V0Q2ZNYXN0ZXJBZGRyZXNzAAAAAAUAAAAMa0JyZWVkZXJEYXBwBAAAABBpbmN1YmF0b3JBZGRyZXNzCQACWQAAAAEJAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIJAQAAABJnZXRDZk1hc3RlckFkZHJlc3MAAAAABQAAAA5rSW5jdWJhdG9yRGFwcAMDCQAAAAAAAAIICQEAAAAFdmFsdWUAAAABCQAD7AAAAAEFAAAAB2Fzc2V0SWQAAAAGaXNzdWVyCQEAAAAHQWRkcmVzcwAAAAEFAAAADmJyZWVkZXJBZGRyZXNzBgkAAAAAAAACCAkBAAAABXZhbHVlAAAAAQkAA+wAAAABBQAAAAdhc3NldElkAAAABmlzc3VlcgkBAAAAB0FkZHJlc3MAAAABBQAAABBpbmN1YmF0b3JBZGRyZXNzBAAAAAlhc3NldE5hbWUICQEAAAAFdmFsdWUAAAABCQAD7AAAAAEFAAAAB2Fzc2V0SWQAAAAEbmFtZQQAAAAKZ2VuZXJhdGlvbgkAAS8AAAACCQEAAAAJdGFrZVJpZ2h0AAAAAgUAAAAJYXNzZXROYW1lAAAAAAAAAAACAAAAAAAAAAABBAAAAAdmYXJtR2VuCQEAAAAIYXNTdHJpbmcAAAABCQAD/AAAAAQJAQAAAAdBZGRyZXNzAAAAAQUAAAAOYnJlZWRlckFkZHJlc3MCAAAADmdldEdlbkZyb21OYW1lCQAETAAAAAIFAAAACWFzc2V0TmFtZQUAAAADbmlsBQAAAANuaWwDCQAAAAAAAAIFAAAAB2Zhcm1HZW4FAAAAB2Zhcm1HZW4JAQAAAA5nZXRBc3NldFJhcml0eQAAAAIFAAAAB2Zhcm1HZW4FAAAACmdlbmVyYXRpb24JAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQAAAgAAAAECAAAACk1HQUZQ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", "height": 3794907, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 29YEAxZsL7VBf8Lvc1YfkTu1x1349h1JZXSnzvuB8qtU Next: 6QUKsVGfGNkL9EDSnzfcfJqJdbsDGRjtvSDK7xCKpr8j Diff:
OldNewDifferences
173173
174174
175175 func checkDataGetPrice (ach,breed,gen,price,rarity,ts,signature,duckId) = {
176- let isArtefact = contains(gen, "ART")
177- let text = if (isArtefact)
176+ let isDuck = contains(gen, "DUCK")
177+ let text = if (!(isDuck))
178178 then makeString([gen, toString(price), toString(ts)], ";")
179179 else makeString([rarity, breed, ach, gen, toString(price), toString(ts)], ";")
180180 let MSINHOUR = 3600000
181181 if (!(sigVerify_8Kb(toBytes(text), fromBase58String(signature), getBackendPubKey())))
182- then throw(((("MCACS: Invalid proof from backend key" + toBase58String(getBackendPubKey())) + " ") + text))
182+ then throw(((((("MCACS: Invalid proof from backend key" + toBase58String(getBackendPubKey())) + " ") + text) + " ") + toString(isDuck)))
183183 else {
184184 let currentTs = lastBlock.timestamp
185185 if ((currentTs > (ts + MSINHOUR)))
186186 then throw("MCACS: Outdated signature!")
187- else if (!(isArtefact))
187+ else if (isDuck)
188188 then {
189189 let duckRarity = getAssetFarmingPower(fromBase58String(duckId))
190190 let diff = (duckRarity - parseIntValue(split(rarity, ".")[0]))
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 func tryGetStringExternal (address,key) = match getString(address, key) {
55 case a: String =>
66 a
77 case _ =>
88 ""
99 }
1010
1111
1212 func tryGetString (key) = tryGetStringExternal(this, key)
1313
1414
1515 func getOracle () = Address(fromBase58String(tryGetString("static_oracleAddress")))
1616
1717
1818 func getCfMasterAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), "static_cfMasterAddress")))
1919
2020
2121 func getBackendPubKey () = fromBase58String(getStringValue(getOracle(), "static_backendPubKey"))
2222
2323
2424 func getMaxDiff () = getIntegerValue(getOracle(), "static_maxProxyDiff")
2525
2626
2727 let kTotalLiquidity = "total_liquidity"
2828
2929 let kInitialized = "INITIALIZED"
3030
3131 let kLiquidityThreshold = "LIQUIDITY_THRESHOLD"
3232
3333 let kTotalShareTokens = "total_share_tokens"
3434
3535 let kShareAssetId = "SHARE_ASSET_ID"
3636
3737 let kIncubatorDapp = "INCUBATOR_DAPP"
3838
3939 let kBreederDapp = "BREEDER_DAPP"
4040
4141 let kFarmingDapp = "FARMING_DAPP"
4242
4343 let kMarketProxyDapp = "MARKETPLACE_PROXY_DAPP"
4444
4545 let kAuctionDapp = "AUCTION_DAPP"
4646
4747 let kLocked = "LOCKED"
4848
4949 let kTotalFarmingReward = "total_farming_reward"
5050
5151 let kCeoCollectedFee = "ceo_collected_fee"
5252
5353 let kCeoCollectedFeeOverall = "ceo_fee_overall"
5454
5555 let kToDistr = "to_distribute"
5656
5757 func getInt (key) = match getInteger(this, key) {
5858 case b: Int =>
5959 b
6060 case _ =>
6161 0
6262 }
6363
6464
6565 func getBool (key) = match getBoolean(this, key) {
6666 case b: Boolean =>
6767 b
6868 case _ =>
6969 unit
7070 }
7171
7272
7373 func getBoolA (a,key) = match getBoolean(a, key) {
7474 case b: Boolean =>
7575 b
7676 case _ =>
7777 unit
7878 }
7979
8080
8181 func getIntA (address,key) = match getInteger(address, key) {
8282 case b: Int =>
8383 b
8484 case _ =>
8585 0
8686 }
8787
8888
8989 func getAuctionAddr () = tryGetStringExternal(getCfMasterAddress(), kAuctionDapp)
9090
9191
9292 func amountOrClear (amount) = if (contains(amount, "0"))
9393 then ""
9494 else amount
9595
9696
9797 func getAssetOrigin (generation) = {
9898 let incubatorAddress = tryGetStringExternal(getCfMasterAddress(), kIncubatorDapp)
9999 let breederAddress = tryGetStringExternal(getCfMasterAddress(), kBreederDapp)
100100 if ((generation == "G"))
101101 then fromBase58String(incubatorAddress)
102102 else fromBase58String(breederAddress)
103103 }
104104
105105
106106 func getAssetRarity (geno,generation) = {
107107 let quantity = getIntegerValue(Address(getAssetOrigin(generation)), (("stats_" + geno) + "_quantity"))
108108 let power = pow((10000 / quantity), 4, 5, 1, 2, FLOOR)
109109 if ((power > 0))
110110 then power
111111 else 2
112112 }
113113
114114
115115 func asString (value) = match value {
116116 case string: String =>
117117 string
118118 case _ =>
119119 throw("wrong type, expected: String")
120120 }
121121
122122
123123 func getAssetFarmingPower (assetId) = {
124124 let breederAddress = fromBase58String(tryGetStringExternal(getCfMasterAddress(), kBreederDapp))
125125 let incubatorAddress = fromBase58String(tryGetStringExternal(getCfMasterAddress(), kIncubatorDapp))
126126 if (if ((value(assetInfo(assetId)).issuer == Address(breederAddress)))
127127 then true
128128 else (value(assetInfo(assetId)).issuer == Address(incubatorAddress)))
129129 then {
130130 let assetName = value(assetInfo(assetId)).name
131131 let generation = take(takeRight(assetName, 2), 1)
132132 let farmGen = asString(invoke(Address(breederAddress), "getGenFromName", [assetName], nil))
133133 if ((farmGen == farmGen))
134134 then getAssetRarity(farmGen, generation)
135135 else throw("Strict value is not equal to itself.")
136136 }
137137 else throw("MGAFP: _20")
138138 }
139139
140140
141141 func getDuckMarketPrice (nftId) = {
142142 let rarity = getAssetFarmingPower(nftId)
143143 let breederAddress = addressFromStringValue(tryGetStringExternal(getCfMasterAddress(), kBreederDapp))
144144 let sterile = getIntA(breederAddress, (("asset_" + toBase58String(nftId)) + "_children"))
145145 let canBreedText = if ((sterile > 0))
146146 then "0"
147147 else "1"
148148 let val = getInteger(getCfMasterAddress(), ((("r-" + toString(rarity)) + "-b-") + canBreedText))
149149 match val {
150150 case price: Int =>
151151 let minPrice = if ((sterile > 0))
152152 then (200000000 * rarity)
153153 else 18000000000
154154 if ((minPrice > price))
155155 then minPrice
156156 else price
157157 case _ =>
158158 throw((((("There is no price for such duck: " + "r-") + toString(rarity)) + "-b-") + canBreedText))
159159 }
160160 }
161161
162162
163163 func getDuckIdByAuctionId (auctionId) = {
164164 let marketAddr = getAuctionAddr()
165165 tryGetStringExternal(addressFromStringValue(marketAddr), (("auction_" + auctionId) + "_assetId"))
166166 }
167167
168168
169169 func getBidAmount (auctionId,bidId) = {
170170 let marketAddr = getAuctionAddr()
171171 getIntA(addressFromStringValue(marketAddr), (((("auction_" + auctionId) + "_bid_") + bidId) + "_amount"))
172172 }
173173
174174
175175 func checkDataGetPrice (ach,breed,gen,price,rarity,ts,signature,duckId) = {
176- let isArtefact = contains(gen, "ART")
177- let text = if (isArtefact)
176+ let isDuck = contains(gen, "DUCK")
177+ let text = if (!(isDuck))
178178 then makeString([gen, toString(price), toString(ts)], ";")
179179 else makeString([rarity, breed, ach, gen, toString(price), toString(ts)], ";")
180180 let MSINHOUR = 3600000
181181 if (!(sigVerify_8Kb(toBytes(text), fromBase58String(signature), getBackendPubKey())))
182- then throw(((("MCACS: Invalid proof from backend key" + toBase58String(getBackendPubKey())) + " ") + text))
182+ then throw(((((("MCACS: Invalid proof from backend key" + toBase58String(getBackendPubKey())) + " ") + text) + " ") + toString(isDuck)))
183183 else {
184184 let currentTs = lastBlock.timestamp
185185 if ((currentTs > (ts + MSINHOUR)))
186186 then throw("MCACS: Outdated signature!")
187- else if (!(isArtefact))
187+ else if (isDuck)
188188 then {
189189 let duckRarity = getAssetFarmingPower(fromBase58String(duckId))
190190 let diff = (duckRarity - parseIntValue(split(rarity, ".")[0]))
191191 if (if ((-5 > diff))
192192 then true
193193 else (diff > 5))
194194 then throw(((((("MCACS: It seems not the correct price info was passed! " + toString(duckRarity)) + " ") + rarity) + " ") + toString(diff)))
195195 else price
196196 }
197197 else price
198198 }
199199 }
200200
201201
202202 @Callable(i)
203203 func configureOracle (oracle) = if ((i.caller != this))
204204 then throw("BCO: admin only")
205205 else [StringEntry("static_oracleAddress", oracle)]
206206
207207
208208
209209 @Callable(i)
210210 func callMarketplaceProxy (function,int1,int2,str1,str2,ach,breed,gen,price,rarity,ts,signature) = {
211211 let auctionDappAddress = addressFromStringValue(getAuctionAddr())
212212 if ((getBoolA(getCfMasterAddress(), ("farm_" + toString(i.caller))) != true))
213213 then throw("_301=")
214214 else if ((function == "initAuction"))
215215 then {
216216 let asset = value(i.payments[0])
217217 let duckMarketPrice = checkDataGetPrice(ach, breed, gen, price, rarity, ts, signature, toBase58String(value(asset.assetId)))
218218 let maxPriceDiff = fraction(duckMarketPrice, getMaxDiff(), 100)
219219 let initialPrice = int1
220220 let buyoutPrice = int2
221221 if (if (((duckMarketPrice - maxPriceDiff) > initialPrice))
222222 then true
223223 else (initialPrice > buyoutPrice))
224224 then throw(((((("Price is too low, avg price: " + toString(duckMarketPrice)) + ", min. price: ") + toString((duckMarketPrice - maxPriceDiff))) + ", your bid: ") + toString(initialPrice)))
225225 else if ((value(asset.amount) != 1))
226226 then throw("_103")
227227 else {
228228 let initAuction = invoke(auctionDappAddress, "initAuction", [initialPrice, buyoutPrice, str1, str2], [AttachedPayment(value(asset.assetId), 1)])
229229 if ((initAuction == initAuction))
230230 then [StringEntry(("tx_" + toBase58String(i.transactionId)), toBase58String(value(asset.assetId)))]
231231 else throw("Strict value is not equal to itself.")
232232 }
233233 }
234234 else if ((function == "placeBid"))
235235 then {
236236 let auctionId = str1
237237 let duckAssetId = getDuckIdByAuctionId(auctionId)
238238 let bidAmount = value(value(i.payments[0]).amount)
239239 let duckMarketPrice = checkDataGetPrice(ach, breed, gen, price, rarity, ts, signature, duckAssetId)
240240 let maxPriceDiff = fraction(duckMarketPrice, getMaxDiff(), 100)
241241 if ((bidAmount > (duckMarketPrice + maxPriceDiff)))
242242 then throw(((((((("Price is too high, avg price: " + toString(duckMarketPrice)) + ", max. price: ") + toString((duckMarketPrice + maxPriceDiff))) + ", your bid: ") + toString(bidAmount)) + " diff: ") + toString(maxPriceDiff)))
243243 else if ((size(i.payments) != 1))
244244 then throw("_103")
245245 else {
246246 let placeBid = invoke(auctionDappAddress, "placeBid", [auctionId], [AttachedPayment(value(i.payments[0]).assetId, bidAmount)])
247247 if ((placeBid == placeBid))
248248 then [StringEntry(("tx_" + toBase58String(i.transactionId)), auctionId)]
249249 else throw("Strict value is not equal to itself.")
250250 }
251251 }
252252 else if ((function == "acceptBid"))
253253 then {
254254 let auctionId = str1
255255 let bidId = str2
256256 let duckAssetId = getDuckIdByAuctionId(auctionId)
257257 let bidAmount = getBidAmount(auctionId, bidId)
258258 let duckMarketPrice = checkDataGetPrice(ach, breed, gen, price, rarity, ts, signature, duckAssetId)
259259 let maxPriceDiff = fraction(duckMarketPrice, getMaxDiff(), 100)
260260 if (((duckMarketPrice - maxPriceDiff) > bidAmount))
261261 then throw(((((("Price is too low, avg price: " + toString(duckMarketPrice)) + ", min. price: ") + toString((duckMarketPrice - maxPriceDiff))) + ", your bid: ") + toString(bidAmount)))
262262 else {
263263 let acceptBid = invoke(auctionDappAddress, "acceptBid", [auctionId, bidId], nil)
264264 if ((acceptBid == acceptBid))
265265 then [StringEntry(("tx_" + toBase58String(i.transactionId)), auctionId)]
266266 else throw("Strict value is not equal to itself.")
267267 }
268268 }
269269 else if ((function == "instantBuy"))
270270 then {
271271 let auctionId = str1
272272 let duckAssetId = getDuckIdByAuctionId(auctionId)
273273 let bidAmount = value(value(i.payments[0]).amount)
274274 let duckMarketPrice = checkDataGetPrice(ach, breed, gen, price, rarity, ts, signature, duckAssetId)
275275 let maxPriceDiff = fraction(duckMarketPrice, 15, 100)
276276 if ((bidAmount > (duckMarketPrice + maxPriceDiff)))
277277 then throw(((((("Price is too high, avg price: " + toString(duckMarketPrice)) + ", max. price: ") + toString((duckMarketPrice + maxPriceDiff))) + ", your bid: ") + toString(bidAmount)))
278278 else if ((size(i.payments) != 1))
279279 then throw("_103")
280280 else {
281281 let instantBuy = invoke(auctionDappAddress, "instantBuy", [auctionId], [AttachedPayment(value(i.payments[0]).assetId, bidAmount)])
282282 if ((instantBuy == instantBuy))
283283 then [StringEntry(("tx_" + toBase58String(i.transactionId)), auctionId)]
284284 else throw("Strict value is not equal to itself.")
285285 }
286286 }
287287 else if ((function == "cancelBid"))
288288 then {
289289 let auctionId = str1
290290 let bidId = str2
291291 let acceptBid = invoke(auctionDappAddress, "cancelBid", [auctionId, bidId], nil)
292292 if ((acceptBid == acceptBid))
293293 then [StringEntry(("tx_" + toBase58String(i.transactionId)), auctionId)]
294294 else throw("Strict value is not equal to itself.")
295295 }
296296 else if ((function == "cancelAuction"))
297297 then {
298298 let auctionId = str1
299299 let acceptBid = invoke(auctionDappAddress, "cancelAuction", [auctionId], nil)
300300 if ((acceptBid == acceptBid))
301301 then [StringEntry(("tx_" + toBase58String(i.transactionId)), auctionId)]
302302 else throw("Strict value is not equal to itself.")
303303 }
304304 else throw("_13")
305305 }
306306
307307

github/deemru/w8io/6500d08 
48.94 ms