tx · 8uRkEREKV5mqQrUZmeU8h4JravH4rVTBDLSRoRDQs9uf

3NAbyG5uiek2BiiY8Wx5reyjn7DKGaSuyD2:  -0.01000000 Waves

2022.05.08 12:37 [2042524] smart account 3NAbyG5uiek2BiiY8Wx5reyjn7DKGaSuyD2 > SELF 0.00000000 Waves

{ "type": 13, "id": "8uRkEREKV5mqQrUZmeU8h4JravH4rVTBDLSRoRDQs9uf", "fee": 1000000, "feeAssetId": null, "timestamp": 1652002664325, "version": 2, "chainId": 84, "sender": "3NAbyG5uiek2BiiY8Wx5reyjn7DKGaSuyD2", "senderPublicKey": "8wiW9F8GK5sx7hz2Vcg6HvXdGV89Xoxfkq2FefA6wbnN", "proofs": [ "2wo8nRR7WY86gXg1Noc49JoFaSwHKgFYSrhPV6tnJu8qioLD8tPAqHPFYv5tx8yN7HstSHkf4LHQ3W6G1Vw8orYx" ], "script": "base64:AAIFAAAAAAAAAAcIAhIDCgEIAAAAAwAAAAANUEFZTUVOVF9BU1NFVAEAAAAgrZ1IFoWReWfvw0p6hpnR3VDpBUk85P5AREeM4YPEwvQAAAAACkVYVEVOU0lPTlMJAARMAAAAAgIAAAADZ2lmCQAETAAAAAICAAAAA0dJRgkABEwAAAACAgAAAANqcGcJAARMAAAAAgIAAAADSlBHCQAETAAAAAICAAAAA3BuZwkABEwAAAACAgAAAANQTkcFAAAAA25pbAEAAAALaXNQYXltZW50T2sAAAABAAAAAWkEAAAAEWFjY2VwdGFibGVBc3NldElkBQAAAA1QQVlNRU5UX0FTU0VUAwkAAAAAAAACCQABkAAAAAEIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAACQAAAgAAAAECAAAAFFBheW1lbnQgbm90IGF0dGFjaGVkBAAAAAFwCQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAABAAAAAckbWF0Y2gwCAUAAAABcAAAAAdhc3NldElkAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAApCeXRlVmVjdG9yBAAAAAdhc3NldElkBQAAAAckbWF0Y2gwAwkAAAAAAAACBQAAAAdhc3NldElkBQAAABFhY2NlcHRhYmxlQXNzZXRJZAkAAAAAAAACCAUAAAABcAAAAAZhbW91bnQAAAAAAACYloAHCQAAAgAAAAECAAAAE1dyb25nIHBheW1lbnQgYXNzZXQAAAABAAAAAWkBAAAACW5mdE1pbnRlcgAAAAEAAAADdXJsBAAAAARsYXN0CQEAAAAJdGFrZVJpZ2h0AAAAAgUAAAADdXJsAAAAAAAAAAADBAAAAAhpc0V4aXN0cwkBAAAAD2NvbnRhaW5zRWxlbWVudAAAAAIFAAAACkVYVEVOU0lPTlMFAAAABGxhc3QDBQAAAAhpc0V4aXN0cwMJAQAAAAtpc1BheW1lbnRPawAAAAEFAAAAAWkEAAAABGhhc2gJAAJcAAAAAQkAAZsAAAABBQAAAAN1cmwEAAAACmN1cnJlbnRLZXkJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAAGd2FsbGV0BQAAAApjdXJyZW50S2V5CQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAZ3YWxsZXQCAAAAAV8JAAGkAAAAAQUAAAAGaGVpZ2h0BQAAAARoYXNoBQAAAANuaWwJAAACAAAAAQIAAAAdV3JvbmcgcGF5bWVudCBhbW91bnQgb3IgYXNzZXQJAAACAAAAAQIAAAAJd3JvbmcgZXh0AAAAAI+/3xo=", "height": 2042524, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 6sbghbpCg171BRuH16TEe3QAPmiKRcBpCovsxBAPMuge Next: 7jmK15sgEeBxs8ZaiEDgCcxz3b9d6gTaiBmRN21hSeJA Diff:
OldNewDifferences
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let PAYMENT_ASSET = base58'CgidgEMbCKXXErgJXVyZCFRaK8SBNA73Jg8mNXALtVKh'
5+
6+let EXTENSIONS = ["gif", "GIF", "jpg", "JPG", "png", "PNG"]
57
68 func isPaymentOk (i) = {
79 let acceptableAssetId = PAYMENT_ASSET
2224
2325
2426 @Callable(i)
25-func nftminter (url) = if (isPaymentOk(i))
26- then {
27- let hash = toBase16String(toBytes(url))
28- let currentKey = toBase58String(i.caller.bytes)
29- let wallet = currentKey
27+func nftMinter (url) = {
28+ let last = takeRight(url, 3)
29+ let isExists = containsElement(EXTENSIONS, last)
30+ if (isExists)
31+ then if (isPaymentOk(i))
32+ then {
33+ let hash = toBase16String(toBytes(url))
34+ let currentKey = toBase58String(i.caller.bytes)
35+ let wallet = currentKey
3036 [StringEntry(((wallet + "_") + toString(height)), hash)]
31- }
32- else throw("Wrong payment amount or asset")
37+ }
38+ else throw("Wrong payment amount or asset")
39+ else throw("wrong ext")
40+ }
3341
3442
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let PAYMENT_ASSET = base58'CgidgEMbCKXXErgJXVyZCFRaK8SBNA73Jg8mNXALtVKh'
5+
6+let EXTENSIONS = ["gif", "GIF", "jpg", "JPG", "png", "PNG"]
57
68 func isPaymentOk (i) = {
79 let acceptableAssetId = PAYMENT_ASSET
810 if ((size(i.payments) == 0))
911 then throw("Payment not attached")
1012 else {
1113 let p = i.payments[0]
1214 match p.assetId {
1315 case assetId: ByteVector =>
1416 if ((assetId == acceptableAssetId))
1517 then (p.amount == 10000000)
1618 else false
1719 case _ =>
1820 throw("Wrong payment asset")
1921 }
2022 }
2123 }
2224
2325
2426 @Callable(i)
25-func nftminter (url) = if (isPaymentOk(i))
26- then {
27- let hash = toBase16String(toBytes(url))
28- let currentKey = toBase58String(i.caller.bytes)
29- let wallet = currentKey
27+func nftMinter (url) = {
28+ let last = takeRight(url, 3)
29+ let isExists = containsElement(EXTENSIONS, last)
30+ if (isExists)
31+ then if (isPaymentOk(i))
32+ then {
33+ let hash = toBase16String(toBytes(url))
34+ let currentKey = toBase58String(i.caller.bytes)
35+ let wallet = currentKey
3036 [StringEntry(((wallet + "_") + toString(height)), hash)]
31- }
32- else throw("Wrong payment amount or asset")
37+ }
38+ else throw("Wrong payment amount or asset")
39+ else throw("wrong ext")
40+ }
3341
3442

github/deemru/w8io/169f3d6 
26.90 ms