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:
Old | New | | Differences |
---|
2 | 2 | | {-# SCRIPT_TYPE ACCOUNT #-} |
---|
3 | 3 | | {-# CONTENT_TYPE DAPP #-} |
---|
4 | 4 | | let PAYMENT_ASSET = base58'CgidgEMbCKXXErgJXVyZCFRaK8SBNA73Jg8mNXALtVKh' |
---|
| 5 | + | |
---|
| 6 | + | let EXTENSIONS = ["gif", "GIF", "jpg", "JPG", "png", "PNG"] |
---|
5 | 7 | | |
---|
6 | 8 | | func isPaymentOk (i) = { |
---|
7 | 9 | | let acceptableAssetId = PAYMENT_ASSET |
---|
|
22 | 24 | | |
---|
23 | 25 | | |
---|
24 | 26 | | @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 |
---|
30 | 36 | | [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 | + | } |
---|
33 | 41 | | |
---|
34 | 42 | | |
---|
Full:
Old | New | | Differences |
---|
1 | 1 | | {-# STDLIB_VERSION 5 #-} |
---|
2 | 2 | | {-# SCRIPT_TYPE ACCOUNT #-} |
---|
3 | 3 | | {-# CONTENT_TYPE DAPP #-} |
---|
4 | 4 | | let PAYMENT_ASSET = base58'CgidgEMbCKXXErgJXVyZCFRaK8SBNA73Jg8mNXALtVKh' |
---|
| 5 | + | |
---|
| 6 | + | let EXTENSIONS = ["gif", "GIF", "jpg", "JPG", "png", "PNG"] |
---|
5 | 7 | | |
---|
6 | 8 | | func isPaymentOk (i) = { |
---|
7 | 9 | | let acceptableAssetId = PAYMENT_ASSET |
---|
8 | 10 | | if ((size(i.payments) == 0)) |
---|
9 | 11 | | then throw("Payment not attached") |
---|
10 | 12 | | else { |
---|
11 | 13 | | let p = i.payments[0] |
---|
12 | 14 | | match p.assetId { |
---|
13 | 15 | | case assetId: ByteVector => |
---|
14 | 16 | | if ((assetId == acceptableAssetId)) |
---|
15 | 17 | | then (p.amount == 10000000) |
---|
16 | 18 | | else false |
---|
17 | 19 | | case _ => |
---|
18 | 20 | | throw("Wrong payment asset") |
---|
19 | 21 | | } |
---|
20 | 22 | | } |
---|
21 | 23 | | } |
---|
22 | 24 | | |
---|
23 | 25 | | |
---|
24 | 26 | | @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 |
---|
30 | 36 | | [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 | + | } |
---|
33 | 41 | | |
---|
34 | 42 | | |
---|