tx · 5t286gNF2aN3ujQCDQWR2QqCbmX8jx7VJcMpavGbQyx1

3P6fAxtw12pjFhayEfpcUWxgu2BHVCeP78A:  -0.01000000 Waves

2022.11.10 20:43 [3376717] smart account 3P6fAxtw12pjFhayEfpcUWxgu2BHVCeP78A > SELF 0.00000000 Waves

{ "type": 13, "id": "5t286gNF2aN3ujQCDQWR2QqCbmX8jx7VJcMpavGbQyx1", "fee": 1000000, "feeAssetId": null, "timestamp": 1668102233189, "version": 2, "chainId": 87, "sender": "3P6fAxtw12pjFhayEfpcUWxgu2BHVCeP78A", "senderPublicKey": "A96wNJF8YTgx1J9Q4nK3oqNoExh6dPSyFAdEkmzN7XDa", "proofs": [ "3CTdxKHotdkEZgNjrjxfRBfhMQmnChcJVR5WvHUhXtzoEuUdsxxck9x8bkRYSMRwCkk1xyNx3cvuaPJGgF4ZNuRS" ], "script": "base64:BgIWCAISBQoDAQgIEgMKAQgSABIECgIIBBkAEm5mdENyZWF0aW9uQWRkcmVzcwEaAVeT3cTSF+cgCv33IRJO8PB2ZyaDA3jUXEwAEWVhZ2xlQnV5ZXJBZGRyZXNzARoBVzpRYUeHpBd53GCVoLZmyzzeJS+uMO/79gAZc2lnbkFydE5mdENyZWF0aW9uQWRkcmVzcwEaAVd7ZNVb1p4XuarT5o/8A1zIxBb4m7qGKeIADm5mdER1Y2tXcmFwcGVyARoBVxStRFKbpf3/YRf/2Drn8WeKgJwUuC/PHgARbmZ0U2lnbkFydFdyYXBwZXIBGgFX7qEaFcPxtl9EZf9fyBU5xHlF1RhFRzAHABZuZnRVbHRyYVN0YWtpbmdXcmFwcGVyARoBV8Ctwm0yzZGvpVdF2IfyU8Fajsi9JorKCwAUbmZ0V2F2ZXNQdW5rc1dyYXBwZXIBGgFXeZqKMBoJ1Z2oyidoI9kb1aHnNJDG6IMtABRuZnRXYXZlc0xhbmRzV3JhcHBlcgEaAVdz+5b6tgPg7ByefVC2Dqb3EHfwQYCAWgYAEGluY3ViYXRvckFkZHJlc3MBGgFXjLVIn36eFdUYl44bd/sJf2di2uFtYyVJAA5icmVlZGVyQWRkcmVzcwEaAVd+57n5ccRMeFx9eHuGcYJDFaZ5ag+2Hx4AGm1hcmtldHBsYWNlQ29udHJhY3RBZGRyZXNzARoBV12L8V/LKCBrH2ajyG7aC6iX7Q/o/clE8QATem9tYmllSXNzdWVyQWRkcmVzcwkBB0FkZHJlc3MBARoBVzwia2+DPLzn0NsAUzuxeI+PJBHmuBOukwAScHVua3NJc3N1ZXJBZGRyZXNzCQEHQWRkcmVzcwEBGgFXS+xPjera0gSnSXFRUVq2krtB1F+FwuxoABNhbGllbnNJc3N1ZXJBZGRyZXNzCQEHQWRkcmVzcwEBGgFXa8tPpNumumqoNfvKdRF0dc6oz4cuF9IYABVtYWRQdW5rc0lzc3VlckFkZHJlc3MJAQdBZGRyZXNzAQEaAVe2FZAHGGJgl+unSJcp8qs1zX7kAqoNhtkAFm1hZFB1bmtzMklzc3VlckFkZHJlc3MJAQdBZGRyZXNzAQEaAVdGTWoQ1BXw/a91Ekxg94A8K/h2ZCBxCwUAD3dsSXNzdWVyQWRkcmVzcwkBB0FkZHJlc3MBARoBV87Ziuc6DASTIb885/WtYnS02KhH4S06qAEPaWZXYXZlc0xhbmRzTkZUAQVhc3NldAMDAwkAAAIIBQVhc3NldAZpc3N1ZXIFD3dsSXNzdWVyQWRkcmVzcwkAAAIIBQVhc3NldAhkZWNpbWFscwAABwkAAAIIBQVhc3NldApyZWlzc3VhYmxlBwcJAAACCAUFYXNzZXQIcXVhbnRpdHkAAQcBDGlmU2lnbkFydE5mdAEFYXNzZXQDAwMJAAACCAgFBWFzc2V0Bmlzc3VlcgVieXRlcwUZc2lnbkFydE5mdENyZWF0aW9uQWRkcmVzcwkAAAIIBQVhc3NldAhkZWNpbWFscwAABwkAAAIIBQVhc3NldApyZWlzc3VhYmxlBwcJAAACCAUFYXNzZXQIcXVhbnRpdHkAAQcBCWlmRHVja05mdAEFYXNzZXQDAwMDCQAAAggIBQVhc3NldAZpc3N1ZXIFYnl0ZXMFEGluY3ViYXRvckFkZHJlc3MGCQAAAggIBQVhc3NldAZpc3N1ZXIFYnl0ZXMFDmJyZWVkZXJBZGRyZXNzCQAAAggFBWFzc2V0CGRlY2ltYWxzAAAHCQAAAggFBWFzc2V0CnJlaXNzdWFibGUHBwkAAAIIBQVhc3NldAhxdWFudGl0eQABBwEPaWZXYXZlc1B1bmtzTmZ0AQVhc3NldAMDAwkAZwIJAQt2YWx1ZU9yRWxzZQIJAM8IAgkAzAgCBRN6b21iaWVJc3N1ZXJBZGRyZXNzCQDMCAIFEnB1bmtzSXNzdWVyQWRkcmVzcwkAzAgCBRNhbGllbnNJc3N1ZXJBZGRyZXNzCQDMCAIFFW1hZFB1bmtzSXNzdWVyQWRkcmVzcwkAzAgCBRZtYWRQdW5rczJJc3N1ZXJBZGRyZXNzBQNuaWwIBQVhc3NldAZpc3N1ZXIA////////////AQAACQAAAggFBWFzc2V0CGRlY2ltYWxzAAAHCQAAAggFBWFzc2V0CnJlaXNzdWFibGUHBwkAAAIIBQVhc3NldAhxdWFudGl0eQABBwERaWZVbHRyYVN0YWtpbmdOZnQBBWFzc2V0BAppc0VhZ2xlTkZUBAckbWF0Y2gwCQCdCAIJAQdBZGRyZXNzAQURZWFnbGVCdXllckFkZHJlc3MJAKwCAgkArAICAgRhcnRfCQDYBAEIBQVhc3NldAJpZAIFX3R5cGUDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFzBQckbWF0Y2gwCQAAAgUBcwIFZWFnbGUHBAlpc0FuaWFORlQEByRtYXRjaDAJAJ0IAgkBB0FkZHJlc3MBBRJuZnRDcmVhdGlvbkFkZHJlc3MJAKwCAgkArAICAgRuZnRfCQDYBAEIBQVhc3NldAJpZAIHX2lzc3VlcgMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXMFByRtYXRjaDADCQAAAgUBcwIjM1BNa2k1c0hCc1FiNEtnRGtuYlV3c0wzWWd4YUN6YVpuQ0oJAQhjb250YWlucwIIBQVhc3NldARuYW1lAgxCb3JlZCBBbmlhICMHBwMFCmlzRWFnbGVORlQGBQlpc0FuaWFORlQBFGlzTmZ0RnJvbU1hcmtldHBsYWNlAQVhc3NldAMDAwkAAAIICAUFYXNzZXQGaXNzdWVyBWJ5dGVzBRJuZnRDcmVhdGlvbkFkZHJlc3MJAAACCAUFYXNzZXQIZGVjaW1hbHMAAAcJAAACCAUFYXNzZXQKcmVpc3N1YWJsZQcHCQAAAggFBWFzc2V0CHF1YW50aXR5AAEHARFnZXRBZGRyZXNzRm9yV3JhcAEFYXNzZXQDCQERaWZVbHRyYVN0YWtpbmdOZnQBBQVhc3NldAkBB0FkZHJlc3MBBRZuZnRVbHRyYVN0YWtpbmdXcmFwcGVyAwkBD2lmV2F2ZXNQdW5rc05mdAEFBWFzc2V0CQEHQWRkcmVzcwEFFG5mdFdhdmVzUHVua3NXcmFwcGVyAwkBDGlmU2lnbkFydE5mdAEFBWFzc2V0CQEHQWRkcmVzcwEFEW5mdFNpZ25BcnRXcmFwcGVyAwkBCWlmRHVja05mdAEFBWFzc2V0CQEHQWRkcmVzcwEFDm5mdER1Y2tXcmFwcGVyAwkBD2lmV2F2ZXNMYW5kc05GVAEFBWFzc2V0CQEHQWRkcmVzcwEFFG5mdFdhdmVzTGFuZHNXcmFwcGVyBQR1bml0ARNnZXRBZGRyZXNzRm9yVW53cmFwAQZuZnRTdHIECWlzU2lnbkFydAQHJG1hdGNoMAkAnQgCCQEHQWRkcmVzcwEFEW5mdFNpZ25BcnRXcmFwcGVyCQCsAgIJAKwCAgILc2lnbkFydE5mdF8FBm5mdFN0cgIIX2Fzc2V0SWQDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFzBQckbWF0Y2gwCQBmAgkAsQIBBQFzAAAHBAZpc0R1Y2sEByRtYXRjaDAJAJ0IAgkBB0FkZHJlc3MBBQ5uZnREdWNrV3JhcHBlcgkArAICCQCsAgICBG5mdF8FBm5mdFN0cgIHX2R1Y2tJZAMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXMFByRtYXRjaDAJAGYCCQCxAgEFAXMAAAcEDmlzVWx0cmFTdGFraW5nBAckbWF0Y2gwCQCdCAIJAQdBZGRyZXNzAQUWbmZ0VWx0cmFTdGFraW5nV3JhcHBlcgkArAICCQCsAgICBG5mdF8FBm5mdFN0cgIIX2Fzc2V0SWQDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFzBQckbWF0Y2gwCQBmAgkAsQIBBQFzAAAHBAxpc1dhdmVzUHVua3MEByRtYXRjaDAJAJ0IAgkBB0FkZHJlc3MBBRRuZnRXYXZlc1B1bmtzV3JhcHBlcgkArAICCQCsAgICBG5mdF8FBm5mdFN0cgIIX2Fzc2V0SWQDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFzBQckbWF0Y2gwCQBmAgkAsQIBBQFzAAAHBAxpc1dhdmVzTGFuZHMEByRtYXRjaDAJAJ0IAgkBB0FkZHJlc3MBBRRuZnRXYXZlc0xhbmRzV3JhcHBlcgkArAICCQCsAgICBG5mdF8FBm5mdFN0cgIIX2Fzc2V0SWQDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFzBQckbWF0Y2gwCQBmAgkAsQIBBQFzAAAHAwUOaXNVbHRyYVN0YWtpbmcJAQdBZGRyZXNzAQUWbmZ0VWx0cmFTdGFraW5nV3JhcHBlcgMFDGlzV2F2ZXNQdW5rcwkBB0FkZHJlc3MBBRRuZnRXYXZlc1B1bmtzV3JhcHBlcgMFCWlzU2lnbkFydAkBB0FkZHJlc3MBBRFuZnRTaWduQXJ0V3JhcHBlcgMFBmlzRHVjawkBB0FkZHJlc3MBBQ5uZnREdWNrV3JhcHBlcgMFDGlzV2F2ZXNMYW5kcwkBB0FkZHJlc3MBBRRuZnRXYXZlc0xhbmRzV3JhcHBlcgUEdW5pdAQBaQEObG9ja0FuZFNlbGxORlQDC2J1eU91dFByaWNlDWJ1eU91dEFzc2V0SWQNc2VsbGVyQ29tbWVudAQHYXNzZXRJZAkBBXZhbHVlAQgJAQV2YWx1ZQEJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkBAVhc3NldAkBBXZhbHVlAQkA7AcBBQdhc3NldElkBAt3cmFwQWRkcmVzcwkBEWdldEFkZHJlc3NGb3JXcmFwAQUFYXNzZXQEDnN0YWtlZE5GVElkU3RyAwkBCWlzRGVmaW5lZAEFC3dyYXBBZGRyZXNzBAxsb2NrZWROZnRTdHIEByRtYXRjaDAJAPwHBAkBBXZhbHVlAQULd3JhcEFkZHJlc3MCBGxvY2sFA25pbAkAzAgCCQCRAwIIBQFpCHBheW1lbnRzAAAFA25pbAMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXMFByRtYXRjaDAFAXMJAAIBCQCsAgICKVNvbXRoaW5nIHdyb25nIHdoZW4gbG9jayBORlQgaW4gYWRkcmVzczogCQDYBAEICQEFdmFsdWUBBQt3cmFwQWRkcmVzcwVieXRlcwMJAAACBQxsb2NrZWROZnRTdHIFDGxvY2tlZE5mdFN0cgUMbG9ja2VkTmZ0U3RyCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQDYBAEIBQVhc3NldAJpZAMJAGYCCQCxAgEFDnN0YWtlZE5GVElkU3RyAAAEA2ludgkA/AcECQEHQWRkcmVzcwEFGm1hcmtldHBsYWNlQ29udHJhY3RBZGRyZXNzAgdzZWxsTkZUCQDMCAIFC2J1eU91dFByaWNlCQDMCAIFDWJ1eU91dEFzc2V0SWQJAMwIAgUNc2VsbGVyQ29tbWVudAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCCQDZBAEFDnN0YWtlZE5GVElkU3RyAAEFA25pbAMJAAACBQNpbnYFA2ludgUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIaVGhlIGNyZWF0ZWQgTkZUIGlzIGludmFsaWQBaQETY2FuY2VsU2VsbEFuZFVubG9jawEFbmZ0SWQEBWFzc2V0CQEFdmFsdWUBCQDsBwEJANkEAQUFbmZ0SWQEC3dyYXBBZGRyZXNzCQETZ2V0QWRkcmVzc0ZvclVud3JhcAEFBW5mdElkAwkBFGlzTmZ0RnJvbU1hcmtldHBsYWNlAQUFYXNzZXQEDmNhbmNlbGVkTmZ0U3RyBAckbWF0Y2gwCQD8BwQJAQdBZGRyZXNzAQUabWFya2V0cGxhY2VDb250cmFjdEFkZHJlc3MCCmNhbmNlbFNlbGwJAMwIAgUFbmZ0SWQFA25pbAUDbmlsAwkAAQIFByRtYXRjaDACBlN0cmluZwQBcwUHJG1hdGNoMAUBcwkAAgECI1NvbXRoaW5nIHdyb25nIHdoZW4gY2FuY2VsIHNlbGwgTkZUAwkAAAIFDmNhbmNlbGVkTmZ0U3RyBQ5jYW5jZWxlZE5mdFN0cgMJAQlpc0RlZmluZWQBBQt3cmFwQWRkcmVzcwQOdW5sb2NrZWROZnRTdHIEByRtYXRjaDAJAPwHBAkBBXZhbHVlAQULd3JhcEFkZHJlc3MCBnVubG9jawUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCCAUFYXNzZXQCaWQAAQUDbmlsAwkAAQIFByRtYXRjaDACBlN0cmluZwQBcwUHJG1hdGNoMAUBcwkAAgEJAKwCAgIrU29tdGhpbmcgd3Jvbmcgd2hlbiB1bmxvY2sgTkZUIGluIGFkZHJlc3M6IAkA2AQBCAkBBXZhbHVlAQULd3JhcEFkZHJlc3MFYnl0ZXMDCQAAAgUOdW5sb2NrZWROZnRTdHIFDnVubG9ja2VkTmZ0U3RyCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgABCQDZBAEFDnVubG9ja2VkTmZ0U3RyBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyAAEJANkEAQUOY2FuY2VsZWROZnRTdHIFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECE0l2YWxpZCBORlQgYXR0YWNoZWQBaQEGdW5sb2NrAAQFYXNzZXQJAQV2YWx1ZQEJAOwHAQkBBXZhbHVlAQgJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkAwMJARRpc05mdEZyb21NYXJrZXRwbGFjZQEFBWFzc2V0CQAAAggJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQAAQcECmFzc2V0SWRTdHIJANgEAQgFBWFzc2V0AmlkBAt3cmFwQWRkcmVzcwkBE2dldEFkZHJlc3NGb3JVbndyYXABBQphc3NldElkU3RyAwkBCWlzRGVmaW5lZAEFC3dyYXBBZGRyZXNzBA51bmxvY2tlZE5mdFN0cgQHJG1hdGNoMAkA/AcECQEFdmFsdWUBBQt3cmFwQWRkcmVzcwIGdW5sb2NrBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIIBQVhc3NldAJpZAABBQNuaWwDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFzBQckbWF0Y2gwBQFzCQACAQkArAICAitTb210aGluZyB3cm9uZyB3aGVuIHVubG9jayBORlQgaW4gYWRkcmVzczogCQDYBAEICQEFdmFsdWUBBQt3cmFwQWRkcmVzcwVieXRlcwMJAAACBQ51bmxvY2tlZE5mdFN0cgUOdW5sb2NrZWROZnRTdHIJAJQKAgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIAAQkA2QQBBQ51bmxvY2tlZE5mdFN0cgUDbmlsBQ51bmxvY2tlZE5mdFN0cgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAlAoCCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgABCAUFYXNzZXQCaWQFA25pbAkA2AQBCAUFYXNzZXQCaWQJAAIBAhNJdmFsaWQgTkZUIGF0dGFjaGVkAWkBA2J1eQIFbmZ0SWQFZGVidWcECWJvdWdodE5mdAQHJG1hdGNoMAkA/AcECQEHQWRkcmVzcwEFGm1hcmtldHBsYWNlQ29udHJhY3RBZGRyZXNzAgZidXlORlQJAMwIAgUFbmZ0SWQFA25pbAgFAWkIcGF5bWVudHMDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFzBQckbWF0Y2gwBQFzCQACAQIbU29tdGhpbmcgd3Jvbmcgd2hlbiBidXkgTkZUAwkAAAIFCWJvdWdodE5mdAUJYm91Z2h0TmZ0BAVhc3NldAkBBXZhbHVlAQkA7AcBCQDZBAEFCWJvdWdodE5mdAMFBWRlYnVnCQACAQkArAICAghidW4gbmZ0IAUJYm91Z2h0TmZ0AwMJAGYCCQCxAgEFCWJvdWdodE5mdAAACQEUaXNOZnRGcm9tTWFya2V0cGxhY2UBBQVhc3NldAcEC3dyYXBBZGRyZXNzCQETZ2V0QWRkcmVzc0ZvclVud3JhcAEFBW5mdElkAwkBCWlzRGVmaW5lZAEFC3dyYXBBZGRyZXNzBA51bmxvY2tlZE5mdFN0cgQHJG1hdGNoMAkA/AcECQEFdmFsdWUBBQt3cmFwQWRkcmVzcwIGdW5sb2NrBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIIBQVhc3NldAJpZAABBQNuaWwDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFzBQckbWF0Y2gwBQFzCQACAQkArAICAitTb210aGluZyB3cm9uZyB3aGVuIHVubG9jayBORlQgaW4gYWRkcmVzczogCQDYBAEICQEFdmFsdWUBBQt3cmFwQWRkcmVzcwVieXRlcwMJAAACBQ51bmxvY2tlZE5mdFN0cgUOdW5sb2NrZWROZnRTdHIJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyAAEJANkEAQUOdW5sb2NrZWROZnRTdHIFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIAAQkA2QQBBQlib3VnaHROZnQFA25pbAkAAgECEUl2YWxpZCBib3VnaHQgTkZUCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJ0eAEGdmVyaWZ5AAkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAgFAnR4D3NlbmRlclB1YmxpY0tleTlhUPA=", "height": 3376717, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 8Re3ZSoRoJNCnGNNChVQYAtQza667D3B6NFAVSjeqa7d Next: JUffBCBPyRN5SGKM4omW3Tz6eaeaKP5LtSuiH7cvW2y Diff:
OldNewDifferences
253253
254254
255255 @Callable(i)
256-func buy (nftId) = {
256+func buy (nftId,debug) = {
257257 let boughtNft = match invoke(Address(marketplaceContractAddress), "buyNFT", [nftId], i.payments) {
258258 case s: String =>
259259 s
263263 if ((boughtNft == boughtNft))
264264 then {
265265 let asset = value(assetInfo(fromBase58String(boughtNft)))
266- if (if ((size(boughtNft) > 0))
267- then isNftFromMarketplace(asset)
268- else false)
269- then {
270- let wrapAddress = getAddressForUnwrap(nftId)
271- if (isDefined(wrapAddress))
272- then {
273- let unlockedNftStr = match invoke(value(wrapAddress), "unlock", nil, [AttachedPayment(asset.id, 1)]) {
274- case s: String =>
275- s
276- case _ =>
277- throw(("Somthing wrong when unlock NFT in address: " + toBase58String(value(wrapAddress).bytes)))
278- }
279- if ((unlockedNftStr == unlockedNftStr))
280- then [ScriptTransfer(i.caller, 1, fromBase58String(unlockedNftStr))]
281- else throw("Strict value is not equal to itself.")
282- }
283- else [ScriptTransfer(i.caller, 1, fromBase58String(boughtNft))]
284- }
285- else throw("Ivalid bought NFT")
266+ if (debug)
267+ then throw(("bun nft " + boughtNft))
268+ else if (if ((size(boughtNft) > 0))
269+ then isNftFromMarketplace(asset)
270+ else false)
271+ then {
272+ let wrapAddress = getAddressForUnwrap(nftId)
273+ if (isDefined(wrapAddress))
274+ then {
275+ let unlockedNftStr = match invoke(value(wrapAddress), "unlock", nil, [AttachedPayment(asset.id, 1)]) {
276+ case s: String =>
277+ s
278+ case _ =>
279+ throw(("Somthing wrong when unlock NFT in address: " + toBase58String(value(wrapAddress).bytes)))
280+ }
281+ if ((unlockedNftStr == unlockedNftStr))
282+ then [ScriptTransfer(i.caller, 1, fromBase58String(unlockedNftStr))]
283+ else throw("Strict value is not equal to itself.")
284+ }
285+ else [ScriptTransfer(i.caller, 1, fromBase58String(boughtNft))]
286+ }
287+ else throw("Ivalid bought NFT")
286288 }
287289 else throw("Strict value is not equal to itself.")
288290 }
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 nftWavesPunksWrapper = base58'3PD1sd55PYzmGUrQ896Qt3uvdbtgjCVpajE'
1717
1818 let nftWavesLandsWrapper = base58'3PCW9q51iwFiaDZB8SSRgc7jqjYgTgQy5T3'
1919
2020 let incubatorAddress = base58'3PEktVux2RhchSN63DsDo4b4mz4QqzKSeDv'
2121
2222 let breederAddress = base58'3PDVuU45H7Eh5dmtNbnRNRStGwULA7NY6Hb'
2323
2424 let marketplaceContractAddress = base58'3PATXDVE53rKJtkwXYV3tvuLVS2fDtGtKCc'
2525
2626 let zombieIssuerAddress = Address(base58'3P7QrWH1ETLfKAJcFHYPJmQusNbDuW98Hop')
2727
2828 let punksIssuerAddress = Address(base58'3P8rLVnwrTf4k5AB3emuduhZZb1yKcitTHy')
2929
3030 let aliensIssuerAddress = Address(base58'3PBkrb5LrGDvCwkx4VHZzZkqMNvvGqrJJWj')
3131
3232 let madPunksIssuerAddress = Address(base58'3PJXfYMavRVzBDXqsFfwkLdEV7yuF5RToya')
3333
3434 let madPunks2IssuerAddress = Address(base58'3P8LcmWrr9SFrxwheZQENov5fPHEWtiwroN')
3535
3636 let wlIssuerAddress = Address(base58'3PLncXtS1U83D6cQbFD3H8rBHPLgzxSFKZ1')
3737
3838 func ifWavesLandsNFT (asset) = if (if (if ((asset.issuer == wlIssuerAddress))
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 ifSignArtNft (asset) = if (if (if ((asset.issuer.bytes == signArtNftCreationAddress))
4848 then (asset.decimals == 0)
4949 else false)
5050 then (asset.reissuable == false)
5151 else false)
5252 then (asset.quantity == 1)
5353 else false
5454
5555
5656 func ifDuckNft (asset) = if (if (if (if ((asset.issuer.bytes == incubatorAddress))
5757 then true
5858 else (asset.issuer.bytes == breederAddress))
5959 then (asset.decimals == 0)
6060 else false)
6161 then (asset.reissuable == false)
6262 else false)
6363 then (asset.quantity == 1)
6464 else false
6565
6666
6767 func ifWavesPunksNft (asset) = if (if (if ((valueOrElse(indexOf([zombieIssuerAddress, punksIssuerAddress, aliensIssuerAddress, madPunksIssuerAddress, madPunks2IssuerAddress], asset.issuer), -1) >= 0))
6868 then (asset.decimals == 0)
6969 else false)
7070 then (asset.reissuable == false)
7171 else false)
7272 then (asset.quantity == 1)
7373 else false
7474
7575
7676 func ifUltraStakingNft (asset) = {
7777 let isEagleNFT = match getString(Address(eagleBuyerAddress), (("art_" + toBase58String(asset.id)) + "_type")) {
7878 case s: String =>
7979 (s == "eagle")
8080 case _ =>
8181 false
8282 }
8383 let isAniaNFT = match getString(Address(nftCreationAddress), (("nft_" + toBase58String(asset.id)) + "_issuer")) {
8484 case s: String =>
8585 if ((s == "3PMki5sHBsQb4KgDknbUwsL3YgxaCzaZnCJ"))
8686 then contains(asset.name, "Bored Ania #")
8787 else false
8888 case _ =>
8989 false
9090 }
9191 if (isEagleNFT)
9292 then true
9393 else isAniaNFT
9494 }
9595
9696
9797 func isNftFromMarketplace (asset) = if (if (if ((asset.issuer.bytes == nftCreationAddress))
9898 then (asset.decimals == 0)
9999 else false)
100100 then (asset.reissuable == false)
101101 else false)
102102 then (asset.quantity == 1)
103103 else false
104104
105105
106106 func getAddressForWrap (asset) = if (ifUltraStakingNft(asset))
107107 then Address(nftUltraStakingWrapper)
108108 else if (ifWavesPunksNft(asset))
109109 then Address(nftWavesPunksWrapper)
110110 else if (ifSignArtNft(asset))
111111 then Address(nftSignArtWrapper)
112112 else if (ifDuckNft(asset))
113113 then Address(nftDuckWrapper)
114114 else if (ifWavesLandsNFT(asset))
115115 then Address(nftWavesLandsWrapper)
116116 else unit
117117
118118
119119 func getAddressForUnwrap (nftStr) = {
120120 let isSignArt = match getString(Address(nftSignArtWrapper), (("signArtNft_" + nftStr) + "_assetId")) {
121121 case s: String =>
122122 (size(s) > 0)
123123 case _ =>
124124 false
125125 }
126126 let isDuck = match getString(Address(nftDuckWrapper), (("nft_" + nftStr) + "_duckId")) {
127127 case s: String =>
128128 (size(s) > 0)
129129 case _ =>
130130 false
131131 }
132132 let isUltraStaking = match getString(Address(nftUltraStakingWrapper), (("nft_" + nftStr) + "_assetId")) {
133133 case s: String =>
134134 (size(s) > 0)
135135 case _ =>
136136 false
137137 }
138138 let isWavesPunks = match getString(Address(nftWavesPunksWrapper), (("nft_" + nftStr) + "_assetId")) {
139139 case s: String =>
140140 (size(s) > 0)
141141 case _ =>
142142 false
143143 }
144144 let isWavesLands = match getString(Address(nftWavesLandsWrapper), (("nft_" + nftStr) + "_assetId")) {
145145 case s: String =>
146146 (size(s) > 0)
147147 case _ =>
148148 false
149149 }
150150 if (isUltraStaking)
151151 then Address(nftUltraStakingWrapper)
152152 else if (isWavesPunks)
153153 then Address(nftWavesPunksWrapper)
154154 else if (isSignArt)
155155 then Address(nftSignArtWrapper)
156156 else if (isDuck)
157157 then Address(nftDuckWrapper)
158158 else if (isWavesLands)
159159 then Address(nftWavesLandsWrapper)
160160 else unit
161161 }
162162
163163
164164 @Callable(i)
165165 func lockAndSellNFT (buyOutPrice,buyOutAssetId,sellerComment) = {
166166 let assetId = value(value(i.payments[0]).assetId)
167167 let asset = value(assetInfo(assetId))
168168 let wrapAddress = getAddressForWrap(asset)
169169 let stakedNFTIdStr = if (isDefined(wrapAddress))
170170 then {
171171 let lockedNftStr = match invoke(value(wrapAddress), "lock", nil, [i.payments[0]]) {
172172 case s: String =>
173173 s
174174 case _ =>
175175 throw(("Somthing wrong when lock NFT in address: " + toBase58String(value(wrapAddress).bytes)))
176176 }
177177 if ((lockedNftStr == lockedNftStr))
178178 then lockedNftStr
179179 else throw("Strict value is not equal to itself.")
180180 }
181181 else toBase58String(asset.id)
182182 if ((size(stakedNFTIdStr) > 0))
183183 then {
184184 let inv = invoke(Address(marketplaceContractAddress), "sellNFT", [buyOutPrice, buyOutAssetId, sellerComment], [AttachedPayment(fromBase58String(stakedNFTIdStr), 1)])
185185 if ((inv == inv))
186186 then nil
187187 else throw("Strict value is not equal to itself.")
188188 }
189189 else throw("The created NFT is invalid")
190190 }
191191
192192
193193
194194 @Callable(i)
195195 func cancelSellAndUnlock (nftId) = {
196196 let asset = value(assetInfo(fromBase58String(nftId)))
197197 let wrapAddress = getAddressForUnwrap(nftId)
198198 if (isNftFromMarketplace(asset))
199199 then {
200200 let canceledNftStr = match invoke(Address(marketplaceContractAddress), "cancelSell", [nftId], nil) {
201201 case s: String =>
202202 s
203203 case _ =>
204204 throw("Somthing wrong when cancel sell NFT")
205205 }
206206 if ((canceledNftStr == canceledNftStr))
207207 then if (isDefined(wrapAddress))
208208 then {
209209 let unlockedNftStr = match invoke(value(wrapAddress), "unlock", nil, [AttachedPayment(asset.id, 1)]) {
210210 case s: String =>
211211 s
212212 case _ =>
213213 throw(("Somthing wrong when unlock NFT in address: " + toBase58String(value(wrapAddress).bytes)))
214214 }
215215 if ((unlockedNftStr == unlockedNftStr))
216216 then [ScriptTransfer(i.caller, 1, fromBase58String(unlockedNftStr))]
217217 else throw("Strict value is not equal to itself.")
218218 }
219219 else [ScriptTransfer(i.caller, 1, fromBase58String(canceledNftStr))]
220220 else throw("Strict value is not equal to itself.")
221221 }
222222 else throw("Ivalid NFT attached")
223223 }
224224
225225
226226
227227 @Callable(i)
228228 func unlock () = {
229229 let asset = value(assetInfo(value(i.payments[0].assetId)))
230230 if (if (isNftFromMarketplace(asset))
231231 then (i.payments[0].amount == 1)
232232 else false)
233233 then {
234234 let assetIdStr = toBase58String(asset.id)
235235 let wrapAddress = getAddressForUnwrap(assetIdStr)
236236 if (isDefined(wrapAddress))
237237 then {
238238 let unlockedNftStr = match invoke(value(wrapAddress), "unlock", nil, [AttachedPayment(asset.id, 1)]) {
239239 case s: String =>
240240 s
241241 case _ =>
242242 throw(("Somthing wrong when unlock NFT in address: " + toBase58String(value(wrapAddress).bytes)))
243243 }
244244 if ((unlockedNftStr == unlockedNftStr))
245245 then $Tuple2([ScriptTransfer(i.caller, 1, fromBase58String(unlockedNftStr))], unlockedNftStr)
246246 else throw("Strict value is not equal to itself.")
247247 }
248248 else $Tuple2([ScriptTransfer(i.caller, 1, asset.id)], toBase58String(asset.id))
249249 }
250250 else throw("Ivalid NFT attached")
251251 }
252252
253253
254254
255255 @Callable(i)
256-func buy (nftId) = {
256+func buy (nftId,debug) = {
257257 let boughtNft = match invoke(Address(marketplaceContractAddress), "buyNFT", [nftId], i.payments) {
258258 case s: String =>
259259 s
260260 case _ =>
261261 throw("Somthing wrong when buy NFT")
262262 }
263263 if ((boughtNft == boughtNft))
264264 then {
265265 let asset = value(assetInfo(fromBase58String(boughtNft)))
266- if (if ((size(boughtNft) > 0))
267- then isNftFromMarketplace(asset)
268- else false)
269- then {
270- let wrapAddress = getAddressForUnwrap(nftId)
271- if (isDefined(wrapAddress))
272- then {
273- let unlockedNftStr = match invoke(value(wrapAddress), "unlock", nil, [AttachedPayment(asset.id, 1)]) {
274- case s: String =>
275- s
276- case _ =>
277- throw(("Somthing wrong when unlock NFT in address: " + toBase58String(value(wrapAddress).bytes)))
278- }
279- if ((unlockedNftStr == unlockedNftStr))
280- then [ScriptTransfer(i.caller, 1, fromBase58String(unlockedNftStr))]
281- else throw("Strict value is not equal to itself.")
282- }
283- else [ScriptTransfer(i.caller, 1, fromBase58String(boughtNft))]
284- }
285- else throw("Ivalid bought NFT")
266+ if (debug)
267+ then throw(("bun nft " + boughtNft))
268+ else if (if ((size(boughtNft) > 0))
269+ then isNftFromMarketplace(asset)
270+ else false)
271+ then {
272+ let wrapAddress = getAddressForUnwrap(nftId)
273+ if (isDefined(wrapAddress))
274+ then {
275+ let unlockedNftStr = match invoke(value(wrapAddress), "unlock", nil, [AttachedPayment(asset.id, 1)]) {
276+ case s: String =>
277+ s
278+ case _ =>
279+ throw(("Somthing wrong when unlock NFT in address: " + toBase58String(value(wrapAddress).bytes)))
280+ }
281+ if ((unlockedNftStr == unlockedNftStr))
282+ then [ScriptTransfer(i.caller, 1, fromBase58String(unlockedNftStr))]
283+ else throw("Strict value is not equal to itself.")
284+ }
285+ else [ScriptTransfer(i.caller, 1, fromBase58String(boughtNft))]
286+ }
287+ else throw("Ivalid bought NFT")
286288 }
287289 else throw("Strict value is not equal to itself.")
288290 }
289291
290292
291293 @Verifier(tx)
292294 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
293295

github/deemru/w8io/3ef1775 
35.59 ms