tx · 98SUuz92Sbre8p9SYqbQKj47ETg885eFnJVpXA3evHpx

3Muxd5JEAQz655DDi2yiZxSQ63jVJJHrQyV:  -0.01400000 Waves

2022.02.04 04:08 [1908186] smart account 3Muxd5JEAQz655DDi2yiZxSQ63jVJJHrQyV > SELF 0.00000000 Waves

{ "type": 13, "id": "98SUuz92Sbre8p9SYqbQKj47ETg885eFnJVpXA3evHpx", "fee": 1400000, "feeAssetId": null, "timestamp": 1643936931758, "version": 2, "chainId": 84, "sender": "3Muxd5JEAQz655DDi2yiZxSQ63jVJJHrQyV", "senderPublicKey": "7ycxALbgfzht9z36iWCgRauBfWzQGSgkc3HMwu7wDwNX", "proofs": [ "3X8YEZLfSjyA7KEYrmKAEFbFvEuEC8PwKuhRQp7oWWXc1Mvyu6YNHqdWXwgJVqJ7xCbzKjrJQaUqHd6dtqFZ7rBn" ], "script": "base64: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", "height": 1908186, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 9vpYzPjnGNAg3H8CYsma9Bm47BbJPYVgq8YwgBu9aTa8 Next: C5UizKVgW4cvyLryLFKz7PJTsR3ccCmHZs2T5pkr82ar Diff:
OldNewDifferences
4646
4747 func getSoldOutValue (item) = {
4848 let key = getItemSoldOutKey(item)
49- if ((1 == 1))
50- then throw(("Soldout key: " + key))
51- else match getInteger(this, key) {
52- case a: Int =>
53- a
54- case _ =>
55- 2
56- }
49+ match getInteger(this, key) {
50+ case a: Int =>
51+ a
52+ case _ =>
53+ 2
54+ }
5755 }
5856
5957
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
4747 func getSoldOutValue (item) = {
4848 let key = getItemSoldOutKey(item)
49- if ((1 == 1))
50- then throw(("Soldout key: " + key))
51- else match getInteger(this, key) {
52- case a: Int =>
53- a
54- case _ =>
55- 2
56- }
49+ match getInteger(this, key) {
50+ case a: Int =>
51+ a
52+ case _ =>
53+ 2
54+ }
5755 }
5856
5957
6058 @Callable(i)
6159 func register (type) = {
6260 let addr = toBase58String(i.caller.bytes)
6361 if (if (isDefined(type))
6462 then if ((type == customer))
6563 then true
6664 else (type == supplier)
6765 else false)
6866 then [StringEntry(getNameKey(type, addr), addr)]
6967 else throw("Invalid func parameters")
7068 }
7169
7270
7371
7472 @Callable(i)
7573 func createItem (title,price,data) = {
7674 let supplierAddress = toBase58String(i.caller.bytes)
7775 let item = getItemHash(supplierAddress, title)
7876 if ((0 >= price))
7977 then throw("Price can not be negative value or zero")
8078 else if ((getValueItemSupplier(item) != NONE))
8179 then throw("Item already exists")
8280 else [StringEntry(getItemSupplierKey(item), supplierAddress), IntegerEntry(getItemPriceKey(item), price), IntegerEntry(getItemSoldOutKey(item), 0), StringEntry(getItemDataKey(item), data)]
8381 }
8482
8583
8684
8785 @Callable(i)
8886 func purchase (title,supplier,data) = if ((size(i.payments) > 0))
8987 then {
9088 let payment = i.payments[0]
9189 if (if (isDefined(title))
9290 then isDefined(supplier)
9391 else false)
9492 then if (isDefined(payment.assetId))
9593 then throw("Only should pay in waves")
9694 else {
9795 let customerAddr = toBase58String(i.caller.bytes)
9896 let item = getItemHash(supplier, title)
9997 let price = match getInteger(this, getItemPriceKey(item)) {
10098 case p: Int =>
10199 p
102100 case _ =>
103101 0
104102 }
105103 let soldout = getSoldOutValue(item)
106104 if ((soldout != 0))
107105 then throw(("Item is already sold, res: " + toString(soldout)))
108106 else if ((payment.amount > price))
109107 then throw("payment cant be higher than price")
110108 else if ((price > payment.amount))
111109 then throw("payment cant be lower than price")
112110 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)]
113111 }
114112 else throw("Coupon title and supplier address should be present")
115113 }
116114 else throw("Please attach payment")
117115
118116
119117
120118 @Callable(i)
121119 func deleteItem (title) = {
122120 let supplierAddress = toBase58String(i.caller.bytes)
123121 let item = getItemHash(supplierAddress, title)
124122 if ((getValueItemSupplier(item) != NONE))
125123 then [DeleteEntry(getItemSupplierKey(item)), DeleteEntry(getItemPriceKey(item)), DeleteEntry(getItemDataKey(item)), DeleteEntry(getItemSoldOutKey(item))]
126124 else throw("No such item present")
127125 }
128126
129127
130128
131129 @Callable(i)
132130 func deleteEntry (key) = if ((i.callerPublicKey == ericPubKey))
133131 then [DeleteEntry(key)]
134132 else throw("Only Eric can delete entries")
135133
136134
137135
138136 @Callable(i)
139137 func unregister (type) = if (if ((type == supplier))
140138 then true
141139 else (type == customer))
142140 then {
143141 let addr = toBase58String(i.caller.bytes)
144142 [DeleteEntry(getNameKey(type, addr))]
145143 }
146144 else throw("Illegal argument")
147145
148146
149147 @Verifier(tx)
150148 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
151149

github/deemru/w8io/c3f4982 
31.53 ms