tx · FP4VaqVD8u1zKawTuXvCFN194CogX8gwq7GsMrSAEWuZ 3PPgeYTWMRZ7S7jSLpnVuKKB9r6XuDk3ndC: -0.01400000 Waves 2022.02.22 06:16 [2999391] smart account 3PPgeYTWMRZ7S7jSLpnVuKKB9r6XuDk3ndC > SELF 0.00000000 Waves
{ "type": 13, "id": "FP4VaqVD8u1zKawTuXvCFN194CogX8gwq7GsMrSAEWuZ", "fee": 1400000, "feeAssetId": null, "timestamp": 1645499790344, "version": 2, "chainId": 87, "sender": "3PPgeYTWMRZ7S7jSLpnVuKKB9r6XuDk3ndC", "senderPublicKey": "AWoQVon5Ld79iWytFLN2MSSJr9ow7XEMVaH8emaRJp3Z", "proofs": [ "4DG7zkXr2aAoJWnnEu9TENxFvqQ33TEqzkficGrhEsZdDqUEo74NcdwUsaoTwFpZDaM8gMdrbnFWddXiUbJUMPgf" ], "script": "base64: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", "height": 2999391, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 5cakqHAqShjpUpBsUhQULjV9fbbfeXapvRiSNKiDgeab Next: FGnzGUWmsuFFqdXGeBLjDywFuFAphfsvXwMzEcjrGfwz Diff:
Old | New | Differences | |
---|---|---|---|
4 | 4 | let nftCreationAddress = base58'3P8LVqVKhTViMJau96KNir6FhHr4WnfoW57' | |
5 | 5 | ||
6 | 6 | let signArtContractAddress = base58'3PDBLdsUrcsiPxNbt8g2gQVoefKgzt3kJzV' | |
7 | + | ||
8 | + | let marketplaceContractAddress = base58'3PATXDVE53rKJtkwXYV3tvuLVS2fDtGtKCc' | |
7 | 9 | ||
8 | 10 | func checkNFT (asset,issuerAddress) = if (if (if ((asset.issuer.bytes == issuerAddress)) | |
9 | 11 | then (asset.decimals == 0) | |
42 | 44 | case x: String => | |
43 | 45 | x | |
44 | 46 | case _ => | |
45 | - | throw(" | |
47 | + | throw("Something went wrong during creation of NFT") | |
46 | 48 | } | |
47 | 49 | if ((stakedNFTIdStr == stakedNFTIdStr)) | |
48 | - | then [ScriptTransfer(i.caller, 1, fromBase58String(stakedNFTIdStr)), StringEntry((("signArtNft_" + toBase58String(assetId)) + "_owner"), addressStr), StringEntry((("signArtNft_" + stakedNFTIdStr) + "_assetId"), toBase58String(assetId))] | |
50 | + | then $Tuple2([ScriptTransfer(i.caller, 1, fromBase58String(stakedNFTIdStr)), StringEntry((("signArtNft_" + toBase58String(assetId)) + "_owner"), addressStr), StringEntry((("signArtNft_" + stakedNFTIdStr) + "_assetId"), toBase58String(assetId))], stakedNFTIdStr) | |
49 | 51 | else throw("Strict value is not equal to itself.") | |
50 | 52 | } | |
51 | 53 | else throw("Wrong data for create NFT") | |
78 | 80 | } | |
79 | 81 | ||
80 | 82 | ||
83 | + | ||
84 | + | @Callable(i) | |
85 | + | func lockAndSellNFT (buyOutPrice,buyOutAssetId) = { | |
86 | + | let stakedNFTIdStr = match invoke(this, "lockSignArt", nil, [i.payments[0]]) { | |
87 | + | case s: String => | |
88 | + | s | |
89 | + | case _ => | |
90 | + | throw("Somthing wrong when lock SignArt NFT") | |
91 | + | } | |
92 | + | if ((stakedNFTIdStr == stakedNFTIdStr)) | |
93 | + | then if ((size(stakedNFTIdStr) > 0)) | |
94 | + | then match invoke(Address(marketplaceContractAddress), "sellNFT", [buyOutPrice, buyOutAssetId], [AttachedPayment(fromBase58String(stakedNFTIdStr), 1)]) { | |
95 | + | case _ => | |
96 | + | nil | |
97 | + | } | |
98 | + | else throw("Invalid created NFT") | |
99 | + | else throw("Strict value is not equal to itself.") | |
100 | + | } | |
101 | + | ||
102 | + | ||
81 | 103 | @Verifier(tx) | |
82 | 104 | func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) | |
83 | 105 |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 5 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let nftCreationAddress = base58'3P8LVqVKhTViMJau96KNir6FhHr4WnfoW57' | |
5 | 5 | ||
6 | 6 | let signArtContractAddress = base58'3PDBLdsUrcsiPxNbt8g2gQVoefKgzt3kJzV' | |
7 | + | ||
8 | + | let marketplaceContractAddress = base58'3PATXDVE53rKJtkwXYV3tvuLVS2fDtGtKCc' | |
7 | 9 | ||
8 | 10 | func checkNFT (asset,issuerAddress) = if (if (if ((asset.issuer.bytes == issuerAddress)) | |
9 | 11 | then (asset.decimals == 0) | |
10 | 12 | else false) | |
11 | 13 | then (asset.reissuable == false) | |
12 | 14 | else false) | |
13 | 15 | then (asset.quantity == 1) | |
14 | 16 | else false | |
15 | 17 | ||
16 | 18 | ||
17 | 19 | @Callable(i) | |
18 | 20 | func lockSignArt () = { | |
19 | 21 | let addressStr = toString(i.caller) | |
20 | 22 | let assetId = value(value(i.payments[0]).assetId) | |
21 | 23 | let asset = value(assetInfo(assetId)) | |
22 | 24 | let assetDesc = asset.description | |
23 | 25 | if (if ((value(i.payments[0]).amount == 1)) | |
24 | 26 | then checkNFT(asset, signArtContractAddress) | |
25 | 27 | else false) | |
26 | 28 | then { | |
27 | 29 | let partsOfString = split(assetDesc, ",") | |
28 | 30 | let creatorStr = drop(split(partsOfString[0], ":")[1], 1) | |
29 | 31 | let artIdStr = drop(split(partsOfString[1], ":")[1], 1) | |
30 | 32 | let name = getStringValue(Address(signArtContractAddress), ((("art_name_" + artIdStr) + "_") + creatorStr)) | |
31 | 33 | let artDesc = getStringValue(Address(signArtContractAddress), ((("art_desc_" + artIdStr) + "_") + creatorStr)) | |
32 | 34 | let artUrl = getStringValue(Address(signArtContractAddress), ((("art_display_cid_" + artIdStr) + "_") + creatorStr)) | |
33 | 35 | let desc = if ((size(artDesc) > 0)) | |
34 | 36 | then artDesc | |
35 | 37 | else "NFT from signArt" | |
36 | 38 | let imageLink = ("https://ipfs.io/ipfs/" + artUrl) | |
37 | 39 | if (if ((size(name) > 0)) | |
38 | 40 | then (size(artUrl) > 0) | |
39 | 41 | else false) | |
40 | 42 | then { | |
41 | 43 | let stakedNFTIdStr = match invoke(Address(nftCreationAddress), "createNFT", [take(name, 16), desc, imageLink, "signArt"], nil) { | |
42 | 44 | case x: String => | |
43 | 45 | x | |
44 | 46 | case _ => | |
45 | - | throw(" | |
47 | + | throw("Something went wrong during creation of NFT") | |
46 | 48 | } | |
47 | 49 | if ((stakedNFTIdStr == stakedNFTIdStr)) | |
48 | - | then [ScriptTransfer(i.caller, 1, fromBase58String(stakedNFTIdStr)), StringEntry((("signArtNft_" + toBase58String(assetId)) + "_owner"), addressStr), StringEntry((("signArtNft_" + stakedNFTIdStr) + "_assetId"), toBase58String(assetId))] | |
50 | + | then $Tuple2([ScriptTransfer(i.caller, 1, fromBase58String(stakedNFTIdStr)), StringEntry((("signArtNft_" + toBase58String(assetId)) + "_owner"), addressStr), StringEntry((("signArtNft_" + stakedNFTIdStr) + "_assetId"), toBase58String(assetId))], stakedNFTIdStr) | |
49 | 51 | else throw("Strict value is not equal to itself.") | |
50 | 52 | } | |
51 | 53 | else throw("Wrong data for create NFT") | |
52 | 54 | } | |
53 | 55 | else throw("Ivalid NFT attached") | |
54 | 56 | } | |
55 | 57 | ||
56 | 58 | ||
57 | 59 | ||
58 | 60 | @Callable(i) | |
59 | 61 | func unlockSignArt () = { | |
60 | 62 | let addressStr = toString(i.caller) | |
61 | 63 | let stakedNFTId = value(value(i.payments[0]).assetId) | |
62 | 64 | let stakedNFTAsset = value(assetInfo(stakedNFTId)) | |
63 | 65 | if (if ((value(i.payments[0]).amount == 1)) | |
64 | 66 | then true | |
65 | 67 | else checkNFT(stakedNFTAsset, nftCreationAddress)) | |
66 | 68 | then { | |
67 | 69 | let stakedNFTIdStr = toBase58String(stakedNFTAsset.id) | |
68 | 70 | let assetIdStr = getStringValue((("signArtNft_" + stakedNFTIdStr) + "_assetId")) | |
69 | 71 | let ownerStr = getStringValue((("signArtNft_" + assetIdStr) + "_owner")) | |
70 | 72 | let assetId = fromBase58String(assetIdStr) | |
71 | 73 | if (if ((size(ownerStr) > 0)) | |
72 | 74 | then (ownerStr == addressStr) | |
73 | 75 | else false) | |
74 | 76 | then [ScriptTransfer(i.caller, 1, assetId), Burn(stakedNFTId, 1), DeleteEntry((("signArtNft_" + stakedNFTIdStr) + "_assetId")), DeleteEntry((("signArtNft_" + assetIdStr) + "_owner"))] | |
75 | 77 | else throw("This NFT is not yours") | |
76 | 78 | } | |
77 | 79 | else throw("Ivalid NFT attached") | |
78 | 80 | } | |
79 | 81 | ||
80 | 82 | ||
83 | + | ||
84 | + | @Callable(i) | |
85 | + | func lockAndSellNFT (buyOutPrice,buyOutAssetId) = { | |
86 | + | let stakedNFTIdStr = match invoke(this, "lockSignArt", nil, [i.payments[0]]) { | |
87 | + | case s: String => | |
88 | + | s | |
89 | + | case _ => | |
90 | + | throw("Somthing wrong when lock SignArt NFT") | |
91 | + | } | |
92 | + | if ((stakedNFTIdStr == stakedNFTIdStr)) | |
93 | + | then if ((size(stakedNFTIdStr) > 0)) | |
94 | + | then match invoke(Address(marketplaceContractAddress), "sellNFT", [buyOutPrice, buyOutAssetId], [AttachedPayment(fromBase58String(stakedNFTIdStr), 1)]) { | |
95 | + | case _ => | |
96 | + | nil | |
97 | + | } | |
98 | + | else throw("Invalid created NFT") | |
99 | + | else throw("Strict value is not equal to itself.") | |
100 | + | } | |
101 | + | ||
102 | + | ||
81 | 103 | @Verifier(tx) | |
82 | 104 | func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) | |
83 | 105 |
github/deemru/w8io/026f985 42.97 ms ◑