tx · HYiAEbXTWMw2eKoJZWWw6uvJTmhfsdTjzksC2ZncX6FL

3Muxd5JEAQz655DDi2yiZxSQ63jVJJHrQyV:  -0.01400000 Waves

2022.02.04 03:46 [1908162] smart account 3Muxd5JEAQz655DDi2yiZxSQ63jVJJHrQyV > SELF 0.00000000 Waves

{ "type": 13, "id": "HYiAEbXTWMw2eKoJZWWw6uvJTmhfsdTjzksC2ZncX6FL", "fee": 1400000, "feeAssetId": null, "timestamp": 1643935619340, "version": 2, "chainId": 84, "sender": "3Muxd5JEAQz655DDi2yiZxSQ63jVJJHrQyV", "senderPublicKey": "7ycxALbgfzht9z36iWCgRauBfWzQGSgkc3HMwu7wDwNX", "proofs": [ "4sedjWUA4tgKWggQ3Xo5uHf96ckzTPVpZgANzaP6byZFQP6jAdFFQndkCrxy8kxnbZ3tL1prRhFg7UvkbgstWHRT" ], "script": "base64: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", "height": 1908162, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: ARz1ibFgNJJpkc7AT89WvxACYf5r8DZNipGLjKevs1Vg Next: 4561Kbp3GsRCWNTJTj1X1WnJMZr8KYyevpvFJzpxWNH8 Diff:
OldNewDifferences
4444 }
4545
4646
47+func getSoldOutValue (item) = {
48+ let key = getItemSoldOutKey(item)
49+ match getInteger(this, key) {
50+ case a: Int =>
51+ a
52+ case _ =>
53+ 2
54+ }
55+ }
56+
57+
4758 @Callable(i)
4859 func register (type) = {
4960 let addr = toBase58String(i.caller.bytes)
8394 else {
8495 let customerAddr = toBase58String(i.caller.bytes)
8596 let item = getItemHash(supplier, title)
86- let soldout = match getInteger(this, getItemSoldOutKey(item)) {
87- case t: Int =>
88- t
89- case _ =>
90- 2
91- }
9297 let price = match getInteger(this, getItemPriceKey(item)) {
9398 case p: Int =>
9499 p
95100 case _ =>
96101 0
97102 }
98- if ((soldout != 0))
103+ if ((getSoldOutValue(item) != 0))
99104 then throw("Item is already sold")
100105 else if ((payment.amount > price))
101106 then throw("payment cant be higher than price")
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let NONE = "NONE"
55
66 let customer = "CUSTOMER"
77
88 let supplier = "SUPPLIER"
99
1010 let ericPubKey = base58'8haEN2a7ZmkzawLmnr5rFX14X1oHi5kjt8NQUDNjSDLG'
1111
1212 func getStringByKey (key) = match getString(key) {
1313 case a: String =>
1414 a
1515 case _ =>
1616 NONE
1717 }
1818
1919
2020 func getItemHash (supplier,title) = {
2121 let comboTitle = (supplier + title)
2222 ("item_" + toBase58String(sha256(toBytes(comboTitle))))
2323 }
2424
2525
2626 func getNameKey (type,addr) = (((type + "_") + addr) + "_name")
2727
2828
2929 func getItemSupplierKey (item) = (item + "_owner")
3030
3131
3232 func getItemPriceKey (item) = (item + "_price")
3333
3434
3535 func getItemSoldOutKey (item) = (item + "_soldout")
3636
3737
3838 func getItemDataKey (item) = (item + "_data")
3939
4040
4141 func getValueItemSupplier (item) = {
4242 let itemKey = getItemSupplierKey(item)
4343 getStringByKey(itemKey)
4444 }
4545
4646
47+func getSoldOutValue (item) = {
48+ let key = getItemSoldOutKey(item)
49+ match getInteger(this, key) {
50+ case a: Int =>
51+ a
52+ case _ =>
53+ 2
54+ }
55+ }
56+
57+
4758 @Callable(i)
4859 func register (type) = {
4960 let addr = toBase58String(i.caller.bytes)
5061 if (if (isDefined(type))
5162 then if ((type == customer))
5263 then true
5364 else (type == supplier)
5465 else false)
5566 then [StringEntry(getNameKey(type, addr), addr)]
5667 else throw("Invalid func parameters")
5768 }
5869
5970
6071
6172 @Callable(i)
6273 func createItem (title,price,data) = {
6374 let supplierAddress = toBase58String(i.caller.bytes)
6475 let item = getItemHash(supplierAddress, title)
6576 if ((0 >= price))
6677 then throw("Price can not be negative value or zero")
6778 else if ((getValueItemSupplier(item) != NONE))
6879 then throw("Item already exists")
6980 else [StringEntry(getItemSupplierKey(item), supplierAddress), IntegerEntry(getItemPriceKey(item), price), IntegerEntry(getItemSoldOutKey(item), 0), StringEntry(getItemDataKey(item), data)]
7081 }
7182
7283
7384
7485 @Callable(i)
7586 func purchase (title,supplier,data) = if ((size(i.payments) > 0))
7687 then {
7788 let payment = i.payments[0]
7889 if (if (isDefined(title))
7990 then isDefined(supplier)
8091 else false)
8192 then if (isDefined(payment.assetId))
8293 then throw("Only should pay in waves")
8394 else {
8495 let customerAddr = toBase58String(i.caller.bytes)
8596 let item = getItemHash(supplier, title)
86- let soldout = match getInteger(this, getItemSoldOutKey(item)) {
87- case t: Int =>
88- t
89- case _ =>
90- 2
91- }
9297 let price = match getInteger(this, getItemPriceKey(item)) {
9398 case p: Int =>
9499 p
95100 case _ =>
96101 0
97102 }
98- if ((soldout != 0))
103+ if ((getSoldOutValue(item) != 0))
99104 then throw("Item is already sold")
100105 else if ((payment.amount > price))
101106 then throw("payment cant be higher than price")
102107 else if ((price > payment.amount))
103108 then throw("payment cant be lower than price")
104109 else [DeleteEntry(getItemSupplierKey(item)), DeleteEntry(getItemPriceKey(item)), DeleteEntry(getItemDataKey(item)), DeleteEntry(getItemSoldOutKey(item)), StringEntry(getItemSupplierKey(item), customerAddr), IntegerEntry(getItemPriceKey(item), price), IntegerEntry(getItemSoldOutKey(item), 1), StringEntry(getItemDataKey(item), data), StringEntry(((((("status:purchase_" + item) + "_supplier_") + supplier) + "_customer_") + customerAddr), "confirmed"), IntegerEntry(((((("price:purchase_" + item) + "_supplier_") + supplier) + "_customer_") + customerAddr), price)]
105110 }
106111 else throw("Coupon title and supplier address should be present")
107112 }
108113 else throw("Please attach payment")
109114
110115
111116
112117 @Callable(i)
113118 func deleteItem (title) = {
114119 let supplierAddress = toBase58String(i.caller.bytes)
115120 let item = getItemHash(supplierAddress, title)
116121 if ((getValueItemSupplier(item) != NONE))
117122 then [DeleteEntry(getItemSupplierKey(item)), DeleteEntry(getItemPriceKey(item)), DeleteEntry(getItemDataKey(item)), DeleteEntry(getItemSoldOutKey(item))]
118123 else throw("No such item present")
119124 }
120125
121126
122127
123128 @Callable(i)
124129 func deleteEntry (key) = if ((i.callerPublicKey == ericPubKey))
125130 then [DeleteEntry(key)]
126131 else throw("Only Eric can delete entries")
127132
128133
129134
130135 @Callable(i)
131136 func unregister (type) = if (if ((type == supplier))
132137 then true
133138 else (type == customer))
134139 then {
135140 let addr = toBase58String(i.caller.bytes)
136141 [DeleteEntry(getNameKey(type, addr))]
137142 }
138143 else throw("Illegal argument")
139144
140145
141146 @Verifier(tx)
142147 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
143148

github/deemru/w8io/873ac7e 
55.29 ms