tx · Ba5XMiZYyC4PkWJWSYgccQWTtLG1f6TiszZcZ4WoBo16

3P6fAxtw12pjFhayEfpcUWxgu2BHVCeP78A:  -0.01400000 Waves

2022.04.19 23:35 [3081238] smart account 3P6fAxtw12pjFhayEfpcUWxgu2BHVCeP78A > SELF 0.00000000 Waves

{ "type": 13, "id": "Ba5XMiZYyC4PkWJWSYgccQWTtLG1f6TiszZcZ4WoBo16", "fee": 1400000, "feeAssetId": null, "timestamp": 1650400551762, "version": 2, "chainId": 87, "sender": "3P6fAxtw12pjFhayEfpcUWxgu2BHVCeP78A", "senderPublicKey": "A96wNJF8YTgx1J9Q4nK3oqNoExh6dPSyFAdEkmzN7XDa", "proofs": [ "c1DPZQrAT93VRAT2qpazztchUapz1D8MAx8RyT11RHdWRMMBq9DNVXDAxYiDsoxwgh5tkMLYLEkpJiTmRy8Jfeo" ], "script": "base64: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", "height": 3081238, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 5ebf5trNvF9NcnnV47xAfzfb9a37bBot94vu6ima3YvR Next: DAXZQfHjV3Fv1ohBnSkfWTa4voThuwbp5ZHQ7narcJBQ Diff:
OldNewDifferences
9191 }
9292 else toBase58String(asset.id)
9393 let sellArgs = if (isDefined(wrapAddress))
94- then ([buyOutPrice, buyOutAssetId] :+ toString(i.caller))
95- else [buyOutPrice, buyOutAssetId]
94+ then [buyOutPrice, buyOutAssetId, toString(i.caller)]
95+ else [buyOutPrice, buyOutAssetId, ""]
9696 if ((size(stakedNFTIdStr) > 0))
9797 then {
9898 let inv = invoke(Address(marketplaceContractAddress), "sellNFT", sellArgs, [AttachedPayment(fromBase58String(stakedNFTIdStr), 1)])
112112 if (isNftFromMarketplace(asset))
113113 then {
114114 let cancelArgs = if (isDefined(wrapAddress))
115- then ([nftId] :+ toString(i.caller))
116- else [nftId]
115+ then [nftId, toString(i.caller)]
116+ else [nftId, ""]
117117 let canceledNftStr = match invoke(Address(marketplaceContractAddress), "cancelSell", cancelArgs, nil) {
118118 case s: String =>
119119 s
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let nftCreationAddress = base58'3PFQjjDMiZKQZdu5JqTHD7HwgSXyp9Rw9By'
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 unit
5252
5353
5454 func getAddressForUnwrap (nftStr) = {
5555 let isSignArt = match getString(Address(nftSignArtWrapper), (("signArtNft_" + nftStr) + "_assetId")) {
5656 case s: String =>
5757 (size(s) > 0)
5858 case _ =>
5959 false
6060 }
6161 let isDuck = match getString(Address(nftDuckWrapper), (("nft_" + nftStr) + "_duckId")) {
6262 case s: String =>
6363 (size(s) > 0)
6464 case _ =>
6565 false
6666 }
6767 if (isSignArt)
6868 then Address(nftSignArtWrapper)
6969 else if (isDuck)
7070 then Address(nftDuckWrapper)
7171 else unit
7272 }
7373
7474
7575 @Callable(i)
7676 func lockAndSellNFT (buyOutPrice,buyOutAssetId) = {
7777 let assetId = value(value(i.payments[0]).assetId)
7878 let asset = value(assetInfo(assetId))
7979 let wrapAddress = getAddressForWrap(asset)
8080 let stakedNFTIdStr = if (isDefined(wrapAddress))
8181 then {
8282 let lockedNftStr = match invoke(value(wrapAddress), "lock", nil, [i.payments[0]]) {
8383 case s: String =>
8484 s
8585 case _ =>
8686 throw(("Somthing wrong when lock NFT in address: " + toBase58String(value(wrapAddress).bytes)))
8787 }
8888 if ((lockedNftStr == lockedNftStr))
8989 then lockedNftStr
9090 else throw("Strict value is not equal to itself.")
9191 }
9292 else toBase58String(asset.id)
9393 let sellArgs = if (isDefined(wrapAddress))
94- then ([buyOutPrice, buyOutAssetId] :+ toString(i.caller))
95- else [buyOutPrice, buyOutAssetId]
94+ then [buyOutPrice, buyOutAssetId, toString(i.caller)]
95+ else [buyOutPrice, buyOutAssetId, ""]
9696 if ((size(stakedNFTIdStr) > 0))
9797 then {
9898 let inv = invoke(Address(marketplaceContractAddress), "sellNFT", sellArgs, [AttachedPayment(fromBase58String(stakedNFTIdStr), 1)])
9999 if ((inv == inv))
100100 then nil
101101 else throw("Strict value is not equal to itself.")
102102 }
103103 else throw("The created NFT is invalid")
104104 }
105105
106106
107107
108108 @Callable(i)
109109 func cancelSellAndUnlock (nftId) = {
110110 let asset = value(assetInfo(fromBase58String(nftId)))
111111 let wrapAddress = getAddressForUnwrap(nftId)
112112 if (isNftFromMarketplace(asset))
113113 then {
114114 let cancelArgs = if (isDefined(wrapAddress))
115- then ([nftId] :+ toString(i.caller))
116- else [nftId]
115+ then [nftId, toString(i.caller)]
116+ else [nftId, ""]
117117 let canceledNftStr = match invoke(Address(marketplaceContractAddress), "cancelSell", cancelArgs, nil) {
118118 case s: String =>
119119 s
120120 case _ =>
121121 throw("Somthing wrong when cancel sell NFT")
122122 }
123123 if ((canceledNftStr == canceledNftStr))
124124 then if (isDefined(wrapAddress))
125125 then {
126126 let unlockedNftStr = match invoke(value(wrapAddress), "unlock", nil, [AttachedPayment(asset.id, 1)]) {
127127 case s: String =>
128128 s
129129 case _ =>
130130 throw(("Somthing wrong when unlock NFT in address: " + toBase58String(value(wrapAddress).bytes)))
131131 }
132132 if ((unlockedNftStr == unlockedNftStr))
133133 then [ScriptTransfer(i.caller, 1, fromBase58String(unlockedNftStr))]
134134 else throw("Strict value is not equal to itself.")
135135 }
136136 else [ScriptTransfer(i.caller, 1, fromBase58String(canceledNftStr))]
137137 else throw("Strict value is not equal to itself.")
138138 }
139139 else throw("Ivalid NFT attached")
140140 }
141141
142142
143143
144144 @Callable(i)
145145 func buy (nftId) = {
146146 let boughtNft = match invoke(Address(marketplaceContractAddress), "buyNFT", [nftId], i.payments) {
147147 case s: String =>
148148 s
149149 case _ =>
150150 throw("Somthing wrong when buy NFT")
151151 }
152152 if ((boughtNft == boughtNft))
153153 then {
154154 let asset = value(assetInfo(fromBase58String(boughtNft)))
155155 if (if ((size(boughtNft) > 0))
156156 then isNftFromMarketplace(asset)
157157 else false)
158158 then {
159159 let wrapAddress = getAddressForUnwrap(nftId)
160160 if (isDefined(wrapAddress))
161161 then {
162162 let unlockedNftStr = match invoke(value(wrapAddress), "unlock", nil, [AttachedPayment(asset.id, 1)]) {
163163 case s: String =>
164164 s
165165 case _ =>
166166 throw(("Somthing wrong when unlock NFT in address: " + toBase58String(value(wrapAddress).bytes)))
167167 }
168168 if ((unlockedNftStr == unlockedNftStr))
169169 then [ScriptTransfer(i.caller, 1, fromBase58String(unlockedNftStr))]
170170 else throw("Strict value is not equal to itself.")
171171 }
172172 else [ScriptTransfer(i.caller, 1, fromBase58String(boughtNft))]
173173 }
174174 else throw("Ivalid bought NFT")
175175 }
176176 else throw("Strict value is not equal to itself.")
177177 }
178178
179179
180180 @Verifier(tx)
181181 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
182182

github/deemru/w8io/3ef1775 
44.18 ms