tx · Dx9vfNH8Yn9kaTyA6kX3LEkrdu5ocbuSeUVzKJNj3LFT

3N2Tdcx5fzxJAKP5hMp9W35Cp1EFzfiJ1zG:  -0.01400000 Waves

2020.10.15 15:55 [1221701] smart account 3N2Tdcx5fzxJAKP5hMp9W35Cp1EFzfiJ1zG > SELF 0.00000000 Waves

{ "type": 13, "id": "Dx9vfNH8Yn9kaTyA6kX3LEkrdu5ocbuSeUVzKJNj3LFT", "fee": 1400000, "feeAssetId": null, "timestamp": 1602766598900, "version": 2, "chainId": 84, "sender": "3N2Tdcx5fzxJAKP5hMp9W35Cp1EFzfiJ1zG", "senderPublicKey": "9SULUbW7L2jV2nv8v48Kdzox4cZ8jEfg778yJHJpgVwM", "proofs": [ "27PSjWqm4wE7ENTcJ2oHmZ3CDytDvWwzJauNmVoYYkcX6THEkdPswryUzuUh3iLh1aec5A6qDmEJLZVCEPBtcJSH" ], "script": "base64:AAIEAAAAAAAAAFoIAhIGCgQICAgIEgMKAQgSBgoECAgICBIECgIICBIDCgEIEg4KDAgICAgICAEICAgICBINCgsICAgICAEICAgICBIECgIICBIGCgQIAQEIEgQKAggIEgMKAQgAAAA6AAAAAA9zdG9yYWdlVmVyaWZpZXIJAQAAAAV2YWx1ZQAAAAEJAAQmAAAAAQIAAAAjM04yczVSdGFIUEJlbkNzeDJFQ2NvRlJiWUh4M25vWmhYVzEAAAAADHNpZ25WZXJpZmllcgkBAAAABXZhbHVlAAAAAQkABCYAAAABAgAAACMzTkMyOGhTaXZybXNUVVhhWUQxeDZMMzYySjRacFVub1RkQgAAAAALZmVlUmVjZWl2ZXICAAAAIzNOMUU2dFhkZFJvVmFSZlE5ZFEzdmc1TGFXMmZzZDhIS3ViAAAAAAtzaWduQXNzZXRJZAEAAAAg6KVqvMp3QvJwYTI1Sk9Fg7m5HuWZZxfDcerZC6EEresAAAAAC3VzZG5Bc3NldElkAQAAACAP8hwSrOTEPJrsRhqrJaiw7LoHK0bMbYhy8LXikkkBtAAAAAAMd2F2ZXNBc3NldElkAQAAAAAAAAAAB3NpZ25DdXQAAAAAAAAAAAgAAAAAB3VzZG5DdXQAAAAAAAAAAAoAAAAACHdhdmVzQ3V0AAAAAAAAAAAKAAAAAAVhZG1pbgIAAAAjM01zRzZqUE5DclZKVXRZQjdYSkJ4Uzd1dFdzWEFmNG45VnAAAAAABmFkbWluMgIAAAAjM016bTRWTHdzTjl1WndiVE16UGozWHV4VjZrRWZBUjhVRE4AAAAAD1dISVRFTElTVEVET05MWQYAAAAAC3VzZXJBbGxvd2VkAgAAAAdBTExPV0VEAAAAAA51c2VyUmVnaXN0ZXJlZAIAAAAKUkVHSVNURVJFRAAAAAAMdXNlclZlcmlmaWVkAgAAAAhWRVJJRklFRAAAAAANdXNlclN1c3BlbmRlZAIAAAAJU1VTUEVOREVEAAAAAAt1c2VyUmVtb3ZlZAIAAAAHUkVNT1ZFRAAAAAAQdXNlclVucmVnaXN0ZXJlZAIAAAAMVU5SRUdJU1RFUkVEAAAAAAl1c2VyUmVzZXQCAAAABVJFU0VUAAAAAAZvblNhbGUCAAAAB09OX1NBTEUAAAAABHNvbGQCAAAABFNPTEQAAAAACGNhbmNlbGVkAgAAAAhDQU5DRUxFRAEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABAAAAA2tleQQAAAAHJG1hdGNoMAkABB0AAAACBQAAAAR0aGlzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQIAAAAAAQAAAA9nZXRJbnRlZ2VyQnlLZXkAAAABAAAAA2tleQQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABaQUAAAAHJG1hdGNoMAUAAAABaQAAAAAAAAAAAAEAAAAPZ2V0Qm9vbGVhbkJ5S2V5AAAAAQAAAANrZXkEAAAAByRtYXRjaDAJAAQbAAAAAgUAAAAEdGhpcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAdCb29sZWFuBAAAAAFpBQAAAAckbWF0Y2gwBQAAAAFpBwEAAAAUY2hlY2tTaWduQ2VydGlmaWNhdGUAAAADAAAABnNpZ25JRAAAAAVPd25lcgAAAApzaGEyNTZIYXNoBAAAAAckbWF0Y2gwCQAEHQAAAAIFAAAADHNpZ25WZXJpZmllcgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAIZGF0YV9mY18FAAAABnNpZ25JRAIAAAABXwUAAAAFT3duZXIDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABYQUAAAAHJG1hdGNoMAMJAQAAAAhjb250YWlucwAAAAIFAAAAAWEFAAAACnNoYTI1Nkhhc2gGBwcBAAAAC3ZhbGlkYXRlQ0lEAAAAAQAAAANjaWQDAwkAAGYAAAACAAAAAAAAAABLCQABMQAAAAEFAAAAA2NpZAkAAGYAAAACAAAAAAAAAAA8CQABMQAAAAEJAAGRAAAAAgkABLUAAAACBQAAAANjaWQCAAAAAS8AAAAAAAAAAAAHCQAAZgAAAAIAAAAAAAAAABAJAAExAAAAAQkAAZEAAAACCQAEtQAAAAIFAAAAA2NpZAIAAAABLwAAAAAAAAAAAQcBAAAADHZhbGlkYXRlSGFzaAAAAAEAAAAEaGFzaAkAAGYAAAACAAAAAAAAAABBCQABMQAAAAEFAAAABGhhc2gBAAAAC2tleVVzZXJBZGRyAAAAAQAAAApjYWxsZXJBZGRyCQABLAAAAAICAAAABXVzZXJfBQAAAApjYWxsZXJBZGRyAQAAAAtrZXlVc2VyTmFtZQAAAAEAAAAKY2FsbGVyQWRkcgkAASwAAAACAgAAAAp1c2VyX25hbWVfBQAAAApjYWxsZXJBZGRyAQAAAAtrZXlVc2VyRGVzYwAAAAEAAAAKY2FsbGVyQWRkcgkAASwAAAACAgAAAAp1c2VyX2Rlc2NfBQAAAApjYWxsZXJBZGRyAQAAAA1rZXlVc2VyU29jaWFsAAAAAQAAAApjYWxsZXJBZGRyCQABLAAAAAICAAAADHVzZXJfc29jaWFsXwUAAAAKY2FsbGVyQWRkcgEAAAAMa2V5VXNlclRodW1iAAAAAQAAAApjYWxsZXJBZGRyCQABLAAAAAICAAAAC3VzZXJfdGh1bWJfBQAAAApjYWxsZXJBZGRyAQAAAA1rZXlVc2VyU3RhdHVzAAAAAQAAAApjYWxsZXJBZGRyCQABLAAAAAICAAAADHVzZXJfc3RhdHVzXwUAAAAKY2FsbGVyQWRkcgEAAAALa2V5VXNlckRhdGUAAAABAAAACmNhbGxlckFkZHIJAAEsAAAAAgIAAAAKdXNlcl9kYXRlXwUAAAAKY2FsbGVyQWRkcgEAAAAKa2V5QXJ0RGF0ZQAAAAIAAAAKY2FsbGVyQWRkcgAAAAVhcnRJZAkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAJYXJ0X2RhdGVfBQAAAAVhcnRJZAIAAAABXwUAAAAKY2FsbGVyQWRkcgEAAAAKa2V5QXJ0TmFtZQAAAAIAAAAKY2FsbGVyQWRkcgAAAAVhcnRJZAkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAJYXJ0X25hbWVfBQAAAAVhcnRJZAIAAAABXwUAAAAKY2FsbGVyQWRkcgEAAAAKa2V5QXJ0RGVzYwAAAAIAAAAKY2FsbGVyQWRkcgAAAAVhcnRJZAkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAJYXJ0X2Rlc2NfBQAAAAVhcnRJZAIAAAABXwUAAAAKY2FsbGVyQWRkcgEAAAAQa2V5QXJ0RGlzcGxheUNpZAAAAAIAAAAKY2FsbGVyQWRkcgAAAAVhcnRJZAkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAQYXJ0X2Rpc3BsYXlfY2lkXwUAAAAFYXJ0SWQCAAAAAV8FAAAACmNhbGxlckFkZHIBAAAAEGtleUFydEV4cG9ydEhhc2gAAAACAAAACmNhbGxlckFkZHIAAAAFYXJ0SWQJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAEGFydF9leHBvcnRfaGFzaF8FAAAABWFydElkAgAAAAFfBQAAAApjYWxsZXJBZGRyAQAAAA9rZXlBcnRFeHBvcnRDaWQAAAACAAAACmNhbGxlckFkZHIAAAAFYXJ0SWQJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAD2FydF9leHBvcnRfY2lkXwUAAAAFYXJ0SWQCAAAAAV8FAAAACmNhbGxlckFkZHIBAAAADWtleUFydE1heE1pbnQAAAACAAAACmNhbGxlckFkZHIAAAAFYXJ0SWQJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAADGFydF9tYXhtaW50XwUAAAAFYXJ0SWQCAAAAAV8FAAAACmNhbGxlckFkZHIBAAAADGtleUFydFNpZ25JRAAAAAIAAAAKY2FsbGVyQWRkcgAAAAVhcnRJZAkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAALYXJ0X3NpZ25pZF8FAAAABWFydElkAgAAAAFfBQAAAApjYWxsZXJBZGRyAQAAAAxrZXlBcnRJc3N1ZWQAAAACAAAACmNhbGxlckFkZHIAAAAFYXJ0SWQJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAC2FydF9pc3N1ZWRfBQAAAAVhcnRJZAIAAAABXwUAAAAKY2FsbGVyQWRkcgEAAAAMa2V5QXJ0T25TYWxlAAAAAgAAAApjYWxsZXJBZGRyAAAABWFydElkCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAthcnRfb25zYWxlXwUAAAAFYXJ0SWQCAAAAAV8FAAAACmNhbGxlckFkZHIBAAAAEWtleUFydExpY2VuY2VIYXNoAAAAAgAAAApjYWxsZXJBZGRyAAAABWFydElkCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAABFhcnRfbGljZW5jZV9oYXNoXwUAAAAFYXJ0SWQCAAAAAV8FAAAACmNhbGxlckFkZHIBAAAAEGtleUFydExpY2VuY2VDaWQAAAACAAAACmNhbGxlckFkZHIAAAAFYXJ0SWQJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAEGFydF9saWNlbmNlX2NpZF8FAAAABWFydElkAgAAAAFfBQAAAApjYWxsZXJBZGRyAQAAAAprZXlBcnRUYWdzAAAAAgAAAApjYWxsZXJBZGRyAAAABWFydElkCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAlhcnRfdGFnc18FAAAABWFydElkAgAAAAFfBQAAAApjYWxsZXJBZGRyAQAAAAprZXlBcnRUeXBlAAAAAgAAAApjYWxsZXJBZGRyAAAABWFydElkCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAlhcnRfdHlwZV8FAAAABWFydElkAgAAAAFfBQAAAApjYWxsZXJBZGRyAQAAAAtrZXlBcnRQcmljZQAAAAIAAAAKY2FsbGVyQWRkcgAAAAVhcnRJZAkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAKYXJ0X3ByaWNlXwUAAAAFYXJ0SWQCAAAAAV8FAAAACmNhbGxlckFkZHIBAAAAFWtleUFydEFzc2V0SWRBY2NlcHRlZAAAAAIAAAAKY2FsbGVyQWRkcgAAAAVhcnRJZAkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAASYXJ0X2Fzc2V0QWNjZXB0ZWRfBQAAAAVhcnRJZAIAAAABXwUAAAAKY2FsbGVyQWRkcgEAAAAUa2V5QXJ0SGFzaEJ5VHhpZEFkZHIAAAACAAAACmNhbGxlckFkZHIAAAAEdHhpZAkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAATZ2V0X2hhc2hieXR4aWRhZGRyXwUAAAAEdHhpZAIAAAABXwUAAAAKY2FsbGVyQWRkcgEAAAARa2V5QXJ0T3duZXJCeUhhc2gAAAABAAAACnNoYTI1Nkhhc2gJAAEsAAAAAgIAAAASZ2V0X293bmVyX2J5X2hhc2hfBQAAAApzaGEyNTZIYXNoAQAAABNrZXlBcnRBcnRpZEJ5U2lnbmlkAAAAAgAAAApjYWxsZXJBZGRyAAAABnNpZ25JZAkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAASZ2V0X2FydGlkYnlzaWduaWRfBQAAAAZzaWduSWQCAAAAAV8FAAAACmNhbGxlckFkZHIBAAAAFWtleUFydFR4aWRCeUhhc2hPd25lcgAAAAIAAAAKc2hhMjU2SGFzaAAAAApjYWxsZXJBZGRyCQABLAAAAAICAAAAF2dldF90eGlkX2J5X2hhc2hfb3duZXJfCQACWAAAAAEJAAtUAAAAAQkAAZsAAAABCQABLAAAAAIFAAAACnNoYTI1Nkhhc2gFAAAACmNhbGxlckFkZHIBAAAADnZhbGlkYXRlQWxsQ0lEAAAAAwAAAApjaWREaXNwbGF5AAAACWNpZEV4cG9ydAAAAApjaWRMaWNlbmNlAwMJAQAAAAIhPQAAAAIFAAAACmNpZERpc3BsYXkCAAAAAAkBAAAAASEAAAABCQEAAAALdmFsaWRhdGVDSUQAAAABBQAAAApjaWREaXNwbGF5BwkAAAIAAAABAgAAABhXcm9uZyBEaXNwbGF5IENJRCBsZW5ndGgDAwkBAAAAAiE9AAAAAgUAAAAJY2lkRXhwb3J0AgAAAAAJAQAAAAEhAAAAAQkBAAAAC3ZhbGlkYXRlQ0lEAAAAAQUAAAAJY2lkRXhwb3J0BwkAAAIAAAABAgAAABdXcm9uZyBFeHBvcnQgQ0lEIGxlbmd0aAMDCQEAAAACIT0AAAACBQAAAApjaWRMaWNlbmNlAgAAAAAJAQAAAAEhAAAAAQkBAAAAC3ZhbGlkYXRlQ0lEAAAAAQUAAAAKY2lkTGljZW5jZQcJAAACAAAAAQIAAAAYV3JvbmcgTGljZW5jZSBDSUQgbGVuZ3RoBgEAAAAPdmFsaWRhdGVBbGxIYXNoAAAAAgAAAAxzaGEyNTZFeHBvcnQAAAANc2hhMjU2TGljZW5jZQMDCQEAAAACIT0AAAACBQAAAAxzaGEyNTZFeHBvcnQCAAAAAAkBAAAAASEAAAABCQEAAAAMdmFsaWRhdGVIYXNoAAAAAQUAAAAMc2hhMjU2RXhwb3J0BwkAAAIAAAABAgAAACtFeHBvcnQgSGFzaCBzaG91bGQgYmUgNjQgY2hhcmFjdGVycyBtYXhpbXVtAwMJAQAAAAIhPQAAAAIFAAAADXNoYTI1NkxpY2VuY2UCAAAAAAkBAAAAASEAAAABCQEAAAAMdmFsaWRhdGVIYXNoAAAAAQUAAAANc2hhMjU2TGljZW5jZQcJAAACAAAAAQIAAAAsTGljZW5jZSBIYXNoIHNob3VsZCBiZSA2NCBjaGFyYWN0ZXJzIG1heGltdW0GAQAAAA52YWxpZGF0ZVN0cmluZwAAAAIAAAADc3RyAAAAA21heAMJAAAAAAAAAgkAATEAAAABBQAAAANzdHIAAAAAAAAAAAAJAAACAAAAAQIAAAAYRmllbGQgY2Fubm90IGJlIGlzIGVtcHR5AwkAAGYAAAACCQABMQAAAAEFAAAAA3N0cgUAAAADbWF4CQAAAgAAAAEJAAEsAAAAAgUAAAADc3RyAgAAAAwgaXMgdG9vIGxvbmcGAAAACwAAAAFpAQAAAAxyZWdpc3RlclVzZXIAAAAEAAAABG5hbWUAAAALZGVzY3JpcHRpb24AAAAFdGh1bWIAAAAGc29jaWFsBAAAAApjYWxsZXJBZGRyCQAEJQAAAAEJAQAAABRhZGRyZXNzRnJvbVB1YmxpY0tleQAAAAEIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQQAAAAPdXNlckNhblJlZ2lzdGVyCQEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABCQEAAAANa2V5VXNlclN0YXR1cwAAAAEFAAAACmNhbGxlckFkZHIEAAAAAmlkCQACWAAAAAEIBQAAAAFpAAAADXRyYW5zYWN0aW9uSWQEAAAACXRpbWVzdGFtcAgFAAAACWxhc3RCbG9jawAAAAl0aW1lc3RhbXADAwkAAAAAAAACBQAAAA91c2VyQ2FuUmVnaXN0ZXIFAAAADXVzZXJTdXNwZW5kZWQGCQAAAAAAAAIFAAAAD3VzZXJDYW5SZWdpc3RlcgUAAAALdXNlclJlbW92ZWQJAAACAAAAAQIAAABLWW91IGFyZSBub3cgYWxsb3dlZCB0byByZWdpc3RlciwgeW91ciBhY2NvdW50IGhhdmUgYmVlbiBzdXNwZW5kZWQvIHJlbW92ZWQuAwkAAAAAAAACBQAAAA91c2VyQ2FuUmVnaXN0ZXIFAAAADnVzZXJSZWdpc3RlcmVkCQAAAgAAAAECAAAAPVlvdSBhcmUgYWxyZWFkeSByZWdpc3RlcmVkLCBwbGVhc2UgdXNlIHVwZGF0ZSBtZXRob2QgaW5zdGVhZC4DAwkAAAAAAAACBQAAAA91c2VyQ2FuUmVnaXN0ZXICAAAAAAUAAAAPV0hJVEVMSVNURURPTkxZBwkAAAIAAAABAgAAAE1Zb3UgYXJlIG5vdyBhbGxvd2VkIHRvIHJlZ2lzdGVyIHlldCwgcGxlYXNlIGNvbnRhY3QgdXMgZmlyc3QgdG8gZ2V0IGFwcHJvdmVkLgMDCQAAAAAAAAIFAAAABG5hbWUCAAAAAAYJAAAAAAAAAgUAAAALZGVzY3JpcHRpb24CAAAAAAkAAAIAAAABAgAAACROYW1lIGFuZCBkZXNjcmlwdGlvbiBjYW5ub3QgYmUgZW1wdHkDCQAAZgAAAAIJAAExAAAAAQUAAAALZGVzY3JpcHRpb24AAAAAAAAAAlgJAAACAAAAAQIAAAAqNjAwIENoYXJhY3RlcnMgbWF4aW11bSBmb3IgdGhlIGRlc2NyaXB0aW9uCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAALa2V5VXNlckRhdGUAAAABBQAAAApjYWxsZXJBZGRyBQAAAAl0aW1lc3RhbXAJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAC2tleVVzZXJBZGRyAAAAAQUAAAAKY2FsbGVyQWRkcgkAASwAAAACCQABLAAAAAIFAAAAAmlkAgAAAAFfCQABpAAAAAEIBQAAAAlsYXN0QmxvY2sAAAAJdGltZXN0YW1wCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAAAtrZXlVc2VyTmFtZQAAAAEFAAAACmNhbGxlckFkZHIFAAAABG5hbWUJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAC2tleVVzZXJEZXNjAAAAAQUAAAAKY2FsbGVyQWRkcgUAAAALZGVzY3JpcHRpb24JAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAADWtleVVzZXJTb2NpYWwAAAABBQAAAApjYWxsZXJBZGRyBQAAAAZzb2NpYWwJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAADGtleVVzZXJUaHVtYgAAAAEFAAAACmNhbGxlckFkZHIFAAAABXRodW1iCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAAA1rZXlVc2VyU3RhdHVzAAAAAQUAAAAKY2FsbGVyQWRkcgUAAAAOdXNlclJlZ2lzdGVyZWQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgIAAAAObGFzdF9pbnZva2VfaWQFAAAAAmlkBQAAAANuaWwAAAABaQEAAAALZGVsZXRlRW50cnkAAAABAAAABWVudHJ5BAAAAApjYWxsZXJBZGRyCQAEJQAAAAEJAQAAABRhZGRyZXNzRnJvbVB1YmxpY0tleQAAAAEIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQMJAAAAAAAAAgUAAAAKY2FsbGVyQWRkcgUAAAAFYWRtaW4JAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQUAAAAFZW50cnkFAAAAA25pbAkAAAIAAAABAgAAAAJubwAAAAFpAQAAAAp1cGRhdGVVc2VyAAAABAAAAARuYW1lAAAAC2Rlc2NyaXB0aW9uAAAABXRodW1iAAAABnNvY2lhbAQAAAAKY2FsbGVyQWRkcgkABCUAAAABCQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkEAAAAD3VzZXJDYW5SZWdpc3RlcgkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQkBAAAADWtleVVzZXJTdGF0dXMAAAABBQAAAApjYWxsZXJBZGRyAwMJAAAAAAAAAgUAAAAPdXNlckNhblJlZ2lzdGVyBQAAAA11c2VyU3VzcGVuZGVkBgkAAAAAAAACBQAAAA91c2VyQ2FuUmVnaXN0ZXIFAAAAC3VzZXJSZW1vdmVkCQAAAgAAAAECAAAAS1lvdSBhcmUgbm93IGFsbG93ZWQgdG8gcmVnaXN0ZXIsIHlvdXIgYWNjb3VudCBoYXZlIGJlZW4gc3VzcGVuZGVkLyByZW1vdmVkLgMDCQAAAAAAAAIFAAAAD3VzZXJDYW5SZWdpc3RlcgIAAAAABgkAAAAAAAACBQAAAA91c2VyQ2FuUmVnaXN0ZXIFAAAAC3VzZXJBbGxvd2VkCQAAAgAAAAECAAAAJ1BsZWFzZSByZWdpc3RlciBmaXJzdCB3aXRoIHJlZ2lzdGVyVXNlcgQAAAACaWQJAAJYAAAAAQgFAAAAAWkAAAANdHJhbnNhY3Rpb25JZAQAAAAJdGltZXN0YW1wCAUAAAAJbGFzdEJsb2NrAAAACXRpbWVzdGFtcAMDCQAAAAAAAAIFAAAABG5hbWUCAAAAAAYJAAAAAAAAAgUAAAALZGVzY3JpcHRpb24CAAAAAAkAAAIAAAABAgAAACROYW1lIGFuZCBkZXNjcmlwdGlvbiBjYW5ub3QgYmUgZW1wdHkDCQAAZgAAAAIJAAExAAAAAQUAAAALZGVzY3JpcHRpb24AAAAAAAAAAlgJAAACAAAAAQIAAAAqNjAwIENoYXJhY3RlcnMgbWF4aW11bSBmb3IgdGhlIGRlc2NyaXB0aW9uCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAAAtrZXlVc2VyTmFtZQAAAAEFAAAACmNhbGxlckFkZHIFAAAABG5hbWUJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAC2tleVVzZXJEZXNjAAAAAQUAAAAKY2FsbGVyQWRkcgUAAAALZGVzY3JpcHRpb24JAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAADWtleVVzZXJTb2NpYWwAAAABBQAAAApjYWxsZXJBZGRyBQAAAAZzb2NpYWwJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAADGtleVVzZXJUaHVtYgAAAAEFAAAACmNhbGxlckFkZHIFAAAABXRodW1iCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAICAAAADmxhc3RfaW52b2tlX2lkBQAAAAJpZAUAAAADbmlsAAAAAWkBAAAAEGNoYW5nZVVzZXJTdGF0dXMAAAACAAAAB2FkZHJlc3MAAAAGc3RhdHVzBAAAAApjYWxsZXJBZGRyCQAEJQAAAAEJAQAAABRhZGRyZXNzRnJvbVB1YmxpY0tleQAAAAEIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQQAAAACaWQJAAJYAAAAAQgFAAAAAWkAAAANdHJhbnNhY3Rpb25JZAQAAAANY3VycmVudFN0YXR1cwkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQkBAAAADWtleVVzZXJTdGF0dXMAAAABBQAAAAdhZGRyZXNzBAAAAAtzdGF0dXNUb1NldAMJAAAAAAAAAgUAAAAGc3RhdHVzBQAAAAx1c2VyVmVyaWZpZWQFAAAADHVzZXJWZXJpZmllZAMJAAAAAAAAAgUAAAAGc3RhdHVzBQAAAA51c2VyUmVnaXN0ZXJlZAUAAAAOdXNlclJlZ2lzdGVyZWQDCQAAAAAAAAIFAAAABnN0YXR1cwUAAAANdXNlclN1c3BlbmRlZAUAAAANdXNlclN1c3BlbmRlZAMJAAAAAAAAAgUAAAAGc3RhdHVzBQAAAAt1c2VyUmVtb3ZlZAUAAAALdXNlclJlbW92ZWQDCQAAAAAAAAIFAAAABnN0YXR1cwUAAAALdXNlckFsbG93ZWQFAAAAC3VzZXJBbGxvd2VkAwMJAAAAAAAAAgUAAAAGc3RhdHVzBQAAAAl1c2VyUmVzZXQJAAAAAAAAAgUAAAANY3VycmVudFN0YXR1cwUAAAALdXNlckFsbG93ZWQHAgAAAAAJAAACAAAAAQIAAAAOVW5rbm93biBzdGF0dXMDAwkAAAAAAAACBQAAAA1jdXJyZW50U3RhdHVzBQAAAAt1c2VyQWxsb3dlZAkAAAAAAAACBQAAAAZzdGF0dXMFAAAAC3VzZXJBbGxvd2VkBwkAAAIAAAABAgAAABxUaGlzIHVzZXIgaXMgYWxyZWFkeSBhbGxvd2VkAwMJAAAAAAAAAgUAAAANY3VycmVudFN0YXR1cwUAAAAOdXNlclJlZ2lzdGVyZWQJAAAAAAAAAgUAAAAGc3RhdHVzBQAAAAt1c2VyQWxsb3dlZAcJAAACAAAAAQIAAAArVGhpcyB1c2VyIGlzIGFscmVhZHkgYWxsb3dlZCBhbmQgcmVnaXN0ZXJlZAMDCQAAAAAAAAIFAAAADWN1cnJlbnRTdGF0dXMFAAAADHVzZXJWZXJpZmllZAkAAAAAAAACBQAAAAZzdGF0dXMFAAAAC3VzZXJBbGxvd2VkBwkAAAIAAAABAgAAAClUaGlzIHVzZXIgaXMgYWxyZWFkeSBhbGxvd2VkIGFuZCB2ZXJpZmllZAMDCQAAAAAAAAIFAAAACmNhbGxlckFkZHIFAAAABWFkbWluBgkAAAAAAAACBQAAAApjYWxsZXJBZGRyBQAAAAZhZG1pbjIJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAADWtleVVzZXJTdGF0dXMAAAABBQAAAAdhZGRyZXNzBQAAAAtzdGF0dXNUb1NldAkABEwAAAACCQEAAAALU3RyaW5nRW50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LAAAAAAAAAAABQkAAAIAAAABAgAAAAs1IHRhZ3MgbWF4LgQAAAAQdXNlcklzUmVnaXN0ZXJlZAQAAAAHJG1hdGNoMAkABB0AAAACBQAAAAR0aGlzCQABLAAAAAICAAAADHVzZXJfc3RhdHVzXwUAAAANY2FsbGVyQWRkcmVzcwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFzBQAAAAckbWF0Y2gwBQAAAAFzBQAAABB1c2VyVW5yZWdpc3RlcmVkBAAAAAl0aW1lc3RhbXAIBQAAAAlsYXN0QmxvY2sAAAAJdGltZXN0YW1wAwMJAQAAAAlpc0RlZmluZWQAAAABBQAAABB1c2VySXNSZWdpc3RlcmVkCQAAAAAAAAIFAAAAEHVzZXJJc1JlZ2lzdGVyZWQFAAAAEHVzZXJVbnJlZ2lzdGVyZWQHCQAAAgAAAAECAAAAMVJlZ2lzdGVyIHRoaXMgYWNjb3VudCBmaXJzdCB3aXRoICJVc2VyIGluZm9zIiB0YWIDCQAAAAAAAAIFAAAAEHVzZXJJc1JlZ2lzdGVyZWQFAAAADXVzZXJTdXNwZW5kZWQJAAACAAAAAQIAAAARQWNjb3VudCBzdXNwZW5kZWQDCQAAAAAAAAIFAAAAEHVzZXJJc1JlZ2lzdGVyZWQFAAAAC3VzZXJSZW1vdmVkCQAAAgAAAAECAAAAD0FjY291bnQgcmVtb3ZlZAMJAABmAAAAAgUAAAAHbWF4bWludAAAAAAAAAAACgkAAAIAAAABAgAAABsxMCBlZGl0aW9ucyBtYXggcGVyIGFydHdvcmsDCQEAAAACIT0AAAACCQABMQAAAAEFAAAACnNoYTI1Nkhhc2gAAAAAAAAAAEAJAAACAAAAAQIAAAAXSGFzaCBzaG91bGQgYmUgNjQgY2hhci4JAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAEWtleUFydE93bmVyQnlIYXNoAAAAAQUAAAAKc2hhMjU2SGFzaAUAAAANY2FsbGVyQWRkcmVzcwkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAVa2V5QXJ0VHhpZEJ5SGFzaE93bmVyAAAAAgUAAAAKc2hhMjU2SGFzaAUAAAANY2FsbGVyQWRkcmVzcwUAAAAFYXJ0SWQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAAprZXlBcnREYXRlAAAAAgUAAAANY2FsbGVyQWRkcmVzcwUAAAAFYXJ0SWQFAAAACXRpbWVzdGFtcAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAKa2V5QXJ0TmFtZQAAAAIFAAAADWNhbGxlckFkZHJlc3MFAAAABWFydElkBQAAAARuYW1lCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAAAprZXlBcnREZXNjAAAAAgUAAAANY2FsbGVyQWRkcmVzcwUAAAAFYXJ0SWQFAAAAC2Rlc2NyaXB0aW9uCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABBrZXlBcnREaXNwbGF5Q2lkAAAAAgUAAAANY2FsbGVyQWRkcmVzcwUAAAAFYXJ0SWQFAAAACmNpZERpc3BsYXkJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAD2tleUFydEV4cG9ydENpZAAAAAIFAAAADWNhbGxlckFkZHJlc3MFAAAABWFydElkBQAAAAljaWRFeHBvcnQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAEGtleUFydEV4cG9ydEhhc2gAAAACBQAAAA1jYWxsZXJBZGRyZXNzBQAAAAVhcnRJZAUAAAAMc2hhMjU2RXhwb3J0CQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABFrZXlBcnRMaWNlbmNlSGFzaAAAAAIFAAAADWNhbGxlckFkZHJlc3MFAAAABWFydElkBQAAAA1zaGEyNTZMaWNlbmNlCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABBrZXlBcnRMaWNlbmNlQ2lkAAAAAgUAAAANY2FsbGVyQWRkcmVzcwUAAAAFYXJ0SWQFAAAACmNpZExpY2VuY2UJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAACmtleUFydFR5cGUAAAACBQAAAA1jYWxsZXJBZGRyZXNzBQAAAAVhcnRJZAUAAAAEdHlwZQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAKa2V5QXJ0VGFncwAAAAIFAAAADWNhbGxlckFkZHJlc3MFAAAABWFydElkBQAAAAR0YWdzCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAANa2V5QXJ0TWF4TWludAAAAAIFAAAADWNhbGxlckFkZHJlc3MFAAAABWFydElkBQAAAAdtYXhtaW50CQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAAAxrZXlBcnRTaWduSUQAAAACBQAAAA1jYWxsZXJBZGRyZXNzBQAAAAVhcnRJZAUAAAAGc2lnbklECQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAMa2V5QXJ0SXNzdWVkAAAAAgUAAAANY2FsbGVyQWRkcmVzcwUAAAAFYXJ0SWQAAAAAAAAAAAAJAARMAAAAAgkBAAAADEJvb2xlYW5FbnRyeQAAAAIJAQAAAAxrZXlBcnRPblNhbGUAAAACBQAAAA1jYWxsZXJBZGRyZXNzBQAAAAVhcnRJZAcJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAE2tleUFydEFydGlkQnlTaWduaWQAAAACBQAAAA1jYWxsZXJBZGRyZXNzBQAAAAZzaWduSUQFAAAABWFydElkCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAICAAAADmxhc3RfaW52b2tlX2lkBQAAAAVhcnRJZAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAUa2V5QXJ0SGFzaEJ5VHhpZEFkZHIAAAACBQAAAA1jYWxsZXJBZGRyZXNzBQAAAAVhcnRJZAUAAAAKc2hhMjU2SGFzaAkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAHQWRkcmVzcwAAAAEJAAJZAAAAAQUAAAALZmVlUmVjZWl2ZXIFAAAABmFtb3VudAUAAAAHYXNzZXRJZAUAAAADbmlsAAAABmludm9rZQEAAAANdXBkYXRlQXJ0d29yawAAAAsAAAAEdHhpZAAAAARuYW1lAAAAC2Rlc2NyaXB0aW9uAAAABHRhZ3MAAAAEdHlwZQAAAAdtYXhtaW50AAAACmNpZERpc3BsYXkAAAAMc2hhMjU2RXhwb3J0AAAACWNpZEV4cG9ydAAAAA1zaGEyNTZMaWNlbmNlAAAACmNpZExpY2VuY2UEAAAACHVwZGF0ZUlkCQACWAAAAAEIBQAAAAZpbnZva2UAAAANdHJhbnNhY3Rpb25JZAQAAAANY2FsbGVyQWRkcmVzcwkAAlgAAAABCAgFAAAABmludm9rZQAAAAZjYWxsZXIAAAAFYnl0ZXMDCQEAAAABIQAAAAEJAQAAAA52YWxpZGF0ZUFsbENJRAAAAAMFAAAACmNpZERpc3BsYXkFAAAACWNpZEV4cG9ydAUAAAAKY2lkTGljZW5jZQkAAAIAAAABAgAAABBQcm9ibGVtIHdpdGggQ0lEAwkBAAAAASEAAAABCQEAAAAPdmFsaWRhdGVBbGxIYXNoAAAAAgUAAAAMc2hhMjU2RXhwb3J0BQAAAA1zaGEyNTZMaWNlbmNlCQAAAgAAAAECAAAAE1Byb2JsZW0gd2l0aCBIYXNoZXMEAAAACmVudHJ5RXhpc3QJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEJAQAAAAprZXlBcnROYW1lAAAAAgUAAAANY2FsbGVyQWRkcmVzcwUAAAAEdHhpZAMJAAAAAAAAAgUAAAAKZW50cnlFeGlzdAIAAAAACQAAAgAAAAECAAAAD0VudHJ5IG5vdCBmb3VuZAMJAQAAAAEhAAAAAQkBAAAADnZhbGlkYXRlU3RyaW5nAAAAAgUAAAAEbmFtZQAAAAAAAAAAZAkAAAIAAAABAgAAABoxMDAgQ2hhci4gbWF4IGZvciB0aGUgbmFtZQMJAQAAAAEhAAAAAQkBAAAADnZhbGlkYXRlU3RyaW5nAAAAAgUAAAALZGVzY3JpcHRpb24AAAAAAAAAA+gJAAACAAAAAQIAAAAiMTAwMCBDaGFyLiBtYXggZm9yIHRoZSBkZXNjcmlwdGlvbgQAAAANYXJ0d29ya01pbnRlZAQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzCQEAAAAMa2V5QXJ0SXNzdWVkAAAAAgUAAAANY2FsbGVyQWRkcmVzcwUAAAAEdHhpZAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFiBQAAAAckbWF0Y2gwAwkAAAAAAAACBQAAAAFiAAAAAAAAAAAABwYHAwkAAGYAAAACCQABkAAAAAEJAAS1AAAAAgUAAAAEdGFncwIAAAABLAAAAAAAAAAABQkAAAIAAAABAgAAAAs1IHRhZ3MgbWF4LgQAAAAQdXNlcklzUmVnaXN0ZXJlZAQAAAAHJG1hdGNoMAkABB0AAAACBQAAAAR0aGlzCQABLAAAAAICAAAADHVzZXJfc3RhdHVzXwUAAAANY2FsbGVyQWRkcmVzcwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFzBQAAAAckbWF0Y2gwBQAAAAFzBQAAABB1c2VyVW5yZWdpc3RlcmVkAwMJAQAAAAlpc0RlZmluZWQAAAABBQAAABB1c2VySXNSZWdpc3RlcmVkCQAAAAAAAAIFAAAAEHVzZXJJc1JlZ2lzdGVyZWQFAAAAEHVzZXJVbnJlZ2lzdGVyZWQHCQAAAgAAAAECAAAAMVJlZ2lzdGVyIHRoaXMgYWNjb3VudCBmaXJzdCB3aXRoICJVc2VyIGluZm9zIiB0YWIDCQAAAAAAAAIFAAAAEHVzZXJJc1JlZ2lzdGVyZWQFAAAADXVzZXJTdXNwZW5kZWQJAAACAAAAAQIAAAARQWNjb3VudCBzdXNwZW5kZWQDCQAAAAAAAAIFAAAAEHVzZXJJc1JlZ2lzdGVyZWQFAAAAC3VzZXJSZW1vdmVkCQAAAgAAAAECAAAAD0FjY291bnQgcmVtb3ZlZAMJAABmAAAAAgUAAAAHbWF4bWludAAAAAAAAAAACgkAAAIAAAABAgAAABxNMTAgZWRpdGlvbnMgbWF4IHBlciBhcnR3b3JrAwkBAAAAASEAAAABBQAAAA1hcnR3b3JrTWludGVkCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAAAprZXlBcnROYW1lAAAAAgUAAAANY2FsbGVyQWRkcmVzcwUAAAAEdHhpZAUAAAAEbmFtZQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAKa2V5QXJ0RGVzYwAAAAIFAAAADWNhbGxlckFkZHJlc3MFAAAABHR4aWQFAAAAC2Rlc2NyaXB0aW9uCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABBrZXlBcnREaXNwbGF5Q2lkAAAAAgUAAAANY2FsbGVyQWRkcmVzcwUAAAAEdHhpZAUAAAAKY2lkRGlzcGxheQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAPa2V5QXJ0RXhwb3J0Q2lkAAAAAgUAAAANY2FsbGVyQWRkcmVzcwUAAAAEdHhpZAUAAAAJY2lkRXhwb3J0CQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABBrZXlBcnRFeHBvcnRIYXNoAAAAAgUAAAANY2FsbGVyQWRkcmVzcwUAAAAEdHhpZAUAAAAMc2hhMjU2RXhwb3J0CQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABBrZXlBcnRMaWNlbmNlQ2lkAAAAAgUAAAANY2FsbGVyQWRkcmVzcwUAAAAEdHhpZAUAAAAKY2lkTGljZW5jZQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAARa2V5QXJ0TGljZW5jZUhhc2gAAAACBQAAAA1jYWxsZXJBZGRyZXNzBQAAAAR0eGlkBQAAAA1zaGEyNTZMaWNlbmNlCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAANa2V5QXJ0TWF4TWludAAAAAIFAAAADWNhbGxlckFkZHJlc3MFAAAABHR4aWQFAAAAB21heG1pbnQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAACmtleUFydFRhZ3MAAAACBQAAAA1jYWxsZXJBZGRyZXNzBQAAAAR0eGlkBQAAAAR0YWdzCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAAAprZXlBcnRUeXBlAAAAAgUAAAANY2FsbGVyQWRkcmVzcwUAAAAEdHhpZAUAAAAEdHlwZQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACAgAAAA5sYXN0X2ludm9rZV9pZAUAAAAIdXBkYXRlSWQFAAAAA25pbAkAAAIAAAABAgAAABZBcnR3b3JrIGFscmVhZHkgbWludGVkAAAAAWkBAAAADWRlbGV0ZUFydHdvcmsAAAACAAAABWFydElkAAAAB2FkZHJlc3MEAAAADWNhbGxlckFkZHJlc3MJAAQlAAAAAQkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5BAAAAAJpZAkAAlgAAAABCAUAAAABaQAAAA10cmFuc2FjdGlvbklkBAAAAAxhZGRyZXNzVG9Vc2UDAwkAAAAAAAACBQAAAA1jYWxsZXJBZGRyZXNzBQAAAAVhZG1pbgYJAAAAAAAAAgUAAAANY2FsbGVyQWRkcmVzcwUAAAAGYWRtaW4yBQAAAAdhZGRyZXNzBQAAAA1jYWxsZXJBZGRyZXNzBAAAAAplbnRyeUV4aXN0BAAAAAckbWF0Y2gwCQAEHQAAAAIFAAAABHRoaXMJAQAAAAprZXlBcnROYW1lAAAAAgUAAAAMYWRkcmVzc1RvVXNlBQAAAAVhcnRJZAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFzBQAAAAckbWF0Y2gwBQAAAAFzCQAAAgAAAAECAAAAE05vIGFydHdvcmsgbWF0Y2hpbmcEAAAADWFydHdvcmtNaW50ZWQEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkBAAAADGtleUFydElzc3VlZAAAAAIFAAAADGFkZHJlc3NUb1VzZQUAAAAFYXJ0SWQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYgUAAAAHJG1hdGNoMAMJAQAAAAIhPQAAAAIFAAAAAWIAAAAAAAAAAAAGBwcEAAAAB21heE1pbnQJAQAAAA9nZXRJbnRlZ2VyQnlLZXkAAAABCQEAAAANa2V5QXJ0TWF4TWludAAAAAIFAAAADGFkZHJlc3NUb1VzZQUAAAAFYXJ0SWQEAAAACnNoYTI1Nkhhc2gEAAAAByRtYXRjaDAJAAQdAAAAAgUAAAAEdGhpcwkBAAAAFGtleUFydEhhc2hCeVR4aWRBZGRyAAAAAgUAAAAMYWRkcmVzc1RvVXNlBQAAAAVhcnRJZAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFzBQAAAAckbWF0Y2gwBQAAAAFzCQAAAgAAAAECAAAAGE5vIGFydHdvcmsgaGFzaCBtYXRjaGluZwQAAAAGc2lnbklEBAAAAAckbWF0Y2gwCQAEHQAAAAIFAAAABHRoaXMJAQAAAAxrZXlBcnRTaWduSUQAAAACBQAAAAxhZGRyZXNzVG9Vc2UFAAAABWFydElkAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAXMFAAAAByRtYXRjaDAFAAAAAXMJAAACAAAAAQIAAAATTm8gU0lHTiBJRCBtYXRjaGluZwQAAAAMZGF0YVRvRGVsZXRlCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAQAAAAprZXlBcnREYXRlAAAAAgUAAAAMYWRkcmVzc1RvVXNlBQAAAAVhcnRJZAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQEAAAAKa2V5QXJ0TmFtZQAAAAIFAAAADGFkZHJlc3NUb1VzZQUAAAAFYXJ0SWQJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkBAAAACmtleUFydERlc2MAAAACBQAAAAxhZGRyZXNzVG9Vc2UFAAAABWFydElkCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAQAAABBrZXlBcnREaXNwbGF5Q2lkAAAAAgUAAAAMYWRkcmVzc1RvVXNlBQAAAAVhcnRJZAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQEAAAAPa2V5QXJ0RXhwb3J0Q2lkAAAAAgUAAAAMYWRkcmVzc1RvVXNlBQAAAAVhcnRJZAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQEAAAAQa2V5QXJ0RXhwb3J0SGFzaAAAAAIFAAAADGFkZHJlc3NUb1VzZQUAAAAFYXJ0SWQJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkBAAAAEWtleUFydExpY2VuY2VIYXNoAAAAAgUAAAAMYWRkcmVzc1RvVXNlBQAAAAVhcnRJZAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQEAAAAQa2V5QXJ0TGljZW5jZUNpZAAAAAIFAAAADGFkZHJlc3NUb1VzZQUAAAAFYXJ0SWQJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkBAAAACmtleUFydFR5cGUAAAACBQAAAAxhZGRyZXNzVG9Vc2UFAAAABWFydElkCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAQAAAAprZXlBcnRUYWdzAAAAAgUAAAAMYWRkcmVzc1RvVXNlBQAAAAVhcnRJZAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQEAAAANa2V5QXJ0TWF4TWludAAAAAIFAAAADGFkZHJlc3NUb1VzZQUAAAAFYXJ0SWQJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkBAAAADGtleUFydFNpZ25JRAAAAAIFAAAADGFkZHJlc3NUb1VzZQUAAAAFYXJ0SWQJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkBAAAADGtleUFydElzc3VlZAAAAAIFAAAADGFkZHJlc3NUb1VzZQUAAAAFYXJ0SWQJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkBAAAADGtleUFydE9uU2FsZQAAAAIFAAAADGFkZHJlc3NUb1VzZQUAAAAFYXJ0SWQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgIAAAAObGFzdF9pbnZva2VfaWQFAAAAAmlkCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAQAAABFrZXlBcnRPd25lckJ5SGFzaAAAAAEFAAAACnNoYTI1Nkhhc2gJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkBAAAAE2tleUFydEFydGlkQnlTaWduaWQAAAACBQAAAAxhZGRyZXNzVG9Vc2UFAAAABnNpZ25JRAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQEAAAAVa2V5QXJ0VHhpZEJ5SGFzaE93bmVyAAAAAgUAAAAKc2hhMjU2SGFzaAUAAAAMYWRkcmVzc1RvVXNlCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAQAAAAtrZXlBcnRQcmljZQAAAAIFAAAADGFkZHJlc3NUb1VzZQUAAAAFYXJ0SWQJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkBAAAADWtleUFydE1heE1pbnQAAAACBQAAAAxhZGRyZXNzVG9Vc2UFAAAABWFydElkCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAQAAABVrZXlBcnRBc3NldElkQWNjZXB0ZWQAAAACBQAAAAxhZGRyZXNzVG9Vc2UFAAAABWFydElkCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAA5hcnRfc29sZF8xX29mXwkAAaQAAAABBQAAAAdt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AAAABlN0cmluZwQAAAABcwUAAAAHJG1hdGNoMAUAAAABcwkAAAIAAAABAgAAABtSZWdpc3RlciB0aGlzIGFjY291bnQgZmlyc3QEAAAACmFtb3VudFNvbGQJAQAAAA9nZXRJbnRlZ2VyQnlLZXkAAAABCQEAAAAMa2V5QXJ0SXNzdWVkAAAAAgUAAAANY2FsbGVyQWRkcmVzcwUAAAAFYXJ0SWQEAAAACm1heENhblNlbGwJAQAAAA9nZXRJbnRlZ2VyQnlLZXkAAAABCQEAAAANa2V5QXJ0TWF4TWludAAAAAIFAAAADWNhbGxlckFkZHJlc3MFAAAABWFydElkAwMJAQAAAAIhPQAAAAIFAAAACmFtb3VudFNvbGQAAAAAAAAAAAAJAAAAAAAAAgUAAAAKYW1vdW50U29sZAUAAAAKbWF4Q2FuU2VsbAcJAAACAAAAAQIAAAAUTWF4IGVkaXRpb24gcmVhY2hlZC4DAwkAAGYAAAACBQAAAAphbW91bnRTb2xkAAAAAAAAAAAACQEAAAACIT0AAAACBQAAAAptYXhDYW5TZWxsBQAAAAdtYXhNaW50BwkAAAIAAAABAgAAACZDYW5ub3QgY2hhbmdlIG1heGltdW0gaXNzdWFibGUgYW55bW9yZQMJAAAAAAAAAgUAAAAQdXNlcklzUmVnaXN0ZXJlZAUAAAANdXNlclN1c3BlbmRlZAkAAAIAAAABAgAAABFBY2NvdW50IHN1c3BlbmRlZAMJAAAAAAAAAgUAAAAQdXNlcklzUmVnaXN0ZXJlZAUAAAALdXNlclJlbW92ZWQJAAACAAAAAQIAAAAPQWNjb3VudCBkZWxldGVkBAAAAApzZWxsU3RhdHVzAwkAAGYAAAACBQAAAAVwcmljZQAAAAAAAAAAAAYHCQAETAAAAAIJAQAAAAxCb29sZWFuRW50cnkAAAACCQEAAAAMa2V5QXJ0T25TYWxlAAAAAgUAAAANY2FsbGVyQWRkcmVzcwUAAAAFYXJ0SWQFAAAACnNlbGxTdGF0dXMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAAtrZXlBcnRQcmljZQAAAAIFAAAADWNhbGxlckFkZHJlc3MFAAAABWFydElkBQAAAAVwcmljZQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAADWtleUFydE1heE1pbnQAAAACBQAAAA1jYWxsZXJBZGRyZXNzBQAAAAVhcnRJZAUAAAAHbWF4TWludAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAVa2V5QXJ0QXNzZXRJZEFjY2VwdGVkAAAAAgUAAAANY2FsbGVyQWRkcmVzcwUAAAAFYXJ0SWQFAAAAB2Fzc2V0SWQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgIAAAAObGFzdF9pbnZva2VfaWQFAAAAAmlkBQAAAANuaWwAAAAGaW52b2tlAQAAAApidXlBcnR3b3JrAAAAAgAAAAVhcnRJZAAAAAZpc3N1ZXIEAAAAAmlkCQACWAAAAAEIBQAAAAZpbnZva2UAAAANdHJhbnNhY3Rpb25JZAQAAAANY2FsbGVyQWRkcmVzcwkAAlgAAAABCAgFAAAABmludm9rZQAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAACHRvdGFsTkZUCQEAAAAPZ2V0SW50ZWdlckJ5S2V5AAAAAQIAAAAQdG90YWxfbmZ0X2lzc3VlZAQAAAAGc2lnbklECQEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABCQEAAAAMa2V5QXJ0U2lnbklEAAAAAgUAAAAGaXNzdWVyBQAAAAVhcnRJZAQAAAALYXJ0d29ya05hbWUEAAAAByRtYXRjaDAJAAQdAAAAAgUAAAAEdGhpcwkBAAAACmtleUFydE5hbWUAAAACBQAAAAZpc3N1ZXIFAAAABWFydElkAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAXMFAAAAByRtYXRjaDAFAAAAAXMJAAACAAAAAQIAAAAUQXJ0d29yayBkb2Vzbid0IGV4aXQEAAAACmRpc3BsYXlDSUQJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEJAQAAABBrZXlBcnREaXNwbGF5Q2lkAAAAAgUAAAAGaXNzdWVyBQAAAAVhcnRJZAQAAAAJZXhwb3J0Q0lECQEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABCQEAAAAPa2V5QXJ0RXhwb3J0Q2lkAAAAAgUAAAAGaXNzdWVyBQAAAAVhcnRJZAQAAAAKZXhwb3J0SGFzaAkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQkBAAAAEGtleUFydEV4cG9ydEhhc2gAAAACBQAAAAZpc3N1ZXIFAAAABWFydElkBAAAAApsaWNlbmNlQ0lECQEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABCQEAAAAQa2V5QXJ0TGljZW5jZUNpZAAAAAIFAAAABmlzc3VlcgUAAAAFYXJ0SWQEAAAAC2xpY2VuY2VIYXNoCQEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABCQEAAAARa2V5QXJ0TGljZW5jZUhhc2gAAAACBQAAAAZpc3N1ZXIFAAAABWFydElkBAAAAAtkZXNjcmlwdGlvbgkAAS8AAAACCQEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABCQEAAAAKa2V5QXJ0RGVzYwAAAAIFAAAABmlzc3VlcgUAAAAFYXJ0SWQAAAAAAAAAADIEAAAACmFtb3VudFNvbGQJAQAAAA9nZXRJbnRlZ2VyQnlLZXkAAAABCQEAAAAMa2V5QXJ0SXNzdWVkAAAAAgUAAAAGaXNzdWVyBQAAAAVhcnRJZAQAAAAMYXJ0d29ya1ByaWNlCQEAAAAPZ2V0SW50ZWdlckJ5S2V5AAAAAQkBAAAAC2tleUFydFByaWNlAAAAAgUAAAAGaXNzdWVyBQAAAAVhcnRJZAQAAAAIaXNPblNhbGUJAQAAAA9nZXRCb29sZWFuQnlLZXkAAAABCQEAAAAMa2V5QXJ0T25TYWxlAAAAAgUAAAAGaXNzdWVyBQAAAAVhcnRJZAQAAAAMcHJpY2VBc3NldElkCQEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABCQEAAAAVa2V5QXJ0QXNzZXRJZEFjY2VwdGVkAAAAAgUAAAAGaXNzdWVyBQAAAAVhcnRJZAQAAAAKc291cmNlSGFzaAkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQkBAAAAFGtleUFydEhhc2hCeVR4aWRBZGRyAAAAAgUAAAAGaXNzdWVyBQAAAAVhcnRJZAMJAAAAAAAAAgUAAAAMYXJ0d29ya1ByaWNlAAAAAAAAAAAACQAAAgAAAAECAAAAFEFydHdvcmsgbm90IGZvciBzZWxsAwkBAAAAASEAAAABBQAAAAhpc09uU2FsZQkAAAIAAAABAgAAABRBcnR3b3JrIG5vdCBmb3Igc2FsZQQAAAAKbWF4Q2FuU2VsbAkBAAAAD2dldElu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", "height": 1221701, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: CxHg64HGcYtsbZ9MTpLG2yaupKsd14esi2545sDP313B Next: 28yb5QgKjt9wrS5jJZhQqsqTviFuq1DKZSQkgQcwpDbJ Diff:
OldNewDifferences
554554 else false)
555555 then (aT != toBase58String(e))
556556 else false)
557- then throw("Only SIGN, USDN or WAVES currency accepted at the moment")
557+ then throw("Only SIGN, USDN or WAVES accepted")
558558 else {
559559 let bk = {
560560 let y = getString(this, V(aQ, U))
563563 let ba = y
564564 ba
565565 }
566- else throw("This artwork doesn't exit or you are not the owner")
566+ else throw("This artwork doesn't match")
567567 }
568568 let aZ = {
569569 let y = getString(this, R(aQ))
572572 let ba = y
573573 ba
574574 }
575- else throw("Please register this account first")
575+ else throw("Register this account first")
576576 }
577- let bl = {
578- let y = getInteger(this, ac(aQ, U))
579- if ($isInstanceOf(y, "Int"))
580- then {
581- let bm = y
582- bm
583- }
584- else 0
585- }
586- let bn = {
587- let y = getInteger(this, aa(aQ, U))
588- if ($isInstanceOf(y, "Int"))
589- then {
590- let bm = y
591- bm
592- }
593- else 0
594- }
577+ let bl = A(ac(aQ, U))
578+ let bm = A(aa(aQ, U))
595579 if (if ((bl != 0))
596- then (bl == bn)
580+ then (bl == bm)
597581 else false)
598- then throw("You reached the max edition allowed to sell for this edition.")
582+ then throw("Max edition reached.")
599583 else if (if ((bl > 0))
600- then (bn != bf)
584+ then (bm != bf)
601585 else false)
602- then throw("You cannot change the maximum issuable anymore")
586+ then throw("Cannot change maximum issuable anymore")
603587 else if ((aZ == p))
604- then throw("Your account is suspended")
588+ then throw("Account suspended")
605589 else if ((aZ == q))
606- then throw("Your account have been deleted")
590+ then throw("Account deleted")
607591 else {
608- let bo = if ((aV > 0))
592+ let bn = if ((aV > 0))
609593 then true
610594 else false
611-[BooleanEntry(ad(aQ, U), bo), IntegerEntry(ai(aQ, U), aV), IntegerEntry(aa(aQ, U), bf), StringEntry(aj(aQ, U), aT), StringEntry("last_invoke_id", aF)]
595+[BooleanEntry(ad(aQ, U), bn), IntegerEntry(ai(aQ, U), aV), IntegerEntry(aa(aQ, U), bf), StringEntry(aj(aQ, U), aT), StringEntry("last_invoke_id", aF)]
612596 }
613597 }
614598 }
617601
618602
619603 @Callable(aM)
620-func buyArtwork (U,bp) = {
604+func buyArtwork (U,bo) = {
621605 let aF = toBase58String(aM.transactionId)
622606 let aQ = toBase58String(aM.caller.bytes)
623- let bq = A("total_nft_issued")
624- let E = w(ab(bp, U))
607+ let bp = A("total_nft_issued")
608+ let E = w(ab(bo, U))
625609 let bk = {
626- let y = getString(this, V(bp, U))
610+ let y = getString(this, V(bo, U))
627611 if ($isInstanceOf(y, "String"))
628612 then {
629613 let ba = y
631615 }
632616 else throw("Artwork doesn't exit")
633617 }
634- let br = w(X(bp, U))
635- let bi = w(Z(bp, U))
636- let bj = w(Y(bp, U))
637- let bs = w(af(bp, U))
638- let bt = w(ae(bp, U))
639- let aB = take(w(W(bp, U)), 50)
640- let bl = A(ac(bp, U))
641- let bu = A(ai(bp, U))
642- let bv = C(ad(bp, U))
643- let bw = w(aj(bp, U))
644- let bx = w(ak(bp, U))
645- if ((bu == 0))
618+ let bq = w(X(bo, U))
619+ let bi = w(Z(bo, U))
620+ let bj = w(Y(bo, U))
621+ let br = w(af(bo, U))
622+ let bs = w(ae(bo, U))
623+ let aB = take(w(W(bo, U)), 50)
624+ let bl = A(ac(bo, U))
625+ let bt = A(ai(bo, U))
626+ let bu = C(ad(bo, U))
627+ let bv = w(aj(bo, U))
628+ let bw = w(ak(bo, U))
629+ if ((bt == 0))
646630 then throw("Artwork not for sell")
647- else if (!(bv))
631+ else if (!(bu))
648632 then throw("Artwork not for sale")
649633 else {
650- let bn = A(aa(bp, U))
634+ let bm = A(aa(bo, U))
651635 let aR = value(aM.payments[0])
652636 let aS = value(aR.amount)
653637 let aT = if (if (isDefined(aR.assetId))
654- then (aR.assetId == fromBase58String(bw))
638+ then (aR.assetId == fromBase58String(bv))
655639 else false)
656640 then aR.assetId
657- else throw((("Only " + bw) + " token id accepted at the moment"))
658- let by = if ((bw == toBase58String(d)))
641+ else throw((("Only " + bv) + " token id accepted at the moment"))
642+ let bx = if ((bv == toBase58String(d)))
659643 then 8
660644 else 10
661- let bz = ((aS / 100) * by)
662- let bA = (aS - bz)
663- if ((bl == bn))
645+ let by = ((aS / 100) * bx)
646+ let bz = (aS - by)
647+ if ((bl == bm))
664648 then throw("Artwork sold out")
665- else if ((bu != aS))
649+ else if ((bt != aS))
666650 then throw("Payment don't match")
667651 else {
668- let bB = (bl + 1)
669- let bC = lastBlock.timestamp
670- let bD = (((((((((((((((((((((((((((("{\"version\": 1,
671- \"creator\": \"" + bp) + "\",
652+ let bA = (bl + 1)
653+ let bB = lastBlock.timestamp
654+ let bC = (((((((((((((((((((((((((((("{\"version\": 1,
655+ \"creator\": \"" + bo) + "\",
672656 \"artID\": \"") + U) + "\",
673657 \"signID\": \"") + E) + "\",
674658 \"artwork_name\": \"") + bk) + "\",
675659 \"artwork_desc\": \"") + aB) + "\",
676- \"issue\": \"") + toString(bB)) + "/") + toString(bn)) + "\",
677- \"maxIssuable\": \"") + toString(bn)) + "\",
678- \"source_hash\": \"") + bx) + "\",
679- \"display_cid\": \"") + br) + "\",
660+ \"issue\": \"") + toString(bA)) + "/") + toString(bm)) + "\",
661+ \"maxIssuable\": \"") + toString(bm)) + "\",
662+ \"source_hash\": \"") + bw) + "\",
663+ \"display_cid\": \"") + bq) + "\",
680664 \"export_cid\": \"") + bi) + "\",
681665 \"export_hash\": \"") + bj) + "\",
682- \"licence_cid\": \"") + bs) + "\",
683- \"licence_hash\": \"") + bt) + "\"}")
684- let bE = Issue(("SA_" + toString((bq + 1))), bD, 1, 0, false)
685- let bF = calculateAssetId(bE)
686- let bo = if ((bB == bn))
666+ \"licence_cid\": \"") + br) + "\",
667+ \"licence_hash\": \"") + bs) + "\"}")
668+ let bD = Issue(("SA_" + toString((bp + 1))), bC, 1, 0, false)
669+ let bE = calculateAssetId(bD)
670+ let bn = if ((bA == bm))
687671 then false
688672 else true
689-[IntegerEntry(ac(bp, U), bB), StringEntry(((((((("art_sold_" + toString(bB)) + "_of_") + toString(bn)) + "_") + U) + "_") + bp), ((((((((aQ + "_") + toString(bC)) + "_") + aF) + "_") + toString(bu)) + "_") + bw)), IntegerEntry("total_nft_issued", (bq + 1)), BooleanEntry(ad(bp, U), bo), StringEntry("last_invoke_id", aF), bE, ScriptTransfer(Address(fromBase58String(bp)), bA, aT), ScriptTransfer(Address(fromBase58String(c)), bz, aT), ScriptTransfer(aM.caller, 1, bF)]
673+[IntegerEntry(ac(bo, U), bA), StringEntry(((((((("art_sold_" + toString(bA)) + "_of_") + toString(bm)) + "_") + U) + "_") + bo), ((((((((aQ + "_") + toString(bB)) + "_") + aF) + "_") + toString(bt)) + "_") + bv)), IntegerEntry("total_nft_issued", (bp + 1)), BooleanEntry(ad(bo, U), bn), StringEntry("last_invoke_id", aF), bD, ScriptTransfer(Address(fromBase58String(bo)), bz, aT), ScriptTransfer(Address(fromBase58String(c)), by, aT), ScriptTransfer(aM.caller, 1, bE)]
690674 }
691675 }
692676 }
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
1616 let g = 8
1717
1818 let h = 10
1919
2020 let i = 10
2121
2222 let j = "3MsG6jPNCrVJUtYB7XJBxS7utWsXAf4n9Vp"
2323
2424 let k = "3Mzm4VLwsN9uZwbTMzPj3XuxV6kEfAR8UDN"
2525
2626 let l = true
2727
2828 let m = "ALLOWED"
2929
3030 let n = "REGISTERED"
3131
3232 let o = "VERIFIED"
3333
3434 let p = "SUSPENDED"
3535
3636 let q = "REMOVED"
3737
3838 let r = "UNREGISTERED"
3939
4040 let s = "RESET"
4141
4242 let t = "ON_SALE"
4343
4444 let u = "SOLD"
4545
4646 let v = "CANCELED"
4747
4848 func w (x) = {
4949 let y = getString(this, x)
5050 if ($isInstanceOf(y, "String"))
5151 then {
5252 let z = y
5353 z
5454 }
5555 else ""
5656 }
5757
5858
5959 func A (x) = {
6060 let y = getInteger(this, x)
6161 if ($isInstanceOf(y, "Int"))
6262 then {
6363 let B = y
6464 B
6565 }
6666 else 0
6767 }
6868
6969
7070 func C (x) = {
7171 let y = getBoolean(this, x)
7272 if ($isInstanceOf(y, "Boolean"))
7373 then {
7474 let B = y
7575 B
7676 }
7777 else false
7878 }
7979
8080
8181 func D (E,F,G) = {
8282 let y = getString(b, ((("data_fc_" + E) + "_") + F))
8383 if ($isInstanceOf(y, "String"))
8484 then {
8585 let z = y
8686 if (contains(z, G))
8787 then true
8888 else false
8989 }
9090 else false
9191 }
9292
9393
9494 func H (I) = if (if ((75 > size(I)))
9595 then (60 > size(split(I, "/")[0]))
9696 else false)
9797 then (16 > size(split(I, "/")[1]))
9898 else false
9999
100100
101101 func J (K) = (65 > size(K))
102102
103103
104104 func L (M) = ("user_" + M)
105105
106106
107107 func N (M) = ("user_name_" + M)
108108
109109
110110 func O (M) = ("user_desc_" + M)
111111
112112
113113 func P (M) = ("user_social_" + M)
114114
115115
116116 func Q (M) = ("user_thumb_" + M)
117117
118118
119119 func R (M) = ("user_status_" + M)
120120
121121
122122 func S (M) = ("user_date_" + M)
123123
124124
125125 func T (M,U) = ((("art_date_" + U) + "_") + M)
126126
127127
128128 func V (M,U) = ((("art_name_" + U) + "_") + M)
129129
130130
131131 func W (M,U) = ((("art_desc_" + U) + "_") + M)
132132
133133
134134 func X (M,U) = ((("art_display_cid_" + U) + "_") + M)
135135
136136
137137 func Y (M,U) = ((("art_export_hash_" + U) + "_") + M)
138138
139139
140140 func Z (M,U) = ((("art_export_cid_" + U) + "_") + M)
141141
142142
143143 func aa (M,U) = ((("art_maxmint_" + U) + "_") + M)
144144
145145
146146 func ab (M,U) = ((("art_signid_" + U) + "_") + M)
147147
148148
149149 func ac (M,U) = ((("art_issued_" + U) + "_") + M)
150150
151151
152152 func ad (M,U) = ((("art_onsale_" + U) + "_") + M)
153153
154154
155155 func ae (M,U) = ((("art_licence_hash_" + U) + "_") + M)
156156
157157
158158 func af (M,U) = ((("art_licence_cid_" + U) + "_") + M)
159159
160160
161161 func ag (M,U) = ((("art_tags_" + U) + "_") + M)
162162
163163
164164 func ah (M,U) = ((("art_type_" + U) + "_") + M)
165165
166166
167167 func ai (M,U) = ((("art_price_" + U) + "_") + M)
168168
169169
170170 func aj (M,U) = ((("art_assetAccepted_" + U) + "_") + M)
171171
172172
173173 func ak (M,al) = ((("get_hashbytxidaddr_" + al) + "_") + M)
174174
175175
176176 func am (G) = ("get_owner_by_hash_" + G)
177177
178178
179179 func an (M,ao) = ((("get_artidbysignid_" + ao) + "_") + M)
180180
181181
182182 func ap (G,M) = ("get_txid_by_hash_owner_" + toBase58String(sha256_16Kb(toBytes((G + M)))))
183183
184184
185185 func aq (ar,as,at) = if (if ((ar != ""))
186186 then !(H(ar))
187187 else false)
188188 then throw("Wrong Display CID length")
189189 else if (if ((as != ""))
190190 then !(H(as))
191191 else false)
192192 then throw("Wrong Export CID length")
193193 else if (if ((at != ""))
194194 then !(H(at))
195195 else false)
196196 then throw("Wrong Licence CID length")
197197 else true
198198
199199
200200 func au (av,aw) = if (if ((av != ""))
201201 then !(J(av))
202202 else false)
203203 then throw("Export Hash should be 64 characters maximum")
204204 else if (if ((aw != ""))
205205 then !(J(aw))
206206 else false)
207207 then throw("Licence Hash should be 64 characters maximum")
208208 else true
209209
210210
211211 func ax (ay,az) = if ((size(ay) == 0))
212212 then throw("Field cannot be is empty")
213213 else if ((size(ay) > az))
214214 then throw((ay + " is too long"))
215215 else true
216216
217217
218218 @Callable(B)
219219 func registerUser (aA,aB,aC,aD) = {
220220 let M = toString(addressFromPublicKey(B.callerPublicKey))
221221 let aE = w(R(M))
222222 let aF = toBase58String(B.transactionId)
223223 let aG = lastBlock.timestamp
224224 if (if ((aE == p))
225225 then true
226226 else (aE == q))
227227 then throw("You are now allowed to register, your account have been suspended/ removed.")
228228 else if ((aE == n))
229229 then throw("You are already registered, please use update method instead.")
230230 else if (if ((aE == ""))
231231 then l
232232 else false)
233233 then throw("You are now allowed to register yet, please contact us first to get approved.")
234234 else if (if ((aA == ""))
235235 then true
236236 else (aB == ""))
237237 then throw("Name and description cannot be empty")
238238 else if ((size(aB) > 600))
239239 then throw("600 Characters maximum for the description")
240240 else [IntegerEntry(S(M), aG), StringEntry(L(M), ((aF + "_") + toString(lastBlock.timestamp))), StringEntry(N(M), aA), StringEntry(O(M), aB), StringEntry(P(M), aD), StringEntry(Q(M), aC), StringEntry(R(M), n), StringEntry("last_invoke_id", aF)]
241241 }
242242
243243
244244
245245 @Callable(B)
246246 func deleteEntry (aH) = {
247247 let M = toString(addressFromPublicKey(B.callerPublicKey))
248248 if ((M == j))
249249 then [DeleteEntry(aH)]
250250 else throw("no")
251251 }
252252
253253
254254
255255 @Callable(B)
256256 func updateUser (aA,aB,aC,aD) = {
257257 let M = toString(addressFromPublicKey(B.callerPublicKey))
258258 let aE = w(R(M))
259259 if (if ((aE == p))
260260 then true
261261 else (aE == q))
262262 then throw("You are now allowed to register, your account have been suspended/ removed.")
263263 else if (if ((aE == ""))
264264 then true
265265 else (aE == m))
266266 then throw("Please register first with registerUser")
267267 else {
268268 let aF = toBase58String(B.transactionId)
269269 let aG = lastBlock.timestamp
270270 if (if ((aA == ""))
271271 then true
272272 else (aB == ""))
273273 then throw("Name and description cannot be empty")
274274 else if ((size(aB) > 600))
275275 then throw("600 Characters maximum for the description")
276276 else [StringEntry(N(M), aA), StringEntry(O(M), aB), StringEntry(P(M), aD), StringEntry(Q(M), aC), StringEntry("last_invoke_id", aF)]
277277 }
278278 }
279279
280280
281281
282282 @Callable(B)
283283 func changeUserStatus (aI,aJ) = {
284284 let M = toString(addressFromPublicKey(B.callerPublicKey))
285285 let aF = toBase58String(B.transactionId)
286286 let aK = w(R(aI))
287287 let aL = if ((aJ == o))
288288 then o
289289 else if ((aJ == n))
290290 then n
291291 else if ((aJ == p))
292292 then p
293293 else if ((aJ == q))
294294 then q
295295 else if ((aJ == m))
296296 then m
297297 else if (if ((aJ == s))
298298 then (aK == m)
299299 else false)
300300 then ""
301301 else throw("Unknown status")
302302 if (if ((aK == m))
303303 then (aJ == m)
304304 else false)
305305 then throw("This user is already allowed")
306306 else if (if ((aK == n))
307307 then (aJ == m)
308308 else false)
309309 then throw("This user is already allowed and registered")
310310 else if (if ((aK == o))
311311 then (aJ == m)
312312 else false)
313313 then throw("This user is already allowed and verified")
314314 else if (if ((M == j))
315315 then true
316316 else (M == k))
317317 then [StringEntry(R(aI), aL), StringEntry("last_invoke_id", aF)]
318318 else throw(((("You are not allowed to change user status " + M) + " / ") + j))
319319 }
320320
321321
322322
323323 @Callable(B)
324324 func creditUser (aI) = {
325325 let M = toString(addressFromPublicKey(B.callerPublicKey))
326326 let aF = toBase58String(B.transactionId)
327327 if (if ((M == j))
328328 then true
329329 else (M == k))
330330 then [ScriptTransfer(Address(fromBase58String(aI)), 150000000000, d)]
331331 else throw("You are not allowed to do that")
332332 }
333333
334334
335335
336336 @Callable(aM)
337337 func addArtwork (G,E,aA,aB,aN,aO,aP,ar,av,as,aw,at) = {
338338 let U = toBase58String(aM.transactionId)
339339 let aQ = toBase58String(aM.caller.bytes)
340340 if (!(aq(ar, as, at)))
341341 then throw("Problem with CID")
342342 else if (!(J(G)))
343343 then throw("Hash should be 64 characters maximum")
344344 else if (!(au(av, aw)))
345345 then throw("Problem with Hashes")
346346 else if ((size(aM.payments) == 0))
347347 then throw("No payment attached")
348348 else {
349349 let aR = value(aM.payments[0])
350350 let aS = value(aR.amount)
351351 let aT = if (if (isDefined(aR.assetId))
352352 then (aR.assetId == d)
353353 else false)
354354 then aR.assetId
355355 else throw("Only SIGN token accepted at the moment")
356356 let aU = {
357357 let y = getInteger(a, ("certification_fee_" + toBase58String(d)))
358358 if ($isInstanceOf(y, "Int"))
359359 then {
360360 let aV = y
361361 aV
362362 }
363363 else throw("Price undefined in oracle")
364364 }
365365 if ((aS != aU))
366366 then throw(("Payment amount should be " + toString(aU)))
367367 else {
368368 let aW = w(ap(G, aQ))
369369 if ((aW != ""))
370370 then throw("You already added it on Sign Art")
371371 else {
372372 let aX = w(am(G))
373373 if ((aX != ""))
374374 then throw("Hash already registered on Sign Art")
375375 else {
376376 let aY = D(E, aQ, G)
377377 if (!(aY))
378378 then throw("Sign Certificate not found for this address.")
379379 else if ((size(ar) == 0))
380380 then throw("Display CID cannot be empty")
381381 else if (!(ax(aA, 100)))
382382 then throw("100 Char. max for the name")
383383 else if (!(ax(aB, 1000)))
384384 then throw("1000 Char. max for the description")
385385 else if ((size(split(aN, ",")) > 5))
386386 then throw("5 tags max.")
387387 else {
388388 let aZ = {
389389 let y = getString(this, ("user_status_" + aQ))
390390 if ($isInstanceOf(y, "String"))
391391 then {
392392 let ba = y
393393 ba
394394 }
395395 else r
396396 }
397397 let aG = lastBlock.timestamp
398398 if (if (isDefined(aZ))
399399 then (aZ == r)
400400 else false)
401401 then throw("Register this account first with \"User infos\" tab")
402402 else if ((aZ == p))
403403 then throw("Account suspended")
404404 else if ((aZ == q))
405405 then throw("Account removed")
406406 else if ((aP > 10))
407407 then throw("10 editions max per artwork")
408408 else if ((size(G) != 64))
409409 then throw("Hash should be 64 char.")
410410 else [StringEntry(am(G), aQ), StringEntry(ap(G, aQ), U), IntegerEntry(T(aQ, U), aG), StringEntry(V(aQ, U), aA), StringEntry(W(aQ, U), aB), StringEntry(X(aQ, U), ar), StringEntry(Z(aQ, U), as), StringEntry(Y(aQ, U), av), StringEntry(ae(aQ, U), aw), StringEntry(af(aQ, U), at), StringEntry(ah(aQ, U), aO), StringEntry(ag(aQ, U), aN), IntegerEntry(aa(aQ, U), aP), StringEntry(ab(aQ, U), E), IntegerEntry(ac(aQ, U), 0), BooleanEntry(ad(aQ, U), false), StringEntry(an(aQ, E), U), StringEntry("last_invoke_id", U), StringEntry(ak(aQ, U), G), ScriptTransfer(Address(fromBase58String(c)), aS, aT)]
411411 }
412412 }
413413 }
414414 }
415415 }
416416 }
417417
418418
419419
420420 @Callable(aM)
421421 func updateArtwork (al,aA,aB,aN,aO,aP,ar,av,as,aw,at) = {
422422 let bb = toBase58String(aM.transactionId)
423423 let aQ = toBase58String(aM.caller.bytes)
424424 if (!(aq(ar, as, at)))
425425 then throw("Problem with CID")
426426 else if (!(au(av, aw)))
427427 then throw("Problem with Hashes")
428428 else {
429429 let aW = w(V(aQ, al))
430430 if ((aW == ""))
431431 then throw("Entry not found")
432432 else if (!(ax(aA, 100)))
433433 then throw("100 Char. max for the name")
434434 else if (!(ax(aB, 1000)))
435435 then throw("1000 Char. max for the description")
436436 else {
437437 let bc = {
438438 let y = getInteger(this, ac(aQ, al))
439439 if ($isInstanceOf(y, "Int"))
440440 then {
441441 let bd = y
442442 if ((bd == 0))
443443 then false
444444 else true
445445 }
446446 else false
447447 }
448448 if ((size(split(aN, ",")) > 5))
449449 then throw("5 tags max.")
450450 else {
451451 let aZ = {
452452 let y = getString(this, ("user_status_" + aQ))
453453 if ($isInstanceOf(y, "String"))
454454 then {
455455 let ba = y
456456 ba
457457 }
458458 else r
459459 }
460460 if (if (isDefined(aZ))
461461 then (aZ == r)
462462 else false)
463463 then throw("Register this account first with \"User infos\" tab")
464464 else if ((aZ == p))
465465 then throw("Account suspended")
466466 else if ((aZ == q))
467467 then throw("Account removed")
468468 else if ((aP > 10))
469469 then throw("M10 editions max per artwork")
470470 else if (!(bc))
471471 then [StringEntry(V(aQ, al), aA), StringEntry(W(aQ, al), aB), StringEntry(X(aQ, al), ar), StringEntry(Z(aQ, al), as), StringEntry(Y(aQ, al), av), StringEntry(af(aQ, al), at), StringEntry(ae(aQ, al), aw), IntegerEntry(aa(aQ, al), aP), StringEntry(ag(aQ, al), aN), StringEntry(ah(aQ, al), aO), StringEntry("last_invoke_id", bb)]
472472 else throw("Artwork already minted")
473473 }
474474 }
475475 }
476476 }
477477
478478
479479
480480 @Callable(B)
481481 func deleteArtwork (U,aI) = {
482482 let aQ = toString(addressFromPublicKey(B.callerPublicKey))
483483 let aF = toBase58String(B.transactionId)
484484 let be = if (if ((aQ == j))
485485 then true
486486 else (aQ == k))
487487 then aI
488488 else aQ
489489 let aW = {
490490 let y = getString(this, V(be, U))
491491 if ($isInstanceOf(y, "String"))
492492 then {
493493 let ba = y
494494 ba
495495 }
496496 else throw("No artwork matching")
497497 }
498498 let bc = {
499499 let y = getInteger(this, ac(be, U))
500500 if ($isInstanceOf(y, "Int"))
501501 then {
502502 let bd = y
503503 if ((bd != 0))
504504 then true
505505 else false
506506 }
507507 else false
508508 }
509509 let bf = A(aa(be, U))
510510 let G = {
511511 let y = getString(this, ak(be, U))
512512 if ($isInstanceOf(y, "String"))
513513 then {
514514 let ba = y
515515 ba
516516 }
517517 else throw("No artwork hash matching")
518518 }
519519 let E = {
520520 let y = getString(this, ab(be, U))
521521 if ($isInstanceOf(y, "String"))
522522 then {
523523 let ba = y
524524 ba
525525 }
526526 else throw("No SIGN ID matching")
527527 }
528528 let bg = [DeleteEntry(T(be, U)), DeleteEntry(V(be, U)), DeleteEntry(W(be, U)), DeleteEntry(X(be, U)), DeleteEntry(Z(be, U)), DeleteEntry(Y(be, U)), DeleteEntry(ae(be, U)), DeleteEntry(af(be, U)), DeleteEntry(ah(be, U)), DeleteEntry(ag(be, U)), DeleteEntry(aa(be, U)), DeleteEntry(ab(be, U)), DeleteEntry(ac(be, U)), DeleteEntry(ad(be, U)), StringEntry("last_invoke_id", aF), DeleteEntry(am(G)), DeleteEntry(an(be, E)), DeleteEntry(ap(G, be)), DeleteEntry(ai(be, U)), DeleteEntry(aa(be, U)), DeleteEntry(aj(be, U)), DeleteEntry(((((("art_sold_1_of_" + toString(bf)) + "_") + U) + "_") + be)), DeleteEntry(((((("art_sold_2_of_" + toString(bf)) + "_") + U) + "_") + be)), DeleteEntry(((((("art_sold_3_of_" + toString(bf)) + "_") + U) + "_") + be)), DeleteEntry(((((("art_sold_4_of_" + toString(bf)) + "_") + U) + "_") + be)), DeleteEntry(((((("art_sold_5_of_" + toString(bf)) + "_") + U) + "_") + be)), DeleteEntry(((((("art_sold_6_of_" + toString(bf)) + "_") + U) + "_") + be)), DeleteEntry(((((("art_sold_7_of_" + toString(bf)) + "_") + U) + "_") + be)), DeleteEntry(((((("art_sold_8_of_" + toString(bf)) + "_") + U) + "_") + be)), DeleteEntry(((((("art_sold_9_of_" + toString(bf)) + "_") + U) + "_") + be)), DeleteEntry(((((("art_sold_10_of_" + toString(bf)) + "_") + U) + "_") + be))]
529529 if (if ((aQ == j))
530530 then true
531531 else (aQ == k))
532532 then bg
533533 else if (!(bc))
534534 then bg
535535 else throw("Artwork already minted, you cannot delete it")
536536 }
537537
538538
539539
540540 @Callable(aM)
541541 func sellArtwork (U,aV,bf,aT) = {
542542 let aF = toBase58String(aM.transactionId)
543543 let aQ = toBase58String(aM.caller.bytes)
544544 let bh = lastBlock.timestamp
545545 let bi = w(Z(aQ, U))
546546 if ((size(split(bi, "/")[0]) != 59))
547547 then throw("You cannot sell artwork with no export file")
548548 else {
549549 let bj = w(Y(aQ, U))
550550 if ((size(bj) != 64))
551551 then throw("You cannot sell artwork with no export hash")
552552 else if (if (if ((aT != toBase58String(d)))
553553 then (aT != toBase58String(f))
554554 else false)
555555 then (aT != toBase58String(e))
556556 else false)
557- then throw("Only SIGN, USDN or WAVES currency accepted at the moment")
557+ then throw("Only SIGN, USDN or WAVES accepted")
558558 else {
559559 let bk = {
560560 let y = getString(this, V(aQ, U))
561561 if ($isInstanceOf(y, "String"))
562562 then {
563563 let ba = y
564564 ba
565565 }
566- else throw("This artwork doesn't exit or you are not the owner")
566+ else throw("This artwork doesn't match")
567567 }
568568 let aZ = {
569569 let y = getString(this, R(aQ))
570570 if ($isInstanceOf(y, "String"))
571571 then {
572572 let ba = y
573573 ba
574574 }
575- else throw("Please register this account first")
575+ else throw("Register this account first")
576576 }
577- let bl = {
578- let y = getInteger(this, ac(aQ, U))
579- if ($isInstanceOf(y, "Int"))
580- then {
581- let bm = y
582- bm
583- }
584- else 0
585- }
586- let bn = {
587- let y = getInteger(this, aa(aQ, U))
588- if ($isInstanceOf(y, "Int"))
589- then {
590- let bm = y
591- bm
592- }
593- else 0
594- }
577+ let bl = A(ac(aQ, U))
578+ let bm = A(aa(aQ, U))
595579 if (if ((bl != 0))
596- then (bl == bn)
580+ then (bl == bm)
597581 else false)
598- then throw("You reached the max edition allowed to sell for this edition.")
582+ then throw("Max edition reached.")
599583 else if (if ((bl > 0))
600- then (bn != bf)
584+ then (bm != bf)
601585 else false)
602- then throw("You cannot change the maximum issuable anymore")
586+ then throw("Cannot change maximum issuable anymore")
603587 else if ((aZ == p))
604- then throw("Your account is suspended")
588+ then throw("Account suspended")
605589 else if ((aZ == q))
606- then throw("Your account have been deleted")
590+ then throw("Account deleted")
607591 else {
608- let bo = if ((aV > 0))
592+ let bn = if ((aV > 0))
609593 then true
610594 else false
611-[BooleanEntry(ad(aQ, U), bo), IntegerEntry(ai(aQ, U), aV), IntegerEntry(aa(aQ, U), bf), StringEntry(aj(aQ, U), aT), StringEntry("last_invoke_id", aF)]
595+[BooleanEntry(ad(aQ, U), bn), IntegerEntry(ai(aQ, U), aV), IntegerEntry(aa(aQ, U), bf), StringEntry(aj(aQ, U), aT), StringEntry("last_invoke_id", aF)]
612596 }
613597 }
614598 }
615599 }
616600
617601
618602
619603 @Callable(aM)
620-func buyArtwork (U,bp) = {
604+func buyArtwork (U,bo) = {
621605 let aF = toBase58String(aM.transactionId)
622606 let aQ = toBase58String(aM.caller.bytes)
623- let bq = A("total_nft_issued")
624- let E = w(ab(bp, U))
607+ let bp = A("total_nft_issued")
608+ let E = w(ab(bo, U))
625609 let bk = {
626- let y = getString(this, V(bp, U))
610+ let y = getString(this, V(bo, U))
627611 if ($isInstanceOf(y, "String"))
628612 then {
629613 let ba = y
630614 ba
631615 }
632616 else throw("Artwork doesn't exit")
633617 }
634- let br = w(X(bp, U))
635- let bi = w(Z(bp, U))
636- let bj = w(Y(bp, U))
637- let bs = w(af(bp, U))
638- let bt = w(ae(bp, U))
639- let aB = take(w(W(bp, U)), 50)
640- let bl = A(ac(bp, U))
641- let bu = A(ai(bp, U))
642- let bv = C(ad(bp, U))
643- let bw = w(aj(bp, U))
644- let bx = w(ak(bp, U))
645- if ((bu == 0))
618+ let bq = w(X(bo, U))
619+ let bi = w(Z(bo, U))
620+ let bj = w(Y(bo, U))
621+ let br = w(af(bo, U))
622+ let bs = w(ae(bo, U))
623+ let aB = take(w(W(bo, U)), 50)
624+ let bl = A(ac(bo, U))
625+ let bt = A(ai(bo, U))
626+ let bu = C(ad(bo, U))
627+ let bv = w(aj(bo, U))
628+ let bw = w(ak(bo, U))
629+ if ((bt == 0))
646630 then throw("Artwork not for sell")
647- else if (!(bv))
631+ else if (!(bu))
648632 then throw("Artwork not for sale")
649633 else {
650- let bn = A(aa(bp, U))
634+ let bm = A(aa(bo, U))
651635 let aR = value(aM.payments[0])
652636 let aS = value(aR.amount)
653637 let aT = if (if (isDefined(aR.assetId))
654- then (aR.assetId == fromBase58String(bw))
638+ then (aR.assetId == fromBase58String(bv))
655639 else false)
656640 then aR.assetId
657- else throw((("Only " + bw) + " token id accepted at the moment"))
658- let by = if ((bw == toBase58String(d)))
641+ else throw((("Only " + bv) + " token id accepted at the moment"))
642+ let bx = if ((bv == toBase58String(d)))
659643 then 8
660644 else 10
661- let bz = ((aS / 100) * by)
662- let bA = (aS - bz)
663- if ((bl == bn))
645+ let by = ((aS / 100) * bx)
646+ let bz = (aS - by)
647+ if ((bl == bm))
664648 then throw("Artwork sold out")
665- else if ((bu != aS))
649+ else if ((bt != aS))
666650 then throw("Payment don't match")
667651 else {
668- let bB = (bl + 1)
669- let bC = lastBlock.timestamp
670- let bD = (((((((((((((((((((((((((((("{\"version\": 1,
671- \"creator\": \"" + bp) + "\",
652+ let bA = (bl + 1)
653+ let bB = lastBlock.timestamp
654+ let bC = (((((((((((((((((((((((((((("{\"version\": 1,
655+ \"creator\": \"" + bo) + "\",
672656 \"artID\": \"") + U) + "\",
673657 \"signID\": \"") + E) + "\",
674658 \"artwork_name\": \"") + bk) + "\",
675659 \"artwork_desc\": \"") + aB) + "\",
676- \"issue\": \"") + toString(bB)) + "/") + toString(bn)) + "\",
677- \"maxIssuable\": \"") + toString(bn)) + "\",
678- \"source_hash\": \"") + bx) + "\",
679- \"display_cid\": \"") + br) + "\",
660+ \"issue\": \"") + toString(bA)) + "/") + toString(bm)) + "\",
661+ \"maxIssuable\": \"") + toString(bm)) + "\",
662+ \"source_hash\": \"") + bw) + "\",
663+ \"display_cid\": \"") + bq) + "\",
680664 \"export_cid\": \"") + bi) + "\",
681665 \"export_hash\": \"") + bj) + "\",
682- \"licence_cid\": \"") + bs) + "\",
683- \"licence_hash\": \"") + bt) + "\"}")
684- let bE = Issue(("SA_" + toString((bq + 1))), bD, 1, 0, false)
685- let bF = calculateAssetId(bE)
686- let bo = if ((bB == bn))
666+ \"licence_cid\": \"") + br) + "\",
667+ \"licence_hash\": \"") + bs) + "\"}")
668+ let bD = Issue(("SA_" + toString((bp + 1))), bC, 1, 0, false)
669+ let bE = calculateAssetId(bD)
670+ let bn = if ((bA == bm))
687671 then false
688672 else true
689-[IntegerEntry(ac(bp, U), bB), StringEntry(((((((("art_sold_" + toString(bB)) + "_of_") + toString(bn)) + "_") + U) + "_") + bp), ((((((((aQ + "_") + toString(bC)) + "_") + aF) + "_") + toString(bu)) + "_") + bw)), IntegerEntry("total_nft_issued", (bq + 1)), BooleanEntry(ad(bp, U), bo), StringEntry("last_invoke_id", aF), bE, ScriptTransfer(Address(fromBase58String(bp)), bA, aT), ScriptTransfer(Address(fromBase58String(c)), bz, aT), ScriptTransfer(aM.caller, 1, bF)]
673+[IntegerEntry(ac(bo, U), bA), StringEntry(((((((("art_sold_" + toString(bA)) + "_of_") + toString(bm)) + "_") + U) + "_") + bo), ((((((((aQ + "_") + toString(bB)) + "_") + aF) + "_") + toString(bt)) + "_") + bv)), IntegerEntry("total_nft_issued", (bp + 1)), BooleanEntry(ad(bo, U), bn), StringEntry("last_invoke_id", aF), bD, ScriptTransfer(Address(fromBase58String(bo)), bz, aT), ScriptTransfer(Address(fromBase58String(c)), by, aT), ScriptTransfer(aM.caller, 1, bE)]
690674 }
691675 }
692676 }
693677
694678
695679
696680 @Callable(B)
697681 func deleteUser (aI) = {
698682 let M = toString(addressFromPublicKey(B.callerPublicKey))
699683 let aF = toBase58String(B.transactionId)
700684 if (if ((M == j))
701685 then true
702686 else (M == k))
703687 then [DeleteEntry(S(aI)), DeleteEntry(L(aI)), DeleteEntry(N(aI)), DeleteEntry(O(aI)), DeleteEntry(P(aI)), DeleteEntry(Q(aI)), StringEntry(R(aI), q), StringEntry("last_invoke_id", aF)]
704688 else throw("You are not allowed")
705689 }
706690
707691

github/deemru/w8io/3ef1775 
141.17 ms