2022.05.25 23:13 [3133167] smart account 3PATXDVE53rKJtkwXYV3tvuLVS2fDtGtKCc > SELF 0.00000000 Waves

{ "type": 13, "id": "2VhduB9rLHP67b9ZrCNAb2gVA1KyXkm1MXMWQoevk3L2", "fee": 1400000, "feeAssetId": null, "timestamp": 1653509633274, "version": 2, "chainId": 87, "sender": "3PATXDVE53rKJtkwXYV3tvuLVS2fDtGtKCc", "senderPublicKey": "3pJsmGRpWHpqyaAjeX7BacMEfYx32LMNN4qwxQqASBmi", "proofs": [ "4fE8nUoXx9w3ZsRwqrp115oz5cZyVCTUrDW9vp6Hp3ihPEWgfq3WSyThgXZJ9qfyqAj7XMQ3c5HcaF82Fx4ccfiY" ], "script": "base64:AAIFAAAAAAAAACgIAhIECgIBCBIDCgEIEgMKAQgSAwoBCBIDCgEIEgQKAggIEgQKAggIAAAADgAAAAANY3JlYXRlTmZ0RGFwcAEAAAAaAVeT3cTSF+cgCv33IRJO8PB2ZyaDA3jUXEwAAAAAEG1hcmtldEZlZUFkZHJlc3MJAQAAAAdBZGRyZXNzAAAAAQEAAAAaAVeKrBYoVkFMTY2p7+L8gNbzfcTXyPMneqoAAAAAEnB1enpsZVN0YWtlQWRkcmVzcwEAAAAaAVeUaIz57qK5qp/W9Y68qY9nGpwG9BYpibsAAAAADm5mdER1Y2tXcmFwcGVyAQAAABoBVxStRFKbpf3/YRf/2Drn8WeKgJwUuC/PHgAAAAARbmZ0U2lnbkFydFdyYXBwZXIBAAAAGgFX7qEaFcPxtl9EZf9fyBU5xHlF1RhFRzAHAAAAAA5yb3lhbHR5UGVyY2VudAAAAAAAAAAABwEAAAAFaXNORlQAAAABAAAABWFzc2V0AwMJAAAAAAAAAggFAAAABWFzc2V0AAAACGRlY2ltYWxzAAAAAAAAAAAACQAAAAAAAAIIBQAAAAVhc3NldAAAAApyZWlzc3VhYmxlBwcJAAAAAAAAAggFAAAABWFzc2V0AAAACHF1YW50aXR5AAAAAAAAAAABBwEAAAAIY2hlY2tORlQAAAABAAAABWFzc2V0AwMDCQAAAAAAAAIICAUAAAAFYXNzZXQAAAAGaXNzdWVyAAAABWJ5dGVzBQAAAA1jcmVhdGVOZnREYXBwCQAAAAAAAAIIBQAAAAVhc3NldAAAAAhkZWNpbWFscwAAAAAAAAAAAAcJAAAAAAAAAggFAAAABWFzc2V0AAAACnJlaXNzdWFibGUHBwkAAAAAAAACCAUAAAAFYXNzZXQAAAAIcXVhbnRpdHkAAAAAAAAAAAEHAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQAAAANrZXkEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWIFAAAAByRtYXRjaDAFAAAAAWIAAAAAAAAAAAABAAAADHRyeUdldFN0cmluZwAAAAEAAAADa2V5BAAAAAckbWF0Y2gwCQAEHQAAAAIFAAAABHRoaXMFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFiBQAAAAckbWF0Y2gwBQAAAAFiAgAAAAABAAAAD3RyeUdldEFzc2V0SW5mbwAAAAIAAAAHYXNzZXRJZAAAAAhlcnJvck1zZwQAAAAHJG1hdGNoMAkAA+wAAAABCQACWQAAAAEFAAAAB2Fzc2V0SWQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABUFzc2V0BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhCQAAAgAAAAEFAAAACGVycm9yTXNnAQAAAA5nZXRBc3NldFN0cmluZwAAAAEAAAAHYXNzZXRJZAQAAAAHJG1hdGNoMAUAAAAHYXNzZXRJZAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAKQnl0ZVZlY3RvcgQAAAABYgUAAAAHJG1hdGNoMAkAAlgAAAABBQAAAAFiAgAAAAVXQVZFUwEAAAANZ2V0QXNzZXRCeXRlcwAAAAEAAAAKYXNzZXRJZFN0cgMJAAAAAAAAAgUAAAAKYXNzZXRJZFN0cgIAAAAFV0FWRVMFAAAABHVuaXQJAAJZAAAAAQUAAAAKYXNzZXRJZFN0cgEAAAATZ2V0QWxsRGVsZXRlRW50cmllcwAAAAIAAAAFbmZ0SWQAAAAHZXhjbHVkZQQAAAAKYXVjdGlvbktleQkAASwAAAACCQABLAAAAAICAAAACGF1Y3Rpb25fBQAAAAVuZnRJZAIAAAAFX2JldHMEAAAAC2F1Y3Rpb25EYXRhCQEAAAAMdHJ5R2V0U3RyaW5nAAAAAQUAAAAKYXVjdGlvbktleQQAAAAJZXhjbHVkZUlkAwkAAGYAAAACCQABMQAAAAEFAAAAB2V4Y2x1ZGUAAAAAAAAAAAAFAAAAB2V4Y2x1ZGUCAAAAAAMJAAAAAAAAAgkAATEAAAABBQAAAAthdWN0aW9uRGF0YQAAAAAAAAAAAAUAAAADbmlsCgEAAAAVZ2V0UmV0dXJuVHJhbnNhY3Rpb25zAAAAAgAAAAVhY2N1bQAAAARuZXh0BAAAAA1iZXRQYXJzZWREYXRhCQAEtQAAAAIFAAAABG5leHQCAAAAAV8EAAAACGJldE93bmVyCQABkQAAAAIFAAAADWJldFBhcnNlZERhdGEAAAAAAAAAAAAEAAAACWJldEFtb3VudAkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAADWJldFBhcnNlZERhdGEAAAAAAAAAAAEEAAAACmJldEFzc2V0SWQDCQAAAAAAAAIJAAGRAAAAAgUAAAANYmV0UGFyc2VkRGF0YQAAAAAAAAAAAgIAAAAFV0FWRVMFAAAABHVuaXQJAAJZAAAAAQkAAZEAAAACBQAAAA1iZXRQYXJzZWREYXRhAAAAAAAAAAACAwMJAABmAAAAAgkAATEAAAABBQAAAAlleGNsdWRlSWQAAAAAAAAAAAAJAAAAAAAAAgUAAAAJZXhjbHVkZUlkBQAAAARuZXh0BwUAAAAFYWNjdW0JAARNAAAAAgUAAAAFYWNjdW0JAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABBQAAAAhiZXRPd25lcgUAAAAJYmV0QW1vdW50BQAAAApiZXRBc3NldElkCgAAAAACJGwJAAS1AAAAAgUAAAALYXVjdGlvbkRhdGECAAAAASwKAAAAAAIkcwkAAZAAAAABBQAAAAIkbAoAAAAABSRhY2MwBQAAAANuaWwKAQAAAAUkZjBfMQAAAAIAAAACJGEAAAACJGkDCQAAZwAAAAIFAAAAAiRpBQAAAAIkcwUAAAACJGEJAQAAABVnZXRSZXR1cm5UcmFuc2FjdGlvbnMAAAACBQAAAAIkYQkAAZEAAAACBQAAAAIkbAUAAAACJGkKAQAAAAUkZjBfMgAAAAIAAAACJGEAAAACJGkDCQAAZwAAAAIFAAAAAiRpBQAAAAIkcwUAAAACJGEJAAACAAAAAQIAAAAUTGlzdCBzaXplIGV4Y2VlZHMgNTAJAQAAAAUkZjBfMgAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIFAAAABSRhY2MwAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAACAAAAAAAAAAADAAAAAAAAAAAEAAAAAAAAAAAFAAAAAAAAAAAGAAAAAAAAAAAHAAAAAAAAAAAIAAAAAAAAAAAJAAAAAAAAAAAKAAAAAAAAAAALAAAAAAAAAAAMAAAAAAAAAAANAAAAAAAAAAAOAAAAAAAAAAAPAAAAAAAAAAAQAAAAAAAAAAARAAAAAAAAAAASAAAAAAAAAAATAAAAAAAAAAAUAAAAAAAAAAAVAAAAAAAAAAAWAAAAAAAAAAAXAAAAAAAAAAAYAAAAAAAAAAAZAAAAAAAAAAAaAAAAAAAAAAAbAAAAAAAAAAAcAAAAAAAAAAAdAAAAAAAAAAAeAAAAAAAAAAAfAAAAAAAAAAAgAAAAAAAAAAAhAAAAAAAAAAAiAAAAAAAAAAAjAAAAAAAAAAAkAAAAAAAAAAAlAAAAAAAAAAAmAAAAAAAAAAAnAAAAAAAAAAAoAAAAAAAAAAApAAAAAAAAAAAqAAAAAAAAAAArAAAAAAAAAAAsAAAAAAAAAAAtAAAAAAAAAAAuAAAAAAAAAAAvAAAAAAAAAAAwAAAAAAAAAAAxAAAAAAAAAAAyAAAABwAAAAFpAQAAAAdzZWxsTkZUAAAAAgAAAAtidXlPdXRQcmljZQAAAA1idXlPdXRBc3NldElkBAAAAANwbXQDAwkAAAAAAAACCQABkAAAAAEIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAABCQAAAAAAAAIICQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAAAAAABmFtb3VudAAAAAAAAAAAAQcJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAJAAACAAAAAQIAAAAZTkZUIG5vdCBsaXN0ZWQgYXMgcGF5bWVudAQAAAALYnV5T3V0QXNzZXQJAQAAAA1nZXRBc3NldEJ5dGVzAAAAAQUAAAANYnV5T3V0QXNzZXRJZAMJAQAAAAlpc0RlZmluZWQAAAABCAUAAAADcG10AAAAB2Fzc2V0SWQEAAAABW5mdElkCQEAAAAFdmFsdWUAAAABCAUAAAADcG10AAAAB2Fzc2V0SWQEAAAAA25mdAQAAAAHJG1hdGNoMAkAA+wAAAABBQAAAAVuZnRJZAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAFQXNzZXQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEJAAACAAAAAQIAAAAOQ2FuJ3QgZmluZCBORlQDCQEAAAAIY2hlY2tORlQAAAABBQAAAANuZnQDCQAAZgAAAAIFAAAAC2J1eU91dFByaWNlAAAAAAAAAAAABAAAAAxhc3NldE5hbWVTdHIJAAJYAAAAAQgFAAAAA25mdAAAAAJpZAQAAAAJbmZ0SXNzdWVyBAAAAAckbWF0Y2gwCQAEHQAAAAIJAQAAAAdBZGRyZXNzAAAAAQUAAAANY3JlYXRlTmZ0RGFwcAkAASwAAAACCQABLAAAAAICAAAABG5mdF8FAAAADGFzc2V0TmFtZVN0cgIAAAAHX2lzc3VlcgMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgQAAAAPcm95YWx0eVJlY2VpdmVyAwkBAAAAAiE9AAAAAgUAAAAJbmZ0SXNzdWVyCQACWAAAAAEFAAAAEW5mdFNpZ25BcnRXcmFwcGVyBQAAAAluZnRJc3N1ZXIJAAGRAAAAAgkABLUAAAACCQABkQAAAAIJAAS1AAAAAggJAQAAAAV2YWx1ZQAAAAEJAAPsAAAAAQUAAAAFbmZ0SWQAAAALZGVzY3JpcHRpb24CAAAAASAAAAAAAAAAAAICAAAAAS4AAAAAAAAAAAAJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACAgAAAARuZnRfBQAAAAxhc3NldE5hbWVTdHICAAAADF9idXlPdXRQcmljZQUAAAALYnV5T3V0UHJpY2UJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAASwAAAACCQABLAAAAAICAAAABG5mdF8FAAAADGFzc2V0TmFtZVN0cgIAAAAOX2J1eU91dEFzc2V0SWQJAQAAAA5nZXRBc3NldFN0cmluZwAAAAEFAAAAC2J1eU91dEFzc2V0CQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACAgAAAARuZnRfBQAAAAxhc3NldE5hbWVTdHICAAAAEF9yb3lhbHR5UmVjZWl2ZXIFAAAAD3JveWFsdHlSZWNlaXZlcgkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAEbmZ0XwUAAAAMYXNzZXROYW1lU3RyAgAAAAdfc2VsbGVyCQAEJQAAAAEIBQAAAAFpAAAADG9yaWdpbkNhbGxlcgkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAhhZGRyZXNzXwkABCUAAAABCAUAAAABaQAAAAxvcmlnaW5DYWxsZXICAAAABV9uZnRfBQAAAAxhc3NldE5hbWVTdHIFAAAADGFzc2V0TmFtZVN0cgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAhhZGRyZXNzXwkABCUAAAABCAUAAAABaQAAAAxvcmlnaW5DYWxsZXICAAAABV9uZnRfBQAAAAxhc3NldE5hbWVTdHICAAAADF9zdGFydFNhbGVBdAUAAAAGaGVpZ2h0BQAAAANuaWwJAAACAAAAAQIAAAAfUHJpY2UgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVybwkAAAIAAAABAgAAABpORlQgaXNzdWVkIGJ5IGFub3RoZXIgZGFwcAkAAAIAAAABAgAAACZORlQgaXMgbm90IGF0dGFjaGVkIHRvIHRoZSB0cmFuc2FjdGlvbgAAAAFpAQAAAAZidXlORlQAAAABAAAABW5mdElkBAAAAANwbXQDCQAAAAAAAAIJAAGQAAAAAQgFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAEJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAJAAACAAAAAQIAAAAcQXR0YWNoZWQgcGF5bWVudCBpcyByZXF1aXJlZAQAAAALYnV5T3V0UHJpY2UJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQkAASwAAAACCQABLAAAAAICAAAABG5mdF8FAAAABW5mdElkAgAAAAxfYnV5T3V0UHJpY2UEAAAADWJ1eU91dEFzc2V0SWQJAQAAAAx0cnlHZXRTdHJpbmcAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAEbmZ0XwUAAAAFbmZ0SWQCAAAADl9idXlPdXRBc3NldElkBAAAAA9yb3lhbHR5UmVjZWl2ZXIJAQAAAAx0cnlHZXRTdHJpbmcAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAEbmZ0XwUAAAAFbmZ0SWQCAAAAEF9yb3lhbHR5UmVjZWl2ZXIEAAAACXNlbGxlclN0cgkBAAAADHRyeUdldFN0cmluZwAAAAEJAAEsAAAAAgkAASwAAAACAgAAAARuZnRfBQAAAAVuZnRJZAIAAAAHX3NlbGxlcgQAAAAIbmZ0QXNzZXQJAQAAAA90cnlHZXRBc3NldEluZm8AAAACBQAAAAVuZnRJZAIAAAANTkZUIG5vdCBmb3VuZAQAAAALYnV5T3V0QXNzZXQJAQAAAA90cnlHZXRBc3NldEluZm8AAAACBQAAAA1idXlPdXRBc3NldElkAgAAABZCdXlvdXQgYXNzZXQgbm90IGZvdW5kAwMJAABmAAAAAgUAAAALYnV5T3V0UHJpY2UAAAAAAAAAAAAJAABnAAAAAggFAAAAA3BtdAAAAAZhbW91bnQFAAAAC2J1eU91dFByaWNlBwQAAAALcm95YWx0eVBhcnQJAABrAAAAAwUAAAALYnV5T3V0UHJpY2UFAAAADnJveWFsdHlQZXJjZW50AAAAAAAAAABkBAAAAAltYXJrZXRGZWUJAABrAAAAAwUAAAALYnV5T3V0UHJpY2UAAAAAAAAAAAMAAAAAAAAAAGQDCQAAAAAAAAIIBQAAAANwbXQAAAAHYXNzZXRJZAgFAAAAC2J1eU91dEFzc2V0AAAAAmlkCQAFFAAAAAIJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyAAAAAAAAAAABCAUAAAAIbmZ0QXNzZXQAAAACaWQJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEFAAAACXNlbGxlclN0cgkAAGUAAAACCQAAZQAAAAIFAAAAC2J1eU91dFByaWNlBQAAAAtyb3lhbHR5UGFydAUAAAAJbWFya2V0RmVlCAUAAAALYnV5T3V0QXNzZXQAAAACaWQJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEFAAAAD3JveWFsdHlSZWNlaXZlcgUAAAALcm95YWx0eVBhcnQIBQAAAAtidXlPdXRBc3NldAAAAAJpZAkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADBQAAABBtYXJrZXRGZWVBZGRyZXNzBQAAAAltYXJrZXRGZWUIBQAAAAtidXlPdXRBc3NldAAAAAJpZAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAEbmZ0XwUAAAAFbmZ0SWQCAAAADF9idXlPdXRQcmljZQkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAEbmZ0XwUAAAAFbmZ0SWQCAAAADl9idXlPdXRBc3NldElkCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAAEsAAAAAgkAASwAAAACAgAAAARuZnRfBQAAAAVuZnRJZAIAAAAQX3JveWFsdHlSZWNlaXZlcgkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAEbmZ0XwUAAAAFbmZ0SWQCAAAAB19zZWxsZXIJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAIYWRkcmVzc18FAAAACXNlbGxlclN0cgIAAAAFX25mdF8FAAAABW5mdElkCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAIYWRkcmVzc18FAAAACXNlbGxlclN0cgIAAAAFX25mdF8FAAAABW5mdElkAgAAAAxfc3RhcnRTYWxlQXQFAAAAA25pbAkAAlgAAAABCAUAAAAIbmZ0QXNzZXQAAAACaWQJAAACAAAAAQIAAAAyVGhlIGJ1eW91dCBhc3NldCBkb2VzIG5vdCBtYXRjaCB0aGUgcHVyY2hhc2UgYXNzZXQJAAACAAAAAQIAAAAoUGF5bWVudCBhbW91bnQgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVybwAAAAFpAQAAAApjYW5jZWxTZWxsAAAAAQAAAAVuZnRJZAQAAAAJc2VsbGVyU3RyCQEAAAAMdHJ5R2V0U3RyaW5nAAAAAQkAASwAAAACCQABLAAAAAICAAAABG5mdF8FAAAABW5mdElkAgAAAAdfc2VsbGVyBAAAAAhuZnRBc3NldAkBAAAAD3RyeUdldEFzc2V0SW5mbwAAAAIFAAAABW5mdElkAgAAAA1ORlQgbm90IGZvdW5kBAAAAAphdWN0aW9uS2V5CQABLAAAAAIJAAEsAAAAAgIAAAAIYXVjdGlvbl8JAAJYAAAAAQgFAAAACG5mdEFzc2V0AAAAAmlkAgAAAAVfYmV0cwMDCQAAZgAAAAIJAAExAAAAAQUAAAAJc2VsbGVyU3RyAAAAAAAAAAAACQAAAAAAAAIFAAAACXNlbGxlclN0cgkABCUAAAABCAUAAAABaQAAAAxvcmlnaW5DYWxsZXIHCQAFFAAAAAIJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyAAAAAAAAAAABCAUAAAAIbmZ0QXNzZXQAAAACaWQJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkAASwAAAACCQABLAAAAAICAAAABG5mdF8FAAAABW5mdElkAgAAAAxfYnV5T3V0UHJpY2UJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkAASwAAAACCQABLAAAAAICAAAABG5mdF8FAAAABW5mdElkAgAAAA5fYnV5T3V0QXNzZXRJZAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAEbmZ0XwUAAAAFbmZ0SWQCAAAAEF9yb3lhbHR5UmVjZWl2ZXIJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkAASwAAAACCQABLAAAAAICAAAABG5mdF8FAAAABW5mdElkAgAAAAdfc2VsbGVyCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAACGFkZHJlc3NfBQAAAAlzZWxsZXJTdHICAAAABV9uZnRfBQAAAAVuZnRJZAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAACGFkZHJlc3NfBQAAAAlzZWxsZXJTdHICAAAABV9uZnRfBQAAAAVuZnRJZAIAAAAMX3N0YXJ0U2FsZUF0CQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEFAAAACmF1Y3Rpb25LZXkFAAAAA25pbAUAAAAFbmZ0SWQJAAACAAAAAQIAAAAUWW91IGFyZSBub3QgYSBzZWxsZXIAAAABaQEAAAAEbGlrZQAAAAEAAAAFbmZ0SWQEAAAACG5mdEFzc2V0CQAD7AAAAAEJAAJZAAAAAQUAAAAFbmZ0SWQEAAAACWlzRHVja05mdAkBAAAACWlzRGVmaW5lZAAAAAEJAAQdAAAAAgkBAAAAB0FkZHJlc3MAAAABBQAAAA5uZnREdWNrV3JhcHBlcgkAASwAAAACCQABLAAAAAICAAAABG5mdF8FAAAABW5mdElkAgAAAAdfZHVja0lkBAAAAAxpc1NpZ25BcnROZnQJAQAAAAlpc0RlZmluZWQAAAABCQAEHQAAAAIJAQAAAAdBZGRyZXNzAAAAAQUAAAARbmZ0U2lnbkFydFdyYXBwZXIJAAEsAAAAAgkAASwAAAACAgAAAAtzaWduQXJ0TmZ0XwUAAAAFbmZ0SWQCAAAACF9hc3NldElkAwMDAwkBAAAACWlzRGVmaW5lZAAAAAEFAAAACG5mdEFzc2V0CQEAAAABIQAAAAEFAAAACWlzRHVja05mdAcJAQAAAAEhAAAAAQUAAAAMaXNTaWduQXJ0TmZ0BwkBAAAACGNoZWNrTkZUAAAAAQkBAAAABXZhbHVlAAAAAQUAAAAIbmZ0QXNzZXQHBAAAAA1jYWxsZXJBZGRyZXNzCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgQAAAALY291bnRTdGFrZWQEAAAAByRtYXRjaDAJAAQaAAAAAgkBAAAAB0FkZHJlc3MAAAABBQAAABJwdXp6bGVTdGFrZUFkZHJlc3MJAAEsAAAAAgUAAAANY2FsbGVyQWRkcmVzcwIAAAAHX3N0YWtlZAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFjBQAAAAckbWF0Y2gwBQAAAAFjAAAAAAAAAAAAAwkAAGcAAAACBQAAAAtjb3VudFN0YWtlZAAAAAAABfXhAAQAAAALbmZ0TGlrZXNLZXkJAAEsAAAAAgkAASwAAAACAgAAAARuZnRfBQAAAAVuZnRJZAIAAAAGX2xpa2VzBAAAAA1uZnRMaWtlc1ZhbHVlCQEAAAAMdHJ5R2V0U3RyaW5nAAAAAQkAASwAAAACCQABLAAAAAICAAAABG5mdF8FAAAABW5mdElkAgAAAAZfbGlrZXMDCQEAAAABIQAAAAEJAQAAAAlpc0RlZmluZWQAAAABCQAEswAAAAIFAAAADW5mdExpa2VzVmFsdWUFAAAADWNhbGxlckFkZHJlc3MEAAAADW5ld0xpa2VzVmFsdWUDCQAAAAAAAAIJAAExAAAAAQUAAAANbmZ0TGlrZXNWYWx1ZQAAAAAAAAAAAAkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIJAAEsAAAAAgkAASwAAAACBQAAAA1uZnRMaWtlc1ZhbHVlAgAAAAEsBQAAAA1jYWxsZXJBZGRyZXNzCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAAC25mdExpa2VzS2V5BQAAAA1uZXdMaWtlc1ZhbHVlBQAAAANuaWwJAAACAAAAAQIAAAAWWW91IGhhdmUgYWxyZWFkeSB2b3RlZAkAAAIAAAABAgAAACtZb3UgY2FuIGxpa2UgaWYgeW91IHN0YWtlIDEgb3IgbW9yZSBQdXp6bGVzCQAAAgAAAAECAAAADkludmFsaWQgTkZUIGlkAAAAAWkBAAAABmFkZEJldAAAAAEAAAAFbmZ0SWQDAwkAAGYAAAACCAkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAAAAAZhbW91bnQAAAAAAAAAAAADCQEAAAABIQAAAAEJAQAAAAlpc0RlZmluZWQAAAABCAkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAAAAAdhc3NldElkBgkBAAAAASEAAAABCQEAAAAFaXNORlQAAAABCQEAAAAFdmFsdWUAAAABCQAD7AAAAAEJAQAAAAV2YWx1ZQAAAAEICQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAAAAAAB2Fzc2V0SWQHBAAAAAhuZnRBc3NldAkBAAAAD3RyeUdldEFzc2V0SW5mbwAAAAIFAAAABW5mdElkAgAAAA1ORlQgbm90IGZvdW5kBAAAAAluZnRBbW91bnQEAAAAByRtYXRjaDAJAAPwAAAAAgUAAAAEdGhpcwgFAAAACG5mdEFzc2V0AAAAAmlkAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWMFAAAAByRtYXRjaDAFAAAAAWMAAAAAAAAAAAADAwkAAAAAAAACBQAAAAluZnRBbW91bnQAAAAAAAAAAAEJAQAAAAhjaGVja05GVAAAAAEFAAAACG5mdEFzc2V0BwQAAAAJY2FsbGVyU3RyCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgQAAAALYXNzZXRBbW91bnQICQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAAAAAABmFtb3VudAQAAAAKYXNzZXRJZFN0cgkBAAAADmdldEFzc2V0U3RyaW5nAAAAAQgJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAAAAAHYXNzZXRJZAQAAAAKYXVjdGlvbktleQkAASwAAAACCQABLAAAAAICAAAACGF1Y3Rpb25fCQACWAAAAAEIBQAAAAhuZnRBc3NldAAAAAJpZAIAAAAFX2JldHMEAAAAC2F1Y3Rpb25EYXRhCQEAAAAMdHJ5R2V0U3RyaW5nAAAAAQUAAAAKYXVjdGlvbktleQQAAAAJYWRkZWREYXRhCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIFAAAACWNhbGxlclN0cgIAAAABXwkAAaQAAAABBQAAAAthc3NldEFtb3VudAIAAAABXwUAAAAKYXNzZXRJZFN0cgMJAABmAAAAAgAAAAAAAAAAMgkAAGQAAAACCQABkAAAAAEJAAS1AAAAAgUAAAALYXVjdGlvbkRhdGECAAAAASwAAAAAAAAAAAEEAAAABWV4aXN0CQEAAAAIY29udGFpbnMAAAACBQAAAAthdWN0aW9uRGF0YQUAAAAJYWRkZWREYXRhAwkBAAAAASEAAAABBQAAAAVleGlzdAQAAAALdXBkYXRlZERhdGEEAAAAByRtYXRjaDAJAAQiAAAAAQUAAAAKYXVjdGlvbktleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFzBQAAAAckbWF0Y2gwCQABLAAAAAIJAAEsAAAAAgUAAAABcwIAAAABLAUAAAAJYWRkZWREYXRhBQAAAAlhZGRlZERhdGEJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAAKYXVjdGlvbktleQUAAAALdXBkYXRlZERhdGEFAAAAA25pbAkAAAIAAAABAgAAAApCZXQgZXhpc3RzCQAAAgAAAAECAAAALVlvdSBjYW5ub3QgY3JlYXRlIG1vcmUgdGhhbiA1MCBiZXRzIGZvciAxIE5GVAkAAAIAAAABAgAAAA9JbnZhbGlkIE5GVCBJZC4JAAACAAAAAQIAAAAUUGF5bWVudCBub3QgYXR0YWNoZWQAAAABaQEAAAAJZGVsZXRlQmV0AAAAAgAAAAVuZnRJZAAAAAViZXRJZAQAAAAIbmZ0QXNzZXQJAQAAAA90cnlHZXRBc3NldEluZm8AAAACBQAAAAVuZnRJZAIAAAANTkZUIG5vdCBmb3VuZAQAAAAKYXVjdGlvbktleQkAASwAAAACCQABLAAAAAICAAAACGF1Y3Rpb25fCQACWAAAAAEIBQAAAAhuZnRBc3NldAAAAAJpZAIAAAAFX2JldHMEAAAAC2F1Y3Rpb25EYXRhCQEAAAAMdHJ5R2V0U3RyaW5nAAAAAQUAAAAKYXVjdGlvbktleQMJAABmAAAAAgkAATEAAAABBQAAAAthdWN0aW9uRGF0YQAAAAAAAAAAAAQAAAAJY2FsbGVyU3RyCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgQAAAAEYmV0cwkABLUAAAACBQAAAAthdWN0aW9uRGF0YQIAAAABLAQAAAAIYmV0SW5kZXgEAAAAByRtYXRjaDAJAARPAAAAAgUAAAAEYmV0cwUAAAAFYmV0SWQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAADaWR4BQAAAAckbWF0Y2gwBQAAAANpZHgJAAACAAAAAQIAAAATQmV0IG5vdCBmb3VuZCBieSBpZAQAAAAHYmV0RGF0YQkAAZEAAAACBQAAAARiZXRzBQAAAAhiZXRJbmRleAQAAAANYmV0UGFyc2VkRGF0YQkABLUAAAACBQAAAAdiZXREYXRhAgAAAAFfBAAAAAhiZXRPd25lcgkAAZEAAAACBQAAAA1iZXRQYXJzZWREYXRhAAAAAAAAAAAABAAAAAliZXRBbW91bnQJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAA1iZXRQYXJzZWREYXRhAAAAAAAAAAABBAAAAApiZXRBc3NldElkAwkAAAAAAAACCQABkQAAAAIFAAAADWJldFBhcnNlZERhdGEAAAAAAAAAAAICAAAABVdBVkVTBQAAAAR1bml0CQACWQAAAAEJAAGRAAAAAgUAAAANYmV0UGFyc2VkRGF0YQAAAAAAAAAAAgMJAAAAAAAAAgUAAAAIYmV0T3duZXIFAAAACWNhbGxlclN0cgQAAAAHbmV3QmV0cwkABFEAAAACBQAAAARiZXRzBQAAAAhiZXRJbmRleAQAAAAOdXBkYXRlRGF0YUxpc3QDCQAAAAAAAAIJAAGQAAAAAQUAAAAHbmV3QmV0cwAAAAAAAAAAAAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABBQAAAAphdWN0aW9uS2V5BQAAAANuaWwJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAAKYXVjdGlvbktleQkABLkAAAACBQAAAAduZXdCZXRzAgAAAAEsBQAAAANuaWwJAAROAAAAAgkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIFAAAACWJldEFtb3VudAUAAAAKYmV0QXNzZXRJZAUAAAADbmlsBQAAAA51cGRhdGVEYXRhTGlzdAkAAAIAAAABAgAAABRUaGlzIGlzIG5vdCB5b3VyIGJldAkAAAIAAAABAgAAAA1CZXQgbm90IGZvdW5kAAAAAWkBAAAACmFwcHJvdmVCZXQAAAACAAAABW5mdElkAAAABWJldElkBAAAAAhuZnRBc3NldAkBAAAAD3RyeUdldEFzc2V0SW5mbwAAAAIFAAAABW5mdElkAgAAAA1ORlQgbm90IGZvdW5kAwkAAAAAAAACCQAD8AAAAAIFAAAABHRoaXMIBQAAAAhuZnRBc3NldAAAAAJpZAAAAAAAAAAAAQQAAAAJc2VsbGVyU3RyCQEAAAAMdHJ5R2V0U3RyaW5nAAAAAQkAASwAAAACCQABLAAAAAICAAAABG5mdF8FAAAABW5mdElkAgAAAAdfc2VsbGVyBAAAAAphdWN0aW9uS2V5CQABLAAAAAIJAAEsAAAAAgIAAAAIYXVjdGlvbl8JAAJYAAAAAQgFAAAACG5mdEFzc2V0AAAAAmlkAgAAAAVfYmV0cwMJAAAAAAAAAgUAAAAJc2VsbGVyU3RyCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgQAAAALYXVjdGlvbkRhdGEJAQAAAAx0cnlHZXRTdHJpbmcAAAABBQAAAAphdWN0aW9uS2V5AwkAAGYAAAACCQABMQAAAAEFAAAAC2F1Y3Rpb25EYXRhAAAAAAAAAAAABAAAAARiZXRzCQAEtQAAAAIFAAAAC2F1Y3Rpb25EYXRhAgAAAAEsBAAAAA1iZXRQYXJzZWREYXRhCQAEtQAAAAIFAAAABWJldElkAgAAAAFfBAAAAAhiZXRPd25lcgkAAZEAAAACBQAAAA1iZXRQYXJzZWREYXRhAAAAAAAAAAAABAAAAAliZXRBbW91bnQJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAA1iZXRQYXJzZWREYXRhAAAAAAAAAAABBAAAAApiZXRBc3NldElkAwkAAAAAAAACCQABkQAAAAIFAAAADWJldFBhcnNlZERhdGEAAAAAAAAAAAICAAAABVdBVkVTBQAAAAR1bml0CQACWQAAAAEJAAGRAAAAAgUAAAANYmV0UGFyc2VkRGF0YQAAAAAAAAAAAgQAAAAPcm95YWx0eVJlY2VpdmVyCQEAAAAMdHJ5R2V0U3RyaW5nAAAAAQkAASwAAAACCQABLAAAAAICAAAABG5mdF8FAAAABW5mdElkAgAAABBfcm95YWx0eVJlY2VpdmVyBAAAAAtyb3lhbHR5UGFydAkAAGsAAAADBQAAAAliZXRBbW91bnQFAAAADnJveWFsdHlQZXJjZW50AAAAAAAAAABkBAAAAAltYXJrZXRGZWUJAABrAAAAAwUAAAAJYmV0QW1vdW50AAAAAAAAAAADAAAAAAAAAABkAwMJAQAAAA9jb250YWluc0VsZW1lbnQAAAACBQAAAARiZXRzBQAAAAViZXRJZAkAAGYAAAACBQAAAAliZXRBbW91bnQAAAAAAAAAAAAHCQAETgAAAAIJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEFAAAACGJldE93bmVyAAAAAAAAAAABCAUAAAAIbmZ0QXNzZXQAAAACaWQJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyCQAAZQAAAAIJAABlAAAAAgUAAAAJYmV0QW1vdW50BQAAAAtyb3lhbHR5UGFydAUAAAAJbWFya2V0RmVlBQAAAApiZXRBc3NldElkCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABBQAAAA9yb3lhbHR5UmVjZWl2ZXIFAAAAC3JveWFsdHlQYXJ0BQAAAApiZXRBc3NldElkCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMFAAAAEG1hcmtldEZlZUFkZHJlc3MFAAAACW1hcmtldEZlZQUAAAAKYmV0QXNzZXRJZAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAEbmZ0XwUAAAAFbmZ0SWQCAAAADF9idXlPdXRQcmljZQkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAEbmZ0XwUAAAAFbmZ0SWQCAAAADl9idXlPdXRBc3NldElkCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAAEsAAAAAgkAASwAAAACAgAAAARuZnRfBQAAAAVuZnRJZAIAAAAQX3JveWFsdHlSZWNlaXZlcgkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAEbmZ0XwUAAAAFbmZ0SWQCAAAAB19zZWxsZXIJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAIYWRkcmVzc18FAAAACXNlbGxlclN0cgIAAAAFX25mdF8FAAAABW5mdElkCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAIYWRkcmVzc18FAAAACXNlbGxlclN0cgIAAAAFX25mdF8FAAAABW5mdElkAgAAAAxfc3RhcnRTYWxlQXQJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQUAAAAKYXVjdGlvbktleQUAAAADbmlsCQEAAAATZ2V0QWxsRGVsZXRlRW50cmllcwAAAAIJAAJYAAAAAQgFAAAACG5mdEFzc2V0AAAAAmlkBQAAAAViZXRJZAkAAAIAAAABAgAAABNCZXQgbm90IGZvdW5kIGJ5IElkCQAAAgAAAAECAAAADUJldCBub3QgZm91bmQJAAACAAAAAQIAAAAUWW91IGFyZSBub3QgYSBzZWxsZXIJAAACAAAAAQIAAAAZTkZUIG5vdCBmb3VuZCBvbiBjb250cmFjdAAAAAEAAAACdHgBAAAABnZlcmlmeQAAAAAJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAACAUAAAACdHgAAAAPc2VuZGVyUHVibGljS2V5zV3lEg==", "height": 3133167, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: DkPx3GwNSY4A4oWbzLtB89aH8nw2wHh1JuWeccxM1nW4 Next: 2DYfQumRSXxQMtjjM5v7SzvsVdqgFaCC7MKLwM8yU5Q5 Diff:
OldNewDifferences
175175 func cancelSell (nftId) = {
176176 let sellerStr = tryGetString((("nft_" + nftId) + "_seller"))
177177 let nftAsset = tryGetAssetInfo(nftId, "NFT not found")
178+ let auctionKey = (("auction_" + toBase58String(nftAsset.id)) + "_bets")
178179 if (if ((size(sellerStr) > 0))
179180 then (sellerStr == toString(i.originCaller))
180181 else false)
181- then $Tuple2([ScriptTransfer(i.caller, 1, nftAsset.id), DeleteEntry((("nft_" + nftId) + "_buyOutPrice")), DeleteEntry((("nft_" + nftId) + "_buyOutAssetId")), DeleteEntry((("nft_" + nftId) + "_royaltyReceiver")), DeleteEntry((("nft_" + nftId) + "_seller")), DeleteEntry(((("address_" + sellerStr) + "_nft_") + nftId)), DeleteEntry((((("address_" + sellerStr) + "_nft_") + nftId) + "_startSaleAt"))], nftId)
182+ then $Tuple2([ScriptTransfer(i.caller, 1, nftAsset.id), DeleteEntry((("nft_" + nftId) + "_buyOutPrice")), DeleteEntry((("nft_" + nftId) + "_buyOutAssetId")), DeleteEntry((("nft_" + nftId) + "_royaltyReceiver")), DeleteEntry((("nft_" + nftId) + "_seller")), DeleteEntry(((("address_" + sellerStr) + "_nft_") + nftId)), DeleteEntry((((("address_" + sellerStr) + "_nft_") + nftId) + "_startSaleAt")), DeleteEntry(auctionKey)], nftId)
182183 else throw("You are not a seller")
183184 }
184185
293294 let betAssetId = if ((betParsedData[2] == "WAVES"))
294295 then unit
295296 else fromBase58String(betParsedData[2])
296- let updatedData = if ((betIndex == 0))
297- then drop(auctionData, size(betData))
298- else makeString(split(auctionData, betData), "")
299297 if ((betOwner == callerStr))
300298 then {
301- let updateDataList = if ((size(updatedData) == 0))
299+ let newBets = removeByIndex(bets, betIndex)
300+ let updateDataList = if ((size(newBets) == 0))
302301 then [DeleteEntry(auctionKey)]
303- else [StringEntry(auctionKey, updatedData)]
302+ else [StringEntry(auctionKey, makeString(newBets, ","))]
304303 ([ScriptTransfer(i.caller, betAmount, betAssetId)] ++ updateDataList)
305304 }
306305 else throw("This is not your bet")
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let createNftDapp = base58'3PFQjjDMiZKQZdu5JqTHD7HwgSXyp9Rw9By'
55
66 let marketFeeAddress = Address(base58'3PEa88W5it7LVPVwtpZDfYajQQWkxFNG8qf')
77
88 let puzzleStakeAddress = base58'3PFTbywqxtFfukX3HyT881g4iW5K4QL3FAS'
99
1010 let nftDuckWrapper = base58'3P3pDosq4GCwfJkvq4yqKvvoTwmoqc9qPmo'
1111
1212 let nftSignArtWrapper = base58'3PPgeYTWMRZ7S7jSLpnVuKKB9r6XuDk3ndC'
1313
1414 let royaltyPercent = 7
1515
1616 func isNFT (asset) = if (if ((asset.decimals == 0))
1717 then (asset.reissuable == false)
1818 else false)
1919 then (asset.quantity == 1)
2020 else false
2121
2222
2323 func checkNFT (asset) = if (if (if ((asset.issuer.bytes == createNftDapp))
2424 then (asset.decimals == 0)
2525 else false)
2626 then (asset.reissuable == false)
2727 else false)
2828 then (asset.quantity == 1)
2929 else false
3030
3131
3232 func tryGetInteger (key) = match getInteger(this, key) {
3333 case b: Int =>
3434 b
3535 case _ =>
3636 0
3737 }
3838
3939
4040 func tryGetString (key) = match getString(this, key) {
4141 case b: String =>
4242 b
4343 case _ =>
4444 ""
4545 }
4646
4747
4848 func tryGetAssetInfo (assetId,errorMsg) = match assetInfo(fromBase58String(assetId)) {
4949 case a: Asset =>
5050 a
5151 case _ =>
5252 throw(errorMsg)
5353 }
5454
5555
5656 func getAssetString (assetId) = match assetId {
5757 case b: ByteVector =>
5858 toBase58String(b)
5959 case _ =>
6060 "WAVES"
6161 }
6262
6363
6464 func getAssetBytes (assetIdStr) = if ((assetIdStr == "WAVES"))
6565 then unit
6666 else fromBase58String(assetIdStr)
6767
6868
6969 func getAllDeleteEntries (nftId,exclude) = {
7070 let auctionKey = (("auction_" + nftId) + "_bets")
7171 let auctionData = tryGetString(auctionKey)
7272 let excludeId = if ((size(exclude) > 0))
7373 then exclude
7474 else ""
7575 if ((size(auctionData) == 0))
7676 then nil
7777 else {
7878 func getReturnTransactions (accum,next) = {
7979 let betParsedData = split(next, "_")
8080 let betOwner = betParsedData[0]
8181 let betAmount = parseIntValue(betParsedData[1])
8282 let betAssetId = if ((betParsedData[2] == "WAVES"))
8383 then unit
8484 else fromBase58String(betParsedData[2])
8585 if (if ((size(excludeId) > 0))
8686 then (excludeId == next)
8787 else false)
8888 then accum
8989 else (accum :+ ScriptTransfer(Address(fromBase58String(betOwner)), betAmount, betAssetId))
9090 }
9191
9292 let $l = split(auctionData, ",")
9393 let $s = size($l)
9494 let $acc0 = nil
9595 func $f0_1 ($a,$i) = if (($i >= $s))
9696 then $a
9797 else getReturnTransactions($a, $l[$i])
9898
9999 func $f0_2 ($a,$i) = if (($i >= $s))
100100 then $a
101101 else throw("List size exceeds 50")
102102
103103 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50)
104104 }
105105 }
106106
107107
108108 @Callable(i)
109109 func sellNFT (buyOutPrice,buyOutAssetId) = {
110110 let pmt = if (if ((size(i.payments) == 1))
111111 then (i.payments[0].amount == 1)
112112 else false)
113113 then i.payments[0]
114114 else throw("NFT not listed as payment")
115115 let buyOutAsset = getAssetBytes(buyOutAssetId)
116116 if (isDefined(pmt.assetId))
117117 then {
118118 let nftId = value(pmt.assetId)
119119 let nft = match assetInfo(nftId) {
120120 case a: Asset =>
121121 a
122122 case _ =>
123123 throw("Can't find NFT")
124124 }
125125 if (checkNFT(nft))
126126 then if ((buyOutPrice > 0))
127127 then {
128128 let assetNameStr = toBase58String(nft.id)
129129 let nftIssuer = match getString(Address(createNftDapp), (("nft_" + assetNameStr) + "_issuer")) {
130130 case a: String =>
131131 a
132132 case _ =>
133133 toString(i.caller)
134134 }
135135 let royaltyReceiver = if ((nftIssuer != toBase58String(nftSignArtWrapper)))
136136 then nftIssuer
137137 else split(split(value(assetInfo(nftId)).description, " ")[2], ".")[0]
138138 [IntegerEntry((("nft_" + assetNameStr) + "_buyOutPrice"), buyOutPrice), StringEntry((("nft_" + assetNameStr) + "_buyOutAssetId"), getAssetString(buyOutAsset)), StringEntry((("nft_" + assetNameStr) + "_royaltyReceiver"), royaltyReceiver), StringEntry((("nft_" + assetNameStr) + "_seller"), toString(i.originCaller)), StringEntry(((("address_" + toString(i.originCaller)) + "_nft_") + assetNameStr), assetNameStr), IntegerEntry((((("address_" + toString(i.originCaller)) + "_nft_") + assetNameStr) + "_startSaleAt"), height)]
139139 }
140140 else throw("Price must be greater than zero")
141141 else throw("NFT issued by another dapp")
142142 }
143143 else throw("NFT is not attached to the transaction")
144144 }
145145
146146
147147
148148 @Callable(i)
149149 func buyNFT (nftId) = {
150150 let pmt = if ((size(i.payments) == 1))
151151 then i.payments[0]
152152 else throw("Attached payment is required")
153153 let buyOutPrice = tryGetInteger((("nft_" + nftId) + "_buyOutPrice"))
154154 let buyOutAssetId = tryGetString((("nft_" + nftId) + "_buyOutAssetId"))
155155 let royaltyReceiver = tryGetString((("nft_" + nftId) + "_royaltyReceiver"))
156156 let sellerStr = tryGetString((("nft_" + nftId) + "_seller"))
157157 let nftAsset = tryGetAssetInfo(nftId, "NFT not found")
158158 let buyOutAsset = tryGetAssetInfo(buyOutAssetId, "Buyout asset not found")
159159 if (if ((buyOutPrice > 0))
160160 then (pmt.amount >= buyOutPrice)
161161 else false)
162162 then {
163163 let royaltyPart = fraction(buyOutPrice, royaltyPercent, 100)
164164 let marketFee = fraction(buyOutPrice, 3, 100)
165165 if ((pmt.assetId == buyOutAsset.id))
166166 then $Tuple2([ScriptTransfer(i.caller, 1, nftAsset.id), ScriptTransfer(Address(fromBase58String(sellerStr)), ((buyOutPrice - royaltyPart) - marketFee), buyOutAsset.id), ScriptTransfer(Address(fromBase58String(royaltyReceiver)), royaltyPart, buyOutAsset.id), ScriptTransfer(marketFeeAddress, marketFee, buyOutAsset.id), DeleteEntry((("nft_" + nftId) + "_buyOutPrice")), DeleteEntry((("nft_" + nftId) + "_buyOutAssetId")), DeleteEntry((("nft_" + nftId) + "_royaltyReceiver")), DeleteEntry((("nft_" + nftId) + "_seller")), DeleteEntry(((("address_" + sellerStr) + "_nft_") + nftId)), DeleteEntry((((("address_" + sellerStr) + "_nft_") + nftId) + "_startSaleAt"))], toBase58String(nftAsset.id))
167167 else throw("The buyout asset does not match the purchase asset")
168168 }
169169 else throw("Payment amount must be greater than zero")
170170 }
171171
172172
173173
174174 @Callable(i)
175175 func cancelSell (nftId) = {
176176 let sellerStr = tryGetString((("nft_" + nftId) + "_seller"))
177177 let nftAsset = tryGetAssetInfo(nftId, "NFT not found")
178+ let auctionKey = (("auction_" + toBase58String(nftAsset.id)) + "_bets")
178179 if (if ((size(sellerStr) > 0))
179180 then (sellerStr == toString(i.originCaller))
180181 else false)
181- then $Tuple2([ScriptTransfer(i.caller, 1, nftAsset.id), DeleteEntry((("nft_" + nftId) + "_buyOutPrice")), DeleteEntry((("nft_" + nftId) + "_buyOutAssetId")), DeleteEntry((("nft_" + nftId) + "_royaltyReceiver")), DeleteEntry((("nft_" + nftId) + "_seller")), DeleteEntry(((("address_" + sellerStr) + "_nft_") + nftId)), DeleteEntry((((("address_" + sellerStr) + "_nft_") + nftId) + "_startSaleAt"))], nftId)
182+ then $Tuple2([ScriptTransfer(i.caller, 1, nftAsset.id), DeleteEntry((("nft_" + nftId) + "_buyOutPrice")), DeleteEntry((("nft_" + nftId) + "_buyOutAssetId")), DeleteEntry((("nft_" + nftId) + "_royaltyReceiver")), DeleteEntry((("nft_" + nftId) + "_seller")), DeleteEntry(((("address_" + sellerStr) + "_nft_") + nftId)), DeleteEntry((((("address_" + sellerStr) + "_nft_") + nftId) + "_startSaleAt")), DeleteEntry(auctionKey)], nftId)
182183 else throw("You are not a seller")
183184 }
184185
185186
186187
187188 @Callable(i)
188189 func like (nftId) = {
189190 let nftAsset = assetInfo(fromBase58String(nftId))
190191 let isDuckNft = isDefined(getString(Address(nftDuckWrapper), (("nft_" + nftId) + "_duckId")))
191192 let isSignArtNft = isDefined(getString(Address(nftSignArtWrapper), (("signArtNft_" + nftId) + "_assetId")))
192193 if (if (if (if (isDefined(nftAsset))
193194 then !(isDuckNft)
194195 else false)
195196 then !(isSignArtNft)
196197 else false)
197198 then checkNFT(value(nftAsset))
198199 else false)
199200 then {
200201 let callerAddress = toString(i.caller)
201202 let countStaked = match getInteger(Address(puzzleStakeAddress), (callerAddress + "_staked")) {
202203 case c: Int =>
203204 c
204205 case _ =>
205206 0
206207 }
207208 if ((countStaked >= 100000000))
208209 then {
209210 let nftLikesKey = (("nft_" + nftId) + "_likes")
210211 let nftLikesValue = tryGetString((("nft_" + nftId) + "_likes"))
211212 if (!(isDefined(indexOf(nftLikesValue, callerAddress))))
212213 then {
213214 let newLikesValue = if ((size(nftLikesValue) == 0))
214215 then toString(i.caller)
215216 else ((nftLikesValue + ",") + callerAddress)
216217 [StringEntry(nftLikesKey, newLikesValue)]
217218 }
218219 else throw("You have already voted")
219220 }
220221 else throw("You can like if you stake 1 or more Puzzles")
221222 }
222223 else throw("Invalid NFT id")
223224 }
224225
225226
226227
227228 @Callable(i)
228229 func addBet (nftId) = if (if ((i.payments[0].amount > 0))
229230 then if (!(isDefined(i.payments[0].assetId)))
230231 then true
231232 else !(isNFT(value(assetInfo(value(i.payments[0].assetId)))))
232233 else false)
233234 then {
234235 let nftAsset = tryGetAssetInfo(nftId, "NFT not found")
235236 let nftAmount = match assetBalance(this, nftAsset.id) {
236237 case c: Int =>
237238 c
238239 case _ =>
239240 0
240241 }
241242 if (if ((nftAmount == 1))
242243 then checkNFT(nftAsset)
243244 else false)
244245 then {
245246 let callerStr = toString(i.caller)
246247 let assetAmount = i.payments[0].amount
247248 let assetIdStr = getAssetString(i.payments[0].assetId)
248249 let auctionKey = (("auction_" + toBase58String(nftAsset.id)) + "_bets")
249250 let auctionData = tryGetString(auctionKey)
250251 let addedData = ((((callerStr + "_") + toString(assetAmount)) + "_") + assetIdStr)
251252 if ((50 > (size(split(auctionData, ",")) + 1)))
252253 then {
253254 let exist = contains(auctionData, addedData)
254255 if (!(exist))
255256 then {
256257 let updatedData = match getString(auctionKey) {
257258 case s: String =>
258259 ((s + ",") + addedData)
259260 case _ =>
260261 addedData
261262 }
262263 [StringEntry(auctionKey, updatedData)]
263264 }
264265 else throw("Bet exists")
265266 }
266267 else throw("You cannot create more than 50 bets for 1 NFT")
267268 }
268269 else throw("Invalid NFT Id.")
269270 }
270271 else throw("Payment not attached")
271272
272273
273274
274275 @Callable(i)
275276 func deleteBet (nftId,betId) = {
276277 let nftAsset = tryGetAssetInfo(nftId, "NFT not found")
277278 let auctionKey = (("auction_" + toBase58String(nftAsset.id)) + "_bets")
278279 let auctionData = tryGetString(auctionKey)
279280 if ((size(auctionData) > 0))
280281 then {
281282 let callerStr = toString(i.caller)
282283 let bets = split(auctionData, ",")
283284 let betIndex = match indexOf(bets, betId) {
284285 case idx: Int =>
285286 idx
286287 case _ =>
287288 throw("Bet not found by id")
288289 }
289290 let betData = bets[betIndex]
290291 let betParsedData = split(betData, "_")
291292 let betOwner = betParsedData[0]
292293 let betAmount = parseIntValue(betParsedData[1])
293294 let betAssetId = if ((betParsedData[2] == "WAVES"))
294295 then unit
295296 else fromBase58String(betParsedData[2])
296- let updatedData = if ((betIndex == 0))
297- then drop(auctionData, size(betData))
298- else makeString(split(auctionData, betData), "")
299297 if ((betOwner == callerStr))
300298 then {
301- let updateDataList = if ((size(updatedData) == 0))
299+ let newBets = removeByIndex(bets, betIndex)
300+ let updateDataList = if ((size(newBets) == 0))
302301 then [DeleteEntry(auctionKey)]
303- else [StringEntry(auctionKey, updatedData)]
302+ else [StringEntry(auctionKey, makeString(newBets, ","))]
304303 ([ScriptTransfer(i.caller, betAmount, betAssetId)] ++ updateDataList)
305304 }
306305 else throw("This is not your bet")
307306 }
308307 else throw("Bet not found")
309308 }
310309
311310
312311
313312 @Callable(i)
314313 func approveBet (nftId,betId) = {
315314 let nftAsset = tryGetAssetInfo(nftId, "NFT not found")
316315 if ((assetBalance(this, nftAsset.id) == 1))
317316 then {
318317 let sellerStr = tryGetString((("nft_" + nftId) + "_seller"))
319318 let auctionKey = (("auction_" + toBase58String(nftAsset.id)) + "_bets")
320319 if ((sellerStr == toString(i.caller)))
321320 then {
322321 let auctionData = tryGetString(auctionKey)
323322 if ((size(auctionData) > 0))
324323 then {
325324 let bets = split(auctionData, ",")
326325 let betParsedData = split(betId, "_")
327326 let betOwner = betParsedData[0]
328327 let betAmount = parseIntValue(betParsedData[1])
329328 let betAssetId = if ((betParsedData[2] == "WAVES"))
330329 then unit
331330 else fromBase58String(betParsedData[2])
332331 let royaltyReceiver = tryGetString((("nft_" + nftId) + "_royaltyReceiver"))
333332 let royaltyPart = fraction(betAmount, royaltyPercent, 100)
334333 let marketFee = fraction(betAmount, 3, 100)
335334 if (if (containsElement(bets, betId))
336335 then (betAmount > 0)
337336 else false)
338337 then ([ScriptTransfer(Address(fromBase58String(betOwner)), 1, nftAsset.id), ScriptTransfer(i.caller, ((betAmount - royaltyPart) - marketFee), betAssetId), ScriptTransfer(Address(fromBase58String(royaltyReceiver)), royaltyPart, betAssetId), ScriptTransfer(marketFeeAddress, marketFee, betAssetId), DeleteEntry((("nft_" + nftId) + "_buyOutPrice")), DeleteEntry((("nft_" + nftId) + "_buyOutAssetId")), DeleteEntry((("nft_" + nftId) + "_royaltyReceiver")), DeleteEntry((("nft_" + nftId) + "_seller")), DeleteEntry(((("address_" + sellerStr) + "_nft_") + nftId)), DeleteEntry((((("address_" + sellerStr) + "_nft_") + nftId) + "_startSaleAt")), DeleteEntry(auctionKey)] ++ getAllDeleteEntries(toBase58String(nftAsset.id), betId))
339338 else throw("Bet not found by Id")
340339 }
341340 else throw("Bet not found")
342341 }
343342 else throw("You are not a seller")
344343 }
345344 else throw("NFT not found on contract")
346345 }
347346
348347
349348 @Verifier(tx)
350349 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
351350

github/deemru/w8io/786bc32 
56.88 ms