tx · H2m5cDoMv9HCDafSmPedST3RQ7U4e1WF9ZachcXzSZyo

3N1HdGqmcf4nVsUgmWiwB8p6p8ErWBmvQua:  -0.01000000 Waves

2023.11.02 17:03 [2825812] smart account 3N1HdGqmcf4nVsUgmWiwB8p6p8ErWBmvQua > SELF 0.00000000 Waves

{ "type": 13, "id": "H2m5cDoMv9HCDafSmPedST3RQ7U4e1WF9ZachcXzSZyo", "fee": 1000000, "feeAssetId": null, "timestamp": 1698933813301, "version": 2, "chainId": 84, "sender": "3N1HdGqmcf4nVsUgmWiwB8p6p8ErWBmvQua", "senderPublicKey": "JAEVvs5E9kGyXWx3YQaivUpUP3vb3pgr2eS6UrYr1A8P", "proofs": [ "9gmqUqjU1Q8UN9TNpQp4CjXinHK7EPtRMh5KLPZBKrY3fumsozUhmtkgH9P5LFDfaYFGrGAdzwr1G5Ad7n5CgVX" ], "script": "base64:BgIXCAISAwoBAhIICgYICAEBAQESBAoCCAgJAANTRVACAl9fAQZuZnRLZXkBBW5mdElkCQC5CQIJAMwIAgIDbmZ0CQDMCAIJANgEAQUFbmZ0SWQFA25pbAUDU0VQARVuZnRUeXBlRGVzY3JpcHRpb25LZXkBCW5mdFR5cGVJZAkAuQkCCQDMCAICCG5mdF90eXBlCQDMCAIFCW5mdFR5cGVJZAUDbmlsBQNTRVABBnNldE5mdAQFbmZ0SWQJbmZ0VHlwZUlkBmhlYWx0aAZkYW1hZ2UJAQtTdHJpbmdFbnRyeQIJAQZuZnRLZXkBBQVuZnRJZAkAuQkCCQDMCAIFCW5mdFR5cGVJZAkAzAgCCQCkAwEFBmhlYWx0aAkAzAgCCQCkAwEFBmRhbWFnZQUDbmlsBQNTRVABFWdldE5mdFR5cGVEZXNjcmlwdGlvbgEJbmZ0VHlwZUlkBAtzYXZlZFN0cmluZwkAtQkCBAckbWF0Y2gwCQCdCAIFBHRoaXMJARVuZnRUeXBlRGVzY3JpcHRpb25LZXkBBQluZnRUeXBlSWQDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFzBQckbWF0Y2gwBQFzCQACAQISbmZ0IHR5cGUgbm90IGZvdW5kBQNTRVAJAJcKBQkAkQMCBQtzYXZlZFN0cmluZwAACQENcGFyc2VJbnRWYWx1ZQEJAJEDAgULc2F2ZWRTdHJpbmcAAQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFC3NhdmVkU3RyaW5nAAIJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQtzYXZlZFN0cmluZwADCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgULc2F2ZWRTdHJpbmcABAEKcmFuZG9taXplcgIDaW52BHNhbHQEBHJhbmQJAMsBAgkAywECCQDLAQIJAMsBAgkAywECBQRzYWx0CAUDaW52DXRyYW5zYWN0aW9uSWQIBQNpbnYPY2FsbGVyUHVibGljS2V5CAUJbGFzdEJsb2NrE2dlbmVyYXRpb25TaWduYXR1cmUJAJoDAQgFCWxhc3RCbG9jawl0aW1lc3RhbXAJAJoDAQgFCWxhc3RCbG9jawZoZWlnaHQJAJQKAgkA9wMBBQRyYW5kBQRyYW5kAQ5pbnRlcm5hbEdldE5mdAEHYWRkcmVzcwQHJG1hdGNoMAkA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AgkBFW5mdFR5cGVEZXNjcmlwdGlvbktleQEFCW5mdFR5cGVJZAkAuQkCCQDMCAIFA2ltZwkAzAgCCQCkAwEFCW1pbkhlYWx0aAkAzAgCCQCkAwEFCW1heEhlYWx0aAkAzAgCCQCkAwEFCW1pbkRhbWFnZQkAzAgCCQCkAwEFCW1heERhbWFnZQUDbmlsBQNTRVAFA25pbAFpAQRtaW50AgluZnRUeXBlSWQCdG8ED3R5cGVEZXNjcmlwdGlvbgkBFWdldE5mdFR5cGVEZXNjcmlwdGlvbgEFCW5mdFR5cGVJZAQHaGVhbHRoVAkBCnJhbmRvbWl6ZXICBQFpAQAEB2RhbWFnZVQJAQpyYW5kb21pemVyAgUBaQgFB2hlYWx0aFQCXzIEBmhlYWx0aAMJAAACCQBlAggFD3R5cGVEZXNjcmlwdGlvbgJfMwgFD3R5cGVEZXNjcmlwdGlvbgJfMgAACAUPdHlwZURlc2NyaXB0aW9uAl8zCQBkAggFD3R5cGVEZXNjcmlwdGlvbgJfMwkAagIJALEJAQgFB2hlYWx0aFQCXzEJAGUCCAUPdHlwZURlc2NyaXB0aW9uAl8zCAUPdHlwZURlc2NyaXB0aW9uAl8yBAZkYW1hZ2UDCQAAAgkAZQIIBQ90eXBlRGVzY3JpcHRpb24CXzUIBQ90eXBlRGVzY3JpcHRpb24CXzQAAAgFD3R5cGVEZXNjcmlwdGlvbgJfNQkAZAIIBQ90eXBlRGVzY3JpcHRpb24CXzQJAGoCCQCxCQEIBQdkYW1hZ2VUAl8xCQBlAggFD3R5cGVEZXNjcmlwdGlvbgJfNQgFD3R5cGVEZXNjcmlwdGlvbgJfNAQLZGVzY3JpcHRpb24JAKwCAgkArAICCQCsAgIJAKwCAgIQeyJpbml0SGVhbHRoIjogIgkApAMBBQZoZWFsdGgCESIsICJpbml0RGFtYWdlIjogCQCkAwEFBmRhbWFnZQIBfQQFYXNzZXQJAMIIBQUJbmZ0VHlwZUlkBQtkZXNjcmlwdGlvbgABAAAHBAdhc3NldElkCQC4CAEFBWFzc2V0CQCUCgIJAMwIAgkBBnNldE5mdAQFB2Fzc2V0SWQFCW5mdFR5cGVJZAUGaGVhbHRoBQZkYW1hZ2UJAMwIAgUFYXNzZXQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBBXZhbHVlAQkApggBBQJ0bwABBQdhc3NldElkBQNuaWwJANgEAQUHYXNzZXRJZAECdHgBBnZlcmlmeQAJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAIBQJ0eA9zZW5kZXJQdWJsaWNLZXmIKW/w", "height": 2825812, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 9JyGvi2cajgrAiCdvb3QXZUuLy6BFWFozeTSyjm4oswr Next: BJhTASPJVsB7HV1w1ZNDVLaKvs6JCjbpTEzNRhYki5ni Diff:
OldNewDifferences
5656
5757 func $f0_2 ($a,$i) = if (($i >= $s))
5858 then $a
59- else throw("List size exceeds 5")
59+ else throw("List size exceeds 100")
6060
61- $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5)
61+ $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100)
6262 })
6363
6464
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let SEP = "__"
55
66 func nftKey (nftId) = makeString(["nft", toBase58String(nftId)], SEP)
77
88
99 func nftTypeDescriptionKey (nftTypeId) = makeString(["nft_type", nftTypeId], SEP)
1010
1111
1212 func setNft (nftId,nftTypeId,health,damage) = StringEntry(nftKey(nftId), makeString([nftTypeId, toString(health), toString(damage)], SEP))
1313
1414
1515 func getNftTypeDescription (nftTypeId) = {
1616 let savedString = split( match getString(this, nftTypeDescriptionKey(nftTypeId)) {
1717 case s: String =>
1818 s
1919 case _ =>
2020 throw("nft type not found")
2121 }, SEP)
2222 $Tuple5(savedString[0], parseIntValue(savedString[1]), parseIntValue(savedString[2]), parseIntValue(savedString[3]), parseIntValue(savedString[4]))
2323 }
2424
2525
2626 func randomizer (inv,salt) = {
2727 let rand = (((((salt + inv.transactionId) + inv.callerPublicKey) + lastBlock.generationSignature) + toBytes(lastBlock.timestamp)) + toBytes(lastBlock.height))
2828 $Tuple2(sha256(rand), rand)
2929 }
3030
3131
3232 func internalGetNft (address) = match getString(this, nftKey(address)) {
3333 case s: String =>
3434 let splittedString = split(s, SEP)
3535 $Tuple3(splittedString[0], parseIntValue(splittedString[1]), parseIntValue(splittedString[2]))
3636 case _ =>
3737 nil
3838 }
3939
4040
4141 func map (accum,nextNftAddress) = match internalGetNft(nextNftAddress) {
4242 case s: (String, Int, Int) =>
4343 s :: accum
4444 case _ =>
4545 accum
4646 }
4747
4848
4949 func getNfts (address) = $Tuple2(nil, {
5050 let $l = address
5151 let $s = size($l)
5252 let $acc0 = nil
5353 func $f0_1 ($a,$i) = if (($i >= $s))
5454 then $a
5555 else map($a, $l[$i])
5656
5757 func $f0_2 ($a,$i) = if (($i >= $s))
5858 then $a
59- else throw("List size exceeds 5")
59+ else throw("List size exceeds 100")
6060
61- $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5)
61+ $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100)
6262 })
6363
6464
6565 @Callable(i)
6666 func getNft (address) = $Tuple2(nil, internalGetNft(address))
6767
6868
6969
7070 @Callable(i)
7171 func setNftTypeDescription (nftTypeId,img,minHealth,maxHealth,minDamage,maxDamage) = [StringEntry(nftTypeDescriptionKey(nftTypeId), makeString([img, toString(minHealth), toString(maxHealth), toString(minDamage), toString(maxDamage)], SEP))]
7272
7373
7474
7575 @Callable(i)
7676 func mint (nftTypeId,to) = {
7777 let typeDescription = getNftTypeDescription(nftTypeId)
7878 let healthT = randomizer(i, base58'')
7979 let damageT = randomizer(i, healthT._2)
8080 let health = if (((typeDescription._3 - typeDescription._2) == 0))
8181 then typeDescription._3
8282 else (typeDescription._3 + (toInt(healthT._1) % (typeDescription._3 - typeDescription._2)))
8383 let damage = if (((typeDescription._5 - typeDescription._4) == 0))
8484 then typeDescription._5
8585 else (typeDescription._4 + (toInt(damageT._1) % (typeDescription._5 - typeDescription._4)))
8686 let description = (((("{\"initHealth\": \"" + toString(health)) + "\", \"initDamage\": ") + toString(damage)) + "}")
8787 let asset = Issue(nftTypeId, description, 1, 0, false)
8888 let assetId = calculateAssetId(asset)
8989 $Tuple2([setNft(assetId, nftTypeId, health, damage), asset, ScriptTransfer(value(addressFromString(to)), 1, assetId)], toBase58String(assetId))
9090 }
9191
9292
9393 @Verifier(tx)
9494 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
9595

github/deemru/w8io/6500d08 
28.82 ms