tx · HNVsJpMfWYk3acCdf2pwS2KmPRToAcAE1QSJwpWztbyR

3N2D6tJAXzcTDgUiTWmcdCHd6ctYwNENuBn:  -0.01000000 Waves

2022.11.02 13:52 [2299394] smart account 3N2D6tJAXzcTDgUiTWmcdCHd6ctYwNENuBn > SELF 0.00000000 Waves

{ "type": 13, "id": "HNVsJpMfWYk3acCdf2pwS2KmPRToAcAE1QSJwpWztbyR", "fee": 1000000, "feeAssetId": null, "timestamp": 1667386402003, "version": 2, "chainId": 84, "sender": "3N2D6tJAXzcTDgUiTWmcdCHd6ctYwNENuBn", "senderPublicKey": "Cq4RbcVcQJpCWyHiACDqUf2PbU8PaX949Dun9wRSeDzE", "proofs": [ "5bDUqHsUUYWYJDTMn7uZ2ZniJpmgE1TeXi9wQYcmbPD8uG7dyrg4qK4F8hHoKvd6H4ERywNc4CqF1bv4f8bzoTEi" ], "script": "base64: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", "height": 2299394, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: Dc7hwifkqJQ2xBTXJjtst192sDTjz5RQ9kZJWQmHbp7p Next: 2E89vURoTYtZFPzrTjFVQzsKL4k96PmNh3gVDtzbJXZL Full:
OldNewDifferences
1-{-# STDLIB_VERSION 3 #-}
1+{-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let a = (1440 * 30)
4+let a = base58''
55
6-@Callable(b)
7-func startAuction (c,d,e) = {
8- let f = toBase58String(b.transactionId)
9- let g = (lastBlock.height + c)
10- let h = extract(b.payment)
11- if ((c > a))
12- then throw(("Duration is too long. Must be less than " + toString(a)))
13- else WriteSet([DataEntry(f, g), DataEntry((f + "_organizer"), toBase58String(b.caller.bytes)), DataEntry((f + "_lot_assetId"), if (isDefined(h.assetId))
14- then toBase58String(value(h.assetId))
15- else "WAVES"), DataEntry((f + "_lot_amount"), h.amount), DataEntry((f + "_startPrice"), d), DataEntry((f + "_priceAssetId"), e)])
6+let b = base58''
7+
8+let c = base58''
9+
10+let d = "GLOBAL_COUNTER"
11+
12+let e = 5
13+
14+let f = 20
15+
16+func g (h) = {
17+ let i = {
18+ let j = getInteger(this, h)
19+ if ($isInstanceOf(j, "Int"))
20+ then {
21+ let k = j
22+ k
23+ }
24+ else 0
25+ }
26+ i
1627 }
1728
1829
19-
20-@Callable(b)
21-func bid (f) = {
22- let h = extract(b.payment)
23- let i = if (isDefined(h.assetId))
24- then toBase58String(value(h.assetId))
25- else "WAVES"
26- let j = toBase58String(b.caller.bytes)
27- let g = getIntegerValue(this, f)
28- let d = getIntegerValue(this, (f + "_startPrice"))
29- let e = getStringValue(this, (f + "_priceAssetId"))
30- let k = getInteger(this, (f + "_winAmount"))
31- let l = getString(this, (f + "_winner"))
32- let m = if (isDefined(l))
33- then (value(l) == j)
34- else false
35- let n = (h.amount + (if (m)
36- then value(k)
37- else 0))
38- if ((lastBlock.height >= g))
39- then throw("Auction already finished")
40- else if ((e != i))
41- then throw((("Bid must be in asset '" + e) + "'"))
42- else if (if (if (isDefined(k))
43- then (value(k) >= n)
44- else false)
45- then true
46- else if (!(isDefined(k)))
47- then (d >= n)
48- else false)
49- then throw(("Bid must be more then " + toString(if (isDefined(k))
50- then value(k)
51- else d)))
52- else if (if (m)
53- then true
54- else !(isDefined(l)))
55- then WriteSet([DataEntry((f + "_winner"), j), DataEntry((f + "_winAmount"), n)])
56- else {
57- let o = addressFromStringValue(value(l))
58- let p = if (if ((e == "WAVES"))
59- then true
60- else (e == ""))
61- then unit
62- else fromBase58String(e)
63- ScriptResult(WriteSet([DataEntry((f + "_winner"), j), DataEntry((f + "_winAmount"), n)]), TransferSet([ScriptTransfer(o, value(k), p)]))
64- }
30+func l (h) = {
31+ let i = {
32+ let j = getString(this, h)
33+ if ($isInstanceOf(j, "String"))
34+ then {
35+ let k = j
36+ k
37+ }
38+ else ""
39+ }
40+ i
6541 }
6642
6743
44+func m (h) = {
45+ let j = getBoolean(this, h)
46+ if ($isInstanceOf(j, "Boolean"))
47+ then {
48+ let k = j
49+ k
50+ }
51+ else false
52+ }
6853
69-@Callable(b)
70-func withdraw (f) = {
71- let h = extract(b.payment)
72- let i = if (isDefined(h.assetId))
73- then toBase58String(value(h.assetId))
54+
55+func n () = g(d)
56+
57+
58+func o (p) = if ((value(assetInfo(p)).issuer == Address(a)))
59+ then "ART"
60+ else {
61+ let q = {
62+ let j = getString(Address(a), toBase58String(p))
63+ if ($isInstanceOf(j, "String"))
64+ then {
65+ let k = j
66+ k
67+ }
68+ else ""
69+ }
70+ if ((q != ""))
71+ then q
72+ else {
73+ let r = {
74+ let j = getString(Address(b), toBase58String(p))
75+ if ($isInstanceOf(j, "String"))
76+ then {
77+ let s = j
78+ s
79+ }
80+ else ""
81+ }
82+ if ((r != ""))
83+ then r
84+ else ""
85+ }
86+ }
87+
88+
89+@Callable(t)
90+func nftBuy (u) = {
91+ let v = m((("nft_" + u) + "_nftart"))
92+ let w = if ((v == true))
93+ then c
94+ else unit
95+ let x = if ((v == true))
96+ then "nftart"
7497 else "WAVES"
75- let j = toBase58String(b.caller.bytes)
76- let g = getIntegerValue(this, f)
77- let q = getStringValue(this, (f + "_organizer"))
78- let l = getString(this, (f + "_winner"))
79- let r = getStringValue(this, (f + "_lot_assetId"))
80- let s = getIntegerValue(this, (f + "_lot_amount"))
81- let e = getStringValue(this, (f + "_priceAssetId"))
82- let k = getIntegerValue(this, (f + "_winAmount"))
83- let t = if ((r == "WAVES"))
84- then unit
85- else fromBase58String(r)
86- let p = if (if ((e == "WAVES"))
87- then true
88- else (e == ""))
89- then unit
90- else fromBase58String(e)
91- let u = addressFromStringValue(value(l))
92- let v = addressFromStringValue(value(q))
93- let w = getInteger(this, ((f + "_bidder_") + j))
94- if ((g > lastBlock.height))
95- then throw("Auction is not finished yet")
96- else if (!(isDefined(l)))
97- then if (isDefined(getString(this, (f + "_lot_passed"))))
98- then throw("Organizer has already got his lot back")
99- else ScriptResult(WriteSet([DataEntry((f + "_lot_passed"), q)]), TransferSet([ScriptTransfer(v, s, t)]))
100- else if (isDefined(getString(this, (f + "_lot_passed"))))
101- then throw("Lot is already passed to the winner, and organizer got his reward")
102- else ScriptResult(WriteSet([DataEntry((f + "_lot_passed"), toBase58String(u.bytes))]), TransferSet([ScriptTransfer(u, s, t), ScriptTransfer(v, k, p)]))
98+ let y = value(t.payments[0])
99+ let z = y.amount
100+ let p = l((("nft_" + u) + "_assetId"))
101+ let A = toBase58String(t.transactionId)
102+ let B = l((("nft_" + u) + "_status"))
103+ let C = if ((m((("nft_" + u) + "_isArtefact")) == true))
104+ then f
105+ else e
106+ if ((y.assetId != w))
107+ then throw((("nft does only support " + x) + " payments."))
108+ else if ((B != "open"))
109+ then throw("nft is closed. You cannot place a bid.")
110+ else {
111+ let D = g((("nft_" + u) + "_instantPrice"))
112+ if ((D > z))
113+ then throw(("For instant purchase you need to pay at least " + toString(D)))
114+ else {
115+ let E = l((("nft_" + u) + "_owner"))
116+ let F = g((p + "_recordPrice"))
117+ let G = max([F, z])
118+[StringEntry((("nft_" + u) + "_status"), "finished"), IntegerEntry((("nft_" + u) + "_finalPrice"), z), IntegerEntry((p + "_recordPrice"), G), StringEntry((((("assetId_" + p) + "_bid_") + A) + "_data"), (((((("{\"nftId\": \"" + u) + "\", \"author\": \"") + toString(t.originCaller)) + "\", \"amount\": \"") + toString(z)) + "\", \"status\": \"finished\"}")), DeleteEntry((((("address_" + E) + "_nft_") + u) + "_lockedNFT")), ScriptTransfer(t.originCaller, 1, fromBase58String(getStringValue(this, (("nft_" + u) + "_assetId")))), ScriptTransfer(addressFromStringValue(E), fraction(z, (100 - C), 100), w), ScriptTransfer(Address(a), fraction(z, C, 100), w)]
119+ }
120+ }
103121 }
104122
105123

github/deemru/w8io/169f3d6 
34.05 ms