tx · BKmxNnS46wfZwPUBJgtoSEj2ctp4tY4qnjqCzzUrJGhu

3N1HYdheNiiTtHgi2n3jLAek6N3H4guaciG:  -1.40000000 Waves

2019.11.01 13:42 [745686] smart account 3N1HYdheNiiTtHgi2n3jLAek6N3H4guaciG > SELF 0.00000000 Waves

{ "type": 13, "id": "BKmxNnS46wfZwPUBJgtoSEj2ctp4tY4qnjqCzzUrJGhu", "fee": 140000000, "feeAssetId": null, "timestamp": 1572604696051, "version": 1, "sender": "3N1HYdheNiiTtHgi2n3jLAek6N3H4guaciG", "senderPublicKey": "ABg8e4W86BPhY1TMBNFDsAi6N9qAVf6DqAVAHSXHttzT", "proofs": [ "4Vmce2qfWHUQJV9xQsnDLzsTkTFkPYJfpZnBxDxkAHCM3Jrrn4fJzqSdXKeRqsxBGBEeFPXtVKKy4QZ5gbjLhn7m" ], "script": "base64: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", "chainId": 84, "height": 745686, "spentComplexity": 0 } View: original | compacted Prev: 6S1bvufpHw8jcvi3tDmxHue3AzkWwij4GaHWHZgyZUKu Next: HrKgdghWapQaKmaEN9smxXMXUr5yhZ7LB5ZbGCenFG16 Diff:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4+let NONE = "none"
5+
6+func getStrByKey (key) = {
7+ let str = match getString(this, key) {
8+ case a: String =>
9+ a
10+ case _ =>
11+ NONE
12+ }
13+ str
14+ }
15+
16+
17+func getKeyItemPrice (item) = (item + "_price")
18+
19+
20+func getKeyItemData (item) = (item + "_data")
21+
22+
23+func getKeyItem (supplier,title) = ("item_" + toBase58String(sha256(toBytes((supplier + title)))))
24+
25+
26+func getKeyItemSupplier (item) = (item + "_owner")
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("purchase amount cannot be less than item price")
61+ else if ((getValueItemSupplier(item) != NONE))
62+ then throw("an item is already exist")
63+ else WriteSet([DataEntry(getKeyItemSupplier(item), supplierAddress), DataEntry(getKeyItemPrice(item), price), DataEntry(getKeyItemData(item), data)])
64+ }
65+
66+
2867 @Verifier(tx)
2968 func standardVerifier () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
3069
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4+let NONE = "none"
5+
6+func getStrByKey (key) = {
7+ let str = match getString(this, key) {
8+ case a: String =>
9+ a
10+ case _ =>
11+ NONE
12+ }
13+ str
14+ }
15+
16+
17+func getKeyItemPrice (item) = (item + "_price")
18+
19+
20+func getKeyItemData (item) = (item + "_data")
21+
22+
23+func getKeyItem (supplier,title) = ("item_" + toBase58String(sha256(toBytes((supplier + title)))))
24+
25+
26+func getKeyItemSupplier (item) = (item + "_owner")
27+
28+
29+func getValueItemSupplier (item) = getStrByKey(getKeyItemSupplier(item))
430
531
632 @Callable(i)
733 func purchase () = {
834 let pmt = extract(i.payment)
935 if (isDefined(pmt.assetId))
1036 then throw("can use WAVES only at the moment")
1137 else {
1238 let customerAddress = toBase58String(i.caller.bytes)
1339 let price = match getInteger(this, "item_A_coupon_price") {
1440 case a: Int =>
1541 a
1642 case _ =>
1743 0
1844 }
1945 if ((price > pmt.amount))
2046 then throw("purchase amount cannot be less than item price")
2147 else if ((price > pmt.amount))
2248 then throw("purchase amount cannot be higher than item price")
2349 else WriteSet([DataEntry(("status:purchase_item_A_customer_" + customerAddress), "confirmed"), DataEntry(("price:purchase_item_A_customer_" + 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("purchase amount cannot be less than item price")
61+ else if ((getValueItemSupplier(item) != NONE))
62+ then throw("an item is already exist")
63+ else WriteSet([DataEntry(getKeyItemSupplier(item), supplierAddress), DataEntry(getKeyItemPrice(item), price), DataEntry(getKeyItemData(item), data)])
64+ }
65+
66+
2867 @Verifier(tx)
2968 func standardVerifier () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
3069

github/deemru/w8io/3ef1775 
41.79 ms