tx · 9RN7yAfyy3mkY8sVBbFT1J8mW1qVoiTKRGjXYVQPt7aR

3Mze7XxHJtXw48uyWhjTJgMLcEzNBmi9tS9:  -0.01400000 Waves

2019.08.02 19:37 [613474] smart account 3Mze7XxHJtXw48uyWhjTJgMLcEzNBmi9tS9 > SELF 0.00000000 Waves

{ "type": 13, "id": "9RN7yAfyy3mkY8sVBbFT1J8mW1qVoiTKRGjXYVQPt7aR", "fee": 1400000, "feeAssetId": null, "timestamp": 1564763970428, "version": 1, "sender": "3Mze7XxHJtXw48uyWhjTJgMLcEzNBmi9tS9", "senderPublicKey": "BZri78A6CXpGPmAHZNwqQXoNfWamwRZiuaBas3VdDKZp", "proofs": [ "21YZVT7ucdnjm9JgYW5JKHgVLvHcidF2mST2MPKoSoyYjDd3ftjHhma1yzzQ3ZiRHmn3cbr3f4NYKrQGZXqytYMn" ], "script": "base64:AAIDAAAAAAAAAAAAAAAdAAAAAAROT05FAgAAAARub25lAAAAAAZWT1RFUlMAAAAAAAAAAAMAAAAABlFVT1JVTQAAAAAAAAAAAgAAAAAGVk9USU5HAgAAAAZ2b3RpbmcAAAAABlJFVkVBTAIAAAAGcmV2ZWFsAAAAAAhGRUFUVVJFRAIAAAAIZmVhdHVyZWQAAAAACERFTElTVEVEAgAAAAhkZWxpc3RlZAEAAAALZ2V0TnVtQnlLZXkAAAABAAAAA2tleQQAAAADbnVtBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABQAAAANudW0BAAAAC2dldFN0ckJ5S2V5AAAAAQAAAANrZXkEAAAAA3N0cgQAAAAHJG1hdGNoMAkABB0AAAACBQAAAAR0aGlzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQUAAAAETk9ORQUAAAADc3RyAQAAAAxnZXRLZXlDb21taXQAAAACAAAABGl0ZW0AAAAEdXNlcgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAEaXRlbQIAAAABXwUAAAAEdXNlcgIAAAAHX2NvbW1pdAEAAAASZ2V0S2V5Q29tbWl0Q291bnRzAAAAAQAAAARpdGVtCQABLAAAAAIFAAAABGl0ZW0CAAAAB19jb21jbnQBAAAADGdldEtleVJldmVhbAAAAAIAAAAEaXRlbQAAAAR1c2VyCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAARpdGVtAgAAAAFfBQAAAAR1c2VyAgAAAAdfcmV2ZWFsAQAAABBnZXRLZXlJdGVtU3RhdHVzAAAAAQAAAARpdGVtCQABLAAAAAIFAAAABGl0ZW0CAAAAB19zdGF0dXMBAAAAD2dldEtleVZvdGVDb3VudAAAAAIAAAAEaXRlbQAAAAR2b3RlCQABLAAAAAIJAAEsAAAAAgUAAAAEaXRlbQIAAAAFX3JlczoFAAAABHZvdGUBAAAADmdldFZhbHVlQ29tbWl0AAAAAgAAAARpdGVtAAAABHVzZXIJAQAAAAtnZXRTdHJCeUtleQAAAAEJAQAAAAxnZXRLZXlDb21taXQAAAACBQAAAARpdGVtBQAAAAR1c2VyAQAAABRnZXRWYWx1ZUNvbW1pdHNDb3VudAAAAAEAAAAEaXRlbQkBAAAAC2dldE51bUJ5S2V5AAAAAQkBAAAAEmdldEtleUNvbW1pdENvdW50cwAAAAEFAAAABGl0ZW0BAAAADmdldFZhbHVlUmV2ZWFsAAAAAgAAAARpdGVtAAAABHVzZXIJAQAAAAtnZXRTdHJCeUtleQAAAAEJAQAAAAxnZXRLZXlSZXZlYWwAAAACBQAAAARpdGVtBQAAAAR1c2VyAQAAABJnZXRWYWx1ZUl0ZW1TdGF0dXMAAAABAAAABGl0ZW0JAQAAAAtnZXRTdHJCeUtleQAAAAEJAQAAABBnZXRLZXlJdGVtU3RhdHVzAAAAAQUAAAAEaXRlbQEAAAARZ2V0VmFsdWVWb3RlQ291bnQAAAACAAAABGl0ZW0AAAAEdXNlcgkBAAAAC2dldE51bUJ5S2V5AAAAAQkBAAAAD2dldEtleVZvdGVDb3VudAAAAAIFAAAABGl0ZW0FAAAABHVzZXIBAAAAFWdldEtleVVzZXJJdGVtQ291bnRlcgAAAAIAAAAEdXNlcgAAAARpdGVtCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAARpdGVtAgAAAAFfBQAAAAR1c2VyAgAAAARfY250AQAAAApnZXRLZXlJdGVtAAAAAgAAAAhzdXBwbGllcgAAAAV0aXRsZQkAASwAAAACAgAAAARpdGVtCQACWAAAAAEJAAH3AAAAAQkAAZsAAAABCQABLAAAAAIFAAAACHN1cHBsaWVyBQAAAAV0aXRsZQEAAAASZ2V0S2V5SXRlbVN1cHBsaWVyAAAAAQAAAARpdGVtCQABLAAAAAIFAAAABGl0ZW0CAAAABl9vd25lcgEAAAAPZ2V0S2V5SXRlbVByaWNlAAAAAQAAAARpdGVtCQABLAAAAAIFAAAABGl0ZW0CAAAABl9wcmljZQEAAAAOZ2V0S2V5SXRlbURhdGEAAAABAAAABGl0ZW0JAAEsAAAAAgUAAAAEaXRlbQIAAAAFX2RhdGEBAAAAFGdldFZhbHVlSXRlbVN1cHBsaWVyAAAAAQAAAARpdGVtCQEAAAALZ2V0U3RyQnlLZXkAAAABCQEAAAASZ2V0S2V5SXRlbVN1cHBsaWVyAAAAAQUAAAAEaXRlbQEAAAARZ2V0VmFsdWVJdGVtUHJpY2UAAAABAAAABGl0ZW0JAQAAAAtnZXROdW1CeUtleQAAAAEJAQAAAA9nZXRLZXlJdGVtUHJpY2UAAAABBQAAAARpdGVtAQAAABdnZXRWYWx1ZVVzZXJJdGVtQ291bnRlcgAAAAIAAAAEdXNlcgAAAARpdGVtCQEAAAALZ2V0TnVtQnlLZXkAAAABCQEAAAAPZ2V0S2V5SXRlbVByaWNlAAAAAQUAAAAEaXRlbQEAAAAVZ2V0S2V5QmFsYW5jZVN1cHBsaWVyAAAAAQAAAAdhY2NvdW50CQABLAAAAAIFAAAAB2FjY291bnQCAAAACF9iYWxhbmNlAQAAABdnZXRWYWx1ZUJhbGFuY2VTdXBwbGllcgAAAAEAAAAHYWNjb3VudAkBAAAAC2dldE51bUJ5S2V5AAAAAQkBAAAAFWdldEtleUJhbGFuY2VTdXBwbGllcgAAAAEFAAAAB2FjY291bnQAAAAEAAAAAWkBAAAACHB1cmNoYXNlAAAAAQAAAARpdGVtBAAAAANwbXQJAQAAAAdleHRyYWN0AAAAAQgFAAAAAWkAAAAHcGF5bWVudAMJAQAAAAlpc0RlZmluZWQAAAABCAUAAAADcG10AAAAB2Fzc2V0SWQJAAACAAAAAQIAAAAhQ2FuIHVzZSBvbmx5IFdBVkVTIGF0IHRoZSBtb21lbnQuBAAAAA9jdXN0b21lckFkZHJlc3MJAAEwAAAAAgkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzAAAAAAAAAAAKBAAAAAVwcmljZQkBAAAAEWdldFZhbHVlSXRlbVByaWNlAAAAAQUAAAAEaXRlbQQAAAAPc3VwcGxpZXJBZGRyZXNzCQEAAAAUZ2V0VmFsdWVJdGVtU3VwcGxpZXIAAAABBQAAAARpdGVtAwkAAGYAAAACBQAAAAVwcmljZQgFAAAAA3BtdAAAAAZhbW91bnQJAAACAAAAAQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAA9QW1vdW50IGNhbm5vdCBiZSBsZXNzIHRoYW4gaXRlbSBwcmljZS4gWW91IHNwZWNpZmllZCBhbW91bnQ6IAkAAaQAAAAB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", "chainId": 84, "height": 613474, "spentComplexity": 0 } View: original | compacted Prev: 5vjSZY22TGMSnNT25eu3t2P7kEvXTM5xbrAuF4ys6scc Next: BXoq9HPYdUTBdzkxg48CZzV35jXg784ytdQVzcHdenJb Diff:
OldNewDifferences
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "none"
55
6-func b (c,d) = (((d + "_") + c) + "_cnt")
6+let b = 3
77
8+let c = 2
89
9-func e (f,g) = ("item" + toBase58String(sha256(toBytes((f + g)))))
10+let d = "voting"
1011
12+let e = "reveal"
13+
14+let f = "featured"
15+
16+let g = "delisted"
1117
1218 func h (i) = {
1319 let j = {
3743 }
3844
3945
40-func o (d) = (d + "_owner")
46+func o (p,q) = (((p + "_") + q) + "_commit")
4147
4248
43-func p (d) = (d + "_price")
49+func r (p) = (p + "_comcnt")
4450
4551
46-func q (d) = (d + "_data")
52+func s (p,q) = (((p + "_") + q) + "_reveal")
4753
4854
49-func r (d) = m(o(d))
55+func t (p) = (p + "_status")
5056
5157
52-func s (d) = h(p(d))
58+func u (p,v) = ((p + "_res:") + v)
5359
5460
55-func t (c,d) = h(p(d))
61+func w (p,q) = m(o(p, q))
5662
5763
58-func u (v) = (v + "_balance")
64+func x (p) = h(r(p))
5965
6066
61-func w (v) = h(u(v))
67+func y (p,q) = m(s(p, q))
6268
6369
64-@Callable(x)
65-func purchase (d) = {
66- let y = extract(x.payment)
67- if (isDefined(y.assetId))
70+func z (p) = m(t(p))
71+
72+
73+func A (p,q) = h(u(p, q))
74+
75+
76+func B (q,p) = (((p + "_") + q) + "_cnt")
77+
78+
79+func C (D,E) = ("item" + toBase58String(sha256(toBytes((D + E)))))
80+
81+
82+func F (p) = (p + "_owner")
83+
84+
85+func G (p) = (p + "_price")
86+
87+
88+func H (p) = (p + "_data")
89+
90+
91+func I (p) = m(F(p))
92+
93+
94+func J (p) = h(G(p))
95+
96+
97+func K (q,p) = h(G(p))
98+
99+
100+func L (M) = (M + "_balance")
101+
102+
103+func N (M) = h(L(M))
104+
105+
106+@Callable(O)
107+func purchase (p) = {
108+ let P = extract(O.payment)
109+ if (isDefined(P.assetId))
68110 then throw("Can use only WAVES at the moment.")
69111 else {
70- let z = drop(toBase58String(x.caller.bytes), 10)
71- let A = s(d)
72- let B = r(d)
73- if ((A > y.amount))
74- then throw(((("Amount cannot be less than item price. You specified amount: " + toString(y.amount)) + "but price is ") + toString(A)))
75- else if ((y.amount > A))
76- then throw(((((("Amount cannot be greater than item price. You specified amount: " + toString(y.amount)) + " but price of item: ") + d) + " is ") + toString(A)))
77- else if ((B == a))
112+ let Q = drop(toBase58String(O.caller.bytes), 10)
113+ let R = J(p)
114+ let S = I(p)
115+ if ((R > P.amount))
116+ then throw(((("Amount cannot be less than item price. You specified amount: " + toString(P.amount)) + "but price is ") + toString(R)))
117+ else if ((P.amount > R))
118+ then throw(((((("Amount cannot be greater than item price. You specified amount: " + toString(P.amount)) + " but price of item: ") + p) + " is ") + toString(R)))
119+ else if ((S == a))
78120 then throw("Supplier not found.")
79- else WriteSet([DataEntry(b(z, d), (t(z, d) + 1)), DataEntry(u(B), (w(B) + y.amount))])
121+ else WriteSet([DataEntry(B(Q, p), (K(Q, p) + 1)), DataEntry(L(S), (N(S) + P.amount))])
80122 }
81123 }
82124
83125
84126
85-@Callable(x)
86-func addItem (g,A,C) = {
87- let B = drop(toBase58String(x.caller.bytes), 10)
88- let d = e(B, g)
89- if ((0 >= A))
127+@Callable(O)
128+func addItem (E,R,T) = {
129+ let S = drop(toBase58String(O.caller.bytes), 10)
130+ let p = C(S, E)
131+ if ((0 >= R))
90132 then throw("Price must be positive.")
91- else if ((r(d) != a))
133+ else if ((I(p) != a))
92134 then throw("An item like this already exists.")
93- else WriteSet([DataEntry(o(d), B), DataEntry(p(d), A), DataEntry(q(d), C)])
135+ else WriteSet([DataEntry(F(p), S), DataEntry(G(p), R), DataEntry(H(p), T)])
94136 }
95137
96138
97139
98-@Callable(x)
140+@Callable(O)
99141 func withdraw () = {
100- let B = toBase58String(x.caller.bytes)
101- let D = w(B)
102- if ((0 >= D))
142+ let S = toBase58String(O.caller.bytes)
143+ let U = N(S)
144+ if ((0 >= U))
103145 then throw("Insufficient Balance")
104- else ScriptResult(WriteSet([DataEntry(u(B), 0)]), TransferSet([ScriptTransfer(addressFromStringValue(B), D, unit)]))
146+ else ScriptResult(WriteSet([DataEntry(L(S), 0)]), TransferSet([ScriptTransfer(addressFromStringValue(S), U, unit)]))
147+ }
148+
149+
150+
151+@Callable(O)
152+func voteCommit (p,V) = {
153+ let q = toBase58String(O.caller.bytes)
154+ let W = x(p)
155+ let X = z(p)
156+ if ((W >= b))
157+ then throw("Reached max n. of votes")
158+ else if ((w(p, q) != a))
159+ then throw("User already voted for this item")
160+ else if ((F(p) == a))
161+ then throw("Item does not exist")
162+ else if (if ((X != a))
163+ then (X != d)
164+ else false)
165+ then throw("It is not possible to vote now.")
166+ else WriteSet([DataEntry(o(p, q), V), DataEntry(r(p), (W + 1)), DataEntry(t(p), if ((W == b))
167+ then e
168+ else d)])
105169 }
106170
107171
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "none"
55
6-func b (c,d) = (((d + "_") + c) + "_cnt")
6+let b = 3
77
8+let c = 2
89
9-func e (f,g) = ("item" + toBase58String(sha256(toBytes((f + g)))))
10+let d = "voting"
1011
12+let e = "reveal"
13+
14+let f = "featured"
15+
16+let g = "delisted"
1117
1218 func h (i) = {
1319 let j = {
1420 let k = getInteger(this, i)
1521 if ($isInstanceOf(k, "Int"))
1622 then {
1723 let l = k
1824 l
1925 }
2026 else 0
2127 }
2228 j
2329 }
2430
2531
2632 func m (i) = {
2733 let n = {
2834 let k = getString(this, i)
2935 if ($isInstanceOf(k, "String"))
3036 then {
3137 let l = k
3238 l
3339 }
3440 else a
3541 }
3642 n
3743 }
3844
3945
40-func o (d) = (d + "_owner")
46+func o (p,q) = (((p + "_") + q) + "_commit")
4147
4248
43-func p (d) = (d + "_price")
49+func r (p) = (p + "_comcnt")
4450
4551
46-func q (d) = (d + "_data")
52+func s (p,q) = (((p + "_") + q) + "_reveal")
4753
4854
49-func r (d) = m(o(d))
55+func t (p) = (p + "_status")
5056
5157
52-func s (d) = h(p(d))
58+func u (p,v) = ((p + "_res:") + v)
5359
5460
55-func t (c,d) = h(p(d))
61+func w (p,q) = m(o(p, q))
5662
5763
58-func u (v) = (v + "_balance")
64+func x (p) = h(r(p))
5965
6066
61-func w (v) = h(u(v))
67+func y (p,q) = m(s(p, q))
6268
6369
64-@Callable(x)
65-func purchase (d) = {
66- let y = extract(x.payment)
67- if (isDefined(y.assetId))
70+func z (p) = m(t(p))
71+
72+
73+func A (p,q) = h(u(p, q))
74+
75+
76+func B (q,p) = (((p + "_") + q) + "_cnt")
77+
78+
79+func C (D,E) = ("item" + toBase58String(sha256(toBytes((D + E)))))
80+
81+
82+func F (p) = (p + "_owner")
83+
84+
85+func G (p) = (p + "_price")
86+
87+
88+func H (p) = (p + "_data")
89+
90+
91+func I (p) = m(F(p))
92+
93+
94+func J (p) = h(G(p))
95+
96+
97+func K (q,p) = h(G(p))
98+
99+
100+func L (M) = (M + "_balance")
101+
102+
103+func N (M) = h(L(M))
104+
105+
106+@Callable(O)
107+func purchase (p) = {
108+ let P = extract(O.payment)
109+ if (isDefined(P.assetId))
68110 then throw("Can use only WAVES at the moment.")
69111 else {
70- let z = drop(toBase58String(x.caller.bytes), 10)
71- let A = s(d)
72- let B = r(d)
73- if ((A > y.amount))
74- then throw(((("Amount cannot be less than item price. You specified amount: " + toString(y.amount)) + "but price is ") + toString(A)))
75- else if ((y.amount > A))
76- then throw(((((("Amount cannot be greater than item price. You specified amount: " + toString(y.amount)) + " but price of item: ") + d) + " is ") + toString(A)))
77- else if ((B == a))
112+ let Q = drop(toBase58String(O.caller.bytes), 10)
113+ let R = J(p)
114+ let S = I(p)
115+ if ((R > P.amount))
116+ then throw(((("Amount cannot be less than item price. You specified amount: " + toString(P.amount)) + "but price is ") + toString(R)))
117+ else if ((P.amount > R))
118+ then throw(((((("Amount cannot be greater than item price. You specified amount: " + toString(P.amount)) + " but price of item: ") + p) + " is ") + toString(R)))
119+ else if ((S == a))
78120 then throw("Supplier not found.")
79- else WriteSet([DataEntry(b(z, d), (t(z, d) + 1)), DataEntry(u(B), (w(B) + y.amount))])
121+ else WriteSet([DataEntry(B(Q, p), (K(Q, p) + 1)), DataEntry(L(S), (N(S) + P.amount))])
80122 }
81123 }
82124
83125
84126
85-@Callable(x)
86-func addItem (g,A,C) = {
87- let B = drop(toBase58String(x.caller.bytes), 10)
88- let d = e(B, g)
89- if ((0 >= A))
127+@Callable(O)
128+func addItem (E,R,T) = {
129+ let S = drop(toBase58String(O.caller.bytes), 10)
130+ let p = C(S, E)
131+ if ((0 >= R))
90132 then throw("Price must be positive.")
91- else if ((r(d) != a))
133+ else if ((I(p) != a))
92134 then throw("An item like this already exists.")
93- else WriteSet([DataEntry(o(d), B), DataEntry(p(d), A), DataEntry(q(d), C)])
135+ else WriteSet([DataEntry(F(p), S), DataEntry(G(p), R), DataEntry(H(p), T)])
94136 }
95137
96138
97139
98-@Callable(x)
140+@Callable(O)
99141 func withdraw () = {
100- let B = toBase58String(x.caller.bytes)
101- let D = w(B)
102- if ((0 >= D))
142+ let S = toBase58String(O.caller.bytes)
143+ let U = N(S)
144+ if ((0 >= U))
103145 then throw("Insufficient Balance")
104- else ScriptResult(WriteSet([DataEntry(u(B), 0)]), TransferSet([ScriptTransfer(addressFromStringValue(B), D, unit)]))
146+ else ScriptResult(WriteSet([DataEntry(L(S), 0)]), TransferSet([ScriptTransfer(addressFromStringValue(S), U, unit)]))
147+ }
148+
149+
150+
151+@Callable(O)
152+func voteCommit (p,V) = {
153+ let q = toBase58String(O.caller.bytes)
154+ let W = x(p)
155+ let X = z(p)
156+ if ((W >= b))
157+ then throw("Reached max n. of votes")
158+ else if ((w(p, q) != a))
159+ then throw("User already voted for this item")
160+ else if ((F(p) == a))
161+ then throw("Item does not exist")
162+ else if (if ((X != a))
163+ then (X != d)
164+ else false)
165+ then throw("It is not possible to vote now.")
166+ else WriteSet([DataEntry(o(p, q), V), DataEntry(r(p), (W + 1)), DataEntry(t(p), if ((W == b))
167+ then e
168+ else d)])
105169 }
106170
107171

github/deemru/w8io/169f3d6 
350.79 ms