tx · 6JgPejDBLt29a9m1EqTxTqQ1uXwFvRaGBp48z49u293G

3Mze7XxHJtXw48uyWhjTJgMLcEzNBmi9tS9:  -0.01400000 Waves

2019.08.01 13:36 [611611] smart account 3Mze7XxHJtXw48uyWhjTJgMLcEzNBmi9tS9 > SELF 0.00000000 Waves

{ "type": 13, "id": "6JgPejDBLt29a9m1EqTxTqQ1uXwFvRaGBp48z49u293G", "fee": 1400000, "feeAssetId": null, "timestamp": 1564655812837, "version": 1, "sender": "3Mze7XxHJtXw48uyWhjTJgMLcEzNBmi9tS9", "senderPublicKey": "BZri78A6CXpGPmAHZNwqQXoNfWamwRZiuaBas3VdDKZp", "proofs": [ "4WL2QKf9MsmX3uQgY1CENdEdQfx3mp44jGF7cgBR1fZ7bm2fxoM4SjXwCJyCaCsfZPH7KQgF9djrLQRq21faeKsF" ], "script": "base64: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", "chainId": 84, "height": 611611, "spentComplexity": 0 } View: original | compacted Prev: 47tKTeY7HZEtJ98hBVs7fsFn1JKL8MzmttU7v8x7EEXx Next: 41jzKtaeB98UByEumcM5ZSaebJFahg2ozNQWqGbmANSz Diff:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4+let NONE = "none"
5+
6+func getKeyItem (supplier,title) = ("item" + toBase58String(sha256(toBytes((supplier + title)))))
7+
8+
9+func getStrByKey (key) = {
10+ let str = match getString(this, key) {
11+ case a: String =>
12+ a
13+ case _ =>
14+ NONE
15+ }
16+ str
17+ }
18+
19+
20+func getKeyItemSupplier (item) = (item + "_owner")
21+
22+
23+func getKeyItemPrice (item) = (item + "_price")
24+
25+
26+func getKeyItemData (item) = (item + "_data")
27+
28+
29+func getValueItemSupplier (item) = getStrByKey(getKeyItemSupplier(item))
430
531
632 @Callable(i)
2551 }
2652
2753
54+
55+@Callable(i)
56+func addItem (title,price,data) = {
57+ let supplierAddress = toBase58String(i.caller.bytes)
58+ let item = getKeyItem(supplierAddress, title)
59+ if ((0 >= price))
60+ then throw("Price must be positive.")
61+ else if ((getValueItemSupplier(item) != NONE))
62+ then throw("An item like this already exists.")
63+ else WriteSet([DataEntry(getKeyItemSupplier(item), supplierAddress), DataEntry(getKeyItemPrice(item), price), DataEntry(getKeyItemData(item), data)])
64+ }
65+
66+
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4+let NONE = "none"
5+
6+func getKeyItem (supplier,title) = ("item" + toBase58String(sha256(toBytes((supplier + title)))))
7+
8+
9+func getStrByKey (key) = {
10+ let str = match getString(this, key) {
11+ case a: String =>
12+ a
13+ case _ =>
14+ NONE
15+ }
16+ str
17+ }
18+
19+
20+func getKeyItemSupplier (item) = (item + "_owner")
21+
22+
23+func getKeyItemPrice (item) = (item + "_price")
24+
25+
26+func getKeyItemData (item) = (item + "_data")
27+
28+
29+func getValueItemSupplier (item) = getStrByKey(getKeyItemSupplier(item))
430
531
632 @Callable(i)
733 func purchase (Productname) = {
834 let pmt = extract(i.payment)
935 if (isDefined(pmt.assetId))
1036 then throw("Can use only WAVES at the moment.")
1137 else {
1238 let customerAddress = toBase16String(i.caller.bytes)
1339 let price = match getInteger(this, Productname) {
1440 case a: Int =>
1541 a
1642 case _ =>
1743 0
1844 }
1945 if ((price > pmt.amount))
2046 then throw(((("Amount cannot be less than item price. You specified amount: " + toString(pmt.amount)) + "but price is ") + toString(price)))
2147 else if ((pmt.amount > price))
2248 then throw(((("Amount cannot be greater than item price. You specified amount: " + toString(pmt.amount)) + "but price is ") + toString(price)))
2349 else WriteSet([DataEntry(((("status:" + Productname) + "_") + customerAddress), "confirmed"), DataEntry(((("price:" + Productname) + "_") + customerAddress), price)])
2450 }
2551 }
2652
2753
54+
55+@Callable(i)
56+func addItem (title,price,data) = {
57+ let supplierAddress = toBase58String(i.caller.bytes)
58+ let item = getKeyItem(supplierAddress, title)
59+ if ((0 >= price))
60+ then throw("Price must be positive.")
61+ else if ((getValueItemSupplier(item) != NONE))
62+ then throw("An item like this already exists.")
63+ else WriteSet([DataEntry(getKeyItemSupplier(item), supplierAddress), DataEntry(getKeyItemPrice(item), price), DataEntry(getKeyItemData(item), data)])
64+ }
65+
66+

github/deemru/w8io/169f3d6 
28.45 ms