tx · Gh9DnFGJMPJWZNTEPZkSv6vHUeizPByYTaL1VGUPf7vN

3MyWHuLZ53k4uJf2hFWdfU7deDB72k3d7ML:  -0.01400000 Waves

2021.09.27 09:04 [1720984] smart account 3MyWHuLZ53k4uJf2hFWdfU7deDB72k3d7ML > SELF 0.00000000 Waves

{ "type": 13, "id": "Gh9DnFGJMPJWZNTEPZkSv6vHUeizPByYTaL1VGUPf7vN", "fee": 1400000, "feeAssetId": null, "timestamp": 1632722683215, "version": 2, "chainId": 84, "sender": "3MyWHuLZ53k4uJf2hFWdfU7deDB72k3d7ML", "senderPublicKey": "C8GZDzgnMpGcVUsLBNM8qeaJQG5RkC3h994W9iru5TS3", "proofs": [ "2B1yuvJ1p4pJKCZPGaVrG4jGkeHg2ysRurT4JiojZY5owTYJ1wjM9sMTGz2Sz9A8YvFuHDHH2anxMcxDPTi4wb5H" ], "script": "base64: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", "height": 1720984, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: F586ysKWbbeQESGoYqzEfo8pU494Td33bbSqicsMAJQU Next: 3zFQVJid9UtE11vn8c87rsNWmRKsW238FGsTb4oURCSN Diff:
OldNewDifferences
2828 }
2929
3030
31-func calcWavesNeeded (totalPunksSupply) = 1
31+func calcWavesNeeded (totalPunksSupply) = 100000000
3232
3333
3434 @Callable(i)
6060 let name = ("TestPunk #" + punkId)
6161 let asset = Issue(name, name, 1, 0, false, unit, 0)
6262 let assetId = calculateAssetId(asset)
63-[IntegerEntry("punks_supply", (totalPunksSupply + 1)), StringEntry("available_punks", makeString(removeByIndex(listAvailablePunks, rand), ",")), StringEntry(getPunkIDKey(punkId), toBase58String(assetId)), StringEntry(toBase58String(assetId), getPunkIDKey(punkId))]
63+[IntegerEntry("punks_supply", (totalPunksSupply + 1)), StringEntry("available_punks", makeString(removeByIndex(listAvailablePunks, rand), ",")), StringEntry(getPunkIDKey(punkId), toBase58String(assetId)), StringEntry(toBase58String(assetId), getPunkIDKey(punkId)), ScriptTransfer(i.caller, 1, assetId)]
6464 }
6565 }
6666
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let maxSupply = 10
55
66 func getPunkIDKey (id) = ("punk_" + id)
77
88
99 func tryGetInteger (key) = {
1010 let val = match getInteger(this, key) {
1111 case b: Int =>
1212 b
1313 case _ =>
1414 0
1515 }
1616 val
1717 }
1818
1919
2020 func tryGetString (key) = {
2121 let val = match getString(this, key) {
2222 case b: String =>
2323 b
2424 case _ =>
2525 ""
2626 }
2727 val
2828 }
2929
3030
31-func calcWavesNeeded (totalPunksSupply) = 1
31+func calcWavesNeeded (totalPunksSupply) = 100000000
3232
3333
3434 @Callable(i)
3535 func mint () = {
3636 let totalPunksSupply = tryGetInteger("punks_supply")
3737 let availablePunks = tryGetString("available_punks")
3838 let wavesNeeded = calcWavesNeeded(totalPunksSupply)
3939 let firstPayment = value(i.payments[0])
4040 let firstPaymentBool = match firstPayment.assetId {
4141 case t: ByteVector =>
4242 true
4343 case w: Unit =>
4444 false
4545 case _ =>
4646 throw("Match error")
4747 }
4848 if ((totalPunksSupply == maxSupply))
4949 then throw("All punks are minted")
5050 else if ((availablePunks == ""))
5151 then throw("No punks available")
5252 else if (firstPaymentBool)
5353 then throw("Payment must be in Waves tokens only")
5454 else if ((wavesNeeded > firstPayment.amount))
5555 then throw("Insufficient funds")
5656 else {
5757 let listAvailablePunks = split(availablePunks, ",")
5858 let rand = 0
5959 let punkId = listAvailablePunks[rand]
6060 let name = ("TestPunk #" + punkId)
6161 let asset = Issue(name, name, 1, 0, false, unit, 0)
6262 let assetId = calculateAssetId(asset)
63-[IntegerEntry("punks_supply", (totalPunksSupply + 1)), StringEntry("available_punks", makeString(removeByIndex(listAvailablePunks, rand), ",")), StringEntry(getPunkIDKey(punkId), toBase58String(assetId)), StringEntry(toBase58String(assetId), getPunkIDKey(punkId))]
63+[IntegerEntry("punks_supply", (totalPunksSupply + 1)), StringEntry("available_punks", makeString(removeByIndex(listAvailablePunks, rand), ",")), StringEntry(getPunkIDKey(punkId), toBase58String(assetId)), StringEntry(toBase58String(assetId), getPunkIDKey(punkId)), ScriptTransfer(i.caller, 1, assetId)]
6464 }
6565 }
6666
6767
6868 @Verifier(tx)
6969 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
7070

github/deemru/w8io/873ac7e 
20.96 ms