tx · 4Z2ZfBVbrasPt98eBozPBpnKnPwk8Enj7xerRaj2sNNk

3N2Tdcx5fzxJAKP5hMp9W35Cp1EFzfiJ1zG:  -0.01400000 Waves

2020.11.24 06:08 [1278924] smart account 3N2Tdcx5fzxJAKP5hMp9W35Cp1EFzfiJ1zG > SELF 0.00000000 Waves

{ "type": 13, "id": "4Z2ZfBVbrasPt98eBozPBpnKnPwk8Enj7xerRaj2sNNk", "fee": 1400000, "feeAssetId": null, "timestamp": 1606187324782, "version": 2, "chainId": 84, "sender": "3N2Tdcx5fzxJAKP5hMp9W35Cp1EFzfiJ1zG", "senderPublicKey": "9SULUbW7L2jV2nv8v48Kdzox4cZ8jEfg778yJHJpgVwM", "proofs": [ "3jYwEdcY2vS3CMMbDfWqJaG3xSEDBnonL4xMdVcrRkmBMhyLPvRfyvVW1bXLViaZjL5ngvHhfPSueZ2KKo5Gwus1" ], "script": "base64:AAIEAAAAAAAAAGEIAhIGCgQICAgIEgYKBAgICAgSBAoCCAgSDgoMCAgICAgIAQgICAgIEg0KCwgICAgIAQgICAgIEgUKAwgICBIECgIICBIGCgQIAQEIEgQKAggIEgMKAQgSAwoBCBIDCgEIAAAAPAAAAAAJb3JhY2xlRmVlCQEAAAAFdmFsdWUAAAABCQAEJgAAAAECAAAAIzNOMnM1UnRhSFBCZW5Dc3gyRUNjb0ZSYllIeDNub1poWFcxAAAAAAhzaWduRGFwcAkBAAAABXZhbHVlAAAAAQkABCYAAAABAgAAACMzTkMyOGhTaXZybXNUVVhhWUQxeDZMMzYySjRacFVub1RkQgAAAAALZmVlUmVjZWl2ZXICAAAAIzNOMUU2dFhkZFJvVmFSZlE5ZFEzdmc1TGFXMmZzZDhIS3ViAAAAAAtzaWduQXNzZXRJZAEAAAAg6KVqvMp3QvJwYTI1Sk9Fg7m5HuWZZxfDcerZC6EEresAAAAAC3VzZG5Bc3NldElkAQAAACAP8hwSrOTEPJrsRhqrJaiw7LoHK0bMbYhy8LXikkkBtAAAAAAMd2F2ZXNBc3NldElkAQAAAAAAAAAAB3NpZ25DdXQAAAAAAAAAAAgAAAAAB3VzZG5DdXQAAAAAAAAAAAoAAAAACHdhdmVzQ3V0AAAAAAAAAAAKAAAAAAVjaHJpcwIAAAAjM01zRzZqUE5DclZKVXRZQjdYSkJ4Uzd1dFdzWEFmNG45VnAAAAAABGpvZXACAAAAIzNNem00Vkx3c045dVp3YlRNelBqM1h1eFY2a0VmQVI4VUROAAAAAA9XSElURUxJU1RFRE9OTFkGAAAAAAtkYXBwUnVubmluZwYAAAAADm1haW50ZW5hbmNlTVNHAgAAAB1TSUdOIEFydCBpcyB1bmRlciBtYWludGVuYW5jZQAAAAALdXNlckFsbG93ZWQCAAAAB0FMTE9XRUQAAAAADnVzZXJSZWdpc3RlcmVkAgAAAApSRUdJU1RFUkVEAAAAAAx1c2VyVmVyaWZpZWQCAAAACFZFUklGSUVEAAAAAA11c2VyU3VzcGVuZGVkAgAAAAlTVVNQRU5ERUQAAAAAC3VzZXJSZW1vdmVkAgAAAAdSRU1PVkVEAAAAABB1c2VyVW5yZWdpc3RlcmVkAgAAAAxVTlJFR0lTVEVSRUQAAAAACXVz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bmdFbnRyeQAAAAIJAQAAAAtrZXlVc2VyRGVzYwAAAAEFAAAABmNhbGxlcgUAAAALZGVzY3JpcHRpb24JAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAADWtleVVzZXJTb2NpYWwAAAABBQAAAAZjYWxsZXIFAAAABnNvY2lhbAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAMa2V5VXNlclRodW1iAAAAAQUAAAAGY2FsbGVyBQAAAAV0aHVtYgkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACAgAAAA5sYXN0X2ludm9rZV9pZAUAAAACaWQFAAAAA25pbAAAAAFpAQAAABBjaGFuZ2VVc2VyU3RhdHVzAAAAAgAAAAdhZGRyZXNzAAAABnN0YXR1cwMJAQAAAAEhAAAAAQUAAAALZGFwcFJ1bm5pbmcJAAACAAAAAQUAAAAObWFpbnRlbmFuY2VNU0cEAAAABmNhbGxlcgkABCUAAAABCQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkEAAAAAmlkCQACWAAAAAEIBQAAAAFpAAAADXRyYW5zYWN0aW9uSWQEAAAADWN1cnJlbnRTdGF0dXMJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEJAQAAAA1rZXlVc2VyU3RhdHVzAAAAAQUAAAAHYWRkcmVzcwQAAAALc3RhdHVzVG9TZXQDCQAAAAAAAAIFAAAABnN0YXR1cwUAAAAMdXNlclZlcmlmaWVkBQAAAAx1c2VyVmVyaWZpZWQDCQAAAAAAAAIFAAAABnN0YXR1cwUAAAAOdXNlclJlZ2lzdGVyZWQFAAAADnVzZXJSZWdpc3RlcmVkAwkAAAAAAAACBQAAAAZzdGF0dXMFAAAADXVzZXJTdXNwZW5kZWQFAAAADXVzZXJTdXNwZW5kZWQDCQAAAAAAAAIFAAAABnN0YXR1cwUAAAALdXNlclJlbW92ZWQFAAAAC3VzZXJSZW1vdmVkAwkAAAAAAAACBQAAAAZzdGF0dXMFAAAAC3VzZXJBbGxvd2VkBQAAAAt1c2VyQWxsb3dlZAMDCQAAAAAAAAIFAAAABnN0YXR1cwUAAAAJdXNlclJlc2V0CQAAAAAAAAIFAAAADWN1cnJlbnRTdGF0dXMFAAAAC3VzZXJBbGxvd2VkBwIAAAAACQAAAgAAAAECAAAADlVua25vd24gc3RhdHVzAwMJAAAAAAAAAgUAAAANY3VycmVudFN0YXR1cwUAAAALdXNlckFsbG93ZWQJAAAAAAAAAgUAAAAGc3RhdHVzBQAAAAt1c2VyQWxsb3dlZAcJAAACAAAAAQIAAAAUVXNlciBhbHJlYWR5IGFsbG93ZWQDAwkAAAAAAAACBQAAAA1jdXJyZW50U3RhdHVzBQAAAA51c2VyUmVnaXN0ZXJlZAkAAAAAAAACBQAAAAZzdGF0dXMFAAAAC3VzZXJBbGxvd2VkBwkAAAIAAAABAgAAACFVc2VyIGFscmVhZHkgYWxsb3dlZCAmIHJlZ2lzdGVyZWQDAwkAAAAAAAACBQAAAA1jdXJyZW50U3RhdHVzBQAAAAx1c2VyVmVyaWZpZWQJAAAAAAAAAgUAAAAGc3RhdHVzBQAAAAt1c2VyQWxsb3dlZAcJAAACAAAAAQIAAAAfVXNlciBhbHJlYWR5IGFsbG93ZWQgJiB2ZXJpZmllZAMJAQAAAA9jb250YWluc0VsZW1lbnQAAAACCQAETAAAAAIFAAAABWNocmlzCQAETAAAAAIFAAAABGpvZXAFAAAAA25pbAUAAAAGY2FsbGVyCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAAA1rZXlVc2VyU3RhdHVzAAAAAQUAAAAHYWRkcmVzcwUAAAALc3RhdHVzVG9TZXQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgIAAAAObGFzdF9pbnZva2VfaWQFAAAAAmlkBQAAAANuaWwJAAACAAAAAQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAiTm90IGFsbG93ZWQgdG8gY2hhbmdlIHVzZXIgc3RhdHVzIAUAAAAGY2FsbGVyAgAAAAMgLyAFAAAABWNocmlzAAAABmludm9rZQEAAAAKYWRkQXJ0d29yawAAAAwAAAAKc2hhMjU2SGFzaAAAAAZzaWduSUQAAAAEbmFtZQAAAAtkZXNjcmlwdGlvbgAAAAR0YWdzAAAABHR5cGUAAAAHbWF4bWludAAAAApjaWREaXNwbGF5AAAADHNoYTI1NkV4cG9ydAAAAAljaWRFeHBvcnQAAAANc2hhMjU2TGljZW5jZQAAAApjaWRMaWNlbmNlAwkBAAAAASEAAAABBQAAAAtkYXBwUnVubmluZwkAAAIAAAABBQAAAA5tYWludGVuYW5jZU1TRwQAAAAFYXJ0SWQJAAJYAAAAAQgFAAAABmludm9rZQAAAA10cmFuc2FjdGlvbklkBAAAAAZjYWxsZXIJAAJYAAAAAQgIBQAAAAZpbnZva2UAAAAGY2FsbGVyAAAABWJ5dGVzAwkBAAAAASEAAAABCQEAAAAOdmFsaWRhdGVBbGxDSUQAAAADBQAAAApjaWREaXNwbGF5BQAAAAljaWRFeHBvcnQFAAAACmNpZExpY2VuY2UJAAACAAAAAQIAAAAQUHJvYmxlbSB3aXRoIENJRAMJAQAAAAEhAAAAAQkBAAAADHZhbGlkYXRlSGFzaAAAAAEFAAAACnNoYTI1Nkhhc2gJAAACAAAAAQIAAAAkSGFzaCBzaG91bGQgYmUgNjQgY2hhcmFjdGVycyBtYXhpbXVtAwkBAAAAASEAAAABCQEAAAAPdmFsaWRhdGVBbGxIYXNoAAAAAgUAAAAMc2hhMjU2RXhwb3J0BQAAAA1zaGEyNTZMaWNlbmNlCQAAAgAAAAECAAAAE1Byb2JsZW0gd2l0aCBIYXNoZXMDCQAAAAAAAAIJAAGQAAAAAQgFAAAABmludm9rZQAAAAhwYXltZW50cwAAAAAAAAAAAAkAAAIAAAABAgAAABNObyBwYXltZW50IGF0dGFjaGVkBAAAAAdwYXltZW50CQEAAAAFdmFsdWUAAAABCQABkQAAAAIIBQAAAAZpbnZva2UAAAAIcGF5bWVudHMAAAAAAAAAAAAEAAAABmFtb3VudAkBAAAABXZhbHVlAAAAAQgFAAAAB3BheW1lbnQAAAAGYW1vdW50BAAAAAdhc3NldElkAwMJAQAAAAlpc0RlZmluZWQAAAABCAUAAAAHcGF5bWVudAAAAAdhc3NldElkCQAAAAAAAAIIBQAAAAdwYXltZW50AAAAB2Fzc2V0SWQFAAAAC3NpZ25Bc3NldElkBwgFAAAAB3BheW1lbnQAAAAHYXNzZXRJZAkAAAIAAAABAgAAACZPbmx5IFNJR04gdG9rZW4gYWNjZXB0ZWQgYXQgdGhlIG1vbWVudAQAAAAZY3VycmVudENlcnRpZmljYXRpb25QcmljZQkBAAAAGWdldEludGVnZXJCeUtleUZyb21PcmFjbGUAAAABCQABLAAAAAICAAAAEmNlcnRpZmljYXRpb25fZmVlXwkAAlgAAAABBQAAAAtzaWduQXNzZXRJZAMJAQAAAAIhPQAAAAIFAAAABmFtb3VudAUAAAAZY3VycmVudENlcnRpZmljYXRpb25QcmljZQkAAAIAAAABCQABLAAAAAICAAAAGVBheW1lbnQgYW1vdW50IHNob3VsZCBiZSAJAAGkAAAAAQUAAAAZY3VycmVudENlcnRpZmljYXRpb25QcmljZQQAAAAKZW50cnlFeGlzdAkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQkBAAAAFWtleUFydFR4aWRCeUhhc2hPd25lcgAAAAIFAAAACnNoYTI1Nkhhc2gFAAAABmNhbGxlcgMJAQAAAAIhPQAAAAIFAAAACmVudHJ5RXhpc3QCAAAAAAkAAAIAAAABAgAAABRZb3UgYWxyZWFkeSBhZGRlZCBpdAQAAAAJaGFzaEV4aXN0CQEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABCQEAAAARa2V5QXJ0T3duZXJCeUhhc2gAAAABBQAAAApzaGEyNTZIYXNoAwkBAAAAAiE9AAAAAgUAAAAJaGFzaEV4aXN0AgAAAAAJAAACAAAAAQIAAAAXSGFzaCBhbHJlYWR5IHJlZ2lzdGVyZWQEAAAAD2lzU2lnbkNlcnRpZmllZAkBAAAAFGNoZWNrU2lnbkNlcnRpZmljYXRlAAAAAwUAAAAGc2lnbklEBQAAAAZjYWxsZXIFAAAACnNoYTI1Nkhhc2gDCQEAAAABIQAAAAEFAAAAD2lzU2lnbkNlcnRpZmllZAkAAAIAAAABAgAAACxTaWduIENlcnRpZmljYXRlIG5vdCBmb3VuZCBmb3IgdGhpcyBhZGRyZXNzLgMJAAAAAAAAAgkAATEAAAABBQAAAApjaWREaXNwbGF5AAAAAAAAAAAACQAAAgAAAAECAAAAG0Rpc3BsYXkgQ0lEIGNhbm5vdCBiZSBlbXB0eQMJAQAAAAEhAAAAAQkBAAAADnZhbGlkYXRlU3RyaW5nAAAAAgUAAAAEbmFtZQAAAAAAAAAAZAkAAAIAAAABAgAAABIxMDAgQ2hhci4gbWF4IG5hbWUDCQEAAAABIQAAAAEJAQAAAA52YWxpZGF0ZVN0cmluZwAAAAIFAAAAC2Rlc2NyaXB0aW9uAAAAAAAAAAPoCQAAAgAAAAECAAAAGjEwMDAgQ2hhci4gbWF4IGRlc2NyaXB0aW9uAwkAAGYAAAACCQABkAAAAAEJAAS1AAAAAgUAAAAEdGFncwIAAAABLAAAAAAAAAAABQkAAAIAAAABAgAAAAs1IHRhZ3MgbWF4LgQAAAAQdXNlcklzUmVnaXN0ZXJlZAQAAAAHJG1hdGNoMAkABB0AAAACBQAAAAR0aGlzCQABLAAAAAICAAAADHVzZXJfc3RhdHVzXwUAAAAGY2FsbGVyAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAXMFAAAAByRtYXRjaDAFAAAAAXMFAAAAEHVzZXJVbnJlZ2lzdGVyZWQEAAAACXRpbWVzdGFtcAgFAAAACWxhc3RCbG9jawAAAAl0aW1lc3RhbXADAwkBAAAACWlzRGVmaW5lZAAAAAEFAAAAEHVzZXJJc1JlZ2lzdGVyZWQJAAAAAAAAAgUAAAAQdXNlcklzUmVnaXN0ZXJlZAUAAAAQdXNlclVucmVnaXN0ZXJlZAcJAAACAAAAAQIAAAAxUmVnaXN0ZXIgdGhpcyBhY2NvdW50IGZpcnN0IHdpdGggIlVzZXIgaW5mb3MiIHRhYgMJAAAAAAAAAgUAAAAQdXNlcklzUmVnaXN0ZXJlZAUAAAANdXNlclN1c3BlbmRlZAkAAAIAAAABAgAAABFBY2NvdW50IHN1c3BlbmRlZAMJAAAAAAAAAgUAAAAQdXNlcklzUmVnaXN0ZXJlZAUAAAALdXNlclJlbW92ZWQJAAACAAAAAQIAAAAPQWNjb3VudCByZW1vdmVkAwkAAGYAAAACBQAAAAdtYXhtaW50AAAAAAAAAAAKCQAAAgAAAAECAAAADzEwIGVkaXRpb25zIG1heAMJAQAAAAIhPQAAAAIJAAExAAAAAQUAAAAKc2hhMjU2SGFzaAAAAAAAAAAAQAkAAAIAAAABAgAAABFIYXNoIDY0IGNoYXIuIG1heAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAARa2V5QXJ0T3duZXJCeUhhc2gAAAABBQAAAApzaGEyNTZIYXNoBQAAAAZjYWxsZXIJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAFWtleUFydFR4aWRCeUhhc2hPd25lcgAAAAIFAAAACnNoYTI1Nkhhc2gFAAAABmNhbGxlcgUAAAAFYXJ0SWQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAAprZXlBcnREYXRlAAAAAgUAAAAGY2FsbGVyBQAAAAVhcnRJZAUAAAAJdGltZXN0YW1wCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAAAprZXlBcnROYW1lAAAAAgUAAAAGY2FsbGVyBQAAAAVhcnRJZAUAAAAEbmFtZQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAKa2V5QXJ0RGVzYwAAAAIFAAAABmNhbGxlcgUAAAAFYXJ0SWQFAAAAC2Rlc2NyaXB0aW9uCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABBrZXlBcnREaXNwbGF5Q2lkAAAAAgUAAAAGY2FsbGVyBQAAAAVhcnRJZAUAAAAKY2lkRGlzcGxheQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAPa2V5QXJ0RXhwb3J0Q2lkAAAAAgUAAAAGY2FsbGVyBQAAAAVhcnRJZAUAAAAJY2lkRXhwb3J0CQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABBrZXlBcnRFeHBvcnRIYXNoAAAAAgUAAAAGY2FsbGVyBQAAAAVhcnRJZAUAAAAMc2hhMjU2RXhwb3J0CQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABFrZXlBcnRMaWNlbmNlSGFzaAAAAAIFAAAABmNhbGxlcgUAAAAFYXJ0SWQFAAAADXNoYTI1NkxpY2VuY2UJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAEGtleUFydExpY2VuY2VDaWQAAAACBQAAAAZjYWxsZXIFAAAABWFydElkBQAAAApjaWRMaWNlbmNlCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAAAprZXlBcnRUeXBlAAAAAgUAAAAGY2FsbGVyBQAAAAVhcnRJZAUAAAAEdHlwZQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAKa2V5QXJ0VGFncwAAAAIFAAAABmNhbGxlcgUAAAAFYXJ0SWQFAAAABHRhZ3MJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAA1rZXlBcnRNYXhNaW50AAAAAgUAAAAGY2FsbGVyBQAAAAVhcnRJZAUAAAAHbWF4bWludAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAMa2V5QXJ0U2lnbklEAAAAAgUAAAAGY2FsbGVyBQAAAAVhcnRJZAUAAAAGc2lnbklECQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAMa2V5QXJ0SXNzdWVkAAAAAgUAAAAGY2FsbGVyBQAAAAVhcnRJZAAAAAAAAAAAAAkABEwAAAACCQEAAAAMQm9vbGVhbkVudHJ5AAAAAgkBAAAADGtleUFydE9uU2FsZQAAAAIFAAAABmNhbGxlcgUAAAAFYXJ0SWQHCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABNrZXlBcnRBcnRpZEJ5U2lnbmlkAAAAAgUAAAAGY2FsbGVyBQAAAAZzaWduSUQFAAAABWFydElkCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAICAAAADmxhc3RfaW52b2tlX2lkBQAAAAVhcnRJZAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAUa2V5QXJ0SGFzaEJ5VHhpZEFkZHIAAAACBQAAAAZjYWxsZXIFAAAABWFydElkBQAAAApzaGEyNTZIYXNoCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABBQAAAAtmZWVSZWNlaXZlcgUAAAAGYW1vdW50BQAAAAdhc3NldElkBQAAAANuaWwAAAAGaW52b2tlAQAAAA11cGRhdGVBcnR3b3JrAAAACwAAAAR0eGlkAAAABG5hbWUAAAALZGVzY3JpcHRpb24AAAAEdGFncwAAAAR0eXBlAAAAB21heG1pbnQAAAAKY2lkRGlzcGxheQAAAAxzaGEyNTZFeHBvcnQAAAAJY2lkRXhwb3J0AAAADXNoYTI1NkxpY2VuY2UAAAAKY2lkTGljZW5jZQMJAQAAAAEhAAAAAQUAAAAL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VXNlBQAAAAVhcnRJZAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQEAAAAQa2V5QXJ0TGljZW5jZUNpZAAAAAIFAAAADGFkZHJlc3NUb1VzZQUAAAAFYXJ0SWQJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkBAAAACmtleUFydFR5cGUAAAACBQAAAAxhZGRyZXNzVG9Vc2UFAAAABWFydElkCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAQAAAAprZXlBcnRUYWdzAAAAAgUAAAAMYWRkcmVzc1RvVXNlBQAAAAVhcnRJZAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQEAAAANa2V5QXJ0TWF4TWludAAAAAIFAAAADGFkZHJlc3NUb1VzZQUAAAAFYXJ0SWQJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkBAAAADGtleUFydFNpZ25JRAAAAAIFAAAADGFkZHJlc3NUb1VzZQUAAAAFYXJ0SWQJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkBAAAADGtleUFydElzc3VlZAAAAAIFAAAADGFkZHJlc3NUb1VzZQUAAAAFYXJ0SWQJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkBAAAADGtleUFydE9uU2FsZQAAAAIFAAAADGFkZHJlc3NUb1VzZQUAAAAFYXJ0SWQJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkBAAAACmtleUFydEZsYWcAAAACBQAAAARhZGRyBQAAAAVhcnRJZAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACAgAAAA5sYXN0X2ludm9rZV9pZAUAAAACaWQJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkBAAAAEWtleUFydE93bmVyQnlIYXNoAAAAAQUAAAAKc2hhMjU2SGFzaAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQEAAAATa2V5QXJ0QXJ0aWRCeVNpZ25pZAAAAAIFAAAADGFkZHJlc3NUb1VzZQUAAAAGc2lnbklECQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAQAAABVrZXlBcnRUeGlkQnlIYXNoT3duZXIAAAAC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Z0J5S2V5AAAAAQkBAAAAD2tleUFydEV4cG9ydENpZAAAAAIFAAAABmlzc3VlcgUAAAAFYXJ0SWQEAAAACmV4cG9ydEhhc2gJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEJAQAAABBrZXlBcnRFeHBvcnRIYXNoAAAAAgUAAAAGaXNzdWVyBQAAAAVhcnRJZAQAAAAKbGljZW5jZUNJRAkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQkBAAAAEGtleUFydExpY2VuY2VDaWQAAAACBQAAAAZpc3N1ZXIFAAAABWFydElkBAAAAAtsaWNlbmNlSGFzaAkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQkBAAAAEWtleUFydExpY2VuY2VIYXNoAAAAAgUAAAAGaXNzdWVyBQAAAAVhcnRJZAQAAAALZGVzY3JpcHRpb24JAAEvAAAAAgkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQkBAAAACmtleUFydERlc2MAAAACBQAAAAZpc3N1ZXIFAAAABWFydElkAAAAAAAAAAAyBAAAAAphbW91bnRTb2xkCQEAAAAPZ2V0SW50ZWdlckJ5S2V5AAAAAQkBAAAADGtleUFydElzc3VlZAAAAAIFAAAABmlzc3VlcgUAAAAFYXJ0SWQEAAAADGFydHdvcmtQcmljZQkBAAAAD2dldEludGVnZXJCeUtleQAAAAEJAQAAAAtrZXlBcnRQcmljZQAAAAIFAAAABmlzc3VlcgUAAAAFYXJ0SWQEAAAACGlzT25TYWxlCQEAAAAPZ2V0Qm9vbGVhbkJ5S2V5AAAAAQkBAAAADGtleUFydE9uU2FsZQAAAAIFAAAABmlzc3VlcgUAAAAFYXJ0SWQEAAAADHByaWNlQXNzZXRJZAkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQkBAAAAFWtleUFydEFzc2V0SWRBY2NlcHRlZAAAAAIFAAAABmlzc3VlcgUAAAAFYXJ0SWQEAAAACnNvdXJjZUhhc2gJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEJAQAAABRrZXlBcnRIYXNoQnlUeGlkQWRkcgAAAAIFAAAABmlzc3VlcgUAAAAFYXJ0SWQDCQAAAAAAAAIFAAAADGFydHdvcmtQcmljZQAAAAAAAAAAAAkAAAIAAAABAgAAABBBcnQgbm90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", "height": 1278924, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 6Rky7ozDimSpqVaguiejywp6asRPgG6eoiTo2aRb5w8n Next: YUbhkYvvuYBp95eKy5n7fS2pKzH9YeoawkVTdJBi7Eu Diff:
OldNewDifferences
4343
4444 let u = "RESET"
4545
46-func v (w) = {
47- let x = getString(this, w)
48- if ($isInstanceOf(x, "String"))
46+let v = "CHANGE_REQUIRED"
47+
48+func w (x) = {
49+ let y = getString(this, x)
50+ if ($isInstanceOf(y, "String"))
4951 then {
50- let y = x
51- y
52+ let z = y
53+ z
5254 }
5355 else ""
5456 }
5557
5658
57-func z (w) = {
58- let x = getInteger(a, w)
59- if ($isInstanceOf(x, "Int"))
59+func A (x) = {
60+ let y = getInteger(a, x)
61+ if ($isInstanceOf(y, "Int"))
6062 then {
61- let y = x
62- y
63+ let z = y
64+ z
6365 }
6466 else throw("Integer undefine or 0 in oracle")
6567 }
6668
6769
68-func A (w) = {
69- let x = getInteger(this, w)
70- if ($isInstanceOf(x, "Int"))
70+func B (x) = {
71+ let y = getInteger(this, x)
72+ if ($isInstanceOf(y, "Int"))
7173 then {
72- let B = x
73- B
74+ let C = y
75+ C
7476 }
7577 else 0
7678 }
7779
7880
79-func C (w) = {
80- let x = getBoolean(this, w)
81- if ($isInstanceOf(x, "Boolean"))
81+func D (x) = {
82+ let y = getBoolean(this, x)
83+ if ($isInstanceOf(y, "Boolean"))
8284 then {
83- let B = x
84- B
85+ let C = y
86+ C
8587 }
8688 else false
8789 }
8890
8991
90-func D (E,F,G) = {
91- let x = getString(b, ((("data_fc_" + E) + "_") + F))
92- if ($isInstanceOf(x, "String"))
92+func E (F,G,H) = {
93+ let y = getString(b, ((("data_fc_" + F) + "_") + G))
94+ if ($isInstanceOf(y, "String"))
9395 then {
94- let y = x
95- if (contains(y, G))
96+ let z = y
97+ if (contains(z, H))
9698 then true
9799 else false
98100 }
100102 }
101103
102104
103-func H (I) = if (if ((75 > size(I)))
104- then (60 > size(split(I, "/")[0]))
105+func I (J) = if (if ((75 > size(J)))
106+ then (60 > size(split(J, "/")[0]))
105107 else false)
106- then (16 > size(split(I, "/")[1]))
108+ then (16 > size(split(J, "/")[1]))
107109 else false
108110
109111
110-func J (K) = (65 > size(K))
112+func K (L) = (65 > size(L))
111113
112114
113-func L (M) = ("user_" + M)
115+func M (N) = ("user_" + N)
114116
115117
116-func N (M) = ("user_name_" + M)
118+func O (N) = ("user_name_" + N)
117119
118120
119-func O (M) = ("user_desc_" + M)
121+func P (N) = ("user_desc_" + N)
120122
121123
122-func P (M) = ("user_social_" + M)
124+func Q (N) = ("user_social_" + N)
123125
124126
125-func Q (M) = ("user_thumb_" + M)
127+func R (N) = ("user_thumb_" + N)
126128
127129
128-func R (M) = ("user_status_" + M)
130+func S (N) = ("user_status_" + N)
129131
130132
131-func S (M) = ("user_date_" + M)
133+func T (N) = ("user_date_" + N)
132134
133135
134-func T (M,U) = ((("art_date_" + U) + "_") + M)
136+func U (N,V) = ((("art_date_" + V) + "_") + N)
135137
136138
137-func V (M,U) = ((("art_name_" + U) + "_") + M)
139+func W (N,V) = ((("art_name_" + V) + "_") + N)
138140
139141
140-func W (M,U) = ((("art_desc_" + U) + "_") + M)
142+func X (N,V) = ((("art_desc_" + V) + "_") + N)
141143
142144
143-func X (M,U) = ((("art_display_cid_" + U) + "_") + M)
145+func Y (N,V) = ((("art_display_cid_" + V) + "_") + N)
144146
145147
146-func Y (M,U) = ((("art_export_hash_" + U) + "_") + M)
148+func Z (N,V) = ((("art_export_hash_" + V) + "_") + N)
147149
148150
149-func Z (M,U) = ((("art_export_cid_" + U) + "_") + M)
151+func aa (N,V) = ((("art_export_cid_" + V) + "_") + N)
150152
151153
152-func aa (M,U) = ((("art_maxmint_" + U) + "_") + M)
154+func ab (N,V) = ((("art_maxmint_" + V) + "_") + N)
153155
154156
155-func ab (M,U) = ((("art_signid_" + U) + "_") + M)
157+func ac (N,V) = ((("art_signid_" + V) + "_") + N)
156158
157159
158-func ac (M,U) = ((("art_issued_" + U) + "_") + M)
160+func ad (N,V) = ((("art_issued_" + V) + "_") + N)
159161
160162
161-func ad (M,U) = ((("art_onsale_" + U) + "_") + M)
163+func ae (N,V) = ((("art_onsale_" + V) + "_") + N)
162164
163165
164-func ae (M,U) = ((("art_licence_hash_" + U) + "_") + M)
166+func af (N,V) = ((("art_licence_hash_" + V) + "_") + N)
165167
166168
167-func af (M,U) = ((("art_licence_cid_" + U) + "_") + M)
169+func ag (N,V) = ((("art_licence_cid_" + V) + "_") + N)
168170
169171
170-func ag (M,U) = ((("art_tags_" + U) + "_") + M)
172+func ah (N,V) = ((("art_tags_" + V) + "_") + N)
171173
172174
173-func ah (M,U) = ((("art_type_" + U) + "_") + M)
175+func ai (N,V) = ((("art_type_" + V) + "_") + N)
174176
175177
176-func ai (M,U) = ((("art_price_" + U) + "_") + M)
178+func aj (N,V) = ((("art_price_" + V) + "_") + N)
177179
178180
179-func aj (M,U) = ((("art_assetAccepted_" + U) + "_") + M)
181+func ak (N,V) = ((("art_assetAccepted_" + V) + "_") + N)
180182
181183
182-func ak (M,U) = ((("art_flag_" + U) + "_") + M)
184+func al (N,V) = ((("art_flag_" + V) + "_") + N)
183185
184186
185-func al (M,am) = ((("get_hashbytxidaddr_" + am) + "_") + M)
187+func am (N,an) = ((("get_hashbytxidaddr_" + an) + "_") + N)
186188
187189
188-func an (G) = ("get_owner_by_hash_" + G)
190+func ao (H) = ("get_owner_by_hash_" + H)
189191
190192
191-func ao (M,ap) = ((("get_artidbysignid_" + ap) + "_") + M)
193+func ap (N,aq) = ((("get_artidbysignid_" + aq) + "_") + N)
192194
193195
194-func aq (G,M) = ("get_txid_by_hash_owner_" + toBase58String(sha256_16Kb(toBytes((G + M)))))
196+func ar (H,N) = ("get_txid_by_hash_owner_" + toBase58String(sha256_16Kb(toBytes((H + N)))))
195197
196198
197-func ar (as,at,au) = if (if ((as != ""))
198- then !(H(as))
199+func as (at,au,av) = if (if ((at != ""))
200+ then !(I(at))
199201 else false)
200202 then throw("Wrong Display CID")
201- else if (if ((at != ""))
202- then !(H(at))
203+ else if (if ((au != ""))
204+ then !(I(au))
203205 else false)
204206 then throw("Wrong Export CID")
205- else if (if ((au != ""))
206- then !(H(au))
207+ else if (if ((av != ""))
208+ then !(I(av))
207209 else false)
208210 then throw("Wrong Licence CID")
209211 else true
210212
211213
212-func av (aw,ax) = if (if ((aw != ""))
213- then !(J(aw))
214+func aw (ax,ay) = if (if ((ax != ""))
215+ then !(K(ax))
214216 else false)
215217 then throw("Export Hash 64 char. max")
216- else if (if ((ax != ""))
217- then !(J(ax))
218+ else if (if ((ay != ""))
219+ then !(K(ay))
218220 else false)
219221 then throw("Licence Hash 64 char. max")
220222 else true
221223
222224
223-func ay (az,aA) = if ((size(az) == 0))
225+func az (aA,aB) = if ((size(aA) == 0))
224226 then throw("Field cannot be is empty")
225- else if ((size(az) > aA))
226- then throw((az + " is too long"))
227+ else if ((size(aA) > aB))
228+ then throw((aA + " is too long"))
227229 else true
228230
229231
230-@Callable(B)
231-func registerUser (aB,aC,aD,aE) = if (!(m))
232+@Callable(C)
233+func registerUser (aC,aD,aE,aF) = if (!(m))
232234 then throw(n)
233235 else {
234- let M = toString(addressFromPublicKey(B.callerPublicKey))
235- let aF = v(R(M))
236- let aG = toBase58String(B.transactionId)
237- let aH = lastBlock.timestamp
238- if (if ((aF == r))
236+ let N = toString(addressFromPublicKey(C.callerPublicKey))
237+ let aG = w(S(N))
238+ let aH = toBase58String(C.transactionId)
239+ let aI = lastBlock.timestamp
240+ if (if ((aG == r))
239241 then true
240- else (aF == s))
242+ else (aG == s))
241243 then throw("Account suspended/ removed.")
242- else if ((aF == p))
244+ else if ((aG == p))
243245 then throw("Already registered")
244- else if (if ((aF == ""))
246+ else if (if ((aG == ""))
245247 then l
246248 else false)
247249 then throw("Can't register, get approved first.")
248- else if (if ((aB == ""))
250+ else if (if ((aC == ""))
249251 then true
250- else (aC == ""))
252+ else (aD == ""))
251253 then throw("Name and description cannot be empty")
252- else if ((size(aC) > 600))
254+ else if ((size(aD) > 600))
253255 then throw("600 Char. max description")
254- else if ((size(aB) > 45))
256+ else if ((size(aC) > 45))
255257 then throw("45 Char. max name")
256- else [IntegerEntry(S(M), aH), StringEntry(L(M), ((aG + "_") + toString(aH))), StringEntry(N(M), aB), StringEntry(O(M), aC), StringEntry(P(M), aE), StringEntry(Q(M), aD), StringEntry(R(M), p), StringEntry("last_invoke_id", aG)]
258+ else [IntegerEntry(T(N), aI), StringEntry(M(N), ((aH + "_") + toString(aI))), StringEntry(O(N), aC), StringEntry(P(N), aD), StringEntry(Q(N), aF), StringEntry(R(N), aE), StringEntry(S(N), p), StringEntry("last_invoke_id", aH)]
257259 }
258260
259261
260262
261-@Callable(B)
262-func updateUser (aB,aC,aD,aE) = if (!(m))
263+@Callable(C)
264+func updateUser (aC,aD,aE,aF) = if (!(m))
263265 then throw(n)
264266 else {
265- let M = toString(addressFromPublicKey(B.callerPublicKey))
266- let aG = toBase58String(B.transactionId)
267- let aI = v(R(M))
268- if (if ((aI == r))
267+ let N = toString(addressFromPublicKey(C.callerPublicKey))
268+ let aH = toBase58String(C.transactionId)
269+ let aJ = w(S(N))
270+ if (if ((aJ == r))
269271 then true
270- else (aI == s))
272+ else (aJ == s))
271273 then throw("Account suspended/ removed.")
272- else if (if ((aI == ""))
274+ else if (if ((aJ == ""))
273275 then true
274- else (aI == o))
276+ else (aJ == o))
275277 then throw("Register first")
276- else if (if ((aB == ""))
278+ else if (if ((aC == ""))
277279 then true
278- else (aC == ""))
280+ else (aD == ""))
279281 then throw("Name & description cannot be empty")
280- else if ((size(aC) > 600))
282+ else if ((size(aD) > 600))
281283 then throw("600 Char. max for description")
282- else if ((size(aB) > 45))
284+ else if ((size(aC) > 45))
283285 then throw("45 Char. max name")
284- else [StringEntry(N(M), aB), StringEntry(O(M), aC), StringEntry(P(M), aE), StringEntry(Q(M), aD), StringEntry("last_invoke_id", aG)]
286+ else [StringEntry(O(N), aC), StringEntry(P(N), aD), StringEntry(Q(N), aF), StringEntry(R(N), aE), StringEntry("last_invoke_id", aH)]
285287 }
286288
287289
288290
289-@Callable(B)
290-func changeUserStatus (aJ,aK) = if (!(m))
291+@Callable(C)
292+func changeUserStatus (aK,aL) = if (!(m))
291293 then throw(n)
292294 else {
293- let M = toString(addressFromPublicKey(B.callerPublicKey))
294- let aG = toBase58String(B.transactionId)
295- let aL = v(R(aJ))
296- let aM = if ((aK == q))
295+ let N = toString(addressFromPublicKey(C.callerPublicKey))
296+ let aH = toBase58String(C.transactionId)
297+ let aM = w(S(aK))
298+ let aN = if ((aL == q))
297299 then q
298- else if ((aK == p))
300+ else if ((aL == p))
299301 then p
300- else if ((aK == r))
302+ else if ((aL == r))
301303 then r
302- else if ((aK == s))
304+ else if ((aL == s))
303305 then s
304- else if ((aK == o))
306+ else if ((aL == o))
305307 then o
306- else if (if ((aK == u))
307- then (aL == o)
308+ else if (if ((aL == u))
309+ then (aM == o)
308310 else false)
309311 then ""
310312 else throw("Unknown status")
311- if (if ((aL == o))
312- then (aK == o)
313+ if (if ((aM == o))
314+ then (aL == o)
313315 else false)
314316 then throw("User already allowed")
315- else if (if ((aL == p))
316- then (aK == o)
317+ else if (if ((aM == p))
318+ then (aL == o)
317319 else false)
318320 then throw("User already allowed & registered")
319- else if (if ((aL == q))
320- then (aK == o)
321+ else if (if ((aM == q))
322+ then (aL == o)
321323 else false)
322324 then throw("User already allowed & verified")
323- else if (containsElement([j, k], M))
324- then [StringEntry(R(aJ), aM), StringEntry("last_invoke_id", aG)]
325- else throw(((("Not allowed to change user status " + M) + " / ") + j))
325+ else if (containsElement([j, k], N))
326+ then [StringEntry(S(aK), aN), StringEntry("last_invoke_id", aH)]
327+ else throw(((("Not allowed to change user status " + N) + " / ") + j))
326328 }
327329
328330
329331
330-@Callable(aN)
331-func addArtwork (G,E,aB,aC,aO,aP,aQ,as,aw,at,ax,au) = if (!(m))
332+@Callable(aO)
333+func addArtwork (H,F,aC,aD,aP,aQ,aR,at,ax,au,ay,av) = if (!(m))
332334 then throw(n)
333335 else {
334- let U = toBase58String(aN.transactionId)
335- let M = toBase58String(aN.caller.bytes)
336- if (!(ar(as, at, au)))
336+ let V = toBase58String(aO.transactionId)
337+ let N = toBase58String(aO.caller.bytes)
338+ if (!(as(at, au, av)))
337339 then throw("Problem with CID")
338- else if (!(J(G)))
340+ else if (!(K(H)))
339341 then throw("Hash should be 64 characters maximum")
340- else if (!(av(aw, ax)))
342+ else if (!(aw(ax, ay)))
341343 then throw("Problem with Hashes")
342- else if ((size(aN.payments) == 0))
344+ else if ((size(aO.payments) == 0))
343345 then throw("No payment attached")
344346 else {
345- let aR = value(aN.payments[0])
346- let aS = value(aR.amount)
347- let aT = if (if (isDefined(aR.assetId))
348- then (aR.assetId == d)
347+ let aS = value(aO.payments[0])
348+ let aT = value(aS.amount)
349+ let aU = if (if (isDefined(aS.assetId))
350+ then (aS.assetId == d)
349351 else false)
350- then aR.assetId
352+ then aS.assetId
351353 else throw("Only SIGN token accepted at the moment")
352- let aU = z(("certification_fee_" + toBase58String(d)))
353- if ((aS != aU))
354- then throw(("Payment amount should be " + toString(aU)))
354+ let aV = A(("certification_fee_" + toBase58String(d)))
355+ if ((aT != aV))
356+ then throw(("Payment amount should be " + toString(aV)))
355357 else {
356- let aV = v(aq(G, M))
357- if ((aV != ""))
358+ let aW = w(ar(H, N))
359+ if ((aW != ""))
358360 then throw("You already added it")
359361 else {
360- let aW = v(an(G))
361- if ((aW != ""))
362+ let aX = w(ao(H))
363+ if ((aX != ""))
362364 then throw("Hash already registered")
363365 else {
364- let aX = D(E, M, G)
365- if (!(aX))
366+ let aY = E(F, N, H)
367+ if (!(aY))
366368 then throw("Sign Certificate not found for this address.")
367- else if ((size(as) == 0))
369+ else if ((size(at) == 0))
368370 then throw("Display CID cannot be empty")
369- else if (!(ay(aB, 100)))
371+ else if (!(az(aC, 100)))
370372 then throw("100 Char. max name")
371- else if (!(ay(aC, 1000)))
373+ else if (!(az(aD, 1000)))
372374 then throw("1000 Char. max description")
373- else if ((size(split(aO, ",")) > 5))
375+ else if ((size(split(aP, ",")) > 5))
374376 then throw("5 tags max.")
375377 else {
376- let aY = {
377- let x = getString(this, ("user_status_" + M))
378- if ($isInstanceOf(x, "String"))
378+ let aZ = {
379+ let y = getString(this, ("user_status_" + N))
380+ if ($isInstanceOf(y, "String"))
379381 then {
380- let aZ = x
381- aZ
382+ let ba = y
383+ ba
382384 }
383385 else t
384386 }
385- let aH = lastBlock.timestamp
386- if (if (isDefined(aY))
387- then (aY == t)
387+ let aI = lastBlock.timestamp
388+ if (if (isDefined(aZ))
389+ then (aZ == t)
388390 else false)
389391 then throw("Register this account first with \"User infos\" tab")
390- else if ((aY == r))
392+ else if ((aZ == r))
391393 then throw("Account suspended")
392- else if ((aY == s))
394+ else if ((aZ == s))
393395 then throw("Account removed")
394- else if ((aQ > 10))
396+ else if ((aR > 10))
395397 then throw("10 editions max")
396- else if ((size(G) != 64))
398+ else if ((size(H) != 64))
397399 then throw("Hash 64 char. max")
398- else [StringEntry(an(G), M), StringEntry(aq(G, M), U), IntegerEntry(T(M, U), aH), StringEntry(V(M, U), aB), StringEntry(W(M, U), aC), StringEntry(X(M, U), as), StringEntry(Z(M, U), at), StringEntry(Y(M, U), aw), StringEntry(ae(M, U), ax), StringEntry(af(M, U), au), StringEntry(ah(M, U), aP), StringEntry(ag(M, U), aO), IntegerEntry(aa(M, U), aQ), StringEntry(ab(M, U), E), IntegerEntry(ac(M, U), 0), BooleanEntry(ad(M, U), false), StringEntry(ao(M, E), U), StringEntry("last_invoke_id", U), StringEntry(al(M, U), G), ScriptTransfer(Address(fromBase58String(c)), aS, aT)]
400+ else [StringEntry(ao(H), N), StringEntry(ar(H, N), V), IntegerEntry(U(N, V), aI), StringEntry(W(N, V), aC), StringEntry(X(N, V), aD), StringEntry(Y(N, V), at), StringEntry(aa(N, V), au), StringEntry(Z(N, V), ax), StringEntry(af(N, V), ay), StringEntry(ag(N, V), av), StringEntry(ai(N, V), aQ), StringEntry(ah(N, V), aP), IntegerEntry(ab(N, V), aR), StringEntry(ac(N, V), F), IntegerEntry(ad(N, V), 0), BooleanEntry(ae(N, V), false), StringEntry(ap(N, F), V), StringEntry("last_invoke_id", V), StringEntry(am(N, V), H), ScriptTransfer(Address(fromBase58String(c)), aT, aU)]
399401 }
400402 }
401403 }
405407
406408
407409
408-@Callable(aN)
409-func updateArtwork (am,aB,aC,aO,aP,aQ,as,aw,at,ax,au) = if (!(m))
410+@Callable(aO)
411+func updateArtwork (an,aC,aD,aP,aQ,aR,at,ax,au,ay,av) = if (!(m))
410412 then throw(n)
411413 else {
412- let ba = toBase58String(aN.transactionId)
413- let M = toBase58String(aN.caller.bytes)
414- if (!(ar(as, at, au)))
414+ let bb = toBase58String(aO.transactionId)
415+ let N = toBase58String(aO.caller.bytes)
416+ if (!(as(at, au, av)))
415417 then throw("Problem with CID")
416- else if (!(av(aw, ax)))
418+ else if (!(aw(ax, ay)))
417419 then throw("Problem with Hashes")
418420 else {
419- let aV = v(V(M, am))
420- if ((aV == ""))
421+ let aW = w(W(N, an))
422+ if ((aW == ""))
421423 then throw("Entry not found")
422- else if (!(ay(aB, 100)))
424+ else if (!(az(aC, 100)))
423425 then throw("100 Char. max name")
424- else if (!(ay(aC, 1000)))
426+ else if (!(az(aD, 1000)))
425427 then throw("1000 Char. max description")
426428 else {
427- let bb = v(ak(M, am))
428- if ((bb == "ILLEGAL"))
429+ let bc = w(al(N, an))
430+ if ((bc == "ILLEGAL"))
429431 then throw("Cannot update")
430432 else {
431- let bc = {
432- let x = getInteger(this, ac(M, am))
433- if ($isInstanceOf(x, "Int"))
433+ let bd = {
434+ let y = getInteger(this, ad(N, an))
435+ if ($isInstanceOf(y, "Int"))
434436 then {
435- let bd = x
436- if ((bd == 0))
437+ let be = y
438+ if ((be == 0))
437439 then false
438440 else true
439441 }
440442 else false
441443 }
442- if ((size(split(aO, ",")) > 5))
444+ if ((size(split(aP, ",")) > 5))
443445 then throw("5 tags max.")
444446 else {
445- let aY = {
446- let x = getString(this, ("user_status_" + M))
447- if ($isInstanceOf(x, "String"))
447+ let aZ = {
448+ let y = getString(this, ("user_status_" + N))
449+ if ($isInstanceOf(y, "String"))
448450 then {
449- let aZ = x
450- aZ
451+ let ba = y
452+ ba
451453 }
452454 else t
453455 }
454- if (if (isDefined(aY))
455- then (aY == t)
456+ if (if (isDefined(aZ))
457+ then (aZ == t)
456458 else false)
457459 then throw("Register first with \"User infos\"")
458- else if ((aY == r))
460+ else if ((aZ == r))
459461 then throw("Account suspended")
460- else if ((aY == s))
462+ else if ((aZ == s))
461463 then throw("Account removed")
462- else if ((aQ > 10))
464+ else if ((aR > 10))
463465 then throw("10 editions max per artwork")
464- else if (!(bc))
465- then [StringEntry(V(M, am), aB), StringEntry(W(M, am), aC), StringEntry(X(M, am), as), StringEntry(Z(M, am), at), StringEntry(Y(M, am), aw), StringEntry(af(M, am), au), StringEntry(ae(M, am), ax), IntegerEntry(aa(M, am), aQ), StringEntry(ag(M, am), aO), StringEntry(ah(M, am), aP), StringEntry("last_invoke_id", ba)]
466+ else if (!(bd))
467+ then [StringEntry(W(N, an), aC), StringEntry(X(N, an), aD), StringEntry(Y(N, an), at), StringEntry(aa(N, an), au), StringEntry(Z(N, an), ax), StringEntry(ag(N, an), av), StringEntry(af(N, an), ay), IntegerEntry(ab(N, an), aR), StringEntry(ah(N, an), aP), StringEntry(ai(N, an), aQ), StringEntry("last_invoke_id", bb)]
466468 else throw("Already minted")
467469 }
468470 }
472474
473475
474476
475-@Callable(B)
476-func flagArtwork (U,be,bb) = {
477- let M = toString(addressFromPublicKey(B.callerPublicKey))
478- let aG = toBase58String(B.transactionId)
479- if (containsElement([j, k], M))
480- then if ((bb == "CONSENT"))
481- then [StringEntry(ak(be, U), bb), StringEntry("last_invoke_id", aG)]
482- else if ((bb == ""))
483- then [StringEntry(ak(be, U), bb), StringEntry("last_invoke_id", aG)]
484- else if ((bb == "ILLEGAL"))
485- then [StringEntry(ak(be, U), bb), StringEntry(V(be, U), "ILLEGAL CONTENT"), StringEntry(W(be, U), "ILLEGAL CONTENT"), StringEntry(X(be, U), ""), StringEntry(Z(be, U), ""), StringEntry(af(be, U), ""), StringEntry("last_invoke_id", aG)]
486- else throw(("Unknow status" + bb))
477+@Callable(C)
478+func flagArtwork (V,bf,bc) = {
479+ let N = toString(addressFromPublicKey(C.callerPublicKey))
480+ let aH = toBase58String(C.transactionId)
481+ if (containsElement([j, k], N))
482+ then if ((bc == "CONSENT"))
483+ then [StringEntry(al(bf, V), bc), StringEntry("last_invoke_id", aH)]
484+ else if ((bc == ""))
485+ then [StringEntry(al(bf, V), bc), StringEntry("last_invoke_id", aH)]
486+ else if ((bc == "ILLEGAL"))
487+ then [StringEntry(al(bf, V), bc), StringEntry(W(bf, V), "ILLEGAL CONTENT"), StringEntry(X(bf, V), "ILLEGAL CONTENT"), StringEntry(Y(bf, V), ""), StringEntry(aa(bf, V), ""), StringEntry(ag(bf, V), ""), StringEntry("last_invoke_id", aH)]
488+ else throw(("Unknow status" + bc))
487489 else throw("no")
488490 }
489491
490492
491493
492-@Callable(B)
493-func deleteArtwork (U,be) = {
494- let M = toString(addressFromPublicKey(B.callerPublicKey))
495- let aG = toBase58String(B.transactionId)
496- let bf = if (containsElement([j, k], M))
497- then be
498- else M
499- let aV = {
500- let x = getString(this, V(bf, U))
501- if ($isInstanceOf(x, "String"))
494+@Callable(C)
495+func deleteArtwork (V,bf) = {
496+ let N = toString(addressFromPublicKey(C.callerPublicKey))
497+ let aH = toBase58String(C.transactionId)
498+ let bg = if (containsElement([j, k], N))
499+ then bf
500+ else N
501+ let aW = {
502+ let y = getString(this, W(bg, V))
503+ if ($isInstanceOf(y, "String"))
502504 then {
503- let aZ = x
504- aZ
505+ let ba = y
506+ ba
505507 }
506508 else throw("No art matching")
507509 }
508- let bc = {
509- let x = getInteger(this, ac(bf, U))
510- if ($isInstanceOf(x, "Int"))
510+ let bd = {
511+ let y = getInteger(this, ad(bg, V))
512+ if ($isInstanceOf(y, "Int"))
511513 then {
512- let bd = x
513- if ((bd != 0))
514+ let be = y
515+ if ((be != 0))
514516 then true
515517 else false
516518 }
517519 else false
518520 }
519- let bg = A(aa(bf, U))
520- let G = {
521- let x = getString(this, al(bf, U))
522- if ($isInstanceOf(x, "String"))
521+ let bh = B(ab(bg, V))
522+ let H = {
523+ let y = getString(this, am(bg, V))
524+ if ($isInstanceOf(y, "String"))
523525 then {
524- let aZ = x
525- aZ
526+ let ba = y
527+ ba
526528 }
527529 else throw("No art hash matching")
528530 }
529- let E = {
530- let x = getString(this, ab(bf, U))
531- if ($isInstanceOf(x, "String"))
531+ let F = {
532+ let y = getString(this, ac(bg, V))
533+ if ($isInstanceOf(y, "String"))
532534 then {
533- let aZ = x
534- aZ
535+ let ba = y
536+ ba
535537 }
536538 else throw("No SIGN ID matching")
537539 }
538- let bh = [DeleteEntry(T(bf, U)), DeleteEntry(V(bf, U)), DeleteEntry(W(bf, U)), DeleteEntry(X(bf, U)), DeleteEntry(Z(bf, U)), DeleteEntry(Y(bf, U)), DeleteEntry(ae(bf, U)), DeleteEntry(af(bf, U)), DeleteEntry(ah(bf, U)), DeleteEntry(ag(bf, U)), DeleteEntry(aa(bf, U)), DeleteEntry(ab(bf, U)), DeleteEntry(ac(bf, U)), DeleteEntry(ad(bf, U)), DeleteEntry(ak(be, U)), StringEntry("last_invoke_id", aG), DeleteEntry(an(G)), DeleteEntry(ao(bf, E)), DeleteEntry(aq(G, bf))]
539- if (!(bc))
540+ let bi = [DeleteEntry(U(bg, V)), DeleteEntry(W(bg, V)), DeleteEntry(X(bg, V)), DeleteEntry(Y(bg, V)), DeleteEntry(aa(bg, V)), DeleteEntry(Z(bg, V)), DeleteEntry(af(bg, V)), DeleteEntry(ag(bg, V)), DeleteEntry(ai(bg, V)), DeleteEntry(ah(bg, V)), DeleteEntry(ab(bg, V)), DeleteEntry(ac(bg, V)), DeleteEntry(ad(bg, V)), DeleteEntry(ae(bg, V)), DeleteEntry(al(bf, V)), StringEntry("last_invoke_id", aH), DeleteEntry(ao(H)), DeleteEntry(ap(bg, F)), DeleteEntry(ar(H, bg))]
541+ if (!(bd))
540542 then if (!(m))
541543 then throw(n)
542- else bh
544+ else bi
543545 else throw("Art already minted, cannot delete")
544546 }
545547
546548
547549
548-@Callable(B)
549-func sellArtwork (U,bi,bg,aT) = if (!(m))
550+@Callable(C)
551+func sellArtwork (V,bj,bh,aU) = if (!(m))
550552 then throw(n)
551553 else {
552- let aG = toBase58String(B.transactionId)
553- let M = toBase58String(B.caller.bytes)
554- let bj = lastBlock.timestamp
555- let bk = v(Z(M, U))
556- if ((size(split(bk, "/")[0]) != 59))
554+ let aH = toBase58String(C.transactionId)
555+ let N = toBase58String(C.caller.bytes)
556+ let bk = lastBlock.timestamp
557+ let bl = w(aa(N, V))
558+ if ((size(split(bl, "/")[0]) != 59))
557559 then throw("You cannot sell art with no export file")
558560 else {
559- let bl = v(Y(M, U))
560- if ((size(bl) != 64))
561+ let bm = w(Z(N, V))
562+ if ((size(bm) != 64))
561563 then throw("You cannot sell art with no export hash")
562- else if (if (if ((aT != toBase58String(d)))
563- then (aT != toBase58String(f))
564+ else if (if (if ((aU != toBase58String(d)))
565+ then (aU != toBase58String(f))
564566 else false)
565- then (aT != toBase58String(e))
567+ then (aU != toBase58String(e))
566568 else false)
567569 then throw("Only SIGN, USDN or WAVES accepted")
568570 else {
569- let bm = z("waves_min_sell")
570- let bn = 1000000
571- let bo = (z(("certification_fee_" + toBase58String(d))) * 2)
572- if (if (if (if (if ((aT == toBase58String(e)))
573- then (bn > bi)
571+ let bn = A("waves_min_sell")
572+ let bo = 1000000
573+ let bp = (A(("certification_fee_" + toBase58String(d))) * 2)
574+ if (if (if (if (if ((aU == toBase58String(e)))
575+ then (bo > bj)
574576 else false)
575- then (bi != 0)
577+ then (bj != 0)
576578 else false)
577579 then true
578- else if (if ((aT == toBase58String(d)))
579- then (bo > bi)
580+ else if (if ((aU == toBase58String(d)))
581+ then (bp > bj)
580582 else false)
581- then (bi != 0)
583+ then (bj != 0)
582584 else false)
583585 then true
584- else if (if ((aT == toBase58String(f)))
585- then (bm > bi)
586+ else if (if ((aU == toBase58String(f)))
587+ then (bn > bj)
586588 else false)
587- then (bi != 0)
589+ then (bj != 0)
588590 else false)
589591 then throw("Wrong minimum sell price")
590592 else {
591- let bp = {
592- let x = getString(this, V(M, U))
593- if ($isInstanceOf(x, "String"))
593+ let bq = {
594+ let y = getString(this, W(N, V))
595+ if ($isInstanceOf(y, "String"))
594596 then {
595- let aZ = x
596- aZ
597+ let ba = y
598+ ba
597599 }
598600 else throw("This art doesn't match")
599601 }
600- let aY = {
601- let x = getString(this, R(M))
602- if ($isInstanceOf(x, "String"))
602+ let aZ = {
603+ let y = getString(this, S(N))
604+ if ($isInstanceOf(y, "String"))
603605 then {
604- let aZ = x
605- aZ
606+ let ba = y
607+ ba
606608 }
607609 else throw("Register this account first")
608610 }
609- let bq = A(ac(M, U))
610- let br = A(aa(M, U))
611- if (if ((bq != 0))
612- then (bq == br)
611+ let br = B(ad(N, V))
612+ let bs = B(ab(N, V))
613+ if (if ((br != 0))
614+ then (br == bs)
613615 else false)
614616 then throw("Max edition reached.")
615- else if (if ((bq > 0))
616- then (br != bg)
617+ else if (if ((br > 0))
618+ then (bs != bh)
617619 else false)
618620 then throw("Cannot change maximum issuable anymore")
619- else if ((aY == r))
621+ else if ((aZ == r))
620622 then throw("Account suspended")
621- else if ((aY == s))
623+ else if ((aZ == s))
622624 then throw("Account deleted")
623625 else {
624- let bs = if ((bi > 0))
626+ let bt = if ((bj > 0))
625627 then true
626628 else false
627-[BooleanEntry(ad(M, U), bs), IntegerEntry(ai(M, U), bi), IntegerEntry(aa(M, U), bg), StringEntry(aj(M, U), aT), StringEntry("last_invoke_id", aG)]
629+[BooleanEntry(ae(N, V), bt), IntegerEntry(aj(N, V), bj), IntegerEntry(ab(N, V), bh), StringEntry(ak(N, V), aU), StringEntry("last_invoke_id", aH)]
628630 }
629631 }
630632 }
633635
634636
635637
636-@Callable(B)
637-func buyArtwork (U,bt) = if (!(m))
638+@Callable(C)
639+func buyArtwork (V,bu) = if (!(m))
638640 then throw(n)
639641 else {
640- let aG = toBase58String(B.transactionId)
641- let M = toBase58String(B.caller.bytes)
642- let bu = A("total_nft_issued")
643- let E = v(ab(bt, U))
644- let bp = {
645- let x = getString(this, V(bt, U))
646- if ($isInstanceOf(x, "String"))
642+ let aH = toBase58String(C.transactionId)
643+ let N = toBase58String(C.caller.bytes)
644+ let bv = B("total_nft_issued")
645+ let F = w(ac(bu, V))
646+ let bq = {
647+ let y = getString(this, W(bu, V))
648+ if ($isInstanceOf(y, "String"))
647649 then {
648- let aZ = x
649- aZ
650+ let ba = y
651+ ba
650652 }
651653 else throw("Art doesn't exist")
652654 }
653- let bv = v(X(bt, U))
654- let bk = v(Z(bt, U))
655- let bl = v(Y(bt, U))
656- let bw = v(af(bt, U))
657- let bx = v(ae(bt, U))
658- let aC = take(v(W(bt, U)), 50)
659- let bq = A(ac(bt, U))
660- let by = A(ai(bt, U))
661- let bz = C(ad(bt, U))
662- let bA = v(aj(bt, U))
663- let bB = v(al(bt, U))
664- if ((by == 0))
655+ let bw = w(Y(bu, V))
656+ let bl = w(aa(bu, V))
657+ let bm = w(Z(bu, V))
658+ let bx = w(ag(bu, V))
659+ let by = w(af(bu, V))
660+ let aD = take(w(X(bu, V)), 50)
661+ let br = B(ad(bu, V))
662+ let bz = B(aj(bu, V))
663+ let bA = D(ae(bu, V))
664+ let bB = w(ak(bu, V))
665+ let bC = w(am(bu, V))
666+ if ((bz == 0))
665667 then throw("Art not for sell")
666- else if (!(bz))
668+ else if (!(bA))
667669 then throw("Art not for sale")
668670 else {
669- let br = A(aa(bt, U))
670- let aR = value(B.payments[0])
671- let aS = value(aR.amount)
672- let aT = if (if (if (isDefined(aR.assetId))
673- then (size(fromBase58String(bA)) > 0)
671+ let bs = B(ab(bu, V))
672+ let aS = value(C.payments[0])
673+ let aT = value(aS.amount)
674+ let aU = if (if (if (isDefined(aS.assetId))
675+ then (size(fromBase58String(bB)) > 0)
674676 else false)
675- then (aR.assetId == fromBase58String(bA))
677+ then (aS.assetId == fromBase58String(bB))
676678 else false)
677- then aR.assetId
679+ then aS.assetId
678680 else unit
679- let bC = if ((bA == toBase58String(d)))
681+ let bD = if ((bB == toBase58String(d)))
680682 then 8
681683 else 10
682- let bD = fraction(aS, bC, 100)
683- let bE = (aS - bD)
684- if ((bq == br))
684+ let bE = fraction(aT, bD, 100)
685+ let bF = (aT - bE)
686+ if ((br == bs))
685687 then throw("Art sold out")
686- else if ((by != aS))
688+ else if ((bz != aT))
687689 then throw("Payment don't match")
688690 else {
689- let bF = (bq + 1)
690- let bG = lastBlock.timestamp
691- let bH = ((((((((((((((((((((((((((("Creator: " + bt) + ",
692- ArtID: ") + U) + ",
693- SignID: ") + E) + ",
694- Artwork name: ") + bp) + ",
695- Artwork description: ") + aC) + ",
696- Issue: ") + toString(bF)) + "/") + toString(br)) + ",
697- Max issuable: ") + toString(br)) + ",
698- Source hash: ") + bB) + ",
699- Display cid: ") + bv) + ",
700- Export cid: ") + bk) + ",
701- Export hash: ") + bl) + ",
702- Licence cid: ") + bw) + ",
703- Licence hash: ") + bx)
704- let bI = Issue(("SA_" + toString((bu + 1))), bH, 1, 0, false)
705- let bJ = calculateAssetId(bI)
706- let bs = if ((bF == br))
691+ let bG = (br + 1)
692+ let bH = lastBlock.timestamp
693+ let bI = ((((((((((((((((((((((((((("Creator: " + bu) + ",
694+ ArtID: ") + V) + ",
695+ SignID: ") + F) + ",
696+ Artwork name: ") + bq) + ",
697+ Artwork description: ") + aD) + ",
698+ Issue: ") + toString(bG)) + "/") + toString(bs)) + ",
699+ Max issuable: ") + toString(bs)) + ",
700+ Source hash: ") + bC) + ",
701+ Display cid: ") + bw) + ",
702+ Export cid: ") + bl) + ",
703+ Export hash: ") + bm) + ",
704+ Licence cid: ") + bx) + ",
705+ Licence hash: ") + by)
706+ let bJ = Issue(("SA_" + toString((bv + 1))), bI, 1, 0, false)
707+ let bK = calculateAssetId(bJ)
708+ let bt = if ((bG == bs))
707709 then false
708710 else true
709-[IntegerEntry(ac(bt, U), bF), StringEntry(((((((("art_sold_" + toString(bF)) + "_of_") + toString(br)) + "_") + U) + "_") + bt), ((((((((((M + "_") + toString(bG)) + "_") + aG) + "_") + toString(by)) + "_") + bA) + "_") + toBase58String(bJ))), IntegerEntry("total_nft_issued", (bu + 1)), BooleanEntry(ad(bt, U), bs), StringEntry("last_invoke_id", aG), bI, ScriptTransfer(Address(fromBase58String(bt)), bE, aT), ScriptTransfer(Address(fromBase58String(c)), bD, aT), ScriptTransfer(B.caller, 1, bJ)]
711+[IntegerEntry(ad(bu, V), bG), StringEntry(((((((("art_sold_" + toString(bG)) + "_of_") + toString(bs)) + "_") + V) + "_") + bu), ((((((((((N + "_") + toString(bH)) + "_") + aH) + "_") + toString(bz)) + "_") + bB) + "_") + toBase58String(bK))), IntegerEntry("total_nft_issued", (bv + 1)), BooleanEntry(ae(bu, V), bt), StringEntry("last_invoke_id", aH), bJ, ScriptTransfer(Address(fromBase58String(bu)), bF, aU), ScriptTransfer(Address(fromBase58String(c)), bE, aU), ScriptTransfer(C.caller, 1, bK)]
710712 }
711713 }
712714 }
713715
714716
715717
716-@Callable(B)
717-func creditUser (aJ) = {
718- let M = toString(addressFromPublicKey(B.callerPublicKey))
719- let aG = toBase58String(B.transactionId)
720- if (containsElement([j, k], M))
721- then [ScriptTransfer(Address(fromBase58String(aJ)), 150000000000, d)]
718+@Callable(C)
719+func creditUser (aK) = {
720+ let N = toString(addressFromPublicKey(C.callerPublicKey))
721+ let aH = toBase58String(C.transactionId)
722+ if (containsElement([j, k], N))
723+ then [ScriptTransfer(Address(fromBase58String(aK)), 150000000000, d)]
722724 else throw("Not allowed")
723725 }
724726
725727
726728
727-@Callable(B)
728-func deleteUser (aJ) = {
729- let M = toString(addressFromPublicKey(B.callerPublicKey))
730- let aG = toBase58String(B.transactionId)
731- if (containsElement([j, k], M))
732- then [DeleteEntry(S(aJ)), DeleteEntry(L(aJ)), DeleteEntry(N(aJ)), DeleteEntry(O(aJ)), DeleteEntry(P(aJ)), DeleteEntry(Q(aJ)), StringEntry(R(aJ), s), StringEntry("last_invoke_id", aG)]
729+@Callable(C)
730+func deleteUser (aK) = {
731+ let N = toString(addressFromPublicKey(C.callerPublicKey))
732+ let aH = toBase58String(C.transactionId)
733+ if (containsElement([j, k], N))
734+ then [DeleteEntry(T(aK)), DeleteEntry(M(aK)), DeleteEntry(O(aK)), DeleteEntry(P(aK)), DeleteEntry(Q(aK)), DeleteEntry(R(aK)), StringEntry(S(aK), s), StringEntry("last_invoke_id", aH)]
733735 else throw("Not allowed")
734736 }
735737
736738
737739
738-@Callable(B)
739-func deleteEntry (bK) = {
740- let M = toString(addressFromPublicKey(B.callerPublicKey))
741- if ((M == j))
742- then [DeleteEntry(bK)]
740+@Callable(C)
741+func deleteEntry (bL) = {
742+ let N = toString(addressFromPublicKey(C.callerPublicKey))
743+ if ((N == j))
744+ then [DeleteEntry(bL)]
743745 else throw("no")
744746 }
745747
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 = true
2929
3030 let n = "SIGN Art is under maintenance"
3131
3232 let o = "ALLOWED"
3333
3434 let p = "REGISTERED"
3535
3636 let q = "VERIFIED"
3737
3838 let r = "SUSPENDED"
3939
4040 let s = "REMOVED"
4141
4242 let t = "UNREGISTERED"
4343
4444 let u = "RESET"
4545
46-func v (w) = {
47- let x = getString(this, w)
48- if ($isInstanceOf(x, "String"))
46+let v = "CHANGE_REQUIRED"
47+
48+func w (x) = {
49+ let y = getString(this, x)
50+ if ($isInstanceOf(y, "String"))
4951 then {
50- let y = x
51- y
52+ let z = y
53+ z
5254 }
5355 else ""
5456 }
5557
5658
57-func z (w) = {
58- let x = getInteger(a, w)
59- if ($isInstanceOf(x, "Int"))
59+func A (x) = {
60+ let y = getInteger(a, x)
61+ if ($isInstanceOf(y, "Int"))
6062 then {
61- let y = x
62- y
63+ let z = y
64+ z
6365 }
6466 else throw("Integer undefine or 0 in oracle")
6567 }
6668
6769
68-func A (w) = {
69- let x = getInteger(this, w)
70- if ($isInstanceOf(x, "Int"))
70+func B (x) = {
71+ let y = getInteger(this, x)
72+ if ($isInstanceOf(y, "Int"))
7173 then {
72- let B = x
73- B
74+ let C = y
75+ C
7476 }
7577 else 0
7678 }
7779
7880
79-func C (w) = {
80- let x = getBoolean(this, w)
81- if ($isInstanceOf(x, "Boolean"))
81+func D (x) = {
82+ let y = getBoolean(this, x)
83+ if ($isInstanceOf(y, "Boolean"))
8284 then {
83- let B = x
84- B
85+ let C = y
86+ C
8587 }
8688 else false
8789 }
8890
8991
90-func D (E,F,G) = {
91- let x = getString(b, ((("data_fc_" + E) + "_") + F))
92- if ($isInstanceOf(x, "String"))
92+func E (F,G,H) = {
93+ let y = getString(b, ((("data_fc_" + F) + "_") + G))
94+ if ($isInstanceOf(y, "String"))
9395 then {
94- let y = x
95- if (contains(y, G))
96+ let z = y
97+ if (contains(z, H))
9698 then true
9799 else false
98100 }
99101 else false
100102 }
101103
102104
103-func H (I) = if (if ((75 > size(I)))
104- then (60 > size(split(I, "/")[0]))
105+func I (J) = if (if ((75 > size(J)))
106+ then (60 > size(split(J, "/")[0]))
105107 else false)
106- then (16 > size(split(I, "/")[1]))
108+ then (16 > size(split(J, "/")[1]))
107109 else false
108110
109111
110-func J (K) = (65 > size(K))
112+func K (L) = (65 > size(L))
111113
112114
113-func L (M) = ("user_" + M)
115+func M (N) = ("user_" + N)
114116
115117
116-func N (M) = ("user_name_" + M)
118+func O (N) = ("user_name_" + N)
117119
118120
119-func O (M) = ("user_desc_" + M)
121+func P (N) = ("user_desc_" + N)
120122
121123
122-func P (M) = ("user_social_" + M)
124+func Q (N) = ("user_social_" + N)
123125
124126
125-func Q (M) = ("user_thumb_" + M)
127+func R (N) = ("user_thumb_" + N)
126128
127129
128-func R (M) = ("user_status_" + M)
130+func S (N) = ("user_status_" + N)
129131
130132
131-func S (M) = ("user_date_" + M)
133+func T (N) = ("user_date_" + N)
132134
133135
134-func T (M,U) = ((("art_date_" + U) + "_") + M)
136+func U (N,V) = ((("art_date_" + V) + "_") + N)
135137
136138
137-func V (M,U) = ((("art_name_" + U) + "_") + M)
139+func W (N,V) = ((("art_name_" + V) + "_") + N)
138140
139141
140-func W (M,U) = ((("art_desc_" + U) + "_") + M)
142+func X (N,V) = ((("art_desc_" + V) + "_") + N)
141143
142144
143-func X (M,U) = ((("art_display_cid_" + U) + "_") + M)
145+func Y (N,V) = ((("art_display_cid_" + V) + "_") + N)
144146
145147
146-func Y (M,U) = ((("art_export_hash_" + U) + "_") + M)
148+func Z (N,V) = ((("art_export_hash_" + V) + "_") + N)
147149
148150
149-func Z (M,U) = ((("art_export_cid_" + U) + "_") + M)
151+func aa (N,V) = ((("art_export_cid_" + V) + "_") + N)
150152
151153
152-func aa (M,U) = ((("art_maxmint_" + U) + "_") + M)
154+func ab (N,V) = ((("art_maxmint_" + V) + "_") + N)
153155
154156
155-func ab (M,U) = ((("art_signid_" + U) + "_") + M)
157+func ac (N,V) = ((("art_signid_" + V) + "_") + N)
156158
157159
158-func ac (M,U) = ((("art_issued_" + U) + "_") + M)
160+func ad (N,V) = ((("art_issued_" + V) + "_") + N)
159161
160162
161-func ad (M,U) = ((("art_onsale_" + U) + "_") + M)
163+func ae (N,V) = ((("art_onsale_" + V) + "_") + N)
162164
163165
164-func ae (M,U) = ((("art_licence_hash_" + U) + "_") + M)
166+func af (N,V) = ((("art_licence_hash_" + V) + "_") + N)
165167
166168
167-func af (M,U) = ((("art_licence_cid_" + U) + "_") + M)
169+func ag (N,V) = ((("art_licence_cid_" + V) + "_") + N)
168170
169171
170-func ag (M,U) = ((("art_tags_" + U) + "_") + M)
172+func ah (N,V) = ((("art_tags_" + V) + "_") + N)
171173
172174
173-func ah (M,U) = ((("art_type_" + U) + "_") + M)
175+func ai (N,V) = ((("art_type_" + V) + "_") + N)
174176
175177
176-func ai (M,U) = ((("art_price_" + U) + "_") + M)
178+func aj (N,V) = ((("art_price_" + V) + "_") + N)
177179
178180
179-func aj (M,U) = ((("art_assetAccepted_" + U) + "_") + M)
181+func ak (N,V) = ((("art_assetAccepted_" + V) + "_") + N)
180182
181183
182-func ak (M,U) = ((("art_flag_" + U) + "_") + M)
184+func al (N,V) = ((("art_flag_" + V) + "_") + N)
183185
184186
185-func al (M,am) = ((("get_hashbytxidaddr_" + am) + "_") + M)
187+func am (N,an) = ((("get_hashbytxidaddr_" + an) + "_") + N)
186188
187189
188-func an (G) = ("get_owner_by_hash_" + G)
190+func ao (H) = ("get_owner_by_hash_" + H)
189191
190192
191-func ao (M,ap) = ((("get_artidbysignid_" + ap) + "_") + M)
193+func ap (N,aq) = ((("get_artidbysignid_" + aq) + "_") + N)
192194
193195
194-func aq (G,M) = ("get_txid_by_hash_owner_" + toBase58String(sha256_16Kb(toBytes((G + M)))))
196+func ar (H,N) = ("get_txid_by_hash_owner_" + toBase58String(sha256_16Kb(toBytes((H + N)))))
195197
196198
197-func ar (as,at,au) = if (if ((as != ""))
198- then !(H(as))
199+func as (at,au,av) = if (if ((at != ""))
200+ then !(I(at))
199201 else false)
200202 then throw("Wrong Display CID")
201- else if (if ((at != ""))
202- then !(H(at))
203+ else if (if ((au != ""))
204+ then !(I(au))
203205 else false)
204206 then throw("Wrong Export CID")
205- else if (if ((au != ""))
206- then !(H(au))
207+ else if (if ((av != ""))
208+ then !(I(av))
207209 else false)
208210 then throw("Wrong Licence CID")
209211 else true
210212
211213
212-func av (aw,ax) = if (if ((aw != ""))
213- then !(J(aw))
214+func aw (ax,ay) = if (if ((ax != ""))
215+ then !(K(ax))
214216 else false)
215217 then throw("Export Hash 64 char. max")
216- else if (if ((ax != ""))
217- then !(J(ax))
218+ else if (if ((ay != ""))
219+ then !(K(ay))
218220 else false)
219221 then throw("Licence Hash 64 char. max")
220222 else true
221223
222224
223-func ay (az,aA) = if ((size(az) == 0))
225+func az (aA,aB) = if ((size(aA) == 0))
224226 then throw("Field cannot be is empty")
225- else if ((size(az) > aA))
226- then throw((az + " is too long"))
227+ else if ((size(aA) > aB))
228+ then throw((aA + " is too long"))
227229 else true
228230
229231
230-@Callable(B)
231-func registerUser (aB,aC,aD,aE) = if (!(m))
232+@Callable(C)
233+func registerUser (aC,aD,aE,aF) = if (!(m))
232234 then throw(n)
233235 else {
234- let M = toString(addressFromPublicKey(B.callerPublicKey))
235- let aF = v(R(M))
236- let aG = toBase58String(B.transactionId)
237- let aH = lastBlock.timestamp
238- if (if ((aF == r))
236+ let N = toString(addressFromPublicKey(C.callerPublicKey))
237+ let aG = w(S(N))
238+ let aH = toBase58String(C.transactionId)
239+ let aI = lastBlock.timestamp
240+ if (if ((aG == r))
239241 then true
240- else (aF == s))
242+ else (aG == s))
241243 then throw("Account suspended/ removed.")
242- else if ((aF == p))
244+ else if ((aG == p))
243245 then throw("Already registered")
244- else if (if ((aF == ""))
246+ else if (if ((aG == ""))
245247 then l
246248 else false)
247249 then throw("Can't register, get approved first.")
248- else if (if ((aB == ""))
250+ else if (if ((aC == ""))
249251 then true
250- else (aC == ""))
252+ else (aD == ""))
251253 then throw("Name and description cannot be empty")
252- else if ((size(aC) > 600))
254+ else if ((size(aD) > 600))
253255 then throw("600 Char. max description")
254- else if ((size(aB) > 45))
256+ else if ((size(aC) > 45))
255257 then throw("45 Char. max name")
256- else [IntegerEntry(S(M), aH), StringEntry(L(M), ((aG + "_") + toString(aH))), StringEntry(N(M), aB), StringEntry(O(M), aC), StringEntry(P(M), aE), StringEntry(Q(M), aD), StringEntry(R(M), p), StringEntry("last_invoke_id", aG)]
258+ else [IntegerEntry(T(N), aI), StringEntry(M(N), ((aH + "_") + toString(aI))), StringEntry(O(N), aC), StringEntry(P(N), aD), StringEntry(Q(N), aF), StringEntry(R(N), aE), StringEntry(S(N), p), StringEntry("last_invoke_id", aH)]
257259 }
258260
259261
260262
261-@Callable(B)
262-func updateUser (aB,aC,aD,aE) = if (!(m))
263+@Callable(C)
264+func updateUser (aC,aD,aE,aF) = if (!(m))
263265 then throw(n)
264266 else {
265- let M = toString(addressFromPublicKey(B.callerPublicKey))
266- let aG = toBase58String(B.transactionId)
267- let aI = v(R(M))
268- if (if ((aI == r))
267+ let N = toString(addressFromPublicKey(C.callerPublicKey))
268+ let aH = toBase58String(C.transactionId)
269+ let aJ = w(S(N))
270+ if (if ((aJ == r))
269271 then true
270- else (aI == s))
272+ else (aJ == s))
271273 then throw("Account suspended/ removed.")
272- else if (if ((aI == ""))
274+ else if (if ((aJ == ""))
273275 then true
274- else (aI == o))
276+ else (aJ == o))
275277 then throw("Register first")
276- else if (if ((aB == ""))
278+ else if (if ((aC == ""))
277279 then true
278- else (aC == ""))
280+ else (aD == ""))
279281 then throw("Name & description cannot be empty")
280- else if ((size(aC) > 600))
282+ else if ((size(aD) > 600))
281283 then throw("600 Char. max for description")
282- else if ((size(aB) > 45))
284+ else if ((size(aC) > 45))
283285 then throw("45 Char. max name")
284- else [StringEntry(N(M), aB), StringEntry(O(M), aC), StringEntry(P(M), aE), StringEntry(Q(M), aD), StringEntry("last_invoke_id", aG)]
286+ else [StringEntry(O(N), aC), StringEntry(P(N), aD), StringEntry(Q(N), aF), StringEntry(R(N), aE), StringEntry("last_invoke_id", aH)]
285287 }
286288
287289
288290
289-@Callable(B)
290-func changeUserStatus (aJ,aK) = if (!(m))
291+@Callable(C)
292+func changeUserStatus (aK,aL) = if (!(m))
291293 then throw(n)
292294 else {
293- let M = toString(addressFromPublicKey(B.callerPublicKey))
294- let aG = toBase58String(B.transactionId)
295- let aL = v(R(aJ))
296- let aM = if ((aK == q))
295+ let N = toString(addressFromPublicKey(C.callerPublicKey))
296+ let aH = toBase58String(C.transactionId)
297+ let aM = w(S(aK))
298+ let aN = if ((aL == q))
297299 then q
298- else if ((aK == p))
300+ else if ((aL == p))
299301 then p
300- else if ((aK == r))
302+ else if ((aL == r))
301303 then r
302- else if ((aK == s))
304+ else if ((aL == s))
303305 then s
304- else if ((aK == o))
306+ else if ((aL == o))
305307 then o
306- else if (if ((aK == u))
307- then (aL == o)
308+ else if (if ((aL == u))
309+ then (aM == o)
308310 else false)
309311 then ""
310312 else throw("Unknown status")
311- if (if ((aL == o))
312- then (aK == o)
313+ if (if ((aM == o))
314+ then (aL == o)
313315 else false)
314316 then throw("User already allowed")
315- else if (if ((aL == p))
316- then (aK == o)
317+ else if (if ((aM == p))
318+ then (aL == o)
317319 else false)
318320 then throw("User already allowed & registered")
319- else if (if ((aL == q))
320- then (aK == o)
321+ else if (if ((aM == q))
322+ then (aL == o)
321323 else false)
322324 then throw("User already allowed & verified")
323- else if (containsElement([j, k], M))
324- then [StringEntry(R(aJ), aM), StringEntry("last_invoke_id", aG)]
325- else throw(((("Not allowed to change user status " + M) + " / ") + j))
325+ else if (containsElement([j, k], N))
326+ then [StringEntry(S(aK), aN), StringEntry("last_invoke_id", aH)]
327+ else throw(((("Not allowed to change user status " + N) + " / ") + j))
326328 }
327329
328330
329331
330-@Callable(aN)
331-func addArtwork (G,E,aB,aC,aO,aP,aQ,as,aw,at,ax,au) = if (!(m))
332+@Callable(aO)
333+func addArtwork (H,F,aC,aD,aP,aQ,aR,at,ax,au,ay,av) = if (!(m))
332334 then throw(n)
333335 else {
334- let U = toBase58String(aN.transactionId)
335- let M = toBase58String(aN.caller.bytes)
336- if (!(ar(as, at, au)))
336+ let V = toBase58String(aO.transactionId)
337+ let N = toBase58String(aO.caller.bytes)
338+ if (!(as(at, au, av)))
337339 then throw("Problem with CID")
338- else if (!(J(G)))
340+ else if (!(K(H)))
339341 then throw("Hash should be 64 characters maximum")
340- else if (!(av(aw, ax)))
342+ else if (!(aw(ax, ay)))
341343 then throw("Problem with Hashes")
342- else if ((size(aN.payments) == 0))
344+ else if ((size(aO.payments) == 0))
343345 then throw("No payment attached")
344346 else {
345- let aR = value(aN.payments[0])
346- let aS = value(aR.amount)
347- let aT = if (if (isDefined(aR.assetId))
348- then (aR.assetId == d)
347+ let aS = value(aO.payments[0])
348+ let aT = value(aS.amount)
349+ let aU = if (if (isDefined(aS.assetId))
350+ then (aS.assetId == d)
349351 else false)
350- then aR.assetId
352+ then aS.assetId
351353 else throw("Only SIGN token accepted at the moment")
352- let aU = z(("certification_fee_" + toBase58String(d)))
353- if ((aS != aU))
354- then throw(("Payment amount should be " + toString(aU)))
354+ let aV = A(("certification_fee_" + toBase58String(d)))
355+ if ((aT != aV))
356+ then throw(("Payment amount should be " + toString(aV)))
355357 else {
356- let aV = v(aq(G, M))
357- if ((aV != ""))
358+ let aW = w(ar(H, N))
359+ if ((aW != ""))
358360 then throw("You already added it")
359361 else {
360- let aW = v(an(G))
361- if ((aW != ""))
362+ let aX = w(ao(H))
363+ if ((aX != ""))
362364 then throw("Hash already registered")
363365 else {
364- let aX = D(E, M, G)
365- if (!(aX))
366+ let aY = E(F, N, H)
367+ if (!(aY))
366368 then throw("Sign Certificate not found for this address.")
367- else if ((size(as) == 0))
369+ else if ((size(at) == 0))
368370 then throw("Display CID cannot be empty")
369- else if (!(ay(aB, 100)))
371+ else if (!(az(aC, 100)))
370372 then throw("100 Char. max name")
371- else if (!(ay(aC, 1000)))
373+ else if (!(az(aD, 1000)))
372374 then throw("1000 Char. max description")
373- else if ((size(split(aO, ",")) > 5))
375+ else if ((size(split(aP, ",")) > 5))
374376 then throw("5 tags max.")
375377 else {
376- let aY = {
377- let x = getString(this, ("user_status_" + M))
378- if ($isInstanceOf(x, "String"))
378+ let aZ = {
379+ let y = getString(this, ("user_status_" + N))
380+ if ($isInstanceOf(y, "String"))
379381 then {
380- let aZ = x
381- aZ
382+ let ba = y
383+ ba
382384 }
383385 else t
384386 }
385- let aH = lastBlock.timestamp
386- if (if (isDefined(aY))
387- then (aY == t)
387+ let aI = lastBlock.timestamp
388+ if (if (isDefined(aZ))
389+ then (aZ == t)
388390 else false)
389391 then throw("Register this account first with \"User infos\" tab")
390- else if ((aY == r))
392+ else if ((aZ == r))
391393 then throw("Account suspended")
392- else if ((aY == s))
394+ else if ((aZ == s))
393395 then throw("Account removed")
394- else if ((aQ > 10))
396+ else if ((aR > 10))
395397 then throw("10 editions max")
396- else if ((size(G) != 64))
398+ else if ((size(H) != 64))
397399 then throw("Hash 64 char. max")
398- else [StringEntry(an(G), M), StringEntry(aq(G, M), U), IntegerEntry(T(M, U), aH), StringEntry(V(M, U), aB), StringEntry(W(M, U), aC), StringEntry(X(M, U), as), StringEntry(Z(M, U), at), StringEntry(Y(M, U), aw), StringEntry(ae(M, U), ax), StringEntry(af(M, U), au), StringEntry(ah(M, U), aP), StringEntry(ag(M, U), aO), IntegerEntry(aa(M, U), aQ), StringEntry(ab(M, U), E), IntegerEntry(ac(M, U), 0), BooleanEntry(ad(M, U), false), StringEntry(ao(M, E), U), StringEntry("last_invoke_id", U), StringEntry(al(M, U), G), ScriptTransfer(Address(fromBase58String(c)), aS, aT)]
400+ else [StringEntry(ao(H), N), StringEntry(ar(H, N), V), IntegerEntry(U(N, V), aI), StringEntry(W(N, V), aC), StringEntry(X(N, V), aD), StringEntry(Y(N, V), at), StringEntry(aa(N, V), au), StringEntry(Z(N, V), ax), StringEntry(af(N, V), ay), StringEntry(ag(N, V), av), StringEntry(ai(N, V), aQ), StringEntry(ah(N, V), aP), IntegerEntry(ab(N, V), aR), StringEntry(ac(N, V), F), IntegerEntry(ad(N, V), 0), BooleanEntry(ae(N, V), false), StringEntry(ap(N, F), V), StringEntry("last_invoke_id", V), StringEntry(am(N, V), H), ScriptTransfer(Address(fromBase58String(c)), aT, aU)]
399401 }
400402 }
401403 }
402404 }
403405 }
404406 }
405407
406408
407409
408-@Callable(aN)
409-func updateArtwork (am,aB,aC,aO,aP,aQ,as,aw,at,ax,au) = if (!(m))
410+@Callable(aO)
411+func updateArtwork (an,aC,aD,aP,aQ,aR,at,ax,au,ay,av) = if (!(m))
410412 then throw(n)
411413 else {
412- let ba = toBase58String(aN.transactionId)
413- let M = toBase58String(aN.caller.bytes)
414- if (!(ar(as, at, au)))
414+ let bb = toBase58String(aO.transactionId)
415+ let N = toBase58String(aO.caller.bytes)
416+ if (!(as(at, au, av)))
415417 then throw("Problem with CID")
416- else if (!(av(aw, ax)))
418+ else if (!(aw(ax, ay)))
417419 then throw("Problem with Hashes")
418420 else {
419- let aV = v(V(M, am))
420- if ((aV == ""))
421+ let aW = w(W(N, an))
422+ if ((aW == ""))
421423 then throw("Entry not found")
422- else if (!(ay(aB, 100)))
424+ else if (!(az(aC, 100)))
423425 then throw("100 Char. max name")
424- else if (!(ay(aC, 1000)))
426+ else if (!(az(aD, 1000)))
425427 then throw("1000 Char. max description")
426428 else {
427- let bb = v(ak(M, am))
428- if ((bb == "ILLEGAL"))
429+ let bc = w(al(N, an))
430+ if ((bc == "ILLEGAL"))
429431 then throw("Cannot update")
430432 else {
431- let bc = {
432- let x = getInteger(this, ac(M, am))
433- if ($isInstanceOf(x, "Int"))
433+ let bd = {
434+ let y = getInteger(this, ad(N, an))
435+ if ($isInstanceOf(y, "Int"))
434436 then {
435- let bd = x
436- if ((bd == 0))
437+ let be = y
438+ if ((be == 0))
437439 then false
438440 else true
439441 }
440442 else false
441443 }
442- if ((size(split(aO, ",")) > 5))
444+ if ((size(split(aP, ",")) > 5))
443445 then throw("5 tags max.")
444446 else {
445- let aY = {
446- let x = getString(this, ("user_status_" + M))
447- if ($isInstanceOf(x, "String"))
447+ let aZ = {
448+ let y = getString(this, ("user_status_" + N))
449+ if ($isInstanceOf(y, "String"))
448450 then {
449- let aZ = x
450- aZ
451+ let ba = y
452+ ba
451453 }
452454 else t
453455 }
454- if (if (isDefined(aY))
455- then (aY == t)
456+ if (if (isDefined(aZ))
457+ then (aZ == t)
456458 else false)
457459 then throw("Register first with \"User infos\"")
458- else if ((aY == r))
460+ else if ((aZ == r))
459461 then throw("Account suspended")
460- else if ((aY == s))
462+ else if ((aZ == s))
461463 then throw("Account removed")
462- else if ((aQ > 10))
464+ else if ((aR > 10))
463465 then throw("10 editions max per artwork")
464- else if (!(bc))
465- then [StringEntry(V(M, am), aB), StringEntry(W(M, am), aC), StringEntry(X(M, am), as), StringEntry(Z(M, am), at), StringEntry(Y(M, am), aw), StringEntry(af(M, am), au), StringEntry(ae(M, am), ax), IntegerEntry(aa(M, am), aQ), StringEntry(ag(M, am), aO), StringEntry(ah(M, am), aP), StringEntry("last_invoke_id", ba)]
466+ else if (!(bd))
467+ then [StringEntry(W(N, an), aC), StringEntry(X(N, an), aD), StringEntry(Y(N, an), at), StringEntry(aa(N, an), au), StringEntry(Z(N, an), ax), StringEntry(ag(N, an), av), StringEntry(af(N, an), ay), IntegerEntry(ab(N, an), aR), StringEntry(ah(N, an), aP), StringEntry(ai(N, an), aQ), StringEntry("last_invoke_id", bb)]
466468 else throw("Already minted")
467469 }
468470 }
469471 }
470472 }
471473 }
472474
473475
474476
475-@Callable(B)
476-func flagArtwork (U,be,bb) = {
477- let M = toString(addressFromPublicKey(B.callerPublicKey))
478- let aG = toBase58String(B.transactionId)
479- if (containsElement([j, k], M))
480- then if ((bb == "CONSENT"))
481- then [StringEntry(ak(be, U), bb), StringEntry("last_invoke_id", aG)]
482- else if ((bb == ""))
483- then [StringEntry(ak(be, U), bb), StringEntry("last_invoke_id", aG)]
484- else if ((bb == "ILLEGAL"))
485- then [StringEntry(ak(be, U), bb), StringEntry(V(be, U), "ILLEGAL CONTENT"), StringEntry(W(be, U), "ILLEGAL CONTENT"), StringEntry(X(be, U), ""), StringEntry(Z(be, U), ""), StringEntry(af(be, U), ""), StringEntry("last_invoke_id", aG)]
486- else throw(("Unknow status" + bb))
477+@Callable(C)
478+func flagArtwork (V,bf,bc) = {
479+ let N = toString(addressFromPublicKey(C.callerPublicKey))
480+ let aH = toBase58String(C.transactionId)
481+ if (containsElement([j, k], N))
482+ then if ((bc == "CONSENT"))
483+ then [StringEntry(al(bf, V), bc), StringEntry("last_invoke_id", aH)]
484+ else if ((bc == ""))
485+ then [StringEntry(al(bf, V), bc), StringEntry("last_invoke_id", aH)]
486+ else if ((bc == "ILLEGAL"))
487+ then [StringEntry(al(bf, V), bc), StringEntry(W(bf, V), "ILLEGAL CONTENT"), StringEntry(X(bf, V), "ILLEGAL CONTENT"), StringEntry(Y(bf, V), ""), StringEntry(aa(bf, V), ""), StringEntry(ag(bf, V), ""), StringEntry("last_invoke_id", aH)]
488+ else throw(("Unknow status" + bc))
487489 else throw("no")
488490 }
489491
490492
491493
492-@Callable(B)
493-func deleteArtwork (U,be) = {
494- let M = toString(addressFromPublicKey(B.callerPublicKey))
495- let aG = toBase58String(B.transactionId)
496- let bf = if (containsElement([j, k], M))
497- then be
498- else M
499- let aV = {
500- let x = getString(this, V(bf, U))
501- if ($isInstanceOf(x, "String"))
494+@Callable(C)
495+func deleteArtwork (V,bf) = {
496+ let N = toString(addressFromPublicKey(C.callerPublicKey))
497+ let aH = toBase58String(C.transactionId)
498+ let bg = if (containsElement([j, k], N))
499+ then bf
500+ else N
501+ let aW = {
502+ let y = getString(this, W(bg, V))
503+ if ($isInstanceOf(y, "String"))
502504 then {
503- let aZ = x
504- aZ
505+ let ba = y
506+ ba
505507 }
506508 else throw("No art matching")
507509 }
508- let bc = {
509- let x = getInteger(this, ac(bf, U))
510- if ($isInstanceOf(x, "Int"))
510+ let bd = {
511+ let y = getInteger(this, ad(bg, V))
512+ if ($isInstanceOf(y, "Int"))
511513 then {
512- let bd = x
513- if ((bd != 0))
514+ let be = y
515+ if ((be != 0))
514516 then true
515517 else false
516518 }
517519 else false
518520 }
519- let bg = A(aa(bf, U))
520- let G = {
521- let x = getString(this, al(bf, U))
522- if ($isInstanceOf(x, "String"))
521+ let bh = B(ab(bg, V))
522+ let H = {
523+ let y = getString(this, am(bg, V))
524+ if ($isInstanceOf(y, "String"))
523525 then {
524- let aZ = x
525- aZ
526+ let ba = y
527+ ba
526528 }
527529 else throw("No art hash matching")
528530 }
529- let E = {
530- let x = getString(this, ab(bf, U))
531- if ($isInstanceOf(x, "String"))
531+ let F = {
532+ let y = getString(this, ac(bg, V))
533+ if ($isInstanceOf(y, "String"))
532534 then {
533- let aZ = x
534- aZ
535+ let ba = y
536+ ba
535537 }
536538 else throw("No SIGN ID matching")
537539 }
538- let bh = [DeleteEntry(T(bf, U)), DeleteEntry(V(bf, U)), DeleteEntry(W(bf, U)), DeleteEntry(X(bf, U)), DeleteEntry(Z(bf, U)), DeleteEntry(Y(bf, U)), DeleteEntry(ae(bf, U)), DeleteEntry(af(bf, U)), DeleteEntry(ah(bf, U)), DeleteEntry(ag(bf, U)), DeleteEntry(aa(bf, U)), DeleteEntry(ab(bf, U)), DeleteEntry(ac(bf, U)), DeleteEntry(ad(bf, U)), DeleteEntry(ak(be, U)), StringEntry("last_invoke_id", aG), DeleteEntry(an(G)), DeleteEntry(ao(bf, E)), DeleteEntry(aq(G, bf))]
539- if (!(bc))
540+ let bi = [DeleteEntry(U(bg, V)), DeleteEntry(W(bg, V)), DeleteEntry(X(bg, V)), DeleteEntry(Y(bg, V)), DeleteEntry(aa(bg, V)), DeleteEntry(Z(bg, V)), DeleteEntry(af(bg, V)), DeleteEntry(ag(bg, V)), DeleteEntry(ai(bg, V)), DeleteEntry(ah(bg, V)), DeleteEntry(ab(bg, V)), DeleteEntry(ac(bg, V)), DeleteEntry(ad(bg, V)), DeleteEntry(ae(bg, V)), DeleteEntry(al(bf, V)), StringEntry("last_invoke_id", aH), DeleteEntry(ao(H)), DeleteEntry(ap(bg, F)), DeleteEntry(ar(H, bg))]
541+ if (!(bd))
540542 then if (!(m))
541543 then throw(n)
542- else bh
544+ else bi
543545 else throw("Art already minted, cannot delete")
544546 }
545547
546548
547549
548-@Callable(B)
549-func sellArtwork (U,bi,bg,aT) = if (!(m))
550+@Callable(C)
551+func sellArtwork (V,bj,bh,aU) = if (!(m))
550552 then throw(n)
551553 else {
552- let aG = toBase58String(B.transactionId)
553- let M = toBase58String(B.caller.bytes)
554- let bj = lastBlock.timestamp
555- let bk = v(Z(M, U))
556- if ((size(split(bk, "/")[0]) != 59))
554+ let aH = toBase58String(C.transactionId)
555+ let N = toBase58String(C.caller.bytes)
556+ let bk = lastBlock.timestamp
557+ let bl = w(aa(N, V))
558+ if ((size(split(bl, "/")[0]) != 59))
557559 then throw("You cannot sell art with no export file")
558560 else {
559- let bl = v(Y(M, U))
560- if ((size(bl) != 64))
561+ let bm = w(Z(N, V))
562+ if ((size(bm) != 64))
561563 then throw("You cannot sell art with no export hash")
562- else if (if (if ((aT != toBase58String(d)))
563- then (aT != toBase58String(f))
564+ else if (if (if ((aU != toBase58String(d)))
565+ then (aU != toBase58String(f))
564566 else false)
565- then (aT != toBase58String(e))
567+ then (aU != toBase58String(e))
566568 else false)
567569 then throw("Only SIGN, USDN or WAVES accepted")
568570 else {
569- let bm = z("waves_min_sell")
570- let bn = 1000000
571- let bo = (z(("certification_fee_" + toBase58String(d))) * 2)
572- if (if (if (if (if ((aT == toBase58String(e)))
573- then (bn > bi)
571+ let bn = A("waves_min_sell")
572+ let bo = 1000000
573+ let bp = (A(("certification_fee_" + toBase58String(d))) * 2)
574+ if (if (if (if (if ((aU == toBase58String(e)))
575+ then (bo > bj)
574576 else false)
575- then (bi != 0)
577+ then (bj != 0)
576578 else false)
577579 then true
578- else if (if ((aT == toBase58String(d)))
579- then (bo > bi)
580+ else if (if ((aU == toBase58String(d)))
581+ then (bp > bj)
580582 else false)
581- then (bi != 0)
583+ then (bj != 0)
582584 else false)
583585 then true
584- else if (if ((aT == toBase58String(f)))
585- then (bm > bi)
586+ else if (if ((aU == toBase58String(f)))
587+ then (bn > bj)
586588 else false)
587- then (bi != 0)
589+ then (bj != 0)
588590 else false)
589591 then throw("Wrong minimum sell price")
590592 else {
591- let bp = {
592- let x = getString(this, V(M, U))
593- if ($isInstanceOf(x, "String"))
593+ let bq = {
594+ let y = getString(this, W(N, V))
595+ if ($isInstanceOf(y, "String"))
594596 then {
595- let aZ = x
596- aZ
597+ let ba = y
598+ ba
597599 }
598600 else throw("This art doesn't match")
599601 }
600- let aY = {
601- let x = getString(this, R(M))
602- if ($isInstanceOf(x, "String"))
602+ let aZ = {
603+ let y = getString(this, S(N))
604+ if ($isInstanceOf(y, "String"))
603605 then {
604- let aZ = x
605- aZ
606+ let ba = y
607+ ba
606608 }
607609 else throw("Register this account first")
608610 }
609- let bq = A(ac(M, U))
610- let br = A(aa(M, U))
611- if (if ((bq != 0))
612- then (bq == br)
611+ let br = B(ad(N, V))
612+ let bs = B(ab(N, V))
613+ if (if ((br != 0))
614+ then (br == bs)
613615 else false)
614616 then throw("Max edition reached.")
615- else if (if ((bq > 0))
616- then (br != bg)
617+ else if (if ((br > 0))
618+ then (bs != bh)
617619 else false)
618620 then throw("Cannot change maximum issuable anymore")
619- else if ((aY == r))
621+ else if ((aZ == r))
620622 then throw("Account suspended")
621- else if ((aY == s))
623+ else if ((aZ == s))
622624 then throw("Account deleted")
623625 else {
624- let bs = if ((bi > 0))
626+ let bt = if ((bj > 0))
625627 then true
626628 else false
627-[BooleanEntry(ad(M, U), bs), IntegerEntry(ai(M, U), bi), IntegerEntry(aa(M, U), bg), StringEntry(aj(M, U), aT), StringEntry("last_invoke_id", aG)]
629+[BooleanEntry(ae(N, V), bt), IntegerEntry(aj(N, V), bj), IntegerEntry(ab(N, V), bh), StringEntry(ak(N, V), aU), StringEntry("last_invoke_id", aH)]
628630 }
629631 }
630632 }
631633 }
632634 }
633635
634636
635637
636-@Callable(B)
637-func buyArtwork (U,bt) = if (!(m))
638+@Callable(C)
639+func buyArtwork (V,bu) = if (!(m))
638640 then throw(n)
639641 else {
640- let aG = toBase58String(B.transactionId)
641- let M = toBase58String(B.caller.bytes)
642- let bu = A("total_nft_issued")
643- let E = v(ab(bt, U))
644- let bp = {
645- let x = getString(this, V(bt, U))
646- if ($isInstanceOf(x, "String"))
642+ let aH = toBase58String(C.transactionId)
643+ let N = toBase58String(C.caller.bytes)
644+ let bv = B("total_nft_issued")
645+ let F = w(ac(bu, V))
646+ let bq = {
647+ let y = getString(this, W(bu, V))
648+ if ($isInstanceOf(y, "String"))
647649 then {
648- let aZ = x
649- aZ
650+ let ba = y
651+ ba
650652 }
651653 else throw("Art doesn't exist")
652654 }
653- let bv = v(X(bt, U))
654- let bk = v(Z(bt, U))
655- let bl = v(Y(bt, U))
656- let bw = v(af(bt, U))
657- let bx = v(ae(bt, U))
658- let aC = take(v(W(bt, U)), 50)
659- let bq = A(ac(bt, U))
660- let by = A(ai(bt, U))
661- let bz = C(ad(bt, U))
662- let bA = v(aj(bt, U))
663- let bB = v(al(bt, U))
664- if ((by == 0))
655+ let bw = w(Y(bu, V))
656+ let bl = w(aa(bu, V))
657+ let bm = w(Z(bu, V))
658+ let bx = w(ag(bu, V))
659+ let by = w(af(bu, V))
660+ let aD = take(w(X(bu, V)), 50)
661+ let br = B(ad(bu, V))
662+ let bz = B(aj(bu, V))
663+ let bA = D(ae(bu, V))
664+ let bB = w(ak(bu, V))
665+ let bC = w(am(bu, V))
666+ if ((bz == 0))
665667 then throw("Art not for sell")
666- else if (!(bz))
668+ else if (!(bA))
667669 then throw("Art not for sale")
668670 else {
669- let br = A(aa(bt, U))
670- let aR = value(B.payments[0])
671- let aS = value(aR.amount)
672- let aT = if (if (if (isDefined(aR.assetId))
673- then (size(fromBase58String(bA)) > 0)
671+ let bs = B(ab(bu, V))
672+ let aS = value(C.payments[0])
673+ let aT = value(aS.amount)
674+ let aU = if (if (if (isDefined(aS.assetId))
675+ then (size(fromBase58String(bB)) > 0)
674676 else false)
675- then (aR.assetId == fromBase58String(bA))
677+ then (aS.assetId == fromBase58String(bB))
676678 else false)
677- then aR.assetId
679+ then aS.assetId
678680 else unit
679- let bC = if ((bA == toBase58String(d)))
681+ let bD = if ((bB == toBase58String(d)))
680682 then 8
681683 else 10
682- let bD = fraction(aS, bC, 100)
683- let bE = (aS - bD)
684- if ((bq == br))
684+ let bE = fraction(aT, bD, 100)
685+ let bF = (aT - bE)
686+ if ((br == bs))
685687 then throw("Art sold out")
686- else if ((by != aS))
688+ else if ((bz != aT))
687689 then throw("Payment don't match")
688690 else {
689- let bF = (bq + 1)
690- let bG = lastBlock.timestamp
691- let bH = ((((((((((((((((((((((((((("Creator: " + bt) + ",
692- ArtID: ") + U) + ",
693- SignID: ") + E) + ",
694- Artwork name: ") + bp) + ",
695- Artwork description: ") + aC) + ",
696- Issue: ") + toString(bF)) + "/") + toString(br)) + ",
697- Max issuable: ") + toString(br)) + ",
698- Source hash: ") + bB) + ",
699- Display cid: ") + bv) + ",
700- Export cid: ") + bk) + ",
701- Export hash: ") + bl) + ",
702- Licence cid: ") + bw) + ",
703- Licence hash: ") + bx)
704- let bI = Issue(("SA_" + toString((bu + 1))), bH, 1, 0, false)
705- let bJ = calculateAssetId(bI)
706- let bs = if ((bF == br))
691+ let bG = (br + 1)
692+ let bH = lastBlock.timestamp
693+ let bI = ((((((((((((((((((((((((((("Creator: " + bu) + ",
694+ ArtID: ") + V) + ",
695+ SignID: ") + F) + ",
696+ Artwork name: ") + bq) + ",
697+ Artwork description: ") + aD) + ",
698+ Issue: ") + toString(bG)) + "/") + toString(bs)) + ",
699+ Max issuable: ") + toString(bs)) + ",
700+ Source hash: ") + bC) + ",
701+ Display cid: ") + bw) + ",
702+ Export cid: ") + bl) + ",
703+ Export hash: ") + bm) + ",
704+ Licence cid: ") + bx) + ",
705+ Licence hash: ") + by)
706+ let bJ = Issue(("SA_" + toString((bv + 1))), bI, 1, 0, false)
707+ let bK = calculateAssetId(bJ)
708+ let bt = if ((bG == bs))
707709 then false
708710 else true
709-[IntegerEntry(ac(bt, U), bF), StringEntry(((((((("art_sold_" + toString(bF)) + "_of_") + toString(br)) + "_") + U) + "_") + bt), ((((((((((M + "_") + toString(bG)) + "_") + aG) + "_") + toString(by)) + "_") + bA) + "_") + toBase58String(bJ))), IntegerEntry("total_nft_issued", (bu + 1)), BooleanEntry(ad(bt, U), bs), StringEntry("last_invoke_id", aG), bI, ScriptTransfer(Address(fromBase58String(bt)), bE, aT), ScriptTransfer(Address(fromBase58String(c)), bD, aT), ScriptTransfer(B.caller, 1, bJ)]
711+[IntegerEntry(ad(bu, V), bG), StringEntry(((((((("art_sold_" + toString(bG)) + "_of_") + toString(bs)) + "_") + V) + "_") + bu), ((((((((((N + "_") + toString(bH)) + "_") + aH) + "_") + toString(bz)) + "_") + bB) + "_") + toBase58String(bK))), IntegerEntry("total_nft_issued", (bv + 1)), BooleanEntry(ae(bu, V), bt), StringEntry("last_invoke_id", aH), bJ, ScriptTransfer(Address(fromBase58String(bu)), bF, aU), ScriptTransfer(Address(fromBase58String(c)), bE, aU), ScriptTransfer(C.caller, 1, bK)]
710712 }
711713 }
712714 }
713715
714716
715717
716-@Callable(B)
717-func creditUser (aJ) = {
718- let M = toString(addressFromPublicKey(B.callerPublicKey))
719- let aG = toBase58String(B.transactionId)
720- if (containsElement([j, k], M))
721- then [ScriptTransfer(Address(fromBase58String(aJ)), 150000000000, d)]
718+@Callable(C)
719+func creditUser (aK) = {
720+ let N = toString(addressFromPublicKey(C.callerPublicKey))
721+ let aH = toBase58String(C.transactionId)
722+ if (containsElement([j, k], N))
723+ then [ScriptTransfer(Address(fromBase58String(aK)), 150000000000, d)]
722724 else throw("Not allowed")
723725 }
724726
725727
726728
727-@Callable(B)
728-func deleteUser (aJ) = {
729- let M = toString(addressFromPublicKey(B.callerPublicKey))
730- let aG = toBase58String(B.transactionId)
731- if (containsElement([j, k], M))
732- then [DeleteEntry(S(aJ)), DeleteEntry(L(aJ)), DeleteEntry(N(aJ)), DeleteEntry(O(aJ)), DeleteEntry(P(aJ)), DeleteEntry(Q(aJ)), StringEntry(R(aJ), s), StringEntry("last_invoke_id", aG)]
729+@Callable(C)
730+func deleteUser (aK) = {
731+ let N = toString(addressFromPublicKey(C.callerPublicKey))
732+ let aH = toBase58String(C.transactionId)
733+ if (containsElement([j, k], N))
734+ then [DeleteEntry(T(aK)), DeleteEntry(M(aK)), DeleteEntry(O(aK)), DeleteEntry(P(aK)), DeleteEntry(Q(aK)), DeleteEntry(R(aK)), StringEntry(S(aK), s), StringEntry("last_invoke_id", aH)]
733735 else throw("Not allowed")
734736 }
735737
736738
737739
738-@Callable(B)
739-func deleteEntry (bK) = {
740- let M = toString(addressFromPublicKey(B.callerPublicKey))
741- if ((M == j))
742- then [DeleteEntry(bK)]
740+@Callable(C)
741+func deleteEntry (bL) = {
742+ let N = toString(addressFromPublicKey(C.callerPublicKey))
743+ if ((N == j))
744+ then [DeleteEntry(bL)]
743745 else throw("no")
744746 }
745747
746748

github/deemru/w8io/6500d08 
457.38 ms