tx · GCNdi6gmqRGLLuCFfyLU4P8Su7FdxPwAwuxUEzbisWih

3PPgeYTWMRZ7S7jSLpnVuKKB9r6XuDk3ndC:  -0.01400000 Waves

2022.02.24 00:09 [3001911] smart account 3PPgeYTWMRZ7S7jSLpnVuKKB9r6XuDk3ndC > SELF 0.00000000 Waves

{ "type": 13, "id": "GCNdi6gmqRGLLuCFfyLU4P8Su7FdxPwAwuxUEzbisWih", "fee": 1400000, "feeAssetId": null, "timestamp": 1645650566012, "version": 2, "chainId": 87, "sender": "3PPgeYTWMRZ7S7jSLpnVuKKB9r6XuDk3ndC", "senderPublicKey": "AWoQVon5Ld79iWytFLN2MSSJr9ow7XEMVaH8emaRJp3Z", "proofs": [ "55XESprbzPPjW8gox8DtrMHzH7TY3Hs73ZNgYDxLpeWTncUjtptANhBWqxPiev7uGtriNreCmz3BX42axTfRdesc" ], "script": "base64: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", "height": 3001911, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 6ravAR7wb5Ytc46doj4pyUcnJuLn6v12kcL9zfKH6Lep Next: 6T4aLPWGTgmswr6zRifEwszdipKGFHr9Mi6ar5suRx2a 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 lock () = {
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)
3737 if (if ((size(name) > 0))
3838 then (size(artUrl) > 0)
3939 else false)
4040 then {
4141 let stakedNFTIdStr = match invoke(Address(nftCreationAddress), "createNFT", [take(name, 16), desc, imageLink, "signArt"], nil) {
4242 case x: String =>
4343 x
4444 case _ =>
4545 throw("Something went wrong during creation of NFT")
4646 }
4747 if ((stakedNFTIdStr == stakedNFTIdStr))
4848 then $Tuple2([ScriptTransfer(i.caller, 1, fromBase58String(stakedNFTIdStr)), StringEntry((("signArtNft_" + toBase58String(assetId)) + "_owner"), addressStr), StringEntry((("signArtNft_" + stakedNFTIdStr) + "_assetId"), toBase58String(assetId))], stakedNFTIdStr)
4949 else throw("Strict value is not equal to itself.")
5050 }
5151 else throw("Wrong data for create NFT")
5252 }
5353 else throw("Ivalid NFT attached")
5454 }
5555
5656
5757
5858 @Callable(i)
5959 func unlock () = {
6060 let addressStr = toString(i.caller)
6161 let stakedNFTId = value(value(i.payments[0]).assetId)
6262 let stakedNFTAsset = value(assetInfo(stakedNFTId))
6363 if (if ((value(i.payments[0]).amount == 1))
6464 then true
6565 else checkNFT(stakedNFTAsset, nftCreationAddress))
6666 then {
6767 let stakedNFTIdStr = toBase58String(stakedNFTAsset.id)
6868 let assetIdStr = getStringValue((("signArtNft_" + stakedNFTIdStr) + "_assetId"))
6969 let ownerStr = getStringValue((("signArtNft_" + assetIdStr) + "_owner"))
7070 let assetId = fromBase58String(assetIdStr)
7171 if (if ((size(ownerStr) > 0))
7272 then (ownerStr == addressStr)
7373 else false)
7474 then $Tuple2([ScriptTransfer(i.caller, 1, assetId), Burn(stakedNFTId, 1), DeleteEntry((("signArtNft_" + stakedNFTIdStr) + "_assetId")), DeleteEntry((("signArtNft_" + assetIdStr) + "_owner"))], assetIdStr)
7575 else throw("This NFT is not yours")
7676 }
7777 else throw("Ivalid NFT attached")
7878 }
7979
8080
8181 @Verifier(tx)
8282 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
8383

github/deemru/w8io/6500d08 
38.22 ms