tx · J1PRYKxbtYxLL8gd2GdjN6sWzjhY8Stz4j8eTGpC2C8F 3My2v1xv9oXvkdoVBjdoPJwsyxswKABGzXz: -0.01400000 Waves 2022.11.01 12:35 [2297870] smart account 3My2v1xv9oXvkdoVBjdoPJwsyxswKABGzXz > SELF 0.00000000 Waves
{ "type": 13, "id": "J1PRYKxbtYxLL8gd2GdjN6sWzjhY8Stz4j8eTGpC2C8F", "fee": 1400000, "feeAssetId": null, "timestamp": 1667295356917, "version": 2, "chainId": 84, "sender": "3My2v1xv9oXvkdoVBjdoPJwsyxswKABGzXz", "senderPublicKey": "AmNGcQhk77jcLZEVysQPbYbF3QCHAzQH9Zc9oRZB963h", "proofs": [ "2YS99eBxdNQRUD3S1qCVnTA9iCoJJRfK4ASpTqwT47hsB36nkZ3RkmW5J6NhEXZcjpFXCwBAdTRWCVD8k3GRjvvg" ], "script": "base64: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", "height": 2297870, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 8i1RocrWC8fHB4akfnVJuJPegT1BZ7uBVEuASwrPfJ2c Next: 6ZFoLBxbJzFKshNcFoZbu8RyyyR2SBd9UeETxGPSX9n9 Diff:
Old | New | Differences | |
---|---|---|---|
6 | 6 | @Callable(i) | |
7 | 7 | func IssueNFTSeries (NFTDescription,IPFSHash,IPFSHashLink,Format) = { | |
8 | 8 | let currentKey = toBase58String(i.caller.bytes) | |
9 | + | let NFTMintFee = 10000000 | |
10 | + | let pmt = if ((size(i.payments) == 1)) | |
11 | + | then i.payments[0] | |
12 | + | else throw((toString((NFTMintFee / 100000000)) + " TN Token is required as Attached payment")) | |
9 | 13 | let NFTSeriesName = "A4ADAO" | |
10 | 14 | let getIPFSHash = getString(this, ("HASH_" + IPFSHash)) | |
11 | 15 | let getSeriesCounter = match getInteger(this, "Counter") { | |
16 | 20 | } | |
17 | 21 | let CurrentSeriesCounter = (getSeriesCounter + 1) | |
18 | 22 | let asset = Issue(((NFTSeriesName + "-") + toString(CurrentSeriesCounter)), NFTDescription, 1, 0, false, unit, 0) | |
19 | - | let assetId = calculateAssetId(asset) | |
20 | - | if ((getIPFSHash == IPFSHash)) | |
21 | - | then throw((IPFSHash + " Hash Already Registered")) | |
22 | - | else [asset, IntegerEntry("Counter", CurrentSeriesCounter), IntegerEntry(("Timestamp_" + IPFSHash), lastBlock.timestamp), StringEntry(("HASH_" + IPFSHash), IPFSHash), StringEntry(("Creator_" + IPFSHash), currentKey), StringEntry(("Link_" + IPFSHash), IPFSHashLink), ScriptTransfer(i.caller, 1, assetId)] | |
23 | + | let getassetId = calculateAssetId(asset) | |
24 | + | if (isDefined(pmt.assetId)) | |
25 | + | then throw((("Wrong Asset Attached please attach only " + toString((NFTMintFee / 100000000))) + " TN Tokens to mint NFT.")) | |
26 | + | else if ((pmt.amount != NFTMintFee)) | |
27 | + | then throw("1000 TN Token is required as Attached payment amount.") | |
28 | + | else if ((getIPFSHash == IPFSHash)) | |
29 | + | then throw((IPFSHash + " Hash Already Registered")) | |
30 | + | else [asset, IntegerEntry("Counter", CurrentSeriesCounter), IntegerEntry(("Timestamp_" + IPFSHash), lastBlock.timestamp), StringEntry(("HASH_" + IPFSHash), IPFSHash), StringEntry(("Creator_" + IPFSHash), currentKey), StringEntry(("Link_" + IPFSHash), IPFSHashLink), ScriptTransfer(i.caller, 1, getassetId)] | |
23 | 31 | } | |
24 | 32 | ||
25 | 33 |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 5 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | ||
5 | 5 | ||
6 | 6 | @Callable(i) | |
7 | 7 | func IssueNFTSeries (NFTDescription,IPFSHash,IPFSHashLink,Format) = { | |
8 | 8 | let currentKey = toBase58String(i.caller.bytes) | |
9 | + | let NFTMintFee = 10000000 | |
10 | + | let pmt = if ((size(i.payments) == 1)) | |
11 | + | then i.payments[0] | |
12 | + | else throw((toString((NFTMintFee / 100000000)) + " TN Token is required as Attached payment")) | |
9 | 13 | let NFTSeriesName = "A4ADAO" | |
10 | 14 | let getIPFSHash = getString(this, ("HASH_" + IPFSHash)) | |
11 | 15 | let getSeriesCounter = match getInteger(this, "Counter") { | |
12 | 16 | case a: Int => | |
13 | 17 | a | |
14 | 18 | case _ => | |
15 | 19 | 0 | |
16 | 20 | } | |
17 | 21 | let CurrentSeriesCounter = (getSeriesCounter + 1) | |
18 | 22 | let asset = Issue(((NFTSeriesName + "-") + toString(CurrentSeriesCounter)), NFTDescription, 1, 0, false, unit, 0) | |
19 | - | let assetId = calculateAssetId(asset) | |
20 | - | if ((getIPFSHash == IPFSHash)) | |
21 | - | then throw((IPFSHash + " Hash Already Registered")) | |
22 | - | else [asset, IntegerEntry("Counter", CurrentSeriesCounter), IntegerEntry(("Timestamp_" + IPFSHash), lastBlock.timestamp), StringEntry(("HASH_" + IPFSHash), IPFSHash), StringEntry(("Creator_" + IPFSHash), currentKey), StringEntry(("Link_" + IPFSHash), IPFSHashLink), ScriptTransfer(i.caller, 1, assetId)] | |
23 | + | let getassetId = calculateAssetId(asset) | |
24 | + | if (isDefined(pmt.assetId)) | |
25 | + | then throw((("Wrong Asset Attached please attach only " + toString((NFTMintFee / 100000000))) + " TN Tokens to mint NFT.")) | |
26 | + | else if ((pmt.amount != NFTMintFee)) | |
27 | + | then throw("1000 TN Token is required as Attached payment amount.") | |
28 | + | else if ((getIPFSHash == IPFSHash)) | |
29 | + | then throw((IPFSHash + " Hash Already Registered")) | |
30 | + | else [asset, IntegerEntry("Counter", CurrentSeriesCounter), IntegerEntry(("Timestamp_" + IPFSHash), lastBlock.timestamp), StringEntry(("HASH_" + IPFSHash), IPFSHash), StringEntry(("Creator_" + IPFSHash), currentKey), StringEntry(("Link_" + IPFSHash), IPFSHashLink), ScriptTransfer(i.caller, 1, getassetId)] | |
23 | 31 | } | |
24 | 32 | ||
25 | 33 | ||
26 | 34 | @Verifier(tx) | |
27 | 35 | func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) | |
28 | 36 |
github/deemru/w8io/026f985 64.50 ms ◑