tx · HFGjJpWMUPQQjhv8RhTfZNWQH71ZaeHELoT3Mfc7wqAK

3PQ5smtcz4F9F3rhbj3PX6GBgM4YtPkeHCg:  -0.01600000 Waves

2022.09.16 16:01 [3297189] smart account 3PQ5smtcz4F9F3rhbj3PX6GBgM4YtPkeHCg > SELF 0.00000000 Waves

{ "type": 13, "id": "HFGjJpWMUPQQjhv8RhTfZNWQH71ZaeHELoT3Mfc7wqAK", "fee": 1600000, "feeAssetId": null, "timestamp": 1663333320568, "version": 2, "chainId": 87, "sender": "3PQ5smtcz4F9F3rhbj3PX6GBgM4YtPkeHCg", "senderPublicKey": "FR8teTy3vHXM8K3qgseLD8fgBc5Rw5ge9NBZQFYYUJYL", "proofs": [ "3GH8zz91Fcd5tpvVjG1ScDCQM8ckoGP61KHpgohJeSbAJ6DSFZhAXhjD7AEeckV7KNKQNVw4xHydhWjhfKZezhSE" ], "script": "base64:AAIFAAAAAAAAABIIAhIOCgwIAQEICAgICAEIAQgAAAAiAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIAAAAHYWRkcmVzcwAAAANrZXkEAAAAByRtYXRjaDAJAAQdAAAAAgUAAAAHYWRkcmVzcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWECAAAAAAEAAAAMdHJ5R2V0U3RyaW5nAAAAAQAAAANrZXkJAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIFAAAABHRoaXMFAAAAA2tleQEAAAAJZ2V0T3JhY2xlAAAAAAkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEJAQAAAAx0cnlHZXRTdHJpbmcAAAABAgAAABRzdGF0aWNfb3JhY2xlQWRkcmVzcwEAAAASZ2V0Q2ZNYXN0ZXJBZGRyZXNzAAAAAAkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEJAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIJAQAAAAlnZXRPcmFjbGUAAAAAAgAAABZzdGF0aWNfY2ZNYXN0ZXJBZGRyZXNzAQAAABBnZXRCYWNrZW5kUHViS2V5AAAAAAkAAlkAAAABCQEAAAARQGV4dHJOYXRpdmUoMTA1MykAAAACCQEAAAAJZ2V0T3JhY2xlAAAAAAIAAAAUc3RhdGljX2JhY2tlbmRQdWJLZXkAAAAAD2tUb3RhbExpcXVpZGl0eQIAAAAPdG90YWxfbGlxdWlkaXR5AAAAAAxrSW5pdGlhbGl6ZWQCAAAAC0lOSVRJQUxJWkVEAAAAABNrTGlxdWlkaXR5VGhyZXNob2xkAgAAABNMSVFVSURJVFlfVEhSRVNIT0xEAAAAABFrVG90YWxTaGFyZVRva2VucwIAAAASdG90YWxfc2hhcmVfdG9rZW5zAAAAAA1rU2hhcmVBc3NldElkAgAAAA5TSEFSRV9BU1NFVF9JRAAAAAAOa0luY3ViYXRvckRhcHACAAAADklOQ1VCQVRPUl9EQVBQAAAAAAxrQnJlZWRlckRhcHACAAAADEJSRUVERVJfREFQUAAAAAAMa0Zhcm1pbmdEYXBwAgAAAAxGQVJNSU5HX0RBUFAAAAAAEGtNYXJrZXRQ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AAAADmJyZWVkZXJBZGRyZXNzCQACWQAAAAEJAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIJAQAAABJnZXRDZk1hc3RlckFkZHJlc3MAAAAABQAAAAxrQnJlZWRlckRhcHAEAAAAEGluY3ViYXRvckFkZHJlc3MJAAJZAAAAAQkBAAAAFHRyeUdldFN0cmluZ0V4dGVybmFsAAAAAgkBAAAAEmdldENmTWFzdGVyQWRkcmVzcwAAAAAFAAAADmtJbmN1YmF0b3JEYXBwAwMJAAAAAAAAAggJAQAAAAV2YWx1ZQAAAAEJAAPsAAAAAQUAAAAHYXNzZXRJZAAAAAZpc3N1ZXIJAQAAAAdBZGRyZXNzAAAAAQUAAAAOYnJlZWRlckFkZHJlc3MGCQAAAAAAAAIICQEAAAAFdmFsdWUAAAABCQAD7AAAAAEFAAAAB2Fzc2V0SWQAAAAGaXNzdWVyCQEAAAAHQWRkcmVzcwAAAAEFAAAAEGluY3ViYXRvckFkZHJlc3MEAAAACWFzc2V0TmFtZQgJAQAAAAV2YWx1ZQAAAAEJAAPsAAAAAQUAAAAHYXNzZXRJZAAAAARuYW1lBAAAAApnZW5lcmF0aW9uCQABLwAAAAIJAQAAAAl0YWtlUmlnaHQAAAACBQAAAAlhc3NldE5hbWUAAAAAAAAAAAIAAAAAAAAAAAEEAAAAB2Zhcm1HZW4JAQAAAAhhc1N0cmluZwAAAAEJAAP8AAAABAkBAAAAB0FkZHJlc3MAAAABBQAAAA5icmVlZGVyQWRkcmVzcwIAAAAOZ2V0R2VuRnJvbU5hbWUJAARMAAAAAgUAAAAJYXNzZXROYW1lBQAAAANuaWwFAAAAA25pbAMJAAAAAAAAAgUAAAAHZmFybUdlbgUAAAAHZmFybUdlbgkBAAAADmdldEFzc2V0UmFyaXR5AAAAAgUAAAAHZmFybUdlbgUAAAAKZ2VuZXJhdGlvbgkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAACAAAAAQIAAAAKTUdBRlA6IF8yMAEAAAASZ2V0RHVja01hcmtldFByaWNlAAAAAQAAAAVuZnRJZAQAAAAGcmFyaXR5CQEAAAAUZ2V0QXNzZXRGYXJtaW5nUG93ZXIAAAABBQAAAAVuZnRJZAQA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", "height": 3297189, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 3Z7waZhQH36wo9FvZwnsg2hsfxhBDwKo8tDGPBcLzmkU Next: 33BeZ9Wje5dGMNUR1ndSMDv4CenTAx32NW5AYJURXfR1 Diff:
OldNewDifferences
131131 then getAssetRarity(farmGen, generation)
132132 else throw("Strict value is not equal to itself.")
133133 }
134- else throw("_20")
134+ else throw("MGAFP: _20")
135135 }
136136
137137
181181 let currentTs = lastBlock.timestamp
182182 if ((currentTs > (ts + MSINHOUR)))
183183 then throw("MCACS: Outdated signature!")
184- else {
185- let duckRarity = getAssetFarmingPower(fromBase58String(duckId))
186- if (isArtefact)
187- then {
188- let diff = (duckRarity - parseIntValue(split(rarity, ".")[0]))
189- if (if ((-5 > diff))
190- then true
191- else (diff > 5))
192- then throw(((((("MCACS: It seems not the correct price info was passed! " + toString(duckRarity)) + " ") + rarity) + " ") + toString(diff)))
193- else price
194- }
195- else price
196- }
184+ else if (isArtefact)
185+ then {
186+ let duckRarity = getAssetFarmingPower(fromBase58String(duckId))
187+ let diff = (duckRarity - parseIntValue(split(rarity, ".")[0]))
188+ if (if ((-5 > diff))
189+ then true
190+ else (diff > 5))
191+ then throw(((((("MCACS: It seems not the correct price info was passed! " + toString(duckRarity)) + " ") + rarity) + " ") + toString(diff)))
192+ else price
193+ }
194+ else price
197195 }
198196 }
199197
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 let kTotalLiquidity = "total_liquidity"
2525
2626 let kInitialized = "INITIALIZED"
2727
2828 let kLiquidityThreshold = "LIQUIDITY_THRESHOLD"
2929
3030 let kTotalShareTokens = "total_share_tokens"
3131
3232 let kShareAssetId = "SHARE_ASSET_ID"
3333
3434 let kIncubatorDapp = "INCUBATOR_DAPP"
3535
3636 let kBreederDapp = "BREEDER_DAPP"
3737
3838 let kFarmingDapp = "FARMING_DAPP"
3939
4040 let kMarketProxyDapp = "MARKETPLACE_PROXY_DAPP"
4141
4242 let kAuctionDapp = "AUCTION_DAPP"
4343
4444 let kLocked = "LOCKED"
4545
4646 let kTotalFarmingReward = "total_farming_reward"
4747
4848 let kCeoCollectedFee = "ceo_collected_fee"
4949
5050 let kCeoCollectedFeeOverall = "ceo_fee_overall"
5151
5252 let kToDistr = "to_distribute"
5353
5454 func getInt (key) = match getInteger(this, key) {
5555 case b: Int =>
5656 b
5757 case _ =>
5858 0
5959 }
6060
6161
6262 func getBool (key) = match getBoolean(this, key) {
6363 case b: Boolean =>
6464 b
6565 case _ =>
6666 unit
6767 }
6868
6969
7070 func getBoolA (a,key) = match getBoolean(a, key) {
7171 case b: Boolean =>
7272 b
7373 case _ =>
7474 unit
7575 }
7676
7777
7878 func getIntA (address,key) = match getInteger(address, key) {
7979 case b: Int =>
8080 b
8181 case _ =>
8282 0
8383 }
8484
8585
8686 func getAuctionAddr () = tryGetStringExternal(getCfMasterAddress(), kAuctionDapp)
8787
8888
8989 func amountOrClear (amount) = if (contains(amount, "0"))
9090 then ""
9191 else amount
9292
9393
9494 func getAssetOrigin (generation) = {
9595 let incubatorAddress = tryGetStringExternal(getCfMasterAddress(), kIncubatorDapp)
9696 let breederAddress = tryGetStringExternal(getCfMasterAddress(), kBreederDapp)
9797 if ((generation == "G"))
9898 then fromBase58String(incubatorAddress)
9999 else fromBase58String(breederAddress)
100100 }
101101
102102
103103 func getAssetRarity (geno,generation) = {
104104 let quantity = getIntegerValue(Address(getAssetOrigin(generation)), (("stats_" + geno) + "_quantity"))
105105 let power = pow((10000 / quantity), 4, 5, 1, 2, FLOOR)
106106 if ((power > 0))
107107 then power
108108 else 2
109109 }
110110
111111
112112 func asString (value) = match value {
113113 case string: String =>
114114 string
115115 case _ =>
116116 throw("wrong type, expected: String")
117117 }
118118
119119
120120 func getAssetFarmingPower (assetId) = {
121121 let breederAddress = fromBase58String(tryGetStringExternal(getCfMasterAddress(), kBreederDapp))
122122 let incubatorAddress = fromBase58String(tryGetStringExternal(getCfMasterAddress(), kIncubatorDapp))
123123 if (if ((value(assetInfo(assetId)).issuer == Address(breederAddress)))
124124 then true
125125 else (value(assetInfo(assetId)).issuer == Address(incubatorAddress)))
126126 then {
127127 let assetName = value(assetInfo(assetId)).name
128128 let generation = take(takeRight(assetName, 2), 1)
129129 let farmGen = asString(invoke(Address(breederAddress), "getGenFromName", [assetName], nil))
130130 if ((farmGen == farmGen))
131131 then getAssetRarity(farmGen, generation)
132132 else throw("Strict value is not equal to itself.")
133133 }
134- else throw("_20")
134+ else throw("MGAFP: _20")
135135 }
136136
137137
138138 func getDuckMarketPrice (nftId) = {
139139 let rarity = getAssetFarmingPower(nftId)
140140 let breederAddress = addressFromStringValue(tryGetStringExternal(getCfMasterAddress(), kBreederDapp))
141141 let sterile = getIntA(breederAddress, (("asset_" + toBase58String(nftId)) + "_children"))
142142 let canBreedText = if ((sterile > 0))
143143 then "0"
144144 else "1"
145145 let val = getInteger(getCfMasterAddress(), ((("r-" + toString(rarity)) + "-b-") + canBreedText))
146146 match val {
147147 case price: Int =>
148148 let minPrice = if ((sterile > 0))
149149 then (200000000 * rarity)
150150 else 18000000000
151151 if ((minPrice > price))
152152 then minPrice
153153 else price
154154 case _ =>
155155 throw((((("There is no price for such duck: " + "r-") + toString(rarity)) + "-b-") + canBreedText))
156156 }
157157 }
158158
159159
160160 func getDuckIdByAuctionId (auctionId) = {
161161 let marketAddr = getAuctionAddr()
162162 tryGetStringExternal(addressFromStringValue(marketAddr), (("auction_" + auctionId) + "_assetId"))
163163 }
164164
165165
166166 func getBidAmount (auctionId,bidId) = {
167167 let marketAddr = getAuctionAddr()
168168 getIntA(addressFromStringValue(marketAddr), (((("auction_" + auctionId) + "_bid_") + bidId) + "_amount"))
169169 }
170170
171171
172172 func checkDataGetPrice (ach,breed,gen,price,rarity,ts,signature,duckId) = {
173173 let isArtefact = contains(gen, "ART")
174174 let text = if (isArtefact)
175175 then makeString([gen, toString(price), toString(ts)], ";")
176176 else makeString([rarity, breed, ach, gen, toString(price), toString(ts)], ";")
177177 let MSINHOUR = 3600000
178178 if (!(sigVerify_8Kb(toBytes(text), fromBase58String(signature), getBackendPubKey())))
179179 then throw(((("MCACS: Invalid proof from backend key" + toBase58String(getBackendPubKey())) + " ") + text))
180180 else {
181181 let currentTs = lastBlock.timestamp
182182 if ((currentTs > (ts + MSINHOUR)))
183183 then throw("MCACS: Outdated signature!")
184- else {
185- let duckRarity = getAssetFarmingPower(fromBase58String(duckId))
186- if (isArtefact)
187- then {
188- let diff = (duckRarity - parseIntValue(split(rarity, ".")[0]))
189- if (if ((-5 > diff))
190- then true
191- else (diff > 5))
192- then throw(((((("MCACS: It seems not the correct price info was passed! " + toString(duckRarity)) + " ") + rarity) + " ") + toString(diff)))
193- else price
194- }
195- else price
196- }
184+ else if (isArtefact)
185+ then {
186+ let duckRarity = getAssetFarmingPower(fromBase58String(duckId))
187+ let diff = (duckRarity - parseIntValue(split(rarity, ".")[0]))
188+ if (if ((-5 > diff))
189+ then true
190+ else (diff > 5))
191+ then throw(((((("MCACS: It seems not the correct price info was passed! " + toString(duckRarity)) + " ") + rarity) + " ") + toString(diff)))
192+ else price
193+ }
194+ else price
197195 }
198196 }
199197
200198
201199 @Callable(i)
202200 func callMarketplaceProxy (function,int1,int2,str1,str2,ach,breed,gen,price,rarity,ts,signature) = {
203201 let auctionDappAddress = addressFromStringValue(getAuctionAddr())
204202 if ((getBoolA(getCfMasterAddress(), ("farm_" + toString(i.caller))) != true))
205203 then throw("_301=")
206204 else if ((function == "initAuction"))
207205 then {
208206 let asset = value(i.payments[0])
209207 let duckMarketPrice = checkDataGetPrice(ach, breed, gen, price, rarity, ts, signature, toBase58String(value(asset.assetId)))
210208 let maxPriceDiff = fraction(duckMarketPrice, 15, 100)
211209 let initialPrice = int1
212210 let buyoutPrice = int2
213211 if (if (((duckMarketPrice - maxPriceDiff) > initialPrice))
214212 then true
215213 else (initialPrice > buyoutPrice))
216214 then throw(((((("Price is too low, avg price: " + toString(duckMarketPrice)) + ", min. price: ") + toString((duckMarketPrice - maxPriceDiff))) + ", your bid: ") + toString(initialPrice)))
217215 else if ((value(asset.amount) != 1))
218216 then throw("_103")
219217 else {
220218 let initAuction = invoke(auctionDappAddress, "initAuction", [initialPrice, buyoutPrice, str1, str2], [AttachedPayment(value(asset.assetId), 1)])
221219 if ((initAuction == initAuction))
222220 then [StringEntry(("tx_" + toBase58String(i.transactionId)), toBase58String(value(asset.assetId)))]
223221 else throw("Strict value is not equal to itself.")
224222 }
225223 }
226224 else if ((function == "placeBid"))
227225 then {
228226 let auctionId = str1
229227 let duckAssetId = getDuckIdByAuctionId(auctionId)
230228 let bidAmount = value(value(i.payments[0]).amount)
231229 let duckMarketPrice = checkDataGetPrice(ach, breed, gen, price, rarity, ts, signature, duckAssetId)
232230 let maxPriceDiff = fraction(duckMarketPrice, 15, 100)
233231 if ((bidAmount > (duckMarketPrice + maxPriceDiff)))
234232 then throw(((((("Price is too high, avg price: " + toString(duckMarketPrice)) + ", max. price: ") + toString((duckMarketPrice + maxPriceDiff))) + ", your bid: ") + toString(bidAmount)))
235233 else if ((size(i.payments) != 1))
236234 then throw("_103")
237235 else {
238236 let placeBid = invoke(auctionDappAddress, "placeBid", [auctionId], [AttachedPayment(unit, bidAmount)])
239237 if ((placeBid == placeBid))
240238 then [StringEntry(("tx_" + toBase58String(i.transactionId)), auctionId)]
241239 else throw("Strict value is not equal to itself.")
242240 }
243241 }
244242 else if ((function == "acceptBid"))
245243 then {
246244 let auctionId = str1
247245 let bidId = str2
248246 let duckAssetId = getDuckIdByAuctionId(auctionId)
249247 let bidAmount = getBidAmount(auctionId, bidId)
250248 let duckMarketPrice = checkDataGetPrice(ach, breed, gen, price, rarity, ts, signature, duckAssetId)
251249 let maxPriceDiff = fraction(duckMarketPrice, 15, 100)
252250 if (((duckMarketPrice - maxPriceDiff) > bidAmount))
253251 then throw(((((("Price is too low, avg price: " + toString(duckMarketPrice)) + ", min. price: ") + toString((duckMarketPrice - maxPriceDiff))) + ", your bid: ") + toString(bidAmount)))
254252 else {
255253 let acceptBid = invoke(auctionDappAddress, "acceptBid", [auctionId, bidId], nil)
256254 if ((acceptBid == acceptBid))
257255 then [StringEntry(("tx_" + toBase58String(i.transactionId)), auctionId)]
258256 else throw("Strict value is not equal to itself.")
259257 }
260258 }
261259 else if ((function == "instantBuy"))
262260 then {
263261 let auctionId = str1
264262 let duckAssetId = getDuckIdByAuctionId(auctionId)
265263 let bidAmount = value(value(i.payments[0]).amount)
266264 let duckMarketPrice = checkDataGetPrice(ach, breed, gen, price, rarity, ts, signature, duckAssetId)
267265 let maxPriceDiff = fraction(duckMarketPrice, 15, 100)
268266 if ((bidAmount > (duckMarketPrice + maxPriceDiff)))
269267 then throw(((((("Price is too high, avg price: " + toString(duckMarketPrice)) + ", max. price: ") + toString((duckMarketPrice + maxPriceDiff))) + ", your bid: ") + toString(bidAmount)))
270268 else if ((size(i.payments) != 1))
271269 then throw("_103")
272270 else if ((value(i.payments[0]).assetId != unit))
273271 then throw("_104")
274272 else {
275273 let instantBuy = invoke(auctionDappAddress, "instantBuy", [auctionId], [AttachedPayment(unit, bidAmount)])
276274 if ((instantBuy == instantBuy))
277275 then [StringEntry(("tx_" + toBase58String(i.transactionId)), auctionId)]
278276 else throw("Strict value is not equal to itself.")
279277 }
280278 }
281279 else if ((function == "cancelBid"))
282280 then {
283281 let auctionId = str1
284282 let bidId = str2
285283 let acceptBid = invoke(auctionDappAddress, "cancelBid", [auctionId, bidId], nil)
286284 if ((acceptBid == acceptBid))
287285 then [StringEntry(("tx_" + toBase58String(i.transactionId)), auctionId)]
288286 else throw("Strict value is not equal to itself.")
289287 }
290288 else if ((function == "cancelAuction"))
291289 then {
292290 let auctionId = str1
293291 let acceptBid = invoke(auctionDappAddress, "cancelAuction", [auctionId], nil)
294292 if ((acceptBid == acceptBid))
295293 then [StringEntry(("tx_" + toBase58String(i.transactionId)), auctionId)]
296294 else throw("Strict value is not equal to itself.")
297295 }
298296 else throw("_13")
299297 }
300298
301299

github/deemru/w8io/3ef1775 
42.88 ms