tx · 576cyK2GGuxkAgZi5F8P78aX2wnkyf1ASVyz34ayhiES

3MxJx6npysQdoyyxLsCCb3Yg8fTeH3gEQQd:  -0.01100000 Waves

2023.12.10 06:54 [2880060] smart account 3MxJx6npysQdoyyxLsCCb3Yg8fTeH3gEQQd > SELF 0.00000000 Waves

{ "type": 13, "id": "576cyK2GGuxkAgZi5F8P78aX2wnkyf1ASVyz34ayhiES", "fee": 1100000, "feeAssetId": null, "timestamp": 1702180445612, "version": 2, "chainId": 84, "sender": "3MxJx6npysQdoyyxLsCCb3Yg8fTeH3gEQQd", "senderPublicKey": "EEhsp9Jd5MwVmYJMGAZJL3tTb5KcurTz8Aw7wksZuw3e", "proofs": [ "4YDA4MGDwo25qPCy4C8YZtynuBfu19X5oFZfLDTZgxtydJqqucZQxaKFDGRsmwB7vnmYKCrC1V4XJK97vBQrteG3" ], "script": "base64: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", "height": 2880060, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 49WRt7adAnCwahufxzZaRqU5cYcC6gbpw7CeybRXHGKc Next: DoYfbVnd18zL3fuDw7J6tTcexT4pxAD8WPNkF765HopW Diff:
OldNewDifferences
66 let acc2PubKey = base58'EEhsp9Jd5MwVmYJMGAZJL3tTb5KcurTz8Aw7wksZuw3e'
77
88 let acc3PubKey = base58'6SdykacJeMCbeNvVJY71gWMJeXt9ZT44X4KexwZxHEYz'
9+
10+let wEUR = base58'DYxtEoj6wasUX8ddENeh7igtcuAv1WG7BcgZVsmzvAGF'
911
1012 let NONE = "none"
1113
127129
128130
129131 @Callable(i)
132+func deposit () = {
133+ let pmt = extract(i.payment)
134+ if (isDefined(pmt.assetId))
135+ then throw("can hodl waves only at the moment")
136+ else {
137+ let currentKey = toBase58String(i.caller.bytes)
138+ let currentAmount = match getInteger(this, currentKey) {
139+ case a: Int =>
140+ a
141+ case _ =>
142+ 0
143+ }
144+ let wlStsCurr = match getString(this, ("wl_sts_" + currentKey)) {
145+ case a: String =>
146+ a
147+ case _ =>
148+ throw("User has not deen waitlisted")
149+ }
150+ let newAmount = (currentAmount + pmt.amount)
151+ WriteSet([DataEntry((BALANCE + currentKey), newAmount)])
152+ }
153+ }
154+
155+
156+
157+@Callable(i)
158+func depositEUR () = {
159+ let pmt = extract(i.payment)
160+ if ((pmt.assetId != wEUR))
161+ then throw("wEUR only please")
162+ else {
163+ let currentKey = toBase58String(i.caller.bytes)
164+ let currentAmount = match getInteger(this, currentKey) {
165+ case a: Int =>
166+ a
167+ case _ =>
168+ 0
169+ }
170+ let newAmount = (currentAmount + pmt.amount)
171+ WriteSet([DataEntry(currentKey, newAmount)])
172+ }
173+ }
174+
175+
176+
177+@Callable(i)
130178 func withdraw () = {
131179 let supplierAddress = toBase58String(i.caller.bytes)
132180 let balance = getValueBalanceSupplier(supplierAddress)
133181 if ((0 >= balance))
134182 then throw("insufficient balance")
135183 else ScriptResult(WriteSet([DataEntry(getKeyBalanceSupplier(supplierAddress), 0)]), TransferSet([ScriptTransfer(addressFromStringValue(supplierAddress), balance, unit)]))
184+ }
185+
186+
187+
188+@Callable(i)
189+func withdrawEUR (amount) = {
190+ let currentKey = toBase58String(i.caller.bytes)
191+ let currentAmount = match getInteger(this, currentKey) {
192+ case a: Int =>
193+ a
194+ case _ =>
195+ 0
196+ }
197+ let newAmount = (currentAmount - amount)
198+ if ((0 > amount))
199+ then throw("Can't withdraw negative balance")
200+ else if ((0 > newAmount))
201+ then throw("Not enough balance")
202+ else ScriptResult(WriteSet([DataEntry(currentKey, newAmount)]), TransferSet([ScriptTransfer(i.caller, amount, wEUR)]))
136203 }
137204
138205
173240
174241
175242 @Callable(i)
176-func voteReveal (item,vote,salt) = {
177- let user = toBase58String(i.caller.bytes)
178- let status = getValueItemStatus(item)
179- let newVoteCount = (getValueVoteCount(item, vote) + 1)
180- if ((toBase58String(sha256(toBytes((vote + salt)))) != getValueCommit(item, user)))
181- then throw("reveal data is not valid")
182- else if ((VOTERS > getValueCommitsCount(item)))
183- then throw("max num of voters hasn't reached yet")
184- else if ((getValueReveal(item, user) != NONE))
185- then throw("user has already participated")
186- else if (if ((status != VOTING))
187- then (status != REVEAL)
188- else false)
189- then throw("wrong status")
190- else if (if ((vote != FEATURED))
191- then (vote != DELISTED)
192- else false)
193- then throw("vote has finished")
194- else WriteSet([DataEntry(getKeyReveal(item, user), vote), DataEntry(getKeyVoteCount(item, vote), newVoteCount), DataEntry(getKeyItemStatus(item), if ((newVoteCount >= QUORUM))
195- then vote
196- else REVEAL)])
197- }
198-
199-
200-
201-@Callable(i)
202243 func x_purchase () = {
203244 let pmt = extract(i.payment)
204245 if (isDefined(pmt.assetId))
216257 else if ((pmt.amount > price))
217258 then throw("purchase amount cannot be higher than item price")
218259 else WriteSet([DataEntry(("status:purchase_item_A_customer_" + customerAddress), "confirmed"), DataEntry(("price:purchase_item_A_customer_" + customerAddress), price)])
219- }
220- }
221-
222-
223-
224-@Callable(i)
225-func deposit () = {
226- let pmt = extract(i.payment)
227- if (isDefined(pmt.assetId))
228- then throw("can hodl waves only at the moment")
229- else {
230- let currentKey = toBase58String(i.caller.bytes)
231- let currentAmount = match getInteger(this, currentKey) {
232- case a: Int =>
233- a
234- case _ =>
235- 0
236- }
237- let wlStsCurr = match getString(this, ("wl_sts_" + currentKey)) {
238- case a: String =>
239- a
240- case _ =>
241- throw("User has not deen waitlisted")
242- }
243- let newAmount = (currentAmount + pmt.amount)
244- WriteSet([DataEntry((BALANCE + currentKey), newAmount)])
245260 }
246261 }
247262
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let acc1PubKey = base58'FgdjGJ4tLFiavKEKf4WkWwkgvU8ARWP1WYZfmUrXo4CY'
55
66 let acc2PubKey = base58'EEhsp9Jd5MwVmYJMGAZJL3tTb5KcurTz8Aw7wksZuw3e'
77
88 let acc3PubKey = base58'6SdykacJeMCbeNvVJY71gWMJeXt9ZT44X4KexwZxHEYz'
9+
10+let wEUR = base58'DYxtEoj6wasUX8ddENeh7igtcuAv1WG7BcgZVsmzvAGF'
911
1012 let NONE = "none"
1113
1214 let BALANCE = "balance_"
1315
1416 let VOTERS = 3
1517
1618 let QUORUM = 2
1719
1820 let VOTING = "voting"
1921
2022 let REVEAL = "reveal"
2123
2224 let FEATURED = "featured"
2325
2426 let DELISTED = "delisted"
2527
2628 func getNumberByKey (key) = {
2729 let num = match getInteger(this, key) {
2830 case a: Int =>
2931 a
3032 case _ =>
3133 0
3234 }
3335 num
3436 }
3537
3638
3739 func getStrByKey (key) = {
3840 let str = match getString(this, key) {
3941 case a: String =>
4042 a
4143 case _ =>
4244 NONE
4345 }
4446 str
4547 }
4648
4749
4850 func getKeyItemPrice (item) = (item + "_price")
4951
5052
5153 func getValueItemPrice (item) = getNumberByKey(getKeyItemPrice(item))
5254
5355
5456 func getKeyUserItemCounter (user,item) = (((item + "_") + user) + "_cnt")
5557
5658
5759 func getValueUserItemCounter (user,item) = getNumberByKey(getKeyUserItemCounter(user, item))
5860
5961
6062 func getKeyItem (supplier,title) = ("item_" + toBase58String(sha256(toBytes((supplier + title)))))
6163
6264
6365 func getKeyItemData (item) = (item + "_data")
6466
6567
6668 func getKeyItemSupplier (item) = (item + "_owner")
6769
6870
6971 func getValueItemSupplier (item) = getStrByKey(getKeyItemSupplier(item))
7072
7173
7274 func getKeyBalanceSupplier (account) = (account + "_balance")
7375
7476
7577 func getValueBalanceSupplier (account) = getNumberByKey(getKeyBalanceSupplier(account))
7678
7779
7880 func getKeyCommit (item,user) = (((item + "_") + user) + "_commit")
7981
8082
8183 func getValueCommit (item,user) = getStrByKey(getKeyCommit(item, user))
8284
8385
8486 func getKeyCommitsCount (item) = (item + "_comcnt")
8587
8688
8789 func getValueCommitsCount (item) = getNumberByKey(getKeyCommitsCount(item))
8890
8991
9092 func getKeyReveal (item,user) = (((item + "_") + user) + "_reveal")
9193
9294
9395 func getValueReveal (item,user) = getStrByKey(getKeyReveal(item, user))
9496
9597
9698 func getKeyItemStatus (item) = (item + "_status")
9799
98100
99101 func getValueItemStatus (item) = getStrByKey(getKeyItemStatus(item))
100102
101103
102104 func getKeyVoteCount (item,vote) = ((item + "_res:") + vote)
103105
104106
105107 func getValueVoteCount (item,vote) = getNumberByKey(getKeyVoteCount(item, vote))
106108
107109
108110 @Callable(i)
109111 func purchase (item) = {
110112 let pmt = extract(i.payment)
111113 if (isDefined(pmt.assetId))
112114 then throw("WAVES tokens only at the moment")
113115 else {
114116 let userAddress = toBase58String(i.caller.bytes)
115117 let price = getValueItemPrice(item)
116118 let supplierAddrss = getValueItemSupplier(item)
117119 if ((price > pmt.amount))
118120 then throw("purchase amount cannot be less than item price")
119121 else if ((pmt.amount > price))
120122 then throw("purchase amount cannot be higher than item price")
121123 else if ((supplierAddrss == NONE))
122124 then throw("supplier does not exist")
123125 else WriteSet([DataEntry(getKeyUserItemCounter(userAddress, item), (getValueUserItemCounter(userAddress, item) + 1)), DataEntry(getKeyBalanceSupplier(supplierAddrss), (getValueBalanceSupplier(supplierAddrss) + pmt.amount))])
124126 }
125127 }
126128
127129
128130
129131 @Callable(i)
132+func deposit () = {
133+ let pmt = extract(i.payment)
134+ if (isDefined(pmt.assetId))
135+ then throw("can hodl waves only at the moment")
136+ else {
137+ let currentKey = toBase58String(i.caller.bytes)
138+ let currentAmount = match getInteger(this, currentKey) {
139+ case a: Int =>
140+ a
141+ case _ =>
142+ 0
143+ }
144+ let wlStsCurr = match getString(this, ("wl_sts_" + currentKey)) {
145+ case a: String =>
146+ a
147+ case _ =>
148+ throw("User has not deen waitlisted")
149+ }
150+ let newAmount = (currentAmount + pmt.amount)
151+ WriteSet([DataEntry((BALANCE + currentKey), newAmount)])
152+ }
153+ }
154+
155+
156+
157+@Callable(i)
158+func depositEUR () = {
159+ let pmt = extract(i.payment)
160+ if ((pmt.assetId != wEUR))
161+ then throw("wEUR only please")
162+ else {
163+ let currentKey = toBase58String(i.caller.bytes)
164+ let currentAmount = match getInteger(this, currentKey) {
165+ case a: Int =>
166+ a
167+ case _ =>
168+ 0
169+ }
170+ let newAmount = (currentAmount + pmt.amount)
171+ WriteSet([DataEntry(currentKey, newAmount)])
172+ }
173+ }
174+
175+
176+
177+@Callable(i)
130178 func withdraw () = {
131179 let supplierAddress = toBase58String(i.caller.bytes)
132180 let balance = getValueBalanceSupplier(supplierAddress)
133181 if ((0 >= balance))
134182 then throw("insufficient balance")
135183 else ScriptResult(WriteSet([DataEntry(getKeyBalanceSupplier(supplierAddress), 0)]), TransferSet([ScriptTransfer(addressFromStringValue(supplierAddress), balance, unit)]))
184+ }
185+
186+
187+
188+@Callable(i)
189+func withdrawEUR (amount) = {
190+ let currentKey = toBase58String(i.caller.bytes)
191+ let currentAmount = match getInteger(this, currentKey) {
192+ case a: Int =>
193+ a
194+ case _ =>
195+ 0
196+ }
197+ let newAmount = (currentAmount - amount)
198+ if ((0 > amount))
199+ then throw("Can't withdraw negative balance")
200+ else if ((0 > newAmount))
201+ then throw("Not enough balance")
202+ else ScriptResult(WriteSet([DataEntry(currentKey, newAmount)]), TransferSet([ScriptTransfer(i.caller, amount, wEUR)]))
136203 }
137204
138205
139206
140207 @Callable(i)
141208 func addItem (title,price,data) = {
142209 let supplierAddress = toBase58String(i.caller.bytes)
143210 let item = getKeyItem(supplierAddress, title)
144211 if ((0 >= price))
145212 then throw("purchase amount cannot be less than item price")
146213 else if ((getValueItemSupplier(item) != NONE))
147214 then throw("an item is already exist")
148215 else WriteSet([DataEntry(getKeyItemSupplier(item), supplierAddress), DataEntry(getKeyItemPrice(item), price), DataEntry(getKeyItemData(item), data)])
149216 }
150217
151218
152219
153220 @Callable(i)
154221 func voteCommit (item,hash) = {
155222 let user = toBase58String(i.caller.bytes)
156223 let commits = getValueCommitsCount(item)
157224 let status = getValueItemStatus(item)
158225 if ((commits >= VOTERS))
159226 then throw("reached max num of voters")
160227 else if ((getValueCommit(item, user) != NONE))
161228 then throw("user has already uch")
162229 else if ((getKeyItemSupplier(item) == NONE))
163230 then throw("item does not exist")
164231 else if (if ((status != NONE))
165232 then (status != VOTING)
166233 else false)
167234 then throw("voting is not possible")
168235 else WriteSet([DataEntry(getKeyCommit(item, user), hash), DataEntry(getKeyCommitsCount(item), (commits + 1)), DataEntry(getKeyItemStatus(item), if ((commits == VOTERS))
169236 then REVEAL
170237 else VOTING)])
171238 }
172239
173240
174241
175242 @Callable(i)
176-func voteReveal (item,vote,salt) = {
177- let user = toBase58String(i.caller.bytes)
178- let status = getValueItemStatus(item)
179- let newVoteCount = (getValueVoteCount(item, vote) + 1)
180- if ((toBase58String(sha256(toBytes((vote + salt)))) != getValueCommit(item, user)))
181- then throw("reveal data is not valid")
182- else if ((VOTERS > getValueCommitsCount(item)))
183- then throw("max num of voters hasn't reached yet")
184- else if ((getValueReveal(item, user) != NONE))
185- then throw("user has already participated")
186- else if (if ((status != VOTING))
187- then (status != REVEAL)
188- else false)
189- then throw("wrong status")
190- else if (if ((vote != FEATURED))
191- then (vote != DELISTED)
192- else false)
193- then throw("vote has finished")
194- else WriteSet([DataEntry(getKeyReveal(item, user), vote), DataEntry(getKeyVoteCount(item, vote), newVoteCount), DataEntry(getKeyItemStatus(item), if ((newVoteCount >= QUORUM))
195- then vote
196- else REVEAL)])
197- }
198-
199-
200-
201-@Callable(i)
202243 func x_purchase () = {
203244 let pmt = extract(i.payment)
204245 if (isDefined(pmt.assetId))
205246 then throw("can use WAVES only at the moment")
206247 else {
207248 let customerAddress = toBase58String(i.caller.bytes)
208249 let price = match getInteger(this, "item_A_coupon_price") {
209250 case a: Int =>
210251 a
211252 case _ =>
212253 0
213254 }
214255 if ((price > pmt.amount))
215256 then throw("purchase amount cannot be less than item price")
216257 else if ((pmt.amount > price))
217258 then throw("purchase amount cannot be higher than item price")
218259 else WriteSet([DataEntry(("status:purchase_item_A_customer_" + customerAddress), "confirmed"), DataEntry(("price:purchase_item_A_customer_" + customerAddress), price)])
219- }
220- }
221-
222-
223-
224-@Callable(i)
225-func deposit () = {
226- let pmt = extract(i.payment)
227- if (isDefined(pmt.assetId))
228- then throw("can hodl waves only at the moment")
229- else {
230- let currentKey = toBase58String(i.caller.bytes)
231- let currentAmount = match getInteger(this, currentKey) {
232- case a: Int =>
233- a
234- case _ =>
235- 0
236- }
237- let wlStsCurr = match getString(this, ("wl_sts_" + currentKey)) {
238- case a: String =>
239- a
240- case _ =>
241- throw("User has not deen waitlisted")
242- }
243- let newAmount = (currentAmount + pmt.amount)
244- WriteSet([DataEntry((BALANCE + currentKey), newAmount)])
245260 }
246261 }
247262
248263
249264
250265 @Callable(i)
251266 func x_withdraw (amount) = {
252267 let currentKey = toBase58String(i.caller.bytes)
253268 let currentAmount = match getInteger(this, (BALANCE + currentKey)) {
254269 case a: Int =>
255270 a
256271 case _ =>
257272 0
258273 }
259274 let newAmount = (currentAmount - amount)
260275 if ((0 > amount))
261276 then throw("Can't withdraw negative amount")
262277 else if ((0 > newAmount))
263278 then throw("Not enough balance")
264279 else ScriptResult(WriteSet([DataEntry((BALANCE + currentKey), newAmount)]), TransferSet([ScriptTransfer(i.caller, amount, unit)]))
265280 }
266281
267282
268283 @Verifier(tx)
269284 func verify () = {
270285 let acc1_1 = sigVerify(tx.bodyBytes, tx.proofs[0], acc1PubKey)
271286 let acc1_2 = sigVerify(tx.bodyBytes, tx.proofs[1], acc1PubKey)
272287 let acc1_3 = sigVerify(tx.bodyBytes, tx.proofs[2], acc1PubKey)
273288 let acc2_1 = sigVerify(tx.bodyBytes, tx.proofs[0], acc2PubKey)
274289 let acc2_2 = sigVerify(tx.bodyBytes, tx.proofs[1], acc2PubKey)
275290 let acc2_3 = sigVerify(tx.bodyBytes, tx.proofs[2], acc2PubKey)
276291 let acc3_1 = sigVerify(tx.bodyBytes, tx.proofs[0], acc3PubKey)
277292 let acc3_2 = sigVerify(tx.bodyBytes, tx.proofs[1], acc3PubKey)
278293 let acc3_3 = sigVerify(tx.bodyBytes, tx.proofs[2], acc3PubKey)
279294 let acc1acc2 = if (if (if (if (if (if (acc1_1)
280295 then acc2_2
281296 else false)
282297 then true
283298 else if (acc1_1)
284299 then acc2_3
285300 else false)
286301 then true
287302 else if (acc1_2)
288303 then acc2_1
289304 else false)
290305 then true
291306 else if (acc1_2)
292307 then acc2_3
293308 else false)
294309 then true
295310 else if (acc1_3)
296311 then acc2_1
297312 else false)
298313 then true
299314 else if (acc1_3)
300315 then acc2_2
301316 else false
302317 let acc1acc3 = if (if (if (if (if (if (acc1_1)
303318 then acc3_2
304319 else false)
305320 then true
306321 else if (acc1_1)
307322 then acc3_3
308323 else false)
309324 then true
310325 else if (acc1_2)
311326 then acc3_1
312327 else false)
313328 then true
314329 else if (acc1_2)
315330 then acc3_3
316331 else false)
317332 then true
318333 else if (acc1_3)
319334 then acc3_1
320335 else false)
321336 then true
322337 else if (acc1_3)
323338 then acc3_2
324339 else false
325340 let acc2acc3 = if (if (if (if (if (if (acc3_1)
326341 then acc2_2
327342 else false)
328343 then true
329344 else if (acc3_1)
330345 then acc2_3
331346 else false)
332347 then true
333348 else if (acc3_2)
334349 then acc2_1
335350 else false)
336351 then true
337352 else if (acc3_2)
338353 then acc2_3
339354 else false)
340355 then true
341356 else if (acc3_3)
342357 then acc2_1
343358 else false)
344359 then true
345360 else if (acc3_3)
346361 then acc2_2
347362 else false
348363 match tx {
349364 case d: SetScriptTransaction =>
350365 sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
351366 case d: DataTransaction =>
352367 true
353368 case d: TransferTransaction =>
354369 true
355370 case d: InvokeScriptTransaction =>
356371 true
357372 case d: IssueTransaction =>
358373 sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
359374 case d: ReissueTransaction =>
360375 sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
361376 case d: BurnTransaction =>
362377 sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
363378 case _ =>
364379 false
365380 }
366381 }
367382

github/deemru/w8io/6500d08 
54.58 ms