tx · 66BS2CJbjN7yx5jrmG47D5edpQDt4Sz6CTELG54qWagi

3N2Tdcx5fzxJAKP5hMp9W35Cp1EFzfiJ1zG:  -0.01400000 Waves

2020.10.15 10:40 [1221384] smart account 3N2Tdcx5fzxJAKP5hMp9W35Cp1EFzfiJ1zG > SELF 0.00000000 Waves

{ "type": 13, "id": "66BS2CJbjN7yx5jrmG47D5edpQDt4Sz6CTELG54qWagi", "fee": 1400000, "feeAssetId": null, "timestamp": 1602747692115, "version": 2, "chainId": 84, "sender": "3N2Tdcx5fzxJAKP5hMp9W35Cp1EFzfiJ1zG", "senderPublicKey": "9SULUbW7L2jV2nv8v48Kdzox4cZ8jEfg778yJHJpgVwM", "proofs": [ "62HjqrmorP1yYFWe6b5QuAu8adrk4qFJ4s6gnBu2B6DufZx5X59mxtwcWtJiECkgbf6kgr8DM4Rr9Ubbbbcr8coc" ], "script": "base64:AAIEAAAAAAAAAFoIAhIGCgQICAgIEgMKAQgSBgoECAgICBIECgIICBIDCgEIEg4KDAgICAgICAEICAgICBINCgsICAgICAEICAgICBIECgIICBIGCgQIAQEIEgQKAggIEgMKAQgAAAA5AAAAAA9zdG9yYWdlVmVyaWZpZXIJAQAAAAV2YWx1ZQAAAAEJAAQmAAAAAQIAAAAjM04yczVSdGFIUEJlbkNzeDJFQ2NvRlJiWUh4M25vWmhYVzEAAAAADHNpZ25WZXJpZmllcgkBAAAABXZhbHVlAAAAAQkABCYAAAABAgAAACMzTkMyOGhTaXZybXNUVVhhWUQxeDZMMzYySjRacFVub1RkQgAAAAALZmVlUmVjZWl2ZXICAAAAIzNOMUU2dFhkZFJvVmFSZlE5ZFEzdmc1TGFXMmZzZDhIS3ViAAAAAAtzaWduQXNzZXRJZAEAAAAg6KVqvMp3QvJwYTI1Sk9Fg7m5HuWZZxfDcerZC6EEresAAAAAC3VzZG5Bc3NldElkAQAAACAP8hwSrOTEPJrsRhqrJaiw7LoHK0bMbYhy8LXikkkBtAAAAAAMd2F2ZXNBc3NldElkAQAAAAAAAAAAB3NpZ25DdXQAAAAAAAAAAAgAAAAAB3VzZG5DdXQAAAAAAAAAAAoAAAAACHdhdmVzQ3V0AAAAAAAAAAAKAAAAAAVhZG1pbgIAAAAjM01zRzZqUE5DclZKVXRZQjdYSkJ4Uzd1dFdzWEFmNG45VnAAAAAABmFkbWluMgIAAAAjM016bTRWTHdzTjl1WndiVE16UGozWHV4VjZrRWZBUjhVRE4AAAAAD1dISVRFTElTVEVET05MWQYAAAAAC3VzZXJBbGxvd2VkAgAAAAdBTExPV0VEAAAAAA51c2VyUmVnaXN0ZXJlZAIAAAAKUkVHSVNURVJFRAAAAAAMdXNlclZlcmlmaWVkAgAAAAhWRVJJRklFRAAAAAANdXNlclN1c3BlbmRlZAIAAAAJU1VTUEVOREVEAAAAAAt1c2VyUmVtb3ZlZAIAAAAHUkVNT1ZFRAAAAAAQdXNlclVucmVnaXN0ZXJlZAIAAAAMVU5SRUdJU1RFUkVEAAAAAAl1c2VyUmVzZXQCAAAABVJFU0VUAAAAAAZvblNhbGUCAAAAB09OX1NBTEUAAAAABHNvbGQCAAAABFNPTEQAAAAACGNh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CQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAphcnRfcHJpY2VfBQAAAAVhcnRJZAIAAAABXwUAAAAKY2FsbGVyQWRkcgEAAAAVa2V5QXJ0QXNzZXRJZEFjY2VwdGVkAAAAAgAAAApjYWxsZXJBZGRyAAAABWFydElkCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAABJhcnRfYXNzZXRBY2NlcHRlZF8FAAAABWFydElkAgAAAAFfBQAAAApjYWxsZXJBZGRyAQAAABRrZXlBcnRIYXNoQnlUeGlkQWRkcgAAAAIAAAAKY2FsbGVyQWRkcgAAAAR0eGlkCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAABNnZXRfaGFzaGJ5dHhpZGFkZHJfBQAAAAR0eGlkAgAAAAFfBQAAAApjYWxsZXJBZGRyAQAAABFrZXlBcnRPd25lckJ5SGFzaAAAAAEAAAAKc2hhMjU2SGFzaAkAASwAAAACAgAAABJnZXRfb3duZXJfYnlfaGFzaF8FAAAACnNoYTI1Nkhhc2gBAAAAE2tleUFydEFydGlkQnlTaWduaWQAAAACAAAACmNhbGxlckFkZHIAAAAGc2lnbklkCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAABJnZXRfYXJ0aWRieXNpZ25pZF8FAAAABnNpZ25JZAIAAAABXwUAAAAKY2FsbGVyQWRkcgEAAAAVa2V5QXJ0VHhpZEJ5SGFzaE93bmVyAAAAAgAAAApzaGEyNTZIYXNoAAAACmNhbGxlckFkZHIJAAEsAAAAAgIAAAAXZ2V0X3R4aWRfYnlfaGFzaF9vd25lcl8JAAJYAAAAAQkAC1QAAAABCQABmwAAAAEJAAEsAAAAAgUAAAAKc2hhMjU2SGFzaAUAAAAKY2FsbGVyQWRkcgAAAAsAAAABaQEAAAAMcmVnaXN0ZXJVc2VyAAAABAAAAARuYW1lAAAAC2Rlc2NyaXB0aW9uAAAABXRodW1iAAAABnNvY2lhbAQAAAAKY2FsbGVyQWRkcgkABCUAAAABCQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkEAAAAD3VzZXJDYW5SZWdpc3RlcgkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQkBAAAADWtleVVzZXJTdGF0dXMAAAABBQAAAApjYWxsZXJBZGRyBAAAAAJpZAkAAlgAAAABCAUAAAABaQAAAA10cmFuc2FjdGlvbklkBAAAAAl0aW1lc3RhbXAIBQAAAAlsYXN0QmxvY2sAAAAJdGltZXN0YW1wAwMJAAAAAAAAAgUAAAAPdXNlckNhblJlZ2lzdGVyBQAAAA11c2VyU3VzcGVuZGVkBgkAAAAAAAACBQAAAA91c2VyQ2FuUmVnaXN0ZXIFAAAAC3VzZXJSZW1vdmVkCQAAAgAAAAECAAAAS1lvdSBhcmUgbm93IGFsbG93ZWQgdG8gcmVnaXN0ZXIsIHlvdXIgYWNjb3VudCBoYXZlIGJlZW4gc3VzcGVuZGVkLyByZW1vdmVkLgMJAAAAAAAAAgUAAAAPdXNlckNhblJlZ2lzdGVyBQAAAA51c2VyUmVnaXN0ZXJlZAkAAAIAAAABAgAAAD1Zb3UgYXJlIGFscmVhZHkgcmVnaXN0ZXJlZCwgcGxlYXNlIHVzZSB1cGRhdGUgbWV0aG9kIGluc3RlYWQuAwMJAAAAAAAAAgUAAAAPdXNlckNhblJlZ2lzdGVyAgAAAAAFAAAAD1dISVRFTElTVEVET05MWQcJAAACAAAAAQIAAABNWW91IGFyZSBub3cgYWxsb3dlZCB0byByZWdpc3RlciB5ZXQsIHBsZWFzZSBjb250YWN0IHVzIGZpcnN0IHRvIGdldCBhcHByb3ZlZC4DAwkAAAAAAAACBQAAAARuYW1lAgAAAAAGCQAAAAAAAAIFAAAAC2Rlc2NyaXB0aW9uAgAAAAAJAAACAAAAAQIAAAAkTmFtZSBhbmQgZGVzY3JpcHRpb24gY2Fubm90IGJlIGVtcHR5AwkAAGYAAAACCQABMQAAAAEFAAAAC2Rlc2NyaXB0aW9uAAAAAAAAAAJYCQAAAgAAAAECAAAAKjYwMCBDaGFyYWN0ZXJzIG1heGltdW0gZm9yIHRoZSBkZXNjcmlwdGlvbgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAAC2tleVVzZXJEYXRlAAAAAQUAAAAKY2FsbGVyQWRkcgUAAAAJdGltZXN0YW1wCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAAAtrZXlVc2VyQWRkcgAAAAEFAAAACmNhbGxlckFkZHIJAAEsAAAAAgkAASwAAAACBQAAAAJpZAIAAAABXwkAAaQAAAABCAUAAAAJbGFzdEJsb2NrAAAACXRpbWVzdGFtcAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAALa2V5VXNlck5hbWUAAAABBQAAAApjYWxsZXJBZGRyBQAAAARuYW1lCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAAAtrZXlVc2VyRGVzYwAAAAEFAAAACmNhbGxlckFkZHIFAAAAC2Rlc2NyaXB0aW9uCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAAA1rZXlVc2VyU29jaWFsAAAAAQUAAAAKY2FsbGVyQWRkcgUAAAAGc29jaWFsCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAAAxrZXlVc2VyVGh1bWIAAAABBQAAAApjYWxsZXJBZGRyBQAAAAV0aHVtYgkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAANa2V5VXNlclN0YXR1cwAAAAEFAAAACmNhbGxlckFkZHIFAAAADnVzZXJSZWdpc3RlcmVkCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAICAAAADmxhc3RfaW52b2tlX2lkBQAAAAJpZAUAAAADbmlsAAAAAWkBAAAAC2RlbGV0ZUVudHJ5AAAAAQAAAAVlbnRyeQQAAAAKY2FsbGVyQWRkcgkABCUAAAABCQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkDCQAAAAAAAAIFAAAACmNhbGxlckFkZHIFAAAABWFkbWluCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEFAAAABWVudHJ5BQAAAANuaWwJAAACAAAAAQIAAAACbm8AAAABaQEAAAAKdXBkYXRlVXNlcgAAAAQAAAAEbmFtZQAAAAtkZXNjcmlwdGlvbgAAAAV0aHVtYgAAAAZzb2NpYWwEAAAACmNhbGxlckFkZHIJAAQlAAAAAQkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5BAAAAA91c2VyQ2FuUmVnaXN0ZXIJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEJAQAAAA1rZXlVc2VyU3RhdHVzAAAAAQUAAAAKY2FsbGVyQWRkcgMDCQAAAAAAAAIFAAAAD3VzZXJDYW5SZWdpc3RlcgUAAAANdXNlclN1c3BlbmRlZAYJAAAAAAAAAgUAAAAPdXNlckNhblJlZ2lzdGVyBQAAAAt1c2VyUmVtb3ZlZAkAAAIAAAABAgAAAEtZb3UgYXJlIG5vdyBhbGxvd2VkIHRvIHJlZ2lzdGVyLCB5b3VyIGFjY291bnQgaGF2ZSBiZWVuIHN1c3BlbmRlZC8gcmVtb3ZlZC4DAwkAAAAAAAACBQAAAA91c2VyQ2FuUmVnaXN0ZXICAAAAAAYJAAAAAAAAAgUAAAAPdXNlckNhblJlZ2lzdGVyBQAAAAt1c2VyQWxsb3dlZAkAAAIAAAABAgAAACdQbGVhc2UgcmVnaXN0ZXIgZmlyc3Qgd2l0aCByZWdpc3RlclVzZXIEAAAAAmlkCQACWAAAAAEIBQAAAAFpAAAADXRyYW5zYWN0aW9uSWQEAAAACXRpbWVzdGFtcAgFAAAACWxhc3RCbG9jawAAAAl0aW1lc3RhbXADAwkAAAAAAAACBQAAAARuYW1lAgAAAAAGCQAAAAAAAAIFAAAAC2Rlc2NyaXB0aW9uAgAAAAAJAAACAAAAAQIAAAAkTmFtZSBhbmQgZGVzY3JpcHRpb24gY2Fubm90IGJlIGVtcHR5AwkAAGYAAAACCQABMQAAAAEFAAAAC2Rlc2NyaXB0aW9uAAAAAAAAAAJYCQAAAgAAAAECAAAAKjYwMCBDaGFyYWN0ZXJzIG1heGltdW0gZm9yIHRoZSBkZXNjcmlwdGlvbgkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAALa2V5VXNlck5hbWUAAAABBQAAAApjYWxsZXJBZGRyBQAAAARuYW1lCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAAAtrZXlVc2VyRGVzYwAAAAEFAAAACmNhbGxlckFkZHIFAAAAC2Rlc2NyaXB0aW9uCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAAA1rZXlVc2VyU29jaWFsAAAAAQUAAAAKY2FsbGVyQWRkcgUAAAAGc29jaWFsCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAAAxrZXlVc2VyVGh1bWIAAAABBQAAAApjYWxsZXJBZGRyBQAAAAV0aHVtYgkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACAgAAAA5sYXN0X2ludm9rZV9pZAUAAAACaWQFAAAAA25pbAAAAAFpAQAAABBjaGFuZ2VVc2VyU3RhdHVzAAAAAgAAAAdhZGRyZXNzAAAABnN0YXR1cwQAAAAKY2FsbGVyQWRkcgkABCUAAAABCQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkEAAAAAmlkCQACWAAAAAEIBQAAAAFpAAAADXRyYW5zYWN0aW9uSWQEAAAADWN1cnJlbnRTdGF0dXMJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEJAQAAAA1rZXlVc2VyU3RhdHVzAAAAAQUAAAAHYWRkcmVzcwQAAAALc3RhdHVzVG9TZXQDCQAAAAAAAAIFAAAABnN0YXR1cwUAAAAMdXNlclZlcmlmaWVkBQAAAAx1c2VyVmVyaWZpZWQDCQAAAAAAAAIFAAAABnN0YXR1cwUAAAAOdXNlclJlZ2lzdGVyZWQFAAAADnVzZXJSZWdpc3RlcmVkAwkAAAAAAAACBQAAAAZzdGF0dXMFAAAADXVzZXJTdXNwZW5kZWQFAAAADXVzZXJTdXNwZW5kZWQDCQAAAAAAAAIFAAAABnN0YXR1cwUAAAALdXNlclJlbW92ZWQFAAAAC3VzZXJSZW1vdmVkAwkAAAAAAAACBQAAAAZzdGF0dXMFAAAAC3VzZXJBbGxvd2VkBQAAAAt1c2VyQWxsb3dlZAMDCQAAAAAAAAIFAAAABnN0YXR1cwUAAAAJdXNlclJlc2V0CQAAAAAAAAIFAAAADWN1cnJlbnRTdGF0dXMFAAAAC3VzZXJBbGxvd2VkBwIAAAAACQAAAgAAAAECAAAADlVua25vd24gc3RhdHVzAwMJAAAAAAAAAgUAAAANY3VycmVudFN0YXR1cwUAAAALdXNlckFsbG93ZWQJAAAAAAAAAgUAAAAGc3RhdHVzBQAAAAt1c2VyQWxsb3dlZAcJAAACAAAAAQIAAAAcVGhpcyB1c2VyIGlzIGFscmVhZHkgYWxsb3dlZAMDCQAAAAAAAAIFAAAADWN1cnJlbnRTdGF0dXMFAAAADnVzZXJSZWdpc3RlcmVkCQAAAAAAAAIFAAAABnN0YXR1cwUAAAALdXNlckFsbG93ZWQHCQAAAgAAAAECAAAAK1RoaXMgdXNlciBpcyBhbHJlYWR5IGFsbG93ZWQgYW5kIHJlZ2lzdGVyZWQDAwkAAAAAAAACBQAAAA1jdXJyZW50U3RhdHVzBQAAAAx1c2VyVmVyaWZpZWQJAAAAAAAAAgUAAAAGc3RhdHVzBQAAAAt1c2VyQWxsb3dlZAcJAAACAAAAAQIAAAApVGhpcyB1c2VyIGlzIGFscmVhZHkgYWxsb3dlZCBhbmQgdmVyaWZpZWQDAwkAAAAAAAACBQAAAApjYWxsZXJBZGRyBQAAAAVhZG1pbgYJAAAAAAAAAgUAAAAKY2FsbGVyQWRkcgUAAAAGYWRtaW4yCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAAA1rZXlVc2VyU3RhdHVzAAAAAQUAAAAHYWRkcmVzcwUAAAALc3RhdHVzVG9TZXQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgIAAAAObGFzdF9pbnZva2VfaWQFAAAAAmlkBQAAAANuaWwJAAACAAAAAQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAqWW91IGFyZSBub3QgYWxsb3dlZCB0byBjaGFuZ2UgdXNlciBzdGF0dXMgBQAAAApjYWxsZXJBZGRyAgAAAAMgLyAFAAAABWFkbWluAAAAAWkBAAAACmNyZWRpdFVzZXIAAAABAAAAB2FkZHJlc3MEAAAACmNhbGxlckFkZHIJAAQlAAAAAQkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5BAAAAAJpZAkAAlgAAAABCAUAAAABaQAAAA10cmFuc2FjdGlvbklkAwMJAAAAAAAAAgUAAAAKY2FsbGVyQWRkcgUAAAAFYWRtaW4GCQAAAAAAAAIFAAAACmNhbGxlckFkZHIFAAAABmFkbWluMgkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAHQWRkcmVzcwAAAAEJAAJZAAAAAQUAAAAHYWRkcmVzcwAAAAAi7LJcAAUAAAALc2lnbkFzc2V0SWQFAAAAA25pbAkAAAIAAAABAgAAAB5Zb3UgYXJlIG5vdCBhbGxvd2VkIHRvIGRvIHRoYXQAAAAGaW52b2tlAQAAAAphZGRBcnR3b3JrAAAADAAAAApzaGEyNTZIYXNoAAAABnNpZ25JRAAAAARuYW1lAAAAC2Rlc2NyaXB0aW9uAAAABHRhZ3MAAAAEdHlwZQAAAAdtYXhtaW50AAAACmNpZERpc3BsYXkAAAAMc2hhMjU2RXhwb3J0AAAACWNpZEV4cG9ydAAAAA1zaGEyNTZMaWNlbmNlAAAACmNpZExpY2VuY2UEAAAABWFydElkCQACWAAAAAEIBQAAAAZpbnZva2UAAAANdHJhbnNhY3Rpb25JZAQAAAANY2FsbGVyQWRkcmVzcwkAAlgAAAABCAgFAAAABmludm9rZQAAAAZjYWxsZXIAAAAFYnl0ZXMDCQEAAAABIQAAAAEJAQAAAAt2YWxpZGF0ZUNJRAAAAAEFAAAACmNpZERpc3BsYXkJAAACAAAAAQIAAAAYV3JvbmcgRGlzcGxheSBDSUQgbGVuZ3RoAwkBAAAAASEAAAABCQEAAAALdmFsaWRhdGVDSUQAAAABBQAAAAljaWRFeHBvcnQJAAACAAAAAQIAAAAXV3JvbmcgRXhwb3J0IENJRCBsZW5ndGgDCQEAAAABIQAAAAEJAQAAAAt2YWxpZGF0ZUNJRAAAAAEFAAAACmNpZExpY2VuY2UJAAACAAAAAQIAAAAYV3JvbmcgTGljZW5jZSBDSUQgbGVuZ3RoAwkBAAAAASEAAAABCQEAAAAMdmFsaWRhdGVIYXNoAAAAAQUAAAAKc2hhMjU2SGFzaAkAAAIAAAABAgAAACtTb3VyY2UgSGFzaCBzaG91bGQgYmUgNjQgY2hhcmFjdGVycyBtYXhpbXVtAwkBAAAAASEAAAABCQEAAAAMdmFsaWRhdGVIYXNoAAAAAQUAAAAMc2hhMjU2RXhwb3J0CQAAAgAAAAECAAAAK0V4cG9ydCBIYXNoIHNob3VsZCBiZSA2NCBjaGFyYWN0ZXJzIG1heGltdW0DCQEAAAABIQAAAAEJAQAAAAx2YWxpZGF0ZUhhc2gAAAABBQAAAA1zaGEyNTZMaWNlbmNlCQAAAgAAAAECAAAALExpY2VuY2UgSGFzaCBzaG91bGQgYmUgNjQgY2hhcmFjdGVycyBtYXhpbXVtAwkAAAAAAAACCQABkAAAAAEIBQAAAAZpbnZva2UAAAAIcGF5bWVudHMAAAAAAAAAAAAJAAACAAAAAQIAAAATTm8gcGF5bWVudCBhdHRhY2hlZAQAAAAHcGF5bWVudAkBAAAABXZhbHVlAAAAAQkAAZEAAAACCAUAAAAGaW52b2tlAAAACHBheW1lbnRzAAAAAAAAAAAABAAAAAZhbW91bnQJAQAAAAV2YWx1ZQAAAAEIBQAAAAdwYXltZW50AAAABmFtb3VudAQAAAAHYXNzZXRJZAMDCQEAAAAJaXNEZWZpbmVkAAAAAQgFAAAAB3BheW1lbnQAAAAHYXNzZXRJZAkAAAAAAAACCAUAAAAHcGF5bWVudAAAAAdhc3NldElkBQAAAAtzaWduQXNzZXRJZAcIBQAAAAdwYXltZW50AAAAB2Fzc2V0SWQJAAACAAAAAQIAAAAmT25seSBTSUdOIHRva2VuIGFjY2VwdGVkIGF0IHRoZSBtb21lbnQEAAAAGWN1cnJlbnRDZXJ0aWZpY2F0aW9uUHJpY2UEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAPc3RvcmFnZVZlcmlmaWVyCQABLAAAAAICAAAAEmNlcnRpZmljYXRpb25fZmVlXwkAAlgAAAABBQAAAAtzaWduQXNzZXRJZAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAVwcmljZQUAAAAHJG1hdGNoMAUAAAAFcHJpY2UJAAACAAAAAQIAAAAZUHJpY2UgdW5kZWZpbmVkIGluIG9yYWNsZQMJAQAAAAIhPQAAAAIFAAAABmFtb3VudAUAAAAZY3VycmVudENlcnRpZmljYXRpb25QcmljZQkAAAIAAAABCQABLAAAAAICAAAAGVBheW1lbnQgYW1vdW50IHNob3VsZCBiZSAJAAGkAAAAAQUAAAAZY3VycmVudENlcnRpZmljYXRpb25QcmljZQQAAAAKZW50cnlFeGlzdAkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQkBAAAAFWtleUFydFR4aWRCeUhhc2hPd25lcgAAAAIFAAAACnNoYTI1Nkhhc2gFAAAADWNhbGxlckFkZHJlc3MDCQEAAAACIT0AAAACBQAAAAplbnRyeUV4aXN0AgAAAAAJAAACAAAAAQIAAAAqWW91IGFscmVhZHkgYWRkZWQgdGhpcyBhcnR3b3JrIG9uIFNpZ24gQXJ0BAAAAAloYXNoRXhpc3QJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEJAQAAABFrZXlBcnRPd25lckJ5SGFzaAAAAAEFAAAACnNoYTI1Nkhhc2gDCQEAAAACIT0AAAACBQAAAAloYXNoRXhpc3QCAAAAAAkAAAIAAAABAgAAADNUaGlzIGFydHdvcmsgaGFzaCBpcyBhbHJlYWR5IHJlZ2lzdGVyZWQgb24gU2lnbiBBcnQEAAAAD2lzU2lnbkNlcnRpZmllZAkBAAAAFGNoZWNrU2lnbkNlcnRpZmljYXRlAAAAAwUAAAAGc2lnbklEBQAAAA1jYWxsZXJBZGRyZXNzBQAAAApzaGEyNTZIYXNoAwkBAAAAASEAAAABBQAAAA9pc1NpZ25DZXJ0aWZpZWQJAAACAAAAAQIAAABLU2lnbiBDZXJ0aWZpY2F0ZSBub3QgZm91bmQgb24gU2lnbi13ZWIuYXBwIHNtYXJ0IGNvbnRyYWN0IGZvciB0aGlzIGFkZHJlc3MuAwkAAAAAAAACCQABMQAAAAEFAAAACmNpZERpc3BsYXkAAAAAAAAAAAAJAAACAAAAAQIAAAAbRGlzcGxheSBDSUQgY2Fubm90IGJlIGVtcHR5AwkAAAAAAAACCQABMQAAAAEFAAAABG5hbWUAAAAAAAAAAAAJAAACAAAAAQIAAAAVVGl0bGUgY2Fubm90IGJlIGVtcHR5AwkAAGYAAAACCQABMQAAAAEFAAAABG5hbWUAAAAAAAAAAGQJAAACAAAAAQIAAAAjMTAwIENoYXJhY3RlcnMgbWF4aW11bSBmb3IgdGhlIG5hbWUDCQAAZgAAAAIJAAExAAAAAQUAAAALZGVzY3JpcHRpb24AAAAAAAAAA+gJAAACAAAAAQIAAAArMTAwMCBDaGFyYWN0ZXJzIG1heGltdW0gZm9yIHRoZSBkZXNjcmlwdGlvbgMJAAAAAAAAAgkAATEAAAABBQAAAAtkZXNjcmlwdGlvbgAAAAAAAAAAAAkAAAIAAAABAgAAABtEZXNjcmlwdGlvbiBjYW5ub3QgYmUgZW1wdHkEAAAACHRhZ3NMaXN0CQAEtQAAAAIFAAAABHRhZ3MCAAAAASwDCQAAZgAAAAIJAAGQAAAAAQUAAAAIdGFnc0xpc3QAAAAAAAAAAAUJAAACAAAAAQIAAAA4VGFncyBzaG91bGQgYmUgbWF4aW11bSA1IHNpbmdsZSB3b3JkIHNlcGFyYXRlZCBieSBzcGFjZS4EAAAAEHVzZXJJc1JlZ2lzdGVyZWQEAAAAByRtYXRjaDAJAAQdAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAAAx1c2VyX3N0YXR1c18FAAAADWNhbGxlckFkZHJlc3MDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABcwUAAAAHJG1hdGNoMAUAAAABcwUAAAAQdXNlclVucmVnaXN0ZXJlZAQAAAAJdGltZXN0YW1wCAUAAAAJbGFzdEJsb2NrAAAACXRpbWVzdGFtcAMDCQEAAAAJaXNEZWZpbmVkAAAAAQUAAAAQdXNlcklzUmVnaXN0ZXJlZAkAAAAAAAACBQAAABB1c2VySXNSZWdpc3RlcmVkBQAAABB1c2VyVW5yZWdpc3RlcmVkBwkAAAIAAAABAgAAADhQbGVhc2UgcmVnaXN0ZXIgdGhpcyBhY2NvdW50IGZpcnN0IHdpdGggIlVzZXIgaW5mb3MiIHRhYgMJAAAAAAAAAgUAAAAQdXNlcklzUmVnaXN0ZXJlZAUAAAANdXNlclN1c3BlbmRlZAkAAAIAAAABAgAAABlZb3VyIGFjY291bnQgaXMgc3VzcGVuZGVkAwkAAAAAAAACBQAAABB1c2VySXNSZWdpc3RlcmVkBQAAAAt1c2VyUmVtb3ZlZAkAAAIAAAABAgAAAB5Zb3VyIGFjY291bnQgaGF2ZSBiZWVuIHJlbW92ZWQDCQAAZgAAAAIFAAAAB21heG1pbnQAAAAAAAAAAAoJAAACAAAAAQIAAAAfTWF4aW11bSAxMCBlZGl0aW9ucyBwZXIgYXJ0d29yawMJAQAAAAIhPQAAAAIJAAExAAAAAQUAAAAKc2hhMjU2SGFzaAAAAAAAAAAAQAkAAAIAAAABAgAAADFIYXNoIHNob3VsZCBiZSBzaGEyNTYgc3RyaW5nIGNvbXBvc2VkIG9mIDY0IGNoYXIuCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABFrZXlBcnRPd25lckJ5SGFzaAAAAAEFAAAACnNoYTI1Nkhhc2gFAAAADWNhbGxlckFkZHJlc3MJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAFWtleUFydFR4aWRCeUhhc2hPd25lcgAAAAIFAAAACnNoYTI1Nkhhc2gFAAAADWNhbGxlckFkZHJlc3MFAAAABWFydElkCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAKa2V5QXJ0RGF0ZQAAAAIFAAAADWNhbGxlckFkZHJlc3MFAAAABWFydElkBQAAAAl0aW1lc3RhbXAJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAACmtleUFydE5hbWUAAAACBQAAAA1jYWxsZXJBZGRyZXNzBQAAAAVhcnRJZAUAAAAEbmFtZQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAKa2V5QXJ0RGVzYwAAAAIFAAAADWNhbGxlckFkZHJlc3MFAAAABWFydElkBQAAAAtkZXNjcmlwdGlvbgkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAQa2V5QXJ0RGlzcGxheUNpZAAAAAIFAAAADWNhbGxlckFkZHJlc3MFAAAABWFydElkBQAAAApjaWREaXNwbGF5CQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAAA9rZXlBcnRFeHBvcnRDaWQAAAACBQAAAA1jYWxsZXJBZGRyZXNzBQAAAAVhcnRJZAUAAAAJY2lkRXhwb3J0CQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABBrZXlBcnRFeHBvcnRIYXNoAAAAAgUAAAANY2FsbGVyQWRkcmVzcwUAAAAFYXJ0SWQFAAAADHNoYTI1NkV4cG9ydAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAARa2V5QXJ0TGljZW5jZUhhc2gAAAACBQAAAA1jYWxsZXJBZGRyZXNzBQAAAAVhcnRJZAUAAAANc2hhMjU2TGljZW5jZQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAQa2V5QXJ0TGljZW5jZUNpZAAAAAIFAAAADWNhbGxlckFkZHJlc3MFAAAABWFydElkBQAAAApjaWRMaWNlbmNlCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAAAprZXlBcnRUeXBlAAAAAgUAAAANY2FsbGVyQWRkcmVzcwUAAAAFYXJ0SWQFAAAABHR5cGUJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAACmtleUFydFRhZ3MAAAACBQAAAA1jYWxsZXJBZGRyZXNzBQAAAAVhcnRJZAUAAAAEdGFncwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAADWtleUFydE1heE1pbnQAAAACBQAAAA1jYWxsZXJBZGRyZXNzBQAAAAVhcnRJZAUAAAAHbWF4bWludAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAMa2V5QXJ0U2lnbklEAAAAAgUAAAANY2FsbGVyQWRkcmVzcwUAAAAFYXJ0SWQFAAAABnNpZ25JRAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAADGtleUFydElzc3VlZAAAAAIFAAAADWNhbGxlckFkZHJlc3MFAAAABWFydElkAAAAAAAAAAAACQAETAAAAAIJAQAAAAxCb29sZWFuRW50cnkAAAACCQEAAAAMa2V5QXJ0T25TYWxlAAAAAgUAAAANY2FsbGVyQWRkcmVzcwUAAAAFYXJ0SWQHCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABNrZXlBcnRBcnRpZEJ5U2lnbmlkAAAAAgUAAAANY2FsbGVyQWRkcmVzcwUAAAAGc2lnbklEBQAAAAVhcnRJZAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACAgAAAA5sYXN0X2ludm9rZV9pZAUAAAAFYXJ0SWQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAFGtleUFydEhhc2hCeVR4aWRBZGRyAAAAAgUAAAANY2FsbGVyQWRkcmVzcwUAAAAFYXJ0SWQFAAAACnNoYTI1Nkhhc2gJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEFAAAAC2ZlZVJlY2VpdmVyBQAAAAZhbW91bnQFAAAAB2Fzc2V0SWQFAAAAA25pbAAAAAZpbnZva2UBAAAADXVwZGF0ZUFydHdvcmsAAAALAAAABHR4aWQAAAAEbmFtZQAAAAtkZXNjcmlwdGlvbgAAAAR0YWdzAAAABHR5cGUAAAAHbWF4bWludAAAAApjaWREaXNwbGF5AAAADHNoYTI1NkV4cG9ydAAAAAljaWRFeHBvcnQAAAANc2hhMjU2TGljZW5jZQAAAApjaWRMaWNlbmNlBAAAAAh1cGRhdGVJZAkAAlgAAAABCAUAAAAGaW52b2tlAAAADXRyYW5zYWN0aW9uSWQEAAAADWNhbGxlckFkZHJlc3MJAAJYAAAAAQgIBQAAAAZpbnZva2UAAAAGY2FsbGVyAAAABWJ5dGVzAwkBAAAAASEAAAABCQEAAAALdmFsaWRhdGVDSUQAAAABBQAAAApjaWREaXNwbGF5CQAAAgAAAAECAAAAGFdyb25nIERpc3BsYXkgQ0lEIGxlbmd0aAMJAQAAAAEhAAAAAQkBAAAAC3ZhbGlkYXRlQ0lEAAAAAQUAAAAJY2lkRXhwb3J0CQAAAgAAAAECAAAAF1dyb25nIEV4cG9ydCBDSUQgbGVuZ3RoAwkBAAAAASEAAAABCQEAAAALdmFsaWRhdGVDSUQAAAABBQAAAApjaWRMaWNlbmNlCQAAAgAAAAECAAAAGFdyb25nIExpY2VuY2UgQ0lEIGxlbmd0aAMJAQAAAAEhAAAAAQkBAAAADHZhbGlkYXRlSGFzaAAAAAEFAAAADHNoYTI1NkV4cG9ydAkAAAIAAAABAgAAACtFeHBvcnQgSGFzaCBzaG91bGQgYmUgNjQgY2hhcmFjdGVycyBtYXhpbXVtAwkBAAAAASEAAAABCQEAAAAMdmFsaWRhdGVIYXNoAAAAAQUAAAANc2hhMjU2TGljZW5jZQkAAAIAAAABAgAAACxMaWNlbmNlIEhhc2ggc2hvdWxkIGJlIDY0IGNoYXJhY3RlcnMgbWF4aW11bQQAAAAKZW50cnlFeGlzdAkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQkBAAAACmtleUFydE5hbWUAAAACBQAAAA1jYWxsZXJBZGRyZXNzBQAAAAR0eGlkAwkAAAAAAAACBQAAAAplbnRyeUV4aXN0AgAAAAAJAAACAAAAAQIAAAAxVGhpcyBlbnRyeSBkb2Vzbid0IGV4aXN0IG9yIHlvdSBhcmUgbm90IHRoZSBvd25lcgMJAAAAAAAAAgkAATEAAAABBQAAAARuYW1lAAAAAAAAAAAACQAAAgAAAAECAAAAFVRpdGxlIGNhbm5vdCBiZSBlbXB0eQMJAABmAAAAAgkAATEAAAABBQAAAARuYW1lAAAAAAAAAABkCQAAAgAAAAECAAAAIzEwMCBDaGFyYWN0ZXJzIG1heGltdW0gZm9yIHRoZSBuYW1lAwkAAGYAAAACCQABMQAAAAEFAAAAC2Rlc2NyaXB0aW9uAAAAAAAAAAPoCQAAAgAAAAECAAAAKzEwMDAgQ2hhcmFjdGVycyBtYXhpbXVtIGZvciB0aGUgZGVzY3JpcHRpb24DCQAAAAAAAAIJAAExAAAAAQUAAAALZGVzY3JpcHRpb24AAAAAAAAAAAAJAAACAAAAAQIAAAAbRGVzY3JpcHRpb24gY2Fubm90IGJlIGVtcHR5BAAAAA1hcnR3b3JrTWludGVkBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAQAAAAxrZXlBcnRJc3N1ZWQAAAACBQAAAA1jYWxsZXJBZGRyZXNzBQAAAAR0eGlkAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWIFAAAAByRtYXRjaDADCQAAAAAAAAIFAAAAAWIAAAAAAAAAAAAHBgcEAAAACHRhZ3NMaXN0CQAEtQAAAAIFAAAABHRhZ3MCAAAAASwDCQAAZgAAAAIJAAGQAAAAAQUAAAAIdGFnc0xpc3QAAAAAAAAAAAUJAAACAAAAAQIAAAA4VGFncyBzaG91bGQgYmUgbWF4aW11bSA1IHNpbmdsZSB3b3JkIHNlcGFyYXRlZCBieSBzcGFjZS4EAAAAEHVzZXJJc1JlZ2lzdGVyZWQEAAAAByRtYXRjaDAJAAQdAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAAAx1c2VyX3N0YXR1c18FAAAADWNhbGxlckFkZHJlc3MDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABcwUAAAAHJG1hdGNoMAUAAAABcwUAAAAQdXNlclVucmVnaXN0ZXJlZAMDCQEAAAAJaXNEZWZpbmVkAAAAAQUAAAAQdXNlcklzUmVnaXN0ZXJlZAkAAAAAAAACBQAAABB1c2VySXNSZWdpc3RlcmVkBQAAABB1c2VyVW5yZWdpc3RlcmVkBwkAAAIAAAABAgAAADhQbGVhc2UgcmVnaXN0ZXIgdGhpcyBhY2NvdW50IGZpcnN0IHdpdGggIlVzZXIgaW5mb3MiIHRhYgMJAAAAAAAAAgUAAAAQdXNlcklzUmVnaXN0ZXJlZAUAAAANdXNlclN1c3BlbmRlZAkAAAIAAAABAgAAABlZb3VyIGFjY291bnQgaXMgc3VzcGVuZGVkAwkAAAAAAAACBQAAABB1c2VySXNSZWdpc3RlcmVkBQAAAAt1c2VyUmVtb3ZlZAkAAAIAAAABAgAAAB5Zb3VyIGFjY291bnQgaGF2ZSBiZWVuIHJlbW92ZWQDCQAAZgAAAAIFAAAAB21heG1pbnQAAAAAAAAAAAoJAAACAAAAAQIAAAAfTWF4aW11bSAxMCBlZGl0aW9ucyBwZXIgYXJ0d29yawMJAQAAAAEhAAAAAQUAAAANYXJ0d29ya01pbnRlZAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAKa2V5QXJ0TmFtZQAAAAIFAAAADWNhbGxlckFkZHJlc3MFAAAABHR4aWQFAAAABG5hbWUJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAACmtleUFydERlc2MAAAACBQAAAA1jYWxsZXJBZGRyZXNzBQAAAAR0eGlkBQAAAAtkZXNjcmlwdGlvbgkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAQa2V5QXJ0RGlzcGxheUNpZAAAAAIFAAAADWNhbGxlckFkZHJlc3MFAAAABHR4aWQFAAAACmNpZERpc3BsYXkJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAD2tleUFydEV4cG9ydENpZAAAAAIFAAAADWNhbGxlckFkZHJlc3MFAAAABHR4aWQFAAAACWNpZEV4cG9ydAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAQa2V5QXJ0RXhwb3J0SGFzaAAAAAIFAAAADWNhbGxlckFkZHJlc3MFAAAABHR4aWQFAAAADHNoYTI1NkV4cG9ydAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAQa2V5QXJ0TGljZW5jZUNpZAAAAAIFAAAADWNhbGxlckFkZHJlc3MFAAAABHR4aWQFAAAACmNpZExpY2VuY2UJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAEWtleUFydExpY2VuY2VIYXNoAAAAAgUAAAANY2FsbGVyQWRkcmVzcwUAAAAEdHhpZAUAAAANc2hhMjU2TGljZW5jZQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAADWtleUFydE1heE1pbnQAAAACBQAAAA1jYWxsZXJBZGRyZXNzBQAAAAR0eGlkBQAAAAdtYXhtaW50CQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAAAprZXlBcnRUYWdzAAAAAgUAAAANY2FsbGVyQWRkcmVzcwUAAAAEdHhpZAUAAAAEdGFncwkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAKa2V5QXJ0VHlwZQAAAAIFAAAADWNhbGxlckFkZHJlc3MFAAAABHR4aWQFAAAABHR5cGUJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgIAAAAObGFzdF9pbnZva2VfaWQFAAAACHVwZGF0ZUlkBQAAAANuaWwJAAACAAAAAQIAAAA3WW91IGNhbm5vdCBlZGl0IGFydHdvcmsgdGhhdCBoYXZlIGFscmVhZHkgbWludGVkIE5GVChzKQAAAAFpAQAAAA1kZWxldGVBcnR3b3JrAAAAAgAAAAVhcnRJZAAAAAdhZGRyZXNzBAAAAA1jYWxsZXJBZGRyZXNzCQAEJQAAAAEJAQAAABRhZGRyZXNzRnJvbVB1YmxpY0tleQAAAAEIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQQAAAACaWQJAAJYAAAAAQgFAAAAAWkAAAANdHJhbnNhY3Rpb25JZAQAAAAMYWRkcmVzc1RvVXNlAwMJAAAAAAAAAgUAAAANY2FsbGVyQWRkcmVzcwUAAAAFYWRtaW4GCQAAAAAAAAIFAAAADWNhbGxlckFkZHJlc3MFAAAABmFkbWluMgUAAAAHYWRkcmVzcwUAAAANY2FsbGVyQWRkcmVzcwQAAAAKZW50cnlFeGlzdAQAAAAHJG1hdGNoMAkABB0AAAACBQAAAAR0aGlzCQEAAAAKa2V5QXJ0TmFtZQAAAAIFAAAADGFkZHJlc3NUb1VzZQUAAAAFYXJ0SWQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABcwUAAAAHJG1hdGNoMAUAAAABcwkAAAIAAAABAgAAADdObyBhcnR3b3JrIG1hdGNoaW5nIHRoaXMgcmVxdWVzdCBvciB5b3UgYXJlIG5vdCBhbGxvd2VkBAAAAA1hcnR3b3JrTWludGVkBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAQAAAAxrZXlBcnRJc3N1ZWQAAAACBQAAAAxhZGRyZXNzVG9Vc2UFAAAABWFydElkAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWIFAAAAByRtYXRjaDADCQAAAAAAAAIFAAAAAWIAAAAAAAAAAAAHBgcEAAAACnNoYTI1Nkhhc2gEAAAAByRtYXRjaDAJAAQdAAAAAgUAAAAEdGhpcwkBAAAAFGtleUFydEhhc2hCeVR4aWRBZGRyAAAAAgUAAAAMYWRkcmVzc1RvVXNlBQAAAAVhcnRJZAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFzBQAAAAckbWF0Y2gwBQAAAAFzCQAAAgAAAAECAAAAJU5vIGFydHdvcmsgaGFzaCBtYXRjaGluZyB0aGlzIHJlcXVlc3QEAAAABnNpZ25JRAQAAAAHJG1hdGNoMAkABB0AAAACBQAAAAR0aGlzCQEAAAAMa2V5QXJ0U2lnbklEAAAAAgUAAAAMYWRkcmVzc1RvVXNlBQAAAAVhcnRJZAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFzBQAAAAckbWF0Y2gwBQAAAAFzCQAAAgAAAAECAAAAIE5vIFNJR04gSUQgbWF0Y2hpbmcgdGhpcyByZXF1ZXN0BAAAAAxkYXRhVG9EZWxldGUJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkBAAAACmtleUFydERhdGUAAAACBQAAAAxhZGRyZXNzVG9Vc2UFAAAABWFydElkCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAQAAAAprZXlBcnROYW1lAAAAAgUAAAAMYWRkcmVzc1RvVXNlBQAAAAVhcnRJZAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQEAAAAKa2V5QXJ0RGVzYwAAAAIFAAAADGFkZHJlc3NUb1VzZQUAAAAFYXJ0SWQJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkBAAAAEGtleUFydERpc3BsYXlDaWQAAAACBQAAAAxhZGRyZXNzVG9Vc2UFAAAABWFydElkCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAQAAAA9rZXlBcnRFeHBvcnRDaWQAAAACBQAAAAxhZGRyZXNzVG9Vc2UFAAAABWFydElkCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAQAAABBrZXlBcnRFeHBvcnRIYXNoAAAAAgUAAAAMYWRkcmVzc1RvVXNlBQAAAAVhcnRJZAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQEAAAARa2V5QXJ0TGljZW5jZUhhc2gAAAACBQAAAAxhZGRyZXNzVG9Vc2UFAAAABWFydElkCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAQAAABBrZXlBcnRMaWNlbmNlQ2lkAAAAAgUAAAAMYWRkcmVzc1RvVXNlBQAAAAVhcnRJZAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQEAAAAKa2V5QXJ0VHlwZQAAAAIFAAAADGFkZHJlc3NUb1VzZQUAAAAFYXJ0SWQJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkBAAAACmtleUFydFRhZ3MAAAACBQAAAAxhZGRyZXNzVG9Vc2UFAAAABWFydElkCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAQAAAA1rZXlBcnRNYXhNaW50AAAAAgUAAAAMYWRkcmVzc1RvVXNlBQAAAAVhcnRJZAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQEAAAAMa2V5QXJ0U2lnbklEAAAAAgUAAAAMYWRkcmVzc1RvVXNlBQAAAAVhcnRJZAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQEAAAAMa2V5QXJ0SXNzdWVkAAAAAgUAAAAMYWRkcmVzc1RvVXNlBQAAAAVhcnRJZAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQEAAAAMa2V5QXJ0T25TYWxlAAAAAgUAAAAMYWRkcmVzc1RvVXNlBQAAAAVhcnRJZAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACAgAAAA5sYXN0X2ludm9rZV9pZAUAAAACaWQJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkBAAAAEWtleUFydE93bmVyQnlIYXNoAAAAAQUAAAAKc2hhMjU2SGFzaAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQEAAAATa2V5QXJ0QXJ0aWRCeVNpZ25pZAAAAAIFAAAADGFkZHJlc3NUb1VzZQUAAAAGc2lnbklECQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAQAAABVrZXlBcnRUeGlkQnlIYXNoT3duZXIAAAACBQAAAApzaGEyNTZIYXNoBQAAAAxhZGRyZXNzVG9Vc2UFAAAAA25pbAMDCQAAAAAAAAIFAAAADWNhbGxlckFkZHJlc3MFAAAABWFkbWluBgkAAAAAAAACBQAAAA1jYWxsZXJBZGRyZXNzBQAAAAZhZG1pbjIFAAAADGRhdGFUb0RlbGV0ZQMJAQAAAAEhAAAAAQUAAAANYXJ0d29ya01pbnRlZAUAAAAMZGF0YVRvRGVsZXRlCQAAAgAAAAECAAAAOlRoaXMgYXJ0d29yayBhbHJlYWR5IGhhdmUgbWludGVkIE5GVCwgeW91IGNhbm5vdCBkZWxldGUgaXQAAAAGaW52b2tlAQAAAAtzZWxsQXJ0d29yawAAAAQAAAAFYXJ0SWQAAAAFcHJpY2UAAAAHbWF4TWludAAAAAdhc3NldElkBAAAAAJpZAkAAlgAAAABCAUAAAAGaW52b2tlAAAADXRyYW5zYWN0aW9uSWQEAAAADWNhbGxlckFkZHJlc3MJAAJYAAAAAQgIBQAAAAZpbnZva2UAAAAGY2FsbGVyAAAABWJ5dGVzBAAAAAhzZWxsRGF0ZQgFAAAACWxhc3RCbG9jawAAAAl0aW1lc3RhbXAEAAAACWV4cG9ydENJRAkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQkBAAAAD2tleUFydEV4cG9ydENpZAAAAAIFAAAADWNhbGxlckFkZHJlc3MFAAAABWFydElkAwkBAAAAAiE9AAAAAgkAATEAAAABCQABkQAAAAIJAAS1AAAAAgUAAAAJZXhwb3J0Q0lEAgAAAAEvAAAAAAAA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AARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAAtrZXlBcnRQcmljZQAAAAIFAAAADWNhbGxlckFkZHJlc3MFAAAABWFydElkBQAAAAVwcmljZQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAADWtleUFydE1heE1pbnQAAAACBQAAAA1jYWxsZXJBZGRyZXNzBQAAAAVhcnRJZAUAAAAHbWF4TWludAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAVa2V5QXJ0QXNzZXRJZEFjY2VwdGVkAAAAAgUAAAANY2FsbGVyQWRkcmVzcwUAAAAFYXJ0SWQFAAAAB2Fzc2V0SWQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgIAAAAObGFzdF9pbnZva2VfaWQFAAAAAmlkBQAAAANuaWwAAAAGaW52b2tlAQAAAApidXlBcnR3b3JrAAAAAgAAAAVhcnRJZAAAAAZpc3N1ZXIEAAAAAmlkCQACWAAAAAEIBQAAAAZpbnZva2UAAAANdHJhbnNhY3Rpb25JZAQAAAANY2FsbGVyQWRkcmVzcwkAAlgAAAABCAgFAAAABmludm9rZQAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAACHRvdGFsTkZUCQEAAAAPZ2V0SW50ZWdlckJ5S2V5AAAAAQIAAAAQdG90YWxfbmZ0X2lzc3VlZAQAAAAGc2lnbklECQEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABCQEAAAAMa2V5QXJ0U2lnbklEAAAAAgUAAAAGaXNzdWVyBQAAAAVhcnRJZAQAAAALYXJ0d29ya05hbWUEAAAAByRtYXRjaDAJAAQdAAAAAgUAAAAEdGhpcwkBAAAACmtleUFydE5hbWUAAAACBQAAAAZpc3N1ZXIFAAAABWFydElkAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAXMFAAAAByRtYXRjaDAFAAAAAXMJAAACAAAAAQIAAAAZVGhpcyBhcnR3b3JrIGRvZXNuJ3QgZXhpdAQAAAAKZGlzcGxheUNJRAkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQkBAAAAEGtleUFydERpc3BsYXlDaWQAAAACBQAAAAZpc3N1ZXIFAAAABWFydElkBAAAAAlleHBvcnRDSUQJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEJAQAAAA9rZXlBcnRFeHBvcnRDaWQAAAACBQAAAAZpc3N1ZXIFAAAABWFydElkBAAAAApleHBvcnRIYXNoCQEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABCQEAAAAQa2V5QXJ0RXhwb3J0SGFzaAAAAAIFAAAABmlzc3VlcgUAAAAFYXJ0SWQEAAAACmxpY2VuY2VDSUQJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEJAQAAABBrZXlBcnRMaWNlbmNlQ2lkAAAAAgUAAAAGaXNzdWVyBQAAAAVhcnRJZAQAAAALbGljZW5jZUhhc2gJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEJAQAAABFrZXlBcnRMaWNlbmNlSGFzaAAAAAIFAAAABmlzc3VlcgUAAAAFYXJ0SWQEAAAAC2Rlc2NyaXB0aW9uCQABLwAAAAIJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEJAQAAAAprZXlBcnREZXNjAAAAAgUAAAAGaXNzdWVyBQAAAAVhcnRJZAAAAAAAAAAAMgQAAAAKYW1vdW50U29sZAkBAAAAD2dldEludGVnZXJCeUtleQAAAAEJAQAAAAxrZXlBcnRJc3N1ZWQAAAACBQAAAAZpc3N1ZXIFAAAABWFydElkBAAAAAxhcnR3b3JrUHJpY2UJAQAAAA9nZXRJbnRlZ2VyQnlLZXkAAAABCQEAAAALa2V5QXJ0UHJpY2UAAAACBQAAAAZpc3N1ZXIFAAAABWFydElkBAAAAAhpc09uU2FsZQkBAAAAD2dldEJvb2xlYW5CeUtleQAAAAEJAQAAAAxrZXlBcnRPblNhbGUAAAACBQAAAAZpc3N1ZXIFAAAABWFydElkBAAAAAxwcmljZUFzc2V0SWQJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEJAQAAABVrZXlBcnRBc3NldElkQWNjZXB0ZWQAAAACBQAAAAZpc3N1ZXIFAAAABWFydElkBAAAAApzb3VyY2VIYXNoCQEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABCQEAAAAUa2V5QXJ0SGFzaEJ5VHhpZEFkZHIAAAACBQAAAAZpc3N1ZXIFAAAABWFydElkAwkAAAAAAAACBQAAAAxhcnR3b3JrUHJpY2UAAAAA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", "height": 1221384, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: CDQZ6vb8Z9FC2VJiRDHQWP9F2ep4cDheSfZJ1LzWtPEf Next: GN8cFk7scEQeYRCkFgcu5eFPn8KqFoUgS4eiyNacazbZ Diff:
OldNewDifferences
1313
1414 let f = base58''
1515
16-let g = "3KFXBGGLCjA5Z2DuW4Dq9fDDrHjJJP1ZEkaoajSzuKsC"
16+let g = 8
1717
18-let h = "3MsG6jPNCrVJUtYB7XJBxS7utWsXAf4n9Vp"
18+let h = 10
1919
20-let i = "3Mzm4VLwsN9uZwbTMzPj3XuxV6kEfAR8UDN"
20+let i = 10
2121
22-let j = true
22+let j = "3MsG6jPNCrVJUtYB7XJBxS7utWsXAf4n9Vp"
2323
24-let k = "ALLOWED"
24+let k = "3Mzm4VLwsN9uZwbTMzPj3XuxV6kEfAR8UDN"
2525
26-let l = "REGISTERED"
26+let l = true
2727
28-let m = "VERIFIED"
28+let m = "ALLOWED"
2929
30-let n = "SUSPENDED"
30+let n = "REGISTERED"
3131
32-let o = "REMOVED"
32+let o = "VERIFIED"
3333
34-let p = "UNREGISTERED"
34+let p = "SUSPENDED"
3535
36-let q = "RESET"
36+let q = "REMOVED"
3737
38-let r = "ON_SALE"
38+let r = "UNREGISTERED"
3939
40-let s = "SOLD"
40+let s = "RESET"
4141
42-let t = "CANCELED"
42+let t = "ON_SALE"
4343
44-func u (v) = {
45- let w = getString(this, v)
46- if ($isInstanceOf(w, "String"))
44+let u = "SOLD"
45+
46+let v = "CANCELED"
47+
48+func w (x) = {
49+ let y = getString(this, x)
50+ if ($isInstanceOf(y, "String"))
4751 then {
48- let x = w
49- x
52+ let z = y
53+ z
5054 }
5155 else ""
5256 }
5357
5458
55-func y (v) = {
56- let w = getInteger(this, v)
57- if ($isInstanceOf(w, "Int"))
59+func A (x) = {
60+ let y = getInteger(this, x)
61+ if ($isInstanceOf(y, "Int"))
5862 then {
59- let z = w
60- z
63+ let B = y
64+ B
6165 }
6266 else 0
6367 }
6468
6569
66-func A (v) = {
67- let w = getBoolean(this, v)
68- if ($isInstanceOf(w, "Boolean"))
70+func C (x) = {
71+ let y = getBoolean(this, x)
72+ if ($isInstanceOf(y, "Boolean"))
6973 then {
70- let z = w
71- z
74+ let B = y
75+ B
7276 }
7377 else false
7478 }
7579
7680
77-func B (C,D,E) = {
78- let w = getString(b, ((("data_fc_" + C) + "_") + D))
79- if ($isInstanceOf(w, "String"))
81+func D (E,F,G) = {
82+ let y = getString(b, ((("data_fc_" + E) + "_") + F))
83+ if ($isInstanceOf(y, "String"))
8084 then {
81- let x = w
82- if (contains(x, E))
85+ let z = y
86+ if (contains(z, G))
8387 then true
8488 else false
8589 }
8791 }
8892
8993
90-func F (G,H) = {
91- let I = value(assetInfo(fromBase58String(H)))
92- if (if (if ((I.quantity != 1))
94+func H (I,J) = {
95+ let K = value(assetInfo(fromBase58String(J)))
96+ if (if (if ((K.quantity != 1))
9397 then true
94- else (I.decimals != 0))
98+ else (K.decimals != 0))
9599 then true
96- else (I.reissuable != false))
97- then (G + 0)
98- else (G + 1)
100+ else (K.reissuable != false))
101+ then (I + 0)
102+ else (I + 1)
99103 }
100104
101105
102-func J (K) = if (if ((75 > size(K)))
103- then (60 > size(split(K, "/")[0]))
106+func L (M) = if (if ((75 > size(M)))
107+ then (60 > size(split(M, "/")[0]))
104108 else false)
105- then (16 > size(split(K, "/")[1]))
109+ then (16 > size(split(M, "/")[1]))
106110 else false
107111
108112
109-func L (M) = (65 > size(M))
113+func N (O) = (65 > size(O))
110114
111115
112-func N (O) = {
113- let w = getString(this, ("user_status_" + O))
114- if ($isInstanceOf(w, "String"))
116+func P (Q) = {
117+ let y = getString(this, ("user_status_" + Q))
118+ if ($isInstanceOf(y, "String"))
115119 then {
116- let P = w
117- P
120+ let R = y
121+ R
118122 }
119123 else throw("Something went wrong.")
120124 }
121125
122126
123-func Q (R) = ("user_" + R)
127+func S (T) = ("user_" + T)
124128
125129
126-func S (R) = ("user_name_" + R)
130+func U (T) = ("user_name_" + T)
127131
128132
129-func T (R) = ("user_desc_" + R)
133+func V (T) = ("user_desc_" + T)
130134
131135
132-func U (R) = ("user_social_" + R)
136+func W (T) = ("user_social_" + T)
133137
134138
135-func V (R) = ("user_thumb_" + R)
139+func X (T) = ("user_thumb_" + T)
136140
137141
138-func W (R) = ("user_status_" + R)
142+func Y (T) = ("user_status_" + T)
139143
140144
141-func X (R) = ("user_date_" + R)
145+func Z (T) = ("user_date_" + T)
142146
143147
144-func Y (R,Z) = ((("art_date_" + Z) + "_") + R)
148+func aa (T,ab) = ((("art_date_" + ab) + "_") + T)
145149
146150
147-func aa (R,Z) = ((("art_name_" + Z) + "_") + R)
151+func ac (T,ab) = ((("art_name_" + ab) + "_") + T)
148152
149153
150-func ab (R,Z) = ((("art_desc_" + Z) + "_") + R)
154+func ad (T,ab) = ((("art_desc_" + ab) + "_") + T)
151155
152156
153-func ac (R,Z) = ((("art_display_cid_" + Z) + "_") + R)
157+func ae (T,ab) = ((("art_display_cid_" + ab) + "_") + T)
154158
155159
156-func ad (R,Z) = ((("art_export_hash_" + Z) + "_") + R)
160+func af (T,ab) = ((("art_export_hash_" + ab) + "_") + T)
157161
158162
159-func ae (R,Z) = ((("art_export_cid_" + Z) + "_") + R)
163+func ag (T,ab) = ((("art_export_cid_" + ab) + "_") + T)
160164
161165
162-func af (R,Z) = ((("art_maxmint_" + Z) + "_") + R)
166+func ah (T,ab) = ((("art_maxmint_" + ab) + "_") + T)
163167
164168
165-func ag (R,Z) = ((("art_signid_" + Z) + "_") + R)
169+func ai (T,ab) = ((("art_signid_" + ab) + "_") + T)
166170
167171
168-func ah (R,Z) = ((("art_issued_" + Z) + "_") + R)
172+func aj (T,ab) = ((("art_issued_" + ab) + "_") + T)
169173
170174
171-func ai (R,Z) = ((("art_onsale_" + Z) + "_") + R)
175+func ak (T,ab) = ((("art_onsale_" + ab) + "_") + T)
172176
173177
174-func aj (R,Z) = ((("art_licence_hash_" + Z) + "_") + R)
178+func al (T,ab) = ((("art_licence_hash_" + ab) + "_") + T)
175179
176180
177-func ak (R,Z) = ((("art_licence_cid_" + Z) + "_") + R)
181+func am (T,ab) = ((("art_licence_cid_" + ab) + "_") + T)
178182
179183
180-func al (R,Z) = ((("art_tags_" + Z) + "_") + R)
184+func an (T,ab) = ((("art_tags_" + ab) + "_") + T)
181185
182186
183-func am (R,Z) = ((("art_type_" + Z) + "_") + R)
187+func ao (T,ab) = ((("art_type_" + ab) + "_") + T)
184188
185189
186-func an (R,Z) = ((("art_price_" + Z) + "_") + R)
190+func ap (T,ab) = ((("art_price_" + ab) + "_") + T)
187191
188192
189-func ao (R,Z) = ((("art_assetAccepted_" + Z) + "_") + R)
193+func aq (T,ab) = ((("art_assetAccepted_" + ab) + "_") + T)
190194
191195
192-func ap (R,aq) = ((("get_hashbytxidaddr_" + aq) + "_") + R)
196+func ar (T,as) = ((("get_hashbytxidaddr_" + as) + "_") + T)
193197
194198
195-func ar (E) = ("get_owner_by_hash_" + E)
199+func at (G) = ("get_owner_by_hash_" + G)
196200
197201
198-func as (R,at) = ((("get_artidbysignid_" + at) + "_") + R)
202+func au (T,av) = ((("get_artidbysignid_" + av) + "_") + T)
199203
200204
201-func au (E,R) = ("get_txid_by_hash_owner_" + toBase58String(sha256_16Kb(toBytes((E + R)))))
205+func aw (G,T) = ("get_txid_by_hash_owner_" + toBase58String(sha256_16Kb(toBytes((G + T)))))
202206
203207
204-@Callable(z)
205-func registerUser (av,aw,ax,ay) = {
206- let R = toString(addressFromPublicKey(z.callerPublicKey))
207- let az = u(W(R))
208- let H = toBase58String(z.transactionId)
209- let aA = lastBlock.timestamp
210- if (if ((az == n))
208+@Callable(B)
209+func registerUser (ax,ay,az,aA) = {
210+ let T = toString(addressFromPublicKey(B.callerPublicKey))
211+ let aB = w(Y(T))
212+ let J = toBase58String(B.transactionId)
213+ let aC = lastBlock.timestamp
214+ if (if ((aB == p))
211215 then true
212- else (az == o))
216+ else (aB == q))
213217 then throw("You are now allowed to register, your account have been suspended/ removed.")
214- else if ((az == l))
218+ else if ((aB == n))
215219 then throw("You are already registered, please use update method instead.")
216- else if (if ((az == ""))
217- then j
220+ else if (if ((aB == ""))
221+ then l
218222 else false)
219223 then throw("You are now allowed to register yet, please contact us first to get approved.")
220- else if (if ((av == ""))
224+ else if (if ((ax == ""))
221225 then true
222- else (aw == ""))
226+ else (ay == ""))
223227 then throw("Name and description cannot be empty")
224- else if ((size(aw) > 600))
228+ else if ((size(ay) > 600))
225229 then throw("600 Characters maximum for the description")
226- else [IntegerEntry(X(R), aA), StringEntry(Q(R), ((H + "_") + toString(lastBlock.timestamp))), StringEntry(S(R), av), StringEntry(T(R), aw), StringEntry(U(R), ay), StringEntry(V(R), ax), StringEntry(W(R), l), StringEntry("last_invoke_id", H)]
230+ else [IntegerEntry(Z(T), aC), StringEntry(S(T), ((J + "_") + toString(lastBlock.timestamp))), StringEntry(U(T), ax), StringEntry(V(T), ay), StringEntry(W(T), aA), StringEntry(X(T), az), StringEntry(Y(T), n), StringEntry("last_invoke_id", J)]
227231 }
228232
229233
230234
231-@Callable(z)
232-func deleteEntry (aB) = {
233- let R = toString(addressFromPublicKey(z.callerPublicKey))
234- if ((R == h))
235- then [DeleteEntry(aB)]
235+@Callable(B)
236+func deleteEntry (aD) = {
237+ let T = toString(addressFromPublicKey(B.callerPublicKey))
238+ if ((T == j))
239+ then [DeleteEntry(aD)]
236240 else throw("no")
237241 }
238242
239243
240244
241-@Callable(z)
242-func updateUser (av,aw,ax,ay) = {
243- let R = toString(addressFromPublicKey(z.callerPublicKey))
244- let az = u(W(R))
245- if (if ((az == n))
245+@Callable(B)
246+func updateUser (ax,ay,az,aA) = {
247+ let T = toString(addressFromPublicKey(B.callerPublicKey))
248+ let aB = w(Y(T))
249+ if (if ((aB == p))
246250 then true
247- else (az == o))
251+ else (aB == q))
248252 then throw("You are now allowed to register, your account have been suspended/ removed.")
249- else if (if ((az == ""))
253+ else if (if ((aB == ""))
250254 then true
251- else (az == k))
255+ else (aB == m))
252256 then throw("Please register first with registerUser")
253257 else {
254- let H = toBase58String(z.transactionId)
255- let aA = lastBlock.timestamp
256- if (if ((av == ""))
258+ let J = toBase58String(B.transactionId)
259+ let aC = lastBlock.timestamp
260+ if (if ((ax == ""))
257261 then true
258- else (aw == ""))
262+ else (ay == ""))
259263 then throw("Name and description cannot be empty")
260- else if ((size(aw) > 600))
264+ else if ((size(ay) > 600))
261265 then throw("600 Characters maximum for the description")
262- else [StringEntry(S(R), av), StringEntry(T(R), aw), StringEntry(U(R), ay), StringEntry(V(R), ax), StringEntry("last_invoke_id", H)]
266+ else [StringEntry(U(T), ax), StringEntry(V(T), ay), StringEntry(W(T), aA), StringEntry(X(T), az), StringEntry("last_invoke_id", J)]
263267 }
264268 }
265269
266270
267271
268-@Callable(z)
269-func changeUserStatus (aC,aD) = {
270- let R = toString(addressFromPublicKey(z.callerPublicKey))
271- let H = toBase58String(z.transactionId)
272- let aE = u(W(aC))
273- let aF = if ((aD == m))
274- then m
275- else if ((aD == l))
276- then l
277- else if ((aD == n))
278- then n
279- else if ((aD == o))
280- then o
281- else if ((aD == k))
282- then k
283- else if (if ((aD == q))
284- then (aE == k)
272+@Callable(B)
273+func changeUserStatus (aE,aF) = {
274+ let T = toString(addressFromPublicKey(B.callerPublicKey))
275+ let J = toBase58String(B.transactionId)
276+ let aG = w(Y(aE))
277+ let aH = if ((aF == o))
278+ then o
279+ else if ((aF == n))
280+ then n
281+ else if ((aF == p))
282+ then p
283+ else if ((aF == q))
284+ then q
285+ else if ((aF == m))
286+ then m
287+ else if (if ((aF == s))
288+ then (aG == m)
285289 else false)
286290 then ""
287291 else throw("Unknown status")
288- if (if ((aE == k))
289- then (aD == k)
292+ if (if ((aG == m))
293+ then (aF == m)
290294 else false)
291295 then throw("This user is already allowed")
292- else if (if ((aE == l))
293- then (aD == k)
296+ else if (if ((aG == n))
297+ then (aF == m)
294298 else false)
295299 then throw("This user is already allowed and registered")
296- else if (if ((aE == m))
297- then (aD == k)
300+ else if (if ((aG == o))
301+ then (aF == m)
298302 else false)
299303 then throw("This user is already allowed and verified")
300- else if (if ((R == h))
304+ else if (if ((T == j))
301305 then true
302- else (R == i))
303- then [StringEntry(W(aC), aF), StringEntry("last_invoke_id", H)]
304- else throw(((("You are not allowed to change user status " + R) + " / ") + h))
306+ else (T == k))
307+ then [StringEntry(Y(aE), aH), StringEntry("last_invoke_id", J)]
308+ else throw(((("You are not allowed to change user status " + T) + " / ") + j))
305309 }
306310
307311
308312
309-@Callable(z)
310-func creditUser (aC) = {
311- let R = toString(addressFromPublicKey(z.callerPublicKey))
312- let H = toBase58String(z.transactionId)
313- if (if ((R == h))
313+@Callable(B)
314+func creditUser (aE) = {
315+ let T = toString(addressFromPublicKey(B.callerPublicKey))
316+ let J = toBase58String(B.transactionId)
317+ if (if ((T == j))
314318 then true
315- else (R == i))
316- then [ScriptTransfer(Address(fromBase58String(aC)), 150000000000, d)]
319+ else (T == k))
320+ then [ScriptTransfer(Address(fromBase58String(aE)), 150000000000, d)]
317321 else throw("You are not allowed to do that")
318322 }
319323
320324
321325
322-@Callable(aG)
323-func addArtwork (E,C,av,aw,aH,aI,aJ,aK,aL,aM,aN,aO) = {
324- let Z = toBase58String(aG.transactionId)
325- let aP = toBase58String(aG.caller.bytes)
326- if (!(J(aK)))
326+@Callable(aI)
327+func addArtwork (G,E,ax,ay,aJ,aK,aL,aM,aN,aO,aP,aQ) = {
328+ let ab = toBase58String(aI.transactionId)
329+ let aR = toBase58String(aI.caller.bytes)
330+ if (!(L(aM)))
327331 then throw("Wrong Display CID length")
328- else if (!(J(aM)))
332+ else if (!(L(aO)))
329333 then throw("Wrong Export CID length")
330- else if (!(J(aO)))
334+ else if (!(L(aQ)))
331335 then throw("Wrong Licence CID length")
332- else if (!(L(E)))
336+ else if (!(N(G)))
333337 then throw("Source Hash should be 64 characters maximum")
334- else if (!(L(aL)))
338+ else if (!(N(aN)))
335339 then throw("Export Hash should be 64 characters maximum")
336- else if (!(L(aN)))
340+ else if (!(N(aP)))
337341 then throw("Licence Hash should be 64 characters maximum")
338- else if ((size(aG.payments) == 0))
342+ else if ((size(aI.payments) == 0))
339343 then throw("No payment attached")
340344 else {
341- let aQ = value(aG.payments[0])
342- let aR = value(aQ.amount)
343- let aS = if (if (isDefined(aQ.assetId))
344- then (aQ.assetId == d)
345+ let aS = value(aI.payments[0])
346+ let aT = value(aS.amount)
347+ let aU = if (if (isDefined(aS.assetId))
348+ then (aS.assetId == d)
345349 else false)
346- then aQ.assetId
350+ then aS.assetId
347351 else throw("Only SIGN token accepted at the moment")
348- let aT = {
349- let w = getInteger(a, ("certification_fee_" + toBase58String(d)))
350- if ($isInstanceOf(w, "Int"))
352+ let aV = {
353+ let y = getInteger(a, ("certification_fee_" + toBase58String(d)))
354+ if ($isInstanceOf(y, "Int"))
351355 then {
352- let aU = w
353- aU
356+ let aW = y
357+ aW
354358 }
355359 else throw("Price undefined in oracle")
356360 }
357- if ((aR != aT))
358- then throw(("Payment amount should be " + toString(aT)))
361+ if ((aT != aV))
362+ then throw(("Payment amount should be " + toString(aV)))
359363 else {
360- let aV = u(au(E, aP))
361- if ((aV != ""))
364+ let aX = w(aw(G, aR))
365+ if ((aX != ""))
362366 then throw("You already added this artwork on Sign Art")
363367 else {
364- let aW = u(ar(E))
365- if ((aW != ""))
368+ let aY = w(at(G))
369+ if ((aY != ""))
366370 then throw("This artwork hash is already registered on Sign Art")
367371 else {
368- let aX = B(C, aP, E)
369- if (!(aX))
372+ let aZ = D(E, aR, G)
373+ if (!(aZ))
370374 then throw("Sign Certificate not found on Sign-web.app smart contract for this address.")
371- else if ((size(aK) == 0))
375+ else if ((size(aM) == 0))
372376 then throw("Display CID cannot be empty")
373- else if ((size(av) == 0))
377+ else if ((size(ax) == 0))
374378 then throw("Title cannot be empty")
375- else if ((size(av) > 100))
379+ else if ((size(ax) > 100))
376380 then throw("100 Characters maximum for the name")
377- else if ((size(aw) > 1000))
381+ else if ((size(ay) > 1000))
378382 then throw("1000 Characters maximum for the description")
379- else if ((size(aw) == 0))
383+ else if ((size(ay) == 0))
380384 then throw("Description cannot be empty")
381385 else {
382- let aY = split(aH, ",")
383- if ((size(aY) > 5))
386+ let ba = split(aJ, ",")
387+ if ((size(ba) > 5))
384388 then throw("Tags should be maximum 5 single word separated by space.")
385389 else {
386- let aZ = {
387- let w = getString(this, ("user_status_" + aP))
388- if ($isInstanceOf(w, "String"))
390+ let bb = {
391+ let y = getString(this, ("user_status_" + aR))
392+ if ($isInstanceOf(y, "String"))
389393 then {
390- let ba = w
391- ba
394+ let bc = y
395+ bc
392396 }
393- else p
397+ else r
394398 }
395- let aA = lastBlock.timestamp
396- if (if (isDefined(aZ))
397- then (aZ == p)
399+ let aC = lastBlock.timestamp
400+ if (if (isDefined(bb))
401+ then (bb == r)
398402 else false)
399403 then throw("Please register this account first with \"User infos\" tab")
400- else if ((aZ == n))
404+ else if ((bb == p))
401405 then throw("Your account is suspended")
402- else if ((aZ == o))
406+ else if ((bb == q))
403407 then throw("Your account have been removed")
404- else if ((aJ > 10))
408+ else if ((aL > 10))
405409 then throw("Maximum 10 editions per artwork")
406- else if ((size(E) != 64))
410+ else if ((size(G) != 64))
407411 then throw("Hash should be sha256 string composed of 64 char.")
408- else [StringEntry(ar(E), aP), StringEntry(au(E, aP), Z), IntegerEntry(Y(aP, Z), aA), StringEntry(aa(aP, Z), av), StringEntry(ab(aP, Z), aw), StringEntry(ac(aP, Z), aK), StringEntry(ae(aP, Z), aM), StringEntry(ad(aP, Z), aL), StringEntry(aj(aP, Z), aN), StringEntry(ak(aP, Z), aO), StringEntry(am(aP, Z), aI), StringEntry(al(aP, Z), aH), IntegerEntry(af(aP, Z), aJ), StringEntry(ag(aP, Z), C), IntegerEntry(ah(aP, Z), 0), BooleanEntry(ai(aP, Z), false), StringEntry(as(aP, C), Z), StringEntry("last_invoke_id", Z), StringEntry(ap(aP, Z), E), ScriptTransfer(Address(fromBase58String(c)), aR, aS)]
412+ else [StringEntry(at(G), aR), StringEntry(aw(G, aR), ab), IntegerEntry(aa(aR, ab), aC), StringEntry(ac(aR, ab), ax), StringEntry(ad(aR, ab), ay), StringEntry(ae(aR, ab), aM), StringEntry(ag(aR, ab), aO), StringEntry(af(aR, ab), aN), StringEntry(al(aR, ab), aP), StringEntry(am(aR, ab), aQ), StringEntry(ao(aR, ab), aK), StringEntry(an(aR, ab), aJ), IntegerEntry(ah(aR, ab), aL), StringEntry(ai(aR, ab), E), IntegerEntry(aj(aR, ab), 0), BooleanEntry(ak(aR, ab), false), StringEntry(au(aR, E), ab), StringEntry("last_invoke_id", ab), StringEntry(ar(aR, ab), G), ScriptTransfer(Address(fromBase58String(c)), aT, aU)]
409413 }
410414 }
411415 }
416420
417421
418422
419-@Callable(aG)
420-func updateArtwork (aq,av,aw,aH,aI,aJ,aK,aL,aM,aN,aO) = {
421- let bb = toBase58String(aG.transactionId)
422- let aP = toBase58String(aG.caller.bytes)
423- if (!(J(aK)))
423+@Callable(aI)
424+func updateArtwork (as,ax,ay,aJ,aK,aL,aM,aN,aO,aP,aQ) = {
425+ let bd = toBase58String(aI.transactionId)
426+ let aR = toBase58String(aI.caller.bytes)
427+ if (!(L(aM)))
424428 then throw("Wrong Display CID length")
425- else if (!(J(aM)))
429+ else if (!(L(aO)))
426430 then throw("Wrong Export CID length")
427- else if (!(J(aO)))
431+ else if (!(L(aQ)))
428432 then throw("Wrong Licence CID length")
429- else if (!(L(aL)))
433+ else if (!(N(aN)))
430434 then throw("Export Hash should be 64 characters maximum")
431- else if (!(L(aN)))
435+ else if (!(N(aP)))
432436 then throw("Licence Hash should be 64 characters maximum")
433437 else {
434- let aV = u(aa(aP, aq))
435- if ((aV == ""))
438+ let aX = w(ac(aR, as))
439+ if ((aX == ""))
436440 then throw("This entry doesn't exist or you are not the owner")
437- else if ((size(av) == 0))
441+ else if ((size(ax) == 0))
438442 then throw("Title cannot be empty")
439- else if ((size(av) > 100))
443+ else if ((size(ax) > 100))
440444 then throw("100 Characters maximum for the name")
441- else if ((size(aw) > 1000))
445+ else if ((size(ay) > 1000))
442446 then throw("1000 Characters maximum for the description")
443- else if ((size(aw) == 0))
447+ else if ((size(ay) == 0))
444448 then throw("Description cannot be empty")
445449 else {
446- let bc = {
447- let w = getInteger(this, ah(aP, aq))
448- if ($isInstanceOf(w, "Int"))
450+ let be = {
451+ let y = getInteger(this, aj(aR, as))
452+ if ($isInstanceOf(y, "Int"))
449453 then {
450- let P = w
451- if ((P == 0))
454+ let R = y
455+ if ((R == 0))
452456 then false
453457 else true
454458 }
455459 else false
456460 }
457- let aY = split(aH, ",")
458- if ((size(aY) > 5))
461+ let ba = split(aJ, ",")
462+ if ((size(ba) > 5))
459463 then throw("Tags should be maximum 5 single word separated by space.")
460464 else {
461- let aZ = {
462- let w = getString(this, ("user_status_" + aP))
463- if ($isInstanceOf(w, "String"))
465+ let bb = {
466+ let y = getString(this, ("user_status_" + aR))
467+ if ($isInstanceOf(y, "String"))
464468 then {
465- let ba = w
466- ba
469+ let bc = y
470+ bc
467471 }
468- else p
472+ else r
469473 }
470- if (if (isDefined(aZ))
471- then (aZ == p)
474+ if (if (isDefined(bb))
475+ then (bb == r)
472476 else false)
473477 then throw("Please register this account first with \"User infos\" tab")
474- else if ((aZ == n))
478+ else if ((bb == p))
475479 then throw("Your account is suspended")
476- else if ((aZ == o))
480+ else if ((bb == q))
477481 then throw("Your account have been removed")
478- else if ((aJ > 10))
482+ else if ((aL > 10))
479483 then throw("Maximum 10 editions per artwork")
480- else if (!(bc))
481- then [StringEntry(aa(aP, aq), av), StringEntry(ab(aP, aq), aw), StringEntry(ac(aP, aq), aK), StringEntry(ae(aP, aq), aM), StringEntry(ad(aP, aq), aL), StringEntry(ak(aP, aq), aO), StringEntry(aj(aP, aq), aN), IntegerEntry(af(aP, aq), aJ), StringEntry(al(aP, aq), aH), StringEntry(am(aP, aq), aI), StringEntry("last_invoke_id", bb)]
484+ else if (!(be))
485+ then [StringEntry(ac(aR, as), ax), StringEntry(ad(aR, as), ay), StringEntry(ae(aR, as), aM), StringEntry(ag(aR, as), aO), StringEntry(af(aR, as), aN), StringEntry(am(aR, as), aQ), StringEntry(al(aR, as), aP), IntegerEntry(ah(aR, as), aL), StringEntry(an(aR, as), aJ), StringEntry(ao(aR, as), aK), StringEntry("last_invoke_id", bd)]
482486 else throw("You cannot edit artwork that have already minted NFT(s)")
483487 }
484488 }
487491
488492
489493
490-@Callable(z)
491-func deleteArtwork (Z,aC) = {
492- let aP = toString(addressFromPublicKey(z.callerPublicKey))
493- let H = toBase58String(z.transactionId)
494- let bd = if (if ((aP == h))
494+@Callable(B)
495+func deleteArtwork (ab,aE) = {
496+ let aR = toString(addressFromPublicKey(B.callerPublicKey))
497+ let J = toBase58String(B.transactionId)
498+ let bf = if (if ((aR == j))
495499 then true
496- else (aP == i))
497- then aC
498- else aP
499- let aV = {
500- let w = getString(this, aa(bd, Z))
501- if ($isInstanceOf(w, "String"))
500+ else (aR == k))
501+ then aE
502+ else aR
503+ let aX = {
504+ let y = getString(this, ac(bf, ab))
505+ if ($isInstanceOf(y, "String"))
502506 then {
503- let ba = w
504- ba
507+ let bc = y
508+ bc
505509 }
506510 else throw("No artwork matching this request or you are not allowed")
507511 }
508- let bc = {
509- let w = getInteger(this, ah(bd, Z))
510- if ($isInstanceOf(w, "Int"))
512+ let be = {
513+ let y = getInteger(this, aj(bf, ab))
514+ if ($isInstanceOf(y, "Int"))
511515 then {
512- let P = w
513- if ((P == 0))
516+ let R = y
517+ if ((R == 0))
514518 then false
515519 else true
516520 }
517521 else false
518522 }
519- let E = {
520- let w = getString(this, ap(bd, Z))
521- if ($isInstanceOf(w, "String"))
523+ let G = {
524+ let y = getString(this, ar(bf, ab))
525+ if ($isInstanceOf(y, "String"))
522526 then {
523- let ba = w
524- ba
527+ let bc = y
528+ bc
525529 }
526530 else throw("No artwork hash matching this request")
527531 }
528- let C = {
529- let w = getString(this, ag(bd, Z))
530- if ($isInstanceOf(w, "String"))
532+ let E = {
533+ let y = getString(this, ai(bf, ab))
534+ if ($isInstanceOf(y, "String"))
531535 then {
532- let ba = w
533- ba
536+ let bc = y
537+ bc
534538 }
535539 else throw("No SIGN ID matching this request")
536540 }
537- let be = [DeleteEntry(Y(bd, Z)), DeleteEntry(aa(bd, Z)), DeleteEntry(ab(bd, Z)), DeleteEntry(ac(bd, Z)), DeleteEntry(ae(bd, Z)), DeleteEntry(ad(bd, Z)), DeleteEntry(aj(bd, Z)), DeleteEntry(ak(bd, Z)), DeleteEntry(am(bd, Z)), DeleteEntry(al(bd, Z)), DeleteEntry(af(bd, Z)), DeleteEntry(ag(bd, Z)), DeleteEntry(ah(bd, Z)), DeleteEntry(ai(bd, Z)), StringEntry("last_invoke_id", H), DeleteEntry(ar(E)), DeleteEntry(as(bd, C)), DeleteEntry(au(E, bd))]
538- if (if ((aP == h))
541+ let bg = [DeleteEntry(aa(bf, ab)), DeleteEntry(ac(bf, ab)), DeleteEntry(ad(bf, ab)), DeleteEntry(ae(bf, ab)), DeleteEntry(ag(bf, ab)), DeleteEntry(af(bf, ab)), DeleteEntry(al(bf, ab)), DeleteEntry(am(bf, ab)), DeleteEntry(ao(bf, ab)), DeleteEntry(an(bf, ab)), DeleteEntry(ah(bf, ab)), DeleteEntry(ai(bf, ab)), DeleteEntry(aj(bf, ab)), DeleteEntry(ak(bf, ab)), StringEntry("last_invoke_id", J), DeleteEntry(at(G)), DeleteEntry(au(bf, E)), DeleteEntry(aw(G, bf))]
542+ if (if ((aR == j))
539543 then true
540- else (aP == i))
541- then be
542- else if (!(bc))
543- then be
544+ else (aR == k))
545+ then bg
546+ else if (!(be))
547+ then bg
544548 else throw("This artwork already have minted NFT, you cannot delete it")
545549 }
546550
547551
548552
549-@Callable(aG)
550-func sellArtwork (Z,aU,bf,aS) = {
551- let H = toBase58String(aG.transactionId)
552- let aP = toBase58String(aG.caller.bytes)
553- let bg = lastBlock.timestamp
554- let bh = u(ae(aP, Z))
555- if ((size(split(bh, "/")[0]) != 59))
553+@Callable(aI)
554+func sellArtwork (ab,aW,bh,aU) = {
555+ let J = toBase58String(aI.transactionId)
556+ let aR = toBase58String(aI.caller.bytes)
557+ let bi = lastBlock.timestamp
558+ let bj = w(ag(aR, ab))
559+ if ((size(split(bj, "/")[0]) != 59))
556560 then throw("You cannot sell artwork with no export file")
557561 else {
558- let bi = u(ad(aP, Z))
559- if ((size(bi) != 64))
562+ let bk = w(af(aR, ab))
563+ if ((size(bk) != 64))
560564 then throw("You cannot sell artwork with no export hash")
561- else if (if (if ((aS != toBase58String(d)))
562- then (aS != toBase58String(f))
565+ else if (if (if ((aU != toBase58String(d)))
566+ then (aU != toBase58String(f))
563567 else false)
564- then (aS != toBase58String(e))
568+ then (aU != toBase58String(e))
565569 else false)
566570 then throw("Only SIGN, USDN or WAVES currency accepted at the moment")
567571 else {
568- let bj = {
569- let w = getString(this, aa(aP, Z))
570- if ($isInstanceOf(w, "String"))
572+ let bl = {
573+ let y = getString(this, ac(aR, ab))
574+ if ($isInstanceOf(y, "String"))
571575 then {
572- let ba = w
573- ba
576+ let bc = y
577+ bc
574578 }
575579 else throw("This artwork doesn't exit or you are not the owner")
576580 }
577- let aZ = {
578- let w = getString(this, W(aP))
579- if ($isInstanceOf(w, "String"))
581+ let bb = {
582+ let y = getString(this, Y(aR))
583+ if ($isInstanceOf(y, "String"))
580584 then {
581- let ba = w
582- ba
585+ let bc = y
586+ bc
583587 }
584588 else throw("Please register this account first")
585589 }
586- let bk = {
587- let w = getInteger(this, ah(aP, Z))
588- if ($isInstanceOf(w, "Int"))
590+ let bm = {
591+ let y = getInteger(this, aj(aR, ab))
592+ if ($isInstanceOf(y, "Int"))
589593 then {
590- let bl = w
591- bl
594+ let bn = y
595+ bn
592596 }
593597 else 0
594598 }
595- let bm = {
596- let w = getInteger(this, af(aP, Z))
597- if ($isInstanceOf(w, "Int"))
599+ let bo = {
600+ let y = getInteger(this, ah(aR, ab))
601+ if ($isInstanceOf(y, "Int"))
598602 then {
599- let bl = w
600- bl
603+ let bn = y
604+ bn
601605 }
602606 else 0
603607 }
604- if (if ((bk != 0))
605- then (bk == bm)
608+ if (if ((bm != 0))
609+ then (bm == bo)
606610 else false)
607611 then throw("You reached the max edition allowed to sell for this edition.")
608- else if (if ((bk > 0))
609- then (bm != bf)
612+ else if (if ((bm > 0))
613+ then (bo != bh)
610614 else false)
611615 then throw("You cannot change the maximum issuable anymore")
612- else if ((aZ == n))
616+ else if ((bb == p))
613617 then throw("Your account is suspended")
614- else if ((aZ == o))
618+ else if ((bb == q))
615619 then throw("Your account have been deleted")
616620 else {
617- let bn = if ((aU > 0))
621+ let bp = if ((aW > 0))
618622 then true
619623 else false
620-[BooleanEntry(ai(aP, Z), bn), IntegerEntry(an(aP, Z), aU), IntegerEntry(af(aP, Z), bf), StringEntry(ao(aP, Z), aS), StringEntry("last_invoke_id", H)]
624+[BooleanEntry(ak(aR, ab), bp), IntegerEntry(ap(aR, ab), aW), IntegerEntry(ah(aR, ab), bh), StringEntry(aq(aR, ab), aU), StringEntry("last_invoke_id", J)]
621625 }
622626 }
623627 }
625629
626630
627631
628-@Callable(aG)
629-func buyArtwork (Z,bo) = {
630- let H = toBase58String(aG.transactionId)
631- let aP = toBase58String(aG.caller.bytes)
632- let bp = y("total_nft_issued")
633- let C = u(ag(bo, Z))
634- let bj = {
635- let w = getString(this, aa(bo, Z))
636- if ($isInstanceOf(w, "String"))
632+@Callable(aI)
633+func buyArtwork (ab,bq) = {
634+ let J = toBase58String(aI.transactionId)
635+ let aR = toBase58String(aI.caller.bytes)
636+ let br = A("total_nft_issued")
637+ let E = w(ai(bq, ab))
638+ let bl = {
639+ let y = getString(this, ac(bq, ab))
640+ if ($isInstanceOf(y, "String"))
637641 then {
638- let ba = w
639- ba
642+ let bc = y
643+ bc
640644 }
641645 else throw("This artwork doesn't exit")
642646 }
643- let bq = u(ac(bo, Z))
644- let bh = u(ae(bo, Z))
645- let bi = u(ad(bo, Z))
646- let br = u(ak(bo, Z))
647- let bs = u(aj(bo, Z))
648- let aw = take(u(ab(bo, Z)), 50)
649- let bk = y(ah(bo, Z))
650- let bt = y(an(bo, Z))
651- let bu = A(ai(bo, Z))
652- let bv = u(ao(bo, Z))
653- let bw = u(ap(bo, Z))
654- if ((bt == 0))
647+ let bs = w(ae(bq, ab))
648+ let bj = w(ag(bq, ab))
649+ let bk = w(af(bq, ab))
650+ let bt = w(am(bq, ab))
651+ let bu = w(al(bq, ab))
652+ let ay = take(w(ad(bq, ab)), 50)
653+ let bm = A(aj(bq, ab))
654+ let bv = A(ap(bq, ab))
655+ let bw = C(ak(bq, ab))
656+ let bx = w(aq(bq, ab))
657+ let by = w(ar(bq, ab))
658+ if ((bv == 0))
655659 then throw("This artwork is not for sell")
656- else if (!(bu))
660+ else if (!(bw))
657661 then throw("This artwork is not for sale")
658662 else {
659- let bm = y(af(bo, Z))
660- let aQ = value(aG.payments[0])
661- let aR = value(aQ.amount)
662- let aS = if (if (isDefined(aQ.assetId))
663- then (aQ.assetId == fromBase58String(bv))
663+ let bo = A(ah(bq, ab))
664+ let aS = value(aI.payments[0])
665+ let aT = value(aS.amount)
666+ let aU = if (if (isDefined(aS.assetId))
667+ then (aS.assetId == fromBase58String(bx))
664668 else false)
665- then aQ.assetId
666- else throw((("Only " + bv) + " token id accepted at the moment"))
667- if ((bk == bm))
669+ then aS.assetId
670+ else throw((("Only " + bx) + " token id accepted at the moment"))
671+ let bz = if ((bx == toBase58String(d)))
672+ then 8
673+ else 10
674+ let bA = ((aT / 100) * bz)
675+ let bB = (aT - bA)
676+ if ((bm == bo))
668677 then throw("Cannot buy this artwork anymore, maximum editions reached")
669- else if ((bt != aR))
670- then throw(((("Payment don't match seller price: " + toString(bt)) + " vs ") + toString(aR)))
678+ else if ((bv != aT))
679+ then throw(((("Payment don't match seller price: " + toString(bv)) + " vs ") + toString(aT)))
671680 else {
672- let bx = (bk + 1)
673- let by = lastBlock.timestamp
674- let bz = (((((((((((((((((((((((((((("{\"version\": 1,
675- \"creator\": \"" + bo) + "\",
676- \"artID\": \"") + Z) + "\",
677- \"signID\": \"") + C) + "\",
678- \"artwork_name\": \"") + bj) + "\",
679- \"artwork_desc\": \"") + aw) + "\",
680- \"issue\": \"") + toString(bx)) + "/") + toString(bm)) + "\",
681- \"maxIssuable\": \"") + toString(bm)) + "\",
682- \"source_hash\": \"") + bw) + "\",
683- \"display_cid\": \"") + bq) + "\",
684- \"export_cid\": \"") + bh) + "\",
685- \"export_hash\": \"") + bi) + "\",
686- \"licence_cid\": \"") + br) + "\",
687- \"licence_hash\": \"") + bs) + "\"}")
688- let bA = Issue(("SA_" + toString((bp + 1))), bz, 1, 0, false)
689- let bB = calculateAssetId(bA)
690- let bn = if ((bx == bm))
681+ let bC = (bm + 1)
682+ let bD = lastBlock.timestamp
683+ let bE = (((((((((((((((((((((((((((("{\"version\": 1,
684+ \"creator\": \"" + bq) + "\",
685+ \"artID\": \"") + ab) + "\",
686+ \"signID\": \"") + E) + "\",
687+ \"artwork_name\": \"") + bl) + "\",
688+ \"artwork_desc\": \"") + ay) + "\",
689+ \"issue\": \"") + toString(bC)) + "/") + toString(bo)) + "\",
690+ \"maxIssuable\": \"") + toString(bo)) + "\",
691+ \"source_hash\": \"") + by) + "\",
692+ \"display_cid\": \"") + bs) + "\",
693+ \"export_cid\": \"") + bj) + "\",
694+ \"export_hash\": \"") + bk) + "\",
695+ \"licence_cid\": \"") + bt) + "\",
696+ \"licence_hash\": \"") + bu) + "\"}")
697+ let bF = Issue(("SA_" + toString((br + 1))), bE, 1, 0, false)
698+ let bG = calculateAssetId(bF)
699+ let bp = if ((bC == bo))
691700 then false
692701 else true
693-[IntegerEntry(ah(bo, Z), bx), StringEntry(((((((("art_sold_" + toString(bx)) + "_of_") + toString(bm)) + "_") + Z) + "_") + bo), ((((((((aP + "_") + toString(by)) + "_") + H) + "_") + toString(bt)) + "_") + bv)), IntegerEntry("total_nft_issued", (bp + 1)), BooleanEntry(ai(bo, Z), bn), StringEntry("last_invoke_id", H), bA, ScriptTransfer(Address(fromBase58String(bo)), aR, aS), ScriptTransfer(aG.caller, 1, bB)]
702+[IntegerEntry(aj(bq, ab), bC), StringEntry(((((((("art_sold_" + toString(bC)) + "_of_") + toString(bo)) + "_") + ab) + "_") + bq), ((((((((aR + "_") + toString(bD)) + "_") + J) + "_") + toString(bv)) + "_") + bx)), IntegerEntry("total_nft_issued", (br + 1)), BooleanEntry(ak(bq, ab), bp), StringEntry("last_invoke_id", J), bF, ScriptTransfer(Address(fromBase58String(bq)), bB, aU), ScriptTransfer(Address(fromBase58String(c)), bA, aU), ScriptTransfer(aI.caller, 1, bG)]
694703 }
695704 }
696705 }
697706
698707
699708
700-@Callable(z)
701-func deleteUser (aC) = {
702- let R = toString(addressFromPublicKey(z.callerPublicKey))
703- let H = toBase58String(z.transactionId)
704- if (if ((R == h))
709+@Callable(B)
710+func deleteUser (aE) = {
711+ let T = toString(addressFromPublicKey(B.callerPublicKey))
712+ let J = toBase58String(B.transactionId)
713+ if (if ((T == j))
705714 then true
706- else (R == i))
707- then [DeleteEntry(X(aC)), DeleteEntry(Q(aC)), DeleteEntry(S(aC)), DeleteEntry(T(aC)), DeleteEntry(U(aC)), DeleteEntry(V(aC)), StringEntry(W(aC), o), StringEntry("last_invoke_id", H)]
715+ else (T == k))
716+ then [DeleteEntry(Z(aE)), DeleteEntry(S(aE)), DeleteEntry(U(aE)), DeleteEntry(V(aE)), DeleteEntry(W(aE)), DeleteEntry(X(aE)), StringEntry(Y(aE), q), StringEntry("last_invoke_id", J)]
708717 else throw("You are not allowed to do that")
709718 }
710719
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 4 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = value(addressFromString("3N2s5RtaHPBenCsx2ECcoFRbYHx3noZhXW1"))
55
66 let b = value(addressFromString("3NC28hSivrmsTUXaYD1x6L362J4ZpUnoTdB"))
77
88 let c = "3N1E6tXddRoVaRfQ9dQ3vg5LaW2fsd8HKub"
99
1010 let d = base58'Gf9t8FA4H3ssoZPCwrg3KwUFCci8zuUFP9ssRsUY3s6a'
1111
1212 let e = base58'25FEqEjRkqK6yCkiT7Lz6SAYz7gUFCtxfCChnrVFD5AT'
1313
1414 let f = base58''
1515
16-let g = "3KFXBGGLCjA5Z2DuW4Dq9fDDrHjJJP1ZEkaoajSzuKsC"
16+let g = 8
1717
18-let h = "3MsG6jPNCrVJUtYB7XJBxS7utWsXAf4n9Vp"
18+let h = 10
1919
20-let i = "3Mzm4VLwsN9uZwbTMzPj3XuxV6kEfAR8UDN"
20+let i = 10
2121
22-let j = true
22+let j = "3MsG6jPNCrVJUtYB7XJBxS7utWsXAf4n9Vp"
2323
24-let k = "ALLOWED"
24+let k = "3Mzm4VLwsN9uZwbTMzPj3XuxV6kEfAR8UDN"
2525
26-let l = "REGISTERED"
26+let l = true
2727
28-let m = "VERIFIED"
28+let m = "ALLOWED"
2929
30-let n = "SUSPENDED"
30+let n = "REGISTERED"
3131
32-let o = "REMOVED"
32+let o = "VERIFIED"
3333
34-let p = "UNREGISTERED"
34+let p = "SUSPENDED"
3535
36-let q = "RESET"
36+let q = "REMOVED"
3737
38-let r = "ON_SALE"
38+let r = "UNREGISTERED"
3939
40-let s = "SOLD"
40+let s = "RESET"
4141
42-let t = "CANCELED"
42+let t = "ON_SALE"
4343
44-func u (v) = {
45- let w = getString(this, v)
46- if ($isInstanceOf(w, "String"))
44+let u = "SOLD"
45+
46+let v = "CANCELED"
47+
48+func w (x) = {
49+ let y = getString(this, x)
50+ if ($isInstanceOf(y, "String"))
4751 then {
48- let x = w
49- x
52+ let z = y
53+ z
5054 }
5155 else ""
5256 }
5357
5458
55-func y (v) = {
56- let w = getInteger(this, v)
57- if ($isInstanceOf(w, "Int"))
59+func A (x) = {
60+ let y = getInteger(this, x)
61+ if ($isInstanceOf(y, "Int"))
5862 then {
59- let z = w
60- z
63+ let B = y
64+ B
6165 }
6266 else 0
6367 }
6468
6569
66-func A (v) = {
67- let w = getBoolean(this, v)
68- if ($isInstanceOf(w, "Boolean"))
70+func C (x) = {
71+ let y = getBoolean(this, x)
72+ if ($isInstanceOf(y, "Boolean"))
6973 then {
70- let z = w
71- z
74+ let B = y
75+ B
7276 }
7377 else false
7478 }
7579
7680
77-func B (C,D,E) = {
78- let w = getString(b, ((("data_fc_" + C) + "_") + D))
79- if ($isInstanceOf(w, "String"))
81+func D (E,F,G) = {
82+ let y = getString(b, ((("data_fc_" + E) + "_") + F))
83+ if ($isInstanceOf(y, "String"))
8084 then {
81- let x = w
82- if (contains(x, E))
85+ let z = y
86+ if (contains(z, G))
8387 then true
8488 else false
8589 }
8690 else false
8791 }
8892
8993
90-func F (G,H) = {
91- let I = value(assetInfo(fromBase58String(H)))
92- if (if (if ((I.quantity != 1))
94+func H (I,J) = {
95+ let K = value(assetInfo(fromBase58String(J)))
96+ if (if (if ((K.quantity != 1))
9397 then true
94- else (I.decimals != 0))
98+ else (K.decimals != 0))
9599 then true
96- else (I.reissuable != false))
97- then (G + 0)
98- else (G + 1)
100+ else (K.reissuable != false))
101+ then (I + 0)
102+ else (I + 1)
99103 }
100104
101105
102-func J (K) = if (if ((75 > size(K)))
103- then (60 > size(split(K, "/")[0]))
106+func L (M) = if (if ((75 > size(M)))
107+ then (60 > size(split(M, "/")[0]))
104108 else false)
105- then (16 > size(split(K, "/")[1]))
109+ then (16 > size(split(M, "/")[1]))
106110 else false
107111
108112
109-func L (M) = (65 > size(M))
113+func N (O) = (65 > size(O))
110114
111115
112-func N (O) = {
113- let w = getString(this, ("user_status_" + O))
114- if ($isInstanceOf(w, "String"))
116+func P (Q) = {
117+ let y = getString(this, ("user_status_" + Q))
118+ if ($isInstanceOf(y, "String"))
115119 then {
116- let P = w
117- P
120+ let R = y
121+ R
118122 }
119123 else throw("Something went wrong.")
120124 }
121125
122126
123-func Q (R) = ("user_" + R)
127+func S (T) = ("user_" + T)
124128
125129
126-func S (R) = ("user_name_" + R)
130+func U (T) = ("user_name_" + T)
127131
128132
129-func T (R) = ("user_desc_" + R)
133+func V (T) = ("user_desc_" + T)
130134
131135
132-func U (R) = ("user_social_" + R)
136+func W (T) = ("user_social_" + T)
133137
134138
135-func V (R) = ("user_thumb_" + R)
139+func X (T) = ("user_thumb_" + T)
136140
137141
138-func W (R) = ("user_status_" + R)
142+func Y (T) = ("user_status_" + T)
139143
140144
141-func X (R) = ("user_date_" + R)
145+func Z (T) = ("user_date_" + T)
142146
143147
144-func Y (R,Z) = ((("art_date_" + Z) + "_") + R)
148+func aa (T,ab) = ((("art_date_" + ab) + "_") + T)
145149
146150
147-func aa (R,Z) = ((("art_name_" + Z) + "_") + R)
151+func ac (T,ab) = ((("art_name_" + ab) + "_") + T)
148152
149153
150-func ab (R,Z) = ((("art_desc_" + Z) + "_") + R)
154+func ad (T,ab) = ((("art_desc_" + ab) + "_") + T)
151155
152156
153-func ac (R,Z) = ((("art_display_cid_" + Z) + "_") + R)
157+func ae (T,ab) = ((("art_display_cid_" + ab) + "_") + T)
154158
155159
156-func ad (R,Z) = ((("art_export_hash_" + Z) + "_") + R)
160+func af (T,ab) = ((("art_export_hash_" + ab) + "_") + T)
157161
158162
159-func ae (R,Z) = ((("art_export_cid_" + Z) + "_") + R)
163+func ag (T,ab) = ((("art_export_cid_" + ab) + "_") + T)
160164
161165
162-func af (R,Z) = ((("art_maxmint_" + Z) + "_") + R)
166+func ah (T,ab) = ((("art_maxmint_" + ab) + "_") + T)
163167
164168
165-func ag (R,Z) = ((("art_signid_" + Z) + "_") + R)
169+func ai (T,ab) = ((("art_signid_" + ab) + "_") + T)
166170
167171
168-func ah (R,Z) = ((("art_issued_" + Z) + "_") + R)
172+func aj (T,ab) = ((("art_issued_" + ab) + "_") + T)
169173
170174
171-func ai (R,Z) = ((("art_onsale_" + Z) + "_") + R)
175+func ak (T,ab) = ((("art_onsale_" + ab) + "_") + T)
172176
173177
174-func aj (R,Z) = ((("art_licence_hash_" + Z) + "_") + R)
178+func al (T,ab) = ((("art_licence_hash_" + ab) + "_") + T)
175179
176180
177-func ak (R,Z) = ((("art_licence_cid_" + Z) + "_") + R)
181+func am (T,ab) = ((("art_licence_cid_" + ab) + "_") + T)
178182
179183
180-func al (R,Z) = ((("art_tags_" + Z) + "_") + R)
184+func an (T,ab) = ((("art_tags_" + ab) + "_") + T)
181185
182186
183-func am (R,Z) = ((("art_type_" + Z) + "_") + R)
187+func ao (T,ab) = ((("art_type_" + ab) + "_") + T)
184188
185189
186-func an (R,Z) = ((("art_price_" + Z) + "_") + R)
190+func ap (T,ab) = ((("art_price_" + ab) + "_") + T)
187191
188192
189-func ao (R,Z) = ((("art_assetAccepted_" + Z) + "_") + R)
193+func aq (T,ab) = ((("art_assetAccepted_" + ab) + "_") + T)
190194
191195
192-func ap (R,aq) = ((("get_hashbytxidaddr_" + aq) + "_") + R)
196+func ar (T,as) = ((("get_hashbytxidaddr_" + as) + "_") + T)
193197
194198
195-func ar (E) = ("get_owner_by_hash_" + E)
199+func at (G) = ("get_owner_by_hash_" + G)
196200
197201
198-func as (R,at) = ((("get_artidbysignid_" + at) + "_") + R)
202+func au (T,av) = ((("get_artidbysignid_" + av) + "_") + T)
199203
200204
201-func au (E,R) = ("get_txid_by_hash_owner_" + toBase58String(sha256_16Kb(toBytes((E + R)))))
205+func aw (G,T) = ("get_txid_by_hash_owner_" + toBase58String(sha256_16Kb(toBytes((G + T)))))
202206
203207
204-@Callable(z)
205-func registerUser (av,aw,ax,ay) = {
206- let R = toString(addressFromPublicKey(z.callerPublicKey))
207- let az = u(W(R))
208- let H = toBase58String(z.transactionId)
209- let aA = lastBlock.timestamp
210- if (if ((az == n))
208+@Callable(B)
209+func registerUser (ax,ay,az,aA) = {
210+ let T = toString(addressFromPublicKey(B.callerPublicKey))
211+ let aB = w(Y(T))
212+ let J = toBase58String(B.transactionId)
213+ let aC = lastBlock.timestamp
214+ if (if ((aB == p))
211215 then true
212- else (az == o))
216+ else (aB == q))
213217 then throw("You are now allowed to register, your account have been suspended/ removed.")
214- else if ((az == l))
218+ else if ((aB == n))
215219 then throw("You are already registered, please use update method instead.")
216- else if (if ((az == ""))
217- then j
220+ else if (if ((aB == ""))
221+ then l
218222 else false)
219223 then throw("You are now allowed to register yet, please contact us first to get approved.")
220- else if (if ((av == ""))
224+ else if (if ((ax == ""))
221225 then true
222- else (aw == ""))
226+ else (ay == ""))
223227 then throw("Name and description cannot be empty")
224- else if ((size(aw) > 600))
228+ else if ((size(ay) > 600))
225229 then throw("600 Characters maximum for the description")
226- else [IntegerEntry(X(R), aA), StringEntry(Q(R), ((H + "_") + toString(lastBlock.timestamp))), StringEntry(S(R), av), StringEntry(T(R), aw), StringEntry(U(R), ay), StringEntry(V(R), ax), StringEntry(W(R), l), StringEntry("last_invoke_id", H)]
230+ else [IntegerEntry(Z(T), aC), StringEntry(S(T), ((J + "_") + toString(lastBlock.timestamp))), StringEntry(U(T), ax), StringEntry(V(T), ay), StringEntry(W(T), aA), StringEntry(X(T), az), StringEntry(Y(T), n), StringEntry("last_invoke_id", J)]
227231 }
228232
229233
230234
231-@Callable(z)
232-func deleteEntry (aB) = {
233- let R = toString(addressFromPublicKey(z.callerPublicKey))
234- if ((R == h))
235- then [DeleteEntry(aB)]
235+@Callable(B)
236+func deleteEntry (aD) = {
237+ let T = toString(addressFromPublicKey(B.callerPublicKey))
238+ if ((T == j))
239+ then [DeleteEntry(aD)]
236240 else throw("no")
237241 }
238242
239243
240244
241-@Callable(z)
242-func updateUser (av,aw,ax,ay) = {
243- let R = toString(addressFromPublicKey(z.callerPublicKey))
244- let az = u(W(R))
245- if (if ((az == n))
245+@Callable(B)
246+func updateUser (ax,ay,az,aA) = {
247+ let T = toString(addressFromPublicKey(B.callerPublicKey))
248+ let aB = w(Y(T))
249+ if (if ((aB == p))
246250 then true
247- else (az == o))
251+ else (aB == q))
248252 then throw("You are now allowed to register, your account have been suspended/ removed.")
249- else if (if ((az == ""))
253+ else if (if ((aB == ""))
250254 then true
251- else (az == k))
255+ else (aB == m))
252256 then throw("Please register first with registerUser")
253257 else {
254- let H = toBase58String(z.transactionId)
255- let aA = lastBlock.timestamp
256- if (if ((av == ""))
258+ let J = toBase58String(B.transactionId)
259+ let aC = lastBlock.timestamp
260+ if (if ((ax == ""))
257261 then true
258- else (aw == ""))
262+ else (ay == ""))
259263 then throw("Name and description cannot be empty")
260- else if ((size(aw) > 600))
264+ else if ((size(ay) > 600))
261265 then throw("600 Characters maximum for the description")
262- else [StringEntry(S(R), av), StringEntry(T(R), aw), StringEntry(U(R), ay), StringEntry(V(R), ax), StringEntry("last_invoke_id", H)]
266+ else [StringEntry(U(T), ax), StringEntry(V(T), ay), StringEntry(W(T), aA), StringEntry(X(T), az), StringEntry("last_invoke_id", J)]
263267 }
264268 }
265269
266270
267271
268-@Callable(z)
269-func changeUserStatus (aC,aD) = {
270- let R = toString(addressFromPublicKey(z.callerPublicKey))
271- let H = toBase58String(z.transactionId)
272- let aE = u(W(aC))
273- let aF = if ((aD == m))
274- then m
275- else if ((aD == l))
276- then l
277- else if ((aD == n))
278- then n
279- else if ((aD == o))
280- then o
281- else if ((aD == k))
282- then k
283- else if (if ((aD == q))
284- then (aE == k)
272+@Callable(B)
273+func changeUserStatus (aE,aF) = {
274+ let T = toString(addressFromPublicKey(B.callerPublicKey))
275+ let J = toBase58String(B.transactionId)
276+ let aG = w(Y(aE))
277+ let aH = if ((aF == o))
278+ then o
279+ else if ((aF == n))
280+ then n
281+ else if ((aF == p))
282+ then p
283+ else if ((aF == q))
284+ then q
285+ else if ((aF == m))
286+ then m
287+ else if (if ((aF == s))
288+ then (aG == m)
285289 else false)
286290 then ""
287291 else throw("Unknown status")
288- if (if ((aE == k))
289- then (aD == k)
292+ if (if ((aG == m))
293+ then (aF == m)
290294 else false)
291295 then throw("This user is already allowed")
292- else if (if ((aE == l))
293- then (aD == k)
296+ else if (if ((aG == n))
297+ then (aF == m)
294298 else false)
295299 then throw("This user is already allowed and registered")
296- else if (if ((aE == m))
297- then (aD == k)
300+ else if (if ((aG == o))
301+ then (aF == m)
298302 else false)
299303 then throw("This user is already allowed and verified")
300- else if (if ((R == h))
304+ else if (if ((T == j))
301305 then true
302- else (R == i))
303- then [StringEntry(W(aC), aF), StringEntry("last_invoke_id", H)]
304- else throw(((("You are not allowed to change user status " + R) + " / ") + h))
306+ else (T == k))
307+ then [StringEntry(Y(aE), aH), StringEntry("last_invoke_id", J)]
308+ else throw(((("You are not allowed to change user status " + T) + " / ") + j))
305309 }
306310
307311
308312
309-@Callable(z)
310-func creditUser (aC) = {
311- let R = toString(addressFromPublicKey(z.callerPublicKey))
312- let H = toBase58String(z.transactionId)
313- if (if ((R == h))
313+@Callable(B)
314+func creditUser (aE) = {
315+ let T = toString(addressFromPublicKey(B.callerPublicKey))
316+ let J = toBase58String(B.transactionId)
317+ if (if ((T == j))
314318 then true
315- else (R == i))
316- then [ScriptTransfer(Address(fromBase58String(aC)), 150000000000, d)]
319+ else (T == k))
320+ then [ScriptTransfer(Address(fromBase58String(aE)), 150000000000, d)]
317321 else throw("You are not allowed to do that")
318322 }
319323
320324
321325
322-@Callable(aG)
323-func addArtwork (E,C,av,aw,aH,aI,aJ,aK,aL,aM,aN,aO) = {
324- let Z = toBase58String(aG.transactionId)
325- let aP = toBase58String(aG.caller.bytes)
326- if (!(J(aK)))
326+@Callable(aI)
327+func addArtwork (G,E,ax,ay,aJ,aK,aL,aM,aN,aO,aP,aQ) = {
328+ let ab = toBase58String(aI.transactionId)
329+ let aR = toBase58String(aI.caller.bytes)
330+ if (!(L(aM)))
327331 then throw("Wrong Display CID length")
328- else if (!(J(aM)))
332+ else if (!(L(aO)))
329333 then throw("Wrong Export CID length")
330- else if (!(J(aO)))
334+ else if (!(L(aQ)))
331335 then throw("Wrong Licence CID length")
332- else if (!(L(E)))
336+ else if (!(N(G)))
333337 then throw("Source Hash should be 64 characters maximum")
334- else if (!(L(aL)))
338+ else if (!(N(aN)))
335339 then throw("Export Hash should be 64 characters maximum")
336- else if (!(L(aN)))
340+ else if (!(N(aP)))
337341 then throw("Licence Hash should be 64 characters maximum")
338- else if ((size(aG.payments) == 0))
342+ else if ((size(aI.payments) == 0))
339343 then throw("No payment attached")
340344 else {
341- let aQ = value(aG.payments[0])
342- let aR = value(aQ.amount)
343- let aS = if (if (isDefined(aQ.assetId))
344- then (aQ.assetId == d)
345+ let aS = value(aI.payments[0])
346+ let aT = value(aS.amount)
347+ let aU = if (if (isDefined(aS.assetId))
348+ then (aS.assetId == d)
345349 else false)
346- then aQ.assetId
350+ then aS.assetId
347351 else throw("Only SIGN token accepted at the moment")
348- let aT = {
349- let w = getInteger(a, ("certification_fee_" + toBase58String(d)))
350- if ($isInstanceOf(w, "Int"))
352+ let aV = {
353+ let y = getInteger(a, ("certification_fee_" + toBase58String(d)))
354+ if ($isInstanceOf(y, "Int"))
351355 then {
352- let aU = w
353- aU
356+ let aW = y
357+ aW
354358 }
355359 else throw("Price undefined in oracle")
356360 }
357- if ((aR != aT))
358- then throw(("Payment amount should be " + toString(aT)))
361+ if ((aT != aV))
362+ then throw(("Payment amount should be " + toString(aV)))
359363 else {
360- let aV = u(au(E, aP))
361- if ((aV != ""))
364+ let aX = w(aw(G, aR))
365+ if ((aX != ""))
362366 then throw("You already added this artwork on Sign Art")
363367 else {
364- let aW = u(ar(E))
365- if ((aW != ""))
368+ let aY = w(at(G))
369+ if ((aY != ""))
366370 then throw("This artwork hash is already registered on Sign Art")
367371 else {
368- let aX = B(C, aP, E)
369- if (!(aX))
372+ let aZ = D(E, aR, G)
373+ if (!(aZ))
370374 then throw("Sign Certificate not found on Sign-web.app smart contract for this address.")
371- else if ((size(aK) == 0))
375+ else if ((size(aM) == 0))
372376 then throw("Display CID cannot be empty")
373- else if ((size(av) == 0))
377+ else if ((size(ax) == 0))
374378 then throw("Title cannot be empty")
375- else if ((size(av) > 100))
379+ else if ((size(ax) > 100))
376380 then throw("100 Characters maximum for the name")
377- else if ((size(aw) > 1000))
381+ else if ((size(ay) > 1000))
378382 then throw("1000 Characters maximum for the description")
379- else if ((size(aw) == 0))
383+ else if ((size(ay) == 0))
380384 then throw("Description cannot be empty")
381385 else {
382- let aY = split(aH, ",")
383- if ((size(aY) > 5))
386+ let ba = split(aJ, ",")
387+ if ((size(ba) > 5))
384388 then throw("Tags should be maximum 5 single word separated by space.")
385389 else {
386- let aZ = {
387- let w = getString(this, ("user_status_" + aP))
388- if ($isInstanceOf(w, "String"))
390+ let bb = {
391+ let y = getString(this, ("user_status_" + aR))
392+ if ($isInstanceOf(y, "String"))
389393 then {
390- let ba = w
391- ba
394+ let bc = y
395+ bc
392396 }
393- else p
397+ else r
394398 }
395- let aA = lastBlock.timestamp
396- if (if (isDefined(aZ))
397- then (aZ == p)
399+ let aC = lastBlock.timestamp
400+ if (if (isDefined(bb))
401+ then (bb == r)
398402 else false)
399403 then throw("Please register this account first with \"User infos\" tab")
400- else if ((aZ == n))
404+ else if ((bb == p))
401405 then throw("Your account is suspended")
402- else if ((aZ == o))
406+ else if ((bb == q))
403407 then throw("Your account have been removed")
404- else if ((aJ > 10))
408+ else if ((aL > 10))
405409 then throw("Maximum 10 editions per artwork")
406- else if ((size(E) != 64))
410+ else if ((size(G) != 64))
407411 then throw("Hash should be sha256 string composed of 64 char.")
408- else [StringEntry(ar(E), aP), StringEntry(au(E, aP), Z), IntegerEntry(Y(aP, Z), aA), StringEntry(aa(aP, Z), av), StringEntry(ab(aP, Z), aw), StringEntry(ac(aP, Z), aK), StringEntry(ae(aP, Z), aM), StringEntry(ad(aP, Z), aL), StringEntry(aj(aP, Z), aN), StringEntry(ak(aP, Z), aO), StringEntry(am(aP, Z), aI), StringEntry(al(aP, Z), aH), IntegerEntry(af(aP, Z), aJ), StringEntry(ag(aP, Z), C), IntegerEntry(ah(aP, Z), 0), BooleanEntry(ai(aP, Z), false), StringEntry(as(aP, C), Z), StringEntry("last_invoke_id", Z), StringEntry(ap(aP, Z), E), ScriptTransfer(Address(fromBase58String(c)), aR, aS)]
412+ else [StringEntry(at(G), aR), StringEntry(aw(G, aR), ab), IntegerEntry(aa(aR, ab), aC), StringEntry(ac(aR, ab), ax), StringEntry(ad(aR, ab), ay), StringEntry(ae(aR, ab), aM), StringEntry(ag(aR, ab), aO), StringEntry(af(aR, ab), aN), StringEntry(al(aR, ab), aP), StringEntry(am(aR, ab), aQ), StringEntry(ao(aR, ab), aK), StringEntry(an(aR, ab), aJ), IntegerEntry(ah(aR, ab), aL), StringEntry(ai(aR, ab), E), IntegerEntry(aj(aR, ab), 0), BooleanEntry(ak(aR, ab), false), StringEntry(au(aR, E), ab), StringEntry("last_invoke_id", ab), StringEntry(ar(aR, ab), G), ScriptTransfer(Address(fromBase58String(c)), aT, aU)]
409413 }
410414 }
411415 }
412416 }
413417 }
414418 }
415419 }
416420
417421
418422
419-@Callable(aG)
420-func updateArtwork (aq,av,aw,aH,aI,aJ,aK,aL,aM,aN,aO) = {
421- let bb = toBase58String(aG.transactionId)
422- let aP = toBase58String(aG.caller.bytes)
423- if (!(J(aK)))
423+@Callable(aI)
424+func updateArtwork (as,ax,ay,aJ,aK,aL,aM,aN,aO,aP,aQ) = {
425+ let bd = toBase58String(aI.transactionId)
426+ let aR = toBase58String(aI.caller.bytes)
427+ if (!(L(aM)))
424428 then throw("Wrong Display CID length")
425- else if (!(J(aM)))
429+ else if (!(L(aO)))
426430 then throw("Wrong Export CID length")
427- else if (!(J(aO)))
431+ else if (!(L(aQ)))
428432 then throw("Wrong Licence CID length")
429- else if (!(L(aL)))
433+ else if (!(N(aN)))
430434 then throw("Export Hash should be 64 characters maximum")
431- else if (!(L(aN)))
435+ else if (!(N(aP)))
432436 then throw("Licence Hash should be 64 characters maximum")
433437 else {
434- let aV = u(aa(aP, aq))
435- if ((aV == ""))
438+ let aX = w(ac(aR, as))
439+ if ((aX == ""))
436440 then throw("This entry doesn't exist or you are not the owner")
437- else if ((size(av) == 0))
441+ else if ((size(ax) == 0))
438442 then throw("Title cannot be empty")
439- else if ((size(av) > 100))
443+ else if ((size(ax) > 100))
440444 then throw("100 Characters maximum for the name")
441- else if ((size(aw) > 1000))
445+ else if ((size(ay) > 1000))
442446 then throw("1000 Characters maximum for the description")
443- else if ((size(aw) == 0))
447+ else if ((size(ay) == 0))
444448 then throw("Description cannot be empty")
445449 else {
446- let bc = {
447- let w = getInteger(this, ah(aP, aq))
448- if ($isInstanceOf(w, "Int"))
450+ let be = {
451+ let y = getInteger(this, aj(aR, as))
452+ if ($isInstanceOf(y, "Int"))
449453 then {
450- let P = w
451- if ((P == 0))
454+ let R = y
455+ if ((R == 0))
452456 then false
453457 else true
454458 }
455459 else false
456460 }
457- let aY = split(aH, ",")
458- if ((size(aY) > 5))
461+ let ba = split(aJ, ",")
462+ if ((size(ba) > 5))
459463 then throw("Tags should be maximum 5 single word separated by space.")
460464 else {
461- let aZ = {
462- let w = getString(this, ("user_status_" + aP))
463- if ($isInstanceOf(w, "String"))
465+ let bb = {
466+ let y = getString(this, ("user_status_" + aR))
467+ if ($isInstanceOf(y, "String"))
464468 then {
465- let ba = w
466- ba
469+ let bc = y
470+ bc
467471 }
468- else p
472+ else r
469473 }
470- if (if (isDefined(aZ))
471- then (aZ == p)
474+ if (if (isDefined(bb))
475+ then (bb == r)
472476 else false)
473477 then throw("Please register this account first with \"User infos\" tab")
474- else if ((aZ == n))
478+ else if ((bb == p))
475479 then throw("Your account is suspended")
476- else if ((aZ == o))
480+ else if ((bb == q))
477481 then throw("Your account have been removed")
478- else if ((aJ > 10))
482+ else if ((aL > 10))
479483 then throw("Maximum 10 editions per artwork")
480- else if (!(bc))
481- then [StringEntry(aa(aP, aq), av), StringEntry(ab(aP, aq), aw), StringEntry(ac(aP, aq), aK), StringEntry(ae(aP, aq), aM), StringEntry(ad(aP, aq), aL), StringEntry(ak(aP, aq), aO), StringEntry(aj(aP, aq), aN), IntegerEntry(af(aP, aq), aJ), StringEntry(al(aP, aq), aH), StringEntry(am(aP, aq), aI), StringEntry("last_invoke_id", bb)]
484+ else if (!(be))
485+ then [StringEntry(ac(aR, as), ax), StringEntry(ad(aR, as), ay), StringEntry(ae(aR, as), aM), StringEntry(ag(aR, as), aO), StringEntry(af(aR, as), aN), StringEntry(am(aR, as), aQ), StringEntry(al(aR, as), aP), IntegerEntry(ah(aR, as), aL), StringEntry(an(aR, as), aJ), StringEntry(ao(aR, as), aK), StringEntry("last_invoke_id", bd)]
482486 else throw("You cannot edit artwork that have already minted NFT(s)")
483487 }
484488 }
485489 }
486490 }
487491
488492
489493
490-@Callable(z)
491-func deleteArtwork (Z,aC) = {
492- let aP = toString(addressFromPublicKey(z.callerPublicKey))
493- let H = toBase58String(z.transactionId)
494- let bd = if (if ((aP == h))
494+@Callable(B)
495+func deleteArtwork (ab,aE) = {
496+ let aR = toString(addressFromPublicKey(B.callerPublicKey))
497+ let J = toBase58String(B.transactionId)
498+ let bf = if (if ((aR == j))
495499 then true
496- else (aP == i))
497- then aC
498- else aP
499- let aV = {
500- let w = getString(this, aa(bd, Z))
501- if ($isInstanceOf(w, "String"))
500+ else (aR == k))
501+ then aE
502+ else aR
503+ let aX = {
504+ let y = getString(this, ac(bf, ab))
505+ if ($isInstanceOf(y, "String"))
502506 then {
503- let ba = w
504- ba
507+ let bc = y
508+ bc
505509 }
506510 else throw("No artwork matching this request or you are not allowed")
507511 }
508- let bc = {
509- let w = getInteger(this, ah(bd, Z))
510- if ($isInstanceOf(w, "Int"))
512+ let be = {
513+ let y = getInteger(this, aj(bf, ab))
514+ if ($isInstanceOf(y, "Int"))
511515 then {
512- let P = w
513- if ((P == 0))
516+ let R = y
517+ if ((R == 0))
514518 then false
515519 else true
516520 }
517521 else false
518522 }
519- let E = {
520- let w = getString(this, ap(bd, Z))
521- if ($isInstanceOf(w, "String"))
523+ let G = {
524+ let y = getString(this, ar(bf, ab))
525+ if ($isInstanceOf(y, "String"))
522526 then {
523- let ba = w
524- ba
527+ let bc = y
528+ bc
525529 }
526530 else throw("No artwork hash matching this request")
527531 }
528- let C = {
529- let w = getString(this, ag(bd, Z))
530- if ($isInstanceOf(w, "String"))
532+ let E = {
533+ let y = getString(this, ai(bf, ab))
534+ if ($isInstanceOf(y, "String"))
531535 then {
532- let ba = w
533- ba
536+ let bc = y
537+ bc
534538 }
535539 else throw("No SIGN ID matching this request")
536540 }
537- let be = [DeleteEntry(Y(bd, Z)), DeleteEntry(aa(bd, Z)), DeleteEntry(ab(bd, Z)), DeleteEntry(ac(bd, Z)), DeleteEntry(ae(bd, Z)), DeleteEntry(ad(bd, Z)), DeleteEntry(aj(bd, Z)), DeleteEntry(ak(bd, Z)), DeleteEntry(am(bd, Z)), DeleteEntry(al(bd, Z)), DeleteEntry(af(bd, Z)), DeleteEntry(ag(bd, Z)), DeleteEntry(ah(bd, Z)), DeleteEntry(ai(bd, Z)), StringEntry("last_invoke_id", H), DeleteEntry(ar(E)), DeleteEntry(as(bd, C)), DeleteEntry(au(E, bd))]
538- if (if ((aP == h))
541+ let bg = [DeleteEntry(aa(bf, ab)), DeleteEntry(ac(bf, ab)), DeleteEntry(ad(bf, ab)), DeleteEntry(ae(bf, ab)), DeleteEntry(ag(bf, ab)), DeleteEntry(af(bf, ab)), DeleteEntry(al(bf, ab)), DeleteEntry(am(bf, ab)), DeleteEntry(ao(bf, ab)), DeleteEntry(an(bf, ab)), DeleteEntry(ah(bf, ab)), DeleteEntry(ai(bf, ab)), DeleteEntry(aj(bf, ab)), DeleteEntry(ak(bf, ab)), StringEntry("last_invoke_id", J), DeleteEntry(at(G)), DeleteEntry(au(bf, E)), DeleteEntry(aw(G, bf))]
542+ if (if ((aR == j))
539543 then true
540- else (aP == i))
541- then be
542- else if (!(bc))
543- then be
544+ else (aR == k))
545+ then bg
546+ else if (!(be))
547+ then bg
544548 else throw("This artwork already have minted NFT, you cannot delete it")
545549 }
546550
547551
548552
549-@Callable(aG)
550-func sellArtwork (Z,aU,bf,aS) = {
551- let H = toBase58String(aG.transactionId)
552- let aP = toBase58String(aG.caller.bytes)
553- let bg = lastBlock.timestamp
554- let bh = u(ae(aP, Z))
555- if ((size(split(bh, "/")[0]) != 59))
553+@Callable(aI)
554+func sellArtwork (ab,aW,bh,aU) = {
555+ let J = toBase58String(aI.transactionId)
556+ let aR = toBase58String(aI.caller.bytes)
557+ let bi = lastBlock.timestamp
558+ let bj = w(ag(aR, ab))
559+ if ((size(split(bj, "/")[0]) != 59))
556560 then throw("You cannot sell artwork with no export file")
557561 else {
558- let bi = u(ad(aP, Z))
559- if ((size(bi) != 64))
562+ let bk = w(af(aR, ab))
563+ if ((size(bk) != 64))
560564 then throw("You cannot sell artwork with no export hash")
561- else if (if (if ((aS != toBase58String(d)))
562- then (aS != toBase58String(f))
565+ else if (if (if ((aU != toBase58String(d)))
566+ then (aU != toBase58String(f))
563567 else false)
564- then (aS != toBase58String(e))
568+ then (aU != toBase58String(e))
565569 else false)
566570 then throw("Only SIGN, USDN or WAVES currency accepted at the moment")
567571 else {
568- let bj = {
569- let w = getString(this, aa(aP, Z))
570- if ($isInstanceOf(w, "String"))
572+ let bl = {
573+ let y = getString(this, ac(aR, ab))
574+ if ($isInstanceOf(y, "String"))
571575 then {
572- let ba = w
573- ba
576+ let bc = y
577+ bc
574578 }
575579 else throw("This artwork doesn't exit or you are not the owner")
576580 }
577- let aZ = {
578- let w = getString(this, W(aP))
579- if ($isInstanceOf(w, "String"))
581+ let bb = {
582+ let y = getString(this, Y(aR))
583+ if ($isInstanceOf(y, "String"))
580584 then {
581- let ba = w
582- ba
585+ let bc = y
586+ bc
583587 }
584588 else throw("Please register this account first")
585589 }
586- let bk = {
587- let w = getInteger(this, ah(aP, Z))
588- if ($isInstanceOf(w, "Int"))
590+ let bm = {
591+ let y = getInteger(this, aj(aR, ab))
592+ if ($isInstanceOf(y, "Int"))
589593 then {
590- let bl = w
591- bl
594+ let bn = y
595+ bn
592596 }
593597 else 0
594598 }
595- let bm = {
596- let w = getInteger(this, af(aP, Z))
597- if ($isInstanceOf(w, "Int"))
599+ let bo = {
600+ let y = getInteger(this, ah(aR, ab))
601+ if ($isInstanceOf(y, "Int"))
598602 then {
599- let bl = w
600- bl
603+ let bn = y
604+ bn
601605 }
602606 else 0
603607 }
604- if (if ((bk != 0))
605- then (bk == bm)
608+ if (if ((bm != 0))
609+ then (bm == bo)
606610 else false)
607611 then throw("You reached the max edition allowed to sell for this edition.")
608- else if (if ((bk > 0))
609- then (bm != bf)
612+ else if (if ((bm > 0))
613+ then (bo != bh)
610614 else false)
611615 then throw("You cannot change the maximum issuable anymore")
612- else if ((aZ == n))
616+ else if ((bb == p))
613617 then throw("Your account is suspended")
614- else if ((aZ == o))
618+ else if ((bb == q))
615619 then throw("Your account have been deleted")
616620 else {
617- let bn = if ((aU > 0))
621+ let bp = if ((aW > 0))
618622 then true
619623 else false
620-[BooleanEntry(ai(aP, Z), bn), IntegerEntry(an(aP, Z), aU), IntegerEntry(af(aP, Z), bf), StringEntry(ao(aP, Z), aS), StringEntry("last_invoke_id", H)]
624+[BooleanEntry(ak(aR, ab), bp), IntegerEntry(ap(aR, ab), aW), IntegerEntry(ah(aR, ab), bh), StringEntry(aq(aR, ab), aU), StringEntry("last_invoke_id", J)]
621625 }
622626 }
623627 }
624628 }
625629
626630
627631
628-@Callable(aG)
629-func buyArtwork (Z,bo) = {
630- let H = toBase58String(aG.transactionId)
631- let aP = toBase58String(aG.caller.bytes)
632- let bp = y("total_nft_issued")
633- let C = u(ag(bo, Z))
634- let bj = {
635- let w = getString(this, aa(bo, Z))
636- if ($isInstanceOf(w, "String"))
632+@Callable(aI)
633+func buyArtwork (ab,bq) = {
634+ let J = toBase58String(aI.transactionId)
635+ let aR = toBase58String(aI.caller.bytes)
636+ let br = A("total_nft_issued")
637+ let E = w(ai(bq, ab))
638+ let bl = {
639+ let y = getString(this, ac(bq, ab))
640+ if ($isInstanceOf(y, "String"))
637641 then {
638- let ba = w
639- ba
642+ let bc = y
643+ bc
640644 }
641645 else throw("This artwork doesn't exit")
642646 }
643- let bq = u(ac(bo, Z))
644- let bh = u(ae(bo, Z))
645- let bi = u(ad(bo, Z))
646- let br = u(ak(bo, Z))
647- let bs = u(aj(bo, Z))
648- let aw = take(u(ab(bo, Z)), 50)
649- let bk = y(ah(bo, Z))
650- let bt = y(an(bo, Z))
651- let bu = A(ai(bo, Z))
652- let bv = u(ao(bo, Z))
653- let bw = u(ap(bo, Z))
654- if ((bt == 0))
647+ let bs = w(ae(bq, ab))
648+ let bj = w(ag(bq, ab))
649+ let bk = w(af(bq, ab))
650+ let bt = w(am(bq, ab))
651+ let bu = w(al(bq, ab))
652+ let ay = take(w(ad(bq, ab)), 50)
653+ let bm = A(aj(bq, ab))
654+ let bv = A(ap(bq, ab))
655+ let bw = C(ak(bq, ab))
656+ let bx = w(aq(bq, ab))
657+ let by = w(ar(bq, ab))
658+ if ((bv == 0))
655659 then throw("This artwork is not for sell")
656- else if (!(bu))
660+ else if (!(bw))
657661 then throw("This artwork is not for sale")
658662 else {
659- let bm = y(af(bo, Z))
660- let aQ = value(aG.payments[0])
661- let aR = value(aQ.amount)
662- let aS = if (if (isDefined(aQ.assetId))
663- then (aQ.assetId == fromBase58String(bv))
663+ let bo = A(ah(bq, ab))
664+ let aS = value(aI.payments[0])
665+ let aT = value(aS.amount)
666+ let aU = if (if (isDefined(aS.assetId))
667+ then (aS.assetId == fromBase58String(bx))
664668 else false)
665- then aQ.assetId
666- else throw((("Only " + bv) + " token id accepted at the moment"))
667- if ((bk == bm))
669+ then aS.assetId
670+ else throw((("Only " + bx) + " token id accepted at the moment"))
671+ let bz = if ((bx == toBase58String(d)))
672+ then 8
673+ else 10
674+ let bA = ((aT / 100) * bz)
675+ let bB = (aT - bA)
676+ if ((bm == bo))
668677 then throw("Cannot buy this artwork anymore, maximum editions reached")
669- else if ((bt != aR))
670- then throw(((("Payment don't match seller price: " + toString(bt)) + " vs ") + toString(aR)))
678+ else if ((bv != aT))
679+ then throw(((("Payment don't match seller price: " + toString(bv)) + " vs ") + toString(aT)))
671680 else {
672- let bx = (bk + 1)
673- let by = lastBlock.timestamp
674- let bz = (((((((((((((((((((((((((((("{\"version\": 1,
675- \"creator\": \"" + bo) + "\",
676- \"artID\": \"") + Z) + "\",
677- \"signID\": \"") + C) + "\",
678- \"artwork_name\": \"") + bj) + "\",
679- \"artwork_desc\": \"") + aw) + "\",
680- \"issue\": \"") + toString(bx)) + "/") + toString(bm)) + "\",
681- \"maxIssuable\": \"") + toString(bm)) + "\",
682- \"source_hash\": \"") + bw) + "\",
683- \"display_cid\": \"") + bq) + "\",
684- \"export_cid\": \"") + bh) + "\",
685- \"export_hash\": \"") + bi) + "\",
686- \"licence_cid\": \"") + br) + "\",
687- \"licence_hash\": \"") + bs) + "\"}")
688- let bA = Issue(("SA_" + toString((bp + 1))), bz, 1, 0, false)
689- let bB = calculateAssetId(bA)
690- let bn = if ((bx == bm))
681+ let bC = (bm + 1)
682+ let bD = lastBlock.timestamp
683+ let bE = (((((((((((((((((((((((((((("{\"version\": 1,
684+ \"creator\": \"" + bq) + "\",
685+ \"artID\": \"") + ab) + "\",
686+ \"signID\": \"") + E) + "\",
687+ \"artwork_name\": \"") + bl) + "\",
688+ \"artwork_desc\": \"") + ay) + "\",
689+ \"issue\": \"") + toString(bC)) + "/") + toString(bo)) + "\",
690+ \"maxIssuable\": \"") + toString(bo)) + "\",
691+ \"source_hash\": \"") + by) + "\",
692+ \"display_cid\": \"") + bs) + "\",
693+ \"export_cid\": \"") + bj) + "\",
694+ \"export_hash\": \"") + bk) + "\",
695+ \"licence_cid\": \"") + bt) + "\",
696+ \"licence_hash\": \"") + bu) + "\"}")
697+ let bF = Issue(("SA_" + toString((br + 1))), bE, 1, 0, false)
698+ let bG = calculateAssetId(bF)
699+ let bp = if ((bC == bo))
691700 then false
692701 else true
693-[IntegerEntry(ah(bo, Z), bx), StringEntry(((((((("art_sold_" + toString(bx)) + "_of_") + toString(bm)) + "_") + Z) + "_") + bo), ((((((((aP + "_") + toString(by)) + "_") + H) + "_") + toString(bt)) + "_") + bv)), IntegerEntry("total_nft_issued", (bp + 1)), BooleanEntry(ai(bo, Z), bn), StringEntry("last_invoke_id", H), bA, ScriptTransfer(Address(fromBase58String(bo)), aR, aS), ScriptTransfer(aG.caller, 1, bB)]
702+[IntegerEntry(aj(bq, ab), bC), StringEntry(((((((("art_sold_" + toString(bC)) + "_of_") + toString(bo)) + "_") + ab) + "_") + bq), ((((((((aR + "_") + toString(bD)) + "_") + J) + "_") + toString(bv)) + "_") + bx)), IntegerEntry("total_nft_issued", (br + 1)), BooleanEntry(ak(bq, ab), bp), StringEntry("last_invoke_id", J), bF, ScriptTransfer(Address(fromBase58String(bq)), bB, aU), ScriptTransfer(Address(fromBase58String(c)), bA, aU), ScriptTransfer(aI.caller, 1, bG)]
694703 }
695704 }
696705 }
697706
698707
699708
700-@Callable(z)
701-func deleteUser (aC) = {
702- let R = toString(addressFromPublicKey(z.callerPublicKey))
703- let H = toBase58String(z.transactionId)
704- if (if ((R == h))
709+@Callable(B)
710+func deleteUser (aE) = {
711+ let T = toString(addressFromPublicKey(B.callerPublicKey))
712+ let J = toBase58String(B.transactionId)
713+ if (if ((T == j))
705714 then true
706- else (R == i))
707- then [DeleteEntry(X(aC)), DeleteEntry(Q(aC)), DeleteEntry(S(aC)), DeleteEntry(T(aC)), DeleteEntry(U(aC)), DeleteEntry(V(aC)), StringEntry(W(aC), o), StringEntry("last_invoke_id", H)]
715+ else (T == k))
716+ then [DeleteEntry(Z(aE)), DeleteEntry(S(aE)), DeleteEntry(U(aE)), DeleteEntry(V(aE)), DeleteEntry(W(aE)), DeleteEntry(X(aE)), StringEntry(Y(aE), q), StringEntry("last_invoke_id", J)]
708717 else throw("You are not allowed to do that")
709718 }
710719
711720

github/deemru/w8io/169f3d6 
327.28 ms