tx · BkyB6mPHLgzNC49UqD88E9pcA8ZyizoSXjEtebQC7Vm7

3PPgeYTWMRZ7S7jSLpnVuKKB9r6XuDk3ndC:  -0.01000000 Waves

2022.02.19 16:45 [2995683] smart account 3PPgeYTWMRZ7S7jSLpnVuKKB9r6XuDk3ndC > SELF 0.00000000 Waves

{ "type": 13, "id": "BkyB6mPHLgzNC49UqD88E9pcA8ZyizoSXjEtebQC7Vm7", "fee": 1000000, "feeAssetId": null, "timestamp": 1645278303132, "version": 2, "chainId": 87, "sender": "3PPgeYTWMRZ7S7jSLpnVuKKB9r6XuDk3ndC", "senderPublicKey": "AWoQVon5Ld79iWytFLN2MSSJr9ow7XEMVaH8emaRJp3Z", "proofs": [ "eqDndfHobjJuvdsn12caCQpYRUBGFeihi5EySCbVuVwSMV9pPCPW8XhKvsio29Yjc1GuyXZgpFhfWgG4HUifzWR" ], "script": "base64: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", "height": 2995683, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: 5cakqHAqShjpUpBsUhQULjV9fbbfeXapvRiSNKiDgeab Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 5 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+let nftCreationAddress = base58'3P8LVqVKhTViMJau96KNir6FhHr4WnfoW57'
5+
6+let signArtContractAddress = base58'3PDBLdsUrcsiPxNbt8g2gQVoefKgzt3kJzV'
7+
8+func checkNFT (asset,issuerAddress) = if (if (if ((asset.issuer.bytes == issuerAddress))
9+ then (asset.decimals == 0)
10+ else false)
11+ then (asset.reissuable == false)
12+ else false)
13+ then (asset.quantity == 1)
14+ else false
15+
16+
17+@Callable(i)
18+func lockSignArt () = {
19+ let addressStr = toString(i.caller)
20+ let assetId = value(value(i.payments[0]).assetId)
21+ let asset = value(assetInfo(assetId))
22+ let assetDesc = asset.description
23+ if (if ((value(i.payments[0]).amount == 1))
24+ then checkNFT(asset, signArtContractAddress)
25+ else false)
26+ then {
27+ let partsOfString = split(assetDesc, ",")
28+ let creatorStr = drop(split(partsOfString[0], ":")[1], 1)
29+ let artIdStr = drop(split(partsOfString[1], ":")[1], 1)
30+ let name = getStringValue(Address(signArtContractAddress), ((("art_name_" + artIdStr) + "_") + creatorStr))
31+ let artDesc = getStringValue(Address(signArtContractAddress), ((("art_desc_" + artIdStr) + "_") + creatorStr))
32+ let artUrl = getStringValue(Address(signArtContractAddress), ((("art_display_cid_" + artIdStr) + "_") + creatorStr))
33+ let desc = if ((size(artDesc) > 0))
34+ then artDesc
35+ else "NFT from signArt"
36+ 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.")
46+ }
47+ else throw("Ivalid NFT attached")
48+ }
49+
50+
51+
52+@Callable(i)
53+func unlockSignArt () = {
54+ let addressStr = toString(i.caller)
55+ let stakedNFTId = value(value(i.payments[0]).assetId)
56+ let stakedNFTAsset = value(assetInfo(stakedNFTId))
57+ if (if ((value(i.payments[0]).amount == 1))
58+ then true
59+ else checkNFT(stakedNFTAsset, nftCreationAddress))
60+ then {
61+ let stakedNFTIdStr = toBase58String(stakedNFTAsset.id)
62+ let assetIdStr = getStringValue((("signArtNft_" + stakedNFTIdStr) + "_assetId"))
63+ let ownerStr = getStringValue((("signArtNft_" + assetIdStr) + "_owner"))
64+ let assetId = fromBase58String(assetIdStr)
65+ if (if ((size(ownerStr) > 0))
66+ then (ownerStr == addressStr)
67+ else false)
68+ then [ScriptTransfer(i.caller, 1, assetId), Burn(stakedNFTId, 1), DeleteEntry((("signArtNft_" + stakedNFTIdStr) + "_assetId")), DeleteEntry((("signArtNft_" + assetIdStr) + "_owner"))]
69+ else throw("This NFT is not yours")
70+ }
71+ else throw("Ivalid NFT attached")
72+ }
73+
74+
75+@Verifier(tx)
76+func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
77+

github/deemru/w8io/3ef1775 
32.26 ms