tx · FE9JwF3eyeq7GYhNXASZuhuWpQiD1iuYQD7TkqGhSEVp

3NBquYd5fTq8HRDkagrtNLQ3HmWd7wcZoeL:  -0.01400000 Waves

2021.01.22 12:38 [1364484] smart account 3NBquYd5fTq8HRDkagrtNLQ3HmWd7wcZoeL > SELF 0.00000000 Waves

{ "type": 13, "id": "FE9JwF3eyeq7GYhNXASZuhuWpQiD1iuYQD7TkqGhSEVp", "fee": 1400000, "feeAssetId": null, "timestamp": 1611308308718, "version": 2, "chainId": 84, "sender": "3NBquYd5fTq8HRDkagrtNLQ3HmWd7wcZoeL", "senderPublicKey": "7irc2VpK5czoyVdwrCuQqr2JU9ZaZnEZn8RPChnfi3yL", "proofs": [ "2SBc6AD5hn3nJiEiM1V3Nj4tiYCt9f63qft1LYezotJMwru28bnMjA9RVHw4yQ6kMDu5TVVkeYRp5kRwr1MMf54L" ], "script": "base64:AAIEAAAAAAAAAE8IAhIOCgwICAgICAgBCAgICAgSDQoLCAgICAgBCAgICAgSBQoDCAgIEgQKAggIEgYKBAgBAQgSBAoCCAgSBAoCCAgSBgoECAgICBIDCgEIAAAAQQAAAAAIdW5pdFRlc3QHAAAAAAlvcmFjbGVGZWUJAQAAAAV2YWx1ZQAAAAEJAAQmAAAAAQIAAAAjM04yczVSdGFIUEJlbkNzeDJFQ2NvRlJiWUh4M25vWmhYVzEAAAAACHNpZ25EYXBwCQEAAAAFdmFsdWUAAAABCQAEJgAAAAECAAAAIzNOQzI4aFNpdnJtc1RVWGFZRDF4NkwzNjJKNFpwVW5vVGRCAAAAAAtmZWVSZWNlaXZlcgIAAAAjM04xRTZ0WGRkUm9WYVJmUTlkUTN2ZzVMYVcyZnNkOEhLdWIAAAAACHVzZXJEYXBwAwUAAAAIdW5pdFRlc3QJAQAAAAV2YWx1ZQAAAAEJAAQmAAAAAQIAAAAjM010NFJHTUV5alNXWUFvY1RQcWQ1NXdkSFFRQjNQVTJVQ20JAQAAAAV2YWx1ZQAAAAEJAAQmAAAAAQIAAAAjM013RFphZ29ZRWlOZlFMYzMxY0dwWW9hRTU0TUdNd29GcloAAAAADXdoaXRlbGlzdERhcHAJAQAAAAV2YWx1ZQAAAAEJAAQmAAAAAQIAAAAjM042QmFWMWRDQjR6ZzQzZ29OTkhhQ3R2UjEzQmN5SjVHc3EAAAAAC3NpZ25Bc3NldElkAQAAACDopWq8yndC8nBhMjVKT0WDubke5ZlnF8Nx6tkLoQSt6wAAAAALdXNkbkFzc2V0SWQBAAAAIA/yHBKs5MQ8muxGGqslqLDsugcrRsxtiHLwteKSSQG0AAAAAAx3YXZlc0Fzc2V0SWQBAAAAAAAAAAAFY2hyaXMCAAAAIzNNc0c2alBOQ3JWSlV0WUI3WEpCeFM3dXRXc1hBZjRuOVZwAAAAAARqb2VwAgAAACMzTXptNFZMd3NOOXVad2JUTXpQajNYdXhWNmtFZkFSOFVETgAAAAAHc2lnbkN1dAAAAAAAAAAABwAAAAALdXNkbldhdmVDdXQAAAAAAAAAAAoAAAAADmRlZmF1bHRMaWNlbmNlAgAAAEdiYWZ5YmVpZnV5bzRwcXU1NGlzbXFndGI2ZTRoNmtrdmd4N3pnNHUzemliaDJyN3k2bWI2NGk3Ynp6YS9saWNlbmNlLnBkZgAAAAASZGVmYXVsdEhhc2hMaWNlbmNlAgAAAEBhODc3NThjMzU0ZTMwYTllNzhmYjg0ZmEzYTAwMTBhNTA5MGFiMjBkZjBiZTExYWQ0NWI1NzIwY2MxODdlNjM5AAAAAAtkYXBwUnVubmluZwkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBsAAAACBQAAAAh1c2VyRGFwcAIAAAAUY29uZl9kYXBwX2lzX3J1bm5pbmcGAAAAAA5tYWludGVuYW5jZU1TRwkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABB0AAAACBQAAAAh1c2VyRGFwcAIAAAAUY29uZl9tYWludGVuYW5jZV9tc2cCAAAAAAAAAAANdXNlclN1c3BlbmRlZAIAAAAJU1VTUEVOREVEAAAAAAt1c2VyUmVtb3ZlZAIAAAAHUkVNT1ZFRAAAAAAQdXNlclVucmVnaXN0ZXJlZAIAAAAMVU5SRUdJU1RFUkVEAAAAAAt1c2VyQWxsb3dlZAIAAAAHQUxMT1dFRAEAAAAXZ2V0U3RyaW5nQnlLZXlGcm9tVXNlcnMAAAABAAAAA2tleQkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABB0AAAACBQAAAAh1c2VyRGFwcAUAAAADa2V5AgAAAAABAAAADmdldFN0cmluZ0J5S2V5AAAAAQAAAANrZXkJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQdAAAAAgUAAAAEdGhpcwUAAAADa2V5AgAAAAABAAAAGWdldEludGVnZXJCeUtleUZyb21PcmFjbGUAAAABAAAAA2tleQkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEGgAAAAIFAAAACW9yYWNsZUZlZQUAAAADa2V5AgAAAB9JbnRlZ2VyIHVuZGVmaW5lIG9yIDAgaW4gb3JhY2xlAQAAAA9nZXRJbnRlZ2VyQnlLZXkAAAABAAAAA2tleQkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzBQAAAANrZXkAAAAAAAAAAAABAAAADmNoZWNrV2hpdGVsaXN0AAAAAQAAAANrZXkJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAANd2hpdGVsaXN0RGFwcAUAAAADa2V5AAAAAAAA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AgAAAAECAAAAE05vIHBheW1lbnQgYXR0YWNoZWQEAAAAB3BheW1lbnQJAQAAAAV2YWx1ZQAAAAEJAAGRAAAAAggFAAAABmludm9rZQAAAAhwYXltZW50cwAAAAAAAAAAAAQAAAAGYW1vdW50CQEAAAAFdmFsdWUAAAABCAUAAAAHcGF5bWVudAAAAAZhbW91bnQEAAAAB2Fzc2V0SWQDAwkBAAAACWlzRGVmaW5lZAAAAAEIBQAAAAdwYXltZW50AAAAB2Fzc2V0SWQJAAAAAAAAAggFAAAAB3BheW1lbnQAAAAHYXNzZXRJZAUAAAALc2lnbkFzc2V0SWQHCAUAAAAHcGF5bWVudAAAAAdhc3NldElkCQAAAgAAAAECAAAAK09ubHkgU0lHTiB0b2tlbiBhY2NlcHRlZCBhcyB0cmFuc2FjdGlvbiBmZWUEAAAAGWN1cnJlbnRDZXJ0aWZpY2F0aW9uUHJpY2UJAQAAABlnZXRJbnRlZ2VyQnlLZXlGcm9tT3JhY2xlAAAAAQkAASwAAAACAgAAABJjZXJ0aWZpY2F0aW9uX2ZlZV8JAAJYAAAAAQUAAAALc2lnbkFzc2V0SWQDCQEAAAACIT0AAAACBQAAAAZhbW91bnQFAAAAGWN1cnJlbnRDZXJ0aWZpY2F0aW9uUHJpY2UJAAACAAAAAQkAASwAAAACAgAAABlQYXltZW50IGFtb3VudCBzaG91bGQgYmUgCQABpAAAAAEFAAAAGWN1cnJlbnRDZXJ0aWZpY2F0aW9uUHJpY2UJAAUUAAAAAgUAAAAGYW1vdW50BQAAAAdhc3NldElkAQAAAAtpc0FydE1pbnRlZAAAAAIAAAAMYWRkcmVzc1RvVXNlAAAABWFydElkBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAQAAAAxrZXlBcnRJc3N1ZWQAAAACBQAAAAxhZGRyZXNzVG9Vc2UFAAAABWFydElkAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWIFAAAAByRtYXRjaDADCQEAAAACIT0AAAACBQAAAAFiAAAAAAAAAAAABgcHAQAAABR2YWxpZGF0ZVByaWNlQXNzZXRJZAAAAAMAAAAGaW52b2tlAAAADHByaWNlQXNzZXRJZAAAAAxhcnR3b3JrUHJpY2UEAAAAB3BheW1lbnQJAQAAAAV2YWx1ZQAAAAEJAAGRAAAAAggFAAAABmludm9rZQAAAAhwYXltZW50cwAAAAAAAAAAAAQAAAAGYW1vdW50CQEAAAAFdmFsdWUAAAABCAUAAAAHcGF5bWVudAAAAAZhbW91bnQEAAAAB2Fzc2V0SWQDCQEAAAABIQAAAAEJAQAAAAlpc0RlZmluZWQAAAABCAUAAAAHcGF5bWVudAAAAAdhc3NldElkBQAAAAR1bml0AwMJAABmAAAAAgkAATEAAAABBQAAAAxwcmljZUFzc2V0SWQAAAAAAAAAAAAJAAAAAAAAAgkAAlgAAAABCQEAAAAFdmFsdWUAAAABCAUAAAAHcGF5bWVudAAAAAdhc3NldElkBQAAAAxwcmljZUFzc2V0SWQHCAUAAAAHcGF5bWVudAAAAAdhc3NldElkCQAAAgAAAAECAAAADldyb25nIGFzc2V0IGlkAwMJAAAAAAAAAgUAAAAHYXNzZXRJZAUAAAAEdW5pdAkBAAAAAiE9AAAAAgUAAAAMcHJpY2VBc3NldElkAgAAAAAHCQAAAgAAAAECAAAADldyb25nIGFzc2V0IGlkAwkBAAAAAiE9AAAAAgUAAAAMYXJ0d29ya1ByaWNlBQAAAAZhbW91bnQJAAACAAAAAQIAAAATUGF5bWVudCBkb24ndCBtYXRjaAkABRQAAAACBQAAAAZhbW91bnQFAAAAB2Fzc2V0SWQBAAAAEGFjY2VwdGVkQXNzZXRJZHMAAAABAAAAB2Fzc2V0SWQDAwMJAQAAAAIhPQAAAAIFAAAAB2Fzc2V0SWQJAAJYAAAAAQUAAAALc2lnbkFzc2V0SWQJAQAAAAIhPQAAAAIFAAAAB2Fzc2V0SWQJAAJYAAAAAQUAAAAMd2F2ZXNBc3NldElkBwkBAAAAAiE9AAAAAgUAAAAHYXNzZXRJZAkAAlgAAAABBQAAAAt1c2RuQXNzZXRJZAcJAAACAAAAAQIAAAAhT25seSBTSUdOLCBVU0ROIG9yIFdBVkVTIGFjY2VwdGVkBgEAAAAPdmFsaWRhdGVNaW5TZWxsAAAAAgAAAAdhc3NldElkAAAABXByaWNlBAAAAAxtaW5TZWxsV2F2ZXMDBQAAAAh1bml0VGVzdAAAAAAAAAAAAQkBAAAAGWdldEludGVnZXJCeUtleUZyb21PcmFjbGUAAAABAgAAAA53YXZlc19taW5fc2VsbAQAAAALbWluU2VsbFVzZG4AAAAAAAAPQkAEAAAAC21pblNlbGxTaWduAwUAAAAIdW5pdFRlc3QAAAAAAAAAAAEJAABoAAAAAgkBAAAAGWdldEludGVnZXJCeUtleUZyb21PcmFjbGUAAAABCQABLAAAAAICAAAAEmNlcnRpZmljYXRpb25fZmVlXwkAAlgAAAABBQAAAAtzaWduQXNzZXRJZAAAAAAAAAAAAgMDAwMDCQAAAAAAAAIFAAAAB2Fzc2V0SWQJAAJYAAAAAQUAAAALdXNkbkFzc2V0SWQJAABmAAAAAgUAAAALbWluU2VsbFVzZG4FAAAABXByaWNlBwkBAAAAAiE9AAAAAgUAAAAFcHJpY2UAAAAAAAAAAAAHBgMDCQAAAAAAAAIFAAAAB2Fzc2V0SWQJAAJYAAAAAQUAAAALc2lnbkFzc2V0SWQJAABmAAAAAgUAAAALbWluU2VsbFNpZ24FAAAABXByaWNlBwkBAAAAAiE9AAAAAgUAAAAFcHJpY2UAAAAAAAAAAAAHBgMDCQAAAAAAAAIFAAAAB2Fzc2V0SWQJAAJYAAAAAQUAAAAMd2F2ZXNBc3NldElkCQAAZgAAAAIFAAAADG1pblNlbGxXYXZlcwUAAAAFcHJpY2UHCQEAAAACIT0AAAACBQAAAAVwcmljZQAAAAAAAAAAAAcJAAACAAAAAQIAAAAYV3JvbmcgbWluaW11bSBzZWxsIHByaWNlBgEAAAAWZ2V0UHJpY2VBc3NldElkRnJvbUJpZAAAAAQAAAAFYXJ0SWQAAAAGaXNzdWVyAAAABWJpZElkAAAACGJpZE93bmVyBAAAAAdiaWREYXRhCQEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAEYmlkXwUAAAAFYXJ0SWQCAAAAAV8FAAAABmlzc3VlcgIAAAABXwUAAAAIYmlkT3duZXICAAAAAV8FAAAABWJpZElkAgAAAAVfT1BFTgMJAQAAAAEhAAAAAQkBAAAACWlzRGVmaW5lZAAAAAEFAAAAB2JpZERhdGEJAAACAAAAAQIAAAANQmlkIG5vdCBmb3VuZAQAAAAKYmlkRGF0YUFycgkABLUAAAACBQAAAAdiaWREYXRhAgAAAAFfBAAAAAliaWRBbW91bnQJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAApiaWREYXRhQXJyAAAAAAAAAAABBAAAAApiaWRBc3NldElkAwkAAAAAAAACCQABkQAAAAIFAAAACmJpZERhdGFBcnIAAAAAAAAAAAACAAAABVdBVkVTBQAAAAR1bml0CQABmwAAAAEJAAGRAAAAAgUAAAAKYmlkRGF0YUFycgAAAAAAAAAAAAMGCQAAAgAAAAEJAAJYAAAAAQkBAAAABXZhbHVlAAAAAQUAAAAKYmlkQXNzZXRJZAMJAABnAAAAAgAAAAAAAAAAAAUAAAAJYmlkQW1vdW50CQAAAgAAAAECAAAADFdyb25nIGFtb3VudAkABRQAAAACBQAAAAliaWRBbW91bnQFAAAACmJpZEFzc2V0SWQBAAAAB2J1eU1pbnQAAAAFAAAABmludm9rZQAAAAVhcnRJZAAAAAZpc3N1ZXIAAAAFYmlkSWQAAAAIYmlkT3duZXIEAAAAAmlkCQACWAAAAAEIBQAAAAZpbnZva2UAAAANdHJhbnNhY3Rpb25JZAQAAAAGY2FsbGVyCQACWAAAAAEICAUAAAAGaW52b2tlAAAABmNhbGxlcgAAAAVieXRlcwQAAAAIdG90YWxORlQJAQAAAA9nZXRJbnRlZ2VyQnlLZXkAAAABAgAAABB0b3RhbF9uZnRfaXNzdWVkBAAAAAZzaWduSUQJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEJAQAAAAxrZXlBcnRTaWduSUQAAAACBQAAAAZpc3N1ZXIFAAAABWFydElkBAAAAAthcnR3b3JrTmFtZQkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQkBAAAACmtleUFydE5hbWUAAAACBQAAAAZpc3N1ZXIFAAAABWFydElkAwkAAAAAAAACBQAAAAthcnR3b3JrTmFtZQIAAAAACQAAAgAAAAECAAAAEUFydCBkb2Vzbid0IGV4aXN0BAAAAApkaXNwbGF5Q0lECQEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABCQEAAAAQa2V5QXJ0RGlzcGxheUNpZAAAAAIFAAAABmlzc3VlcgUAAAAFYXJ0SWQEAAAACWV4cG9ydENJRAkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQkBAAAAD2tleUFydEV4cG9ydENpZAAAAAIFAAAABmlzc3VlcgUAAAAFYXJ0SWQEAAAACmV4cG9ydEhhc2gJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEJAQAAABBrZXlBcnRFeHBvcnRIYXNoAAAAAgUAAAAGaXNzdWVyBQAAAAVhcnRJZAQAAAAKbGljZW5jZUNJRAkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQkBAAAAEGtleUFydExpY2VuY2VDaWQAAAACBQAAAAZpc3N1ZXIFAAAABWFydElkBAAAAAtsaWNlbmNlSGFzaAkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQkBAAAAEWtleUFydExpY2VuY2VIYXNoAAAAAgUAAAAGaXNzdWVyBQAAAAVhcnRJZAQAAAALZGVzY3JpcHRpb24JAAEvAAAAAgkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQkBAAAACmtleUFydERlc2MAAAACBQAAAAZpc3N1ZXIFAAAABWFydElkAAAAAAAAAAAyBAAAAAhpc09uU2FsZQkBAAAAD2dldEJvb2xlYW5CeUtleQAAAAEJAQAAAAxrZXlBcnRPblNhbGUAAAACBQAAAAZpc3N1ZXIFAAAABWFydElkBAAAAAphbW91bnRTb2xkCQEAAAAPZ2V0SW50ZWdlckJ5S2V5AAAAAQkBAAAADGtleUFydElzc3VlZAAAAAIFAAAABmlzc3VlcgUAAAAFYXJ0SWQEAAAADGFydHdvcmtQcmljZQkBAAAAD2dldEludGVnZXJCeUtleQAAAAEJAQAAAAtrZXlBcnRQcmljZQAAAAIFAAAABmlzc3VlcgUAAAAFYXJ0SWQEAAAADHByaWNlQXNzZXRJZAkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQkBAAAAFWtleUFydEFzc2V0SWRBY2NlcHRlZAAAAAIFAAAABmlzc3VlcgUAAAAFYXJ0SWQEAAAACnNvdXJjZUhhc2gJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEJAQAAABRrZXlBcnRIYXNoQnlUeGlkQWRkcgAAAAIFAAAABmlzc3VlcgUAAAAFYXJ0SWQEAAAACm1heENhblNlbGwJAQAAAA9nZXRJbnRlZ2VyQnlLZXkA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c2hhMjU2SGFzaAAAAAZzaWduSUQAAAAEbmFtZQAAAAtkZXNjcmlwdGlvbgAAAAR0YWdzAAAABHR5cGUAAAAHbWF4bWludAAAAApjaWREaXNwbGF5AAAADHNoYTI1NkV4cG9ydAAAAAljaWRFeHBvcnQAAAANc2hhMjU2TGljZW5jZQAAAApjaWRMaWNlbmNlAwkBAAAAASEAAAABBQAAAAtkYXBwUnVubmluZwkAAAIAAAABBQAAAA5tYWludGVuYW5jZU1TRwQAAAAFYXJ0SWQJAAJYAAAAAQgFAAAABmludm9rZQAAAA10cmFuc2FjdGlvbklkBAAAAAl0aW1lc3RhbXAIBQAAAAlsYXN0QmxvY2sAAAAJdGltZXN0YW1wBAAAAAZjYWxsZXIJAAJYAAAAAQgIBQAAAAZpbnZva2UAAAAGY2FsbGVyAAAABWJ5dGVzAwkBAAAAASEAAAABCQEAAAAMdmFsaWRhdGVIYXNoAAAAAQUAAAAKc2hhMjU2SGFzaAkAAAIAAAABAgAAACRIYXNoIHNob3VsZCBiZSA2NCBjaGFyYWN0ZXJzIG1heGltdW0EAAAADSR0MDE2NjMzMTY3MDIJAQAAAApzZXRMSWNlbmNlAAAAAgUAAAAKY2lkTGljZW5jZQUAAAANc2hhMjU2TGljZW5jZQQAAAAKbGljZW5jZUNJRAgFAAAADSR0MDE2NjMzMTY3MDIAAAACXzEEAAAAC2xpY2VuY2VIYXNoCAUAAAANJHQwMTY2MzMxNjcwMgAAAAJfMgQAAAAPdmFsaWRhdGVBcnR3b3JrCQEAAAATdmFsaWRhdGVBcnR3b3JrRGF0YQAAAAoFAAAABmNhbGxlcgUAAAAKY2lkRGlzcGxheQUAAAAJY2lkRXhwb3J0BQAAAApsaWNlbmNlQ0lEBQAAAAxzaGEyNTZFeHBvcnQFAAAAC2xpY2VuY2VIYXNoBQAAAARuYW1lBQAAAAtkZXNjcmlwdGlvbgUAAAAEdGFncwUAAAAHbWF4bWludAMJAQAAAAIhPQAAAAIFAAAAD3ZhbGlkYXRlQXJ0d29yawIAAAAACQAAAgAAAAECAAAAFVNvbWV0aGluZyB3ZW50IHdyb25nIQQAAAANJHQwMTY5MzAxNjk3NwkBAAAAD3ZhbGlkYXRlUGF5bWVudAAAAAEFAAAABmludm9rZQQAAAAGYW1vdW50CAUAAAANJHQwMTY5MzAxNjk3NwAAAAJfMQQAAAAHYXNzZXRJZAgFAAAADSR0MDE2OTMwMTY5NzcAAAACXzIDCQEAAAABIQAAAAEJAQAAAAlpc0RlZmluZWQAAAABBQAAAAZhbW91bnQJAAACAAAAAQIAAAAUU29tZXRoaW5nIHdlbnQgd3JvbmcEAAAACmVudHJ5RXhpc3QJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEJAQAAABVrZXlBcnRUeGlkQnlIYXNoT3duZXIAAAACBQAAAApzaGEyNTZIYXNoBQAAAAZjYWxsZXIDCQEAAAACIT0AAAACBQAAAAplbnRyeUV4aXN0AgAAAAAJAAACAAAAAQIAAAAUWW91IGFscmVhZHkgYWRkZWQgaXQEAAAACWhhc2hFeGlzdAkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQkBAAAAEWtleUFydE93bmVyQnlIYXNoAAAAAQUAAAAKc2hhMjU2SGFzaAMJAQAAAAIhPQAAAAIFAAAACWhhc2hFeGlzdAIAAAAACQAAAgAAAAECAAAAF0hhc2ggYWxyZWFkeSByZWdpc3RlcmVkBAAAAA9pc1NpZ25DZXJ0aWZpZWQJAQAAABRjaGVja1NpZ25DZXJ0aWZpY2F0ZQAAAAMFAAAABnNpZ25JRAUAAAAGY2FsbGVyBQAAAApzaGEyNTZIYXNoAwkBAAAAASEAAAABBQAAAA9pc1NpZ25DZXJ0aWZpZWQJAAACAAAAAQIAAAAsU2lnbiBDZXJ0aWZpY2F0ZSBub3QgZm91bmQgZm9yIHRoaXMgYWRkcmVzcy4JAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAEWtleUFydE93bmVyQnlIYXNoAAAAAQUAAAAKc2hhMjU2SGFzaAUAAAAGY2FsbGVyCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABVrZXlBcnRUeGlkQnlIYXNoT3duZXIAAAACBQAAAApzaGEyNTZIYXNoBQAAAAZjYWxsZXIFAAAABWFydElkCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAKa2V5QXJ0RGF0ZQAAAAIFAAAABmNhbGxlcgUAAAAFYXJ0SWQFAAAACXRpbWVzdGFtcAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAKa2V5QXJ0TmFtZQAAAAIFAAAABmNhbGxlcgUAAAAFYXJ0SWQFAAAABG5hbWUJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAACmtleUFydERlc2MAAAACBQAAAAZjYWxsZXIFAAAABWFydElkBQAAAAtkZXNjcmlwdGlvbgkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAQa2V5QXJ0RGlzcGxheUNpZAAAAAIFAAAABmNhbGxlcgUAAAAFYXJ0SWQFAAAACmNpZERpc3BsYXkJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAD2tleUFydEV4cG9ydENpZAAAAAIFAAAABmNhbGxlcgUAAAAFYXJ0SWQFAAAACWNpZEV4cG9ydAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAQa2V5QXJ0RXhwb3J0SGFzaAAAAAIFAAAABmNhbGxlcgUAAAAFYXJ0SWQFAAAADHNoYTI1NkV4cG9ydAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAARa2V5QXJ0TGljZW5jZUhhc2gAAAACBQAAAAZjYWxsZXIFAAAABWFydElkBQAAAAtsaWNlbmNlSGFzaAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAQa2V5QXJ0TGljZW5jZUNpZAAAAAIFAAAABmNhbGxlcgUAAAAFYXJ0SWQFAAAACmxpY2VuY2VDSUQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAACmtleUFydFR5cGUAAAACBQAAAAZjYWxsZXIFAAAABWFydElkBQAAAAR0eXBlCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAAAprZXlBcnRUYWdzAAAAAgUAAAAGY2FsbGVyBQAAAAVhcnRJZAUAAAAEdGFncwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAADWtleUFydE1heE1pbnQAAAACBQAAAAZjYWxsZXIFAAAABWFydElkBQAAAAdtYXhtaW50CQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAAAxrZXlBcnRTaWduSUQAAAACBQAAAAZjYWxsZXIFAAAABWFydElkBQAAAAZzaWduSUQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAAxrZXlBcnRJc3N1ZWQAAAACBQAAAAZjYWxsZXIFAAAABWFydElkAAAAAAAAAAAACQAETAAAAAIJAQAAAAxCb29sZWFuRW50cnkAAAACCQEAAAAMa2V5QXJ0T25TYWxlAAAAAgUAAAAGY2FsbGVyBQAAAAVhcnRJZAcJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAE2tleUFydEFydGlkQnlTaWduaWQAAAACBQAAAAZjYWxsZXIFAAAABnNpZ25JRAUAAAAFYXJ0SWQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAFGtleUFydEhhc2hCeVR4aWRBZGRyAAAAAgUAAAAGY2FsbGVyBQAAAAVhcnRJZAUAAAAKc2hhMjU2SGFzaAkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAHQWRkcmVzcwAAAAEJAAJZAAAAAQUAAAALZmVlUmVjZWl2ZXIFAAAABmFtb3VudAUAAAAHYXNzZXRJZAUAAAADbmlsAAAABmludm9rZQEAAAANdXBkYXRlQXJ0d29yawAAAAsAAAAEdHhpZAAAAARuYW1lAAAAC2Rlc2NyaXB0aW9uAAAABHRhZ3MAAAAEdHlwZQAAAAdtYXhtaW50AAAACmNpZERpc3BsYXkAAAAMc2hhMjU2RXhwb3J0AAAACWNpZEV4cG9ydAAAAA1zaGEyNTZMaWNlbmNlAAAACmNpZExpY2VuY2UDCQEAAAABIQAAAAEFAAAAC2RhcHBSdW5uaW5nCQAAAgAAAAEFAAAADm1haW50ZW5hbmNlTVNHBAAAAAh1cGRhdGVJZAkAAlgAAAABCAUAAAAGaW52b2tlAAAADXRyYW5zYWN0aW9uSWQEAAAABmNhbGxlcgkAAlgAAAABCAgFAAAABmludm9rZQAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAADSR0MDE5ODMyMTk5MDEJAQAAAApzZXRMSWNlbmNlAAAAAgUAAAAKY2lkTGljZW5jZQUAAAANc2hhMjU2TGljZW5jZQQAAAAKbGljZW5jZUNJRAgFAAAADSR0MDE5ODMyMTk5MDEAAAACXzEEAAAAC2xpY2VuY2VIYXNoCAUAAAANJHQwMTk4MzIxOTkwMQAAAAJfMgQAAAAPdmFsaWRhdGVBcnR3b3JrCQEAAAATdmFsaWRhdGVBcnR3b3JrRGF0YQAAAAoFAAAABmNhbGxlcgUAAAAKY2lkRGlzcGxheQUAAAAJY2lkRXhwb3J0BQAAAApsaWNlbmNlQ0lEBQAAAAxzaGEyNTZFeHBvcnQFAAAAC2xpY2VuY2VIYXNoBQAAAARuYW1lBQAAAAtkZXNjcmlwdGlvbgUAAAAEdGFncwUAAAAHbWF4bWludAMJAQAAAAIhPQAAAAIFAAAAD3ZhbGlkYXRlQXJ0d29yawIAAAAACQAAAgAAAAECAAAAFVNvbWV0aGluZyB3ZW50IHdyb25nIQQAAAAKZW50cnlFeGlzdAkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQkBAAAACmtleUFydE5hbWUAAAACBQAAAAZjYWxsZXIFAAAABHR4aWQDCQAAAAAAAAIFAAAACmVudHJ5RXhpc3QCAAAAAAkAAAIAAAABAgAAAA9FbnRyeSBub3QgZm91bmQEAAAABGZsYWcJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEJAQAAAAprZXlBcnRGbGFnAAAAAgUAAAAGY2FsbGVyBQAAAAR0eGlkAwkAAAAAAAACBQAAAARmbGFnAgAAAAdJTExFR0FMCQAAAgAAAAECAAAAHUNhbm5vdCB1cGRhdGUgSUxMRUdBTCBhcnR3b3JrAwkBAAAAASEAAAABCQEAAAALaXNBcnRNaW50ZWQAAAACBQAAAAZjYWxsZXIFAAAABHR4aWQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAACmtleUFydE5hbWUAAAACBQAAAAZjYWxsZXIFAAAABHR4aWQFAAAABG5hbWUJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAACmtleUFydERlc2MAAAACBQAAAAZjYWxsZXIFAAAABHR4aWQFAAAAC2Rlc2NyaXB0aW9uCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABBrZXlBcnREaXNwbGF5Q2lkAAAAAgUAAAAGY2FsbGVyBQAAAAR0eGlkBQAAAApjaWREaXNwbGF5CQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAAA9rZXlBcnRFeHBvcnRDaWQAAAACBQAAAAZjYWxsZXIFAAAABHR4aWQFAAAACWNpZEV4cG9ydAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAQa2V5QXJ0RXhwb3J0SGFzaAAAAAIFAAAABmNhbGxlcgUAAAAEdHhpZAUAAAAMc2hhMjU2RXhwb3J0CQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABBrZXlBcnRMaWNlbmNlQ2lkAAAAAgUAAAAGY2FsbGVyBQAAAAR0eGlkBQAAAApsaWNlbmNlQ0lECQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABFrZXlBcnRMaWNlbmNlSGFzaAAAAAIFAAAABmNhbGxlcgUAAAAEdHhpZAUAAAALbGljZW5jZUhhc2gJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAA1rZXlBcnRNYXhNaW50AAAAAgUAAAAGY2FsbGVyBQAAAAR0eGlkBQAAAAdtYXhtaW50CQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAAAprZXlBcnRUYWdzAAAAAgUAAAAGY2FsbGVyBQAAAAR0eGlkBQAAAAR0YWdzCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAAAprZXlBcnRUeXBlAAAAAgUAAAAGY2FsbGVyBQAAAAR0eGlkBQAAAAR0eXBlBQAAAANuaWwJAAACAAAAAQIAAAAOQWxyZWFkeSBtaW50ZWQAAAAGaW52b2tlAQAAAAtmbGFnQXJ0d29yawAAAAMAAAAFYXJ0SWQAAAAEYWRkcgAAAARmbGFnBAAAAAZjYWxsZXIJAAQlAAAAAQkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQgFAAAABmludm9rZQAAAA9jYWxsZXJQdWJsaWNLZXkEAAAAAmlkCQACWAAAAAEIBQAAAAZpbnZva2UAAAANdHJhbnNhY3Rpb25JZAMJAQAAAA9jb250YWluc0VsZW1lbnQAAAACCQAETAAAAAIFAAAABWNocmlzCQAETAAAAAIFAAAABGpvZXAJAARMAAAAAgkABCUAAAABBQAAAAR0aGlzBQAAAANuaWwFAAAABmNhbGxlcgMJAAAAAAAAAgUAAAAEZmxhZwIAAAAHQ09OU0VOVAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAKa2V5QXJ0RmxhZwAAAAIFAAAABGFkZHIFAAAABWFydElkBQAAAARmbGFnBQAAAANuaWwDCQAAAAAAAAIFAAAABGZsYWcCAAAAAAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAKa2V5QXJ0RmxhZwAAAAIFAAAABGFkZHIFAAAABWFydElkBQAAAARmbGFnBQAAAANuaWwDCQAAAAAAAAIFAAAABGZsYWcCAAAAB0lMTEVHQUwJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAACmtleUFydEZsYWcAAAACBQAAAARhZGRyBQAAAAVhcnRJZAUAAAAEZmxhZwkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAKa2V5QXJ0TmFtZQAAAAIFAAAABGFkZHIFAAAABWFydElkAgAAAA9JTExFR0FMIENPTlRFTlQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAACmtleUFydERlc2MAAAACBQAAAARhZGRyBQAAAAVhcnRJZAIAAAAPSUxMRUdBTCBDT05URU5UCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABBrZXlBcnREaXNwbGF5Q2lkAAAAAgUAAAAEYWRkcgUAAAAFYXJ0SWQCAAAAAAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAPa2V5QXJ0RXhwb3J0Q2lkAAAAAgUAAAAEYWRkcgUAAAAFYXJ0SWQCAAAAAAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAQa2V5QXJ0TGljZW5jZUNpZAAAAAIFAAAABGFkZHIFAAAABWFydElkAgAAAAAFAAAAA25pbAkAAAIAAAABCQABLAAAAAICAAAADlVua25vdyBzdGF0dXMgBQAAAARmbGFnCQAAAgAAAAECAAAAE1lvdSBhcmUgbm90IGFsbG93ZWQAAAAGaW52b2tlAQAAAA1kZWxldGVBcnR3b3JrAAAAAgAAAAVhcnRJZAAAAARhZGRyBAAAAAZjYWxsZXIJAAQlAAAAAQkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQgFAAAABmludm9rZQAAAA9jYWxsZXJQdWJsaWNLZXkEAAAAAmlkCQACWAAAAAEIBQAAAAZpbnZva2UAAAANdHJhbnNhY3Rpb25JZAQAAAAMYWRkcmVzc1RvVXNlAwkBAAAAD2NvbnRhaW5zRWxlbWVudAAAAAIJAARMAAAAAgUAAAAFY2hyaXMJAARMAAAAAgUAAAAEam9lcAkABEwAAAACCQAEJQAAAAEFAAAABHRoaXMFAAAAA25pbAUAAAAGY2FsbGVyBQAAAARhZGRyBQAAAAZjYWxsZXIEAAAACmVudHJ5RXhpc3QJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEJAQAAAAprZXlBcnROYW1lAAAAAgUAAAAMYWRkcmVzc1RvVXNlBQAAAAVhcnRJZAMJAAAAAAAAAgUAAAAKZW50cnlFeGlzdAIAAAAACQAAAgAAAAECAAAAIE5vIGFydCBtYXRjaGluZyBmb3IgdGhpcyBhZGRyZXNzBAAAAApzaGEyNTZIYXNoCQEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABCQEAAAAUa2V5QXJ0SGFzaEJ5VHhpZEFkZHIAAAACBQAAAAxhZGRyZXNzVG9Vc2UFAAAABWFydElkAwkAAAAAAAACBQAAAApzaGEyNTZIYXNoAgAAAAAJAAACAAAAAQIAAAAlTm8gYXJ0IGhhc2ggbWF0Y2hpbmcgZm9yIHRoaXMgYWRkcmVzcwQAAAAGc2lnbklECQEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABCQEAAAAMa2V5QXJ0U2lnbklEAAAAAgUAAAAMYWRkcmVzc1RvVXNlBQAAAAVhcnRJZAMJAAAAAAAAAgUAAAAGc2lnbklEAgAAAAAJAAACAAAAAQIAAAATTm8gU0lHTiBJRCBtYXRjaGluZwQAAAAMZGF0YVRvRGVsZXRlCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAQAAAAprZXlBcnREYXRlAAAAAgUAAAAMYWRkcmVzc1RvVXNlBQAAAAVhcnRJZAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQEAAAAKa2V5QXJ0TmFtZQAAAAIFAAAADGFkZHJlc3NUb1VzZQUAAAAFYXJ0SWQJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkBAAAACmtleUFydERlc2MAAAACBQAAAAxhZGRyZXNzVG9Vc2UFAAAABWFydElkCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAQAAABBrZXlBcnREaXNwbGF5Q2lkAAAAAgUAAAAMYWRkcmVzc1RvVXNlBQAAAAVhcnRJZAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQEAAAAPa2V5QXJ0RXhwb3J0Q2lkAAAAAgUAAAAMYWRkcmVzc1RvVXNlBQAAAAVhcnRJZAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQEAAAAQa2V5QXJ0RXhwb3J0SGFzaAAAAAIFAAAADGFkZHJlc3NUb1VzZQUAAAAFYXJ0SWQJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkBAAAAEWtleUFydExpY2VuY2VIYXNoAAAAAgUAAAAMYWRkcmVzc1RvVXNlBQAAAAVhcnRJZAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQEAAAAQa2V5QXJ0TGljZW5jZUNpZAAAAAIFAAAADGFkZHJlc3NUb1VzZQUAAAAFYXJ0SWQJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkBAAAACmtleUFydFR5cGUAAAACBQAAAAxhZGRyZXNzVG9Vc2UFAAAABWFydElkCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAQAAAAprZXlBcnRUYWdzAAAAAgUAAAAMYWRkcmVzc1RvVXNlBQAAAAVhcnRJZAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQEAAAANa2V5QXJ0TWF4TWludAAAAAIFAAAADGFkZHJlc3NUb1VzZQUAAAAFYXJ0SWQJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkBAAAADGtleUFydFNpZ25JRAAAAAIFAAAADGFkZHJlc3NUb1VzZQUAAAAFYXJ0SWQJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkBAAAADGtleUFydElzc3VlZAAAAAIFAAAADGFkZHJlc3NUb1VzZQUAAAAFYXJ0SWQJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkBAAAADGtleUFydE9uU2FsZQAAAAIFAAAADGFkZHJlc3NUb1VzZQUAAAAFYXJ0SWQJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkBAAAACmtleUFydEZsYWcAAAACBQAAAARhZGRyBQAAAAVhcnRJZAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQEAAAALa2V5QXJ0UHJpY2UAAAACBQAAAARhZGRyBQAAAAVhcnRJZAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQEAAAAVa2V5QXJ0QXNzZXRJZEFjY2VwdGVkAAAAAgUAAAAEYWRkcgUAAAAFYXJ0SWQJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkBAAAAEWtleUFydE93bmVyQnlIYXNoAAAAAQUAAAAKc2hhMjU2SGFzaAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQEAAAATa2V5QXJ0QXJ0aWRCeVNpZ25pZAAAAAIFAAAADGFkZHJlc3NUb1VzZQUAAAAGc2lnbklECQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAQAAABVrZXlBcnRUeGlkQnlIYXNoT3duZXIAAAACBQAAAApzaGEyNTZIYXNoBQAAAAxhZGRyZXNzVG9Vc2UFAAAAA25pbAMJAQAAAAEhAAAAAQkBAAAAC2lzQXJ0TWludGVkAAAAAgUAAAAMYWRkcmVzc1RvVXNlBQAAAAVhcnRJZAMJAQAAAAEhAAAAAQUAAAALZGFwcFJ1bm5pbmcJAAACAAAAAQUAAAAObWFpbnRlbmFuY2VNU0cFAAAADGRhdGFUb0RlbGV0ZQMJAQAAAA9jb250YWluc0VsZW1lbnQAAAACCQAETAAAAAIFAAAABWNocmlzCQAETAAAAAIJAAQlAAAAAQUAAAAEdGhpcwUAAAADbmlsBQAAAAZjYWxsZXIFAAAADGRhdGFUb0RlbGV0ZQkAAAIAAAABAgAAAChBcnQgYWxyZWFkeSBtaW50ZWQsIHlvdSBjYW5ub3QgZGVsZXRlIGl0AAAABmludm9rZQEAAAALc2VsbEFydHdvcmsAAAAEAAAABWFydElkAAAABXByaWNlAAAAB21heE1pbnQAAAAHYXNzZXRJZAMJAQAA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", "height": 1364484, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 6mCcEFQuskoRxfW3RJCUyq8rdESbc7zMuzdkPhGNauXU Next: JHcCVMcn3iMLvxsKpyqeCwV8EURPtobjBL4UBam74oV Diff:
OldNewDifferences
322322 else {
323323 let be = split(bd, "_")
324324 let bf = parseIntValue(be[1])
325+ let bg = if ((be[0] == "WAVES"))
326+ then unit
327+ else toBytes(be[0])
325328 if (true)
326- then throw(be[0])
327- else {
328- let bg = if ((be[0] == "WAVES"))
329- then unit
330- else toBytes(be[0])
331- if ((0 >= bf))
332- then throw("Wrong amount")
333- else $Tuple2(bf, bg)
334- }
329+ then throw(toBase58String(value(bg)))
330+ else if ((0 >= bf))
331+ then throw("Wrong amount")
332+ else $Tuple2(bf, bg)
335333 }
336334 }
337335
411409 else false)
412410 then addressFromStringValue(bc)
413411 else aI.caller
414- let bE = [IntegerEntry(X(ba, P), bx), StringEntry(("nft_" + toBase58String(bB)), ((((((("art_sold_" + toString(bx)) + "_of_") + toString(br)) + "_") + P) + "_") + ba)), StringEntry(((((((("art_sold_" + toString(bx)) + "_of_") + toString(br)) + "_") + P) + "_") + ba), ((((((((((N + "_") + toString(by)) + "_") + bi) + "_") + toString(aS)) + "_") + aR) + "_") + toBase58String(bB))), IntegerEntry("total_nft_issued", (bj + 1)), BooleanEntry(Y(ba, P), bC), bA, ScriptTransfer(Address(fromBase58String(ba)), bw, aL), ScriptTransfer(Address(fromBase58String(d)), bv, aL), ScriptTransfer(bD, 1, bB)]
415- if (if (if ((N == ba))
416- then (bc != "")
417- else false)
418- then (bb != "")
419- else false)
420- then {
421- let bF = if ((aL == unit))
422- then "WAVES"
423- else toBase58String(value(aL))
424- let bG = x((((((((("bid_" + P) + "_") + ba) + "_") + bc) + "_") + bb) + "_OPEN"))
425- let bH = DeleteEntry((((((((("bid_" + P) + "_") + ba) + "_") + N) + "_") + bi) + "_OPEN"))
426- let bI = StringEntry((((((((("bid_" + P) + "_") + ba) + "_") + N) + "_") + bi) + "_CLOSED"), bG)
427-[bI, bH] :: bE
412+ let bE = aZ(P, ba, bb, bc)
413+ let bF = bE._1
414+ let bG = bE._2
415+ if (true)
416+ then throw(((((((("assetID= " + toBase58String(value(bG))) + " amountForCreator= ") + toString(bw)) + " amountForSign= ") + toString(bv)) + " NFT ID= ") + toBase58String(bB)))
417+ else {
418+ let bH = [IntegerEntry(X(ba, P), bx), StringEntry(("nft_" + toBase58String(bB)), ((((((("art_sold_" + toString(bx)) + "_of_") + toString(br)) + "_") + P) + "_") + ba)), StringEntry(((((((("art_sold_" + toString(bx)) + "_of_") + toString(br)) + "_") + P) + "_") + ba), ((((((((((N + "_") + toString(by)) + "_") + bi) + "_") + toString(aS)) + "_") + aR) + "_") + toBase58String(bB))), IntegerEntry("total_nft_issued", (bj + 1)), BooleanEntry(Y(ba, P), bC), bA, ScriptTransfer(Address(fromBase58String(ba)), bw, aL), ScriptTransfer(Address(fromBase58String(d)), bv, aL), ScriptTransfer(bD, 1, bB)]
419+ if (if (if ((N == ba))
420+ then (bc != "")
421+ else false)
422+ then (bb != "")
423+ else false)
424+ then {
425+ let bI = if ((aL == unit))
426+ then "WAVES"
427+ else toBase58String(value(aL))
428+ let bJ = x((((((((("bid_" + P) + "_") + ba) + "_") + bc) + "_") + bb) + "_OPEN"))
429+ let bK = DeleteEntry((((((((("bid_" + P) + "_") + ba) + "_") + N) + "_") + bi) + "_OPEN"))
430+ let bL = StringEntry((((((((("bid_" + P) + "_") + ba) + "_") + N) + "_") + bi) + "_CLOSED"), bJ)
431+[bL, bK] :: bH
432+ }
433+ else bH
428434 }
429- else bE
430435 }
431436 }
432437 }
434439
435440
436441 @Callable(aI)
437-func addArtwork (F,D,aC,aD,aE,bJ,aF,an,ar,ao,as,ap) = if (!(p))
442+func addArtwork (F,D,aC,aD,aE,bM,aF,an,ar,ao,as,ap) = if (!(p))
438443 then throw(q)
439444 else {
440445 let P = toBase58String(aI.transactionId)
441- let bK = lastBlock.timestamp
446+ let bN = lastBlock.timestamp
442447 let N = toBase58String(aI.caller.bytes)
443448 if (!(K(F)))
444449 then throw("Hash should be 64 characters maximum")
445450 else {
446- let bL = ay(ap, as)
447- let aA = bL._1
448- let aB = bL._2
449- let bM = az(N, an, ao, aA, ar, aB, aC, aD, aE, aF)
450- if ((bM != ""))
451+ let bO = ay(ap, as)
452+ let aA = bO._1
453+ let aB = bO._2
454+ let bP = az(N, an, ao, aA, ar, aB, aC, aD, aE, aF)
455+ if ((bP != ""))
451456 then throw("Something went wrong!")
452457 else {
453- let bN = aH(aI)
454- let aK = bN._1
455- let aL = bN._2
458+ let bQ = aH(aI)
459+ let aK = bQ._1
460+ let aL = bQ._2
456461 if (!(isDefined(aK)))
457462 then throw("Something went wrong")
458463 else {
459- let bO = x(al(F, N))
460- if ((bO != ""))
464+ let bR = x(al(F, N))
465+ if ((bR != ""))
461466 then throw("You already added it")
462467 else {
463- let bP = x(ai(F))
464- if ((bP != ""))
468+ let bS = x(ai(F))
469+ if ((bS != ""))
465470 then throw("Hash already registered")
466471 else {
467- let bQ = C(D, N, F)
468- if (!(bQ))
472+ let bT = C(D, N, F)
473+ if (!(bT))
469474 then throw("Sign Certificate not found for this address.")
470- else [StringEntry(ai(F), N), StringEntry(al(F, N), P), IntegerEntry(O(N, P), bK), StringEntry(Q(N, P), aC), StringEntry(R(N, P), aD), StringEntry(S(N, P), an), StringEntry(U(N, P), ao), StringEntry(T(N, P), ar), StringEntry(Z(N, P), aB), StringEntry(aa(N, P), aA), StringEntry(ac(N, P), bJ), StringEntry(ab(N, P), aE), IntegerEntry(V(N, P), aF), StringEntry(W(N, P), D), IntegerEntry(X(N, P), 0), BooleanEntry(Y(N, P), false), StringEntry(aj(N, D), P), StringEntry(ag(N, P), F), ScriptTransfer(Address(fromBase58String(d)), aK, aL)]
475+ else [StringEntry(ai(F), N), StringEntry(al(F, N), P), IntegerEntry(O(N, P), bN), StringEntry(Q(N, P), aC), StringEntry(R(N, P), aD), StringEntry(S(N, P), an), StringEntry(U(N, P), ao), StringEntry(T(N, P), ar), StringEntry(Z(N, P), aB), StringEntry(aa(N, P), aA), StringEntry(ac(N, P), bM), StringEntry(ab(N, P), aE), IntegerEntry(V(N, P), aF), StringEntry(W(N, P), D), IntegerEntry(X(N, P), 0), BooleanEntry(Y(N, P), false), StringEntry(aj(N, D), P), StringEntry(ag(N, P), F), ScriptTransfer(Address(fromBase58String(d)), aK, aL)]
471476 }
472477 }
473478 }
478483
479484
480485 @Callable(aI)
481-func updateArtwork (ah,aC,aD,aE,bJ,aF,an,ar,ao,as,ap) = if (!(p))
486+func updateArtwork (ah,aC,aD,aE,bM,aF,an,ar,ao,as,ap) = if (!(p))
482487 then throw(q)
483488 else {
484- let bR = toBase58String(aI.transactionId)
489+ let bU = toBase58String(aI.transactionId)
485490 let N = toBase58String(aI.caller.bytes)
486- let bS = ay(ap, as)
487- let aA = bS._1
488- let aB = bS._2
489- let bM = az(N, an, ao, aA, ar, aB, aC, aD, aE, aF)
490- if ((bM != ""))
491+ let bV = ay(ap, as)
492+ let aA = bV._1
493+ let aB = bV._2
494+ let bP = az(N, an, ao, aA, ar, aB, aC, aD, aE, aF)
495+ if ((bP != ""))
491496 then throw("Something went wrong!")
492497 else {
493- let bO = x(Q(N, ah))
494- if ((bO == ""))
498+ let bR = x(Q(N, ah))
499+ if ((bR == ""))
495500 then throw("Entry not found")
496501 else {
497- let bT = x(af(N, ah))
498- if ((bT == "ILLEGAL"))
502+ let bW = x(af(N, ah))
503+ if ((bW == "ILLEGAL"))
499504 then throw("Cannot update ILLEGAL artwork")
500505 else if (!(aN(N, ah)))
501- then [StringEntry(Q(N, ah), aC), StringEntry(R(N, ah), aD), StringEntry(S(N, ah), an), StringEntry(U(N, ah), ao), StringEntry(T(N, ah), ar), StringEntry(aa(N, ah), aA), StringEntry(Z(N, ah), aB), IntegerEntry(V(N, ah), aF), StringEntry(ab(N, ah), aE), StringEntry(ac(N, ah), bJ)]
506+ then [StringEntry(Q(N, ah), aC), StringEntry(R(N, ah), aD), StringEntry(S(N, ah), an), StringEntry(U(N, ah), ao), StringEntry(T(N, ah), ar), StringEntry(aa(N, ah), aA), StringEntry(Z(N, ah), aB), IntegerEntry(V(N, ah), aF), StringEntry(ab(N, ah), aE), StringEntry(ac(N, ah), bM)]
502507 else throw("Already minted")
503508 }
504509 }
507512
508513
509514 @Callable(aI)
510-func flagArtwork (P,bU,bT) = {
515+func flagArtwork (P,bX,bW) = {
511516 let N = toString(addressFromPublicKey(aI.callerPublicKey))
512517 let bi = toBase58String(aI.transactionId)
513518 if (containsElement([j, k, toString(this)], N))
514- then if ((bT == "CONSENT"))
515- then [StringEntry(af(bU, P), bT)]
516- else if ((bT == ""))
517- then [StringEntry(af(bU, P), bT)]
518- else if ((bT == "ILLEGAL"))
519- then [StringEntry(af(bU, P), bT), StringEntry(Q(bU, P), "ILLEGAL CONTENT"), StringEntry(R(bU, P), "ILLEGAL CONTENT"), StringEntry(S(bU, P), ""), StringEntry(U(bU, P), ""), StringEntry(aa(bU, P), "")]
520- else throw(("Unknow status " + bT))
519+ then if ((bW == "CONSENT"))
520+ then [StringEntry(af(bX, P), bW)]
521+ else if ((bW == ""))
522+ then [StringEntry(af(bX, P), bW)]
523+ else if ((bW == "ILLEGAL"))
524+ then [StringEntry(af(bX, P), bW), StringEntry(Q(bX, P), "ILLEGAL CONTENT"), StringEntry(R(bX, P), "ILLEGAL CONTENT"), StringEntry(S(bX, P), ""), StringEntry(U(bX, P), ""), StringEntry(aa(bX, P), "")]
525+ else throw(("Unknow status " + bW))
521526 else throw("You are not allowed")
522527 }
523528
524529
525530
526531 @Callable(aI)
527-func deleteArtwork (P,bU) = {
532+func deleteArtwork (P,bX) = {
528533 let N = toString(addressFromPublicKey(aI.callerPublicKey))
529534 let bi = toBase58String(aI.transactionId)
530535 let aO = if (containsElement([j, k, toString(this)], N))
531- then bU
536+ then bX
532537 else N
533- let bO = x(Q(aO, P))
534- if ((bO == ""))
538+ let bR = x(Q(aO, P))
539+ if ((bR == ""))
535540 then throw("No art matching for this address")
536541 else {
537542 let F = x(ag(aO, P))
542547 if ((D == ""))
543548 then throw("No SIGN ID matching")
544549 else {
545- let bV = [DeleteEntry(O(aO, P)), DeleteEntry(Q(aO, P)), DeleteEntry(R(aO, P)), DeleteEntry(S(aO, P)), DeleteEntry(U(aO, P)), DeleteEntry(T(aO, P)), DeleteEntry(Z(aO, P)), DeleteEntry(aa(aO, P)), DeleteEntry(ac(aO, P)), DeleteEntry(ab(aO, P)), DeleteEntry(V(aO, P)), DeleteEntry(W(aO, P)), DeleteEntry(X(aO, P)), DeleteEntry(Y(aO, P)), DeleteEntry(af(bU, P)), DeleteEntry(ad(bU, P)), DeleteEntry(ae(bU, P)), DeleteEntry(ai(F)), DeleteEntry(aj(aO, D)), DeleteEntry(al(F, aO))]
550+ let bY = [DeleteEntry(O(aO, P)), DeleteEntry(Q(aO, P)), DeleteEntry(R(aO, P)), DeleteEntry(S(aO, P)), DeleteEntry(U(aO, P)), DeleteEntry(T(aO, P)), DeleteEntry(Z(aO, P)), DeleteEntry(aa(aO, P)), DeleteEntry(ac(aO, P)), DeleteEntry(ab(aO, P)), DeleteEntry(V(aO, P)), DeleteEntry(W(aO, P)), DeleteEntry(X(aO, P)), DeleteEntry(Y(aO, P)), DeleteEntry(af(bX, P)), DeleteEntry(ad(bX, P)), DeleteEntry(ae(bX, P)), DeleteEntry(ai(F)), DeleteEntry(aj(aO, D)), DeleteEntry(al(F, aO))]
546551 if (!(aN(aO, P)))
547552 then if (!(p))
548553 then throw(q)
549- else bV
554+ else bY
550555 else if (containsElement([j, toString(this)], N))
551- then bV
556+ then bY
552557 else throw("Art already minted, you cannot delete it")
553558 }
554559 }
558563
559564
560565 @Callable(aI)
561-func sellArtwork (P,aV,bW,aL) = if (!(p))
566+func sellArtwork (P,aV,bZ,aL) = if (!(p))
562567 then throw(q)
563568 else {
564569 let bi = toBase58String(aI.transactionId)
565570 let N = toBase58String(aI.caller.bytes)
566- let bX = lastBlock.timestamp
571+ let ca = lastBlock.timestamp
567572 let bk = x(Q(N, P))
568573 if ((bk == ""))
569574 then throw("This art doesn't match match your account")
586591 else {
587592 let bp = z(X(N, P))
588593 let br = z(V(N, P))
589- if ((bW > 10))
594+ if ((bZ > 10))
590595 then throw("10 editions max per artwork")
591596 else if (if ((bp != 0))
592597 then (bp == br)
593598 else false)
594599 then throw("Max edition reached.")
595600 else if (if ((bp > 0))
596- then (br != bW)
601+ then (br != bZ)
597602 else false)
598603 then throw("Cannot change maximum issuable anymore")
599604 else {
600605 let bC = if (if ((aV > 0))
601- then (bW > 0)
606+ then (bZ > 0)
602607 else false)
603608 then true
604609 else false
605-[BooleanEntry(Y(N, P), bC), IntegerEntry(ad(N, P), aV), IntegerEntry(V(N, P), bW), StringEntry(ae(N, P), aL)]
610+[BooleanEntry(Y(N, P), bC), IntegerEntry(ad(N, P), aV), IntegerEntry(V(N, P), bZ), StringEntry(ae(N, P), aL)]
606611 }
607612 }
608613 }
625630 else {
626631 let bi = toBase58String(aI.transactionId)
627632 let N = toBase58String(aI.caller.bytes)
628- let bK = lastBlock.timestamp
633+ let bN = lastBlock.timestamp
629634 if ((size(aI.payments) == 0))
630635 then throw("No payment attached")
631636 else {
638643 let br = z(V(ba, P))
639644 if ((bp >= br))
640645 then throw("Sold out, you cannot bid")
641- else [StringEntry((((((((("bid_" + P) + "_") + ba) + "_") + N) + "_") + bi) + "_OPEN"), ((((aL + "_") + toString(aK)) + "_") + toString(bK)))]
646+ else [StringEntry((((((((("bid_" + P) + "_") + ba) + "_") + N) + "_") + bi) + "_OPEN"), ((((aL + "_") + toString(aK)) + "_") + toString(bN)))]
642647 }
643648 }
644649
656661
657662
658663
659-@Callable(bY)
660-func deleteEntry (bZ) = {
661- let N = toString(addressFromPublicKey(bY.callerPublicKey))
664+@Callable(cb)
665+func deleteEntry (cc) = {
666+ let N = toString(addressFromPublicKey(cb.callerPublicKey))
662667 if ((N == j))
663- then [DeleteEntry(bZ)]
668+ then [DeleteEntry(cc)]
664669 else throw("no")
665670 }
666671
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 4 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = false
55
66 let b = value(addressFromString("3N2s5RtaHPBenCsx2ECcoFRbYHx3noZhXW1"))
77
88 let c = value(addressFromString("3NC28hSivrmsTUXaYD1x6L362J4ZpUnoTdB"))
99
1010 let d = "3N1E6tXddRoVaRfQ9dQ3vg5LaW2fsd8HKub"
1111
1212 let e = if (a)
1313 then value(addressFromString("3Mt4RGMEyjSWYAocTPqd55wdHQQB3PU2UCm"))
1414 else value(addressFromString("3MwDZagoYEiNfQLc31cGpYoaE54MGMwoFrZ"))
1515
1616 let f = value(addressFromString("3N6BaV1dCB4zg43goNNHaCtvR13BcyJ5Gsq"))
1717
1818 let g = base58'Gf9t8FA4H3ssoZPCwrg3KwUFCci8zuUFP9ssRsUY3s6a'
1919
2020 let h = base58'25FEqEjRkqK6yCkiT7Lz6SAYz7gUFCtxfCChnrVFD5AT'
2121
2222 let i = base58''
2323
2424 let j = "3MsG6jPNCrVJUtYB7XJBxS7utWsXAf4n9Vp"
2525
2626 let k = "3Mzm4VLwsN9uZwbTMzPj3XuxV6kEfAR8UDN"
2727
2828 let l = 7
2929
3030 let m = 10
3131
3232 let n = "bafybeifuyo4pqu54ismqgtb6e4h6kkvgx7zg4u3zibh2r7y6mb64i7bzza/licence.pdf"
3333
3434 let o = "a87758c354e30a9e78fb84fa3a0010a5090ab20df0be11ad45b5720cc187e639"
3535
3636 let p = valueOrElse(getBoolean(e, "conf_dapp_is_running"), true)
3737
3838 let q = valueOrElse(getString(e, "conf_maintenance_msg"), "")
3939
4040 let r = "SUSPENDED"
4141
4242 let s = "REMOVED"
4343
4444 let t = "UNREGISTERED"
4545
4646 let u = "ALLOWED"
4747
4848 func v (w) = valueOrElse(getString(e, w), "")
4949
5050
5151 func x (w) = valueOrElse(getString(this, w), "")
5252
5353
5454 func y (w) = valueOrErrorMessage(getInteger(b, w), "Integer undefine or 0 in oracle")
5555
5656
5757 func z (w) = valueOrElse(getInteger(this, w), 0)
5858
5959
6060 func A (w) = valueOrElse(getInteger(f, w), 0)
6161
6262
6363 func B (w) = valueOrElse(getBoolean(this, w), false)
6464
6565
6666 func C (D,E,F) = {
6767 let G = getString(c, ((("data_fc_" + D) + "_") + E))
6868 if ($isInstanceOf(G, "String"))
6969 then {
7070 let H = G
7171 if (contains(H, F))
7272 then true
7373 else false
7474 }
7575 else false
7676 }
7777
7878
7979 func I (J) = if (contains(J, "/"))
8080 then if (if ((76 > size(J)))
8181 then (size(split(J, "/")[0]) == 59)
8282 else false)
8383 then (16 > size(split(J, "/")[1]))
8484 else false
8585 else false
8686
8787
8888 func K (L) = (size(L) == 64)
8989
9090
9191 func M (N) = ("user_status_" + N)
9292
9393
9494 func O (N,P) = ((("art_date_" + P) + "_") + N)
9595
9696
9797 func Q (N,P) = ((("art_name_" + P) + "_") + N)
9898
9999
100100 func R (N,P) = ((("art_desc_" + P) + "_") + N)
101101
102102
103103 func S (N,P) = ((("art_display_cid_" + P) + "_") + N)
104104
105105
106106 func T (N,P) = ((("art_export_hash_" + P) + "_") + N)
107107
108108
109109 func U (N,P) = ((("art_export_cid_" + P) + "_") + N)
110110
111111
112112 func V (N,P) = ((("art_maxmint_" + P) + "_") + N)
113113
114114
115115 func W (N,P) = ((("art_signid_" + P) + "_") + N)
116116
117117
118118 func X (N,P) = ((("art_issued_" + P) + "_") + N)
119119
120120
121121 func Y (N,P) = ((("art_onsale_" + P) + "_") + N)
122122
123123
124124 func Z (N,P) = ((("art_licence_hash_" + P) + "_") + N)
125125
126126
127127 func aa (N,P) = ((("art_licence_cid_" + P) + "_") + N)
128128
129129
130130 func ab (N,P) = ((("art_tags_" + P) + "_") + N)
131131
132132
133133 func ac (N,P) = ((("art_type_" + P) + "_") + N)
134134
135135
136136 func ad (N,P) = ((("art_price_" + P) + "_") + N)
137137
138138
139139 func ae (N,P) = ((("art_assetAccepted_" + P) + "_") + N)
140140
141141
142142 func af (N,P) = ((("art_flag_" + P) + "_") + N)
143143
144144
145145 func ag (N,ah) = ((("get_hashbytxidaddr_" + ah) + "_") + N)
146146
147147
148148 func ai (F) = ("get_owner_by_hash_" + F)
149149
150150
151151 func aj (N,ak) = ((("get_artidbysignid_" + ak) + "_") + N)
152152
153153
154154 func al (F,N) = ("get_txid_by_hash_owner_" + toBase58String(sha256_16Kb(toBytes((F + N)))))
155155
156156
157157 func am (an,ao,ap) = if (!(I(an)))
158158 then throw("Wrong Display CID")
159159 else if (!(I(ao)))
160160 then throw("Wrong Export CID")
161161 else if (if ((ap != ""))
162162 then !(I(ap))
163163 else false)
164164 then throw("Wrong Licence CID")
165165 else true
166166
167167
168168 func aq (ar,as) = if (!(K(ar)))
169169 then throw("Export Hash 64 char. max")
170170 else if (!(K(as)))
171171 then throw("Licence Hash 64 char. max")
172172 else true
173173
174174
175175 func at (au,av) = if ((size(au) == 0))
176176 then throw("Field cannot be is empty")
177177 else if ((size(au) > av))
178178 then throw((au + " is too long"))
179179 else true
180180
181181
182182 func aw (N) = {
183183 let ax = valueOrElse(getString(e, M(N)), t)
184184 if (if ((ax == t))
185185 then true
186186 else (ax == u))
187187 then "Register this account first with \"Account\" tab"
188188 else if ((ax == r))
189189 then "Account suspended"
190190 else if ((ax == s))
191191 then "Account removed"
192192 else ""
193193 }
194194
195195
196196 func ay (ap,as) = {
197197 let J = if ((size(ap) == 0))
198198 then n
199199 else ap
200200 let L = if ((size(as) == 0))
201201 then o
202202 else as
203203 $Tuple2(J, L)
204204 }
205205
206206
207207 func az (N,an,ao,aA,ar,aB,aC,aD,aE,aF) = {
208208 let aG = aw(N)
209209 if ((aG != ""))
210210 then throw(aG)
211211 else if ((size(an) == 0))
212212 then throw("Display CID cannot be empty")
213213 else if (!(am(an, ao, aA)))
214214 then throw("Problem with CID")
215215 else if (!(aq(ar, aB)))
216216 then throw("Problem with Hashes")
217217 else if (!(at(aC, 100)))
218218 then throw("100 Char. max name")
219219 else if (!(at(aD, 1000)))
220220 then throw("1000 Char. max description")
221221 else if ((size(split(aE, ",")) > 5))
222222 then throw("5 tags max.")
223223 else if ((aF > 10))
224224 then throw("10 editions max per artwork")
225225 else ""
226226 }
227227
228228
229229 func aH (aI) = if ((size(aI.payments) == 0))
230230 then throw("No payment attached")
231231 else {
232232 let aJ = value(aI.payments[0])
233233 let aK = value(aJ.amount)
234234 let aL = if (if (isDefined(aJ.assetId))
235235 then (aJ.assetId == g)
236236 else false)
237237 then aJ.assetId
238238 else throw("Only SIGN token accepted as transaction fee")
239239 let aM = y(("certification_fee_" + toBase58String(g)))
240240 if ((aK != aM))
241241 then throw(("Payment amount should be " + toString(aM)))
242242 else $Tuple2(aK, aL)
243243 }
244244
245245
246246 func aN (aO,P) = {
247247 let G = getInteger(this, X(aO, P))
248248 if ($isInstanceOf(G, "Int"))
249249 then {
250250 let aP = G
251251 if ((aP != 0))
252252 then true
253253 else false
254254 }
255255 else false
256256 }
257257
258258
259259 func aQ (aI,aR,aS) = {
260260 let aJ = value(aI.payments[0])
261261 let aK = value(aJ.amount)
262262 let aL = if (!(isDefined(aJ.assetId)))
263263 then unit
264264 else if (if ((size(aR) > 0))
265265 then (toBase58String(value(aJ.assetId)) == aR)
266266 else false)
267267 then aJ.assetId
268268 else throw("Wrong asset id")
269269 if (if ((aL == unit))
270270 then (aR != "")
271271 else false)
272272 then throw("Wrong asset id")
273273 else if ((aS != aK))
274274 then throw("Payment don't match")
275275 else $Tuple2(aK, aL)
276276 }
277277
278278
279279 func aT (aL) = if (if (if ((aL != toBase58String(g)))
280280 then (aL != toBase58String(i))
281281 else false)
282282 then (aL != toBase58String(h))
283283 else false)
284284 then throw("Only SIGN, USDN or WAVES accepted")
285285 else true
286286
287287
288288 func aU (aL,aV) = {
289289 let aW = if (a)
290290 then 1
291291 else y("waves_min_sell")
292292 let aX = 1000000
293293 let aY = if (a)
294294 then 1
295295 else (y(("certification_fee_" + toBase58String(g))) * 2)
296296 if (if (if (if (if ((aL == toBase58String(h)))
297297 then (aX > aV)
298298 else false)
299299 then (aV != 0)
300300 else false)
301301 then true
302302 else if (if ((aL == toBase58String(g)))
303303 then (aY > aV)
304304 else false)
305305 then (aV != 0)
306306 else false)
307307 then true
308308 else if (if ((aL == toBase58String(i)))
309309 then (aW > aV)
310310 else false)
311311 then (aV != 0)
312312 else false)
313313 then throw("Wrong minimum sell price")
314314 else true
315315 }
316316
317317
318318 func aZ (P,ba,bb,bc) = {
319319 let bd = x((((((((("bid_" + P) + "_") + ba) + "_") + bc) + "_") + bb) + "_OPEN"))
320320 if (!(isDefined(bd)))
321321 then throw("Bid not found")
322322 else {
323323 let be = split(bd, "_")
324324 let bf = parseIntValue(be[1])
325+ let bg = if ((be[0] == "WAVES"))
326+ then unit
327+ else toBytes(be[0])
325328 if (true)
326- then throw(be[0])
327- else {
328- let bg = if ((be[0] == "WAVES"))
329- then unit
330- else toBytes(be[0])
331- if ((0 >= bf))
332- then throw("Wrong amount")
333- else $Tuple2(bf, bg)
334- }
329+ then throw(toBase58String(value(bg)))
330+ else if ((0 >= bf))
331+ then throw("Wrong amount")
332+ else $Tuple2(bf, bg)
335333 }
336334 }
337335
338336
339337 func bh (aI,P,ba,bb,bc) = {
340338 let bi = toBase58String(aI.transactionId)
341339 let N = toBase58String(aI.caller.bytes)
342340 let bj = z("total_nft_issued")
343341 let D = x(W(ba, P))
344342 let bk = x(Q(ba, P))
345343 if ((bk == ""))
346344 then throw("Art doesn't exist")
347345 else {
348346 let bl = x(S(ba, P))
349347 let bm = x(U(ba, P))
350348 let bn = x(T(ba, P))
351349 let aA = x(aa(ba, P))
352350 let aB = x(Z(ba, P))
353351 let aD = take(x(R(ba, P)), 50)
354352 let bo = B(Y(ba, P))
355353 let bp = z(X(ba, P))
356354 let aS = z(ad(ba, P))
357355 let aR = x(ae(ba, P))
358356 let bq = x(ag(ba, P))
359357 let br = z(V(ba, P))
360358 if (if (if ((0 >= aS))
361359 then true
362360 else !(bo))
363361 then true
364362 else (0 >= br))
365363 then throw("Art not for sale")
366364 else {
367365 let bs = if (if (if ((N == ba))
368366 then (bc != "")
369367 else false)
370368 then (bb != "")
371369 else false)
372370 then aZ(P, ba, bb, bc)
373371 else aQ(aI, aR, aS)
374372 let aK = bs._1
375373 let aL = bs._2
376374 let bt = A(ba)
377375 let bu = if ((bt > height))
378376 then 0
379377 else if ((aR == toBase58String(g)))
380378 then l
381379 else m
382380 let bv = fraction(aK, bu, 100)
383381 let bw = (aK - bv)
384382 if ((bp == br))
385383 then throw("Art sold out")
386384 else {
387385 let bx = (bp + 1)
388386 let by = lastBlock.timestamp
389387 let bz = ((((((((((((((((((((((((((("Creator: " + ba) + ",
390388 ArtID: ") + P) + ",
391389 SignID: ") + D) + ",
392390 Artwork name: ") + bk) + ",
393391 Artwork description: ") + aD) + ",
394392 Issue: ") + toString(bx)) + "/") + toString(br)) + ",
395393 Max issuable: ") + toString(br)) + ",
396394 Source hash: ") + bq) + ",
397395 Display cid: ") + bl) + ",
398396 Export cid: ") + bm) + ",
399397 Export hash: ") + bn) + ",
400398 Licence cid: ") + aA) + ",
401399 Licence hash: ") + aB)
402400 let bA = Issue(("SA_" + toString((bj + 1))), bz, 1, 0, false)
403401 let bB = calculateAssetId(bA)
404402 let bC = if ((bx == br))
405403 then false
406404 else true
407405 let bD = if (if (if ((N == ba))
408406 then (bc != "")
409407 else false)
410408 then (bb != "")
411409 else false)
412410 then addressFromStringValue(bc)
413411 else aI.caller
414- let bE = [IntegerEntry(X(ba, P), bx), StringEntry(("nft_" + toBase58String(bB)), ((((((("art_sold_" + toString(bx)) + "_of_") + toString(br)) + "_") + P) + "_") + ba)), StringEntry(((((((("art_sold_" + toString(bx)) + "_of_") + toString(br)) + "_") + P) + "_") + ba), ((((((((((N + "_") + toString(by)) + "_") + bi) + "_") + toString(aS)) + "_") + aR) + "_") + toBase58String(bB))), IntegerEntry("total_nft_issued", (bj + 1)), BooleanEntry(Y(ba, P), bC), bA, ScriptTransfer(Address(fromBase58String(ba)), bw, aL), ScriptTransfer(Address(fromBase58String(d)), bv, aL), ScriptTransfer(bD, 1, bB)]
415- if (if (if ((N == ba))
416- then (bc != "")
417- else false)
418- then (bb != "")
419- else false)
420- then {
421- let bF = if ((aL == unit))
422- then "WAVES"
423- else toBase58String(value(aL))
424- let bG = x((((((((("bid_" + P) + "_") + ba) + "_") + bc) + "_") + bb) + "_OPEN"))
425- let bH = DeleteEntry((((((((("bid_" + P) + "_") + ba) + "_") + N) + "_") + bi) + "_OPEN"))
426- let bI = StringEntry((((((((("bid_" + P) + "_") + ba) + "_") + N) + "_") + bi) + "_CLOSED"), bG)
427-[bI, bH] :: bE
412+ let bE = aZ(P, ba, bb, bc)
413+ let bF = bE._1
414+ let bG = bE._2
415+ if (true)
416+ then throw(((((((("assetID= " + toBase58String(value(bG))) + " amountForCreator= ") + toString(bw)) + " amountForSign= ") + toString(bv)) + " NFT ID= ") + toBase58String(bB)))
417+ else {
418+ let bH = [IntegerEntry(X(ba, P), bx), StringEntry(("nft_" + toBase58String(bB)), ((((((("art_sold_" + toString(bx)) + "_of_") + toString(br)) + "_") + P) + "_") + ba)), StringEntry(((((((("art_sold_" + toString(bx)) + "_of_") + toString(br)) + "_") + P) + "_") + ba), ((((((((((N + "_") + toString(by)) + "_") + bi) + "_") + toString(aS)) + "_") + aR) + "_") + toBase58String(bB))), IntegerEntry("total_nft_issued", (bj + 1)), BooleanEntry(Y(ba, P), bC), bA, ScriptTransfer(Address(fromBase58String(ba)), bw, aL), ScriptTransfer(Address(fromBase58String(d)), bv, aL), ScriptTransfer(bD, 1, bB)]
419+ if (if (if ((N == ba))
420+ then (bc != "")
421+ else false)
422+ then (bb != "")
423+ else false)
424+ then {
425+ let bI = if ((aL == unit))
426+ then "WAVES"
427+ else toBase58String(value(aL))
428+ let bJ = x((((((((("bid_" + P) + "_") + ba) + "_") + bc) + "_") + bb) + "_OPEN"))
429+ let bK = DeleteEntry((((((((("bid_" + P) + "_") + ba) + "_") + N) + "_") + bi) + "_OPEN"))
430+ let bL = StringEntry((((((((("bid_" + P) + "_") + ba) + "_") + N) + "_") + bi) + "_CLOSED"), bJ)
431+[bL, bK] :: bH
432+ }
433+ else bH
428434 }
429- else bE
430435 }
431436 }
432437 }
433438 }
434439
435440
436441 @Callable(aI)
437-func addArtwork (F,D,aC,aD,aE,bJ,aF,an,ar,ao,as,ap) = if (!(p))
442+func addArtwork (F,D,aC,aD,aE,bM,aF,an,ar,ao,as,ap) = if (!(p))
438443 then throw(q)
439444 else {
440445 let P = toBase58String(aI.transactionId)
441- let bK = lastBlock.timestamp
446+ let bN = lastBlock.timestamp
442447 let N = toBase58String(aI.caller.bytes)
443448 if (!(K(F)))
444449 then throw("Hash should be 64 characters maximum")
445450 else {
446- let bL = ay(ap, as)
447- let aA = bL._1
448- let aB = bL._2
449- let bM = az(N, an, ao, aA, ar, aB, aC, aD, aE, aF)
450- if ((bM != ""))
451+ let bO = ay(ap, as)
452+ let aA = bO._1
453+ let aB = bO._2
454+ let bP = az(N, an, ao, aA, ar, aB, aC, aD, aE, aF)
455+ if ((bP != ""))
451456 then throw("Something went wrong!")
452457 else {
453- let bN = aH(aI)
454- let aK = bN._1
455- let aL = bN._2
458+ let bQ = aH(aI)
459+ let aK = bQ._1
460+ let aL = bQ._2
456461 if (!(isDefined(aK)))
457462 then throw("Something went wrong")
458463 else {
459- let bO = x(al(F, N))
460- if ((bO != ""))
464+ let bR = x(al(F, N))
465+ if ((bR != ""))
461466 then throw("You already added it")
462467 else {
463- let bP = x(ai(F))
464- if ((bP != ""))
468+ let bS = x(ai(F))
469+ if ((bS != ""))
465470 then throw("Hash already registered")
466471 else {
467- let bQ = C(D, N, F)
468- if (!(bQ))
472+ let bT = C(D, N, F)
473+ if (!(bT))
469474 then throw("Sign Certificate not found for this address.")
470- else [StringEntry(ai(F), N), StringEntry(al(F, N), P), IntegerEntry(O(N, P), bK), StringEntry(Q(N, P), aC), StringEntry(R(N, P), aD), StringEntry(S(N, P), an), StringEntry(U(N, P), ao), StringEntry(T(N, P), ar), StringEntry(Z(N, P), aB), StringEntry(aa(N, P), aA), StringEntry(ac(N, P), bJ), StringEntry(ab(N, P), aE), IntegerEntry(V(N, P), aF), StringEntry(W(N, P), D), IntegerEntry(X(N, P), 0), BooleanEntry(Y(N, P), false), StringEntry(aj(N, D), P), StringEntry(ag(N, P), F), ScriptTransfer(Address(fromBase58String(d)), aK, aL)]
475+ else [StringEntry(ai(F), N), StringEntry(al(F, N), P), IntegerEntry(O(N, P), bN), StringEntry(Q(N, P), aC), StringEntry(R(N, P), aD), StringEntry(S(N, P), an), StringEntry(U(N, P), ao), StringEntry(T(N, P), ar), StringEntry(Z(N, P), aB), StringEntry(aa(N, P), aA), StringEntry(ac(N, P), bM), StringEntry(ab(N, P), aE), IntegerEntry(V(N, P), aF), StringEntry(W(N, P), D), IntegerEntry(X(N, P), 0), BooleanEntry(Y(N, P), false), StringEntry(aj(N, D), P), StringEntry(ag(N, P), F), ScriptTransfer(Address(fromBase58String(d)), aK, aL)]
471476 }
472477 }
473478 }
474479 }
475480 }
476481 }
477482
478483
479484
480485 @Callable(aI)
481-func updateArtwork (ah,aC,aD,aE,bJ,aF,an,ar,ao,as,ap) = if (!(p))
486+func updateArtwork (ah,aC,aD,aE,bM,aF,an,ar,ao,as,ap) = if (!(p))
482487 then throw(q)
483488 else {
484- let bR = toBase58String(aI.transactionId)
489+ let bU = toBase58String(aI.transactionId)
485490 let N = toBase58String(aI.caller.bytes)
486- let bS = ay(ap, as)
487- let aA = bS._1
488- let aB = bS._2
489- let bM = az(N, an, ao, aA, ar, aB, aC, aD, aE, aF)
490- if ((bM != ""))
491+ let bV = ay(ap, as)
492+ let aA = bV._1
493+ let aB = bV._2
494+ let bP = az(N, an, ao, aA, ar, aB, aC, aD, aE, aF)
495+ if ((bP != ""))
491496 then throw("Something went wrong!")
492497 else {
493- let bO = x(Q(N, ah))
494- if ((bO == ""))
498+ let bR = x(Q(N, ah))
499+ if ((bR == ""))
495500 then throw("Entry not found")
496501 else {
497- let bT = x(af(N, ah))
498- if ((bT == "ILLEGAL"))
502+ let bW = x(af(N, ah))
503+ if ((bW == "ILLEGAL"))
499504 then throw("Cannot update ILLEGAL artwork")
500505 else if (!(aN(N, ah)))
501- then [StringEntry(Q(N, ah), aC), StringEntry(R(N, ah), aD), StringEntry(S(N, ah), an), StringEntry(U(N, ah), ao), StringEntry(T(N, ah), ar), StringEntry(aa(N, ah), aA), StringEntry(Z(N, ah), aB), IntegerEntry(V(N, ah), aF), StringEntry(ab(N, ah), aE), StringEntry(ac(N, ah), bJ)]
506+ then [StringEntry(Q(N, ah), aC), StringEntry(R(N, ah), aD), StringEntry(S(N, ah), an), StringEntry(U(N, ah), ao), StringEntry(T(N, ah), ar), StringEntry(aa(N, ah), aA), StringEntry(Z(N, ah), aB), IntegerEntry(V(N, ah), aF), StringEntry(ab(N, ah), aE), StringEntry(ac(N, ah), bM)]
502507 else throw("Already minted")
503508 }
504509 }
505510 }
506511
507512
508513
509514 @Callable(aI)
510-func flagArtwork (P,bU,bT) = {
515+func flagArtwork (P,bX,bW) = {
511516 let N = toString(addressFromPublicKey(aI.callerPublicKey))
512517 let bi = toBase58String(aI.transactionId)
513518 if (containsElement([j, k, toString(this)], N))
514- then if ((bT == "CONSENT"))
515- then [StringEntry(af(bU, P), bT)]
516- else if ((bT == ""))
517- then [StringEntry(af(bU, P), bT)]
518- else if ((bT == "ILLEGAL"))
519- then [StringEntry(af(bU, P), bT), StringEntry(Q(bU, P), "ILLEGAL CONTENT"), StringEntry(R(bU, P), "ILLEGAL CONTENT"), StringEntry(S(bU, P), ""), StringEntry(U(bU, P), ""), StringEntry(aa(bU, P), "")]
520- else throw(("Unknow status " + bT))
519+ then if ((bW == "CONSENT"))
520+ then [StringEntry(af(bX, P), bW)]
521+ else if ((bW == ""))
522+ then [StringEntry(af(bX, P), bW)]
523+ else if ((bW == "ILLEGAL"))
524+ then [StringEntry(af(bX, P), bW), StringEntry(Q(bX, P), "ILLEGAL CONTENT"), StringEntry(R(bX, P), "ILLEGAL CONTENT"), StringEntry(S(bX, P), ""), StringEntry(U(bX, P), ""), StringEntry(aa(bX, P), "")]
525+ else throw(("Unknow status " + bW))
521526 else throw("You are not allowed")
522527 }
523528
524529
525530
526531 @Callable(aI)
527-func deleteArtwork (P,bU) = {
532+func deleteArtwork (P,bX) = {
528533 let N = toString(addressFromPublicKey(aI.callerPublicKey))
529534 let bi = toBase58String(aI.transactionId)
530535 let aO = if (containsElement([j, k, toString(this)], N))
531- then bU
536+ then bX
532537 else N
533- let bO = x(Q(aO, P))
534- if ((bO == ""))
538+ let bR = x(Q(aO, P))
539+ if ((bR == ""))
535540 then throw("No art matching for this address")
536541 else {
537542 let F = x(ag(aO, P))
538543 if ((F == ""))
539544 then throw("No art hash matching for this address")
540545 else {
541546 let D = x(W(aO, P))
542547 if ((D == ""))
543548 then throw("No SIGN ID matching")
544549 else {
545- let bV = [DeleteEntry(O(aO, P)), DeleteEntry(Q(aO, P)), DeleteEntry(R(aO, P)), DeleteEntry(S(aO, P)), DeleteEntry(U(aO, P)), DeleteEntry(T(aO, P)), DeleteEntry(Z(aO, P)), DeleteEntry(aa(aO, P)), DeleteEntry(ac(aO, P)), DeleteEntry(ab(aO, P)), DeleteEntry(V(aO, P)), DeleteEntry(W(aO, P)), DeleteEntry(X(aO, P)), DeleteEntry(Y(aO, P)), DeleteEntry(af(bU, P)), DeleteEntry(ad(bU, P)), DeleteEntry(ae(bU, P)), DeleteEntry(ai(F)), DeleteEntry(aj(aO, D)), DeleteEntry(al(F, aO))]
550+ let bY = [DeleteEntry(O(aO, P)), DeleteEntry(Q(aO, P)), DeleteEntry(R(aO, P)), DeleteEntry(S(aO, P)), DeleteEntry(U(aO, P)), DeleteEntry(T(aO, P)), DeleteEntry(Z(aO, P)), DeleteEntry(aa(aO, P)), DeleteEntry(ac(aO, P)), DeleteEntry(ab(aO, P)), DeleteEntry(V(aO, P)), DeleteEntry(W(aO, P)), DeleteEntry(X(aO, P)), DeleteEntry(Y(aO, P)), DeleteEntry(af(bX, P)), DeleteEntry(ad(bX, P)), DeleteEntry(ae(bX, P)), DeleteEntry(ai(F)), DeleteEntry(aj(aO, D)), DeleteEntry(al(F, aO))]
546551 if (!(aN(aO, P)))
547552 then if (!(p))
548553 then throw(q)
549- else bV
554+ else bY
550555 else if (containsElement([j, toString(this)], N))
551- then bV
556+ then bY
552557 else throw("Art already minted, you cannot delete it")
553558 }
554559 }
555560 }
556561 }
557562
558563
559564
560565 @Callable(aI)
561-func sellArtwork (P,aV,bW,aL) = if (!(p))
566+func sellArtwork (P,aV,bZ,aL) = if (!(p))
562567 then throw(q)
563568 else {
564569 let bi = toBase58String(aI.transactionId)
565570 let N = toBase58String(aI.caller.bytes)
566- let bX = lastBlock.timestamp
571+ let ca = lastBlock.timestamp
567572 let bk = x(Q(N, P))
568573 if ((bk == ""))
569574 then throw("This art doesn't match match your account")
570575 else {
571576 let bm = x(U(N, P))
572577 if ((size(split(bm, "/")[0]) != 59))
573578 then throw("You cannot sell art with no export file")
574579 else {
575580 let bn = x(T(N, P))
576581 if ((size(bn) != 64))
577582 then throw("You cannot sell art with no export hash")
578583 else if (!(aT(aL)))
579584 then throw("Something went wrong!")
580585 else if (!(aU(aL, aV)))
581586 then throw("Something went wrong!")
582587 else {
583588 let aG = aw(N)
584589 if ((aG != ""))
585590 then throw(aG)
586591 else {
587592 let bp = z(X(N, P))
588593 let br = z(V(N, P))
589- if ((bW > 10))
594+ if ((bZ > 10))
590595 then throw("10 editions max per artwork")
591596 else if (if ((bp != 0))
592597 then (bp == br)
593598 else false)
594599 then throw("Max edition reached.")
595600 else if (if ((bp > 0))
596- then (br != bW)
601+ then (br != bZ)
597602 else false)
598603 then throw("Cannot change maximum issuable anymore")
599604 else {
600605 let bC = if (if ((aV > 0))
601- then (bW > 0)
606+ then (bZ > 0)
602607 else false)
603608 then true
604609 else false
605-[BooleanEntry(Y(N, P), bC), IntegerEntry(ad(N, P), aV), IntegerEntry(V(N, P), bW), StringEntry(ae(N, P), aL)]
610+[BooleanEntry(Y(N, P), bC), IntegerEntry(ad(N, P), aV), IntegerEntry(V(N, P), bZ), StringEntry(ae(N, P), aL)]
606611 }
607612 }
608613 }
609614 }
610615 }
611616 }
612617
613618
614619
615620 @Callable(aI)
616621 func buyArtwork (P,ba) = if (!(p))
617622 then throw(q)
618623 else bh(aI, P, ba, "", "")
619624
620625
621626
622627 @Callable(aI)
623628 func setBid (P,ba) = if (!(p))
624629 then throw(q)
625630 else {
626631 let bi = toBase58String(aI.transactionId)
627632 let N = toBase58String(aI.caller.bytes)
628- let bK = lastBlock.timestamp
633+ let bN = lastBlock.timestamp
629634 if ((size(aI.payments) == 0))
630635 then throw("No payment attached")
631636 else {
632637 let aJ = value(aI.payments[0])
633638 let aK = value(aJ.amount)
634639 let aL = if (!(isDefined(aJ.assetId)))
635640 then "WAVES"
636641 else toBase58String(value(aJ.assetId))
637642 let bp = z(X(ba, P))
638643 let br = z(V(ba, P))
639644 if ((bp >= br))
640645 then throw("Sold out, you cannot bid")
641- else [StringEntry((((((((("bid_" + P) + "_") + ba) + "_") + N) + "_") + bi) + "_OPEN"), ((((aL + "_") + toString(aK)) + "_") + toString(bK)))]
646+ else [StringEntry((((((((("bid_" + P) + "_") + ba) + "_") + N) + "_") + bi) + "_OPEN"), ((((aL + "_") + toString(aK)) + "_") + toString(bN)))]
642647 }
643648 }
644649
645650
646651
647652 @Callable(aI)
648653 func acceptBid (P,ba,bb,bc) = if (!(p))
649654 then throw(q)
650655 else {
651656 let N = toBase58String(aI.caller.bytes)
652657 if ((N != ba))
653658 then throw("You cannot do this action")
654659 else bh(aI, P, ba, bb, bc)
655660 }
656661
657662
658663
659-@Callable(bY)
660-func deleteEntry (bZ) = {
661- let N = toString(addressFromPublicKey(bY.callerPublicKey))
664+@Callable(cb)
665+func deleteEntry (cc) = {
666+ let N = toString(addressFromPublicKey(cb.callerPublicKey))
662667 if ((N == j))
663- then [DeleteEntry(bZ)]
668+ then [DeleteEntry(cc)]
664669 else throw("no")
665670 }
666671
667672

github/deemru/w8io/873ac7e 
208.87 ms