tx · 3G8tkCxjbaqe5da2YmN3bFbn42ubzcExJzDc4no37HBb 3N9vjdhSVkpJcoa2UAVt4BWxTfZeV71cnan: -0.01000000 Waves 2022.06.29 17:16 [2117842] smart account 3N9vjdhSVkpJcoa2UAVt4BWxTfZeV71cnan > SELF 0.00000000 Waves
{ "type": 13, "id": "3G8tkCxjbaqe5da2YmN3bFbn42ubzcExJzDc4no37HBb", "fee": 1000000, "feeAssetId": null, "timestamp": 1656512282220, "version": 2, "chainId": 84, "sender": "3N9vjdhSVkpJcoa2UAVt4BWxTfZeV71cnan", "senderPublicKey": "DFMD24xWTnBgJR3y8Ls92YYq2Zmvx1rbEmDu18bd6nEe", "proofs": [ "3oWLZwVW9PWr1CFZ6YNvRiLK2pagh47ByLdunF1MMDpm3ckPgJ7WvypDkL9suvwiCWewJNCN2VRrGBGmMGqGeZW6" ], "script": "base64:AAIFAAAAAAAAABwIAhIGCgQICAEBEgASAwoBARIDCgEBEgASABIAAAAADQAAAAAQa0hhc2hyYXRlVG9rZW5JZAIAAAAQaGFzaHJhdGVfYXNzZXRJZAAAAAAPa2V5X3RpY2tldFByaWNlAgAAAAx0aWNrZXRfcHJpY2UAAAAAGmtleV9wcmVzYWxlU3RhcnRzVGltZXN0YW1wAgAAABd0aW1lc3RhbXBfcHJlc2FsZV9zdGFydAAAAAAYa2V5X3ByZXNhbGVFbmRzVGltZXN0YW1wAgAAABV0aW1lc3RhbXBfcHJlc2FsZV9lbmQAAAAAGmtleV9yZXN1bHRzUmV2ZWFsVGltZXN0YW1wAgAAABh0aW1lc3RhbXBfcHJlc2FsZV9yZXN1bHQAAAAACmtleV9zdGF0dXMCAAAABnN0YXR1cwAAAAAKa1RvdGFsU29sZAIAAAAMdGlja2V0c19zb2xkAAAAAB1zdWZmaXhfVGlja2V0c1B1cmNoYXNlZEJ5VXNlcgIAAAAPX3B1cmNoYXNlZFRvdGFsAAAAAA9oYXNocmF0ZVRva2VuSWQJAQAAABFAZXh0ck5hdGl2ZSgxMDUyKQAAAAIFAAAABHRoaXMFAAAAEGtIYXNocmF0ZVRva2VuSWQAAAAAC3RpY2tldFByaWNlCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwUAAAAPa2V5X3RpY2tldFByaWNlAgAAAAAAAAAACXRvdGFsU29sZAkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzBQAAAAprVG90YWxTb2xkAAAAAAAAAAAAAQAAABB0aWNrZXRzUHVyY2hhc2VkAAAAAQAAAAR1c2VyCQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkABCUAAAABBQAAAAR1c2VyBQAAAB1zdWZmaXhfVGlja2V0c1B1cmNoYXNlZEJ5VXNlcgAAAAAAAAAAAAAAAAAGdXNkbklkAQAAACBdh85U6HrEIwBf736JUnYaj0XJ+6O2VRITQn8t5Sq8ZAAAAAcAAAADaW52AQAAAAhpbml0REFwcAAAAAQAAAAIcmVkc21iSWQAAAAMcHJpY2VBc3NldElkAAAAC3RpY2tl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", "height": 2117842, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: 7GekvKgUAcvxkb2rMxzca3yj31n2aGNLvhndPgPjpaza Full:
Old | New | Differences | |
---|---|---|---|
1 | - | # no script | |
1 | + | {-# STDLIB_VERSION 5 #-} | |
2 | + | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | + | {-# CONTENT_TYPE DAPP #-} | |
4 | + | let kHashrateTokenId = "hashrate_assetId" | |
5 | + | ||
6 | + | let key_ticketPrice = "ticket_price" | |
7 | + | ||
8 | + | let key_presaleStartsTimestamp = "timestamp_presale_start" | |
9 | + | ||
10 | + | let key_presaleEndsTimestamp = "timestamp_presale_end" | |
11 | + | ||
12 | + | let key_resultsRevealTimestamp = "timestamp_presale_result" | |
13 | + | ||
14 | + | let key_status = "status" | |
15 | + | ||
16 | + | let kTotalSold = "tickets_sold" | |
17 | + | ||
18 | + | let suffix_TicketsPurchasedByUser = "_purchasedTotal" | |
19 | + | ||
20 | + | let hashrateTokenId = getBinaryValue(this, kHashrateTokenId) | |
21 | + | ||
22 | + | let ticketPrice = valueOrErrorMessage(getInteger(this, key_ticketPrice), "") | |
23 | + | ||
24 | + | let totalSold = valueOrElse(getInteger(this, kTotalSold), 0) | |
25 | + | ||
26 | + | func ticketsPurchased (user) = valueOrElse(getInteger(this, (toString(user) + suffix_TicketsPurchasedByUser)), 0) | |
27 | + | ||
28 | + | ||
29 | + | let usdnId = base58'7J72Mh14128B14nXKWdydNf8gm95uDdzS1tzd7SWiHHm' | |
30 | + | ||
31 | + | @Callable(inv) | |
32 | + | func initDApp (redsmbId,priceAssetId,ticketPrice,equality) = { | |
33 | + | let pmt = if ((size(inv.payments) == 1)) | |
34 | + | then inv.payments[0] | |
35 | + | else throw("") | |
36 | + | let redsmb = valueOrErrorMessage(assetInfo(valueOrErrorMessage(fromBase58String(redsmbId), "")), "").id | |
37 | + | let priceAsset = valueOrErrorMessage(assetInfo(valueOrErrorMessage(fromBase58String(priceAssetId), "")), "").id | |
38 | + | let pr = if ((ticketPrice > 0)) | |
39 | + | then ticketPrice | |
40 | + | else throw("") | |
41 | + | let eq = if ((equality > 0)) | |
42 | + | then equality | |
43 | + | else throw("") | |
44 | + | [BinaryEntry(kHashrateTokenId, redsmb)] | |
45 | + | } | |
46 | + | ||
47 | + | ||
48 | + | ||
49 | + | @Callable(inv) | |
50 | + | func startSale () = nil | |
51 | + | ||
52 | + | ||
53 | + | ||
54 | + | @Callable(inv) | |
55 | + | func buyTicket (ticketsAmount) = { | |
56 | + | let pmt = inv.payments[0] | |
57 | + | if ((0 >= ticketsAmount)) | |
58 | + | then throw("amount must be positive") | |
59 | + | else if ((size(inv.payments) != 1)) | |
60 | + | then throw("1 payment required") | |
61 | + | else if (if (!(isDefined(pmt.assetId))) | |
62 | + | then true | |
63 | + | else (value(pmt.assetId) != usdnId)) | |
64 | + | then throw("only usdn") | |
65 | + | else if ((0 >= pmt.amount)) | |
66 | + | then throw("payment must be positive") | |
67 | + | else if (((ticketsAmount * ticketPrice) != pmt.amount)) | |
68 | + | then throw("payment amount must be accurate according to the price") | |
69 | + | else [IntegerEntry(kTotalSold, (totalSold + ticketsAmount)), IntegerEntry((toString(inv.caller) + suffix_TicketsPurchasedByUser), (ticketsPurchased(inv.caller) + ticketsAmount))] | |
70 | + | } | |
71 | + | ||
72 | + | ||
73 | + | ||
74 | + | @Callable(inv) | |
75 | + | func buyTicketWithFreeze (freezeType) = nil | |
76 | + | ||
77 | + | ||
78 | + | ||
79 | + | @Callable(inv) | |
80 | + | func finalize () = nil | |
81 | + | ||
82 | + | ||
83 | + | ||
84 | + | @Callable(inv) | |
85 | + | func claim () = nil | |
86 | + | ||
87 | + | ||
88 | + | ||
89 | + | @Callable(inv) | |
90 | + | func claimFrozen () = nil | |
91 | + | ||
92 | + |
github/deemru/w8io/169f3d6 22.38 ms ◑![]()