tx · Guh2syQEtvWf3NTzDc5UNQzqvz4FaeP6MtQfdJu1Lndy

3P6fAxtw12pjFhayEfpcUWxgu2BHVCeP78A:  -0.01400000 Waves

2022.05.30 19:12 [3140131] smart account 3P6fAxtw12pjFhayEfpcUWxgu2BHVCeP78A > SELF 0.00000000 Waves

{ "type": 13, "id": "Guh2syQEtvWf3NTzDc5UNQzqvz4FaeP6MtQfdJu1Lndy", "fee": 1400000, "feeAssetId": null, "timestamp": 1653927159867, "version": 2, "chainId": 87, "sender": "3P6fAxtw12pjFhayEfpcUWxgu2BHVCeP78A", "senderPublicKey": "A96wNJF8YTgx1J9Q4nK3oqNoExh6dPSyFAdEkmzN7XDa", "proofs": [ "3H287YvKbaJndcixQ2zGBoztAJbZ4teW9TKDr9NemfZm24iNKFq7vKQb9YeyXG55TrosZuP41cgmoLRUJbsiwYBc" ], "script": "base64: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", "height": 3140131, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: GKYzx5qgJZm742MXRWNHwDnWwtj7C6dSRyMAzu2gpAX4 Next: BKTR6cw4JsKbGpqZHXvDA1PiLgcD1oniRXe2Gtaa7p5S Diff:
OldNewDifferences
153153 throw(("Somthing wrong when unlock NFT in address: " + toBase58String(value(wrapAddress).bytes)))
154154 }
155155 if ((unlockedNftStr == unlockedNftStr))
156- then [ScriptTransfer(i.caller, 1, fromBase58String(unlockedNftStr))]
156+ then $Tuple2([ScriptTransfer(i.caller, 1, fromBase58String(unlockedNftStr))], unlockedNftStr)
157157 else throw("Strict value is not equal to itself.")
158158 }
159- else [ScriptTransfer(i.caller, 1, asset.id)]
159+ else $Tuple2([ScriptTransfer(i.caller, 1, asset.id)], toBase58String(asset.id))
160160 }
161161 else throw("Ivalid NFT attached")
162162 }
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 if ((size(stakedNFTIdStr) > 0))
9494 then {
9595 let inv = invoke(Address(marketplaceContractAddress), "sellNFT", [buyOutPrice, buyOutAssetId], [AttachedPayment(fromBase58String(stakedNFTIdStr), 1)])
9696 if ((inv == inv))
9797 then nil
9898 else throw("Strict value is not equal to itself.")
9999 }
100100 else throw("The created NFT is invalid")
101101 }
102102
103103
104104
105105 @Callable(i)
106106 func cancelSellAndUnlock (nftId) = {
107107 let asset = value(assetInfo(fromBase58String(nftId)))
108108 let wrapAddress = getAddressForUnwrap(nftId)
109109 if (isNftFromMarketplace(asset))
110110 then {
111111 let canceledNftStr = match invoke(Address(marketplaceContractAddress), "cancelSell", [nftId], nil) {
112112 case s: String =>
113113 s
114114 case _ =>
115115 throw("Somthing wrong when cancel sell NFT")
116116 }
117117 if ((canceledNftStr == canceledNftStr))
118118 then if (isDefined(wrapAddress))
119119 then {
120120 let unlockedNftStr = match invoke(value(wrapAddress), "unlock", nil, [AttachedPayment(asset.id, 1)]) {
121121 case s: String =>
122122 s
123123 case _ =>
124124 throw(("Somthing wrong when unlock NFT in address: " + toBase58String(value(wrapAddress).bytes)))
125125 }
126126 if ((unlockedNftStr == unlockedNftStr))
127127 then [ScriptTransfer(i.caller, 1, fromBase58String(unlockedNftStr))]
128128 else throw("Strict value is not equal to itself.")
129129 }
130130 else [ScriptTransfer(i.caller, 1, fromBase58String(canceledNftStr))]
131131 else throw("Strict value is not equal to itself.")
132132 }
133133 else throw("Ivalid NFT attached")
134134 }
135135
136136
137137
138138 @Callable(i)
139139 func unlock () = {
140140 let asset = value(assetInfo(value(i.payments[0].assetId)))
141141 if (if (isNftFromMarketplace(asset))
142142 then (i.payments[0].amount == 1)
143143 else false)
144144 then {
145145 let assetIdStr = toBase58String(asset.id)
146146 let wrapAddress = getAddressForUnwrap(assetIdStr)
147147 if (isDefined(wrapAddress))
148148 then {
149149 let unlockedNftStr = match invoke(value(wrapAddress), "unlock", nil, [AttachedPayment(asset.id, 1)]) {
150150 case s: String =>
151151 s
152152 case _ =>
153153 throw(("Somthing wrong when unlock NFT in address: " + toBase58String(value(wrapAddress).bytes)))
154154 }
155155 if ((unlockedNftStr == unlockedNftStr))
156- then [ScriptTransfer(i.caller, 1, fromBase58String(unlockedNftStr))]
156+ then $Tuple2([ScriptTransfer(i.caller, 1, fromBase58String(unlockedNftStr))], unlockedNftStr)
157157 else throw("Strict value is not equal to itself.")
158158 }
159- else [ScriptTransfer(i.caller, 1, asset.id)]
159+ else $Tuple2([ScriptTransfer(i.caller, 1, asset.id)], toBase58String(asset.id))
160160 }
161161 else throw("Ivalid NFT attached")
162162 }
163163
164164
165165
166166 @Callable(i)
167167 func buy (nftId) = {
168168 let boughtNft = match invoke(Address(marketplaceContractAddress), "buyNFT", [nftId], i.payments) {
169169 case s: String =>
170170 s
171171 case _ =>
172172 throw("Somthing wrong when buy NFT")
173173 }
174174 if ((boughtNft == boughtNft))
175175 then {
176176 let asset = value(assetInfo(fromBase58String(boughtNft)))
177177 if (if ((size(boughtNft) > 0))
178178 then isNftFromMarketplace(asset)
179179 else false)
180180 then {
181181 let wrapAddress = getAddressForUnwrap(nftId)
182182 if (isDefined(wrapAddress))
183183 then {
184184 let unlockedNftStr = match invoke(value(wrapAddress), "unlock", nil, [AttachedPayment(asset.id, 1)]) {
185185 case s: String =>
186186 s
187187 case _ =>
188188 throw(("Somthing wrong when unlock NFT in address: " + toBase58String(value(wrapAddress).bytes)))
189189 }
190190 if ((unlockedNftStr == unlockedNftStr))
191191 then [ScriptTransfer(i.caller, 1, fromBase58String(unlockedNftStr))]
192192 else throw("Strict value is not equal to itself.")
193193 }
194194 else [ScriptTransfer(i.caller, 1, fromBase58String(boughtNft))]
195195 }
196196 else throw("Ivalid bought NFT")
197197 }
198198 else throw("Strict value is not equal to itself.")
199199 }
200200
201201
202202 @Verifier(tx)
203203 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
204204

github/deemru/w8io/3ef1775 
39.34 ms