tx · 5WuMV7tD8yLStR3sDCH1W4ZyB1XjbpeuyAgyptkHKRfx

3MrfHoPDiF2nJb6T6Z6J7MdhpX3LeVaLaW2:  -0.05000000 Waves

2021.08.15 23:17 [1659937] smart account 3MrfHoPDiF2nJb6T6Z6J7MdhpX3LeVaLaW2 > SELF 0.00000000 Waves

{ "type": 13, "id": "5WuMV7tD8yLStR3sDCH1W4ZyB1XjbpeuyAgyptkHKRfx", "fee": 5000000, "feeAssetId": null, "timestamp": 1629058709723, "version": 2, "chainId": 84, "sender": "3MrfHoPDiF2nJb6T6Z6J7MdhpX3LeVaLaW2", "senderPublicKey": "ANm32Ptz6YTMKvYUJBEYd4CYiTVn6XEvYjZhewQMphSJ", "proofs": [ "4EusATVBGmquyNtWdpb5oM96qdHSfgmZDJuegT8e5kU8rurCjBcDgJMiJDC6hfApooZrZKnSF2J4FKvDkDUHqzhU" ], "script": "base64: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", "height": 1659937, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: HRzh8X18CLhLydSeBKNgTTfwgNi8hzXNLB5xiuE8Xs5E Next: 7vtCEUydiZCRDR4UNQgTQS3tDR9NaBBrMBnXxEWDCDL6 Diff:
OldNewDifferences
4747 }
4848
4949
50-func o (m) = if ((m != toBase58String(e)))
50+func o (m) = {
51+ let p = {
52+ let i = getString(Address(a), k(("nft_issued_" + m)))
53+ if ($isInstanceOf(i, "String"))
54+ then {
55+ let j = i
56+ j
57+ }
58+ else ""
59+ }
60+ p
61+ }
62+
63+
64+func q (m) = if ((m != toBase58String(e)))
5165 then throw("Only Sconex accepted")
5266 else true
5367
5468
55-@Callable(p)
56-func initAuction (q) = {
57- let r = toBase58String(p.transactionId)
58- let s = value(p.payments[0])
59- let m = value(s.assetId)
60- let t = l(m)
61- if ((t == ""))
69+@Callable(r)
70+func initAuction (s) = {
71+ let t = toBase58String(r.transactionId)
72+ let u = value(r.payments[0])
73+ let m = value(u.assetId)
74+ let v = l(m)
75+ if ((v == ""))
6276 then throw("You can only sell an NFT created on SCONE Marketplace")
63- else [StringEntry((("auction_" + r) + "_status"), "open"), StringEntry((("auction_" + toBase58String(m)) + "_last"), r), StringEntry((("auction_" + r) + "_assetName"), t), StringEntry((("auction_" + r) + "_assetId"), toBase58String(m)), IntegerEntry((("auction_" + r) + "_startedAt"), lastBlock.timestamp), StringEntry((("auction_" + r) + "_owner"), toString(p.caller)), IntegerEntry((("auction_" + r) + "_startPrice"), q), StringEntry((((("address_" + toString(p.caller)) + "_auction_") + r) + "_lockedNFT"), toBase58String(m))]
77+ else [StringEntry((("auction_" + t) + "_status"), "open"), StringEntry((("auction_" + toBase58String(m)) + "_last"), t), StringEntry((("auction_" + t) + "_assetName"), v), StringEntry((("auction_" + t) + "_assetId"), toBase58String(m)), IntegerEntry((("auction_" + t) + "_startedAt"), lastBlock.timestamp), StringEntry((("auction_" + t) + "_owner"), toString(r.caller)), IntegerEntry((("auction_" + t) + "_startPrice"), s), StringEntry((((("address_" + toString(r.caller)) + "_auction_") + t) + "_lockedNFT"), toBase58String(m))]
6478 }
6579
6680
6781
68-@Callable(p)
69-func cancelAuction (r) = {
70- let u = k((("auction_" + r) + "_owner"))
71- if ((toString(p.caller) != u))
82+@Callable(r)
83+func cancelAuction (t) = {
84+ let w = k((("auction_" + t) + "_owner"))
85+ if ((toString(r.caller) != w))
7286 then throw("Only allowed to auction owner")
73- else if ((k((("auction_" + r) + "_status")) != "open"))
87+ else if ((k((("auction_" + t) + "_status")) != "open"))
7488 then throw("auction is close")
75- else [StringEntry((("auction_" + r) + "_status"), "cancelled"), DeleteEntry((((("address_" + u) + "_auction_") + r) + "_lockedNFT")), ScriptTransfer(p.caller, 1, fromBase58String(getStringValue(this, (("auction_" + r) + "_assetId"))))]
89+ else [StringEntry((("auction_" + t) + "_status"), "cancelled"), DeleteEntry((((("address_" + w) + "_auction_") + t) + "_lockedNFT")), ScriptTransfer(r.caller, 1, fromBase58String(getStringValue(this, (("auction_" + t) + "_assetId"))))]
7690 }
7791
7892
7993
80-@Callable(p)
81-func placeBid (r) = {
82- let s = value(p.payments[0])
83- let v = s.amount
84- let w = toBase58String(p.transactionId)
85- let m = getStringValue(this, (("auction_" + r) + "_assetId"))
86- let x = if (!(isDefined(s.assetId)))
94+@Callable(r)
95+func placeBid (t) = {
96+ let u = value(r.payments[0])
97+ let x = u.amount
98+ let y = toBase58String(r.transactionId)
99+ let m = getStringValue(this, (("auction_" + t) + "_assetId"))
100+ let z = if (!(isDefined(u.assetId)))
87101 then throw("Only sconex is accepted!")
88- else toBase58String(value(s.assetId))
89- if (!(o(x)))
102+ else toBase58String(value(u.assetId))
103+ if (!(q(z)))
90104 then throw("Auction does only support sconex payments")
91105 else {
92- let y = f((("auction_" + r) + "_startPrice"))
93- if ((y > v))
94- then throw(("The minimal initial price is set as " + toString(y)))
95- else [StringEntry((((("auction_" + r) + "_bid_") + w) + "_author"), toString(p.caller)), StringEntry((((("assetId_" + m) + "_bid_") + w) + "_data"), (((((("{\"auctionId\": \"" + r) + "\", \"author\": \"") + toString(p.caller)) + "\", \"amount\": \"") + toString(v)) + "\", \"status\": \"open\"}")), IntegerEntry((((("auction_" + r) + "_bid_") + w) + "_amount"), v), StringEntry(((((("address_" + toString(p.caller)) + "_auction_") + r) + "_bid_") + w), m), StringEntry((((("auction_" + r) + "_bid_") + w) + "_status"), "open")]
106+ let A = f((("auction_" + t) + "_startPrice"))
107+ if ((A > x))
108+ then throw(("The minimal initial price is set as " + toString(A)))
109+ else [StringEntry((((("auction_" + t) + "_bid_") + y) + "_author"), toString(r.caller)), StringEntry((((("assetId_" + m) + "_bid_") + y) + "_data"), (((((("{\"auctionId\": \"" + t) + "\", \"author\": \"") + toString(r.caller)) + "\", \"amount\": \"") + toString(x)) + "\", \"status\": \"open\"}")), IntegerEntry((((("auction_" + t) + "_bid_") + y) + "_amount"), x), StringEntry(((((("address_" + toString(r.caller)) + "_auction_") + t) + "_bid_") + y), m), StringEntry((((("auction_" + t) + "_bid_") + y) + "_status"), "open")]
96110 }
97111 }
98112
99113
100114
101-@Callable(p)
102-func cancelBid (r,w) = {
103- let m = getStringValue(this, (("auction_" + r) + "_assetId"))
104- let z = k((((("auction_" + r) + "_bid_") + w) + "_author"))
105- let A = f((((("auction_" + r) + "_bid_") + w) + "_amount"))
106- if (if ((toString(p.caller) != z))
107- then (p.caller != this)
115+@Callable(r)
116+func cancelBid (t,y) = {
117+ let m = getStringValue(this, (("auction_" + t) + "_assetId"))
118+ let B = k((((("auction_" + t) + "_bid_") + y) + "_author"))
119+ let C = f((((("auction_" + t) + "_bid_") + y) + "_amount"))
120+ if (if ((toString(r.caller) != B))
121+ then (r.caller != this)
108122 else false)
109123 then throw("Only allowed to the bid author or admin")
110- else if ((k((((("auction_" + r) + "_bid_") + w) + "_status")) != "open"))
124+ else if ((k((((("auction_" + t) + "_bid_") + y) + "_status")) != "open"))
111125 then throw("bid is not open")
112- else [StringEntry((((("assetId_" + m) + "_bid_") + w) + "_data"), (((((("{\"auctionId\": \"" + r) + "\", \"author\": \"") + toString(p.caller)) + "\", \"amount\": \"") + toString(A)) + "\", \"status\": \"cancelled\"}")), StringEntry((((("auction_" + r) + "_bid_") + w) + "_status"), "cancelled"), DeleteEntry(((((("address_" + z) + "_auction_") + r) + "_bid_") + w)), ScriptTransfer(Address(fromBase58String(z)), A, e)]
126+ else [StringEntry((((("assetId_" + m) + "_bid_") + y) + "_data"), (((((("{\"auctionId\": \"" + t) + "\", \"author\": \"") + toString(r.caller)) + "\", \"amount\": \"") + toString(C)) + "\", \"status\": \"cancelled\"}")), StringEntry((((("auction_" + t) + "_bid_") + y) + "_status"), "cancelled"), DeleteEntry(((((("address_" + B) + "_auction_") + t) + "_bid_") + y)), ScriptTransfer(Address(fromBase58String(B)), C, e)]
113127 }
114128
115129
116130
117-@Callable(p)
118-func acceptBid (r,w) = {
119- let u = k((("auction_" + r) + "_owner"))
120- let z = k((((("auction_" + r) + "_bid_") + w) + "_author"))
121- let A = f((((("auction_" + r) + "_bid_") + w) + "_amount"))
122- let B = k((((("auction_" + r) + "_bid_") + w) + "_status"))
123- let m = k((("auction_" + r) + "_assetId"))
124- if ((toString(p.caller) != u))
131+@Callable(r)
132+func acceptBid (t,y) = {
133+ let w = k((("auction_" + t) + "_owner"))
134+ let B = k((((("auction_" + t) + "_bid_") + y) + "_author"))
135+ let C = f((((("auction_" + t) + "_bid_") + y) + "_amount"))
136+ let D = k((((("auction_" + t) + "_bid_") + y) + "_status"))
137+ let m = k((("auction_" + t) + "_assetId"))
138+ if ((toString(r.caller) != w))
125139 then throw("Only allowed to auction owner")
126- else if ((B != "open"))
140+ else if ((D != "open"))
127141 then throw("Bid was cancelled and cannot be accepted")
128142 else {
129- let C = f((m + "_recordPrice"))
130- let D = max([C, A])
131-[StringEntry((((("auction_" + r) + "_bid_") + w) + "_status"), "finished"), StringEntry((("auction_" + r) + "_status"), "finished"), StringEntry((((("assetId_" + m) + "_bid_") + w) + "_data"), (((((("{\"auctionId\": \"" + r) + "\", \"author\": \"") + toString(p.caller)) + "\", \"amount\": \"") + toString(A)) + "\", \"status\": \"finished\"}")), IntegerEntry((("auction_" + r) + "_finalPrice"), A), IntegerEntry((m + "_recordPrice"), D), DeleteEntry(((((("address_" + z) + "_auction_") + r) + "_bid_") + w)), DeleteEntry((((("address_" + u) + "_auction_") + r) + "_lockedNFT")), ScriptTransfer(p.caller, fraction(A, ((100 - c) - d), 100), e), ScriptTransfer(Address(b), fraction(A, d, 100), e), ScriptTransfer(Address(b), fraction(A, c, 100), e), ScriptTransfer(addressFromStringValue(z), 1, fromBase58String(m))]
143+ let E = f((m + "_recordPrice"))
144+ let F = max([E, C])
145+ let p = o(m)
146+ if ((p == ""))
147+ then [StringEntry((((("auction_" + t) + "_bid_") + y) + "_status"), "finished"), StringEntry((("auction_" + t) + "_status"), "finished"), StringEntry((((("assetId_" + m) + "_bid_") + y) + "_data"), (((((("{\"auctionId\": \"" + t) + "\", \"author\": \"") + toString(r.caller)) + "\", \"amount\": \"") + toString(C)) + "\", \"status\": \"finished\"}")), IntegerEntry((("auction_" + t) + "_finalPrice"), C), IntegerEntry((m + "_recordPrice"), F), DeleteEntry(((((("address_" + B) + "_auction_") + t) + "_bid_") + y)), DeleteEntry((((("address_" + w) + "_auction_") + t) + "_lockedNFT")), ScriptTransfer(r.caller, fraction(C, ((100 - c) - d), 100), e), ScriptTransfer(Address(b), fraction(C, d, 100), e), ScriptTransfer(Address(b), fraction(C, c, 100), e), ScriptTransfer(addressFromStringValue(B), 1, fromBase58String(m))]
148+ else [StringEntry((((("auction_" + t) + "_bid_") + y) + "_status"), "finished"), StringEntry((("auction_" + t) + "_status"), "finished"), StringEntry((((("assetId_" + m) + "_bid_") + y) + "_data"), (((((("{\"auctionId\": \"" + t) + "\", \"author\": \"") + toString(r.caller)) + "\", \"amount\": \"") + toString(C)) + "\", \"status\": \"finished\"}")), IntegerEntry((("auction_" + t) + "_finalPrice"), C), IntegerEntry((m + "_recordPrice"), F), DeleteEntry(((((("address_" + B) + "_auction_") + t) + "_bid_") + y)), DeleteEntry((((("address_" + w) + "_auction_") + t) + "_lockedNFT")), ScriptTransfer(r.caller, fraction(C, ((100 - c) - d), 100), e), ScriptTransfer(Address(fromBase58String(p)), fraction(C, d, 100), e), ScriptTransfer(Address(b), fraction(C, c, 100), e), ScriptTransfer(addressFromStringValue(B), 1, fromBase58String(m))]
132149 }
133150 }
134151
135152
136-@Verifier(E)
137-func F () = sigVerify(E.bodyBytes, E.proofs[0], E.senderPublicKey)
153+@Verifier(G)
154+func H () = sigVerify(G.bodyBytes, G.proofs[0], G.senderPublicKey)
138155
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = base58'3MrWNTqFcHBqb58Za1A5crQrMV5KJ5DYhtA'
55
66 let b = base58'3N65xLq8JcCeaEiR1TJQ7dBqXBvEy6E48Wz'
77
88 let c = 3
99
1010 let d = 7
1111
1212 let e = base58'DZ8ALmuLeSZ2ocsYLAcL9MiXBFDbMNQG9LtitREyU5ZC'
1313
1414 func f (g) = {
1515 let h = {
1616 let i = getInteger(this, g)
1717 if ($isInstanceOf(i, "Int"))
1818 then {
1919 let j = i
2020 j
2121 }
2222 else 0
2323 }
2424 h
2525 }
2626
2727
2828 func k (g) = {
2929 let h = {
3030 let i = getString(this, g)
3131 if ($isInstanceOf(i, "String"))
3232 then {
3333 let j = i
3434 j
3535 }
3636 else ""
3737 }
3838 h
3939 }
4040
4141
4242 func l (m) = {
4343 let n = value(assetInfo(m))
4444 if ((n.issuer == Address(a)))
4545 then "true"
4646 else ""
4747 }
4848
4949
50-func o (m) = if ((m != toBase58String(e)))
50+func o (m) = {
51+ let p = {
52+ let i = getString(Address(a), k(("nft_issued_" + m)))
53+ if ($isInstanceOf(i, "String"))
54+ then {
55+ let j = i
56+ j
57+ }
58+ else ""
59+ }
60+ p
61+ }
62+
63+
64+func q (m) = if ((m != toBase58String(e)))
5165 then throw("Only Sconex accepted")
5266 else true
5367
5468
55-@Callable(p)
56-func initAuction (q) = {
57- let r = toBase58String(p.transactionId)
58- let s = value(p.payments[0])
59- let m = value(s.assetId)
60- let t = l(m)
61- if ((t == ""))
69+@Callable(r)
70+func initAuction (s) = {
71+ let t = toBase58String(r.transactionId)
72+ let u = value(r.payments[0])
73+ let m = value(u.assetId)
74+ let v = l(m)
75+ if ((v == ""))
6276 then throw("You can only sell an NFT created on SCONE Marketplace")
63- else [StringEntry((("auction_" + r) + "_status"), "open"), StringEntry((("auction_" + toBase58String(m)) + "_last"), r), StringEntry((("auction_" + r) + "_assetName"), t), StringEntry((("auction_" + r) + "_assetId"), toBase58String(m)), IntegerEntry((("auction_" + r) + "_startedAt"), lastBlock.timestamp), StringEntry((("auction_" + r) + "_owner"), toString(p.caller)), IntegerEntry((("auction_" + r) + "_startPrice"), q), StringEntry((((("address_" + toString(p.caller)) + "_auction_") + r) + "_lockedNFT"), toBase58String(m))]
77+ else [StringEntry((("auction_" + t) + "_status"), "open"), StringEntry((("auction_" + toBase58String(m)) + "_last"), t), StringEntry((("auction_" + t) + "_assetName"), v), StringEntry((("auction_" + t) + "_assetId"), toBase58String(m)), IntegerEntry((("auction_" + t) + "_startedAt"), lastBlock.timestamp), StringEntry((("auction_" + t) + "_owner"), toString(r.caller)), IntegerEntry((("auction_" + t) + "_startPrice"), s), StringEntry((((("address_" + toString(r.caller)) + "_auction_") + t) + "_lockedNFT"), toBase58String(m))]
6478 }
6579
6680
6781
68-@Callable(p)
69-func cancelAuction (r) = {
70- let u = k((("auction_" + r) + "_owner"))
71- if ((toString(p.caller) != u))
82+@Callable(r)
83+func cancelAuction (t) = {
84+ let w = k((("auction_" + t) + "_owner"))
85+ if ((toString(r.caller) != w))
7286 then throw("Only allowed to auction owner")
73- else if ((k((("auction_" + r) + "_status")) != "open"))
87+ else if ((k((("auction_" + t) + "_status")) != "open"))
7488 then throw("auction is close")
75- else [StringEntry((("auction_" + r) + "_status"), "cancelled"), DeleteEntry((((("address_" + u) + "_auction_") + r) + "_lockedNFT")), ScriptTransfer(p.caller, 1, fromBase58String(getStringValue(this, (("auction_" + r) + "_assetId"))))]
89+ else [StringEntry((("auction_" + t) + "_status"), "cancelled"), DeleteEntry((((("address_" + w) + "_auction_") + t) + "_lockedNFT")), ScriptTransfer(r.caller, 1, fromBase58String(getStringValue(this, (("auction_" + t) + "_assetId"))))]
7690 }
7791
7892
7993
80-@Callable(p)
81-func placeBid (r) = {
82- let s = value(p.payments[0])
83- let v = s.amount
84- let w = toBase58String(p.transactionId)
85- let m = getStringValue(this, (("auction_" + r) + "_assetId"))
86- let x = if (!(isDefined(s.assetId)))
94+@Callable(r)
95+func placeBid (t) = {
96+ let u = value(r.payments[0])
97+ let x = u.amount
98+ let y = toBase58String(r.transactionId)
99+ let m = getStringValue(this, (("auction_" + t) + "_assetId"))
100+ let z = if (!(isDefined(u.assetId)))
87101 then throw("Only sconex is accepted!")
88- else toBase58String(value(s.assetId))
89- if (!(o(x)))
102+ else toBase58String(value(u.assetId))
103+ if (!(q(z)))
90104 then throw("Auction does only support sconex payments")
91105 else {
92- let y = f((("auction_" + r) + "_startPrice"))
93- if ((y > v))
94- then throw(("The minimal initial price is set as " + toString(y)))
95- else [StringEntry((((("auction_" + r) + "_bid_") + w) + "_author"), toString(p.caller)), StringEntry((((("assetId_" + m) + "_bid_") + w) + "_data"), (((((("{\"auctionId\": \"" + r) + "\", \"author\": \"") + toString(p.caller)) + "\", \"amount\": \"") + toString(v)) + "\", \"status\": \"open\"}")), IntegerEntry((((("auction_" + r) + "_bid_") + w) + "_amount"), v), StringEntry(((((("address_" + toString(p.caller)) + "_auction_") + r) + "_bid_") + w), m), StringEntry((((("auction_" + r) + "_bid_") + w) + "_status"), "open")]
106+ let A = f((("auction_" + t) + "_startPrice"))
107+ if ((A > x))
108+ then throw(("The minimal initial price is set as " + toString(A)))
109+ else [StringEntry((((("auction_" + t) + "_bid_") + y) + "_author"), toString(r.caller)), StringEntry((((("assetId_" + m) + "_bid_") + y) + "_data"), (((((("{\"auctionId\": \"" + t) + "\", \"author\": \"") + toString(r.caller)) + "\", \"amount\": \"") + toString(x)) + "\", \"status\": \"open\"}")), IntegerEntry((((("auction_" + t) + "_bid_") + y) + "_amount"), x), StringEntry(((((("address_" + toString(r.caller)) + "_auction_") + t) + "_bid_") + y), m), StringEntry((((("auction_" + t) + "_bid_") + y) + "_status"), "open")]
96110 }
97111 }
98112
99113
100114
101-@Callable(p)
102-func cancelBid (r,w) = {
103- let m = getStringValue(this, (("auction_" + r) + "_assetId"))
104- let z = k((((("auction_" + r) + "_bid_") + w) + "_author"))
105- let A = f((((("auction_" + r) + "_bid_") + w) + "_amount"))
106- if (if ((toString(p.caller) != z))
107- then (p.caller != this)
115+@Callable(r)
116+func cancelBid (t,y) = {
117+ let m = getStringValue(this, (("auction_" + t) + "_assetId"))
118+ let B = k((((("auction_" + t) + "_bid_") + y) + "_author"))
119+ let C = f((((("auction_" + t) + "_bid_") + y) + "_amount"))
120+ if (if ((toString(r.caller) != B))
121+ then (r.caller != this)
108122 else false)
109123 then throw("Only allowed to the bid author or admin")
110- else if ((k((((("auction_" + r) + "_bid_") + w) + "_status")) != "open"))
124+ else if ((k((((("auction_" + t) + "_bid_") + y) + "_status")) != "open"))
111125 then throw("bid is not open")
112- else [StringEntry((((("assetId_" + m) + "_bid_") + w) + "_data"), (((((("{\"auctionId\": \"" + r) + "\", \"author\": \"") + toString(p.caller)) + "\", \"amount\": \"") + toString(A)) + "\", \"status\": \"cancelled\"}")), StringEntry((((("auction_" + r) + "_bid_") + w) + "_status"), "cancelled"), DeleteEntry(((((("address_" + z) + "_auction_") + r) + "_bid_") + w)), ScriptTransfer(Address(fromBase58String(z)), A, e)]
126+ else [StringEntry((((("assetId_" + m) + "_bid_") + y) + "_data"), (((((("{\"auctionId\": \"" + t) + "\", \"author\": \"") + toString(r.caller)) + "\", \"amount\": \"") + toString(C)) + "\", \"status\": \"cancelled\"}")), StringEntry((((("auction_" + t) + "_bid_") + y) + "_status"), "cancelled"), DeleteEntry(((((("address_" + B) + "_auction_") + t) + "_bid_") + y)), ScriptTransfer(Address(fromBase58String(B)), C, e)]
113127 }
114128
115129
116130
117-@Callable(p)
118-func acceptBid (r,w) = {
119- let u = k((("auction_" + r) + "_owner"))
120- let z = k((((("auction_" + r) + "_bid_") + w) + "_author"))
121- let A = f((((("auction_" + r) + "_bid_") + w) + "_amount"))
122- let B = k((((("auction_" + r) + "_bid_") + w) + "_status"))
123- let m = k((("auction_" + r) + "_assetId"))
124- if ((toString(p.caller) != u))
131+@Callable(r)
132+func acceptBid (t,y) = {
133+ let w = k((("auction_" + t) + "_owner"))
134+ let B = k((((("auction_" + t) + "_bid_") + y) + "_author"))
135+ let C = f((((("auction_" + t) + "_bid_") + y) + "_amount"))
136+ let D = k((((("auction_" + t) + "_bid_") + y) + "_status"))
137+ let m = k((("auction_" + t) + "_assetId"))
138+ if ((toString(r.caller) != w))
125139 then throw("Only allowed to auction owner")
126- else if ((B != "open"))
140+ else if ((D != "open"))
127141 then throw("Bid was cancelled and cannot be accepted")
128142 else {
129- let C = f((m + "_recordPrice"))
130- let D = max([C, A])
131-[StringEntry((((("auction_" + r) + "_bid_") + w) + "_status"), "finished"), StringEntry((("auction_" + r) + "_status"), "finished"), StringEntry((((("assetId_" + m) + "_bid_") + w) + "_data"), (((((("{\"auctionId\": \"" + r) + "\", \"author\": \"") + toString(p.caller)) + "\", \"amount\": \"") + toString(A)) + "\", \"status\": \"finished\"}")), IntegerEntry((("auction_" + r) + "_finalPrice"), A), IntegerEntry((m + "_recordPrice"), D), DeleteEntry(((((("address_" + z) + "_auction_") + r) + "_bid_") + w)), DeleteEntry((((("address_" + u) + "_auction_") + r) + "_lockedNFT")), ScriptTransfer(p.caller, fraction(A, ((100 - c) - d), 100), e), ScriptTransfer(Address(b), fraction(A, d, 100), e), ScriptTransfer(Address(b), fraction(A, c, 100), e), ScriptTransfer(addressFromStringValue(z), 1, fromBase58String(m))]
143+ let E = f((m + "_recordPrice"))
144+ let F = max([E, C])
145+ let p = o(m)
146+ if ((p == ""))
147+ then [StringEntry((((("auction_" + t) + "_bid_") + y) + "_status"), "finished"), StringEntry((("auction_" + t) + "_status"), "finished"), StringEntry((((("assetId_" + m) + "_bid_") + y) + "_data"), (((((("{\"auctionId\": \"" + t) + "\", \"author\": \"") + toString(r.caller)) + "\", \"amount\": \"") + toString(C)) + "\", \"status\": \"finished\"}")), IntegerEntry((("auction_" + t) + "_finalPrice"), C), IntegerEntry((m + "_recordPrice"), F), DeleteEntry(((((("address_" + B) + "_auction_") + t) + "_bid_") + y)), DeleteEntry((((("address_" + w) + "_auction_") + t) + "_lockedNFT")), ScriptTransfer(r.caller, fraction(C, ((100 - c) - d), 100), e), ScriptTransfer(Address(b), fraction(C, d, 100), e), ScriptTransfer(Address(b), fraction(C, c, 100), e), ScriptTransfer(addressFromStringValue(B), 1, fromBase58String(m))]
148+ else [StringEntry((((("auction_" + t) + "_bid_") + y) + "_status"), "finished"), StringEntry((("auction_" + t) + "_status"), "finished"), StringEntry((((("assetId_" + m) + "_bid_") + y) + "_data"), (((((("{\"auctionId\": \"" + t) + "\", \"author\": \"") + toString(r.caller)) + "\", \"amount\": \"") + toString(C)) + "\", \"status\": \"finished\"}")), IntegerEntry((("auction_" + t) + "_finalPrice"), C), IntegerEntry((m + "_recordPrice"), F), DeleteEntry(((((("address_" + B) + "_auction_") + t) + "_bid_") + y)), DeleteEntry((((("address_" + w) + "_auction_") + t) + "_lockedNFT")), ScriptTransfer(r.caller, fraction(C, ((100 - c) - d), 100), e), ScriptTransfer(Address(fromBase58String(p)), fraction(C, d, 100), e), ScriptTransfer(Address(b), fraction(C, c, 100), e), ScriptTransfer(addressFromStringValue(B), 1, fromBase58String(m))]
132149 }
133150 }
134151
135152
136-@Verifier(E)
137-func F () = sigVerify(E.bodyBytes, E.proofs[0], E.senderPublicKey)
153+@Verifier(G)
154+func H () = sigVerify(G.bodyBytes, G.proofs[0], G.senderPublicKey)
138155

github/deemru/w8io/169f3d6 
102.84 ms