tx · 5n4L4P4mEvQbREkk8V4orvgL9nubYxLRWDsLTaNboMJg

3Muxd5JEAQz655DDi2yiZxSQ63jVJJHrQyV:  -0.01400000 Waves

2022.02.03 15:14 [1907403] smart account 3Muxd5JEAQz655DDi2yiZxSQ63jVJJHrQyV > SELF 0.00000000 Waves

{ "type": 13, "id": "5n4L4P4mEvQbREkk8V4orvgL9nubYxLRWDsLTaNboMJg", "fee": 1400000, "feeAssetId": null, "timestamp": 1643890526952, "version": 2, "chainId": 84, "sender": "3Muxd5JEAQz655DDi2yiZxSQ63jVJJHrQyV", "senderPublicKey": "7ycxALbgfzht9z36iWCgRauBfWzQGSgkc3HMwu7wDwNX", "proofs": [ "63aCgXJQF4u5gHasbgT9YwEEGhW47q4JqBQ3WTe3VdByzz3FqAgFvYAG1QvsYw18uGdFQCAgQh2DGUYwzTAaH6fG" ], "script": "base64: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", "height": 1907403, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: AgTLox7RB16owPYNJ952PCxbohjBoQhgPhyVGcz3rWBY Next: 2GPEYKwJvnr9nZBjfsZmnWakXDFFHfq7Y5rBFinzZfJs Diff:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4+let NONE = "NONE"
5+
46 let customer = "CUSTOMER"
57
68 let supplier = "SUPPLIER"
79
810 let ericPubKey = base58'8haEN2a7ZmkzawLmnr5rFX14X1oHi5kjt8NQUDNjSDLG'
911
12+func getStringByKey (key) = match getString(key) {
13+ case a: String =>
14+ a
15+ case _ =>
16+ NONE
17+}
18+
19+
20+func getItemHash (supplier,title) = {
21+ let comboTitle = (supplier + title)
22+ ("item_" + toBase58String(sha256(toBytes(comboTitle))))
23+ }
24+
25+
1026 func getNameKey (type,addr) = (((type + "_") + addr) + "_name")
27+
28+
29+func getItemSupplierKey (item) = (item + "_owner")
30+
31+
32+func getItemPriceKey (item) = (item + "_price")
33+
34+
35+func getItemDataKey (item) = (item + "_data")
36+
37+
38+func getValueItemSupplier (item) = {
39+ let itemKey = getItemSupplierKey(item)
40+ getStringByKey(itemKey)
41+ }
1142
1243
1344 @Callable(i)
2051 else false)
2152 then [StringEntry(getNameKey(type, addr), addr)]
2253 else throw("Invalid func parameters")
54+ }
55+
56+
57+
58+@Callable(i)
59+func createItem (title,price,data) = {
60+ let supplierAddress = toBase58String(i.caller.bytes)
61+ let item = getItemHash(supplierAddress, title)
62+ if ((0 >= price))
63+ then throw("Price can not be negative value")
64+ else if ((getValueItemSupplier(item) != NONE))
65+ then throw("Item already exists")
66+ else [StringEntry(getItemSupplierKey(item), supplierAddress), IntegerEntry(getItemPriceKey(item), price), StringEntry(getItemDataKey(item), data)]
67+ }
68+
69+
70+
71+@Callable(i)
72+func deleteItem (title) = {
73+ let supplierAddress = toBase58String(i.caller.bytes)
74+ let item = getItemHash(supplierAddress, title)
75+ if ((getValueItemSupplier(item) != NONE))
76+ then [DeleteEntry(getItemSupplierKey(item)), DeleteEntry(getItemPriceKey(item)), DeleteEntry(getItemDataKey(item))]
77+ else throw("No such item present")
2378 }
2479
2580
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4+let NONE = "NONE"
5+
46 let customer = "CUSTOMER"
57
68 let supplier = "SUPPLIER"
79
810 let ericPubKey = base58'8haEN2a7ZmkzawLmnr5rFX14X1oHi5kjt8NQUDNjSDLG'
911
12+func getStringByKey (key) = match getString(key) {
13+ case a: String =>
14+ a
15+ case _ =>
16+ NONE
17+}
18+
19+
20+func getItemHash (supplier,title) = {
21+ let comboTitle = (supplier + title)
22+ ("item_" + toBase58String(sha256(toBytes(comboTitle))))
23+ }
24+
25+
1026 func getNameKey (type,addr) = (((type + "_") + addr) + "_name")
27+
28+
29+func getItemSupplierKey (item) = (item + "_owner")
30+
31+
32+func getItemPriceKey (item) = (item + "_price")
33+
34+
35+func getItemDataKey (item) = (item + "_data")
36+
37+
38+func getValueItemSupplier (item) = {
39+ let itemKey = getItemSupplierKey(item)
40+ getStringByKey(itemKey)
41+ }
1142
1243
1344 @Callable(i)
1445 func register (type) = {
1546 let addr = toBase58String(i.caller.bytes)
1647 if (if (isDefined(type))
1748 then if ((type == customer))
1849 then true
1950 else (type == supplier)
2051 else false)
2152 then [StringEntry(getNameKey(type, addr), addr)]
2253 else throw("Invalid func parameters")
54+ }
55+
56+
57+
58+@Callable(i)
59+func createItem (title,price,data) = {
60+ let supplierAddress = toBase58String(i.caller.bytes)
61+ let item = getItemHash(supplierAddress, title)
62+ if ((0 >= price))
63+ then throw("Price can not be negative value")
64+ else if ((getValueItemSupplier(item) != NONE))
65+ then throw("Item already exists")
66+ else [StringEntry(getItemSupplierKey(item), supplierAddress), IntegerEntry(getItemPriceKey(item), price), StringEntry(getItemDataKey(item), data)]
67+ }
68+
69+
70+
71+@Callable(i)
72+func deleteItem (title) = {
73+ let supplierAddress = toBase58String(i.caller.bytes)
74+ let item = getItemHash(supplierAddress, title)
75+ if ((getValueItemSupplier(item) != NONE))
76+ then [DeleteEntry(getItemSupplierKey(item)), DeleteEntry(getItemPriceKey(item)), DeleteEntry(getItemDataKey(item))]
77+ else throw("No such item present")
2378 }
2479
2580
2681
2782 @Callable(i)
2883 func deleteEntry (key) = if ((i.callerPublicKey == ericPubKey))
2984 then [DeleteEntry(key)]
3085 else throw("Only Eric can delete entries")
3186
3287
3388
3489 @Callable(i)
3590 func unregister (type) = if (if ((type == supplier))
3691 then true
3792 else (type == customer))
3893 then {
3994 let addr = toBase58String(i.caller.bytes)
4095 [DeleteEntry(getNameKey(type, addr))]
4196 }
4297 else throw("Illegal argument")
4398
4499
45100 @Verifier(tx)
46101 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
47102

github/deemru/w8io/873ac7e 
50.39 ms