tx · 5ebf5trNvF9NcnnV47xAfzfb9a37bBot94vu6ima3YvR

3P6fAxtw12pjFhayEfpcUWxgu2BHVCeP78A:  -0.01400000 Waves

2022.04.19 23:33 [3081236] smart account 3P6fAxtw12pjFhayEfpcUWxgu2BHVCeP78A > SELF 0.00000000 Waves

{ "type": 13, "id": "5ebf5trNvF9NcnnV47xAfzfb9a37bBot94vu6ima3YvR", "fee": 1400000, "feeAssetId": null, "timestamp": 1650400399466, "version": 2, "chainId": 87, "sender": "3P6fAxtw12pjFhayEfpcUWxgu2BHVCeP78A", "senderPublicKey": "A96wNJF8YTgx1J9Q4nK3oqNoExh6dPSyFAdEkmzN7XDa", "proofs": [ "2gzeBATRGoPS2ZyUsaYjqd3VQQNmo6nPgD8SFWQqERfGrjevxoZoQXhXgYoRy6CT22EHuFYrv3qK1rZTVD91nnWK" ], "script": "base64:AAIFAAAAAAAAABIIAhIECgIBCBIDCgEIEgMKAQgAAAAMAAAAABJuZnRDcmVhdGlvbkFkZHJlc3MBAAAAGgFXk93E0hfnIAr99yESTvDwdmcmgwN41FxMAAAAABlzaWduQXJ0TmZ0Q3JlYXRpb25BZGRyZXNzAQAAABoBV3tk1VvWnhe5qtPmj/wDXMjEFvibuoYp4gAAAAAObmZ0RHVja1dyYXBwZXIBAAAAGgFXFK1EUpul/f9hF//YOufxZ4qAnBS4L88eAAAAABFuZnRTaWduQXJ0V3JhcHBlcgEAAAAaAVfuoRoVw/G2X0Rl/1/IFTnEeUXVGEVHMAcAAAAAEGluY3ViYXRvckFkZHJlc3MBAAAAGgFXjLVIn36eFdUYl44bd/sJf2di2uFtYyVJAAAAAA5icmVlZGVyQWRkcmVzcwEAAAAaAVd+57n5ccRMeFx9eHuGcYJDFaZ5ag+2Hx4AAAAAGm1hcmtldHBsYWNlQ29udHJhY3RBZGRyZXNzAQAAABoBV12L8V/LKCBrH2ajyG7aC6iX7Q/o/clE8QEAAAAMaWZTaWduQXJ0TmZ0AAAAAQAAAAVhc3NldAMDAwkAAAAAAAACCAgFAAAABWFzc2V0AAAABmlzc3VlcgAAAAVieXRlcwUAAAAZc2lnbkFydE5mdENyZWF0aW9uQWRkcmVzcwkAAAAAAAACCAUAAAAFYXNzZXQAAAAIZGVjaW1hbHMAAAAAAAAAAAAHCQAAAAAAAAIIBQAAAAVhc3NldAAAAApyZWlzc3VhYmxlBwcJAAAAAAAAAggFAAAABWFzc2V0AAAACHF1YW50aXR5AAAAAAAAAAABBwEAAAAJaWZEdWNrTmZ0AAAAAQAAAAVhc3NldAMDAwMJAAAAAAAAAggIBQAAAAVhc3NldAAAAAZpc3N1ZXIAAAAFYnl0ZXMFAAAAEGluY3ViYXRvckFkZHJlc3MGCQAAAAAAAAIICAUAAAAFYXNzZXQAAAAGaXNzdWVyAAAABWJ5dGVzBQAAAA5icmVlZGVyQWRkcmVzcwkAAAAAAAACCAUAAAAFYXNzZXQAAAAIZGVjaW1hbHMAAAAAAAAAAAAHCQAAAAAAAAIIBQAAAAVhc3NldAAAAApyZWlzc3VhYmxlBwcJAAAAAAAAAggFAAAABWFzc2V0AAAACHF1YW50aXR5AAAAAAAAAAABBwEAAAAUaXNOZnRGcm9tTWFya2V0cGxhY2UAAAABAAAABWFzc2V0AwMDCQAAAAAAAAIICAUAAAAFYXNzZXQAAAAGaXNzdWVyAAAABWJ5dGVzBQAAABJuZnRDcmVhdGlvbkFkZHJlc3MJAAAAAAAAAggFAAAABWFzc2V0AAAACGRlY2ltYWxzAAAAAAAAAAAABwkAAAAAAAACCAUAAAAFYXNzZXQAAAAKcmVpc3N1YWJsZQcHCQAAAAAAAAIIBQAAAAVhc3NldAAAAAhxdWFudGl0eQAAAAAAAAAAAQcBAAAAEWdldEFkZHJlc3NGb3JXcmFwAAAAAQAAAAVhc3NldAMJAQAAAAxpZlNpZ25BcnROZnQAAAABBQAAAAVhc3NldAkBAAAAB0FkZHJlc3MAAAABBQAAABFuZnRTaWduQXJ0V3JhcHBlcgMJAQAAAAlpZkR1Y2tOZnQAAAABBQAAAAVhc3NldAkBAAAAB0FkZHJlc3MAAAABBQAAAA5uZnREdWNrV3JhcHBlcgUAAAAEdW5pdAEAAAATZ2V0QWRkcmVzc0ZvclVud3JhcAAAAAEAAAAGbmZ0U3RyBAAAAAlpc1NpZ25BcnQEAAAAByRtYXRjaDAJAAQdAAAAAgkBAAAAB0FkZHJlc3MAAAABBQAAABFuZnRTaWduQXJ0V3JhcHBlcgkAASwAAAACCQABLAAAAAICAAAAC3NpZ25BcnROZnRfBQAAAAZuZnRTdHICAAAACF9hc3NldElkAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAXMFAAAAByRtYXRjaDAJAABmAAAAAgkAATEAAAABBQAAAAFzAAAAAAAAAAAABwQAAAAGaXNEdWNrBAAAAAckbWF0Y2gwCQAEHQAAAAIJAQAAAAdBZGRyZXNzAAAAAQUAAAAObmZ0RHVja1dyYXBwZXIJAAEsAAAAAgkAASwAAAACAgAAAARuZnRfBQAAAAZuZnRTdHICAAAAB19kdWNrSWQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABcwUAAAAHJG1hdGNoMAkAAGYAAAACCQABMQAAAAEFAAAAAXMAAAAAAAAAAAAHAwUAAAAJaXNTaWduQXJ0CQEAAAAHQWRkcmVzcwAAAAEFAAAAEW5mdFNpZ25BcnRXcmFwcGVyAwUAAAAGaXNEdWNrCQEAAAAHQWRkcmVzcwAAAAEFAAAADm5mdER1Y2tXcmFwcGVyBQAAAAR1bml0AAAAAwAAAAFpAQAAAA5sb2NrQW5kU2VsbE5GVAAAAAIAAAALYnV5T3V0UHJpY2UAAAANYnV5T3V0QXNzZXRJZAQAAAAHYXNzZXRJZAkBAAAABXZhbHVlAAAAAQgJAQAAAAV2YWx1ZQAAAAEJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAAAAAHYXNzZXRJZAQAAAAFYXNzZXQJAQAAAAV2YWx1ZQAAAAEJAAPsAAAAAQUAAAAHYXNzZXRJZAQAAAALd3JhcEFkZHJlc3MJAQAAABFnZXRBZGRyZXNzRm9yV3JhcAAAAAEFAAAABWFzc2V0BAAAAA5zdGFrZWRORlRJZFN0cgMJAQAAAAlpc0RlZmluZWQAAAABBQAAAAt3cmFwQWRkcmVzcwQAAAAMbG9ja2VkTmZ0U3RyBAAAAAckbWF0Y2gwCQAD/AAAAAQJAQAAAAV2YWx1ZQAAAAEFAAAAC3dyYXBBZGRyZXNzAgAAAARsb2NrBQAAAANuaWwJAARMAAAAAgkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAUAAAADbmlsAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAXMFAAAAByRtYXRjaDAFAAAAAXMJAAACAAAAAQkAASwAAAACAgAAAClTb210aGluZyB3cm9uZyB3aGVuIGxvY2sgTkZUIGluIGFkZHJlc3M6IAkAAlgAAAABCAkBAAAABXZhbHVlAAAAAQUAAAALd3JhcEFkZHJlc3MAAAAFYnl0ZXMDCQAAAAAAAAIFAAAADGxvY2tlZE5mdFN0cgUAAAAMbG9ja2VkTmZ0U3RyBQAAAAxsb2NrZWROZnRTdHIJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACWAAAAAEIBQAAAAVhc3NldAAAAAJpZAQAAAAIc2VsbEFyZ3MDCQEAAAAJaXNEZWZpbmVkAAAAAQUAAAALd3JhcEFkZHJlc3MJAARNAAAAAgkABEwAAAACBQAAAAtidXlPdXRQcmljZQkABEwAAAACBQAAAA1idXlPdXRBc3NldElkBQAAAANuaWwJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyCQAETAAAAAIFAAAAC2J1eU91dFByaWNlCQAETAAAAAIFAAAADWJ1eU91dEFzc2V0SWQFAAAAA25pbAMJAABmAAAAAgkAATEAAAABBQAAAA5zdGFrZWRORlRJZFN0cgAAAAAAAAAAAAQAAAADaW52CQAD/AAAAAQJAQAAAAdBZGRyZXNzAAAAAQUAAAAabWFya2V0cGxhY2VDb250cmFjdEFkZHJlc3MCAAAAB3NlbGxORlQFAAAACHNlbGxBcmdzCQAETAAAAAIJAQAAAA9BdHRhY2hlZFBheW1lbnQAAAACCQACWQAAAAEFAAAADnN0YWtlZE5GVElkU3RyAAAAAAAAAAABBQAAAANuaWwDCQAAAAAAAAIFAAAAA2ludgUAAAADaW52BQAAAANuaWwJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQAAAgAAAAECAAAAGlRoZSBjcmVhdGVkIE5GVCBpcyBpbnZhbGlkAAAAAWkBAAAAE2NhbmNlbFNlbGxBbmRVbmxvY2sAAAABAAAABW5mdElkBAAAAAVhc3NldAkBAAAABXZhbHVlAAAAAQkAA+wAAAABCQACWQAAAAEFAAAABW5mdElkBAAAAAt3cmFwQWRkcmVzcwkBAAAAE2dldEFkZHJlc3NGb3JVbndyYXAAAAABBQAAAAVuZnRJZAMJAQAAABRpc05mdEZyb21NYXJrZXRwbGFjZQAAAAEFAAAABWFzc2V0BAAAAApjYW5jZWxBcmdzAwkBAAAACWlzRGVmaW5lZAAAAAEFAAAAC3dyYXBBZGRyZXNzCQAETQAAAAIJAARMAAAAAgUAAAAFbmZ0SWQFAAAAA25pbAkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIJAARMAAAAAgUAAAAFbmZ0SWQFAAAAA25pbAQAAAAOY2FuY2VsZWROZnRTdHIEAAAAByRtYXRjaDAJAAP8AAAABAkBAAAAB0FkZHJlc3MAAAABBQAAABptYXJrZXRwbGFjZUNvbnRyYWN0QWRkcmVzcwIAAAAKY2FuY2VsU2VsbAUAAAAKY2FuY2VsQXJncwUAAAADbmlsAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAXMFAAAAByRtYXRjaDAFAAAAAXMJAAACAAAAAQIAAAAjU29tdGhpbmcgd3Jvbmcgd2hlbiBjYW5jZWwgc2VsbCBORlQDCQAAAAAAAAIFAAAADmNhbmNlbGVkTmZ0U3RyBQAAAA5jYW5jZWxlZE5mdFN0cgMJAQAAAAlpc0RlZmluZWQAAAABBQAAAAt3cmFwQWRkcmVzcwQAAAAOdW5sb2NrZWROZnRTdHIEAAAAByRtYXRjaDAJAAP8AAAABAkBAAAABXZhbHVlAAAAAQUAAAALd3JhcEFkZHJlc3MCAAAABnVubG9jawUAAAADbmlsCQAETAAAAAIJAQAAAA9BdHRhY2hlZFBheW1lbnQAAAACCAUAAAAFYXNzZXQAAAACaWQAAAAAAAAAAAEFAAAAA25pbAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFzBQAAAAckbWF0Y2gwBQAAAAFzCQAAAgAAAAEJAAEsAAAAAgIAAAArU29tdGhpbmcgd3Jvbmcgd2hlbiB1bmxvY2sgTkZUIGluIGFkZHJlc3M6IAkAAlgAAAABCAkBAAAABXZhbHVlAAAAAQUAAAALd3JhcEFkZHJlc3MAAAAFYnl0ZXMDCQAAAAAAAAIFAAAADnVubG9ja2VkTmZ0U3RyBQAAAA51bmxvY2tlZE5mdFN0cgkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIAAAAAAAAAAAEJAAJZAAAAAQUAAAAOdW5sb2NrZWROZnRTdHIFAAAAA25pbAkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyAAAAAAAAAAABCQACWQAAAAEFAAAADmNhbmNlbGVkTmZ0U3RyBQAAAANuaWwJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQAAAgAAAAECAAAAE0l2YWxpZCBORlQgYXR0YWNoZWQAAAABaQEAAAADYnV5AAAAAQAAAAVuZnRJZAQAAAAJYm91Z2h0TmZ0BAAAAAckbWF0Y2gwCQAD/AAAAAQJAQAAAAdBZGRyZXNzAAAAAQUAAAAabWFya2V0cGxhY2VDb250cmFjdEFkZHJlc3MCAAAABmJ1eU5GVAkABEwAAAACBQAAAAVuZnRJZAUAAAADbmlsCAUAAAABaQAAAAhwYXltZW50cwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFzBQAAAAckbWF0Y2gwBQAAAAFzCQAAAgAAAAECAAAAG1NvbXRoaW5nIHdyb25nIHdoZW4gYnV5IE5GVAMJAAAAAAAAAgUAAAAJYm91Z2h0TmZ0BQAAAAlib3VnaHROZnQEAAAABWFzc2V0CQEAAAAFdmFsdWUAAAABCQAD7AAAAAEJAAJZAAAAAQUAAAAJYm91Z2h0TmZ0AwMJAABmAAAAAgkAATEAAAABBQAAAAlib3VnaHROZnQAAAAAAAAAAAAJAQAAABRpc05mdEZyb21NYXJrZXRwbGFjZQAAAAEFAAAABWFzc2V0BwQAAAALd3JhcEFkZHJlc3MJAQAAABNnZXRBZGRyZXNzRm9yVW53cmFwAAAAAQUAAAAFbmZ0SWQDCQEAAAAJaXNEZWZpbmVkAAAAAQUAAAALd3JhcEFkZHJlc3MEAAAADnVubG9ja2VkTmZ0U3RyBAAAAAckbWF0Y2gwCQAD/AAAAAQJAQAAAAV2YWx1ZQAAAAEFAAAAC3dyYXBBZGRyZXNzAgAAAAZ1bmxvY2sFAAAAA25pbAkABEwAAAACCQEAAAAPQXR0YWNoZWRQYXltZW50AAAAAggFAAAABWFzc2V0AAAAAmlkAAAAAAAAAAABBQAAAANuaWwDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABcwUAAAAHJG1hdGNoMAUAAAABcwkAAAIAAAABCQABLAAAAAICAAAAK1NvbXRoaW5nIHdyb25nIHdoZW4gdW5sb2NrIE5GVCBpbiBhZGRyZXNzOiAJAAJYAAAAAQgJAQAAAAV2YWx1ZQAAAAEFAAAAC3dyYXBBZGRyZXNzAAAABWJ5dGVzAwkAAAAAAAACBQAAAA51bmxvY2tlZE5mdFN0cgUAAAAOdW5sb2NrZWROZnRTdHIJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyAAAAAAAAAAABCQACWQAAAAEFAAAADnVubG9ja2VkTmZ0U3RyBQAAAANuaWwJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAAFpAAAABmNhbGxlcgAAAAAAAAAAAQkAAlkAAAABBQAAAAlib3VnaHROZnQFAAAAA25pbAkAAAIAAAABAgAAABFJdmFsaWQgYm91Z2h0IE5GVAkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4AAAABAAAAAnR4AQAAAAZ2ZXJpZnkAAAAACQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAAgFAAAAAnR4AAAAD3NlbmRlclB1YmxpY0tleTvJ2SA=", "height": 3081236, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: BNJr4TYTBMVurrLuF918YSLhE9SXdJEYJG3C7FWiSYhM Next: Ba5XMiZYyC4PkWJWSYgccQWTtLG1f6TiszZcZ4WoBo16 Diff:
OldNewDifferences
5252
5353
5454 func getAddressForUnwrap (nftStr) = {
55- let isSignArt = match getString(Address(signArtNftCreationAddress), (("signArtNft_" + nftStr) + "_assetId")) {
55+ let isSignArt = match getString(Address(nftSignArtWrapper), (("signArtNft_" + nftStr) + "_assetId")) {
5656 case s: String =>
5757 (size(s) > 0)
5858 case _ =>
6565 false
6666 }
6767 if (isSignArt)
68- then Address(signArtNftCreationAddress)
68+ then Address(nftSignArtWrapper)
6969 else if (isDuck)
7070 then Address(nftDuckWrapper)
7171 else unit
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) = {
55- let isSignArt = match getString(Address(signArtNftCreationAddress), (("signArtNft_" + nftStr) + "_assetId")) {
55+ 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)
68- then Address(signArtNftCreationAddress)
68+ 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))
9494 then ([buyOutPrice, buyOutAssetId] :+ toString(i.caller))
9595 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))
115115 then ([nftId] :+ toString(i.caller))
116116 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 
42.43 ms