tx · Hmgr9XkMnCHzUuWPAdfNXrirLeSJ4vAbwiVBniKV3u4G

3MyWHuLZ53k4uJf2hFWdfU7deDB72k3d7ML:  -0.01000000 Waves

2021.09.24 12:06 [1716848] smart account 3MyWHuLZ53k4uJf2hFWdfU7deDB72k3d7ML > SELF 0.00000000 Waves

{ "type": 13, "id": "Hmgr9XkMnCHzUuWPAdfNXrirLeSJ4vAbwiVBniKV3u4G", "fee": 1000000, "feeAssetId": null, "timestamp": 1632474449171, "version": 2, "chainId": 84, "sender": "3MyWHuLZ53k4uJf2hFWdfU7deDB72k3d7ML", "senderPublicKey": "C8GZDzgnMpGcVUsLBNM8qeaJQG5RkC3h994W9iru5TS3", "proofs": [ "3zcmjCv8EZde7cLSsQYf4QGxqd4rVgsodFREEigzhGmyD73WeeXkU8HVaRoGfM3atL4uuwgR1kzVt1nLsG1EN1jq" ], "script": "base64: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", "height": 1716848, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: 6xytRpwzDxTpkkgLjBVan8CbtbNdk1YAKnGXsUQnMcwH Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 5 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+let maxSupply = 10
5+
6+func getPunkIDKey (id) = ("punk_" + id)
7+
8+
9+func tryGetInteger (key) = {
10+ let val = match getInteger(this, key) {
11+ case b: Int =>
12+ b
13+ case _ =>
14+ 0
15+ }
16+ val
17+ }
18+
19+
20+func tryGetString (key) = {
21+ let val = match getString(this, key) {
22+ case b: String =>
23+ b
24+ case _ =>
25+ ""
26+ }
27+ val
28+ }
29+
30+
31+func calcWavesNeeded (totalPunksSupply) = 1
32+
33+
34+@Callable(i)
35+func mint () = {
36+ let totalPunksSupply = tryGetInteger("punks_supply")
37+ let availablePunks = tryGetString("available_punks")
38+ let wavesNeeded = calcWavesNeeded(totalPunksSupply)
39+ let firstPayment = value(i.payments[0])
40+ let firstPaymentBool = match firstPayment.assetId {
41+ case t: ByteVector =>
42+ false
43+ case _ =>
44+ true
45+ }
46+ if ((totalPunksSupply == maxSupply))
47+ then throw("All punks are minted")
48+ else if ((availablePunks == ""))
49+ then throw("No punks available")
50+ else if (firstPaymentBool)
51+ then throw("Payment must be in Waves tokens only")
52+ else if ((wavesNeeded > firstPayment.amount))
53+ then throw("Insufficient funds")
54+ else {
55+ let listAvailablePunks = split(availablePunks, ",")
56+ let rand = 0
57+ let punkId = listAvailablePunks[rand]
58+ let name = ("TestPunk #" + punkId)
59+ let asset = Issue(name, name, 1, 0, false, unit, 0)
60+ let assetId = calculateAssetId(asset)
61+[IntegerEntry("punks_supply", (totalPunksSupply + 1)), StringEntry("available_punks", makeString(removeByIndex(listAvailablePunks, rand), ",")), StringEntry(getPunkIDKey(punkId), toBase58String(assetId)), StringEntry(toBase58String(assetId), getPunkIDKey(punkId))]
62+ }
63+ }
64+
65+
66+@Verifier(tx)
67+func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
68+

github/deemru/w8io/169f3d6 
32.60 ms