tx · 2pZB3ovKa9refcHL2mWX52jq2zg3bf8medUuVxnDUjwJ

3NBquYd5fTq8HRDkagrtNLQ3HmWd7wcZoeL:  -0.01400000 Waves

2021.01.22 12:00 [1364442] smart account 3NBquYd5fTq8HRDkagrtNLQ3HmWd7wcZoeL > SELF 0.00000000 Waves

{ "type": 13, "id": "2pZB3ovKa9refcHL2mWX52jq2zg3bf8medUuVxnDUjwJ", "fee": 1400000, "feeAssetId": null, "timestamp": 1611306099138, "version": 2, "chainId": 84, "sender": "3NBquYd5fTq8HRDkagrtNLQ3HmWd7wcZoeL", "senderPublicKey": "7irc2VpK5czoyVdwrCuQqr2JU9ZaZnEZn8RPChnfi3yL", "proofs": [ "2KLpT6A3CjTDruGp8vrositBMQ6sJBz3Sphfk9ThjfDZBFexCbaBWWQ23CkHwZAk4YA92PYpKxS8bEK5LTyE8Y26" ], "script": "base64:AAIEAAAAAAAAAE8IAhIOCgwICAgICAgBCAgICAgSDQoLCAgICAgBCAgICAgSBQoDCAgIEgQKAggIEgYKBAgBAQgSBAoCCAgSBAoCCAgSBgoECAgICBIDCgEIAAAAQQAAAAAIdW5pdFRlc3QHAAAAAAlvcmFjbGVGZWUJAQAAAAV2YWx1ZQAAAAEJAAQmAAAAAQIAAAAjM04yczVSdGFIUEJlbkNzeDJFQ2NvRlJiWUh4M25vWmhYVzEAAAAACHNpZ25EYXBwCQEAAAAFdmFsdWUAAAABCQAEJgAAAAECAAAAIzNOQzI4aFNpdnJtc1RVWGFZRDF4NkwzNjJKNFpwVW5vVGRCAAAAAAtmZWVSZWNlaXZlcgIAAAAjM04xRTZ0WGRkUm9WYVJmUTlkUTN2ZzVMYVcyZnNkOEhLdWIAAAAACHVzZXJEYXBwAwUAAAAIdW5pdFRlc3QJAQAAAAV2YWx1ZQAAAAEJAAQmAAAAAQIAAAAjM010NFJHTUV5alNXWUFvY1RQcWQ1NXdkSFFRQjNQVTJVQ20JAQAAAAV2YWx1ZQAAAAEJAAQmAAAAAQIAAAAjM013RFphZ29ZRWlOZlFMYzMxY0dwWW9hRTU0TUdNd29GcloAAAAADXdoaXRlbGlzdERhcHAJAQAAAAV2YWx1ZQAAAAEJAAQmAAAAAQIAAAAjM042QmFWMWRDQjR6ZzQzZ29OTkhhQ3R2UjEzQmN5SjVHc3EAAAAAC3NpZ25Bc3NldElkAQAAACDopWq8yndC8nBhMjVKT0WDubke5ZlnF8Nx6tkLoQSt6wAAAAALdXNkbkFzc2V0SWQBAAAAIA/yHBKs5MQ8muxGGqslqLDsugcrRsxtiHLwteKSSQG0AAAAAAx3YXZlc0Fzc2V0SWQBAAAAAAAAAAAFY2hyaXMCAAAAIzNNc0c2alBOQ3JWSlV0WUI3WEpCeFM3dXRXc1hBZjRuOVZwAAAAAARqb2VwAgAAACMzTXptNFZMd3NOOXVad2JUTXpQajNYdXhWNmtFZkFSOFVETgAAAAAHc2lnbkN1dAAAAAAAAAAABwAAAAALdXNkbldhdmVDdXQAAAAAAAAAAAoAAAAADmRlZmF1bHRMaWNlbmNlAgAAAEdiYWZ5YmVpZnV5bzRwcXU1NGlzbXFndGI2ZTRoNmtrdmd4N3pnNHUzemliaDJyN3k2bWI2NGk3Ynp6YS9saWNlbmNlLnBkZgAAAAASZGVmYXVsdEhhc2hMaWNlbmNlAgAAAEBhODc3NThjMzU0ZTMwYTllNzhmYjg0ZmEzYTAwMTBhNTA5MGFiMjBkZjBiZTExYWQ0NWI1NzIwY2MxODdlNjM5AAAAAAtkYXBwUnVubmluZwkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBsAAAACBQAAAAh1c2VyRGFwcAIAAAAUY29uZl9kYXBwX2lzX3J1bm5pbmcGAAAAAA5tYWludGVuYW5jZU1TRwkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABB0AAAACBQAAAAh1c2VyRGFwcAIAAAAUY29uZl9tYWludGVuYW5jZV9tc2cCAAAAAAAAAAANdXNlclN1c3BlbmRlZAIAAAAJU1VTUEVOREVEAAAAAAt1c2VyUmVtb3ZlZAIAAAAHUkVNT1ZFRAAAAAAQdXNlclVucmVnaXN0ZXJlZAIAAAAMVU5SRUdJU1RFUkVEAAAAAAt1c2VyQWxsb3dlZAIAAAAHQUxMT1dFRAEAAAAXZ2V0U3RyaW5nQnlLZXlGcm9tVXNlcnMAAAABAAAAA2tleQkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABB0AAAACBQAAAAh1c2VyRGFwcAUAAAADa2V5AgAAAAABAAAADmdldFN0cmluZ0J5S2V5AAAAAQAAAANrZXkJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQdAAAAAgUAAAAEdGhpcwUAAAADa2V5AgAAAAABAAAAGWdldEludGVnZXJCeUtleUZyb21PcmFjbGUAAAABAAAAA2tleQkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEGgAAAAIFAAAACW9yYWNsZUZlZQUAAAADa2V5AgAAAB9JbnRlZ2VyIHVuZGVmaW5lIG9yIDAgaW4gb3JhY2xlAQAAAA9nZXRJbnRlZ2VyQnlLZXkAAAABAAAAA2tleQkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzBQAAAANrZXkAAAAAAAAAAAABAAAADmNoZWNrV2hpdGVsaXN0AAAAAQAAAANrZXkJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAANd2hpdGVsaXN0RGFwcAUAAAADa2V5AAAAAAAA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AgAAAAECAAAAE05vIHBheW1lbnQgYXR0YWNoZWQEAAAAB3BheW1lbnQJAQAAAAV2YWx1ZQAAAAEJAAGRAAAAAggFAAAABmludm9rZQAAAAhwYXltZW50cwAAAAAAAAAAAAQAAAAGYW1vdW50CQEAAAAFdmFsdWUAAAABCAUAAAAHcGF5bWVudAAAAAZhbW91bnQEAAAAB2Fzc2V0SWQDAwkBAAAACWlzRGVmaW5lZAAAAAEIBQAAAAdwYXltZW50AAAAB2Fzc2V0SWQJAAAAAAAAAggFAAAAB3BheW1lbnQAAAAHYXNzZXRJZAUAAAALc2lnbkFzc2V0SWQHCAUAAAAHcGF5bWVudAAAAAdhc3NldElkCQAAAgAAAAECAAAAK09ubHkgU0lHTiB0b2tlbiBhY2NlcHRlZCBhcyB0cmFuc2FjdGlvbiBmZWUEAAAAGWN1cnJlbnRDZXJ0aWZpY2F0aW9uUHJpY2UJAQAAABlnZXRJbnRlZ2VyQnlLZXlGcm9tT3JhY2xlAAAAAQkAASwAAAACAgAAABJjZXJ0aWZpY2F0aW9uX2ZlZV8JAAJYAAAAAQUAAAALc2lnbkFzc2V0SWQDCQEAAAACIT0AAAACBQAAAAZhbW91bnQFAAAAGWN1cnJlbnRDZXJ0aWZpY2F0aW9uUHJpY2UJAAACAAAAAQkAASwAAAACAgAAABlQYXltZW50IGFtb3VudCBzaG91bGQgYmUgCQABpAAAAAEFAAAAGWN1cnJlbnRDZXJ0aWZpY2F0aW9uUHJpY2UJAAUUAAAAAgUAAAAGYW1vdW50BQAAAAdhc3NldElkAQAAAAtpc0FydE1pbnRlZAAAAAIAAAAMYWRkcmVzc1RvVXNlAAAABWFydElkBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAQAAAAxrZXlBcnRJc3N1ZWQAAAACBQAAAAxhZGRyZXNzVG9Vc2UFAAAABWFydElkAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWIFAAAAByRtYXRjaDADCQEAAAACIT0AAAACBQAAAAFiAAAAAAAAAAAABgcHAQAAABR2YWxpZGF0ZVByaWNlQXNzZXRJZAAAAAMAAAAGaW52b2tlAAAADHByaWNlQXNzZXRJZAAAAAxhcnR3b3JrUHJpY2UEAAAAB3Bh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ZAAAAAIFAAAABmlzc3VlcgUAAAAFYXJ0SWQEAAAACmV4cG9ydEhhc2gJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEJAQAAABBrZXlBcnRFeHBvcnRIYXNoAAAAAgUAAAAGaXNzdWVyBQAAAAVhcnRJZAQAAAAKbGljZW5jZUNJRAkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQkBAAAAEGtleUFydExpY2VuY2VDaWQAAAACBQAAAAZpc3N1ZXIFAAAABWFydElkBAAAAAtsaWNlbmNlSGFzaAkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQkBAAAAEWtleUFydExpY2VuY2VIYXNoAAAAAgUAAAAGaXNzdWVyBQAAAAVhcnRJZAQAAAALZGVzY3JpcHRpb24JAAEvAAAAAgkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQkBAAAACmtleUFydERlc2MAAAACBQAAAAZpc3N1ZXIFAAAABWFydElkAAAAAAAAAAAyBAAAAAhpc09uU2FsZQkBAAAAD2dldEJvb2xlYW5CeUtleQAAAAEJAQAAAAxrZXlBcnRPblNhbGUAAAACBQAAAAZpc3N1ZXIFAAAABWFydElkBAAAAAphbW91bnRTb2xkCQEAAAAPZ2V0SW50ZWdlckJ5S2V5AAAAAQkBAAAADGtleUFydElzc3VlZAAAAAIFAAAABmlzc3VlcgUAAAAFYXJ0SWQEAAAADGFydHdvcmtQcmljZQkBAAAAD2dldEludGVnZXJCeUtleQAAAAEJAQAAAAtrZXlBcnRQcmljZQAAAAIFAAAABmlzc3VlcgUAAAAFYXJ0SWQEAAAADHByaWNlQXNzZXRJZAkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQkBAAAAFWtleUFydEFzc2V0SWRBY2NlcHRlZAAAAAIFAAAABmlzc3VlcgUAAAAFYXJ0SWQEAAAACnNvdXJjZUhhc2gJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEJAQAAABRrZXlBcnRIYXNoQnlUeGlkQWRkcgAAAAIFAAAABmlzc3VlcgUAAAAFYXJ0SWQEAAAACm1heENhblNlbGwJAQAAAA9nZXRJbnRlZ2VyQnlLZXkAAAABCQEAAAANa2V5QXJ0TWF4TWludAAAAAIFAAAABmlzc3VlcgUAAAAFYXJ0SWQDAwMJAABnAAAAAgAAAAAAAAAAAAUAAAAMYXJ0d29ya1ByaWNlBgkBAAAAASEAAAABBQAAAAhpc09uU2FsZQYJAABnAAAAAgAAAAAAAAAAAAUAAAAKbWF4Q2FuU2VsbAkAAAIAAAABAgAAABBBcnQgbm90IGZvciBzYWxlBAAAAA0kdDAxMjkyMDEzMTE4AwMDCQAAAAAAAAIFAAAABmNhbGxlcgUAAAAGaXNzdWVyCQEAAAACIT0AAAACBQAAAAhiaWRPd25lcgIAAAAABwkBAAAAAiE9AAAAAgUAAAAFYmlkSWQCAAAAAAcJAQAAABZnZXRQcmljZUFzc2V0SWRGcm9tQmlkAAAABAUAAAAFYXJ0SWQFAAAABmlzc3VlcgUAAAAFYmlkSWQFAAAACGJpZE93bmVyCQEAAAAUdmFsaWRhdGVQcmljZUFzc2V0SWQAAAADBQAAAAZpbnZva2UFAAAADHByaWNlQXNzZXRJZAUAAAAMYXJ0d29ya1ByaWNlBAAAAAZhbW91bnQIBQAAAA0kdDAxMjkyMDEzMTE4AAAAAl8xBAAAAAdhc3NldElkCAUAAAANJHQwMTI5MjAxMzExOAAAAAJfMgQAAAANaXNXaGl0ZWxpc3RlZAkBAAAADmNoZWNrV2hpdGVsaXN0AAAAAQUAAAAGaXNzdWVyBAAAAANjdXQDCQAAZgAAAAIFAAAADWlzV2hpdGVsaXN0ZWQFAAAABmhlaWdodAAAAAAAAAAAAAMJAAAAAAAAAgUAAAAMcHJpY2VBc3NldElkCQACWAAAAAEFAAAAC3NpZ25Bc3NldElkBQAAAAdzaWduQ3V0BQAAAAt1c2RuV2F2ZUN1dAQAAAANYW1vdW50Rm9yU2lnbgkAAGsAAAADBQAAAAZhbW91bnQFAAAAA2N1dAAAAAAAAAAAZAQAAAAQYW1vdW50Rm9yQ3JlYXRvcgkAAGUAAAACBQAAAAZhbW91bnQFAAAADWFtb3VudEZvclNpZ24DCQAAAAAAAAIFAAAACmFtb3VudFNvbGQFAAAACm1heENhblNlbGwJAAACAAAAAQIAAAAMQXJ0IHNvbGQgb3V0BAAAAA1uZXdBbW91bnRTb2xkCQAAZAAAAAIFAAAACmFtb3VudFNvbGQAAAAAAAAAAAEEAAAACWVudHJ5RGF0ZQgFAAAACWxhc3RCbG9jawAAAAl0aW1lc3RhbXAEAAAACWlzc3VlTWV0YQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAJQ3JlYXRvcjogBQAAAAZpc3N1ZXICAAAACiwKIEFydElEOiAFAAAABWFydElkAgAAAAssCiBTaWduSUQ6IAUAAAAGc2lnbklEAgAAABEsCiBBcnR3b3JrIG5hbWU6IAUAAAALYXJ0d29ya05hbWUCAAAAGCwKIEFydHdvcmsgZGVzY3JpcHRpb246IAUAAAALZGVzY3JpcHRpb24CAAAACiwKIElzc3VlOiAJAAGkAAAAAQUAAAANbmV3QW1vdW50U29sZAIAAAABLwkAAaQAAAABBQAAAAptYXhDYW5TZWxsAgAAABEsCiBNYXggaXNzdWFibGU6IAkAAaQAAAABBQAAAAptYXhDYW5TZWxsAgAAABAsCiBTb3VyY2UgaGFzaDogBQAAAApzb3VyY2VIYXNoAgAAABAsCiBEaXNwbGF5IGNpZDogBQAAAApkaXNwbGF5Q0lEAgAAAA8sCiBFeHBvcnQgY2lkOiAFAAAACWV4cG9ydENJRAIAAAAQLAogRXhwb3J0IGhhc2g6IAUAAAAKZXhwb3J0SGFzaAIAAAAQLAogTGljZW5jZSBjaWQ6IAUAAAAKbGljZW5jZUNJRAIAAAARLAogTGljZW5jZSBoYXNoOiAFAAAAC2xpY2VuY2VIYXNoBAAAAAhpc3N1ZU5GVAkABEIAAAAFCQABLAAAAAICAAAAA1NBXwkAAaQAAAABCQAAZAAAAAIFAAAACHRvdGFsTkZUAAAAAAAAAAABBQAAAAlpc3N1ZU1ldGEAAAAAAAAAAAEAAAAAAAAAAAAHBAAAAAVpZE5GVAkABDgAAAABBQAAAAhpc3N1ZU5GVAQAAAAKc2VsbFN0YXR1cwMJAAAAAAAAAgUAAAANbmV3QW1vdW50U29sZAUAAAAKbWF4Q2FuU2VsbAcGBAAAAApyZWNlaXZlTkZUAwMDCQAAAAAAAAIFAAAABmNhbGxlcgUAAAAGaXNzdWVyCQEAAAACIT0AAAACBQAAAAhiaWRPd25lcgIAAAAABwkBAAAAAiE9AAAAAgUAAAAFYmlkSWQCAAAAAAcJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAEFAAAACGJpZE93bmVyCAUAAAAGaW52b2tlAAAABmNhbGxlcgQAAAALdGVzdEFzc2V0SWQDCQAAAAAAAAIFAAAAB2Fzc2V0SWQFAAAABHVuaXQCAAAABVdBVkVTCQACWAAAAAEJAQAAAAV2YWx1ZQAAAAEFAAAAB2Fzc2V0SWQDBgkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAACWFzc2VpSUQ9IAUAAAALdGVzdEFzc2V0SWQCAAAAEyBhbW91bnRGb3JDcmVhdG9yPSAJAAGkAAAAAQUAAAAQYW1vdW50Rm9yQ3JlYXRvcgIAAAAQIGFtb3VudEZvclNpZ249IAkAAaQAAAABBQAAAA1hbW91bnRGb3JTaWduAgAAAAkgTkZUIElEPSAJAAJYAAAAAQUAAAAFaWRORlQEAAAABmJ1eVJlcwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAADGtleUFydElzc3VlZAAAAAIFAAAABmlzc3VlcgUAAAAFYXJ0SWQFAAAADW5ld0Ftb3VudFNvbGQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAASwAAAACAgAAAARuZnRfCQACWAAAAAEFAAAABWlkTkZUCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAACWFydF9zb2xkXwkAAaQAAAABBQAAAA1uZXdBbW91bnRTb2xkAgAAAARfb2ZfCQABpAAAAAEFAAAACm1heENhblNlbGwCAAAAAV8FAAAABWFydElkAgAAAAFfBQAAAAZpc3N1ZXIJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAlhcnRfc29sZF8JAAGkAAAAAQUAAAANbmV3QW1vdW50U29sZAIAAAAEX29mXwkAAaQAAAABBQAAAAptYXhDYW5TZWxsAgAAAAFfBQAAAAVhcnRJZAIAAAABXwUAAAAGaXNzdWVyCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIFAAAABmNhbGxlcgIAAAABXwkAAaQAAAABBQAAAAllbnRyeURhdGUCAAAAAV8FAAAAAmlkAgAAAAFfCQABpAAAAAEFAAAADGFydHdvcmtQcmljZQIAAAABXwUAAAAMcHJpY2VBc3NldElkAgAAAAFfCQACWAAAAAEFAAAABWlkTkZUCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABB0b3RhbF9uZnRfaXNzdWVkCQAAZAAAAAIFAAAACHRvdGFsTkZUAAAAAAAAAAABCQAETAAAAAIJAQAAAAxCb29sZWFuRW50cnkAAAACCQEAAAAMa2V5QXJ0T25TYWxlAAAAAgUAAAAGaXNzdWVyBQAAAAVhcnRJZAUAAAAKc2VsbFN0YXR1cwkABEwAAAACBQAAAAhpc3N1ZU5GVAkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAHQWRkcmVzcwAAAAEJAAJZAAAAAQUAAAAGaXNzdWVyBQAAABBhbW91bnRGb3JDcmVhdG9yBQAAAAdhc3NldElkCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABBQAAAAtmZWVSZWNlaXZlcgUAAAANYW1vdW50Rm9yU2lnbgUAAAAHYXNzZXRJZAkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADBQAAAApyZWNlaXZlTkZUAAAAAAAAAAABBQAAAAVpZE5GVAUAAAADbmlsBAAAAAphc3NldElkQmlkAwkAAAAAAAACBQAAAAdhc3NldElkBQAAAAR1bml0AgAAAAVXQVZFUwkAAlgAAAABCQEAAAAFdmFsdWUAAAABBQAAAAdhc3NldElkBAAAAApnZXRCaWREYXRhCQEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAEYmlkXwUAAAAFYXJ0SWQCAAAAAV8FAAAABmlzc3VlcgIAAAABXwUAAAAIYmlkT3duZXICAAAAAV8FAAAABWJpZElkAgAAAAVfT1BFTgQAAAAJYmlkRGVsT2xkCQEAAAALRGVsZXRlRW50cnkAAAABCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAEYmlkXwUAAAAFYXJ0SWQCAAAAAV8FAAAABmlzc3VlcgIAAAABXwUAAAAGY2FsbGVyAgAAAAFfBQAAAAJpZAIAAAAFX09QRU4EAAAACWJpZFVwZGF0ZQkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAABGJpZF8FAAAABWFydElkAgAAAAFfBQAAAAZpc3N1ZXICAAAAAV8FAAAABmNhbGxlcgIAAAABXwUAAAACaWQCAAAAB19DTE9TRUQFAAAACmdldEJpZERhdGEDAwMJAAAAAAAAAgUAAAAGY2FsbGVyBQAAAAZpc3N1ZXIJAQAAAAIhPQAAAAIFAAAACGJpZE93bmVyAgAAAAAHCQEAAAACIT0AAAACBQAAAAViaWRJZAIAAAAABwkABEwAAAACBQAAAAliaWRVcGRhdGUJAARMAAAAAgUAAAAJYmlkRGVsT2xkBQAAAAZidXlSZXMFAAAABmJ1eVJlcwAAAAkAAAAGaW52b2tlAQAAAAphZGRBcnR3b3JrAAAADAAAAApzaGEyNTZIYXNoAAAABnNpZ25JRAAAAARuYW1lAAAAC2Rlc2NyaXB0aW9uAAAABHRhZ3MAAAAEdHlwZQAAAAdtYXhtaW50AAAACmNpZERpc3BsYXkAAAAMc2hhMjU2RXhwb3J0AAAACWNpZEV4cG9ydAAAAA1zaGEyNTZMaWNlbmNlAAAACmNpZExpY2VuY2UDCQEAAAABIQAAAAEFAAAAC2RhcHBSdW5uaW5nCQAAAgAAAAEFAAAADm1haW50ZW5hbmNlTVNHBAAAAAVhcnRJZAkAAlgAAAABCAUAAAAGaW52b2tlAAAADXRyYW5zYWN0aW9uSWQEAAAACXRpbWVzdGFtcAgFAAAACWxhc3RCbG9jawAAAAl0aW1lc3RhbXAEAAAABmNhbGxlcgkAAlgAAAABCAgFAAAABmludm9rZQAAAAZjYWxsZXIAAAAFYnl0ZXMDCQEAAAABIQAAAAEJAQAAAAx2YWxpZGF0ZUhhc2gAAAABBQAAAApzaGEyNTZIYXNoCQAAAgAAAAECAAAAJEhhc2ggc2hvdWxkIGJlIDY0IGNoYXJhY3RlcnMgbWF4aW11bQQAAAANJHQwMTY1MzMxNjYwMgkBAAAACnNldExJY2VuY2UAAAACBQAAAApjaWRMaWNlbmNlBQAAAA1zaGEyNTZMaWNlbmNlBAAAAApsaWNlbmNlQ0lECAUAAAANJHQwMTY1MzMxNjYwMgAAAAJfMQQAAAALbGljZW5jZUhhc2gIBQAAAA0kdDAxNjUzMzE2NjAyAAAAAl8yBAAAAA92YWxpZGF0ZUFydHdvcmsJAQAAABN2YWxpZGF0ZUFydHdvcmtEYXRhAAAACgUAAAAGY2FsbGVyBQAAAApjaWREaXNwbGF5BQAAAAljaWRFeHBvcnQFAAAACmxpY2VuY2VDSUQFAAAADHNoYTI1NkV4cG9ydAUAAAALbGljZW5jZUhhc2gFAAAABG5hbWUFAAAAC2Rlc2NyaXB0aW9uBQAAAAR0YWdzBQAAAAdtYXhtaW50AwkBAAAAAiE9AAAAAgUAAAAPdmFsaWRhdGVBcnR3b3JrAgAAAAAJAAACAAAAAQIAAAAVU29tZXRoaW5nIHdlbnQgd3JvbmchBAAAAA0kdDAxNjgzMDE2ODc3CQEAAAAPdmFsaWRhdGVQYXltZW50AAAAAQUAAAAGaW52b2tlBAAAAAZhbW91bnQIBQAAAA0kdDAxNjgzMDE2ODc3AAAAAl8xBAAAAAdhc3NldElkCAUAAAANJHQwMTY4MzAxNjg3NwAAAAJfMgMJAQAAAAEhAAAAAQkBAAAACWlzRGVmaW5lZAAAAAEFAAAABmFtb3VudAkAAAIAAAABAgAAABRTb21ldGhpbmcgd2VudCB3cm9uZwQAAAAKZW50cnlFeGlzdAkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQkBAAAAFWtleUFydFR4aWRCeUhhc2hPd25lcgAAAAIFAAAACnNoYTI1Nkhhc2gFAAAABmNhbGxlcgMJAQAAAAIhPQAAAAIFAAAACmVudHJ5RXhpc3QCAAAAAAkAAAIAAAABAgAAABRZb3UgYWxyZWFkeSBhZGRlZCBpdAQAAAAJaGFzaEV4aXN0CQEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABCQEAAAARa2V5QXJ0T3duZXJCeUhhc2gAAAABBQAAAApzaGEyNTZIYXNoAwkBAAAAAiE9AAAAAgUAAAAJaGFzaEV4aXN0AgAAAAAJAAACAAAAAQIAAAAXSGFzaCBhbHJlYWR5IHJlZ2lzdGVyZWQEAAAAD2lzU2lnbkNlcnRpZmllZAkBAAAAFGNoZWNrU2lnbkNlcnRpZmljYXRlAAAAAwUAAAAGc2lnbklEBQAAAAZjYWxsZXIFAAAACnNoYTI1Nkhhc2gDCQEAAAABIQAAAAEFAAAAD2lzU2lnbkNlcnRpZmllZAkAAAIAAAABAgAAACxTaWduIENlcnRpZmljYXRlIG5vdCBmb3VuZCBmb3IgdGhpcyBhZGRyZXNzLgkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAARa2V5QXJ0T3duZXJCeUhhc2gAAAABBQAAAApzaGEyNTZIYXNoBQAAAAZjYWxsZXIJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAFWtleUFydFR4aWRCeUhhc2hPd25lcgAAAAIFAAAACnNoYTI1Nkhhc2gFAAAABmNhbGxlcgUAAAAFYXJ0SWQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAAprZXlBcnREYXRlAAAAAgUAAAAGY2FsbGVyBQAAAAVhcnRJZAUAAAAJdGltZXN0YW1wCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAAAprZXlBcnROYW1lAAAAAgUAAAAGY2FsbGVyBQAAAAVhcnRJZAUAAAAEbmFtZQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAKa2V5QXJ0RGVzYwAAAAIFAAAABmNhbGxlcgUAAAAFYXJ0SWQFAAAAC2Rlc2NyaXB0aW9uCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABBrZXlBcnREaXNwbGF5Q2lkAAAAAgUAAAAGY2FsbGVyBQAAAAVhcnRJZAUAAAAKY2lkRGlzcGxheQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAPa2V5QXJ0RXhwb3J0Q2lkAAAAAgUAAAAGY2FsbGVyBQAAAAVhcnRJZAUAAAAJY2lkRXhwb3J0CQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABBrZXlBcnRFeHBvcnRIYXNoAAAAAgUAAAAGY2FsbGVyBQAAAAVhcnRJZAUAAAAMc2hhMjU2RXhwb3J0CQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABFrZXlBcnRMaWNlbmNlSGFzaAAAAAIFAAAABmNhbGxlcgUAAAAFYXJ0SWQFAAAAC2xpY2VuY2VIYXNoCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABBrZXlBcnRMaWNlbmNlQ2lkAAAAAgUAAAAGY2FsbGVyBQAAAAVhcnRJZAUAAAAKbGljZW5jZUNJRAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAKa2V5QXJ0VHlwZQAAAAIFAAAABmNhbGxlcgUAAAAFYXJ0SWQFAAAABHR5cGUJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAACmtleUFydFRhZ3MAAAACBQAAAAZjYWxsZXIFAAAABWFydElkBQAAAAR0YWdzCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAANa2V5QXJ0TWF4TWludAAAAAIFAAAABmNhbGxlcgUAAAAFYXJ0SWQFAAAAB21heG1pbnQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAADGtleUFydFNpZ25JRAAAAAIFAAAABmNhbGxlcgUAAAAFYXJ0SWQFAAAABnNpZ25JRAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAADGtleUFydElzc3VlZAAAAAIFAAAABmNhbGxlcgUAAAAFYXJ0SWQAAAAAAAAAAAAJAARMAAAAAgkBAAAADEJvb2xlYW5FbnRyeQAAAAIJAQAAAAxrZXlBcnRPblNhbGUAAAACBQAAAAZjYWxsZXIFAAAABWFydElkBwkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAATa2V5QXJ0QXJ0aWRCeVNpZ25pZAAAAAIFAAAABmNhbGxlcgUAAAAGc2lnbklEBQAAAAVhcnRJZAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAUa2V5QXJ0SGFzaEJ5VHhpZEFkZHIAAAACBQAAAAZjYWxsZXIFAAAABWFydElkBQAAAApzaGEyNTZIYXNoCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABBQAAAAtmZWVSZWNlaXZlcgUAAAAGYW1vdW50BQAAAAdhc3NldElkBQAAAANuaWwAAAAGaW52b2tlAQAAAA11cGRhdGVBcnR3b3JrAAAACwAAAAR0eGlkAAAABG5hbWUAAAALZGVzY3JpcHRpb24AAAAEdGFncwAAAAR0eXBlAAAAB21heG1pbnQAAAAKY2lkRGlzcGxheQAAAAxzaGEyNTZFeHBvcnQAAAAJY2lkRXhwb3J0AAAADXNoYTI1NkxpY2VuY2UAAAAKY2lkTGljZW5jZQMJAQAAAAEhAAAAAQUAAAALZGFwcFJ1bm5pbmcJAAACAAAAAQUAAAAObWFpbnRlbmFuY2VNU0cEAAAACHVwZGF0ZUlkCQACWAAAAAEIBQAAAAZpbnZva2UAAAANdHJhbnNhY3Rpb25JZAQAAAAGY2FsbGVyCQACWAAAAAEICAUAAAAGaW52b2tlAAAABmNhbGxlcgAAAAVieXRlcwQAAAANJHQwMTk3MzIxOTgwMQkBAAAACnNldExJY2VuY2UAAAACBQAAAApjaWRMaWNlbmNlBQAAAA1zaGEyNTZMaWNlbmNlBAAAAApsaWNlbmNlQ0lECAUAAAANJHQwMTk3MzIxOTgwMQAAAAJfMQQAAAALbGljZW5jZUhhc2gIBQAAAA0kdDAxOTczMjE5ODAxAAAAAl8yBAAAAA92YWxpZGF0ZUFydHdvcmsJAQAAABN2YWxpZGF0ZUFydHdvcmtEYXRhAAAACgUAAAAGY2FsbGVyBQAAAApjaWREaXNwbGF5BQAAAAljaWRFeHBvcnQF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ZXNzVG9Vc2UFAAAABWFydElkCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAQAAAA9rZXlBcnRFeHBvcnRDaWQAAAACBQAAAAxhZGRyZXNzVG9Vc2UFAAAABWFydElkCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAQAAABBrZXlBcnRFeHBvcnRIYXNoAAAAAgUAAAAMYWRkcmVzc1RvVXNlBQAAAAVhcnRJZAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQEAAAARa2V5QXJ0TGljZW5jZUhhc2gAAAACBQAAAAxhZGRyZXNzVG9Vc2UFAAAABWFydElkCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAQAAABBrZXlBcnRMaWNlbmNlQ2lkAAAAAgUAAAAMYWRkcmVzc1RvVXNlBQAAAAVhcnRJZAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQEAAAAKa2V5QXJ0VHlwZQAAAAIFAAAADGFkZHJlc3NUb1VzZQUAAAAFYXJ0SWQJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkBAAAACmtleUFydFRhZ3MAAAACBQAAAAxhZGRyZXNzVG9Vc2UFAAAABWFydElkCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAQAAAA1rZXlBcnRNYXhNaW50AAAAAgUAAAAMYWRkcmVzc1RvVXNlBQAAAAVhcnRJZAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQEAAAAMa2V5QXJ0U2lnbklEAAAAAgUAAAAMYWRkcmVzc1RvVXNlBQAAAAVhcnRJZAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQEAAAAMa2V5QXJ0SXNzdWVkAAAAAgUAAAAMYWRkcmVzc1RvVXNlBQAAAAVhcnRJZAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQEAAAAMa2V5QXJ0T25TYWxlAAAAAgUAAAAMYWRkcmVzc1RvVXNlBQAAAAVhcnRJZAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQEAAAAKa2V5QXJ0RmxhZwAAAAIFAAAABGFkZHIFAAAABWFydElkCQAETAAAAAIJAQAAAAtEZWxldGVF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", "height": 1364442, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: Gw4m7Xm66FJskjVjNfJzD7NFvRpdWMKekYeWTND1RpPE Next: ELXSENX3yDfS4m4HENfqu8kqetqDtXN8vDXYEbxa1MxG Diff:
OldNewDifferences
407407 else false)
408408 then addressFromStringValue(bc)
409409 else aI.caller
410+ let bE = if ((aL == unit))
411+ then "WAVES"
412+ else toBase58String(value(aL))
410413 if (true)
411- then throw(((((((("asseiID= " + toBase58String(value(aL))) + " amountForCreator= ") + toString(bw)) + " amountForSign= ") + toString(bv)) + " NFT ID= ") + toBase58String(bB)))
414+ then throw(((((((("asseiID= " + bE) + " amountForCreator= ") + toString(bw)) + " amountForSign= ") + toString(bv)) + " NFT ID= ") + toBase58String(bB)))
412415 else {
413- 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)]
414- let bF = if ((aL == unit))
416+ let bF = [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)]
417+ let bG = if ((aL == unit))
415418 then "WAVES"
416419 else toBase58String(value(aL))
417- let bG = x((((((((("bid_" + P) + "_") + ba) + "_") + bc) + "_") + bb) + "_OPEN"))
418- let bH = DeleteEntry((((((((("bid_" + P) + "_") + ba) + "_") + N) + "_") + bi) + "_OPEN"))
419- let bI = StringEntry((((((((("bid_" + P) + "_") + ba) + "_") + N) + "_") + bi) + "_CLOSED"), bG)
420+ let bH = x((((((((("bid_" + P) + "_") + ba) + "_") + bc) + "_") + bb) + "_OPEN"))
421+ let bI = DeleteEntry((((((((("bid_" + P) + "_") + ba) + "_") + N) + "_") + bi) + "_OPEN"))
422+ let bJ = StringEntry((((((((("bid_" + P) + "_") + ba) + "_") + N) + "_") + bi) + "_CLOSED"), bH)
420423 if (if (if ((N == ba))
421424 then (bc != "")
422425 else false)
423426 then (bb != "")
424427 else false)
425- then [bI, bH] :: bE
426- else bE
428+ then [bJ, bI] :: bF
429+ else bF
427430 }
428431 }
429432 }
432435
433436
434437 @Callable(aI)
435-func addArtwork (F,D,aC,aD,aE,bJ,aF,an,ar,ao,as,ap) = if (!(p))
438+func addArtwork (F,D,aC,aD,aE,bK,aF,an,ar,ao,as,ap) = if (!(p))
436439 then throw(q)
437440 else {
438441 let P = toBase58String(aI.transactionId)
439- let bK = lastBlock.timestamp
442+ let bL = lastBlock.timestamp
440443 let N = toBase58String(aI.caller.bytes)
441444 if (!(K(F)))
442445 then throw("Hash should be 64 characters maximum")
443446 else {
444- let bL = ay(ap, as)
445- let aA = bL._1
446- let aB = bL._2
447- let bM = az(N, an, ao, aA, ar, aB, aC, aD, aE, aF)
448- if ((bM != ""))
447+ let bM = ay(ap, as)
448+ let aA = bM._1
449+ let aB = bM._2
450+ let bN = az(N, an, ao, aA, ar, aB, aC, aD, aE, aF)
451+ if ((bN != ""))
449452 then throw("Something went wrong!")
450453 else {
451- let bN = aH(aI)
452- let aK = bN._1
453- let aL = bN._2
454+ let bO = aH(aI)
455+ let aK = bO._1
456+ let aL = bO._2
454457 if (!(isDefined(aK)))
455458 then throw("Something went wrong")
456459 else {
457- let bO = x(al(F, N))
458- if ((bO != ""))
460+ let bP = x(al(F, N))
461+ if ((bP != ""))
459462 then throw("You already added it")
460463 else {
461- let bP = x(ai(F))
462- if ((bP != ""))
464+ let bQ = x(ai(F))
465+ if ((bQ != ""))
463466 then throw("Hash already registered")
464467 else {
465- let bQ = C(D, N, F)
466- if (!(bQ))
468+ let bR = C(D, N, F)
469+ if (!(bR))
467470 then throw("Sign Certificate not found for this address.")
468- 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)]
471+ else [StringEntry(ai(F), N), StringEntry(al(F, N), P), IntegerEntry(O(N, P), bL), 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), bK), 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)]
469472 }
470473 }
471474 }
476479
477480
478481 @Callable(aI)
479-func updateArtwork (ah,aC,aD,aE,bJ,aF,an,ar,ao,as,ap) = if (!(p))
482+func updateArtwork (ah,aC,aD,aE,bK,aF,an,ar,ao,as,ap) = if (!(p))
480483 then throw(q)
481484 else {
482- let bR = toBase58String(aI.transactionId)
485+ let bS = toBase58String(aI.transactionId)
483486 let N = toBase58String(aI.caller.bytes)
484- let bS = ay(ap, as)
485- let aA = bS._1
486- let aB = bS._2
487- let bM = az(N, an, ao, aA, ar, aB, aC, aD, aE, aF)
488- if ((bM != ""))
487+ let bT = ay(ap, as)
488+ let aA = bT._1
489+ let aB = bT._2
490+ let bN = az(N, an, ao, aA, ar, aB, aC, aD, aE, aF)
491+ if ((bN != ""))
489492 then throw("Something went wrong!")
490493 else {
491- let bO = x(Q(N, ah))
492- if ((bO == ""))
494+ let bP = x(Q(N, ah))
495+ if ((bP == ""))
493496 then throw("Entry not found")
494497 else {
495- let bT = x(af(N, ah))
496- if ((bT == "ILLEGAL"))
498+ let bU = x(af(N, ah))
499+ if ((bU == "ILLEGAL"))
497500 then throw("Cannot update ILLEGAL artwork")
498501 else if (!(aN(N, ah)))
499- 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)]
502+ 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), bK)]
500503 else throw("Already minted")
501504 }
502505 }
505508
506509
507510 @Callable(aI)
508-func flagArtwork (P,bU,bT) = {
511+func flagArtwork (P,bV,bU) = {
509512 let N = toString(addressFromPublicKey(aI.callerPublicKey))
510513 let bi = toBase58String(aI.transactionId)
511514 if (containsElement([j, k, toString(this)], N))
512- then if ((bT == "CONSENT"))
513- then [StringEntry(af(bU, P), bT)]
514- else if ((bT == ""))
515- then [StringEntry(af(bU, P), bT)]
516- else if ((bT == "ILLEGAL"))
517- 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), "")]
518- else throw(("Unknow status " + bT))
515+ then if ((bU == "CONSENT"))
516+ then [StringEntry(af(bV, P), bU)]
517+ else if ((bU == ""))
518+ then [StringEntry(af(bV, P), bU)]
519+ else if ((bU == "ILLEGAL"))
520+ then [StringEntry(af(bV, P), bU), StringEntry(Q(bV, P), "ILLEGAL CONTENT"), StringEntry(R(bV, P), "ILLEGAL CONTENT"), StringEntry(S(bV, P), ""), StringEntry(U(bV, P), ""), StringEntry(aa(bV, P), "")]
521+ else throw(("Unknow status " + bU))
519522 else throw("You are not allowed")
520523 }
521524
522525
523526
524527 @Callable(aI)
525-func deleteArtwork (P,bU) = {
528+func deleteArtwork (P,bV) = {
526529 let N = toString(addressFromPublicKey(aI.callerPublicKey))
527530 let bi = toBase58String(aI.transactionId)
528531 let aO = if (containsElement([j, k, toString(this)], N))
529- then bU
532+ then bV
530533 else N
531- let bO = x(Q(aO, P))
532- if ((bO == ""))
534+ let bP = x(Q(aO, P))
535+ if ((bP == ""))
533536 then throw("No art matching for this address")
534537 else {
535538 let F = x(ag(aO, P))
540543 if ((D == ""))
541544 then throw("No SIGN ID matching")
542545 else {
543- 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))]
546+ let bW = [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(bV, P)), DeleteEntry(ad(bV, P)), DeleteEntry(ae(bV, P)), DeleteEntry(ai(F)), DeleteEntry(aj(aO, D)), DeleteEntry(al(F, aO))]
544547 if (!(aN(aO, P)))
545548 then if (!(p))
546549 then throw(q)
547- else bV
550+ else bW
548551 else if (containsElement([j, toString(this)], N))
549- then bV
552+ then bW
550553 else throw("Art already minted, you cannot delete it")
551554 }
552555 }
556559
557560
558561 @Callable(aI)
559-func sellArtwork (P,aV,bW,aL) = if (!(p))
562+func sellArtwork (P,aV,bX,aL) = if (!(p))
560563 then throw(q)
561564 else {
562565 let bi = toBase58String(aI.transactionId)
563566 let N = toBase58String(aI.caller.bytes)
564- let bX = lastBlock.timestamp
567+ let bY = lastBlock.timestamp
565568 let bk = x(Q(N, P))
566569 if ((bk == ""))
567570 then throw("This art doesn't match match your account")
584587 else {
585588 let bp = z(X(N, P))
586589 let br = z(V(N, P))
587- if ((bW > 10))
590+ if ((bX > 10))
588591 then throw("10 editions max per artwork")
589592 else if (if ((bp != 0))
590593 then (bp == br)
591594 else false)
592595 then throw("Max edition reached.")
593596 else if (if ((bp > 0))
594- then (br != bW)
597+ then (br != bX)
595598 else false)
596599 then throw("Cannot change maximum issuable anymore")
597600 else {
598601 let bC = if (if ((aV > 0))
599- then (bW > 0)
602+ then (bX > 0)
600603 else false)
601604 then true
602605 else false
603-[BooleanEntry(Y(N, P), bC), IntegerEntry(ad(N, P), aV), IntegerEntry(V(N, P), bW), StringEntry(ae(N, P), aL)]
606+[BooleanEntry(Y(N, P), bC), IntegerEntry(ad(N, P), aV), IntegerEntry(V(N, P), bX), StringEntry(ae(N, P), aL)]
604607 }
605608 }
606609 }
623626 else {
624627 let bi = toBase58String(aI.transactionId)
625628 let N = toBase58String(aI.caller.bytes)
626- let bK = lastBlock.timestamp
629+ let bL = lastBlock.timestamp
627630 if ((size(aI.payments) == 0))
628631 then throw("No payment attached")
629632 else {
636639 let br = z(V(ba, P))
637640 if ((bp >= br))
638641 then throw("Sold out, you cannot bid")
639- else [StringEntry((((((((("bid_" + P) + "_") + ba) + "_") + N) + "_") + bi) + "_OPEN"), ((((aL + "_") + toString(aK)) + "_") + toString(bK)))]
642+ else [StringEntry((((((((("bid_" + P) + "_") + ba) + "_") + N) + "_") + bi) + "_OPEN"), ((((aL + "_") + toString(aK)) + "_") + toString(bL)))]
640643 }
641644 }
642645
654657
655658
656659
657-@Callable(bY)
658-func deleteEntry (bZ) = {
659- let N = toString(addressFromPublicKey(bY.callerPublicKey))
660+@Callable(bZ)
661+func deleteEntry (ca) = {
662+ let N = toString(addressFromPublicKey(bZ.callerPublicKey))
660663 if ((N == j))
661- then [DeleteEntry(bZ)]
664+ then [DeleteEntry(ca)]
662665 else throw("no")
663666 }
664667
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])
325325 let bg = if ((be[0] == "WAVES"))
326326 then unit
327327 else toBytes(be[0])
328328 if ((0 >= bf))
329329 then throw("Wrong amount")
330330 else $Tuple2(bf, bg)
331331 }
332332 }
333333
334334
335335 func bh (aI,P,ba,bb,bc) = {
336336 let bi = toBase58String(aI.transactionId)
337337 let N = toBase58String(aI.caller.bytes)
338338 let bj = z("total_nft_issued")
339339 let D = x(W(ba, P))
340340 let bk = x(Q(ba, P))
341341 if ((bk == ""))
342342 then throw("Art doesn't exist")
343343 else {
344344 let bl = x(S(ba, P))
345345 let bm = x(U(ba, P))
346346 let bn = x(T(ba, P))
347347 let aA = x(aa(ba, P))
348348 let aB = x(Z(ba, P))
349349 let aD = take(x(R(ba, P)), 50)
350350 let bo = B(Y(ba, P))
351351 let bp = z(X(ba, P))
352352 let aS = z(ad(ba, P))
353353 let aR = x(ae(ba, P))
354354 let bq = x(ag(ba, P))
355355 let br = z(V(ba, P))
356356 if (if (if ((0 >= aS))
357357 then true
358358 else !(bo))
359359 then true
360360 else (0 >= br))
361361 then throw("Art not for sale")
362362 else {
363363 let bs = if (if (if ((N == ba))
364364 then (bc != "")
365365 else false)
366366 then (bb != "")
367367 else false)
368368 then aZ(P, ba, bb, bc)
369369 else aQ(aI, aR, aS)
370370 let aK = bs._1
371371 let aL = bs._2
372372 let bt = A(ba)
373373 let bu = if ((bt > height))
374374 then 0
375375 else if ((aR == toBase58String(g)))
376376 then l
377377 else m
378378 let bv = fraction(aK, bu, 100)
379379 let bw = (aK - bv)
380380 if ((bp == br))
381381 then throw("Art sold out")
382382 else {
383383 let bx = (bp + 1)
384384 let by = lastBlock.timestamp
385385 let bz = ((((((((((((((((((((((((((("Creator: " + ba) + ",
386386 ArtID: ") + P) + ",
387387 SignID: ") + D) + ",
388388 Artwork name: ") + bk) + ",
389389 Artwork description: ") + aD) + ",
390390 Issue: ") + toString(bx)) + "/") + toString(br)) + ",
391391 Max issuable: ") + toString(br)) + ",
392392 Source hash: ") + bq) + ",
393393 Display cid: ") + bl) + ",
394394 Export cid: ") + bm) + ",
395395 Export hash: ") + bn) + ",
396396 Licence cid: ") + aA) + ",
397397 Licence hash: ") + aB)
398398 let bA = Issue(("SA_" + toString((bj + 1))), bz, 1, 0, false)
399399 let bB = calculateAssetId(bA)
400400 let bC = if ((bx == br))
401401 then false
402402 else true
403403 let bD = if (if (if ((N == ba))
404404 then (bc != "")
405405 else false)
406406 then (bb != "")
407407 else false)
408408 then addressFromStringValue(bc)
409409 else aI.caller
410+ let bE = if ((aL == unit))
411+ then "WAVES"
412+ else toBase58String(value(aL))
410413 if (true)
411- then throw(((((((("asseiID= " + toBase58String(value(aL))) + " amountForCreator= ") + toString(bw)) + " amountForSign= ") + toString(bv)) + " NFT ID= ") + toBase58String(bB)))
414+ then throw(((((((("asseiID= " + bE) + " amountForCreator= ") + toString(bw)) + " amountForSign= ") + toString(bv)) + " NFT ID= ") + toBase58String(bB)))
412415 else {
413- 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)]
414- let bF = if ((aL == unit))
416+ let bF = [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)]
417+ let bG = if ((aL == unit))
415418 then "WAVES"
416419 else toBase58String(value(aL))
417- let bG = x((((((((("bid_" + P) + "_") + ba) + "_") + bc) + "_") + bb) + "_OPEN"))
418- let bH = DeleteEntry((((((((("bid_" + P) + "_") + ba) + "_") + N) + "_") + bi) + "_OPEN"))
419- let bI = StringEntry((((((((("bid_" + P) + "_") + ba) + "_") + N) + "_") + bi) + "_CLOSED"), bG)
420+ let bH = x((((((((("bid_" + P) + "_") + ba) + "_") + bc) + "_") + bb) + "_OPEN"))
421+ let bI = DeleteEntry((((((((("bid_" + P) + "_") + ba) + "_") + N) + "_") + bi) + "_OPEN"))
422+ let bJ = StringEntry((((((((("bid_" + P) + "_") + ba) + "_") + N) + "_") + bi) + "_CLOSED"), bH)
420423 if (if (if ((N == ba))
421424 then (bc != "")
422425 else false)
423426 then (bb != "")
424427 else false)
425- then [bI, bH] :: bE
426- else bE
428+ then [bJ, bI] :: bF
429+ else bF
427430 }
428431 }
429432 }
430433 }
431434 }
432435
433436
434437 @Callable(aI)
435-func addArtwork (F,D,aC,aD,aE,bJ,aF,an,ar,ao,as,ap) = if (!(p))
438+func addArtwork (F,D,aC,aD,aE,bK,aF,an,ar,ao,as,ap) = if (!(p))
436439 then throw(q)
437440 else {
438441 let P = toBase58String(aI.transactionId)
439- let bK = lastBlock.timestamp
442+ let bL = lastBlock.timestamp
440443 let N = toBase58String(aI.caller.bytes)
441444 if (!(K(F)))
442445 then throw("Hash should be 64 characters maximum")
443446 else {
444- let bL = ay(ap, as)
445- let aA = bL._1
446- let aB = bL._2
447- let bM = az(N, an, ao, aA, ar, aB, aC, aD, aE, aF)
448- if ((bM != ""))
447+ let bM = ay(ap, as)
448+ let aA = bM._1
449+ let aB = bM._2
450+ let bN = az(N, an, ao, aA, ar, aB, aC, aD, aE, aF)
451+ if ((bN != ""))
449452 then throw("Something went wrong!")
450453 else {
451- let bN = aH(aI)
452- let aK = bN._1
453- let aL = bN._2
454+ let bO = aH(aI)
455+ let aK = bO._1
456+ let aL = bO._2
454457 if (!(isDefined(aK)))
455458 then throw("Something went wrong")
456459 else {
457- let bO = x(al(F, N))
458- if ((bO != ""))
460+ let bP = x(al(F, N))
461+ if ((bP != ""))
459462 then throw("You already added it")
460463 else {
461- let bP = x(ai(F))
462- if ((bP != ""))
464+ let bQ = x(ai(F))
465+ if ((bQ != ""))
463466 then throw("Hash already registered")
464467 else {
465- let bQ = C(D, N, F)
466- if (!(bQ))
468+ let bR = C(D, N, F)
469+ if (!(bR))
467470 then throw("Sign Certificate not found for this address.")
468- 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)]
471+ else [StringEntry(ai(F), N), StringEntry(al(F, N), P), IntegerEntry(O(N, P), bL), 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), bK), 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)]
469472 }
470473 }
471474 }
472475 }
473476 }
474477 }
475478
476479
477480
478481 @Callable(aI)
479-func updateArtwork (ah,aC,aD,aE,bJ,aF,an,ar,ao,as,ap) = if (!(p))
482+func updateArtwork (ah,aC,aD,aE,bK,aF,an,ar,ao,as,ap) = if (!(p))
480483 then throw(q)
481484 else {
482- let bR = toBase58String(aI.transactionId)
485+ let bS = toBase58String(aI.transactionId)
483486 let N = toBase58String(aI.caller.bytes)
484- let bS = ay(ap, as)
485- let aA = bS._1
486- let aB = bS._2
487- let bM = az(N, an, ao, aA, ar, aB, aC, aD, aE, aF)
488- if ((bM != ""))
487+ let bT = ay(ap, as)
488+ let aA = bT._1
489+ let aB = bT._2
490+ let bN = az(N, an, ao, aA, ar, aB, aC, aD, aE, aF)
491+ if ((bN != ""))
489492 then throw("Something went wrong!")
490493 else {
491- let bO = x(Q(N, ah))
492- if ((bO == ""))
494+ let bP = x(Q(N, ah))
495+ if ((bP == ""))
493496 then throw("Entry not found")
494497 else {
495- let bT = x(af(N, ah))
496- if ((bT == "ILLEGAL"))
498+ let bU = x(af(N, ah))
499+ if ((bU == "ILLEGAL"))
497500 then throw("Cannot update ILLEGAL artwork")
498501 else if (!(aN(N, ah)))
499- 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)]
502+ 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), bK)]
500503 else throw("Already minted")
501504 }
502505 }
503506 }
504507
505508
506509
507510 @Callable(aI)
508-func flagArtwork (P,bU,bT) = {
511+func flagArtwork (P,bV,bU) = {
509512 let N = toString(addressFromPublicKey(aI.callerPublicKey))
510513 let bi = toBase58String(aI.transactionId)
511514 if (containsElement([j, k, toString(this)], N))
512- then if ((bT == "CONSENT"))
513- then [StringEntry(af(bU, P), bT)]
514- else if ((bT == ""))
515- then [StringEntry(af(bU, P), bT)]
516- else if ((bT == "ILLEGAL"))
517- 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), "")]
518- else throw(("Unknow status " + bT))
515+ then if ((bU == "CONSENT"))
516+ then [StringEntry(af(bV, P), bU)]
517+ else if ((bU == ""))
518+ then [StringEntry(af(bV, P), bU)]
519+ else if ((bU == "ILLEGAL"))
520+ then [StringEntry(af(bV, P), bU), StringEntry(Q(bV, P), "ILLEGAL CONTENT"), StringEntry(R(bV, P), "ILLEGAL CONTENT"), StringEntry(S(bV, P), ""), StringEntry(U(bV, P), ""), StringEntry(aa(bV, P), "")]
521+ else throw(("Unknow status " + bU))
519522 else throw("You are not allowed")
520523 }
521524
522525
523526
524527 @Callable(aI)
525-func deleteArtwork (P,bU) = {
528+func deleteArtwork (P,bV) = {
526529 let N = toString(addressFromPublicKey(aI.callerPublicKey))
527530 let bi = toBase58String(aI.transactionId)
528531 let aO = if (containsElement([j, k, toString(this)], N))
529- then bU
532+ then bV
530533 else N
531- let bO = x(Q(aO, P))
532- if ((bO == ""))
534+ let bP = x(Q(aO, P))
535+ if ((bP == ""))
533536 then throw("No art matching for this address")
534537 else {
535538 let F = x(ag(aO, P))
536539 if ((F == ""))
537540 then throw("No art hash matching for this address")
538541 else {
539542 let D = x(W(aO, P))
540543 if ((D == ""))
541544 then throw("No SIGN ID matching")
542545 else {
543- 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))]
546+ let bW = [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(bV, P)), DeleteEntry(ad(bV, P)), DeleteEntry(ae(bV, P)), DeleteEntry(ai(F)), DeleteEntry(aj(aO, D)), DeleteEntry(al(F, aO))]
544547 if (!(aN(aO, P)))
545548 then if (!(p))
546549 then throw(q)
547- else bV
550+ else bW
548551 else if (containsElement([j, toString(this)], N))
549- then bV
552+ then bW
550553 else throw("Art already minted, you cannot delete it")
551554 }
552555 }
553556 }
554557 }
555558
556559
557560
558561 @Callable(aI)
559-func sellArtwork (P,aV,bW,aL) = if (!(p))
562+func sellArtwork (P,aV,bX,aL) = if (!(p))
560563 then throw(q)
561564 else {
562565 let bi = toBase58String(aI.transactionId)
563566 let N = toBase58String(aI.caller.bytes)
564- let bX = lastBlock.timestamp
567+ let bY = lastBlock.timestamp
565568 let bk = x(Q(N, P))
566569 if ((bk == ""))
567570 then throw("This art doesn't match match your account")
568571 else {
569572 let bm = x(U(N, P))
570573 if ((size(split(bm, "/")[0]) != 59))
571574 then throw("You cannot sell art with no export file")
572575 else {
573576 let bn = x(T(N, P))
574577 if ((size(bn) != 64))
575578 then throw("You cannot sell art with no export hash")
576579 else if (!(aT(aL)))
577580 then throw("Something went wrong!")
578581 else if (!(aU(aL, aV)))
579582 then throw("Something went wrong!")
580583 else {
581584 let aG = aw(N)
582585 if ((aG != ""))
583586 then throw(aG)
584587 else {
585588 let bp = z(X(N, P))
586589 let br = z(V(N, P))
587- if ((bW > 10))
590+ if ((bX > 10))
588591 then throw("10 editions max per artwork")
589592 else if (if ((bp != 0))
590593 then (bp == br)
591594 else false)
592595 then throw("Max edition reached.")
593596 else if (if ((bp > 0))
594- then (br != bW)
597+ then (br != bX)
595598 else false)
596599 then throw("Cannot change maximum issuable anymore")
597600 else {
598601 let bC = if (if ((aV > 0))
599- then (bW > 0)
602+ then (bX > 0)
600603 else false)
601604 then true
602605 else false
603-[BooleanEntry(Y(N, P), bC), IntegerEntry(ad(N, P), aV), IntegerEntry(V(N, P), bW), StringEntry(ae(N, P), aL)]
606+[BooleanEntry(Y(N, P), bC), IntegerEntry(ad(N, P), aV), IntegerEntry(V(N, P), bX), StringEntry(ae(N, P), aL)]
604607 }
605608 }
606609 }
607610 }
608611 }
609612 }
610613
611614
612615
613616 @Callable(aI)
614617 func buyArtwork (P,ba) = if (!(p))
615618 then throw(q)
616619 else bh(aI, P, ba, "", "")
617620
618621
619622
620623 @Callable(aI)
621624 func setBid (P,ba) = if (!(p))
622625 then throw(q)
623626 else {
624627 let bi = toBase58String(aI.transactionId)
625628 let N = toBase58String(aI.caller.bytes)
626- let bK = lastBlock.timestamp
629+ let bL = lastBlock.timestamp
627630 if ((size(aI.payments) == 0))
628631 then throw("No payment attached")
629632 else {
630633 let aJ = value(aI.payments[0])
631634 let aK = value(aJ.amount)
632635 let aL = if (!(isDefined(aJ.assetId)))
633636 then "WAVES"
634637 else toBase58String(value(aJ.assetId))
635638 let bp = z(X(ba, P))
636639 let br = z(V(ba, P))
637640 if ((bp >= br))
638641 then throw("Sold out, you cannot bid")
639- else [StringEntry((((((((("bid_" + P) + "_") + ba) + "_") + N) + "_") + bi) + "_OPEN"), ((((aL + "_") + toString(aK)) + "_") + toString(bK)))]
642+ else [StringEntry((((((((("bid_" + P) + "_") + ba) + "_") + N) + "_") + bi) + "_OPEN"), ((((aL + "_") + toString(aK)) + "_") + toString(bL)))]
640643 }
641644 }
642645
643646
644647
645648 @Callable(aI)
646649 func acceptBid (P,ba,bb,bc) = if (!(p))
647650 then throw(q)
648651 else {
649652 let N = toBase58String(aI.caller.bytes)
650653 if ((N != ba))
651654 then throw("You cannot do this action")
652655 else bh(aI, P, ba, bb, bc)
653656 }
654657
655658
656659
657-@Callable(bY)
658-func deleteEntry (bZ) = {
659- let N = toString(addressFromPublicKey(bY.callerPublicKey))
660+@Callable(bZ)
661+func deleteEntry (ca) = {
662+ let N = toString(addressFromPublicKey(bZ.callerPublicKey))
660663 if ((N == j))
661- then [DeleteEntry(bZ)]
664+ then [DeleteEntry(ca)]
662665 else throw("no")
663666 }
664667
665668

github/deemru/w8io/873ac7e 
355.65 ms