tx · FNqvLN8TLvmDtu6Hb414YVqKcu89oiJbiTMxcZ6yQfWR

3N921y8NN6jCZGR2W5DtiwVhwWiR3vnaSxG:  -0.01400000 Waves

2020.11.24 06:35 [1278949] smart account 3N921y8NN6jCZGR2W5DtiwVhwWiR3vnaSxG > SELF 0.00000000 Waves

{ "type": 13, "id": "FNqvLN8TLvmDtu6Hb414YVqKcu89oiJbiTMxcZ6yQfWR", "fee": 1400000, "feeAssetId": null, "timestamp": 1606188983235, "version": 2, "chainId": 84, "sender": "3N921y8NN6jCZGR2W5DtiwVhwWiR3vnaSxG", "senderPublicKey": "6akL3Zqwx3Vobjg8fuhirSqEtifvzupxczGTAp7caZUV", "proofs": [ "3jLZ7vd1znTfhVd1arABFZiQexMPrPkkZbQ2JkGuFjNKJLaJQ2Lkj4uGryzCwmNaiK3STLxeuZu8YcQ8YiKmnAgd" ], "script": "base64:AAIEAAAAAAAAAGEIAhIGCgQICAgIEgYKBAgICAgSBAoCCAgSDgoMCAgICAgIAQgICAgIEg0KCwgICAgIAQgICAgIEgUKAwgICBIECgIICBIGCgQIAQEIEgQKAggIEgMKAQgSAwoBCBIDCgEIAAAAPAAAAAAJb3JhY2xlRmVlCQEAAAAFdmFsdWUAAAABCQAEJgAAAAECAAAAIzNOMnM1UnRhSFBCZW5Dc3gyRUNjb0ZSYllIeDNub1poWFcxAAAAAAhzaWduRGFwcAkBAAAABXZhbHVlAAAAAQkABCYAAAABAgAAACMzTkMyOGhTaXZybXNUVVhhWUQxeDZMMzYySjRacFVub1RkQgAAAAALZmVlUmVjZWl2ZXICAAAAIzNOMUU2dFhkZFJvVmFSZlE5ZFEzdmc1TGFXMmZzZDhIS3ViAAAAAAtzaWduQXNzZXRJZAEAAAAg6KVqvMp3QvJwYTI1Sk9Fg7m5HuWZZxfDcerZC6EEresAAAAAC3VzZG5Bc3NldElkAQAAACAP8hwSrOTEPJrsRhqrJaiw7LoHK0bMbYhy8LXikkkBtAAAAAAMd2F2ZXNBc3NldElkAQAAAAAAAAAAB3NpZ25DdXQAAAAAAAAAAAgAAAAAB3VzZG5DdXQAAAAAAAAAAAoAAAAACHdhdmVzQ3V0AAAAAAAAAAAKAAAAAAVjaHJpcwIAAAAjM01zRzZqUE5DclZKVXRZQjdYSkJ4Uzd1dFdzWEFmNG45VnAAAAAABGpvZXACAAAAIzNNem00Vkx3c045dVp3YlRNelBqM1h1eFY2a0VmQVI4VUROAAAAAA9XSElURUxJU1RFRE9OTFkGAAAAAAtkYXBwUnVubmluZwYAAAAADm1haW50ZW5hbmNlTVNHAgAAAB1TSUdOIEFydCBpcyB1bmRlciBtYWludGVuYW5jZQAAAAALdXNlckFsbG93ZWQCAAAAB0FMTE9XRUQAAAAADnVzZXJSZWdpc3RlcmVkAgAAAApSRUdJU1RFUkVEAAAAAAx1c2VyVmVyaWZpZWQCAAAACFZFUklGSUVEAAAAAA11c2VyU3VzcGVuZGVkAgAAAAlTVVNQRU5ERUQAAAAAC3VzZXJSZW1vdmVkAgAAAAdSRU1PVkVEAAAAABJ1c2VyQ2hhbmdlUmVxdWlyZWQCAAAAD0NIQU5HRV9SRVFVSVJFRAAA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bmdFbnRyeQAAAAIJAQAAAAtrZXlVc2VyRGVzYwAAAAEFAAAABmNhbGxlcgUAAAALZGVzY3JpcHRpb24JAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAADWtleVVzZXJTb2NpYWwAAAABBQAAAAZjYWxsZXIFAAAABnNvY2lhbAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAMa2V5VXNlclRodW1iAAAAAQUAAAAGY2FsbGVyBQAAAAV0aHVtYgkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACAgAAAA5sYXN0X2ludm9rZV9pZAUAAAACaWQFAAAAA25pbAAAAAFpAQAAABBjaGFuZ2VVc2VyU3RhdHVzAAAAAgAAAAdhZGRyZXNzAAAABnN0YXR1cwMJAQAAAAEhAAAAAQUAAAALZGFwcFJ1bm5pbmcJAAACAAAAAQUAAAAObWFpbnRlbmFuY2VNU0cEAAAABmNhbGxlcgkABCUAAAABCQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkEAAAAAmlkCQACWAAAAAEIBQAAAAFpAAAADXRyYW5zYWN0aW9uSWQEAAAADWN1cnJlbnRTdGF0dXMJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEJAQAAAA1rZXlVc2VyU3RhdHVzAAAAAQUAAAAHYWRkcmVzcwQAAAALc3RhdHVzVG9TZXQDCQAAAAAAAAIFAAAABnN0YXR1cwUAAAAMdXNlclZlcmlmaWVkBQAAAAx1c2VyVmVyaWZpZWQDCQAAAAAAAAIFAAAABnN0YXR1cwUAAAAOdXNlclJlZ2lzdGVyZWQFAAAADnVzZXJSZWdpc3RlcmVkAwkAAAAAAAACBQAAAAZzdGF0dXMFAAAADXVzZXJTdXNwZW5kZWQFAAAADXVzZXJTdXNwZW5kZWQDCQAAAAAAAAIFAAAABnN0YXR1cwUAAAALdXNlclJlbW92ZWQFAAAAC3VzZXJSZW1vdmVkAwkAAAAAAAACBQAAAAZzdGF0dXMFAAAAC3VzZXJBbGxvd2VkBQAAAAt1c2VyQWxsb3dlZAMJAAAAAAAAAgUAAAAGc3RhdHVzBQAAABJ1c2VyQ2hhbmdlUmVxdWlyZWQFAAAA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ACZPbmx5IFNJR04gdG9rZW4gYWNjZXB0ZWQgYXQgdGhlIG1vbWVudAQAAAAZY3VycmVudENlcnRpZmljYXRpb25QcmljZQkBAAAAGWdldEludGVnZXJCeUtleUZyb21PcmFjbGUAAAABCQABLAAAAAICAAAAEmNlcnRpZmljYXRpb25fZmVlXwkAAlgAAAABBQAAAAtzaWduQXNzZXRJZAMJAQAAAAIhPQAAAAIFAAAABmFtb3VudAUAAAAZY3VycmVudENlcnRpZmljYXRpb25QcmljZQkAAAIAAAABCQABLAAAAAICAAAAGVBheW1lbnQgYW1vdW50IHNob3VsZCBiZSAJAAGkAAAAAQUAAAAZY3VycmVudENlcnRpZmljYXRpb25QcmljZQQAAAAKZW50cnlFeGlzdAkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQkBAAAAFWtleUFydFR4aWRCeUhhc2hPd25lcgAAAAIFAAAACnNoYTI1Nkhhc2gFAAAABmNhbGxlcgMJAQAAAAIhPQAAAAIFAAAACmVudHJ5RXhpc3QCAAAAAAkAAAIAAAABAgAAABRZb3UgYWxyZWFkeSBhZGRlZCBpdAQAAAAJaGFzaEV4aXN0CQEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABCQEAAAARa2V5QXJ0T3duZXJCeUhhc2gAAAABBQAAAApzaGEyNTZIYXNoAwkBAAAAAiE9AAAAAgUAAAAJaGFzaEV4aXN0AgAAAAAJAAACAAAAAQIAAAAXSGFzaCBhbHJlYWR5IHJlZ2lzdGVyZWQEAAAAD2lzU2lnbkNlcnRpZmllZAkBAAAAFGNoZWNrU2lnbkNlcnRpZmljYXRlAAAAAwUAAAAGc2lnbklEBQAAAAZjYWxsZXIFAAAACnNoYTI1Nkhhc2gDCQEAAAABIQAAAAEFAAAAD2lzU2lnbkNlcnRpZmllZAkAAAIAAAABAgAAACxTaWduIENlcnRpZmljYXRlIG5vdCBmb3VuZCBmb3IgdGhpcyBhZGRyZXNzLgMJAAAAAAAAAgkAATEAAAABBQAAAApjaWREaXNwbGF5AAAAAAAAAAAACQAAAgAAAAECAAAAG0Rpc3BsYXkgQ0lEIGNhbm5vdCBiZSBlbXB0eQMJAQAAAAEhAAAAAQkBAAAADnZhbGlkYXRlU3RyaW5nAAAAAgUAAAAEbmFtZQAAAAAAAAAAZAkAAAIAAAABAgAAABIxMDAgQ2hhci4gbWF4IG5hbWUDCQEAAAABIQAAAAEJAQAAAA52YWxpZGF0ZVN0cmluZwAAAAIFAAAAC2Rlc2NyaXB0aW9uAAAAAAAAAAPoCQAAAgAAAAECAAAAGjEwMDAgQ2hhci4gbWF4IGRlc2NyaXB0aW9uAwkAAGYAAAACCQABkAAAAAEJAAS1AAAAAgUAAAAEdGFncwIAAAABLAAAAAAAAAAABQkAAAIAAAABAgAAAAs1IHRhZ3MgbWF4LgQAAAAQdXNlcklzUmVnaXN0ZXJlZAQAAAAHJG1hdGNoMAkABB0AAAACBQAAAAR0aGlzCQABLAAAAAICAAAADHVzZXJfc3RhdHVzXwUAAAAGY2FsbGVyAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAXMFAAAAByRtYXRjaDAFAAAAAXMFAAAAEHVzZXJVbnJlZ2lzdGVyZWQEAAAACXRpbWVzdGFtcAgFAAAACWxhc3RCbG9jawAAAAl0aW1lc3RhbXADAwkBAAAACWlzRGVmaW5lZAAAAAEFAAAAEHVzZXJJc1JlZ2lzdGVyZWQJAAAAAAAAAgUAAAAQdXNlcklzUmVnaXN0ZXJlZAUAAAAQdXNlclVucmVnaXN0ZXJlZAcJAAACAAAAAQIAAAAxUmVnaXN0ZXIgdGhpcyBhY2NvdW50IGZpcnN0IHdpdGggIlVzZXIgaW5mb3MiIHRhYgMJAAAAAAAAAgUAAAAQdXNlcklzUmVnaXN0ZXJlZAUAAAANdXNlclN1c3BlbmRlZAkAAAIAAAABAgAAABFBY2NvdW50IHN1c3BlbmRlZAMJAAAAAAAAAgUAAAAQdXNlcklzUmVnaXN0ZXJlZAUAAAALdXNlclJlbW92ZWQJAAACAAAAAQIAAAAPQWNjb3VudCByZW1vdmVkAwkAAGYAAAACBQAAAAdtYXhtaW50AAAAAAAAAAAKCQAAAgAAAAECAAAADzEwIGVkaXRpb25zIG1heAMJAQAAAAIhPQAAAAIJAAExAAAAAQUAAAAKc2hhMjU2SGFzaAAAAAAAAAAAQAkAAAIAAAABAgAAABFIYXNoIDY0IGNoYXIuIG1heAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAARa2V5QXJ0T3duZXJCeUhhc2gAAAABBQAAAApzaGEyNTZIYXNoBQAAAAZjYWxsZXIJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAFWtleUFydFR4aWRCeUhhc2hPd25lcgAAAAIFAAAACnNoYTI1Nkhhc2gFAAAABmNhbGxlcgUAAAAFYXJ0SWQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAAprZXlBcnREYXRlAAAAAgUAAAAGY2FsbGVyBQAAAAVhcnRJZAUAAAAJdGltZXN0YW1wCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAAAprZXlBcnROYW1lAAAAAgUAAAAGY2FsbGVyBQAAAAVhcnRJZAUAAAAEbmFtZQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAKa2V5QXJ0RGVzYwAAAAIFAAAABmNhbGxlcgUAAAAFYXJ0SWQFAAAAC2Rlc2NyaXB0aW9uCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABBrZXlBcnREaXNwbGF5Q2lkAAAAAgUAAAAGY2FsbGVyBQAAAAVhcnRJZAUAAAAKY2lkRGlzcGxheQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAPa2V5QXJ0RXhwb3J0Q2lkAAAAAgUAAAAGY2FsbGVyBQAAAAVhcnRJZAUAAAAJY2lkRXhwb3J0CQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABBrZXlBcnRFeHBvcnRIYXNoAAAAAgUAAAAGY2FsbGVyBQAAAAVhcnRJZAUAAAAMc2hhMjU2RXhwb3J0CQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABFrZXlBcnRMaWNlbmNlSGFzaAAAAAIFAAAABmNhbGxlcgUAAAAFYXJ0SWQFAAAADXNoYTI1NkxpY2VuY2UJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAEGtleUFydExpY2VuY2VDaWQAAAACBQAAAAZjYWxsZXIFAAAABWFydElkBQAAAApjaWRMaWNlbmNlCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAAAprZXlBcnRUeXBl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dHhpZAUAAAALZGVzY3JpcHRpb24JAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAEGtleUFydERpc3BsYXlDaWQAAAACBQAAAAZjYWxsZXIFAAAABHR4aWQFAAAACmNpZERpc3BsYXkJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAD2tleUFydEV4cG9ydENpZAAAAAIFAAAABmNhbGxlcgUAAAAEdHhpZAUAAAAJY2lkRXhwb3J0CQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABBrZXlBcnRFeHBvcnRIYXNoAAAAAgUAAAAGY2FsbGVyBQAAAAR0eGlkBQAAAAxzaGEyNTZFeHBvcnQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAEGtleUFydExpY2VuY2VDaWQAAAACBQAAAAZjYWxsZXIFAAAABHR4aWQFAAAACmNpZExpY2VuY2UJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAEWtleUFydExpY2VuY2VIYXNoAAAAAgUAAAAGY2FsbGVyBQAAAAR0eGlkBQAAAA1zaGEyNTZMaWNlbmNlCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAANa2V5QXJ0TWF4TWludAAAAAIFAAAABmNhbGxlcgUAAAAEdHhpZAUAAAAHbWF4bWludAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAKa2V5QXJ0VGFncwAAAAIFAAAABmNhbGxlcgUAAAAEdHhpZAUAAAAEdGFncwkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAKa2V5QXJ0VHlwZQAAAAIFAAAABmNhbGxlcgUAAAAEdHhpZAUAAAAEdHlwZQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACAgAAAA5sYXN0X2ludm9rZV9pZAUAAAAIdXBkYXRlSWQFAAAAA25pbAkAAAIAAAABAgAAAA5BbHJlYWR5IG1pbnRlZAAAAAFpAQAAAAtmbGFnQXJ0d29yawAAAAMAAAAFYXJ0SWQAAAAEYWRkcgAAAARmbGFnBAAAAAZjYWxsZXIJAAQlAAAAAQkBAAAAFGFkZHJlc3NGcm9tUHVi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AAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkBAAAAEWtleUFydExpY2VuY2VIYXNoAAAAAgUAAAAMYWRkcmVzc1RvVXNlBQAAAAVhcnRJZAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQEAAAAQa2V5QXJ0TGljZW5jZUNpZAAAAAIFAAAADGFkZHJlc3NUb1VzZQUAAAAFYXJ0SWQJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkBAAAACmtleUFydFR5cGUAAAACBQAAAAxhZGRyZXNzVG9Vc2UFAAAABWFydElkCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAQAAAAprZXlBcnRUYWdzAAAAAgUAAAAMYWRkcmVzc1RvVXNlBQAAAAVhcnRJZAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQEAAAANa2V5QXJ0TWF4TWludAAAAAIFAAAADGFkZHJlc3NUb1VzZQUAAAAFYXJ0SWQJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkBAAAADGtleUFydFNpZ25JRAAAAAIFAAAADGFkZHJlc3NUb1VzZQUAAAAFYXJ0SWQJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkBAAAADGtleUFydElzc3VlZAAAAAIFAAAADGFkZHJlc3NUb1VzZQUAAAAFYXJ0SWQJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkBAAAADGtleUFydE9uU2FsZQAAAAIFAAAADGFkZHJlc3NUb1VzZQUAAAAFYXJ0SWQJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkBAAAACmtleUFydEZsYWcAAAACBQAAAARhZGRyBQAAAAVhcnRJZAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACAgAAAA5sYXN0X2ludm9rZV9pZAUAAAACaWQJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkBAAAAEWtleUFydE93bmVyQnlIYXNoAAAAAQUAAAAKc2hhMjU2SGFzaAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQEAAAATa2V5QXJ0QXJ0aWRCeVNpZ25pZAAAAAIFAAAADGFkZHJlc3NUb1VzZQUAAAAG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QXJ0RGlzcGxheUNpZAAAAAIFAAAABmlzc3VlcgUAAAAFYXJ0SWQEAAAACWV4cG9ydENJRAkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQkBAAAAD2tleUFydEV4cG9ydENpZAAAAAIFAAAABmlzc3VlcgUAAAAFYXJ0SWQEAAAACmV4cG9ydEhhc2gJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEJAQAAABBrZXlBcnRFeHBvcnRIYXNoAAAAAgUAAAAGaXNzdWVyBQAAAAVhcnRJZAQAAAAKbGljZW5jZUNJRAkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQkBAAAAEGtleUFydExpY2VuY2VDaWQAAAACBQAAAAZpc3N1ZXIFAAAABWFydElkBAAAAAtsaWNlbmNlSGFzaAkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQkBAAAAEWtleUFydExpY2VuY2VIYXNoAAAAAgUAAAAGaXNzdWVyBQAAAAVhcnRJZAQAAAALZGVzY3JpcHRpb24JAAEvAAAAAgkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQkBAAAACmtleUFydERlc2MAAAACBQAAAAZpc3N1ZXIFAAAABWFydElkAAAAAAAAAAAyBAAAAAphbW91bnRTb2xkCQEAAAAPZ2V0SW50ZWdlckJ5S2V5AAAAAQkBAAAADGtleUFydElzc3VlZAAAAAIFAAAABmlzc3VlcgUAAAAFYXJ0SWQEAAAADGFydHdvcmtQcmljZQkBAAAAD2dldEludGVnZXJCeUtleQAAAAEJAQAAAAtrZXlBcnRQcmljZQAAAAIFAAAABmlzc3VlcgUAAAAFYXJ0SWQEAAAACGlzT25TYWxlCQEAAAAPZ2V0Qm9vbGVhbkJ5S2V5AAAAAQkBAAAADGtleUFydE9uU2FsZQAAAAIFAAAABmlzc3VlcgUAAAAFYXJ0SWQEAAAADHByaWNlQXNzZXRJZAkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQkBAAAAFWtleUFydEFzc2V0SWRBY2NlcHRlZAAAAAIFAAAABmlzc3VlcgUAAAAFYXJ0SWQEAAAACnNvdXJjZUhhc2gJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEJAQAAABRrZXlBcnRIYXNoQnlUeGlkQWRkcgAAAAIFAAAABmlzc3Vl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", "height": 1278949, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: BpBLNBWgKVnBx2HSzyemLFqJrRkDTpHRwbwvTgNhaQAG Next: 6jHEPH1PLdrci3optJYeuQSQUQv42Ctpd323sQLr5Jx9 Diff:
OldNewDifferences
3939
4040 let s = "REMOVED"
4141
42-let t = "UNREGISTERED"
42+let t = "CHANGE_REQUIRED"
4343
44-let u = "RESET"
44+let u = "UNREGISTERED"
4545
46-func v (w) = {
47- let x = getString(this, w)
48- if ($isInstanceOf(x, "String"))
46+let v = "RESET"
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 false)
309- then ""
310- else throw("Unknown status")
311- if (if ((aL == o))
312- then (aK == o)
308+ else if ((aL == t))
309+ then t
310+ else if (if ((aL == v))
311+ then (aM == o)
312+ else false)
313+ then ""
314+ else throw("Unknown status")
315+ if (if ((aM == o))
316+ then (aL == o)
313317 else false)
314318 then throw("User already allowed")
315- else if (if ((aL == p))
316- then (aK == o)
319+ else if (if ((aM == p))
320+ then (aL == o)
317321 else false)
318322 then throw("User already allowed & registered")
319- else if (if ((aL == q))
320- then (aK == o)
323+ else if (if ((aM == q))
324+ then (aL == o)
321325 else false)
322326 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))
327+ else if (containsElement([j, k], N))
328+ then [StringEntry(S(aK), aN), StringEntry("last_invoke_id", aH)]
329+ else throw(((("Not allowed to change user status " + N) + " / ") + j))
326330 }
327331
328332
329333
330-@Callable(aN)
331-func addArtwork (G,E,aB,aC,aO,aP,aQ,as,aw,at,ax,au) = if (!(m))
334+@Callable(aO)
335+func addArtwork (H,F,aC,aD,aP,aQ,aR,at,ax,au,ay,av) = if (!(m))
332336 then throw(n)
333337 else {
334- let U = toBase58String(aN.transactionId)
335- let M = toBase58String(aN.caller.bytes)
336- if (!(ar(as, at, au)))
338+ let V = toBase58String(aO.transactionId)
339+ let N = toBase58String(aO.caller.bytes)
340+ if (!(as(at, au, av)))
337341 then throw("Problem with CID")
338- else if (!(J(G)))
342+ else if (!(K(H)))
339343 then throw("Hash should be 64 characters maximum")
340- else if (!(av(aw, ax)))
344+ else if (!(aw(ax, ay)))
341345 then throw("Problem with Hashes")
342- else if ((size(aN.payments) == 0))
346+ else if ((size(aO.payments) == 0))
343347 then throw("No payment attached")
344348 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)
349+ let aS = value(aO.payments[0])
350+ let aT = value(aS.amount)
351+ let aU = if (if (isDefined(aS.assetId))
352+ then (aS.assetId == d)
349353 else false)
350- then aR.assetId
354+ then aS.assetId
351355 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)))
356+ let aV = A(("certification_fee_" + toBase58String(d)))
357+ if ((aT != aV))
358+ then throw(("Payment amount should be " + toString(aV)))
355359 else {
356- let aV = v(aq(G, M))
357- if ((aV != ""))
360+ let aW = w(ar(H, N))
361+ if ((aW != ""))
358362 then throw("You already added it")
359363 else {
360- let aW = v(an(G))
361- if ((aW != ""))
364+ let aX = w(ao(H))
365+ if ((aX != ""))
362366 then throw("Hash already registered")
363367 else {
364- let aX = D(E, M, G)
365- if (!(aX))
368+ let aY = E(F, N, H)
369+ if (!(aY))
366370 then throw("Sign Certificate not found for this address.")
367- else if ((size(as) == 0))
371+ else if ((size(at) == 0))
368372 then throw("Display CID cannot be empty")
369- else if (!(ay(aB, 100)))
373+ else if (!(az(aC, 100)))
370374 then throw("100 Char. max name")
371- else if (!(ay(aC, 1000)))
375+ else if (!(az(aD, 1000)))
372376 then throw("1000 Char. max description")
373- else if ((size(split(aO, ",")) > 5))
377+ else if ((size(split(aP, ",")) > 5))
374378 then throw("5 tags max.")
375379 else {
376- let aY = {
377- let x = getString(this, ("user_status_" + M))
378- if ($isInstanceOf(x, "String"))
380+ let aZ = {
381+ let y = getString(this, ("user_status_" + N))
382+ if ($isInstanceOf(y, "String"))
379383 then {
380- let aZ = x
381- aZ
384+ let ba = y
385+ ba
382386 }
383- else t
387+ else u
384388 }
385- let aH = lastBlock.timestamp
386- if (if (isDefined(aY))
387- then (aY == t)
389+ let aI = lastBlock.timestamp
390+ if (if (isDefined(aZ))
391+ then (aZ == u)
388392 else false)
389393 then throw("Register this account first with \"User infos\" tab")
390- else if ((aY == r))
394+ else if ((aZ == r))
391395 then throw("Account suspended")
392- else if ((aY == s))
396+ else if ((aZ == s))
393397 then throw("Account removed")
394- else if ((aQ > 10))
398+ else if ((aR > 10))
395399 then throw("10 editions max")
396- else if ((size(G) != 64))
400+ else if ((size(H) != 64))
397401 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)]
402+ 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)]
399403 }
400404 }
401405 }
405409
406410
407411
408-@Callable(aN)
409-func updateArtwork (am,aB,aC,aO,aP,aQ,as,aw,at,ax,au) = if (!(m))
412+@Callable(aO)
413+func updateArtwork (an,aC,aD,aP,aQ,aR,at,ax,au,ay,av) = if (!(m))
410414 then throw(n)
411415 else {
412- let ba = toBase58String(aN.transactionId)
413- let M = toBase58String(aN.caller.bytes)
414- if (!(ar(as, at, au)))
416+ let bb = toBase58String(aO.transactionId)
417+ let N = toBase58String(aO.caller.bytes)
418+ if (!(as(at, au, av)))
415419 then throw("Problem with CID")
416- else if (!(av(aw, ax)))
420+ else if (!(aw(ax, ay)))
417421 then throw("Problem with Hashes")
418422 else {
419- let aV = v(V(M, am))
420- if ((aV == ""))
423+ let aW = w(W(N, an))
424+ if ((aW == ""))
421425 then throw("Entry not found")
422- else if (!(ay(aB, 100)))
426+ else if (!(az(aC, 100)))
423427 then throw("100 Char. max name")
424- else if (!(ay(aC, 1000)))
428+ else if (!(az(aD, 1000)))
425429 then throw("1000 Char. max description")
426430 else {
427- let bb = v(ak(M, am))
428- if ((bb == "ILLEGAL"))
431+ let bc = w(al(N, an))
432+ if ((bc == "ILLEGAL"))
429433 then throw("Cannot update")
430434 else {
431- let bc = {
432- let x = getInteger(this, ac(M, am))
433- if ($isInstanceOf(x, "Int"))
435+ let bd = {
436+ let y = getInteger(this, ad(N, an))
437+ if ($isInstanceOf(y, "Int"))
434438 then {
435- let bd = x
436- if ((bd == 0))
439+ let be = y
440+ if ((be == 0))
437441 then false
438442 else true
439443 }
440444 else false
441445 }
442- if ((size(split(aO, ",")) > 5))
446+ if ((size(split(aP, ",")) > 5))
443447 then throw("5 tags max.")
444448 else {
445- let aY = {
446- let x = getString(this, ("user_status_" + M))
447- if ($isInstanceOf(x, "String"))
449+ let aZ = {
450+ let y = getString(this, ("user_status_" + N))
451+ if ($isInstanceOf(y, "String"))
448452 then {
449- let aZ = x
450- aZ
453+ let ba = y
454+ ba
451455 }
452- else t
456+ else u
453457 }
454- if (if (isDefined(aY))
455- then (aY == t)
458+ if (if (isDefined(aZ))
459+ then (aZ == u)
456460 else false)
457461 then throw("Register first with \"User infos\"")
458- else if ((aY == r))
462+ else if ((aZ == r))
459463 then throw("Account suspended")
460- else if ((aY == s))
464+ else if ((aZ == s))
461465 then throw("Account removed")
462- else if ((aQ > 10))
466+ else if ((aR > 10))
463467 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)]
468+ else if (!(bd))
469+ 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)]
466470 else throw("Already minted")
467471 }
468472 }
472476
473477
474478
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))
479+@Callable(C)
480+func flagArtwork (V,bf,bc) = {
481+ let N = toString(addressFromPublicKey(C.callerPublicKey))
482+ let aH = toBase58String(C.transactionId)
483+ if (containsElement([j, k], N))
484+ then if ((bc == "CONSENT"))
485+ then [StringEntry(al(bf, V), bc), StringEntry("last_invoke_id", aH)]
486+ else if ((bc == ""))
487+ then [StringEntry(al(bf, V), bc), StringEntry("last_invoke_id", aH)]
488+ else if ((bc == "ILLEGAL"))
489+ 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)]
490+ else throw(("Unknow status" + bc))
487491 else throw("no")
488492 }
489493
490494
491495
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"))
496+@Callable(C)
497+func deleteArtwork (V,bf) = {
498+ let N = toString(addressFromPublicKey(C.callerPublicKey))
499+ let aH = toBase58String(C.transactionId)
500+ let bg = if (containsElement([j, k], N))
501+ then bf
502+ else N
503+ let aW = {
504+ let y = getString(this, W(bg, V))
505+ if ($isInstanceOf(y, "String"))
502506 then {
503- let aZ = x
504- aZ
507+ let ba = y
508+ ba
505509 }
506510 else throw("No art matching")
507511 }
508- let bc = {
509- let x = getInteger(this, ac(bf, U))
510- if ($isInstanceOf(x, "Int"))
512+ let bd = {
513+ let y = getInteger(this, ad(bg, V))
514+ if ($isInstanceOf(y, "Int"))
511515 then {
512- let bd = x
513- if ((bd != 0))
516+ let be = y
517+ if ((be != 0))
514518 then true
515519 else false
516520 }
517521 else false
518522 }
519- let bg = A(aa(bf, U))
520- let G = {
521- let x = getString(this, al(bf, U))
522- if ($isInstanceOf(x, "String"))
523+ let bh = B(ab(bg, V))
524+ let H = {
525+ let y = getString(this, am(bg, V))
526+ if ($isInstanceOf(y, "String"))
523527 then {
524- let aZ = x
525- aZ
528+ let ba = y
529+ ba
526530 }
527531 else throw("No art hash matching")
528532 }
529- let E = {
530- let x = getString(this, ab(bf, U))
531- if ($isInstanceOf(x, "String"))
533+ let F = {
534+ let y = getString(this, ac(bg, V))
535+ if ($isInstanceOf(y, "String"))
532536 then {
533- let aZ = x
534- aZ
537+ let ba = y
538+ ba
535539 }
536540 else throw("No SIGN ID matching")
537541 }
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))
542+ 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))]
543+ if (!(bd))
540544 then if (!(m))
541545 then throw(n)
542- else bh
546+ else bi
543547 else throw("Art already minted, cannot delete")
544548 }
545549
546550
547551
548-@Callable(B)
549-func sellArtwork (U,bi,bg,aT) = if (!(m))
552+@Callable(C)
553+func sellArtwork (V,bj,bh,aU) = if (!(m))
550554 then throw(n)
551555 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))
556+ let aH = toBase58String(C.transactionId)
557+ let N = toBase58String(C.caller.bytes)
558+ let bk = lastBlock.timestamp
559+ let bl = w(aa(N, V))
560+ if ((size(split(bl, "/")[0]) != 59))
557561 then throw("You cannot sell art with no export file")
558562 else {
559- let bl = v(Y(M, U))
560- if ((size(bl) != 64))
563+ let bm = w(Z(N, V))
564+ if ((size(bm) != 64))
561565 then throw("You cannot sell art with no export hash")
562- else if (if (if ((aT != toBase58String(d)))
563- then (aT != toBase58String(f))
566+ else if (if (if ((aU != toBase58String(d)))
567+ then (aU != toBase58String(f))
564568 else false)
565- then (aT != toBase58String(e))
569+ then (aU != toBase58String(e))
566570 else false)
567571 then throw("Only SIGN, USDN or WAVES accepted")
568572 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)
573+ let bn = A("waves_min_sell")
574+ let bo = 1000000
575+ let bp = (A(("certification_fee_" + toBase58String(d))) * 2)
576+ if (if (if (if (if ((aU == toBase58String(e)))
577+ then (bo > bj)
574578 else false)
575- then (bi != 0)
579+ then (bj != 0)
576580 else false)
577581 then true
578- else if (if ((aT == toBase58String(d)))
579- then (bo > bi)
582+ else if (if ((aU == toBase58String(d)))
583+ then (bp > bj)
580584 else false)
581- then (bi != 0)
585+ then (bj != 0)
582586 else false)
583587 then true
584- else if (if ((aT == toBase58String(f)))
585- then (bm > bi)
588+ else if (if ((aU == toBase58String(f)))
589+ then (bn > bj)
586590 else false)
587- then (bi != 0)
591+ then (bj != 0)
588592 else false)
589593 then throw("Wrong minimum sell price")
590594 else {
591- let bp = {
592- let x = getString(this, V(M, U))
593- if ($isInstanceOf(x, "String"))
595+ let bq = {
596+ let y = getString(this, W(N, V))
597+ if ($isInstanceOf(y, "String"))
594598 then {
595- let aZ = x
596- aZ
599+ let ba = y
600+ ba
597601 }
598602 else throw("This art doesn't match")
599603 }
600- let aY = {
601- let x = getString(this, R(M))
602- if ($isInstanceOf(x, "String"))
604+ let aZ = {
605+ let y = getString(this, S(N))
606+ if ($isInstanceOf(y, "String"))
603607 then {
604- let aZ = x
605- aZ
608+ let ba = y
609+ ba
606610 }
607611 else throw("Register this account first")
608612 }
609- let bq = A(ac(M, U))
610- let br = A(aa(M, U))
611- if (if ((bq != 0))
612- then (bq == br)
613+ let br = B(ad(N, V))
614+ let bs = B(ab(N, V))
615+ if (if ((br != 0))
616+ then (br == bs)
613617 else false)
614618 then throw("Max edition reached.")
615- else if (if ((bq > 0))
616- then (br != bg)
619+ else if (if ((br > 0))
620+ then (bs != bh)
617621 else false)
618622 then throw("Cannot change maximum issuable anymore")
619- else if ((aY == r))
623+ else if ((aZ == r))
620624 then throw("Account suspended")
621- else if ((aY == s))
625+ else if ((aZ == s))
622626 then throw("Account deleted")
623627 else {
624- let bs = if ((bi > 0))
628+ let bt = if ((bj > 0))
625629 then true
626630 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)]
631+[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)]
628632 }
629633 }
630634 }
633637
634638
635639
636-@Callable(B)
637-func buyArtwork (U,bt) = if (!(m))
640+@Callable(C)
641+func buyArtwork (V,bu) = if (!(m))
638642 then throw(n)
639643 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"))
644+ let aH = toBase58String(C.transactionId)
645+ let N = toBase58String(C.caller.bytes)
646+ let bv = B("total_nft_issued")
647+ let F = w(ac(bu, V))
648+ let bq = {
649+ let y = getString(this, W(bu, V))
650+ if ($isInstanceOf(y, "String"))
647651 then {
648- let aZ = x
649- aZ
652+ let ba = y
653+ ba
650654 }
651655 else throw("Art doesn't exist")
652656 }
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))
657+ let bw = w(Y(bu, V))
658+ let bl = w(aa(bu, V))
659+ let bm = w(Z(bu, V))
660+ let bx = w(ag(bu, V))
661+ let by = w(af(bu, V))
662+ let aD = take(w(X(bu, V)), 50)
663+ let br = B(ad(bu, V))
664+ let bz = B(aj(bu, V))
665+ let bA = D(ae(bu, V))
666+ let bB = w(ak(bu, V))
667+ let bC = w(am(bu, V))
668+ if ((bz == 0))
665669 then throw("Art not for sell")
666- else if (!(bz))
670+ else if (!(bA))
667671 then throw("Art not for sale")
668672 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)
673+ let bs = B(ab(bu, V))
674+ let aS = value(C.payments[0])
675+ let aT = value(aS.amount)
676+ let aU = if (if (if (isDefined(aS.assetId))
677+ then (size(fromBase58String(bB)) > 0)
674678 else false)
675- then (aR.assetId == fromBase58String(bA))
679+ then (aS.assetId == fromBase58String(bB))
676680 else false)
677- then aR.assetId
681+ then aS.assetId
678682 else unit
679- let bC = if ((bA == toBase58String(d)))
683+ let bD = if ((bB == toBase58String(d)))
680684 then 8
681685 else 10
682- let bD = fraction(aS, bC, 100)
683- let bE = (aS - bD)
684- if ((bq == br))
686+ let bE = fraction(aT, bD, 100)
687+ let bF = (aT - bE)
688+ if ((br == bs))
685689 then throw("Art sold out")
686- else if ((by != aS))
690+ else if ((bz != aT))
687691 then throw("Payment don't match")
688692 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))
693+ let bG = (br + 1)
694+ let bH = lastBlock.timestamp
695+ let bI = ((((((((((((((((((((((((((("Creator: " + bu) + ",
696+ ArtID: ") + V) + ",
697+ SignID: ") + F) + ",
698+ Artwork name: ") + bq) + ",
699+ Artwork description: ") + aD) + ",
700+ Issue: ") + toString(bG)) + "/") + toString(bs)) + ",
701+ Max issuable: ") + toString(bs)) + ",
702+ Source hash: ") + bC) + ",
703+ Display cid: ") + bw) + ",
704+ Export cid: ") + bl) + ",
705+ Export hash: ") + bm) + ",
706+ Licence cid: ") + bx) + ",
707+ Licence hash: ") + by)
708+ let bJ = Issue(("SA_" + toString((bv + 1))), bI, 1, 0, false)
709+ let bK = calculateAssetId(bJ)
710+ let bt = if ((bG == bs))
707711 then false
708712 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)]
713+[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)]
710714 }
711715 }
712716 }
713717
714718
715719
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)]
720+@Callable(C)
721+func creditUser (aK) = {
722+ let N = toString(addressFromPublicKey(C.callerPublicKey))
723+ let aH = toBase58String(C.transactionId)
724+ if (containsElement([j, k], N))
725+ then [ScriptTransfer(Address(fromBase58String(aK)), 150000000000, d)]
722726 else throw("Not allowed")
723727 }
724728
725729
726730
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)]
731+@Callable(C)
732+func deleteUser (aK) = {
733+ let N = toString(addressFromPublicKey(C.callerPublicKey))
734+ let aH = toBase58String(C.transactionId)
735+ if (containsElement([j, k], N))
736+ 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)]
733737 else throw("Not allowed")
734738 }
735739
736740
737741
738-@Callable(B)
739-func deleteEntry (bK) = {
740- let M = toString(addressFromPublicKey(B.callerPublicKey))
741- if ((M == j))
742- then [DeleteEntry(bK)]
742+@Callable(C)
743+func deleteEntry (bL) = {
744+ let N = toString(addressFromPublicKey(C.callerPublicKey))
745+ if ((N == j))
746+ then [DeleteEntry(bL)]
743747 else throw("no")
744748 }
745749
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
42-let t = "UNREGISTERED"
42+let t = "CHANGE_REQUIRED"
4343
44-let u = "RESET"
44+let u = "UNREGISTERED"
4545
46-func v (w) = {
47- let x = getString(this, w)
48- if ($isInstanceOf(x, "String"))
46+let v = "RESET"
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 false)
309- then ""
310- else throw("Unknown status")
311- if (if ((aL == o))
312- then (aK == o)
308+ else if ((aL == t))
309+ then t
310+ else if (if ((aL == v))
311+ then (aM == o)
312+ else false)
313+ then ""
314+ else throw("Unknown status")
315+ if (if ((aM == o))
316+ then (aL == o)
313317 else false)
314318 then throw("User already allowed")
315- else if (if ((aL == p))
316- then (aK == o)
319+ else if (if ((aM == p))
320+ then (aL == o)
317321 else false)
318322 then throw("User already allowed & registered")
319- else if (if ((aL == q))
320- then (aK == o)
323+ else if (if ((aM == q))
324+ then (aL == o)
321325 else false)
322326 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))
327+ else if (containsElement([j, k], N))
328+ then [StringEntry(S(aK), aN), StringEntry("last_invoke_id", aH)]
329+ else throw(((("Not allowed to change user status " + N) + " / ") + j))
326330 }
327331
328332
329333
330-@Callable(aN)
331-func addArtwork (G,E,aB,aC,aO,aP,aQ,as,aw,at,ax,au) = if (!(m))
334+@Callable(aO)
335+func addArtwork (H,F,aC,aD,aP,aQ,aR,at,ax,au,ay,av) = if (!(m))
332336 then throw(n)
333337 else {
334- let U = toBase58String(aN.transactionId)
335- let M = toBase58String(aN.caller.bytes)
336- if (!(ar(as, at, au)))
338+ let V = toBase58String(aO.transactionId)
339+ let N = toBase58String(aO.caller.bytes)
340+ if (!(as(at, au, av)))
337341 then throw("Problem with CID")
338- else if (!(J(G)))
342+ else if (!(K(H)))
339343 then throw("Hash should be 64 characters maximum")
340- else if (!(av(aw, ax)))
344+ else if (!(aw(ax, ay)))
341345 then throw("Problem with Hashes")
342- else if ((size(aN.payments) == 0))
346+ else if ((size(aO.payments) == 0))
343347 then throw("No payment attached")
344348 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)
349+ let aS = value(aO.payments[0])
350+ let aT = value(aS.amount)
351+ let aU = if (if (isDefined(aS.assetId))
352+ then (aS.assetId == d)
349353 else false)
350- then aR.assetId
354+ then aS.assetId
351355 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)))
356+ let aV = A(("certification_fee_" + toBase58String(d)))
357+ if ((aT != aV))
358+ then throw(("Payment amount should be " + toString(aV)))
355359 else {
356- let aV = v(aq(G, M))
357- if ((aV != ""))
360+ let aW = w(ar(H, N))
361+ if ((aW != ""))
358362 then throw("You already added it")
359363 else {
360- let aW = v(an(G))
361- if ((aW != ""))
364+ let aX = w(ao(H))
365+ if ((aX != ""))
362366 then throw("Hash already registered")
363367 else {
364- let aX = D(E, M, G)
365- if (!(aX))
368+ let aY = E(F, N, H)
369+ if (!(aY))
366370 then throw("Sign Certificate not found for this address.")
367- else if ((size(as) == 0))
371+ else if ((size(at) == 0))
368372 then throw("Display CID cannot be empty")
369- else if (!(ay(aB, 100)))
373+ else if (!(az(aC, 100)))
370374 then throw("100 Char. max name")
371- else if (!(ay(aC, 1000)))
375+ else if (!(az(aD, 1000)))
372376 then throw("1000 Char. max description")
373- else if ((size(split(aO, ",")) > 5))
377+ else if ((size(split(aP, ",")) > 5))
374378 then throw("5 tags max.")
375379 else {
376- let aY = {
377- let x = getString(this, ("user_status_" + M))
378- if ($isInstanceOf(x, "String"))
380+ let aZ = {
381+ let y = getString(this, ("user_status_" + N))
382+ if ($isInstanceOf(y, "String"))
379383 then {
380- let aZ = x
381- aZ
384+ let ba = y
385+ ba
382386 }
383- else t
387+ else u
384388 }
385- let aH = lastBlock.timestamp
386- if (if (isDefined(aY))
387- then (aY == t)
389+ let aI = lastBlock.timestamp
390+ if (if (isDefined(aZ))
391+ then (aZ == u)
388392 else false)
389393 then throw("Register this account first with \"User infos\" tab")
390- else if ((aY == r))
394+ else if ((aZ == r))
391395 then throw("Account suspended")
392- else if ((aY == s))
396+ else if ((aZ == s))
393397 then throw("Account removed")
394- else if ((aQ > 10))
398+ else if ((aR > 10))
395399 then throw("10 editions max")
396- else if ((size(G) != 64))
400+ else if ((size(H) != 64))
397401 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)]
402+ 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)]
399403 }
400404 }
401405 }
402406 }
403407 }
404408 }
405409
406410
407411
408-@Callable(aN)
409-func updateArtwork (am,aB,aC,aO,aP,aQ,as,aw,at,ax,au) = if (!(m))
412+@Callable(aO)
413+func updateArtwork (an,aC,aD,aP,aQ,aR,at,ax,au,ay,av) = if (!(m))
410414 then throw(n)
411415 else {
412- let ba = toBase58String(aN.transactionId)
413- let M = toBase58String(aN.caller.bytes)
414- if (!(ar(as, at, au)))
416+ let bb = toBase58String(aO.transactionId)
417+ let N = toBase58String(aO.caller.bytes)
418+ if (!(as(at, au, av)))
415419 then throw("Problem with CID")
416- else if (!(av(aw, ax)))
420+ else if (!(aw(ax, ay)))
417421 then throw("Problem with Hashes")
418422 else {
419- let aV = v(V(M, am))
420- if ((aV == ""))
423+ let aW = w(W(N, an))
424+ if ((aW == ""))
421425 then throw("Entry not found")
422- else if (!(ay(aB, 100)))
426+ else if (!(az(aC, 100)))
423427 then throw("100 Char. max name")
424- else if (!(ay(aC, 1000)))
428+ else if (!(az(aD, 1000)))
425429 then throw("1000 Char. max description")
426430 else {
427- let bb = v(ak(M, am))
428- if ((bb == "ILLEGAL"))
431+ let bc = w(al(N, an))
432+ if ((bc == "ILLEGAL"))
429433 then throw("Cannot update")
430434 else {
431- let bc = {
432- let x = getInteger(this, ac(M, am))
433- if ($isInstanceOf(x, "Int"))
435+ let bd = {
436+ let y = getInteger(this, ad(N, an))
437+ if ($isInstanceOf(y, "Int"))
434438 then {
435- let bd = x
436- if ((bd == 0))
439+ let be = y
440+ if ((be == 0))
437441 then false
438442 else true
439443 }
440444 else false
441445 }
442- if ((size(split(aO, ",")) > 5))
446+ if ((size(split(aP, ",")) > 5))
443447 then throw("5 tags max.")
444448 else {
445- let aY = {
446- let x = getString(this, ("user_status_" + M))
447- if ($isInstanceOf(x, "String"))
449+ let aZ = {
450+ let y = getString(this, ("user_status_" + N))
451+ if ($isInstanceOf(y, "String"))
448452 then {
449- let aZ = x
450- aZ
453+ let ba = y
454+ ba
451455 }
452- else t
456+ else u
453457 }
454- if (if (isDefined(aY))
455- then (aY == t)
458+ if (if (isDefined(aZ))
459+ then (aZ == u)
456460 else false)
457461 then throw("Register first with \"User infos\"")
458- else if ((aY == r))
462+ else if ((aZ == r))
459463 then throw("Account suspended")
460- else if ((aY == s))
464+ else if ((aZ == s))
461465 then throw("Account removed")
462- else if ((aQ > 10))
466+ else if ((aR > 10))
463467 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)]
468+ else if (!(bd))
469+ 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)]
466470 else throw("Already minted")
467471 }
468472 }
469473 }
470474 }
471475 }
472476
473477
474478
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))
479+@Callable(C)
480+func flagArtwork (V,bf,bc) = {
481+ let N = toString(addressFromPublicKey(C.callerPublicKey))
482+ let aH = toBase58String(C.transactionId)
483+ if (containsElement([j, k], N))
484+ then if ((bc == "CONSENT"))
485+ then [StringEntry(al(bf, V), bc), StringEntry("last_invoke_id", aH)]
486+ else if ((bc == ""))
487+ then [StringEntry(al(bf, V), bc), StringEntry("last_invoke_id", aH)]
488+ else if ((bc == "ILLEGAL"))
489+ 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)]
490+ else throw(("Unknow status" + bc))
487491 else throw("no")
488492 }
489493
490494
491495
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"))
496+@Callable(C)
497+func deleteArtwork (V,bf) = {
498+ let N = toString(addressFromPublicKey(C.callerPublicKey))
499+ let aH = toBase58String(C.transactionId)
500+ let bg = if (containsElement([j, k], N))
501+ then bf
502+ else N
503+ let aW = {
504+ let y = getString(this, W(bg, V))
505+ if ($isInstanceOf(y, "String"))
502506 then {
503- let aZ = x
504- aZ
507+ let ba = y
508+ ba
505509 }
506510 else throw("No art matching")
507511 }
508- let bc = {
509- let x = getInteger(this, ac(bf, U))
510- if ($isInstanceOf(x, "Int"))
512+ let bd = {
513+ let y = getInteger(this, ad(bg, V))
514+ if ($isInstanceOf(y, "Int"))
511515 then {
512- let bd = x
513- if ((bd != 0))
516+ let be = y
517+ if ((be != 0))
514518 then true
515519 else false
516520 }
517521 else false
518522 }
519- let bg = A(aa(bf, U))
520- let G = {
521- let x = getString(this, al(bf, U))
522- if ($isInstanceOf(x, "String"))
523+ let bh = B(ab(bg, V))
524+ let H = {
525+ let y = getString(this, am(bg, V))
526+ if ($isInstanceOf(y, "String"))
523527 then {
524- let aZ = x
525- aZ
528+ let ba = y
529+ ba
526530 }
527531 else throw("No art hash matching")
528532 }
529- let E = {
530- let x = getString(this, ab(bf, U))
531- if ($isInstanceOf(x, "String"))
533+ let F = {
534+ let y = getString(this, ac(bg, V))
535+ if ($isInstanceOf(y, "String"))
532536 then {
533- let aZ = x
534- aZ
537+ let ba = y
538+ ba
535539 }
536540 else throw("No SIGN ID matching")
537541 }
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))
542+ 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))]
543+ if (!(bd))
540544 then if (!(m))
541545 then throw(n)
542- else bh
546+ else bi
543547 else throw("Art already minted, cannot delete")
544548 }
545549
546550
547551
548-@Callable(B)
549-func sellArtwork (U,bi,bg,aT) = if (!(m))
552+@Callable(C)
553+func sellArtwork (V,bj,bh,aU) = if (!(m))
550554 then throw(n)
551555 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))
556+ let aH = toBase58String(C.transactionId)
557+ let N = toBase58String(C.caller.bytes)
558+ let bk = lastBlock.timestamp
559+ let bl = w(aa(N, V))
560+ if ((size(split(bl, "/")[0]) != 59))
557561 then throw("You cannot sell art with no export file")
558562 else {
559- let bl = v(Y(M, U))
560- if ((size(bl) != 64))
563+ let bm = w(Z(N, V))
564+ if ((size(bm) != 64))
561565 then throw("You cannot sell art with no export hash")
562- else if (if (if ((aT != toBase58String(d)))
563- then (aT != toBase58String(f))
566+ else if (if (if ((aU != toBase58String(d)))
567+ then (aU != toBase58String(f))
564568 else false)
565- then (aT != toBase58String(e))
569+ then (aU != toBase58String(e))
566570 else false)
567571 then throw("Only SIGN, USDN or WAVES accepted")
568572 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)
573+ let bn = A("waves_min_sell")
574+ let bo = 1000000
575+ let bp = (A(("certification_fee_" + toBase58String(d))) * 2)
576+ if (if (if (if (if ((aU == toBase58String(e)))
577+ then (bo > bj)
574578 else false)
575- then (bi != 0)
579+ then (bj != 0)
576580 else false)
577581 then true
578- else if (if ((aT == toBase58String(d)))
579- then (bo > bi)
582+ else if (if ((aU == toBase58String(d)))
583+ then (bp > bj)
580584 else false)
581- then (bi != 0)
585+ then (bj != 0)
582586 else false)
583587 then true
584- else if (if ((aT == toBase58String(f)))
585- then (bm > bi)
588+ else if (if ((aU == toBase58String(f)))
589+ then (bn > bj)
586590 else false)
587- then (bi != 0)
591+ then (bj != 0)
588592 else false)
589593 then throw("Wrong minimum sell price")
590594 else {
591- let bp = {
592- let x = getString(this, V(M, U))
593- if ($isInstanceOf(x, "String"))
595+ let bq = {
596+ let y = getString(this, W(N, V))
597+ if ($isInstanceOf(y, "String"))
594598 then {
595- let aZ = x
596- aZ
599+ let ba = y
600+ ba
597601 }
598602 else throw("This art doesn't match")
599603 }
600- let aY = {
601- let x = getString(this, R(M))
602- if ($isInstanceOf(x, "String"))
604+ let aZ = {
605+ let y = getString(this, S(N))
606+ if ($isInstanceOf(y, "String"))
603607 then {
604- let aZ = x
605- aZ
608+ let ba = y
609+ ba
606610 }
607611 else throw("Register this account first")
608612 }
609- let bq = A(ac(M, U))
610- let br = A(aa(M, U))
611- if (if ((bq != 0))
612- then (bq == br)
613+ let br = B(ad(N, V))
614+ let bs = B(ab(N, V))
615+ if (if ((br != 0))
616+ then (br == bs)
613617 else false)
614618 then throw("Max edition reached.")
615- else if (if ((bq > 0))
616- then (br != bg)
619+ else if (if ((br > 0))
620+ then (bs != bh)
617621 else false)
618622 then throw("Cannot change maximum issuable anymore")
619- else if ((aY == r))
623+ else if ((aZ == r))
620624 then throw("Account suspended")
621- else if ((aY == s))
625+ else if ((aZ == s))
622626 then throw("Account deleted")
623627 else {
624- let bs = if ((bi > 0))
628+ let bt = if ((bj > 0))
625629 then true
626630 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)]
631+[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)]
628632 }
629633 }
630634 }
631635 }
632636 }
633637
634638
635639
636-@Callable(B)
637-func buyArtwork (U,bt) = if (!(m))
640+@Callable(C)
641+func buyArtwork (V,bu) = if (!(m))
638642 then throw(n)
639643 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"))
644+ let aH = toBase58String(C.transactionId)
645+ let N = toBase58String(C.caller.bytes)
646+ let bv = B("total_nft_issued")
647+ let F = w(ac(bu, V))
648+ let bq = {
649+ let y = getString(this, W(bu, V))
650+ if ($isInstanceOf(y, "String"))
647651 then {
648- let aZ = x
649- aZ
652+ let ba = y
653+ ba
650654 }
651655 else throw("Art doesn't exist")
652656 }
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))
657+ let bw = w(Y(bu, V))
658+ let bl = w(aa(bu, V))
659+ let bm = w(Z(bu, V))
660+ let bx = w(ag(bu, V))
661+ let by = w(af(bu, V))
662+ let aD = take(w(X(bu, V)), 50)
663+ let br = B(ad(bu, V))
664+ let bz = B(aj(bu, V))
665+ let bA = D(ae(bu, V))
666+ let bB = w(ak(bu, V))
667+ let bC = w(am(bu, V))
668+ if ((bz == 0))
665669 then throw("Art not for sell")
666- else if (!(bz))
670+ else if (!(bA))
667671 then throw("Art not for sale")
668672 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)
673+ let bs = B(ab(bu, V))
674+ let aS = value(C.payments[0])
675+ let aT = value(aS.amount)
676+ let aU = if (if (if (isDefined(aS.assetId))
677+ then (size(fromBase58String(bB)) > 0)
674678 else false)
675- then (aR.assetId == fromBase58String(bA))
679+ then (aS.assetId == fromBase58String(bB))
676680 else false)
677- then aR.assetId
681+ then aS.assetId
678682 else unit
679- let bC = if ((bA == toBase58String(d)))
683+ let bD = if ((bB == toBase58String(d)))
680684 then 8
681685 else 10
682- let bD = fraction(aS, bC, 100)
683- let bE = (aS - bD)
684- if ((bq == br))
686+ let bE = fraction(aT, bD, 100)
687+ let bF = (aT - bE)
688+ if ((br == bs))
685689 then throw("Art sold out")
686- else if ((by != aS))
690+ else if ((bz != aT))
687691 then throw("Payment don't match")
688692 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))
693+ let bG = (br + 1)
694+ let bH = lastBlock.timestamp
695+ let bI = ((((((((((((((((((((((((((("Creator: " + bu) + ",
696+ ArtID: ") + V) + ",
697+ SignID: ") + F) + ",
698+ Artwork name: ") + bq) + ",
699+ Artwork description: ") + aD) + ",
700+ Issue: ") + toString(bG)) + "/") + toString(bs)) + ",
701+ Max issuable: ") + toString(bs)) + ",
702+ Source hash: ") + bC) + ",
703+ Display cid: ") + bw) + ",
704+ Export cid: ") + bl) + ",
705+ Export hash: ") + bm) + ",
706+ Licence cid: ") + bx) + ",
707+ Licence hash: ") + by)
708+ let bJ = Issue(("SA_" + toString((bv + 1))), bI, 1, 0, false)
709+ let bK = calculateAssetId(bJ)
710+ let bt = if ((bG == bs))
707711 then false
708712 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)]
713+[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)]
710714 }
711715 }
712716 }
713717
714718
715719
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)]
720+@Callable(C)
721+func creditUser (aK) = {
722+ let N = toString(addressFromPublicKey(C.callerPublicKey))
723+ let aH = toBase58String(C.transactionId)
724+ if (containsElement([j, k], N))
725+ then [ScriptTransfer(Address(fromBase58String(aK)), 150000000000, d)]
722726 else throw("Not allowed")
723727 }
724728
725729
726730
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)]
731+@Callable(C)
732+func deleteUser (aK) = {
733+ let N = toString(addressFromPublicKey(C.callerPublicKey))
734+ let aH = toBase58String(C.transactionId)
735+ if (containsElement([j, k], N))
736+ 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)]
733737 else throw("Not allowed")
734738 }
735739
736740
737741
738-@Callable(B)
739-func deleteEntry (bK) = {
740- let M = toString(addressFromPublicKey(B.callerPublicKey))
741- if ((M == j))
742- then [DeleteEntry(bK)]
742+@Callable(C)
743+func deleteEntry (bL) = {
744+ let N = toString(addressFromPublicKey(C.callerPublicKey))
745+ if ((N == j))
746+ then [DeleteEntry(bL)]
743747 else throw("no")
744748 }
745749
746750

github/deemru/w8io/3ef1775 
445.61 ms