tx · 3VRvotf4FEF1yUuNaFQenWJQn119cFiKoJnX6qWmwBjQ

3MteeMicpvRbmpGtb55Ym7qajPGJqju6DfD:  -0.01400000 Waves

2019.07.13 12:02 [583754] smart account 3MteeMicpvRbmpGtb55Ym7qajPGJqju6DfD > SELF 0.00000000 Waves

{ "type": 13, "id": "3VRvotf4FEF1yUuNaFQenWJQn119cFiKoJnX6qWmwBjQ", "fee": 1400000, "feeAssetId": null, "timestamp": 1563008544802, "version": 1, "sender": "3MteeMicpvRbmpGtb55Ym7qajPGJqju6DfD", "senderPublicKey": "Ag9VhLi94fq2sVuC1mHGQFUv1ioh2E2RqXkjYpTWakT5", "proofs": [ "2LJ7s9YGCruyu7mkDyf7zYj3CpF6XpTXEzRLohTZqtEEfYi2rfUwZPvzkPbj5LbsqKVcrwxhG8SAkjWRKtFpnzqt" ], "script": "base64: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BXByaWNlCQAAAgAAAAECAAAALnB1cmNoYXNlIGFtb3VudCBjYW5ub3QgYmUgbGVzcyB0aGVuIGl0ZW0gcHJpY2UDCQEAAAACIT0AAAACCQEAAAAUZ2V0VmFsdWVJdGVtU3VwcGxpZXIAAAABBQAAAARpdGVtBQAAAAROT05FCQAAAgAAAAECAAAAGGFuIGl0ZW0gaXMgYWxyZWFkeSBleGlzdAkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAEmdldEtleUl0ZW1TdXBwbGllcgAAAAEFAAAABGl0ZW0FAAAAD3N1cHBsaWVyQWRkcmVzcwkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAD2dldEtleUl0ZW1QcmljZQAAAAEFAAAABGl0ZW0FAAAABXByaWNlCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAOZ2V0S2V5SXRlbURhdGEAAAABBQAAAARpdGVtBQAAAARkYXRhBQAAAANuaWwAAAABaQEAAAAIcHVyY2hhc2UAAAABAAAABGl0ZW0EAAAAA3BtdAkBAAAAB2V4dHJhY3QAAAABCAUAAAABaQAAAAdwYXltZW50AwkBAAAACWlzRGVmaW5lZAAAAAEIBQAAAANwbXQAAAAHYXNzZXRJZAkAAAIAAAABAgAAAB9XQVZFUyB0b2tlbnMgb25seSBhdCB0aGUgbW9tZW50BAAAAAt1c2VyQWRkcmVzcwkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAAAVwcmljZQkBAAAAEWdldFZhbHVlSXRlbVByaWNlAAAAAQUAAAAEaXRlbQQAAAAPc3VwcGxpZXJBZGRyZXNzCQEAAAAUZ2V0VmFsdWVJdGVtU3VwcGxpZXIAAAABBQAAAARpdGVtAwkAAGYAAAACBQAAAAVwcmljZQgFAAAAA3BtdAAAAAZhbW91bnQJAAACAAAAAQIAAAAucHVyY2hhc2UgYW1vdW50IGNhbm5vdCBiZSBsZXNzIHRoZW4gaXRlbSBwcmljZQMJAABmAAAAAggFAAAAA3BtdAAAAAZhbW91bnQFAAAABXByaWNlCQAAAgAAAAECAAAAMHB1cmNoYXNlIGFtb3VudCBjYW5ub3QgYmUgaGlnaGVyIHRoZW4gaXRlbSBwcmljZQMJAAAAAAAAAgUAAAAPc3VwcGxpZXJBZGRyZXNzBQAAAAROT05FCQAAAgAAAAECAAAAF3N1cHBsaWVyIGRvZXMgbm90IGV4aXN0CQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAVZ2V0S2V5VXNlckl0ZW1Db3VudGVyAAAAAgUAAAALdXNlckFkZHJlc3MFAAAABGl0ZW0JAABkAAAAAgkBAAAAF2dldFZhbHVlVXNlckl0ZW1Db3VudGVyAAAAAgUAAAALdXNlckFkZHJlc3MFAAAABGl0ZW0AAAAAAAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABVnZXRLZXlCYWxhbmNlU3VwcGxpZXIAAAABBQAAAA9zdXBwbGllckFkZHJlc3MJAABkAAAAAgkBAAAAF2dldFZhbHVlQmFsYW5jZVN1cHBsaWVyAAAAAQUAAAAPc3VwcGxpZXJBZGRyZXNzCAUAAAADcG10AAAABmFtb3VudAUAAAADbmlsAAAAAPdOtA4=", "chainId": 84, "height": 583754, "spentComplexity": 0 } View: original | compacted Prev: 9deKY1qB9rMXPBo4hx57st2GDsaiuCA34nR44KXp6S9k Next: 6uiJgxJmuB5HVf3uHM3nYeEspUg8iCPiTnFsYYQxS8gq Diff:
OldNewDifferences
129129 }
130130
131131
132+
133+@Callable(y)
134+func purchase (k) = {
135+ let z = extract(y.payment)
136+ if (isDefined(z.assetId))
137+ then throw("WAVES tokens only at the moment")
138+ else {
139+ let I = toBase58String(y.caller.bytes)
140+ let F = l(k)
141+ let H = u(k)
142+ if ((F > z.amount))
143+ then throw("purchase amount cannot be less then item price")
144+ else if ((z.amount > F))
145+ then throw("purchase amount cannot be higher then item price")
146+ else if ((H == a))
147+ then throw("supplier does not exist")
148+ else WriteSet([DataEntry(m(I, k), (o(I, k) + 1)), DataEntry(v(H), (x(H) + z.amount))])
149+ }
150+ }
151+
152+
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "none"
55
66 let b = "_BALANCE_"
77
88 func c (d) = {
99 let e = {
1010 let f = getInteger(this, d)
1111 if ($isInstanceOf(f, "Int"))
1212 then {
1313 let g = f
1414 g
1515 }
1616 else 0
1717 }
1818 e
1919 }
2020
2121
2222 func h (d) = {
2323 let i = {
2424 let f = getString(this, d)
2525 if ($isInstanceOf(f, "String"))
2626 then {
2727 let g = f
2828 g
2929 }
3030 else a
3131 }
3232 i
3333 }
3434
3535
3636 func j (k) = (k + "_price")
3737
3838
3939 func l (k) = c(j(k))
4040
4141
4242 func m (n,k) = (((k + "_") + n) + "_cnt")
4343
4444
4545 func o (n,k) = c(m(n, k))
4646
4747
4848 func p (q,r) = ("item_" + toBase58String(sha256(toBytes((q + r)))))
4949
5050
5151 func s (k) = (k + "_data")
5252
5353
5454 func t (k) = (k + "_owner")
5555
5656
5757 func u (k) = h(t(k))
5858
5959
6060 func v (w) = (w + "_balance")
6161
6262
6363 func x (w) = c(v(w))
6464
6565
6666 @Callable(y)
6767 func deposit () = {
6868 let z = extract(y.payment)
6969 if (isDefined(z.assetId))
7070 then throw("can hold waves only at the moment")
7171 else {
7272 let A = toBase58String(y.caller.bytes)
7373 let B = {
7474 let f = getInteger(this, A)
7575 if ($isInstanceOf(f, "Int"))
7676 then {
7777 let g = f
7878 g
7979 }
8080 else 0
8181 }
8282 let C = {
8383 let f = getString(this, ("wl_sts_" + A))
8484 if ($isInstanceOf(f, "String"))
8585 then {
8686 let g = f
8787 g
8888 }
8989 else throw("user has been not waitlisted")
9090 }
9191 let D = (B + z.amount)
9292 WriteSet([DataEntry((b + A), D)])
9393 }
9494 }
9595
9696
9797
9898 @Callable(y)
9999 func withdraw (E) = {
100100 let A = toBase58String(y.caller.bytes)
101101 let B = {
102102 let f = getInteger(this, A)
103103 if ($isInstanceOf(f, "Int"))
104104 then {
105105 let g = f
106106 g
107107 }
108108 else 0
109109 }
110110 let D = (B - E)
111111 if ((0 > E))
112112 then throw("can't withdraw negative balance")
113113 else if ((0 > D))
114114 then throw("not enough balance")
115115 else ScriptResult(WriteSet([DataEntry((b + A), D)]), TransferSet([ScriptTransfer(y.caller, E, unit)]))
116116 }
117117
118118
119119
120120 @Callable(y)
121121 func addItem (r,F,G) = {
122122 let H = toBase58String(y.caller.bytes)
123123 let k = p(H, r)
124124 if ((0 >= F))
125125 then throw("purchase amount cannot be less then item price")
126126 else if ((u(k) != a))
127127 then throw("an item is already exist")
128128 else WriteSet([DataEntry(t(k), H), DataEntry(j(k), F), DataEntry(s(k), G)])
129129 }
130130
131131
132+
133+@Callable(y)
134+func purchase (k) = {
135+ let z = extract(y.payment)
136+ if (isDefined(z.assetId))
137+ then throw("WAVES tokens only at the moment")
138+ else {
139+ let I = toBase58String(y.caller.bytes)
140+ let F = l(k)
141+ let H = u(k)
142+ if ((F > z.amount))
143+ then throw("purchase amount cannot be less then item price")
144+ else if ((z.amount > F))
145+ then throw("purchase amount cannot be higher then item price")
146+ else if ((H == a))
147+ then throw("supplier does not exist")
148+ else WriteSet([DataEntry(m(I, k), (o(I, k) + 1)), DataEntry(v(H), (x(H) + z.amount))])
149+ }
150+ }
151+
152+

github/deemru/w8io/169f3d6 
33.84 ms