tx · EsnbeXF5oKkp6e4raxciQwAVUmkk2CEsioNZLseZxqam

3NA6PrCYKV9YFP9vn3B7SsDWNQK4YeUPnCg:  -0.01000000 Waves

2023.10.29 18:17 [2820096] smart account 3NA6PrCYKV9YFP9vn3B7SsDWNQK4YeUPnCg > SELF 0.00000000 Waves

{ "type": 13, "id": "EsnbeXF5oKkp6e4raxciQwAVUmkk2CEsioNZLseZxqam", "fee": 1000000, "feeAssetId": null, "timestamp": 1698592632119, "version": 2, "chainId": 84, "sender": "3NA6PrCYKV9YFP9vn3B7SsDWNQK4YeUPnCg", "senderPublicKey": "4h7maLTqBiadcBrrAxLHowjazW7QkGmUreZa5WAK7dqi", "proofs": [ "53BPrq66VNDapere7LmZX4X1n5FZrHzKA1WXs5suE2tpCeRPR8tBwzbJocSenxxCu3cKKX4wYQkeDYHeeUSoZbZy" ], "script": "base64:BgIRCAISBwoFCAEBAQESBAoCCAgHAANTRVACAl9fAQZuZnRLZXkBBW5mdElkCQC5CQIJAMwIAgIDbmZ0CQDMCAIJANgEAQUFbmZ0SWQFA25pbAUDU0VQARluZnRDYXRlZ29yeURlc2NyaXB0aW9uS2V5AQ1uZnRDYXRlZ29yeUlkCQC5CQIJAMwIAgIMbmZ0X2NhdGVnb3J5CQDMCAIFDW5mdENhdGVnb3J5SWQFA25pbAUDU0VQAQZnZXROZnQBB2FkZHJlc3MEC3NhdmVkU3RyaW5nCQC1CQIEByRtYXRjaDAJAJ0IAgUEdGhpcwkBBm5mdEtleQEIBQdhZGRyZXNzBWJ5dGVzAwkAAQIFByRtYXRjaDACBlN0cmluZwQBcwUHJG1hdGNoMAUBcwkAAgECDW5mdCBub3QgZm91bmQFA1NFUAkAlAoCCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgULc2F2ZWRTdHJpbmcAAAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFC3NhdmVkU3RyaW5nAAEBBnNldE5mdAMFbmZ0SWQGaGVhbHRoBmRhbWFnZQkBC1N0cmluZ0VudHJ5AgkBBm5mdEtleQEFBW5mdElkCQC5CQIJAMwIAgkApAMBBQZoZWFsdGgJAMwIAgkApAMBBQZkYW1hZ2UFA25pbAUDU0VQARlnZXROZnRDYXRlZ29yeURlc2NyaXB0aW9uAQ1uZnRDYXRlZ29yeUlkBAtzYXZlZFN0cmluZwkAtQkCBAckbWF0Y2gwCQCdCAIFBHRoaXMJARluZnRDYXRlZ29yeURlc2NyaXB0aW9uS2V5AQUNbmZ0Q2F0ZWdvcnlJZAMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXMFByRtYXRjaDAFAXMJAAIBAhZuZnQgY2F0ZWdvcnkgbm90IGZvdW5kBQNTRVAJAJYKBAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFC3NhdmVkU3RyaW5nAAAJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQtzYXZlZFN0cmluZwABCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgULc2F2ZWRTdHJpbmcAAgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFC3NhdmVkU3RyaW5nAAMBCnJhbmRvbWl6ZXICA2ludgRzYWx0BARyYW5kCQDLAQIJAMsBAgkAywECCQDLAQIJAMsBAgUEc2FsdAgFA2ludg10cmFuc2FjdGlvbklkCAUDaW52D2NhbGxlclB1YmxpY0tleQgFCWxhc3RCbG9jaxNnZW5lcmF0aW9uU2lnbmF0dXJlCQCaAwEIBQlsYXN0QmxvY2sJdGltZXN0YW1wCQCaAwEIBQlsYXN0QmxvY2sGaGVpZ2h0CQDMCAIJAPcDAQUEcmFuZAkAzAgCBQRyYW5kBQNuaWwCAWkBGXNldE5mdENhdGVnb3J5RGVzY3JpcHRpb24FDW5mdENhdGVnb3J5SWQJbWluSGVhbHRoCW1heEhlYWx0aAltaW5EYW1hZ2UJbWF4RGFtYWdlCQDMCAIJAQtTdHJpbmdFbnRyeQIJARluZnRDYXRlZ29yeURlc2NyaXB0aW9uS2V5AQUNbmZ0Q2F0ZWdvcnlJZAkAuQkCCQDMCAIJAKQDAQUJbWluSGVhbHRoCQDMCAIJAKQDAQUJbWF4SGVhbHRoCQDMCAIJAKQDAQUJbWluRGFtYWdlCQDMCAIJAKQDAQUJbWF4RGFtYWdlBQNuaWwFA1NFUAUDbmlsAWkBBG1pbnQCDW5mdENhdGVnb3J5SWQCdG8EE2NhdGVnb3J5RGVzY3JpcHRpb24JARlnZXROZnRDYXRlZ29yeURlc2NyaXB0aW9uAQUNbmZ0Q2F0ZWdvcnlJZAQHaGVhbHRoVAkBCnJhbmRvbWl6ZXICBQFpAQAEB2RhbWFnZVQJAQpyYW5kb21pemVyAgUBaQkAkQMCBQdoZWFsdGhUAAEEBmhlYWx0aAkAZAIIBRNjYXRlZ29yeURlc2NyaXB0aW9uAl8xCQBqAgkAsQkBCQCRAwIFB2hlYWx0aFQAAAkAZQIIBRNjYXRlZ29yeURlc2NyaXB0aW9uAl8yCAUTY2F0ZWdvcnlEZXNjcmlwdGlvbgJfMQQGZGFtYWdlCQBkAggFE2NhdGVnb3J5RGVzY3JpcHRpb24CXzMJAGoCCQCxCQEJAJEDAgUHZGFtYWdlVAAACQBlAggFE2NhdGVnb3J5RGVzY3JpcHRpb24CXzQIBRNjYXRlZ29yeURlc2NyaXB0aW9uAl8zBAtkZXNjcmlwdGlvbgkArAICCQCsAgIJAKwCAgkArAICAhB7ImluaXRIZWFsdGgiOiAiCQCkAwEFBmhlYWx0aAIRIiwgImluaXREYW1hZ2UiOiAJAKQDAQUGZGFtYWdlAgF9BAVhc3NldAkAwggFBQ1uZnRDYXRlZ29yeUlkBQtkZXNjcmlwdGlvbgABAAAHBAdhc3NldElkCQC4CAEFBWFzc2V0CQCUCgIJAMwIAgkBBnNldE5mdAMFB2Fzc2V0SWQFBmhlYWx0aAUGZGFtYWdlCQDMCAIFBWFzc2V0CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQV2YWx1ZQEJAKYIAQUCdG8AAQUHYXNzZXRJZAUDbmlsCQDYBAEFB2Fzc2V0SWQBAnR4AQZ2ZXJpZnkACQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAACAUCdHgPc2VuZGVyUHVibGljS2V51ultuA==", "height": 2820096, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: 9pw3ABQyZxBVdTZrEmMxx1EnA4z8rheCzz12Tzioe5ai Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 6 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+let SEP = "__"
5+
6+func nftKey (nftId) = makeString(["nft", toBase58String(nftId)], SEP)
7+
8+
9+func nftCategoryDescriptionKey (nftCategoryId) = makeString(["nft_category", nftCategoryId], SEP)
10+
11+
12+func getNft (address) = {
13+ let savedString = split( match getString(this, nftKey(address.bytes)) {
14+ case s: String =>
15+ s
16+ case _ =>
17+ throw("nft not found")
18+ }, SEP)
19+ $Tuple2(parseIntValue(savedString[0]), parseIntValue(savedString[1]))
20+ }
21+
22+
23+func setNft (nftId,health,damage) = StringEntry(nftKey(nftId), makeString([toString(health), toString(damage)], SEP))
24+
25+
26+func getNftCategoryDescription (nftCategoryId) = {
27+ let savedString = split( match getString(this, nftCategoryDescriptionKey(nftCategoryId)) {
28+ case s: String =>
29+ s
30+ case _ =>
31+ throw("nft category not found")
32+ }, SEP)
33+ $Tuple4(parseIntValue(savedString[0]), parseIntValue(savedString[1]), parseIntValue(savedString[2]), parseIntValue(savedString[3]))
34+ }
35+
36+
37+func randomizer (inv,salt) = {
38+ let rand = (((((salt + inv.transactionId) + inv.callerPublicKey) + lastBlock.generationSignature) + toBytes(lastBlock.timestamp)) + toBytes(lastBlock.height))
39+[sha256(rand), rand]
40+ }
41+
42+
43+@Callable(i)
44+func setNftCategoryDescription (nftCategoryId,minHealth,maxHealth,minDamage,maxDamage) = [StringEntry(nftCategoryDescriptionKey(nftCategoryId), makeString([toString(minHealth), toString(maxHealth), toString(minDamage), toString(maxDamage)], SEP))]
45+
46+
47+
48+@Callable(i)
49+func mint (nftCategoryId,to) = {
50+ let categoryDescription = getNftCategoryDescription(nftCategoryId)
51+ let healthT = randomizer(i, base58'')
52+ let damageT = randomizer(i, healthT[1])
53+ let health = (categoryDescription._1 + (toInt(healthT[0]) % (categoryDescription._2 - categoryDescription._1)))
54+ let damage = (categoryDescription._3 + (toInt(damageT[0]) % (categoryDescription._4 - categoryDescription._3)))
55+ let description = (((("{\"initHealth\": \"" + toString(health)) + "\", \"initDamage\": ") + toString(damage)) + "}")
56+ let asset = Issue(nftCategoryId, description, 1, 0, false)
57+ let assetId = calculateAssetId(asset)
58+ $Tuple2([setNft(assetId, health, damage), asset, ScriptTransfer(value(addressFromString(to)), 1, assetId)], toBase58String(assetId))
59+ }
60+
61+
62+@Verifier(tx)
63+func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
64+

github/deemru/w8io/3ef1775 
29.91 ms