tx · 5cakqHAqShjpUpBsUhQULjV9fbbfeXapvRiSNKiDgeab

3PPgeYTWMRZ7S7jSLpnVuKKB9r6XuDk3ndC:  -0.01400000 Waves

2022.02.20 14:46 [2997022] smart account 3PPgeYTWMRZ7S7jSLpnVuKKB9r6XuDk3ndC > SELF 0.00000000 Waves

{ "type": 13, "id": "5cakqHAqShjpUpBsUhQULjV9fbbfeXapvRiSNKiDgeab", "fee": 1400000, "feeAssetId": null, "timestamp": 1645357593744, "version": 2, "chainId": 87, "sender": "3PPgeYTWMRZ7S7jSLpnVuKKB9r6XuDk3ndC", "senderPublicKey": "AWoQVon5Ld79iWytFLN2MSSJr9ow7XEMVaH8emaRJp3Z", "proofs": [ "2yHLoPCzz9aEqR2E1y35xxgPLd7N425FnzdYJWDAh8PVsrNcEA2ahiGaX8gaKEvQ34mrZKdccFEmLxpyqvT468vD" ], "script": "base64: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", "height": 2997022, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: BkyB6mPHLgzNC49UqD88E9pcA8ZyizoSXjEtebQC7Vm7 Next: FP4VaqVD8u1zKawTuXvCFN194CogX8gwq7GsMrSAEWuZ Diff:
OldNewDifferences
3434 then artDesc
3535 else "NFT from signArt"
3636 let imageLink = ("https://ipfs.io/ipfs/" + artUrl)
37- let stakedNFTIdStr = match invoke(Address(nftCreationAddress), "createNFT", [name, desc, imageLink, "signArt"], nil) {
38- case x: String =>
39- x
40- case _ =>
41- throw("something went wrong during creation of NFT")
42- }
43- if ((stakedNFTIdStr == stakedNFTIdStr))
44- then [ScriptTransfer(i.caller, 1, fromBase58String(stakedNFTIdStr)), StringEntry((("signArtNft_" + toBase58String(assetId)) + "_owner"), addressStr), StringEntry((("signArtNft_" + stakedNFTIdStr) + "_assetId"), toBase58String(assetId))]
45- else throw("Strict value is not equal to itself.")
37+ if (if ((size(name) > 0))
38+ then (size(artUrl) > 0)
39+ else false)
40+ then {
41+ let stakedNFTIdStr = match invoke(Address(nftCreationAddress), "createNFT", [take(name, 16), desc, imageLink, "signArt"], nil) {
42+ case x: String =>
43+ x
44+ case _ =>
45+ throw("something went wrong during creation of NFT")
46+ }
47+ if ((stakedNFTIdStr == stakedNFTIdStr))
48+ then [ScriptTransfer(i.caller, 1, fromBase58String(stakedNFTIdStr)), StringEntry((("signArtNft_" + toBase58String(assetId)) + "_owner"), addressStr), StringEntry((("signArtNft_" + stakedNFTIdStr) + "_assetId"), toBase58String(assetId))]
49+ else throw("Strict value is not equal to itself.")
50+ }
51+ else throw("Wrong data for create NFT")
4652 }
4753 else throw("Ivalid NFT attached")
4854 }
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let nftCreationAddress = base58'3P8LVqVKhTViMJau96KNir6FhHr4WnfoW57'
55
66 let signArtContractAddress = base58'3PDBLdsUrcsiPxNbt8g2gQVoefKgzt3kJzV'
77
88 func checkNFT (asset,issuerAddress) = if (if (if ((asset.issuer.bytes == issuerAddress))
99 then (asset.decimals == 0)
1010 else false)
1111 then (asset.reissuable == false)
1212 else false)
1313 then (asset.quantity == 1)
1414 else false
1515
1616
1717 @Callable(i)
1818 func lockSignArt () = {
1919 let addressStr = toString(i.caller)
2020 let assetId = value(value(i.payments[0]).assetId)
2121 let asset = value(assetInfo(assetId))
2222 let assetDesc = asset.description
2323 if (if ((value(i.payments[0]).amount == 1))
2424 then checkNFT(asset, signArtContractAddress)
2525 else false)
2626 then {
2727 let partsOfString = split(assetDesc, ",")
2828 let creatorStr = drop(split(partsOfString[0], ":")[1], 1)
2929 let artIdStr = drop(split(partsOfString[1], ":")[1], 1)
3030 let name = getStringValue(Address(signArtContractAddress), ((("art_name_" + artIdStr) + "_") + creatorStr))
3131 let artDesc = getStringValue(Address(signArtContractAddress), ((("art_desc_" + artIdStr) + "_") + creatorStr))
3232 let artUrl = getStringValue(Address(signArtContractAddress), ((("art_display_cid_" + artIdStr) + "_") + creatorStr))
3333 let desc = if ((size(artDesc) > 0))
3434 then artDesc
3535 else "NFT from signArt"
3636 let imageLink = ("https://ipfs.io/ipfs/" + artUrl)
37- let stakedNFTIdStr = match invoke(Address(nftCreationAddress), "createNFT", [name, desc, imageLink, "signArt"], nil) {
38- case x: String =>
39- x
40- case _ =>
41- throw("something went wrong during creation of NFT")
42- }
43- if ((stakedNFTIdStr == stakedNFTIdStr))
44- then [ScriptTransfer(i.caller, 1, fromBase58String(stakedNFTIdStr)), StringEntry((("signArtNft_" + toBase58String(assetId)) + "_owner"), addressStr), StringEntry((("signArtNft_" + stakedNFTIdStr) + "_assetId"), toBase58String(assetId))]
45- else throw("Strict value is not equal to itself.")
37+ if (if ((size(name) > 0))
38+ then (size(artUrl) > 0)
39+ else false)
40+ then {
41+ let stakedNFTIdStr = match invoke(Address(nftCreationAddress), "createNFT", [take(name, 16), desc, imageLink, "signArt"], nil) {
42+ case x: String =>
43+ x
44+ case _ =>
45+ throw("something went wrong during creation of NFT")
46+ }
47+ if ((stakedNFTIdStr == stakedNFTIdStr))
48+ then [ScriptTransfer(i.caller, 1, fromBase58String(stakedNFTIdStr)), StringEntry((("signArtNft_" + toBase58String(assetId)) + "_owner"), addressStr), StringEntry((("signArtNft_" + stakedNFTIdStr) + "_assetId"), toBase58String(assetId))]
49+ else throw("Strict value is not equal to itself.")
50+ }
51+ else throw("Wrong data for create NFT")
4652 }
4753 else throw("Ivalid NFT attached")
4854 }
4955
5056
5157
5258 @Callable(i)
5359 func unlockSignArt () = {
5460 let addressStr = toString(i.caller)
5561 let stakedNFTId = value(value(i.payments[0]).assetId)
5662 let stakedNFTAsset = value(assetInfo(stakedNFTId))
5763 if (if ((value(i.payments[0]).amount == 1))
5864 then true
5965 else checkNFT(stakedNFTAsset, nftCreationAddress))
6066 then {
6167 let stakedNFTIdStr = toBase58String(stakedNFTAsset.id)
6268 let assetIdStr = getStringValue((("signArtNft_" + stakedNFTIdStr) + "_assetId"))
6369 let ownerStr = getStringValue((("signArtNft_" + assetIdStr) + "_owner"))
6470 let assetId = fromBase58String(assetIdStr)
6571 if (if ((size(ownerStr) > 0))
6672 then (ownerStr == addressStr)
6773 else false)
6874 then [ScriptTransfer(i.caller, 1, assetId), Burn(stakedNFTId, 1), DeleteEntry((("signArtNft_" + stakedNFTIdStr) + "_assetId")), DeleteEntry((("signArtNft_" + assetIdStr) + "_owner"))]
6975 else throw("This NFT is not yours")
7076 }
7177 else throw("Ivalid NFT attached")
7278 }
7379
7480
7581 @Verifier(tx)
7682 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
7783

github/deemru/w8io/873ac7e 
44.63 ms