tx · GJy9waCBHW88LGh65sL9VuM3dDGhZ3bY3tccm6tqweR2

3P8LcmWrr9SFrxwheZQENov5fPHEWtiwroN:  -0.00800000 Waves

2022.08.22 15:35 [3261167] smart account 3P8LcmWrr9SFrxwheZQENov5fPHEWtiwroN > SELF 0.00000000 Waves

{ "type": 13, "id": "GJy9waCBHW88LGh65sL9VuM3dDGhZ3bY3tccm6tqweR2", "fee": 800000, "feeAssetId": null, "timestamp": 1661171752196, "version": 2, "chainId": 87, "sender": "3P8LcmWrr9SFrxwheZQENov5fPHEWtiwroN", "senderPublicKey": "ZEHv2auiMPiEJeZ2hEuVfbScRWWWjzG8DyrzbdGLeWc", "proofs": [ "Jz3ru5eoGuejKSAhcodYmK8PksSrDaKa2zsUhuycLwtPZE2Cygge9BrZ57MkizuaeZdqYhTLbvqndzJAMjU9NG3" ], "script": "base64:AAIFAAAAAAAAAAQIAhIAAAAACwAAAAAJbWF4U3VwcGx5AAAAAAAAAAPoAAAAAAV3YXZlcwAAAAAABfXhAAEAAAAMZ2V0UHVua0lES2V5AAAAAQAAAAJpZAkAASwAAAACAgAAAAVwdW5rXwUAAAACaWQBAAAADXRyeUdldEludGVnZXIAAAABAAAAA2tleQQAAAADdmFsBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFiBQAAAAckbWF0Y2gwBQAAAAFiAAAAAAAAAAAABQAAAAN2YWwBAAAADXRyeUdldEJvb2xlYW4AAAABAAAAA2tleQQAAAADdmFsBAAAAAckbWF0Y2gwCQAEGwAAAAIFAAAABHRoaXMFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAHQm9vbGVhbgQAAAABYgUAAAAHJG1hdGNoMAUAAAABYgcFAAAAA3ZhbAEAAAAMdHJ5R2V0U3RyaW5nAAAAAQAAAANrZXkEAAAAA3ZhbAQAAAAHJG1hdGNoMAkABB0AAAACBQAAAAR0aGlzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABYgUAAAAHJG1hdGNoMAUAAAABYgIAAAAABQAAAAN2YWwBAAAABmdldFVSTAAAAAEAAAACaWQDCQEAAAAPY29udGFpbnNFbGVtZW50AAAAAgkABLUAAAACCQEAAAAMdHJ5R2V0U3RyaW5nAAAAAQIAAAAIZ2lmX3B1bmsCAAAAASwFAAAAAmlkCQABLAAAAAIJAAEsAAAAAgIAAAAkaHR0cHM6Ly9teXB1bmtzLndhdmVzcHVua3MuY29tL21hZC9tBQAAAAJpZAIAAAAELmdpZgkAASwAAAACCQABLAAAAAICAAAAJGh0dHBzOi8vbXlwdW5rcy53YXZlc3B1bmtzLmNvbS9tYWQvbQUAAAACaWQCAAAABC5wbmcBAAAAC2dldFR5cGVQdW5rAAAAAQAAAAJpZAQAAAAFaWRJTlQEAAAAByRtYXRjaDAJAAS2AAAAAQUAAAACaWQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABaQUAAAAHJG1hdGNoMAUAAAABaQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAEVW5pdAQAAAABaQUAAAAHJG1hdGNoMAAAAAAAAAAAAAkAAAIAAAABAgAAAAtNYXRjaCBlcnJvcgMJAQAAAA9jb250YWluc0VsZW1lbnQAAAACCQAEtQAAAAIJAQAAAAx0cnlHZXRTdHJpbmcAAAABAgAAAAhnaWZfcHVuawIAAAABLAkAAaQAAAABBQAAAAVpZElOVAIAAAAKdWx0cmEtcmFyZQMJAABnAAAAAgAAAAAAAAAAHQUAAAAFaWRJTlQCAAAABHJhcmUCAAAABnVuaXF1ZQEAAAAPZ2V0UmFuZG9tTnVtYmVyAAAABAAAAAh2YXJpYW50cwAAAAR0eElkAAAAC2hlaWdodEJsb2NrAAAABm9mZnNldAQAAAAPcmFuZG9tU2VlZEJsb2NrCQEAAAAFdmFsdWUAAAABCQAD7QAAAAEJAABlAAAAAgUAAAALaGVpZ2h0QmxvY2sAAAAAAAAAAAEEAAAACnJhbmRvbUhhc2gJAAtUAAAAAQkAAMsAAAACBQAAAAR0eElkCQEAAAAFdmFsdWUAAAABCAUAAAAPcmFuZG9tU2VlZEJsb2NrAAAAA3ZyZgkAAGoAAAACCQAEsgAAAAIFAAAACnJhbmRvbUhhc2gFAAAABm9mZnNldAUAAAAIdmFyaWFudHMBAAAAD2NhbGNXYXZlc05lZWRlZAAAAAAJAABoAAAAAgUAAAAFd2F2ZXMAAAAAAAAAAAYBAAAABV9taW50AAAAAwAAAAFpAAAAEHRvdGFsUHVua3NTdXBwbHkAAAAOYXZhaWxhYmxlUHVua3MEAAAAEmxpc3RBdmFpbGFibGVQdW5rcwkABLUAAAACBQAAAA5hdmFpbGFibGVQdW5rcwIAAAABLAQAAAAEcmFuZAkBAAAAD2dldFJhbmRvbU51bWJlcgAAAAQJAABlAAAAAgUAAAAJbWF4U3VwcGx5BQAAABB0b3RhbFB1bmtzU3VwcGx5CAUAAAABaQAAAA10cmFuc2FjdGlvbklkBQAAAAZoZWlnaHQAAAAAAAAAAAAEAAAABnB1bmtJZAkAAZEAAAACBQAAABJsaXN0QXZhaWxhYmxlUHVua3MFAAAABHJhbmQEAAAABG5hbWUJAAEsAAAAAgIAAAAJTWFkUHVuayAjBQAAAAZwdW5rSWQEAAAABG1ldGEJAQAAAAx0cnlHZXRTdHJpbmcAAAABAgAAABZjb2xsZWN0aW9uX2Rlc2NyaXB0aW9uBAAAAAVhc3NldAkABEMAAAAHBQAAAARuYW1lBQAAAARtZXRhAAAAAAAAAAABAAAAAAAAAAAABwUAAAAEdW5pdAUAAAAGaGVpZ2h0BAAAAAdhc3NldElkCQAEOAAAAAEFAAAABWFzc2V0BAAAAAJ0eAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAMcHVua3Nfc3VwcGx5CQAAZAAAAAIFAAAAEHRvdGFsUHVua3NTdXBwbHkAAAAAAAAAAAEJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgIAAAAPYXZhaWxhYmxlX3B1bmtzCQAEuQAAAAIJAARRAAAAAgUAAAASbGlzdEF2YWlsYWJsZVB1bmtzBQAAAARyYW5kAgAAAAEsCQAETAAAAAIFAAAABWFzc2V0CQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAAAxnZXRQdW5rSURLZXkAAAABBQAAAAZwdW5rSWQJAAJYAAAAAQUAAAAHYXNzZXRJZAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAIJAAJYAAAAAQUAAAAHYXNzZXRJZAIAAAADX2lkCQEAAAAMZ2V0UHVua0lES2V5AAAAAQUAAAAGcHVua0lkCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgkAAlgAAAABBQAAAAdhc3NldElkAgAAAAVfdHlwZQkBAAAAC2dldFR5cGVQdW5rAAAAAQUAAAAGcHVua0lkCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgkAAlgAAAABBQAAAAdhc3NldElkAgAAAARfdXJsCQEAAAAGZ2V0VVJMAAAAAQUAAAAGcHVua0lkCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgkAAlgAAAABBQAAAAdhc3NldElkAgAAAAlfZnJhY3Rpb24JAQAAAAx0cnlHZXRTdHJpbmcAAAABAgAAAAhmcmFjdGlvbgkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIAAAAAAAAAAAEFAAAAB2Fzc2V0SWQFAAAAA25pbAUAAAACdHgAAAABAAAAAWkBAAAABG1pbnQAAAAABAAAABB0b3RhbFB1bmtzU3VwcGx5CQEAAAANdHJ5R2V0SW50ZWdlcgAAAAECAAAADHB1bmtzX3N1cHBseQQAAAAOYXZhaWxhYmxlUHVua3MJAQAAAAx0cnlHZXRTdHJpbmcAAAABAgAAAA9hdmFpbGFibGVfcHVua3MEAAAADnByZU1pbnRBZGRyZXNzCQAEtQAAAAIJAQAAAAx0cnlHZXRTdHJpbmcAAAABAgAAAA9wcmVtaW50X2FkZHJlc3MCAAAAASwEAAAACXN0YXJ0TWludAkBAAAADXRyeUdldEludGVnZXIAAAABAgAAAApzdGFydF9taW50BAAAAAt3YXZlc05lZWRlZAkBAAAAD2NhbGNXYXZlc05lZWRlZAAAAAAEAAAADGZpcnN0UGF5bWVudAkBAAAABXZhbHVlAAAAAQkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAQAAAAQZmlyc3RQYXltZW50Qm9vbAQAAAAHJG1hdGNoMAgFAAAADGZpcnN0UGF5bWVudAAAAAdhc3NldElkAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAApCeXRlVmVjdG9yBAAAAAF0BQAAAAckbWF0Y2gwBgMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAEVW5pdAQAAAABdwUAAAAHJG1hdGNoMAcJAAACAAAAAQIAAAALTWF0Y2ggZXJyb3IDCQAAAAAAAAIFAAAAEHRvdGFsUHVua3NTdXBwbHkFAAAACW1heFN1cHBseQkAAAIAAAABAgAAABRBbGwgcHVua3MgYXJlIG1pbnRlZAMJAAAAAAAAAgUAAAAOYXZhaWxhYmxlUHVua3MCAAAAAAkAAAIAAAABAgAAABJObyBwdW5rcyBhdmFpbGFibGUDCQEAAAANdHJ5R2V0Qm9vbGVhbgAAAAEJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBAAAAAR0ZW1wCQAETgAAAAIJAQAAAAVfbWludAAAAAMFAAAAAWkFAAAAEHRvdGFsUHVua3NTdXBwbHkFAAAADmF2YWlsYWJsZVB1bmtzCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBQAAAANuaWwFAAAABHRlbXADCQAAZgAAAAIFAAAACXN0YXJ0TWludAgFAAAACWxhc3RCbG9jawAAAAl0aW1lc3RhbXAJAAACAAAAAQIAAAAVTWludCBoYXNuYHQgeWV0IGJlZ3VuAwUAAAAQZmlyc3RQYXltZW50Qm9vbAkAAAIAAAABAgAAACRQYXltZW50IG11c3QgYmUgaW4gV2F2ZXMgdG9rZW5zIG9ubHkDCQAAZgAAAAIFAAAAC3dhdmVzTmVlZGVkCAUAAAAMZmlyc3RQYXltZW50AAAABmFtb3VudAkAAAIAAAABAgAAABJJbnN1ZmZpY2llbnQgZnVuZHMJAQAAAAVfbWludAAAAAMFAAAAAWkFAAAAEHRvdGFsUHVua3NTdXBwbHkFAAAADmF2YWlsYWJsZVB1bmtzAAAAAQAAAAJ0eAEAAAAGdmVyaWZ5AAAAAAkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAAIBQAAAAJ0eAAAAA9zZW5kZXJQdWJsaWNLZXl+uxIQ", "height": 3261167, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 3Qorw5DoHUMxCgGS3qJQdN6zDYiLRcdd4GrgDbzm8hXU Next: EvapyT1CEnjqzgNQDQgE9WbFPo2gtgN6QU3RZabAKEPG Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let maxSupply = 1000
55
66 let waves = 100000000
77
88 func getPunkIDKey (id) = ("punk_" + id)
99
1010
1111 func tryGetInteger (key) = {
1212 let val = match getInteger(this, key) {
1313 case b: Int =>
1414 b
1515 case _ =>
1616 0
1717 }
1818 val
1919 }
2020
2121
2222 func tryGetBoolean (key) = {
2323 let val = match getBoolean(this, key) {
2424 case b: Boolean =>
2525 b
2626 case _ =>
2727 false
2828 }
2929 val
3030 }
3131
3232
3333 func tryGetString (key) = {
3434 let val = match getString(this, key) {
3535 case b: String =>
3636 b
3737 case _ =>
3838 ""
3939 }
4040 val
4141 }
4242
4343
4444 func getURL (id) = if (containsElement(split(tryGetString("gif_punk"), ","), id))
4545 then (("https://mypunks.wavespunks.com/mad/m" + id) + ".gif")
4646 else (("https://mypunks.wavespunks.com/mad/m" + id) + ".png")
4747
4848
4949 func getTypePunk (id) = {
5050 let idINT = match parseInt(id) {
5151 case i: Int =>
5252 i
5353 case i: Unit =>
5454 0
5555 case _ =>
5656 throw("Match error")
5757 }
5858 if (containsElement(split(tryGetString("gif_punk"), ","), toString(idINT)))
5959 then "ultra-rare"
6060 else if ((29 >= idINT))
6161 then "rare"
6262 else "unique"
6363 }
6464
6565
6666 func getRandomNumber (variants,txId,heightBlock,offset) = {
6767 let randomSeedBlock = value(blockInfoByHeight((heightBlock - 1)))
6868 let randomHash = sha256_16Kb((txId + value(randomSeedBlock.vrf)))
6969 (toInt(randomHash, offset) % variants)
7070 }
7171
7272
7373 func calcWavesNeeded () = (waves * 6)
7474
7575
7676 func _mint (i,totalPunksSupply,availablePunks) = {
7777 let listAvailablePunks = split(availablePunks, ",")
7878 let rand = getRandomNumber((maxSupply - totalPunksSupply), i.transactionId, height, 0)
7979 let punkId = listAvailablePunks[rand]
8080 let name = ("MadPunk #" + punkId)
8181 let meta = tryGetString("collection_description")
8282 let asset = Issue(name, meta, 1, 0, false, unit, height)
8383 let assetId = calculateAssetId(asset)
8484 let tx = [IntegerEntry("punks_supply", (totalPunksSupply + 1)), StringEntry("available_punks", makeString(removeByIndex(listAvailablePunks, rand), ",")), asset, StringEntry(getPunkIDKey(punkId), toBase58String(assetId)), StringEntry((toBase58String(assetId) + "_id"), getPunkIDKey(punkId)), StringEntry((toBase58String(assetId) + "_type"), getTypePunk(punkId)), StringEntry((toBase58String(assetId) + "_url"), getURL(punkId)), StringEntry((toBase58String(assetId) + "_fraction"), tryGetString("fraction")), ScriptTransfer(i.caller, 1, assetId)]
8585 tx
8686 }
8787
8888
8989 @Callable(i)
9090 func mint () = {
9191 let totalPunksSupply = tryGetInteger("punks_supply")
9292 let availablePunks = tryGetString("available_punks")
9393 let preMintAddress = split(tryGetString("premint_address"), ",")
9494 let startMint = tryGetInteger("start_mint")
9595 let wavesNeeded = calcWavesNeeded()
9696 let firstPayment = value(i.payments[0])
9797 let firstPaymentBool = match firstPayment.assetId {
9898 case t: ByteVector =>
9999 true
100100 case w: Unit =>
101101 false
102102 case _ =>
103103 throw("Match error")
104104 }
105105 if ((totalPunksSupply == maxSupply))
106106 then throw("All punks are minted")
107107 else if ((availablePunks == ""))
108108 then throw("No punks available")
109109 else if (tryGetBoolean(toString(i.caller)))
110110 then {
111111 let temp = (_mint(i, totalPunksSupply, availablePunks) ++ [DeleteEntry(toString(i.caller))])
112112 temp
113113 }
114114 else if ((startMint > lastBlock.timestamp))
115115 then throw("Mint hasn`t yet begun")
116116 else if (firstPaymentBool)
117117 then throw("Payment must be in Waves tokens only")
118118 else if ((wavesNeeded > firstPayment.amount))
119119 then throw("Insufficient funds")
120120 else _mint(i, totalPunksSupply, availablePunks)
121121 }
122122
123123
124124 @Verifier(tx)
125125 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
126126

github/deemru/w8io/3ef1775 
46.55 ms