tx · 89NdQnAusmqhWn2q2LbrceCDnXKbsKUQjeQem7gAuofC

3P6fAxtw12pjFhayEfpcUWxgu2BHVCeP78A:  -0.01400000 Waves

2022.02.24 00:24 [3001929] smart account 3P6fAxtw12pjFhayEfpcUWxgu2BHVCeP78A > SELF 0.00000000 Waves

{ "type": 13, "id": "89NdQnAusmqhWn2q2LbrceCDnXKbsKUQjeQem7gAuofC", "fee": 1400000, "feeAssetId": null, "timestamp": 1645651488430, "version": 2, "chainId": 87, "sender": "3P6fAxtw12pjFhayEfpcUWxgu2BHVCeP78A", "senderPublicKey": "A96wNJF8YTgx1J9Q4nK3oqNoExh6dPSyFAdEkmzN7XDa", "proofs": [ "Mc9cojdDuQdJyDgNtzgrTX6ozZY7sBCmAM3jy4znWFrcxJsgVpDLvRgFfmmcWnutj2L513QfcNpUGjN7kHtpP3y" ], "script": "base64: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", "height": 3001929, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 562Uq8pLcxgMDVGpLuD5cLgh7Gp8aLrJ9idb8oE52S2V Next: GWyDKJWV4boixsSnPnXMUXk1k6mWQLmcQS4vsa6v8DwL Diff:
OldNewDifferences
8989 then {
9090 let canceledAsset = value(assetInfo(fromBase58String(originalSAAssetId)))
9191 let wrapAddress = getAddressForWrap(canceledAsset)
92- let unlockedNftStr = match invoke(wrapAddress, "unlock", nil, [AttachedPayment(canceledAsset.id, 1)]) {
92+ let unlockedNftStr = match invoke(wrapAddress, "unlock", nil, [AttachedPayment(asset.id, 1)]) {
9393 case s: String =>
9494 s
9595 case _ =>
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let nftCreationAddress = base58'3P8LVqVKhTViMJau96KNir6FhHr4WnfoW57'
55
66 let signArtNftCreationAddress = base58'3PDBLdsUrcsiPxNbt8g2gQVoefKgzt3kJzV'
77
88 let nftDuckWrapper = base58'3P3pDosq4GCwfJkvq4yqKvvoTwmoqc9qPmo'
99
1010 let nftSignArtWrapper = base58'3PPgeYTWMRZ7S7jSLpnVuKKB9r6XuDk3ndC'
1111
1212 let incubatorAddress = base58'3PEktVux2RhchSN63DsDo4b4mz4QqzKSeDv'
1313
1414 let breederAddress = base58'3PDVuU45H7Eh5dmtNbnRNRStGwULA7NY6Hb'
1515
1616 let marketplaceContractAddress = base58'3PATXDVE53rKJtkwXYV3tvuLVS2fDtGtKCc'
1717
1818 func ifSignArtNft (asset) = if (if (if ((asset.issuer.bytes == signArtNftCreationAddress))
1919 then (asset.decimals == 0)
2020 else false)
2121 then (asset.reissuable == false)
2222 else false)
2323 then (asset.quantity == 1)
2424 else false
2525
2626
2727 func ifDuckNft (asset) = if (if (if (if ((asset.issuer.bytes == incubatorAddress))
2828 then true
2929 else (asset.issuer.bytes == breederAddress))
3030 then (asset.decimals == 0)
3131 else false)
3232 then (asset.reissuable == false)
3333 else false)
3434 then (asset.quantity == 1)
3535 else false
3636
3737
3838 func isNftFromMarketplace (asset) = if (if (if ((asset.issuer.bytes == nftCreationAddress))
3939 then (asset.decimals == 0)
4040 else false)
4141 then (asset.reissuable == false)
4242 else false)
4343 then (asset.quantity == 1)
4444 else false
4545
4646
4747 func getAddressForWrap (asset) = if (ifSignArtNft(asset))
4848 then Address(nftSignArtWrapper)
4949 else if (ifDuckNft(asset))
5050 then Address(nftDuckWrapper)
5151 else throw("Unsupported NFT attached")
5252
5353
5454 @Callable(i)
5555 func lockAndSellNFT (buyOutPrice,buyOutAssetId) = {
5656 let assetId = value(value(i.payments[0]).assetId)
5757 let asset = value(assetInfo(assetId))
5858 let wrapAddress = getAddressForWrap(asset)
5959 let stakedNFTIdStr = match invoke(wrapAddress, "lock", nil, [i.payments[0]]) {
6060 case s: String =>
6161 s
6262 case _ =>
6363 throw(("Somthing wrong when lock NFT in address: " + toBase58String(wrapAddress.bytes)))
6464 }
6565 if ((stakedNFTIdStr == stakedNFTIdStr))
6666 then if ((size(stakedNFTIdStr) > 0))
6767 then {
6868 let inv = invoke(Address(marketplaceContractAddress), "sellNFT", [buyOutPrice, buyOutAssetId], [AttachedPayment(fromBase58String(stakedNFTIdStr), 1)])
6969 if ((inv == inv))
7070 then nil
7171 else throw("Strict value is not equal to itself.")
7272 }
7373 else throw("The created NFT is invalid")
7474 else throw("Strict value is not equal to itself.")
7575 }
7676
7777
7878
7979 @Callable(i)
8080 func cancelSellAndUnlock (nftId) = {
8181 let asset = value(assetInfo(fromBase58String(nftId)))
8282 let originalSAAssetId = getStringValue(Address(nftSignArtWrapper), (("signArtNft_" + nftId) + "_assetId"))
8383 if (if ((size(originalSAAssetId) > 0))
8484 then isNftFromMarketplace(asset)
8585 else false)
8686 then {
8787 let inv1 = invoke(Address(marketplaceContractAddress), "cancelSell", [nftId], nil)
8888 if ((inv1 == inv1))
8989 then {
9090 let canceledAsset = value(assetInfo(fromBase58String(originalSAAssetId)))
9191 let wrapAddress = getAddressForWrap(canceledAsset)
92- let unlockedNftStr = match invoke(wrapAddress, "unlock", nil, [AttachedPayment(canceledAsset.id, 1)]) {
92+ let unlockedNftStr = match invoke(wrapAddress, "unlock", nil, [AttachedPayment(asset.id, 1)]) {
9393 case s: String =>
9494 s
9595 case _ =>
9696 throw(("Somthing wrong when unlock NFT in address: " + toBase58String(wrapAddress.bytes)))
9797 }
9898 if ((unlockedNftStr == unlockedNftStr))
9999 then [ScriptTransfer(i.caller, 1, fromBase58String(unlockedNftStr))]
100100 else throw("Strict value is not equal to itself.")
101101 }
102102 else throw("Strict value is not equal to itself.")
103103 }
104104 else throw("Ivalid NFT attached")
105105 }
106106
107107
108108 @Verifier(tx)
109109 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
110110

github/deemru/w8io/3ef1775 
193.80 ms