tx · 7uWVLKkqtnihtcqd6hwSHjEZ1oVWTno53pnKyuEcGhhF

3P6fAxtw12pjFhayEfpcUWxgu2BHVCeP78A:  -0.01000000 Waves

2022.08.02 12:06 [3232181] smart account 3P6fAxtw12pjFhayEfpcUWxgu2BHVCeP78A > SELF 0.00000000 Waves

{ "type": 13, "id": "7uWVLKkqtnihtcqd6hwSHjEZ1oVWTno53pnKyuEcGhhF", "fee": 1000000, "feeAssetId": null, "timestamp": 1659431213149, "version": 2, "chainId": 87, "sender": "3P6fAxtw12pjFhayEfpcUWxgu2BHVCeP78A", "senderPublicKey": "A96wNJF8YTgx1J9Q4nK3oqNoExh6dPSyFAdEkmzN7XDa", "proofs": [ "4WNY2riKUQhNMwEa1NWSWwToJgJtSiQGghvi9tEXt3Scn3eirnohCeZc7qh1BkSVcqYthb3xp8yk7NF6ZRDT2Xoa" ], "script": "base64:BgIUCAISBAoCAQgSAwoBCBIAEgMKAQgPABJuZnRDcmVhdGlvbkFkZHJlc3MBGgFXk93E0hfnIAr99yESTvDwdmcmgwN41FxMABFlYWdsZUJ1eWVyQWRkcmVzcwEaAVc6UWFHh6QXedxglaC2Zss83iUvrjDv+/YAGXNpZ25BcnROZnRDcmVhdGlvbkFkZHJlc3MBGgFXe2TVW9aeF7mq0+aP/ANcyMQW+Ju6hiniAA5uZnREdWNrV3JhcHBlcgEaAVcUrURSm6X9/2EX/9g65/FnioCcFLgvzx4AEW5mdFNpZ25BcnRXcmFwcGVyARoBV+6hGhXD8bZfRGX/X8gVOcR5RdUYRUcwBwAWbmZ0VWx0cmFTdGFraW5nV3JhcHBlcgEaAVfArcJtMs2Rr6VXRdiH8lPBWo7IvSaKygsAEGluY3ViYXRvckFkZHJlc3MBGgFXjLVIn36eFdUYl44bd/sJf2di2uFtYyVJAA5icmVlZGVyQWRkcmVzcwEaAVd+57n5ccRMeFx9eHuGcYJDFaZ5ag+2Hx4AGm1hcmtldHBsYWNlQ29udHJhY3RBZGRyZXNzARoBV12L8V/LKCBrH2ajyG7aC6iX7Q/o/clE8QEMaWZTaWduQXJ0TmZ0AQVhc3NldAMDAwkAAAIICAUFYXNzZXQGaXNzdWVyBWJ5dGVzBRlzaWduQXJ0TmZ0Q3JlYXRpb25BZGRyZXNzCQAAAggFBWFzc2V0CGRlY2ltYWxzAAAHCQAAAggFBWFzc2V0CnJlaXNzdWFibGUHBwkAAAIIBQVhc3NldAhxdWFudGl0eQABBwEJaWZEdWNrTmZ0AQVhc3NldAMDAwMJAAACCAgFBWFzc2V0Bmlzc3VlcgVieXRlcwUQaW5jdWJhdG9yQWRkcmVzcwYJAAACCAgFBWFzc2V0Bmlzc3VlcgVieXRlcwUOYnJlZWRlckFkZHJlc3MJAAACCAUFYXNzZXQIZGVjaW1hbHMAAAcJAAACCAUFYXNzZXQKcmVpc3N1YWJsZQcHCQAAAggFBWFzc2V0CHF1YW50aXR5AAEHARFpZlVsdHJhU3Rha2luZ05mdAEFYXNzZXQECmlzRWFnbGVORlQEByRtYXRjaDAJAJ0IAgkBB0FkZHJlc3MBBRFlYWdsZUJ1eWVyQWRkcmVzcwkArAICCQCsAgICBGFydF8JANgEAQgFBWFzc2V0AmlkAgVfdHlwZQMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXMFByRtYXRjaDAJAAACBQFzAgVlYWdsZQcECWlzQW5pYU5GVAQHJG1hdGNoMAkAnQgCCQEHQWRkcmVzcwEFEm5mdENyZWF0aW9uQWRkcmVzcwkArAICCQCsAgICBG5mdF8JANgEAQgFBWFzc2V0AmlkAgdfaXNzdWVyAwkAAQIFByRtYXRjaDACBlN0cmluZwQBcwUHJG1hdGNoMAMJAAACBQFzAiMzUE1raTVzSEJzUWI0S2dEa25iVXdzTDNZZ3hhQ3phWm5DSgkBCGNvbnRhaW5zAggFBWFzc2V0BG5hbWUCDEJvcmVkIEFuaWEgIwcHAwUKaXNFYWdsZU5GVAYFCWlzQW5pYU5GVAEUaXNOZnRGcm9tTWFya2V0cGxhY2UBBWFzc2V0AwMDCQAAAggIBQVhc3NldAZpc3N1ZXIFYnl0ZXMFEm5mdENyZWF0aW9uQWRkcmVzcwkAAAIIBQVhc3NldAhkZWNpbWFscwAABwkAAAIIBQVhc3NldApyZWlzc3VhYmxlBwcJAAACCAUFYXNzZXQIcXVhbnRpdHkAAQcBEWdldEFkZHJlc3NGb3JXcmFwAQVhc3NldAQLYWxsb3dBc3NldHMJAMwIAgIsSHFLcWpYWkNEcWNKRnBoUFk0blBUdW5pN1pXckdEQjNiMmVicXFzQ0hCZ3AJAMwIAgIsQ2pVRGFVZThQR0g0eTI4eGRSU2NGVFZ6bUJjOE1kV2VialJDV3NMVlB6dHcJAMwIAgIsQjNtZ2hieUM5QUtrSmFZTlQ3TlY4a1ZReUxzb0FvVHpvTEtZa3IxNHM2TG0FA25pbAQHaXNBbGxvdwQHJG1hdGNoMAkAzwgCBQthbGxvd0Fzc2V0cwkA2AQBCAUFYXNzZXQCaWQDCQABAgUHJG1hdGNoMAIDSW50BAF0BQckbWF0Y2gwBgcDAwUHaXNBbGxvdwkBEWlmVWx0cmFTdGFraW5nTmZ0AQUFYXNzZXQHCQEHQWRkcmVzcwEFFm5mdFVsdHJhU3Rha2luZ1dyYXBwZXIDCQEMaWZTaWduQXJ0TmZ0AQUFYXNzZXQJAQdBZGRyZXNzAQURbmZ0U2lnbkFydFdyYXBwZXIDCQEJaWZEdWNrTmZ0AQUFYXNzZXQJAQdBZGRyZXNzAQUObmZ0RHVja1dyYXBwZXIFBHVuaXQBE2dldEFkZHJlc3NGb3JVbndyYXABBm5mdFN0cgQJaXNTaWduQXJ0BAckbWF0Y2gwCQCdCAIJAQdBZGRyZXNzAQURbmZ0U2lnbkFydFdyYXBwZXIJAKwCAgkArAICAgtzaWduQXJ0TmZ0XwUGbmZ0U3RyAghfYXNzZXRJZAMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXMFByRtYXRjaDAJAGYCCQCxAgEFAXMAAAcEBmlzRHVjawQHJG1hdGNoMAkAnQgCCQEHQWRkcmVzcwEFDm5mdER1Y2tXcmFwcGVyCQCsAgIJAKwCAgIEbmZ0XwUGbmZ0U3RyAgdfZHVja0lkAwkAAQIFByRtYXRjaDACBlN0cmluZwQBcwUHJG1hdGNoMAkAZgIJALECAQUBcwAABwQOaXNVbHRyYVN0YWtpbmcEByRtYXRjaDAJAJ0IAgkBB0FkZHJlc3MBBRZuZnRVbHRyYVN0YWtpbmdXcmFwcGVyCQCsAgIJAKwCAgIEbmZ0XwUGbmZ0U3RyAghfYXNzZXRJZAMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXMFByRtYXRjaDAJAGYCCQCxAgEFAXMAAAcDBQ5pc1VsdHJhU3Rha2luZwkBB0FkZHJlc3MBBRZuZnRVbHRyYVN0YWtpbmdXcmFwcGVyAwUJaXNTaWduQXJ0CQEHQWRkcmVzcwEFEW5mdFNpZ25BcnRXcmFwcGVyAwUGaXNEdWNrCQEHQWRkcmVzcwEFDm5mdER1Y2tXcmFwcGVyBQR1bml0BAFpAQ5sb2NrQW5kU2VsbE5GVAILYnV5T3V0UHJpY2UNYnV5T3V0QXNzZXRJZAQHYXNzZXRJZAkBBXZhbHVlAQgJAQV2YWx1ZQEJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkBAVhc3NldAkBBXZhbHVlAQkA7AcBBQdhc3NldElkBAt3cmFwQWRkcmVzcwkBEWdldEFkZHJlc3NGb3JXcmFwAQUFYXNzZXQEDnN0YWtlZE5GVElkU3RyAwkBCWlzRGVmaW5lZAEFC3dyYXBBZGRyZXNzBAxsb2NrZWROZnRTdHIEByRtYXRjaDAJAPwHBAkBBXZhbHVlAQULd3JhcEFkZHJlc3MCBGxvY2sFA25pbAkAzAgCCQCRAwIIBQFpCHBheW1lbnRzAAAFA25pbAMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXMFByRtYXRjaDAFAXMJAAIBCQCsAgICKVNvbXRoaW5nIHdyb25nIHdoZW4gbG9jayBORlQgaW4gYWRkcmVzczogCQDYBAEICQEFdmFsdWUBBQt3cmFwQWRkcmVzcwVieXRlcwMJAAACBQxsb2NrZWROZnRTdHIFDGxvY2tlZE5mdFN0cgUMbG9ja2VkTmZ0U3RyCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQDYBAEIBQVhc3NldAJpZAMJAGYCCQCxAgEFDnN0YWtlZE5GVElkU3RyAAAEA2ludgkA/AcECQEHQWRkcmVzcwEFGm1hcmtldHBsYWNlQ29udHJhY3RBZGRyZXNzAgdzZWxsTkZUCQDMCAIFC2J1eU91dFByaWNlCQDMCAIFDWJ1eU91dEFzc2V0SWQFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgkA2QQBBQ5zdGFrZWRORlRJZFN0cgABBQNuaWwDCQAAAgUDaW52BQNpbnYFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECGlRoZSBjcmVhdGVkIE5GVCBpcyBpbnZhbGlkAWkBE2NhbmNlbFNlbGxBbmRVbmxvY2sBBW5mdElkBAVhc3NldAkBBXZhbHVlAQkA7AcBCQDZBAEFBW5mdElkBAt3cmFwQWRkcmVzcwkBE2dldEFkZHJlc3NGb3JVbndyYXABBQVuZnRJZAMJARRpc05mdEZyb21NYXJrZXRwbGFjZQEFBWFzc2V0BA5jYW5jZWxlZE5mdFN0cgQHJG1hdGNoMAkA/AcECQEHQWRkcmVzcwEFGm1hcmtldHBsYWNlQ29udHJhY3RBZGRyZXNzAgpjYW5jZWxTZWxsCQDMCAIFBW5mdElkBQNuaWwFA25pbAMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXMFByRtYXRjaDAFAXMJAAIBAiNTb210aGluZyB3cm9uZyB3aGVuIGNhbmNlbCBzZWxsIE5GVAMJAAACBQ5jYW5jZWxlZE5mdFN0cgUOY2FuY2VsZWROZnRTdHIDCQEJaXNEZWZpbmVkAQULd3JhcEFkZHJlc3MEDnVubG9ja2VkTmZ0U3RyBAckbWF0Y2gwCQD8BwQJAQV2YWx1ZQEFC3dyYXBBZGRyZXNzAgZ1bmxvY2sFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AggFBWFzc2V0AmlkAAEFA25pbAMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXMFByRtYXRjaDAFAXMJAAIBCQCsAgICK1NvbXRoaW5nIHdyb25nIHdoZW4gdW5sb2NrIE5GVCBpbiBhZGRyZXNzOiAJANgEAQgJAQV2YWx1ZQEFC3dyYXBBZGRyZXNzBWJ5dGVzAwkAAAIFDnVubG9ja2VkTmZ0U3RyBQ51bmxvY2tlZE5mdFN0cgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIAAQkA2QQBBQ51bmxvY2tlZE5mdFN0cgUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgABCQDZBAEFDmNhbmNlbGVkTmZ0U3RyBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAhNJdmFsaWQgTkZUIGF0dGFjaGVkAWkBBnVubG9jawAEBWFzc2V0CQEFdmFsdWUBCQDsBwEJAQV2YWx1ZQEICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAMDCQEUaXNOZnRGcm9tTWFya2V0cGxhY2UBBQVhc3NldAkAAAIICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50AAEHBAphc3NldElkU3RyCQDYBAEIBQVhc3NldAJpZAQLd3JhcEFkZHJlc3MJARNnZXRBZGRyZXNzRm9yVW53cmFwAQUKYXNzZXRJZFN0cgMJAQlpc0RlZmluZWQBBQt3cmFwQWRkcmVzcwQOdW5sb2NrZWROZnRTdHIEByRtYXRjaDAJAPwHBAkBBXZhbHVlAQULd3JhcEFkZHJlc3MCBnVubG9jawUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCCAUFYXNzZXQCaWQAAQUDbmlsAwkAAQIFByRtYXRjaDACBlN0cmluZwQBcwUHJG1hdGNoMAUBcwkAAgEJAKwCAgIrU29tdGhpbmcgd3Jvbmcgd2hlbiB1bmxvY2sgTkZUIGluIGFkZHJlc3M6IAkA2AQBCAkBBXZhbHVlAQULd3JhcEFkZHJlc3MFYnl0ZXMDCQAAAgUOdW5sb2NrZWROZnRTdHIFDnVubG9ja2VkTmZ0U3RyCQCUCgIJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyAAEJANkEAQUOdW5sb2NrZWROZnRTdHIFA25pbAUOdW5sb2NrZWROZnRTdHIJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAJQKAgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIAAQgFBWFzc2V0AmlkBQNuaWwJANgEAQgFBWFzc2V0AmlkCQACAQITSXZhbGlkIE5GVCBhdHRhY2hlZAFpAQNidXkBBW5mdElkBAlib3VnaHROZnQEByRtYXRjaDAJAPwHBAkBB0FkZHJlc3MBBRptYXJrZXRwbGFjZUNvbnRyYWN0QWRkcmVzcwIGYnV5TkZUCQDMCAIFBW5mdElkBQNuaWwIBQFpCHBheW1lbnRzAwkAAQIFByRtYXRjaDACBlN0cmluZwQBcwUHJG1hdGNoMAUBcwkAAgECG1NvbXRoaW5nIHdyb25nIHdoZW4gYnV5IE5GVAMJAAACBQlib3VnaHROZnQFCWJvdWdodE5mdAQFYXNzZXQJAQV2YWx1ZQEJAOwHAQkA2QQBBQlib3VnaHROZnQDAwkAZgIJALECAQUJYm91Z2h0TmZ0AAAJARRpc05mdEZyb21NYXJrZXRwbGFjZQEFBWFzc2V0BwQLd3JhcEFkZHJlc3MJARNnZXRBZGRyZXNzRm9yVW53cmFwAQUFbmZ0SWQDCQEJaXNEZWZpbmVkAQULd3JhcEFkZHJlc3MEDnVubG9ja2VkTmZ0U3RyBAckbWF0Y2gwCQD8BwQJAQV2YWx1ZQEFC3dyYXBBZGRyZXNzAgZ1bmxvY2sFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AggFBWFzc2V0AmlkAAEFA25pbAMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXMFByRtYXRjaDAFAXMJAAIBCQCsAgICK1NvbXRoaW5nIHdyb25nIHdoZW4gdW5sb2NrIE5GVCBpbiBhZGRyZXNzOiAJANgEAQgJAQV2YWx1ZQEFC3dyYXBBZGRyZXNzBWJ5dGVzAwkAAAIFDnVubG9ja2VkTmZ0U3RyBQ51bmxvY2tlZE5mdFN0cgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIAAQkA2QQBBQ51bmxvY2tlZE5mdFN0cgUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgABCQDZBAEFCWJvdWdodE5mdAUDbmlsCQACAQIRSXZhbGlkIGJvdWdodCBORlQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAnR4AQZ2ZXJpZnkACQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAACAUCdHgPc2VuZGVyUHVibGljS2V5YH/hsg==", "height": 3232181, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: B95wpSw1eN68aBzRwbML3K64H6qWuL98WLLPbEBCnkTB Next: 5DvTtCo9h85zNJnQ88u22bUB2Q1duA3eNH2fKJ1six5Q Diff:
OldNewDifferences
7070
7171
7272 func getAddressForWrap (asset) = {
73- let allowAssets = ["HqKqjXZCDqcJFphPY4nPTuni7ZWrGDB3b2ebqqsCHBgp", "CjUDaUe8PGH4y28xdRScFTVzmBc8MdWebjRCWsLVPztw"]
73+ let allowAssets = ["HqKqjXZCDqcJFphPY4nPTuni7ZWrGDB3b2ebqqsCHBgp", "CjUDaUe8PGH4y28xdRScFTVzmBc8MdWebjRCWsLVPztw", "B3mghbyC9AKkJaYNT7NV8kVQyLsoAoTzoLKYkr14s6Lm"]
7474 let isAllow = match indexOf(allowAssets, toBase58String(asset.id)) {
7575 case t: Int =>
7676 true
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let nftCreationAddress = base58'3PFQjjDMiZKQZdu5JqTHD7HwgSXyp9Rw9By'
55
66 let eagleBuyerAddress = base58'3P7FFQkgALLZDJpCf3smY517wjgPMswGoRP'
77
88 let signArtNftCreationAddress = base58'3PDBLdsUrcsiPxNbt8g2gQVoefKgzt3kJzV'
99
1010 let nftDuckWrapper = base58'3P3pDosq4GCwfJkvq4yqKvvoTwmoqc9qPmo'
1111
1212 let nftSignArtWrapper = base58'3PPgeYTWMRZ7S7jSLpnVuKKB9r6XuDk3ndC'
1313
1414 let nftUltraStakingWrapper = base58'3PKVgd6ds1xervK6bPXbEHBqg8ibTcf5HZk'
1515
1616 let incubatorAddress = base58'3PEktVux2RhchSN63DsDo4b4mz4QqzKSeDv'
1717
1818 let breederAddress = base58'3PDVuU45H7Eh5dmtNbnRNRStGwULA7NY6Hb'
1919
2020 let marketplaceContractAddress = base58'3PATXDVE53rKJtkwXYV3tvuLVS2fDtGtKCc'
2121
2222 func ifSignArtNft (asset) = if (if (if ((asset.issuer.bytes == signArtNftCreationAddress))
2323 then (asset.decimals == 0)
2424 else false)
2525 then (asset.reissuable == false)
2626 else false)
2727 then (asset.quantity == 1)
2828 else false
2929
3030
3131 func ifDuckNft (asset) = if (if (if (if ((asset.issuer.bytes == incubatorAddress))
3232 then true
3333 else (asset.issuer.bytes == breederAddress))
3434 then (asset.decimals == 0)
3535 else false)
3636 then (asset.reissuable == false)
3737 else false)
3838 then (asset.quantity == 1)
3939 else false
4040
4141
4242 func ifUltraStakingNft (asset) = {
4343 let isEagleNFT = match getString(Address(eagleBuyerAddress), (("art_" + toBase58String(asset.id)) + "_type")) {
4444 case s: String =>
4545 (s == "eagle")
4646 case _ =>
4747 false
4848 }
4949 let isAniaNFT = match getString(Address(nftCreationAddress), (("nft_" + toBase58String(asset.id)) + "_issuer")) {
5050 case s: String =>
5151 if ((s == "3PMki5sHBsQb4KgDknbUwsL3YgxaCzaZnCJ"))
5252 then contains(asset.name, "Bored Ania #")
5353 else false
5454 case _ =>
5555 false
5656 }
5757 if (isEagleNFT)
5858 then true
5959 else isAniaNFT
6060 }
6161
6262
6363 func isNftFromMarketplace (asset) = if (if (if ((asset.issuer.bytes == nftCreationAddress))
6464 then (asset.decimals == 0)
6565 else false)
6666 then (asset.reissuable == false)
6767 else false)
6868 then (asset.quantity == 1)
6969 else false
7070
7171
7272 func getAddressForWrap (asset) = {
73- let allowAssets = ["HqKqjXZCDqcJFphPY4nPTuni7ZWrGDB3b2ebqqsCHBgp", "CjUDaUe8PGH4y28xdRScFTVzmBc8MdWebjRCWsLVPztw"]
73+ let allowAssets = ["HqKqjXZCDqcJFphPY4nPTuni7ZWrGDB3b2ebqqsCHBgp", "CjUDaUe8PGH4y28xdRScFTVzmBc8MdWebjRCWsLVPztw", "B3mghbyC9AKkJaYNT7NV8kVQyLsoAoTzoLKYkr14s6Lm"]
7474 let isAllow = match indexOf(allowAssets, toBase58String(asset.id)) {
7575 case t: Int =>
7676 true
7777 case _ =>
7878 false
7979 }
8080 if (if (isAllow)
8181 then ifUltraStakingNft(asset)
8282 else false)
8383 then Address(nftUltraStakingWrapper)
8484 else if (ifSignArtNft(asset))
8585 then Address(nftSignArtWrapper)
8686 else if (ifDuckNft(asset))
8787 then Address(nftDuckWrapper)
8888 else unit
8989 }
9090
9191
9292 func getAddressForUnwrap (nftStr) = {
9393 let isSignArt = match getString(Address(nftSignArtWrapper), (("signArtNft_" + nftStr) + "_assetId")) {
9494 case s: String =>
9595 (size(s) > 0)
9696 case _ =>
9797 false
9898 }
9999 let isDuck = match getString(Address(nftDuckWrapper), (("nft_" + nftStr) + "_duckId")) {
100100 case s: String =>
101101 (size(s) > 0)
102102 case _ =>
103103 false
104104 }
105105 let isUltraStaking = match getString(Address(nftUltraStakingWrapper), (("nft_" + nftStr) + "_assetId")) {
106106 case s: String =>
107107 (size(s) > 0)
108108 case _ =>
109109 false
110110 }
111111 if (isUltraStaking)
112112 then Address(nftUltraStakingWrapper)
113113 else if (isSignArt)
114114 then Address(nftSignArtWrapper)
115115 else if (isDuck)
116116 then Address(nftDuckWrapper)
117117 else unit
118118 }
119119
120120
121121 @Callable(i)
122122 func lockAndSellNFT (buyOutPrice,buyOutAssetId) = {
123123 let assetId = value(value(i.payments[0]).assetId)
124124 let asset = value(assetInfo(assetId))
125125 let wrapAddress = getAddressForWrap(asset)
126126 let stakedNFTIdStr = if (isDefined(wrapAddress))
127127 then {
128128 let lockedNftStr = match invoke(value(wrapAddress), "lock", nil, [i.payments[0]]) {
129129 case s: String =>
130130 s
131131 case _ =>
132132 throw(("Somthing wrong when lock NFT in address: " + toBase58String(value(wrapAddress).bytes)))
133133 }
134134 if ((lockedNftStr == lockedNftStr))
135135 then lockedNftStr
136136 else throw("Strict value is not equal to itself.")
137137 }
138138 else toBase58String(asset.id)
139139 if ((size(stakedNFTIdStr) > 0))
140140 then {
141141 let inv = invoke(Address(marketplaceContractAddress), "sellNFT", [buyOutPrice, buyOutAssetId], [AttachedPayment(fromBase58String(stakedNFTIdStr), 1)])
142142 if ((inv == inv))
143143 then nil
144144 else throw("Strict value is not equal to itself.")
145145 }
146146 else throw("The created NFT is invalid")
147147 }
148148
149149
150150
151151 @Callable(i)
152152 func cancelSellAndUnlock (nftId) = {
153153 let asset = value(assetInfo(fromBase58String(nftId)))
154154 let wrapAddress = getAddressForUnwrap(nftId)
155155 if (isNftFromMarketplace(asset))
156156 then {
157157 let canceledNftStr = match invoke(Address(marketplaceContractAddress), "cancelSell", [nftId], nil) {
158158 case s: String =>
159159 s
160160 case _ =>
161161 throw("Somthing wrong when cancel sell NFT")
162162 }
163163 if ((canceledNftStr == canceledNftStr))
164164 then if (isDefined(wrapAddress))
165165 then {
166166 let unlockedNftStr = match invoke(value(wrapAddress), "unlock", nil, [AttachedPayment(asset.id, 1)]) {
167167 case s: String =>
168168 s
169169 case _ =>
170170 throw(("Somthing wrong when unlock NFT in address: " + toBase58String(value(wrapAddress).bytes)))
171171 }
172172 if ((unlockedNftStr == unlockedNftStr))
173173 then [ScriptTransfer(i.caller, 1, fromBase58String(unlockedNftStr))]
174174 else throw("Strict value is not equal to itself.")
175175 }
176176 else [ScriptTransfer(i.caller, 1, fromBase58String(canceledNftStr))]
177177 else throw("Strict value is not equal to itself.")
178178 }
179179 else throw("Ivalid NFT attached")
180180 }
181181
182182
183183
184184 @Callable(i)
185185 func unlock () = {
186186 let asset = value(assetInfo(value(i.payments[0].assetId)))
187187 if (if (isNftFromMarketplace(asset))
188188 then (i.payments[0].amount == 1)
189189 else false)
190190 then {
191191 let assetIdStr = toBase58String(asset.id)
192192 let wrapAddress = getAddressForUnwrap(assetIdStr)
193193 if (isDefined(wrapAddress))
194194 then {
195195 let unlockedNftStr = match invoke(value(wrapAddress), "unlock", nil, [AttachedPayment(asset.id, 1)]) {
196196 case s: String =>
197197 s
198198 case _ =>
199199 throw(("Somthing wrong when unlock NFT in address: " + toBase58String(value(wrapAddress).bytes)))
200200 }
201201 if ((unlockedNftStr == unlockedNftStr))
202202 then $Tuple2([ScriptTransfer(i.caller, 1, fromBase58String(unlockedNftStr))], unlockedNftStr)
203203 else throw("Strict value is not equal to itself.")
204204 }
205205 else $Tuple2([ScriptTransfer(i.caller, 1, asset.id)], toBase58String(asset.id))
206206 }
207207 else throw("Ivalid NFT attached")
208208 }
209209
210210
211211
212212 @Callable(i)
213213 func buy (nftId) = {
214214 let boughtNft = match invoke(Address(marketplaceContractAddress), "buyNFT", [nftId], i.payments) {
215215 case s: String =>
216216 s
217217 case _ =>
218218 throw("Somthing wrong when buy NFT")
219219 }
220220 if ((boughtNft == boughtNft))
221221 then {
222222 let asset = value(assetInfo(fromBase58String(boughtNft)))
223223 if (if ((size(boughtNft) > 0))
224224 then isNftFromMarketplace(asset)
225225 else false)
226226 then {
227227 let wrapAddress = getAddressForUnwrap(nftId)
228228 if (isDefined(wrapAddress))
229229 then {
230230 let unlockedNftStr = match invoke(value(wrapAddress), "unlock", nil, [AttachedPayment(asset.id, 1)]) {
231231 case s: String =>
232232 s
233233 case _ =>
234234 throw(("Somthing wrong when unlock NFT in address: " + toBase58String(value(wrapAddress).bytes)))
235235 }
236236 if ((unlockedNftStr == unlockedNftStr))
237237 then [ScriptTransfer(i.caller, 1, fromBase58String(unlockedNftStr))]
238238 else throw("Strict value is not equal to itself.")
239239 }
240240 else [ScriptTransfer(i.caller, 1, fromBase58String(boughtNft))]
241241 }
242242 else throw("Ivalid bought NFT")
243243 }
244244 else throw("Strict value is not equal to itself.")
245245 }
246246
247247
248248 @Verifier(tx)
249249 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
250250

github/deemru/w8io/6500d08 
51.38 ms