tx · 68vEkzF76dyop3nTFC7sVep9KXsXBrKaZsiCfpvWZXKu

3Mr6LNXTo2cMvNMrka9pV1pwHZFXVHULoue:  -0.01400000 Waves

2021.12.06 09:26 [1822042] smart account 3Mr6LNXTo2cMvNMrka9pV1pwHZFXVHULoue > SELF 0.00000000 Waves

{ "type": 13, "id": "68vEkzF76dyop3nTFC7sVep9KXsXBrKaZsiCfpvWZXKu", "fee": 1400000, "feeAssetId": null, "timestamp": 1638772052807, "version": 2, "chainId": 84, "sender": "3Mr6LNXTo2cMvNMrka9pV1pwHZFXVHULoue", "senderPublicKey": "9tHFZ3PMkyXBYPkjU77RdMPEGBzfm7BWxfuHvGjgdrv5", "proofs": [ "5QFqhU9rRP7CuHMGKPnaVYFFyPtasLUkjL9rV173AeV3AwGT1Hr4mNpeHURKjHG5p2hUzEru7uAGV7aj2gkbKnEy" ], "script": "base64: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", "height": 1822042, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 7yTcDBLfPYvyzFuLGZbQMRNTwKcFvbNTrBUvQvxhEVAY Next: 5dv17W9kjENMd97aBmUVcFFCMC5fR3Ahvm8gbAVtTi6Q Diff:
OldNewDifferences
1010 func d (b) = (b + "_issuer")
1111
1212
13-func e (f) = {
14- let g = {
15- let h = getInteger(this, f)
16- if ($isInstanceOf(h, "Int"))
13+func e (b) = (b + "_description")
14+
15+
16+func f (g) = {
17+ let h = {
18+ let i = getInteger(this, g)
19+ if ($isInstanceOf(i, "Int"))
1720 then {
18- let i = h
19- i
21+ let j = i
22+ j
2023 }
2124 else 0
2225 }
23- g
26+ h
2427 }
2528
2629
27-func j (f) = {
28- let g = {
29- let h = getString(this, f)
30- if ($isInstanceOf(h, "String"))
30+func k (g) = {
31+ let h = {
32+ let i = getString(this, g)
33+ if ($isInstanceOf(i, "String"))
3134 then {
32- let i = h
33- i
35+ let j = i
36+ j
3437 }
3538 else ""
3639 }
37- g
40+ h
3841 }
3942
4043
41-@Callable(k)
42-func offerForSale (l) = {
43- let m = value(k.payments[0])
44- let n = {
45- let h = m.assetId
46- if ($isInstanceOf(h, "ByteVector"))
44+@Callable(l)
45+func offerForSale (m) = {
46+ let n = value(l.payments[0])
47+ let o = {
48+ let i = n.assetId
49+ if ($isInstanceOf(i, "ByteVector"))
4750 then {
48- let o = h
49- o
51+ let p = i
52+ p
5053 }
51- else if ($isInstanceOf(h, "Unit"))
54+ else if ($isInstanceOf(i, "Unit"))
5255 then {
53- let p = h
56+ let q = i
5457 throw("Asset is not NFT")
5558 }
5659 else throw("Match error")
5760 }
58- let q = toBase58String(n)
61+ let r = toBase58String(o)
5962 let b = {
60- let h = assetInfo(n)
61- if ($isInstanceOf(h, "Asset"))
63+ let i = assetInfo(o)
64+ if ($isInstanceOf(i, "Asset"))
6265 then {
63- let r = h
64- r
66+ let s = i
67+ s
6568 }
6669 else throw("Error getting information about asset")
6770 }
7174 then b.reissuable
7275 else false)
7376 then throw("Asset is not NFT")
74- else [IntegerEntry(a(q), l), StringEntry(c(q), toBase58String(k.caller.bytes)), StringEntry(d(q), toBase58String(b.issuer.bytes))]
77+ else [IntegerEntry(a(r), m), StringEntry(c(r), toBase58String(l.caller.bytes)), StringEntry(d(r), toBase58String(b.issuer.bytes)), StringEntry(e(r), b.description)]
7578 }
7679
7780
7881
79-@Callable(k)
80-func buy (s) = {
81- let l = e(a(s))
82- let t = j(c(s))
83- let u = {
84- let h = addressFromString(t)
85- if ($isInstanceOf(h, "Address"))
82+@Callable(l)
83+func buy (t) = {
84+ let m = f(a(t))
85+ let u = k(c(t))
86+ let v = {
87+ let i = addressFromString(u)
88+ if ($isInstanceOf(i, "Address"))
8689 then {
87- let r = h
88- r
90+ let s = i
91+ s
8992 }
9093 else throw("Address parsing error")
9194 }
92- let m = value(k.payments[0])
93- let v = {
94- let h = m.assetId
95- if ($isInstanceOf(h, "ByteVector"))
95+ let n = value(l.payments[0])
96+ let w = {
97+ let i = n.assetId
98+ if ($isInstanceOf(i, "ByteVector"))
9699 then {
97- let w = h
100+ let x = i
98101 true
99102 }
100- else if ($isInstanceOf(h, "Unit"))
103+ else if ($isInstanceOf(i, "Unit"))
101104 then {
102- let p = h
105+ let q = i
103106 false
104107 }
105108 else throw("Match error")
106109 }
107- if ((l == 0))
110+ if ((m == 0))
108111 then throw("This NFT is not for sale")
109- else if (v)
112+ else if (w)
110113 then throw("Payment must be in Waves tokens only")
111- else if ((l > m.amount))
114+ else if ((m > n.amount))
112115 then throw("Insufficient funds")
113116 else {
114- let x = ((l / 100) * 5)
115-[ScriptTransfer(k.caller, 1, fromBase58String(s)), ScriptTransfer(u, (l - x), unit), DeleteEntry(a(s)), DeleteEntry(c(s)), DeleteEntry(d(s))]
117+ let y = ((m / 100) * 5)
118+[ScriptTransfer(l.caller, 1, fromBase58String(t)), ScriptTransfer(v, (m - y), unit), DeleteEntry(a(t)), DeleteEntry(c(t)), DeleteEntry(d(t)), DeleteEntry(e(t))]
116119 }
117120 }
118121
119122
120123
121-@Callable(k)
122-func cancelSelling (s) = {
123- let t = j(c(s))
124- let u = {
125- let h = addressFromString(t)
126- if ($isInstanceOf(h, "Address"))
124+@Callable(l)
125+func cancelSelling (t) = {
126+ let u = k(c(t))
127+ let v = {
128+ let i = addressFromString(u)
129+ if ($isInstanceOf(i, "Address"))
127130 then {
128- let r = h
129- r
131+ let s = i
132+ s
130133 }
131134 else throw("Address parsing error")
132135 }
133- if ((t != toBase58String(k.caller.bytes)))
136+ if ((u != toBase58String(l.caller.bytes)))
134137 then throw("The calling address is not the owner of the NFT token")
135- else [ScriptTransfer(k.caller, 1, fromBase58String(s)), DeleteEntry(a(s)), DeleteEntry(c(s)), DeleteEntry(d(s))]
138+ else [ScriptTransfer(l.caller, 1, fromBase58String(t)), DeleteEntry(a(t)), DeleteEntry(c(t)), DeleteEntry(d(t)), DeleteEntry(e(t))]
136139 }
137140
138141
139-@Verifier(y)
140-func z () = sigVerify(y.bodyBytes, y.proofs[0], y.senderPublicKey)
142+@Verifier(z)
143+func A () = sigVerify(z.bodyBytes, z.proofs[0], z.senderPublicKey)
141144
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 func a (b) = (b + "_price")
55
66
77 func c (b) = (b + "_owner")
88
99
1010 func d (b) = (b + "_issuer")
1111
1212
13-func e (f) = {
14- let g = {
15- let h = getInteger(this, f)
16- if ($isInstanceOf(h, "Int"))
13+func e (b) = (b + "_description")
14+
15+
16+func f (g) = {
17+ let h = {
18+ let i = getInteger(this, g)
19+ if ($isInstanceOf(i, "Int"))
1720 then {
18- let i = h
19- i
21+ let j = i
22+ j
2023 }
2124 else 0
2225 }
23- g
26+ h
2427 }
2528
2629
27-func j (f) = {
28- let g = {
29- let h = getString(this, f)
30- if ($isInstanceOf(h, "String"))
30+func k (g) = {
31+ let h = {
32+ let i = getString(this, g)
33+ if ($isInstanceOf(i, "String"))
3134 then {
32- let i = h
33- i
35+ let j = i
36+ j
3437 }
3538 else ""
3639 }
37- g
40+ h
3841 }
3942
4043
41-@Callable(k)
42-func offerForSale (l) = {
43- let m = value(k.payments[0])
44- let n = {
45- let h = m.assetId
46- if ($isInstanceOf(h, "ByteVector"))
44+@Callable(l)
45+func offerForSale (m) = {
46+ let n = value(l.payments[0])
47+ let o = {
48+ let i = n.assetId
49+ if ($isInstanceOf(i, "ByteVector"))
4750 then {
48- let o = h
49- o
51+ let p = i
52+ p
5053 }
51- else if ($isInstanceOf(h, "Unit"))
54+ else if ($isInstanceOf(i, "Unit"))
5255 then {
53- let p = h
56+ let q = i
5457 throw("Asset is not NFT")
5558 }
5659 else throw("Match error")
5760 }
58- let q = toBase58String(n)
61+ let r = toBase58String(o)
5962 let b = {
60- let h = assetInfo(n)
61- if ($isInstanceOf(h, "Asset"))
63+ let i = assetInfo(o)
64+ if ($isInstanceOf(i, "Asset"))
6265 then {
63- let r = h
64- r
66+ let s = i
67+ s
6568 }
6669 else throw("Error getting information about asset")
6770 }
6871 if (if (if ((b.quantity != 1))
6972 then (b.decimals != 0)
7073 else false)
7174 then b.reissuable
7275 else false)
7376 then throw("Asset is not NFT")
74- else [IntegerEntry(a(q), l), StringEntry(c(q), toBase58String(k.caller.bytes)), StringEntry(d(q), toBase58String(b.issuer.bytes))]
77+ else [IntegerEntry(a(r), m), StringEntry(c(r), toBase58String(l.caller.bytes)), StringEntry(d(r), toBase58String(b.issuer.bytes)), StringEntry(e(r), b.description)]
7578 }
7679
7780
7881
79-@Callable(k)
80-func buy (s) = {
81- let l = e(a(s))
82- let t = j(c(s))
83- let u = {
84- let h = addressFromString(t)
85- if ($isInstanceOf(h, "Address"))
82+@Callable(l)
83+func buy (t) = {
84+ let m = f(a(t))
85+ let u = k(c(t))
86+ let v = {
87+ let i = addressFromString(u)
88+ if ($isInstanceOf(i, "Address"))
8689 then {
87- let r = h
88- r
90+ let s = i
91+ s
8992 }
9093 else throw("Address parsing error")
9194 }
92- let m = value(k.payments[0])
93- let v = {
94- let h = m.assetId
95- if ($isInstanceOf(h, "ByteVector"))
95+ let n = value(l.payments[0])
96+ let w = {
97+ let i = n.assetId
98+ if ($isInstanceOf(i, "ByteVector"))
9699 then {
97- let w = h
100+ let x = i
98101 true
99102 }
100- else if ($isInstanceOf(h, "Unit"))
103+ else if ($isInstanceOf(i, "Unit"))
101104 then {
102- let p = h
105+ let q = i
103106 false
104107 }
105108 else throw("Match error")
106109 }
107- if ((l == 0))
110+ if ((m == 0))
108111 then throw("This NFT is not for sale")
109- else if (v)
112+ else if (w)
110113 then throw("Payment must be in Waves tokens only")
111- else if ((l > m.amount))
114+ else if ((m > n.amount))
112115 then throw("Insufficient funds")
113116 else {
114- let x = ((l / 100) * 5)
115-[ScriptTransfer(k.caller, 1, fromBase58String(s)), ScriptTransfer(u, (l - x), unit), DeleteEntry(a(s)), DeleteEntry(c(s)), DeleteEntry(d(s))]
117+ let y = ((m / 100) * 5)
118+[ScriptTransfer(l.caller, 1, fromBase58String(t)), ScriptTransfer(v, (m - y), unit), DeleteEntry(a(t)), DeleteEntry(c(t)), DeleteEntry(d(t)), DeleteEntry(e(t))]
116119 }
117120 }
118121
119122
120123
121-@Callable(k)
122-func cancelSelling (s) = {
123- let t = j(c(s))
124- let u = {
125- let h = addressFromString(t)
126- if ($isInstanceOf(h, "Address"))
124+@Callable(l)
125+func cancelSelling (t) = {
126+ let u = k(c(t))
127+ let v = {
128+ let i = addressFromString(u)
129+ if ($isInstanceOf(i, "Address"))
127130 then {
128- let r = h
129- r
131+ let s = i
132+ s
130133 }
131134 else throw("Address parsing error")
132135 }
133- if ((t != toBase58String(k.caller.bytes)))
136+ if ((u != toBase58String(l.caller.bytes)))
134137 then throw("The calling address is not the owner of the NFT token")
135- else [ScriptTransfer(k.caller, 1, fromBase58String(s)), DeleteEntry(a(s)), DeleteEntry(c(s)), DeleteEntry(d(s))]
138+ else [ScriptTransfer(l.caller, 1, fromBase58String(t)), DeleteEntry(a(t)), DeleteEntry(c(t)), DeleteEntry(d(t)), DeleteEntry(e(t))]
136139 }
137140
138141
139-@Verifier(y)
140-func z () = sigVerify(y.bodyBytes, y.proofs[0], y.senderPublicKey)
142+@Verifier(z)
143+func A () = sigVerify(z.bodyBytes, z.proofs[0], z.senderPublicKey)
141144

github/deemru/w8io/169f3d6 
63.00 ms