tx · E7mhTsRFnaHDQfK4ruZmzWViP5rw1znQqMReAcxb36Bp

3PQ5smtcz4F9F3rhbj3PX6GBgM4YtPkeHCg:  -0.01200000 Waves

2022.09.12 12:14 [3291179] smart account 3PQ5smtcz4F9F3rhbj3PX6GBgM4YtPkeHCg > SELF 0.00000000 Waves

{ "type": 13, "id": "E7mhTsRFnaHDQfK4ruZmzWViP5rw1znQqMReAcxb36Bp", "fee": 1200000, "feeAssetId": null, "timestamp": 1662974064005, "version": 2, "chainId": 87, "sender": "3PQ5smtcz4F9F3rhbj3PX6GBgM4YtPkeHCg", "senderPublicKey": "FR8teTy3vHXM8K3qgseLD8fgBc5Rw5ge9NBZQFYYUJYL", "proofs": [ "2c4YSmEzjXQvXy9RhJTmenxHLXZbTPNv5czSmihbLTsmhRABpdUwEX7daNrccqBBFR1UV3ZGNSGN8XraA9YNt665" ], "script": "base64:AAIFAAAAAAAAABcIAhIDCgEIEg4KDAgBAQgICAgIAQgBCAAAACIBAAAAFHRyeUdldFN0cmluZ0V4dGVybmFsAAAAAgAAAAdhZGRyZXNzAAAAA2tleQQAAAAHJG1hdGNoMAkABB0AAAACBQAAAAdhZGRyZXNzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQIAAAAAAQAAAAx0cnlHZXRTdHJpbmcAAAABAAAAA2tleQkBAAAAFHRyeUdldFN0cmluZ0V4dGVybmFsAAAAAgUAAAAEdGhpcwUAAAADa2V5AQAAAAlnZXRPcmFjbGUAAAAACQEAAAAHQWRkcmVzcwAAAAEJAAJZAAAAAQkBAAAADHRyeUdldFN0cmluZwAAAAECAAAAFHN0YXRpY19vcmFjbGVBZGRyZXNzAQAAABJnZXRDZk1hc3RlckFkZHJlc3MAAAAACQEAAAAHQWRkcmVzcwAAAAEJAAJZAAAAAQkBAAAAFHRyeUdldFN0cmluZ0V4dGVybmFsAAAAAgkBAAAACWdldE9yYWNsZQAAAAACAAAAFnN0YXRpY19jZk1hc3RlckFkZHJlc3MBAAAAEGdldEJhY2tlbmRQdWJLZXkAAAAACQACWQAAAAEJAQAAABFAZXh0ck5hdGl2ZSgxMDUzKQAAAAIJAQAAAAlnZXRPcmFjbGUAAAAAAgAAABRzdGF0aWNfYmFja2VuZFB1YktleQAAAAAPa1RvdGFsTGlxdWlkaXR5AgAAAA90b3RhbF9saXF1aWRpdHkAAAAADGtJbml0aWFsaXplZAIAAAALSU5JVElBTElaRUQAAAAAE2tMaXF1aWRpdHlUaHJlc2hvbGQCAAAAE0xJUVVJRElUWV9USFJFU0hPTEQAAAAAEWtUb3RhbFNoYXJlVG9rZW5zAgAAABJ0b3RhbF9zaGFyZV90b2tlbnMAAAAADWtTaGFyZUFzc2V0SWQCAAAADlNIQVJFX0FTU0VUX0lEAAAAAA5rSW5jdWJhdG9yRGFwcAIAAAAOSU5DVUJBVE9SX0RBUFAAAAAADGtCcmVlZGVyRGFwcAIAAAAMQlJFRURFUl9EQVBQAAAAAAxrRmFybWluZ0RhcHACAAAADEZBUk1JTkdfREFQUAAAAAAQa01h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", "height": 3291179, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: E2UWZQjsVUh4wwXeFAgYJrKBhgYrzWcWjtXqbbZhVyZk Next: BhbfWvhA5wJ5MPjJTSrvvfu1Efb7uqYrSvd2NNgHShk9 Diff:
OldNewDifferences
208208
209209
210210 @Callable(at)
211-func callMarketplaceProxy (au,av,aw,ax,ay,aj,ak,al,ab,X,am,an) = {
212- let az = addressFromStringValue(D())
211+func configureOracle (au) = if ((at.caller != this))
212+ then throw("BCO: admin only")
213+ else [StringEntry("static_oracleAddress", au)]
214+
215+
216+
217+@Callable(at)
218+func callMarketplaceProxy (av,aw,ax,ay,az,aj,ak,al,ab,X,am,an) = {
219+ let aA = addressFromStringValue(D())
213220 if ((B(h(), ("farm_" + toString(at.caller))) != true))
214221 then throw("_301=")
215- else if ((au == "initAuction"))
222+ else if ((av == "initAuction"))
216223 then {
217- let aA = value(at.payments[0])
218- let aB = ai(aj, ak, al, ab, X, am, an, toBase58String(value(aA.assetId)))
219- let aC = fraction(aB, 15, 100)
220- let aD = av
224+ let aB = value(at.payments[0])
225+ let aC = ai(aj, ak, al, ab, X, am, an, toBase58String(value(aB.assetId)))
226+ let aD = fraction(aC, 15, 100)
221227 let aE = aw
222- if (if (((aB - aC) > aD))
228+ let aF = ax
229+ if (if (((aC - aD) > aE))
223230 then true
224- else (aD > aE))
225- then throw(((((("Price is too low, avg price: " + toString(aB)) + ", min. price: ") + toString((aB - aC))) + ", your bid: ") + toString(aD)))
226- else if ((value(aA.amount) != 1))
231+ else (aE > aF))
232+ then throw(((((("Price is too low, avg price: " + toString(aC)) + ", min. price: ") + toString((aC - aD))) + ", your bid: ") + toString(aE)))
233+ else if ((value(aB.amount) != 1))
227234 then throw("_103")
228235 else {
229- let aF = invoke(az, "initAuction", [aD, aE, ax, ay], [AttachedPayment(value(aA.assetId), 1)])
230- if ((aF == aF))
231- then [StringEntry(("tx_" + toBase58String(at.transactionId)), toBase58String(value(aA.assetId)))]
236+ let aG = invoke(aA, "initAuction", [aE, aF, ay, az], [AttachedPayment(value(aB.assetId), 1)])
237+ if ((aG == aG))
238+ then [StringEntry(("tx_" + toBase58String(at.transactionId)), toBase58String(value(aB.assetId)))]
232239 else throw("Strict value is not equal to itself.")
233240 }
234241 }
235- else if ((au == "placeBid"))
242+ else if ((av == "placeBid"))
236243 then {
237- let ae = ax
238- let aG = ad(ae)
239- let aH = value(value(at.payments[0]).amount)
240- let aB = ai(aj, ak, al, ab, X, am, an, aG)
241- let aC = fraction(aB, 15, 100)
242- if ((aH > (aB + aC)))
243- then throw(((((("Price is too high, avg price: " + toString(aB)) + ", max. price: ") + toString((aB + aC))) + ", your bid: ") + toString(aH)))
244+ let ae = ay
245+ let aH = ad(ae)
246+ let aI = value(value(at.payments[0]).amount)
247+ let aC = ai(aj, ak, al, ab, X, am, an, aH)
248+ let aD = fraction(aC, 15, 100)
249+ if ((aI > (aC + aD)))
250+ then throw(((((("Price is too high, avg price: " + toString(aC)) + ", max. price: ") + toString((aC + aD))) + ", your bid: ") + toString(aI)))
244251 else if ((size(at.payments) != 1))
245252 then throw("_103")
246253 else {
247- let aI = invoke(az, "placeBid", [ae], [AttachedPayment(unit, aH)])
248- if ((aI == aI))
254+ let aJ = invoke(aA, "placeBid", [ae], [AttachedPayment(unit, aI)])
255+ if ((aJ == aJ))
249256 then [StringEntry(("tx_" + toBase58String(at.transactionId)), ae)]
250257 else throw("Strict value is not equal to itself.")
251258 }
252259 }
253- else if ((au == "acceptBid"))
260+ else if ((av == "acceptBid"))
254261 then {
255- let ae = ax
256- let ah = ay
257- let aG = ad(ae)
258- let aH = ag(ae, ah)
259- let aB = ai(aj, ak, al, ab, X, am, an, aG)
260- let aC = fraction(aB, 15, 100)
261- if (((aB - aC) > aH))
262- then throw(((((("Price is too low, avg price: " + toString(aB)) + ", min. price: ") + toString((aB - aC))) + ", your bid: ") + toString(aH)))
262+ let ae = ay
263+ let ah = az
264+ let aH = ad(ae)
265+ let aI = ag(ae, ah)
266+ let aC = ai(aj, ak, al, ab, X, am, an, aH)
267+ let aD = fraction(aC, 15, 100)
268+ if (((aC - aD) > aI))
269+ then throw(((((("Price is too low, avg price: " + toString(aC)) + ", min. price: ") + toString((aC - aD))) + ", your bid: ") + toString(aI)))
263270 else {
264- let aJ = invoke(az, "acceptBid", [ae, ah], nil)
265- if ((aJ == aJ))
271+ let aK = invoke(aA, "acceptBid", [ae, ah], nil)
272+ if ((aK == aK))
266273 then [StringEntry(("tx_" + toBase58String(at.transactionId)), ae)]
267274 else throw("Strict value is not equal to itself.")
268275 }
269276 }
270- else if ((au == "instantBuy"))
277+ else if ((av == "instantBuy"))
271278 then {
272- let ae = ax
273- let aG = ad(ae)
274- let aH = value(value(at.payments[0]).amount)
275- let aB = ai(aj, ak, al, ab, X, am, an, aG)
276- let aC = fraction(aB, 15, 100)
277- if ((aH > (aB + aC)))
278- then throw(((((("Price is too high, avg price: " + toString(aB)) + ", max. price: ") + toString((aB + aC))) + ", your bid: ") + toString(aH)))
279+ let ae = ay
280+ let aH = ad(ae)
281+ let aI = value(value(at.payments[0]).amount)
282+ let aC = ai(aj, ak, al, ab, X, am, an, aH)
283+ let aD = fraction(aC, 15, 100)
284+ if ((aI > (aC + aD)))
285+ then throw(((((("Price is too high, avg price: " + toString(aC)) + ", max. price: ") + toString((aC + aD))) + ", your bid: ") + toString(aI)))
279286 else if ((size(at.payments) != 1))
280287 then throw("_103")
281288 else if ((value(at.payments[0]).assetId != unit))
282289 then throw("_104")
283290 else {
284- let aK = invoke(az, "instantBuy", [ae], [AttachedPayment(unit, aH)])
285- if ((aK == aK))
291+ let aL = invoke(aA, "instantBuy", [ae], [AttachedPayment(unit, aI)])
292+ if ((aL == aL))
286293 then [StringEntry(("tx_" + toBase58String(at.transactionId)), ae)]
287294 else throw("Strict value is not equal to itself.")
288295 }
289296 }
290- else if ((au == "cancelBid"))
297+ else if ((av == "cancelBid"))
291298 then {
292- let ae = ax
293- let ah = ay
294- let aJ = invoke(az, "cancelBid", [ae, ah], nil)
295- if ((aJ == aJ))
299+ let ae = ay
300+ let ah = az
301+ let aK = invoke(aA, "cancelBid", [ae, ah], nil)
302+ if ((aK == aK))
296303 then [StringEntry(("tx_" + toBase58String(at.transactionId)), ae)]
297304 else throw("Strict value is not equal to itself.")
298305 }
299- else if ((au == "cancelAuction"))
306+ else if ((av == "cancelAuction"))
300307 then {
301- let ae = ax
302- let aJ = invoke(az, "cancelAuction", [ae], nil)
303- if ((aJ == aJ))
308+ let ae = ay
309+ let aK = invoke(aA, "cancelAuction", [ae], nil)
310+ if ((aK == aK))
304311 then [StringEntry(("tx_" + toBase58String(at.transactionId)), ae)]
305312 else throw("Strict value is not equal to itself.")
306313 }
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 func a (b,c) = {
55 let d = getString(b, c)
66 if ($isInstanceOf(d, "String"))
77 then {
88 let e = d
99 e
1010 }
1111 else ""
1212 }
1313
1414
1515 func f (c) = a(this, c)
1616
1717
1818 func g () = Address(fromBase58String(f("static_oracleAddress")))
1919
2020
2121 func h () = Address(fromBase58String(a(g(), "static_cfMasterAddress")))
2222
2323
2424 func i () = fromBase58String(getStringValue(g(), "static_backendPubKey"))
2525
2626
2727 let j = "total_liquidity"
2828
2929 let k = "INITIALIZED"
3030
3131 let l = "LIQUIDITY_THRESHOLD"
3232
3333 let m = "total_share_tokens"
3434
3535 let n = "SHARE_ASSET_ID"
3636
3737 let o = "INCUBATOR_DAPP"
3838
3939 let p = "BREEDER_DAPP"
4040
4141 let q = "FARMING_DAPP"
4242
4343 let r = "MARKETPLACE_PROXY_DAPP"
4444
4545 let s = "AUCTION_DAPP"
4646
4747 let t = "LOCKED"
4848
4949 let u = "total_farming_reward"
5050
5151 let v = "ceo_collected_fee"
5252
5353 let w = "ceo_fee_overall"
5454
5555 let x = "to_distribute"
5656
5757 func y (c) = {
5858 let d = getInteger(this, c)
5959 if ($isInstanceOf(d, "Int"))
6060 then {
6161 let z = d
6262 z
6363 }
6464 else 0
6565 }
6666
6767
6868 func A (c) = {
6969 let d = getBoolean(this, c)
7070 if ($isInstanceOf(d, "Boolean"))
7171 then {
7272 let z = d
7373 z
7474 }
7575 else unit
7676 }
7777
7878
7979 func B (e,c) = {
8080 let d = getBoolean(e, c)
8181 if ($isInstanceOf(d, "Boolean"))
8282 then {
8383 let z = d
8484 z
8585 }
8686 else unit
8787 }
8888
8989
9090 func C (b,c) = {
9191 let d = getInteger(b, c)
9292 if ($isInstanceOf(d, "Int"))
9393 then {
9494 let z = d
9595 z
9696 }
9797 else 0
9898 }
9999
100100
101101 func D () = a(h(), s)
102102
103103
104104 func E (F) = if (contains(F, "0"))
105105 then ""
106106 else F
107107
108108
109109 func G (H) = {
110110 let I = a(h(), o)
111111 let J = a(h(), p)
112112 if ((H == "G"))
113113 then fromBase58String(I)
114114 else fromBase58String(J)
115115 }
116116
117117
118118 func K (L,H) = {
119119 let M = getIntegerValue(Address(G(H)), (("stats_" + L) + "_quantity"))
120120 let N = pow((10000 / M), 4, 5, 1, 2, FLOOR)
121121 if ((N > 0))
122122 then N
123123 else 2
124124 }
125125
126126
127127 func O (P) = {
128128 let d = P
129129 if ($isInstanceOf(d, "String"))
130130 then {
131131 let Q = d
132132 Q
133133 }
134134 else throw("wrong type, expected: String")
135135 }
136136
137137
138138 func R (S) = {
139139 let J = fromBase58String(a(h(), p))
140140 let I = fromBase58String(a(h(), o))
141141 if (if ((value(assetInfo(S)).issuer == Address(J)))
142142 then true
143143 else (value(assetInfo(S)).issuer == Address(I)))
144144 then {
145145 let T = value(assetInfo(S)).name
146146 let H = take(takeRight(T, 2), 1)
147147 let U = O(invoke(Address(J), "getGenFromName", [T], nil))
148148 if ((U == U))
149149 then K(U, H)
150150 else throw("Strict value is not equal to itself.")
151151 }
152152 else throw("_20")
153153 }
154154
155155
156156 func V (W) = {
157157 let X = R(W)
158158 let J = addressFromStringValue(a(h(), p))
159159 let Y = C(J, (("asset_" + toBase58String(W)) + "_children"))
160160 let Z = if ((Y > 0))
161161 then "0"
162162 else "1"
163163 let aa = getInteger(h(), ((("r-" + toString(X)) + "-b-") + Z))
164164 let d = aa
165165 if ($isInstanceOf(d, "Int"))
166166 then {
167167 let ab = d
168168 let ac = if ((Y > 0))
169169 then (200000000 * X)
170170 else 18000000000
171171 if ((ac > ab))
172172 then ac
173173 else ab
174174 }
175175 else throw((((("There is no price for such duck: " + "r-") + toString(X)) + "-b-") + Z))
176176 }
177177
178178
179179 func ad (ae) = {
180180 let af = D()
181181 a(addressFromStringValue(af), (("auction_" + ae) + "_assetId"))
182182 }
183183
184184
185185 func ag (ae,ah) = {
186186 let af = D()
187187 C(addressFromStringValue(af), (((("auction_" + ae) + "_bid_") + ah) + "_amount"))
188188 }
189189
190190
191191 func ai (aj,ak,al,ab,X,am,an,ao) = {
192192 let ap = makeString([X, ak, aj, al, toString(ab), toString(am)], ";")
193193 let aq = 3600000
194194 if (!(sigVerify_8Kb(toBytes(ap), fromBase58String(an), i())))
195195 then throw("MCACS: Invalid proof from backend")
196196 else {
197197 let ar = lastBlock.timestamp
198198 if ((ar > (am + aq)))
199199 then throw("MCACS: Outdated signature!")
200200 else {
201201 let as = R(fromBase58String(ao))
202202 if ((as != parseInt(X)))
203203 then throw("MCACS: It seems not the correct price info was passed!")
204204 else ab
205205 }
206206 }
207207 }
208208
209209
210210 @Callable(at)
211-func callMarketplaceProxy (au,av,aw,ax,ay,aj,ak,al,ab,X,am,an) = {
212- let az = addressFromStringValue(D())
211+func configureOracle (au) = if ((at.caller != this))
212+ then throw("BCO: admin only")
213+ else [StringEntry("static_oracleAddress", au)]
214+
215+
216+
217+@Callable(at)
218+func callMarketplaceProxy (av,aw,ax,ay,az,aj,ak,al,ab,X,am,an) = {
219+ let aA = addressFromStringValue(D())
213220 if ((B(h(), ("farm_" + toString(at.caller))) != true))
214221 then throw("_301=")
215- else if ((au == "initAuction"))
222+ else if ((av == "initAuction"))
216223 then {
217- let aA = value(at.payments[0])
218- let aB = ai(aj, ak, al, ab, X, am, an, toBase58String(value(aA.assetId)))
219- let aC = fraction(aB, 15, 100)
220- let aD = av
224+ let aB = value(at.payments[0])
225+ let aC = ai(aj, ak, al, ab, X, am, an, toBase58String(value(aB.assetId)))
226+ let aD = fraction(aC, 15, 100)
221227 let aE = aw
222- if (if (((aB - aC) > aD))
228+ let aF = ax
229+ if (if (((aC - aD) > aE))
223230 then true
224- else (aD > aE))
225- then throw(((((("Price is too low, avg price: " + toString(aB)) + ", min. price: ") + toString((aB - aC))) + ", your bid: ") + toString(aD)))
226- else if ((value(aA.amount) != 1))
231+ else (aE > aF))
232+ then throw(((((("Price is too low, avg price: " + toString(aC)) + ", min. price: ") + toString((aC - aD))) + ", your bid: ") + toString(aE)))
233+ else if ((value(aB.amount) != 1))
227234 then throw("_103")
228235 else {
229- let aF = invoke(az, "initAuction", [aD, aE, ax, ay], [AttachedPayment(value(aA.assetId), 1)])
230- if ((aF == aF))
231- then [StringEntry(("tx_" + toBase58String(at.transactionId)), toBase58String(value(aA.assetId)))]
236+ let aG = invoke(aA, "initAuction", [aE, aF, ay, az], [AttachedPayment(value(aB.assetId), 1)])
237+ if ((aG == aG))
238+ then [StringEntry(("tx_" + toBase58String(at.transactionId)), toBase58String(value(aB.assetId)))]
232239 else throw("Strict value is not equal to itself.")
233240 }
234241 }
235- else if ((au == "placeBid"))
242+ else if ((av == "placeBid"))
236243 then {
237- let ae = ax
238- let aG = ad(ae)
239- let aH = value(value(at.payments[0]).amount)
240- let aB = ai(aj, ak, al, ab, X, am, an, aG)
241- let aC = fraction(aB, 15, 100)
242- if ((aH > (aB + aC)))
243- then throw(((((("Price is too high, avg price: " + toString(aB)) + ", max. price: ") + toString((aB + aC))) + ", your bid: ") + toString(aH)))
244+ let ae = ay
245+ let aH = ad(ae)
246+ let aI = value(value(at.payments[0]).amount)
247+ let aC = ai(aj, ak, al, ab, X, am, an, aH)
248+ let aD = fraction(aC, 15, 100)
249+ if ((aI > (aC + aD)))
250+ then throw(((((("Price is too high, avg price: " + toString(aC)) + ", max. price: ") + toString((aC + aD))) + ", your bid: ") + toString(aI)))
244251 else if ((size(at.payments) != 1))
245252 then throw("_103")
246253 else {
247- let aI = invoke(az, "placeBid", [ae], [AttachedPayment(unit, aH)])
248- if ((aI == aI))
254+ let aJ = invoke(aA, "placeBid", [ae], [AttachedPayment(unit, aI)])
255+ if ((aJ == aJ))
249256 then [StringEntry(("tx_" + toBase58String(at.transactionId)), ae)]
250257 else throw("Strict value is not equal to itself.")
251258 }
252259 }
253- else if ((au == "acceptBid"))
260+ else if ((av == "acceptBid"))
254261 then {
255- let ae = ax
256- let ah = ay
257- let aG = ad(ae)
258- let aH = ag(ae, ah)
259- let aB = ai(aj, ak, al, ab, X, am, an, aG)
260- let aC = fraction(aB, 15, 100)
261- if (((aB - aC) > aH))
262- then throw(((((("Price is too low, avg price: " + toString(aB)) + ", min. price: ") + toString((aB - aC))) + ", your bid: ") + toString(aH)))
262+ let ae = ay
263+ let ah = az
264+ let aH = ad(ae)
265+ let aI = ag(ae, ah)
266+ let aC = ai(aj, ak, al, ab, X, am, an, aH)
267+ let aD = fraction(aC, 15, 100)
268+ if (((aC - aD) > aI))
269+ then throw(((((("Price is too low, avg price: " + toString(aC)) + ", min. price: ") + toString((aC - aD))) + ", your bid: ") + toString(aI)))
263270 else {
264- let aJ = invoke(az, "acceptBid", [ae, ah], nil)
265- if ((aJ == aJ))
271+ let aK = invoke(aA, "acceptBid", [ae, ah], nil)
272+ if ((aK == aK))
266273 then [StringEntry(("tx_" + toBase58String(at.transactionId)), ae)]
267274 else throw("Strict value is not equal to itself.")
268275 }
269276 }
270- else if ((au == "instantBuy"))
277+ else if ((av == "instantBuy"))
271278 then {
272- let ae = ax
273- let aG = ad(ae)
274- let aH = value(value(at.payments[0]).amount)
275- let aB = ai(aj, ak, al, ab, X, am, an, aG)
276- let aC = fraction(aB, 15, 100)
277- if ((aH > (aB + aC)))
278- then throw(((((("Price is too high, avg price: " + toString(aB)) + ", max. price: ") + toString((aB + aC))) + ", your bid: ") + toString(aH)))
279+ let ae = ay
280+ let aH = ad(ae)
281+ let aI = value(value(at.payments[0]).amount)
282+ let aC = ai(aj, ak, al, ab, X, am, an, aH)
283+ let aD = fraction(aC, 15, 100)
284+ if ((aI > (aC + aD)))
285+ then throw(((((("Price is too high, avg price: " + toString(aC)) + ", max. price: ") + toString((aC + aD))) + ", your bid: ") + toString(aI)))
279286 else if ((size(at.payments) != 1))
280287 then throw("_103")
281288 else if ((value(at.payments[0]).assetId != unit))
282289 then throw("_104")
283290 else {
284- let aK = invoke(az, "instantBuy", [ae], [AttachedPayment(unit, aH)])
285- if ((aK == aK))
291+ let aL = invoke(aA, "instantBuy", [ae], [AttachedPayment(unit, aI)])
292+ if ((aL == aL))
286293 then [StringEntry(("tx_" + toBase58String(at.transactionId)), ae)]
287294 else throw("Strict value is not equal to itself.")
288295 }
289296 }
290- else if ((au == "cancelBid"))
297+ else if ((av == "cancelBid"))
291298 then {
292- let ae = ax
293- let ah = ay
294- let aJ = invoke(az, "cancelBid", [ae, ah], nil)
295- if ((aJ == aJ))
299+ let ae = ay
300+ let ah = az
301+ let aK = invoke(aA, "cancelBid", [ae, ah], nil)
302+ if ((aK == aK))
296303 then [StringEntry(("tx_" + toBase58String(at.transactionId)), ae)]
297304 else throw("Strict value is not equal to itself.")
298305 }
299- else if ((au == "cancelAuction"))
306+ else if ((av == "cancelAuction"))
300307 then {
301- let ae = ax
302- let aJ = invoke(az, "cancelAuction", [ae], nil)
303- if ((aJ == aJ))
308+ let ae = ay
309+ let aK = invoke(aA, "cancelAuction", [ae], nil)
310+ if ((aK == aK))
304311 then [StringEntry(("tx_" + toBase58String(at.transactionId)), ae)]
305312 else throw("Strict value is not equal to itself.")
306313 }
307314 else throw("_13")
308315 }
309316
310317

github/deemru/w8io/3ef1775 
78.35 ms