tx · HPDKLUAukCvjbuc4QukyFrhN4bsWm9cTXpQvR8nZhQGf

3MovmZoJtqutkf49oGXHzABSMUQ7HU5Dcg7:  -0.01400000 Waves

2021.08.01 06:29 [1638720] smart account 3MovmZoJtqutkf49oGXHzABSMUQ7HU5Dcg7 > SELF 0.00000000 Waves

{ "type": 13, "id": "HPDKLUAukCvjbuc4QukyFrhN4bsWm9cTXpQvR8nZhQGf", "fee": 1400000, "feeAssetId": null, "timestamp": 1627788682065, "version": 2, "chainId": 84, "sender": "3MovmZoJtqutkf49oGXHzABSMUQ7HU5Dcg7", "senderPublicKey": "3tp5fNYyPi4jMnkf6s1k4kBqvJ7nm57SxzvLyi8RkxT2", "proofs": [ "3YJsnJsinnn2Pw5mQtdBdY9RmPrkNMbeYyWqDQSXRe8mxJ5B8RgxdfpL3yJFUPFT3VvayoGZxDX3o6B4uKcvQvyQ" ], "script": "base64:AAIEAAAAAAAABZsIAhIDCgEIEgYKBAgBCAESBwoFCAgBCAESAwoBCBIECgIICBIECgIICBIFCgMICAgaCgoCYTESBE5PTkUaDAoCYTISBlZPVEVSUxoMCgJhMxIGUVVPUlVNGg4KAmE0EghGRUFUVVJFRBoOCgJhNRIIREVMSVNURUQaDAoCYTYSBlZPVElORxoMCgJhNxIGUkVWRUFMGhQKAmE4Eg5nZXRTdHJpbmdCeUtleRoJCgJhORIDa2V5Gg0KAmIxEgckbWF0Y2gwGgcKAmIyEgFhGhUKAmIzEg9nZXRJbnRlZ2VyQnlLZXkaGwoCYjQSFWdldEtleVN1cHBsaWVyQWNjb3VudBoNCgJiNRIHYWNjb3VudBoYCgJiNhISZ2V0U3VwcGxpZXJBY2NvdW50GhAKAmI3EgpnZXRLZXlJdGVtGg4KAmI4EghzdXBwbGllchoLCgJiORIFdGl0bGUaEwoCYzESDXN1cHBsaWVyVGl0bGUaGAoCYzISEmdldEtleUl0ZW1TdXBwbGllchoKCgJjMxIEaXRlbRoVCgJjNBIPZ2V0S2V5SXRlbVRpdGxlGhUKAmM1Eg9nZXRLZXlJdGVtUHJpY2UaFAoCYzYSDmdldEtleUl0ZW1EYXRhGhoKAmM3EhRnZXRLZXlJdGVtRXhwaXJlRGF0ZRoSCgJjOBIMZ2V0S2V5Q29tbWl0GgoKAmM5EgR1c2VyGhgKAmQxEhJnZXRLZXlDb21taXRzQ291bnQaEgoCZDISDGdldEtleVJldmVhbBoWCgJkMxIQZ2V0S2V5SXRlbVN0YXR1cxoWCgJkNBIQZ2V0S2V5Vm90ZXNDb3VudBoKCgJkNRIEdm90ZRobCgJkNhIVZ2V0S2V5VXNlckl0ZW1Db3VudGVyGhsKAmQ3EhVnZXRLZXlCYWxhbmNlU3VwcGxpZXIaEgoCZDgSDGdldEtleUNvdXBvbhoNCgJkORIHYXNzZXRJZBoWCgJlMRIQZ2V0S2V5Q291cG9uSXRlbRoMCgJlMhIGY291cG9uGh0KAmUzEhdnZXRWYWx1ZUJhbGFuY2VTdXBwbGllchoYCgJlNBISc3VwcGxpZXJCYWxhbmNlS2V5Gh0KAmU1EhdnZXRWYWx1ZVVzZXJJdGVtQ291bnRlchoYCgJlNhISdXNlckl0ZW1Db3VudGVyS2V5GhcKAmU3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", "height": 1638720, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: EBxHbqxCYHq1EaFLeLrvufUsd9oDANDbCdcHVdsMDRJJ Next: G3u36WkzkW8TzfYbPCB1ifjQHk3hCyX7gy3Q8zTmiMVh Diff:
OldNewDifferences
219219 let supplierBalanceKey = getKeyBalanceSupplier(supplier)
220220 let newSupplierBalance = (getValueBalanceSupplier(supplier) + pmt.amount)
221221 let coupon = getKeyCoupon(assetId)
222-[IntegerEntry(userItemCounter, newValueUserItemCounter), IntegerEntry(supplierBalanceKey, newSupplierBalance), StringEntry(getKeyCouponItem(coupon), item)]
222+[IntegerEntry(userItemCounter, newValueUserItemCounter), IntegerEntry(supplierBalanceKey, newSupplierBalance), StringEntry(getKeyCouponItem(coupon), item), ScriptTransfer(i.caller, 1, fromBase58String(assetId))]
223223 }
224224 }
225225 }
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 4 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let NONE = "NONE"
55
66 let VOTERS = 3
77
88 let QUORUM = 2
99
1010 let FEATURED = "featured"
1111
1212 let DELISTED = "delisted"
1313
1414 let VOTING = "voting"
1515
1616 let REVEAL = "reveal"
1717
1818 func getStringByKey (key) = match getString(this, key) {
1919 case a: String =>
2020 a
2121 case _ =>
2222 NONE
2323 }
2424
2525
2626 func getIntegerByKey (key) = match getInteger(this, key) {
2727 case a: Int =>
2828 a
2929 case _ =>
3030 0
3131 }
3232
3333
3434 func getKeySupplierAccount (account) = (account + "_account")
3535
3636
3737 func getSupplierAccount (account) = getStringByKey(getKeySupplierAccount(account))
3838
3939
4040 func getKeyItem (supplier,title) = {
4141 let supplierTitle = (supplier + title)
4242 ("item_" + toBase58String(sha256(toBytes(supplierTitle))))
4343 }
4444
4545
4646 func getKeyItemSupplier (item) = (item + "_owner")
4747
4848
4949 func getKeyItemTitle (item) = (item + "_title")
5050
5151
5252 func getKeyItemPrice (item) = (item + "_price")
5353
5454
5555 func getKeyItemData (item) = (item + "_data")
5656
5757
5858 func getKeyItemExpireDate (item) = (item + "_expiredate")
5959
6060
6161 func getKeyCommit (item,user) = (((item + "_") + user) + "_commit")
6262
6363
6464 func getKeyCommitsCount (item) = (item + "_cmtcnt")
6565
6666
6767 func getKeyReveal (item,user) = (((item + "_") + user) + "_reveal")
6868
6969
7070 func getKeyItemStatus (item) = (item + "_status")
7171
7272
7373 func getKeyVotesCount (item,vote) = ((item + "_res:") + vote)
7474
7575
7676 func getKeyUserItemCounter (user,item) = (((item + "_") + user) + "_cnt")
7777
7878
7979 func getKeyBalanceSupplier (account) = (account + "_balance")
8080
8181
8282 func getKeyCoupon (assetId) = ("coupon_" + assetId)
8383
8484
8585 func getKeyCouponItem (coupon) = (coupon + "_item")
8686
8787
8888 func getValueBalanceSupplier (account) = {
8989 let supplierBalanceKey = getKeyBalanceSupplier(account)
9090 match getInteger(this, supplierBalanceKey) {
9191 case a: Int =>
9292 a
9393 case _ =>
9494 0
9595 }
9696 }
9797
9898
9999 func getValueUserItemCounter (user,item) = {
100100 let userItemCounterKey = getKeyUserItemCounter(user, item)
101101 match getInteger(this, userItemCounterKey) {
102102 case a: Int =>
103103 a
104104 case _ =>
105105 0
106106 }
107107 }
108108
109109
110110 func getValueItemPrice (item) = {
111111 let keyItemPrice = getKeyItemPrice(item)
112112 getIntegerValue(this, keyItemPrice)
113113 }
114114
115115
116116 func getValueItemSupplier (item) = getStringByKey(getKeyItemSupplier(item))
117117
118118
119119 func getValueItemExpireTime (item) = getIntegerByKey(getKeyItemExpireDate(item))
120120
121121
122122 func getValueCommit (item,user) = getStringByKey(getKeyCommit(item, user))
123123
124124
125125 func getValueCommitsCount (item) = getIntegerByKey(getKeyCommitsCount(item))
126126
127127
128128 func getValueReveal (item,user) = getStringByKey(getKeyReveal(item, user))
129129
130130
131131 func getValueItemStatus (item) = getStringByKey(getKeyItemStatus(item))
132132
133133
134134 func getValueVotesCount (item,vote) = getIntegerByKey(getKeyVotesCount(item, vote))
135135
136136
137137 @Callable(i)
138138 func registerSupplier (data) = {
139139 let supplier = toBase58String(i.caller.bytes)
140140 let account = getSupplierAccount(supplier)
141141 if ((account != NONE))
142142 then throw("This address has already registred as supplier")
143143 else [StringEntry(getKeySupplierAccount(supplier), data)]
144144 }
145145
146146
147147
148148 @Callable(i)
149149 func addItem (title,price,data,expire) = {
150150 let supplier = toBase58String(i.caller.bytes)
151151 let account = getSupplierAccount(supplier)
152152 let item = getKeyItem(supplier, title)
153153 if ((account == NONE))
154154 then throw("You should register as supplier to add an item")
155155 else if ((0 >= price))
156156 then throw("Purchase amount cannot be less than item price")
157157 else if ((getValueItemSupplier(item) != NONE))
158158 then throw("An item already exists")
159159 else [StringEntry(getKeyItemSupplier(item), supplier), StringEntry(getKeyItemTitle(item), title), IntegerEntry(getKeyItemPrice(item), price), StringEntry(getKeyItemData(item), data), IntegerEntry(getKeyItemExpireDate(item), expire)]
160160 }
161161
162162
163163
164164 @Callable(i)
165165 func updateItem (item,title,price,data,expire) = {
166166 let supplier = toBase58String(i.caller.bytes)
167167 let account = getSupplierAccount(supplier)
168168 let itemSupplier = getValueItemSupplier(item)
169169 if ((account == NONE))
170170 then throw("You should register as supplier to remove an item")
171171 else if (if ((item == NONE))
172172 then true
173173 else (supplier != itemSupplier))
174174 then throw(("You don't owned item " + item))
175175 else [StringEntry(getKeyItemTitle(item), title), IntegerEntry(getKeyItemPrice(item), price), StringEntry(getKeyItemData(item), data), IntegerEntry(getKeyItemExpireDate(item), expire)]
176176 }
177177
178178
179179
180180 @Callable(i)
181181 func removeItem (item) = {
182182 let supplier = toBase58String(i.caller.bytes)
183183 let account = getSupplierAccount(supplier)
184184 let itemSupplier = getValueItemSupplier(item)
185185 if ((account == NONE))
186186 then throw("You should register as supplier to remove an item")
187187 else if (if ((item == NONE))
188188 then true
189189 else (supplier != itemSupplier))
190190 then throw(("You don't owned item " + item))
191191 else [DeleteEntry(getKeyItemSupplier(item)), DeleteEntry(getKeyItemTitle(item)), DeleteEntry(getKeyItemPrice(item)), DeleteEntry(getKeyItemData(item)), DeleteEntry(getKeyItemExpireDate(item))]
192192 }
193193
194194
195195
196196 @Callable(i)
197197 func purchase (item,assetId) = {
198198 let pmt = i.payments[0]
199199 if (isDefined(pmt.assetId))
200200 then throw("You can buy tokens only with Waves tokens")
201201 else {
202202 let userAddress = toBase58String(i.caller.bytes)
203203 let price = getValueItemPrice(item)
204204 let supplier = getValueItemSupplier(item)
205205 let expire = getValueItemExpireTime(item)
206206 if (if ((expire > 0))
207207 then (lastBlock.timestamp >= expire)
208208 else false)
209209 then throw("Coupon expired")
210210 else if ((price > pmt.amount))
211211 then throw("Purchase amount cannot be less than item price")
212212 else if ((pmt.amount > price))
213213 then throw("Purchase amount cannot be higher than item price")
214214 else if ((supplier == NONE))
215215 then throw("Supplier does not exists")
216216 else {
217217 let userItemCounter = getKeyUserItemCounter(userAddress, item)
218218 let newValueUserItemCounter = (getValueUserItemCounter(userAddress, item) + 1)
219219 let supplierBalanceKey = getKeyBalanceSupplier(supplier)
220220 let newSupplierBalance = (getValueBalanceSupplier(supplier) + pmt.amount)
221221 let coupon = getKeyCoupon(assetId)
222-[IntegerEntry(userItemCounter, newValueUserItemCounter), IntegerEntry(supplierBalanceKey, newSupplierBalance), StringEntry(getKeyCouponItem(coupon), item)]
222+[IntegerEntry(userItemCounter, newValueUserItemCounter), IntegerEntry(supplierBalanceKey, newSupplierBalance), StringEntry(getKeyCouponItem(coupon), item), ScriptTransfer(i.caller, 1, fromBase58String(assetId))]
223223 }
224224 }
225225 }
226226
227227
228228
229229 @Callable(i)
230230 func voteCommit (item,hash) = {
231231 let user = toBase58String(i.caller.bytes)
232232 let commitsCount = getValueCommitsCount(item)
233233 let status = getValueItemStatus(item)
234234 if ((commitsCount >= VOTERS))
235235 then throw("Reached max number of voters")
236236 else if ((getValueCommit(item, user) != NONE))
237237 then throw("You voted already")
238238 else if ((getKeyItemSupplier(item) == NONE))
239239 then throw("Item does not exists")
240240 else if (if ((status != NONE))
241241 then (status != VOTING)
242242 else false)
243243 then throw("Voting is not active for this item now")
244244 else {
245245 let newStatus = if ((commitsCount == VOTERS))
246246 then REVEAL
247247 else VOTING
248248 [StringEntry(getKeyCommit(item, user), hash), IntegerEntry(getKeyCommitsCount(item), (commitsCount + 1)), StringEntry(getKeyItemStatus(item), newStatus)]
249249 }
250250 }
251251
252252
253253
254254 @Callable(i)
255255 func voteReveal (item,vote,salt) = {
256256 let user = toBase58String(i.caller.bytes)
257257 let status = getValueItemStatus(item)
258258 let newVotesCount = (getValueVotesCount(item, vote) + 1)
259259 let saltedVote = toBase58String(sha256(toBytes(((item + vote) + salt))))
260260 if ((saltedVote != getValueCommit(item, user)))
261261 then throw("Reveal data is not valid")
262262 else if ((VOTERS > getValueCommitsCount(item)))
263263 then throw("Max number of voters not reached")
264264 else if ((getValueReveal(item, user) != NONE))
265265 then throw("You voted already")
266266 else if (if ((status != VOTING))
267267 then (status != REVEAL)
268268 else false)
269269 then throw("Voting is not active for this item now")
270270 else if (if ((vote != FEATURED))
271271 then (vote != DELISTED)
272272 else false)
273273 then throw("Provided voting option is incorrect")
274274 else {
275275 let newStatus = if ((newVotesCount >= QUORUM))
276276 then vote
277277 else REVEAL
278278 [StringEntry(getKeyReveal(item, user), vote), IntegerEntry(getKeyVotesCount(item, user), newVotesCount), StringEntry(getKeyItemStatus(item), newStatus)]
279279 }
280280 }
281281
282282
283283 @Verifier(tx)
284284 func verify () = match tx {
285285 case t: SetScriptTransaction =>
286286 sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
287287 case t: IssueTransaction =>
288288 sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
289289 case t: TransferTransaction =>
290290 sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
291291 case _ =>
292292 false
293293 }
294294

github/deemru/w8io/169f3d6 
44.00 ms