tx · 3oi3Duq9ZrwqG9sCtwq1fLd2ZyXSUY8FkECXHvBG3ZMV

3N2Tdcx5fzxJAKP5hMp9W35Cp1EFzfiJ1zG:  -0.01400000 Waves

2020.10.24 11:50 [1234445] smart account 3N2Tdcx5fzxJAKP5hMp9W35Cp1EFzfiJ1zG > SELF 0.00000000 Waves

{ "type": 13, "id": "3oi3Duq9ZrwqG9sCtwq1fLd2ZyXSUY8FkECXHvBG3ZMV", "fee": 1400000, "feeAssetId": null, "timestamp": 1603529432203, "version": 2, "chainId": 84, "sender": "3N2Tdcx5fzxJAKP5hMp9W35Cp1EFzfiJ1zG", "senderPublicKey": "9SULUbW7L2jV2nv8v48Kdzox4cZ8jEfg778yJHJpgVwM", "proofs": [ "6KxHRoMHciwwwq3CSPxfVkWrAeUXCU7shaxzg7Yi5rMRqRsfdyFCPHaYtbKRaFXnVQjyDXv54dMizwM1cbfwX9i" ], "script": "base64:AAIEAAAAAAAAAFwIAhIGCgQICAgIEgYKBAgICAgSBAoCCAgSAwoBCBIOCgwICAgICAgBCAgICAgSDQoLCAgICAgBCAgICAgSBQoDCAgIEgQKAggIEgYKBAgBAQgSBAoCCAgSAwoBCAAAADkAAAAACW9yYWNsZUZlZQkBAAAABXZhbHVlAAAAAQkABCYAAAABAgAAACMzTjJzNVJ0YUhQQmVuQ3N4MkVDY29GUmJZSHgzbm9aaFhXMQAAAAAIc2lnbkRhcHAJAQAAAAV2YWx1ZQAAAAEJAAQmAAAAAQIAAAAjM05DMjhoU2l2cm1zVFVYYVlEMXg2TDM2Mko0WnBVbm9UZEIAAAAAC2ZlZVJlY2VpdmVyAgAAACMzTjFFNnRYZGRSb1ZhUmZROWRRM3ZnNUxhVzJmc2Q4SEt1YgAAAAALc2lnbkFzc2V0SWQBAAAAIOilarzKd0LycGEyNUpPRYO5uR7lmWcXw3Hq2QuhBK3rAAAAAAt1c2RuQXNzZXRJZAEAAAAgD/IcEqzkxDya7EYaqyWosOy6BytGzG2IcvC14pJJAbQAAAAADHdhdmVzQXNzZXRJZAEAAAAAAAAAAAdzaWduQ3V0AAAAAAAAAAAIAAAAAAd1c2RuQ3V0AAAAAAAAAAAKAAAAAAh3YXZlc0N1dAAAAAAAAAAACgAAAAAFYWRtaW4CAAAAIzNNc0c2alBOQ3JWSlV0WUI3WEpCeFM3dXRXc1hBZjRuOVZwAAAAAAZhZG1pbjICAAAAIzNNem00Vkx3c045dVp3YlRNelBqM1h1eFY2a0VmQVI4VUROAAAAAA9XSElURUxJU1RFRE9OTFkGAAAAAAtkYXBwUnVubmluZwYAAAAADm1haW50ZW5hbmNlTVNHAgAAAB1TSUdOIEFydCBpcyB1bmRlciBtYWludGVuYW5jZQAAAAALdXNlckFsbG93ZWQCAAAAB0FMTE9XRUQAAAAADnVzZXJSZWdpc3RlcmVkAgAAAApSRUdJU1RFUkVEAAAAAAx1c2VyVmVyaWZpZWQCAAAACFZFUklGSUVEAAAAAA11c2VyU3VzcGVuZGVkAgAAAAlTVVNQRU5ERUQAAAAAC3VzZXJSZW1vdmVkAgAAAAdSRU1PVkVEAAAAABB1c2VyVW5yZWdpc3RlcmVkAgAAAAxVTlJFR0lTVEVSRUQAAAAACXVzZXJS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Y0tleQQAAAACaWQJAAJYAAAAAQgFAAAAAWkAAAANdHJhbnNhY3Rpb25JZAQAAAANY3VycmVudFN0YXR1cwkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQkBAAAADWtleVVzZXJTdGF0dXMAAAABBQAAAAdhZGRyZXNzBAAAAAtzdGF0dXNUb1NldAMJAAAAAAAAAgUAAAAGc3RhdHVzBQAAAAx1c2VyVmVyaWZpZWQFAAAADHVzZXJWZXJpZmllZAMJAAAAAAAAAgUAAAAGc3RhdHVzBQAAAA51c2VyUmVnaXN0ZXJlZAUAAAAOdXNlclJlZ2lzdGVyZWQDCQAAAAAAAAIFAAAABnN0YXR1cwUAAAANdXNlclN1c3BlbmRlZAUAAAANdXNlclN1c3BlbmRlZAMJAAAAAAAAAgUAAAAGc3RhdHVzBQAAAAt1c2VyUmVtb3ZlZAUAAAALdXNlclJlbW92ZWQDCQAAAAAAAAIFAAAABnN0YXR1cwUAAAALdXNlckFsbG93ZWQFAAAAC3VzZXJBbGxvd2VkAwMJAAAAAAAAAgUAAAAGc3RhdHVzBQAAAAl1c2VyUmVzZXQJAAAAAAAAAgUAAAANY3VycmVudFN0YXR1cwUAAAALdXNlckFsbG93ZWQHAgAAAAAJAAACAAAAAQIAAAAOVW5rbm93biBzdGF0dXMDAwkAAAAAAAACBQAAAA1jdXJyZW50U3RhdHVzBQAAAAt1c2VyQWxsb3dlZAkAAAAAAAACBQAAAAZzdGF0dXMFAAAAC3VzZXJBbGxvd2VkBwkAAAIAAAABAgAAABRVc2VyIGFscmVhZHkgYWxsb3dlZAMDCQAAAAAAAAIFAAAADWN1cnJlbnRTdGF0dXMFAAAADnVzZXJSZWdpc3RlcmVkCQAAAAAAAAIFAAAABnN0YXR1cwUAAAALdXNlckFsbG93ZWQHCQAAAgAAAAECAAAAIVVzZXIgYWxyZWFkeSBhbGxvd2VkICYgcmVnaXN0ZXJlZAMDCQAAAAAAAAIFAAAADWN1cnJlbnRTdGF0dXMFAAAADHVzZXJWZXJpZmllZAkAAAAAAAACBQAAAAZzdGF0dXMFAAAAC3VzZXJBbGxvd2VkBwkAAAIAAAABAgAAAB9Vc2VyIGFscmVhZHkgYWxsb3dlZCAmIHZlcmlmaWVkAwMJAAAAAAAAAgUAAAAG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ZEJ5SGFzaE93bmVyAAAAAgUAAAAKc2hhMjU2SGFzaAUAAAAGY2FsbGVyBQAAAAVhcnRJZAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAACmtleUFydERhdGUAAAACBQAAAAZjYWxsZXIFAAAABWFydElkBQAAAAl0aW1lc3RhbXAJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAACmtleUFydE5hbWUAAAACBQAAAAZjYWxsZXIFAAAABWFydElkBQAAAARuYW1lCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAAAprZXlBcnREZXNjAAAAAgUAAAAGY2FsbGVyBQAAAAVhcnRJZAUAAAALZGVzY3JpcHRpb24JAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAEGtleUFydERpc3BsYXlDaWQAAAACBQAAAAZjYWxsZXIFAAAABWFydElkBQAAAApjaWREaXNwbGF5CQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAAA9rZXlBcnRFeHBvcnRDaWQAAAACBQAAAAZjYWxsZXIFAAAABWFydElkBQAAAAljaWRFeHBvcnQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAEGtleUFydEV4cG9ydEhhc2gAAAACBQAAAAZjYWxsZXIFAAAABWFydElkBQAAAAxzaGEyNTZFeHBvcnQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAEWtleUFydExpY2VuY2VIYXNoAAAAAgUAAAAGY2FsbGVyBQAAAAVhcnRJZAUAAAANc2hhMjU2TGljZW5jZQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAQa2V5QXJ0TGljZW5jZUNpZAAAAAIFAAAABmNhbGxlcgUAAAAFYXJ0SWQFAAAACmNpZExpY2VuY2UJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAACmtleUFydFR5cGUAAAACBQAAAAZjYWxsZXIFAAAABWFydElkBQAAAAR0eXBlCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAAAprZXlBcnRUYWdzAAAAAgUAAAAGY2FsbGVyBQAAAAVhcnRJZAUAAAAEdGFncwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAADWtleUFydE1heE1pbnQAAAACBQAAAAZjYWxsZXIFAAAABWFydElkBQAAAAdtYXhtaW50CQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAAAxrZXlBcnRTaWduSUQAAAACBQAAAAZjYWxsZXIFAAAABWFydElkBQAAAAZzaWduSUQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAAxrZXlBcnRJc3N1ZWQAAAACBQAAAAZjYWxsZXIFAAAABWFydElkAAAAAAAAAAAACQAETAAAAAIJAQAAAAxCb29sZWFuRW50cnkAAAACCQEAAAAMa2V5QXJ0T25TYWxlAAAAAgUAAAAGY2FsbGVyBQAAAAVhcnRJZAcJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAE2tleUFydEFydGlkQnlTaWduaWQAAAACBQAAAAZjYWxsZXIFAAAABnNpZ25JRAUAAAAFYXJ0SWQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgIAAAAObGFzdF9pbnZva2VfaWQFAAAABWFydElkCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABRrZXlBcnRIYXNoQnlUeGlkQWRkcgAAAAIFAAAABmNhbGxlcgUAAAAFYXJ0SWQFAAAACnNoYTI1Nkhhc2gJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEFAAAAC2ZlZVJlY2VpdmVyBQAAAAZhbW91bnQFAAAAB2Fzc2V0SWQFAAAAA25pbAAAAAZpbnZva2UBAAAADXVwZGF0ZUFydHdvcmsAAAALAAAABHR4aWQAAAAEbmFtZQAAAAtkZXNjcmlwdGlvbgAAAAR0YWdzAAAABHR5cGUAAAAHbWF4bWludAAAAApjaWREaXNwbGF5AAAADHNoYTI1NkV4cG9ydAAAAAljaWRFeHBvcnQAAAANc2hhMjU2TGljZW5jZQAAAApjaWRMaWNlbmNlAwkBAAAAASEAAAABBQAAAAtkYXBwUnVubmluZwkAAAIAAAABBQAAAA5tYWludGVuYW5jZU1TRwQAAAAIdXBkYXRlSWQJAAJYAAAAAQgFAAAABmludm9rZQAAAA10cmFuc2FjdGlvbklkBAAAAAZjYWxsZXIJAAJYAAAAAQgIBQAAAAZpbnZva2UAAAAGY2FsbGVyAAAABWJ5dGVzAwkBAAAAASEAAAABCQEAAAAOdmFsaWRhdGVBbGxDSUQAAAADBQAAAApjaWREaXNwbGF5BQAAAAljaWRFeHBvcnQFAAAACmNpZExpY2VuY2UJAAACAAAAAQIAAAAQUHJvYmxlbSB3aXRoIENJRAMJAQAAAAEhAAAAAQkBAAAAD3ZhbGlkYXRlQWxsSGFzaAAAAAIFAAAADHNoYTI1NkV4cG9ydAUAAAANc2hhMjU2TGljZW5jZQkAAAIAAAABAgAAABNQcm9ibGVtIHdpdGggSGFzaGVzBAAAAAplbnRyeUV4aXN0CQEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABCQEAAAAKa2V5QXJ0TmFtZQAAAAIFAAAABmNhbGxlcgUAAAAEdHhpZAMJAAAAAAAAAgUAAAAKZW50cnlFeGlzdAIAAAAACQAAAgAAAAECAAAAD0VudHJ5IG5vdCBmb3VuZAMJAQAAAAEhAAAAAQkBAAAADnZhbGlkYXRlU3RyaW5nAAAAAgUAAAAEbmFtZQAAAAAAAAAAZAkAAAIAAAABAgAAABIxMDAgQ2hhci4gbWF4IG5hbWUDCQEAAAABIQAAAAEJAQAAAA52YWxpZGF0ZVN0cmluZwAAAAIFAAAAC2Rlc2NyaXB0aW9uAAAAAAAAAAPoCQAAAgAAAAECAAAAGjEwMDAgQ2hhci4gbWF4IGRlc2NyaXB0aW9uBAAAAA1hcnR3b3JrTWludGVkBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAQAAAAxrZXlBcnRJc3N1ZWQAAAACBQAAAAZjYWxsZXIFAAAABHR4aWQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYgUAAAAHJG1hdGNoMAMJAAAAAAAAAgUAAAABYgAAAAAAAAAAAAcGBwMJAABmAAAAAgkAAZAAAAABCQAEtQAAAAIFAAAABHRhZ3MCAAAAASwAAAAAAAAAAAUJAAACAAAAAQIAAAALNSB0YWdzIG1heC4EAAAAEHVzZXJJc1JlZ2lzdGVyZWQEAAAAByRtYXRjaDAJAAQdAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAAAx1c2VyX3N0YXR1c18FAAAABmNhbGxlcgMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFzBQAAAAckbWF0Y2gwBQAAAAFzBQAAABB1c2VyVW5yZWdpc3RlcmVkAwMJAQAAAAlpc0RlZmluZWQAAAABBQAAABB1c2VySXNSZWdpc3RlcmVkCQAAAAAAAAIFAAAAEHVzZXJJc1JlZ2lzdGVyZWQFAAAAEHVzZXJVbnJlZ2lzdGVyZWQHCQAAAgAAAAECAAAAIFJlZ2lzdGVyIGZpcnN0IHdpdGggIlVzZXIgaW5mb3MiAwkAAAAAAAACBQAAABB1c2VySXNSZWdpc3RlcmVkBQAAAA11c2VyU3VzcGVuZGVkCQAAAgAAAAECAAAAEUFjY291bnQgc3VzcGVuZGVkAwkAAAAAAAACBQAAABB1c2VySXNSZWdpc3RlcmVkBQAAAAt1c2VyUmVtb3ZlZAkAAAIAAAABAgAAAA9BY2NvdW50IHJlbW92ZWQDCQAAZgAAAAIFAAAAB21heG1pbnQAAAAAAAAAAAoJAAACAAAAAQIAAAAbMTAgZWRpdGlvbnMgbWF4IHBlciBhcnR3b3JrAwkBAAAAASEAAAABBQAAAA1hcnR3b3JrTWludGVkCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAAAprZXlBcnROYW1lAAAAAgUAAAAGY2FsbGVyBQAAAAR0eGlkBQAAAARuYW1lCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAAAprZXlBcnREZXNjAAAAAgUAAAAGY2FsbGVyBQAAAAR0eGlkBQAAAAtkZXNjcmlwdGlvbgkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAQa2V5QXJ0RGlzcGxheUNpZAAAAAIFAAAABmNhbGxlcgUAAAAEdHhpZAUAAAAKY2lkRGlzcGxheQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAPa2V5QXJ0RXhwb3J0Q2lkAAAAAgUAAAAGY2FsbGVyBQAAAAR0eGlkBQAAAAljaWRFeHBvcnQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAEGtleUFydEV4cG9ydEhhc2gAAAACBQAAAAZjYWxsZXIFAAAABHR4aWQFAAAADHNoYTI1NkV4cG9ydAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAQa2V5QXJ0TGljZW5jZUNpZAAAAAIFAAAABmNhbGxlcgUAAAAEdHhpZAUAAAAKY2lkTGljZW5jZQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAARa2V5QXJ0TGljZW5jZUhhc2gAAAACBQAAAAZjYWxsZXIFAAAABHR4aWQFAAAADXNoYTI1NkxpY2VuY2UJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAA1rZXlBcnRNYXhNaW50AAAAAgUAAAAGY2FsbGVyBQAAAAR0eGlkBQAAAAdtYXhtaW50CQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAAAprZXlBcnRUYWdzAAAAAgUAAAAGY2FsbGVyBQAAAAR0eGlkBQAAAAR0YWdzCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAAAprZXlBcnRUeXBlAAAAAgUAAAAGY2FsbGVyBQAAAAR0eGlkBQAAAAR0eXBlCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAICAAAADmxhc3RfaW52b2tlX2lkBQAAAAh1cGRhdGVJZAUAAAADbmlsCQAAAgAAAAECAAAADkFscmVhZHkgbWludGVkAAAAAWkBAAAAC2ZsYWdBcnR3b3JrAAAAAwAAAAVhcnRJZAAAAARhZGRyAAAABGZsYWcEAAAABmNhbGxlcgkABCUAAAABCQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkEAAAAAmlkCQACWAAAAAEIBQAAAAFpAAAADXRyYW5zYWN0aW9uSWQDAwkAAAAAAAACBQAAAAZjYWxsZXIFAAAABWFkbWluBgkAAAAAAAACBQAAAAZjYWxsZXIFAAAABmFkbWluMgMJAAAAAAAAAgUAAAAEZmxhZwIAAAAHQ09OU0VOVAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAlhcnRfZmxhZ18FAAAABWFydElkAgAAAAFfBQAAAARhZGRyBQAAAARmbGFnCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAICAAAADmxhc3RfaW52b2tlX2lkBQAAAAJpZAUAAAADbmlsAwkAAAAAAAACBQAAAARmbGFnAgAAAAAJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAJYXJ0X2ZsYWdfBQAAAAVhcnRJZAIAAAABXwUAAAAEYWRkcgUAAAAEZmxhZwkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACAgAAAA5sYXN0X2ludm9rZV9pZAUAAAACaWQFAAAAA25pbAMJAAAAAAAAAgUAAAAEZmxhZwIAAAAHSUxMRUdBTAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAlhcnRfZmxhZ18FAAAABWFydElkAgAAAAFfBQAAAARhZGRyBQAAAARmbGFnCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAAAprZXlBcnROYW1lAAAAAgUAAAAEYWRkcgUAAAAFYXJ0SWQCAAAAD0lMTEVHQUwgQ09OVEVOVAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAKa2V5QXJ0RGVzYwAAAAIFAAAABGFkZHIFAAAABWFydElkAgAAAA9JTExFR0FMIENPTlRFTlQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAEGtleUFydERpc3BsYXlDaWQAAAACBQAAAARhZGRyBQAAAAVhcnRJZAIAAAAACQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAAA9rZXlBcnRFeHBvcnRDaWQAAAACBQAAAARhZGRyBQAAAAVhcnRJZAIAAAAACQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABBrZXlBcnRMaWNlbmNlQ2lkAAAAAgUAAAAEYWRkcgUAAAAFYXJ0SWQCAAAAAAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACAgAAAA5sYXN0X2ludm9rZV9pZAUAAAACaWQFAAAAA25pbAkAAAIAAAABCQABLAAAAAICAAAADVVua25vdyBzdGF0dXMFAAAABGZsYWcJAAACAAAAAQIAAAACbm8AAAABaQEAAAANZGVsZXRlQXJ0d29yawAAAAIAAAAFYXJ0SWQAAAAEYWRkcgQAAAAGY2FsbGVyCQAEJQAAAAEJAQAAABRhZGRyZXNzRnJvbVB1YmxpY0tleQAAAAEIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQQAAAACaWQJAAJYAAAAAQgFAAAAAWkAAAANdHJhbnNhY3Rpb25JZAQAAAAMYWRkcmVzc1RvVXNlAwMJAAAAAAAAAgUAAAAGY2FsbGVyBQAAAAVhZG1pbgYJAAAAAAAAAgUAAAAGY2FsbGVyBQAAAAZhZG1pbjIFAAAABGFkZHIFAAAABmNhbGxlcgQAAAAKZW50cnlFeGlzdAQAAAAHJG1hdGNoMAkABB0AAAACBQAAAAR0aGlzCQEAAAAKa2V5QXJ0TmFtZQAAAAIFAAAADGFkZHJlc3NUb1VzZQUAAAAFYXJ0SWQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABcwUAAAAHJG1hdGNoMAUAAAABcwkAAAIAAAABAgAAAA9ObyBhcnQgbWF0Y2hpbmcEAAAADWFydHdvcmtNaW50ZWQEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkBAAAADGtleUFydElzc3VlZAAAAAIFAAAADGFkZHJlc3NUb1VzZQUAAAAFYXJ0SWQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYgUAAAAHJG1hdGNoMAMJAQAAAAIhPQAAAAIFAAAAAWIAAAAAAAAAAAAGBwcEAAAAB21heE1pbnQJAQAAAA9nZXRJbnRlZ2VyQnlLZXkAAAABCQEAAAANa2V5QXJ0TWF4TWludAAAAAIFAAAADGFkZHJlc3NUb1VzZQUAAAAFYXJ0SWQEAAAACnNoYTI1Nkhhc2gEAAAAByRtYXRjaDAJAAQdAAAAAgUAAAAEdGhpcwkBAAAAFGtleUFydEhhc2hCeVR4aWRBZGRyAAAAAgUAAAAMYWRkcmVzc1RvVXNlBQAAAAVhcnRJZAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFzBQAAAAckbWF0Y2gwBQAAAAFzCQAAAgAAAAECAAAAFE5vIGFydCBoYXNoIG1hdGNoaW5nBAAAAAZzaWduSUQEAAAAByRtYXRjaDAJAAQdAAAAAgUAAAAEdGhpcwkBAAAADGtleUFydFNpZ25JRAAAAAIFAAAADGFkZHJlc3NUb1VzZQUAAAAFYXJ0SWQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABcwUAAAAHJG1hdGNoMAUAAAABcwkAAAIAAAABAgAAABNObyBTSUdOIElEIG1hdGNoaW5nBAAAAAxkYXRhVG9EZWxldGUJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkBAAAACmtleUFydERhdGUAAAACBQAAAAxhZGRyZXNzVG9Vc2UFAAAABWFydElkCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAQAAAAprZXlBcnROYW1lAAAAAgUAAAAMYWRkcmVzc1RvVXNlBQAAAAVhcnRJZAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQEAAAAKa2V5QXJ0RGVzYwAAAAIFAAAADGFkZHJlc3NUb1VzZQUAAAAFYXJ0SWQJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkBAAAAEGtleUFydERpc3BsYXlDaWQAAAACBQAAAAxhZGRyZXNzVG9Vc2UFAAAABWFydElkCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAQAAAA9rZXlBcnRFeHBvcnRDaWQAAAACBQAAAAxhZGRyZXNzVG9Vc2UFAAAABWFydElkCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAQAAABBrZXlBcnRFeHBvcnRIYXNoAAAAAgUAAAAMYWRkcmVzc1RvVXNlBQAAAAVhcnRJZAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQEAAAARa2V5QXJ0TGljZW5jZUhhc2gAAAACBQAAAAxhZGRyZXNzVG9Vc2UFAAAABWFydElkCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAQAAABBrZXlBcnRMaWNlbmNlQ2lkAAAAAgUAAAAMYWRkcmVzc1RvVXNlBQAAAAVhcnRJZAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQEAAAAKa2V5QXJ0VHlwZQAAAAIFAAAADGFkZHJlc3NUb1VzZQUAAAAFYXJ0SWQJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkBAAAACmtleUFydFRhZ3MAAAACBQAAAAxhZGRyZXNzVG9Vc2UFAAAABWFydElkCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAQAAAA1rZXlBcnRNYXhNaW50AAAAAgUAAAAMYWRkcmVzc1RvVXNlBQAAAAVhcnRJZAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQEAAAAMa2V5QXJ0U2lnbklEAAAAAgUAAAAMYWRkcmVzc1RvVXNlBQAAAAVhcnRJZAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQEAAAAMa2V5QXJ0SXNzdWVkAAAAAgUAAAAMYWRkcmVzc1RvVXNlBQAAAAVhcnRJZAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQEAAAAMa2V5QXJ0T25TYWxlAAAAAgUAAAAMYWRkcmVzc1RvVXNlBQAAAAVhcnRJZAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACAgAAAA5sYXN0X2ludm9rZV9pZAUAAAACaWQJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkBAAAAEWtleUFydE93bmVyQnlIYXNoAAAAAQUAAAAKc2hhMjU2SGFzaAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQEAAAATa2V5QXJ0QXJ0aWRCeVNpZ25pZAAAAAIFAAAADGFkZHJlc3NUb1VzZQUAAAAGc2lnbklECQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAQAAABVrZXlBcnRUeGlkQnlIYXNoT3duZXIAAAACBQAAAApzaGEyNTZIYXNoBQAAAAxhZGRyZXNzVG9Vc2UFAAAAA25pbAMJAQAAAAEhAAAAAQUAAAANYXJ0d29ya01pbnRlZAMJAQAAAAEhAAAAAQUAAAALZGFwcFJ1bm5pbmcJAAACAAAAAQUAAAAObWFpbnRlbmFuY2VNU0cFAAAADGRhdGFUb0RlbGV0ZQkAAAIAAAABAgAAACFBcnQgYWxyZWFkeSBtaW50ZWQsIGNhbm5vdCBkZWxldGUA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ZGlzcGxheUNJRAkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQkBAAAAEGtleUFydERpc3BsYXlDaWQAAAACBQAAAAZpc3N1ZXIFAAAABWFydElkBAAAAAlleHBvcnRDSUQJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEJAQAAAA9rZXlBcnRFeHBvcnRDaWQAAAACBQAAAAZpc3N1ZXIFAAAABWFydElkBAAAAApleHBvcnRIYXNoCQEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABCQEAAAAQa2V5QXJ0RXhwb3J0SGFzaAAAAAIFAAAABmlzc3VlcgUAAAAFYXJ0SWQEAAAACmxpY2VuY2VDSUQJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEJAQAAABBrZXlBcnRMaWNlbmNlQ2lkAAAAAgUAAAAGaXNzdWVyBQAAAAVhcnRJZAQAAAALbGljZW5jZUhhc2gJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEJAQAAABFrZXlBcnRMaWNlbmNlSGFzaAAAAAIFAAAABmlzc3VlcgUAAAAFYXJ0SWQEAAAAC2Rlc2NyaXB0aW9uCQABLwAAAAIJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEJAQAAAAprZXlBcnREZXNjAAAAAgUAAAAGaXNzdWVyBQAAAAVhcnRJZAAAAAAAAAAAMgQAAAAKYW1vdW50U29sZAkBAAAAD2dldEludGVnZXJCeUtleQAAAAEJAQAAAAxrZXlBcnRJc3N1ZWQAAAACBQAAAAZpc3N1ZXIFAAAABWFydElkBAAAAAxhcnR3b3JrUHJpY2UJAQAAAA9nZXRJbnRlZ2VyQnlLZXkAAAABCQEAAAALa2V5QXJ0UHJpY2UAAAACBQAAAAZpc3N1ZXIFAAAABWFydElkBAAAAAhpc09uU2FsZQkBAAAAD2dldEJvb2xlYW5CeUtleQAAAAEJAQAAAAxrZXlBcnRPblNhbGUAAAACBQAAAAZpc3N1ZXIFAAAABWFydElkBAAAAAxwcmljZUFzc2V0SWQJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEJAQAAABVrZXlBcnRBc3NldElkQWNjZXB0ZWQAAAACBQAAAAZpc3N1ZXIFAAAABWFydElkBAAAAApzb3VyY2VIYXNoCQEAAAAOZ2V0U3RyaW5nQnlLZXkA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", "height": 1234445, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: SwximWnW9m4F1kVREBD3KmbRzTNc2TFen6epkBrmQ5o Next: FwqeuaudiWjppx3uKigojQzRugjMnvgMmU91WW2Rh7yY Diff:
OldNewDifferences
243243
244244
245245 @Callable(A)
246-func deleteEntry (aG) = {
247- let L = toString(addressFromPublicKey(A.callerPublicKey))
248- if ((L == j))
249- then [DeleteEntry(aG)]
250- else throw("no")
251- }
252-
253-
254-
255-@Callable(A)
256246 func updateUser (az,aA,aB,aC) = if (!(m))
257247 then throw(n)
258248 else {
259249 let aE = toBase58String(A.transactionId)
260250 let L = toString(addressFromPublicKey(A.callerPublicKey))
261- let aH = v(Q(L))
262- if (if ((aH == r))
251+ let aG = v(Q(L))
252+ if (if ((aG == r))
263253 then true
264- else (aH == s))
254+ else (aG == s))
265255 then throw("Account suspended/ removed.")
266- else if (if ((aH == ""))
256+ else if (if ((aG == ""))
267257 then true
268- else (aH == o))
258+ else (aG == o))
269259 then throw("Register first")
270260 else if (if ((az == ""))
271261 then true
279269
280270
281271 @Callable(A)
282-func changeUserStatus (aI,aJ) = if (!(m))
272+func changeUserStatus (aH,aI) = if (!(m))
283273 then throw(n)
284274 else {
285275 let L = toString(addressFromPublicKey(A.callerPublicKey))
286276 let aE = toBase58String(A.transactionId)
287- let aK = v(Q(aI))
288- let aL = if ((aJ == q))
277+ let aJ = v(Q(aH))
278+ let aK = if ((aI == q))
289279 then q
290- else if ((aJ == p))
280+ else if ((aI == p))
291281 then p
292- else if ((aJ == r))
282+ else if ((aI == r))
293283 then r
294- else if ((aJ == s))
284+ else if ((aI == s))
295285 then s
296- else if ((aJ == o))
286+ else if ((aI == o))
297287 then o
298- else if (if ((aJ == u))
299- then (aK == o)
288+ else if (if ((aI == u))
289+ then (aJ == o)
300290 else false)
301291 then ""
302292 else throw("Unknown status")
303- if (if ((aK == o))
304- then (aJ == o)
293+ if (if ((aJ == o))
294+ then (aI == o)
305295 else false)
306296 then throw("User already allowed")
307- else if (if ((aK == p))
308- then (aJ == o)
297+ else if (if ((aJ == p))
298+ then (aI == o)
309299 else false)
310300 then throw("User already allowed & registered")
311- else if (if ((aK == q))
312- then (aJ == o)
301+ else if (if ((aJ == q))
302+ then (aI == o)
313303 else false)
314304 then throw("User already allowed & verified")
315305 else if (if ((L == j))
316306 then true
317307 else (L == k))
318- then [StringEntry(Q(aI), aL), StringEntry("last_invoke_id", aE)]
308+ then [StringEntry(Q(aH), aK), StringEntry("last_invoke_id", aE)]
319309 else throw(((("Not allowed to change user status " + L) + " / ") + j))
320310 }
321311
322312
323313
324314 @Callable(A)
325-func creditUser (aI) = {
315+func creditUser (aH) = {
326316 let L = toString(addressFromPublicKey(A.callerPublicKey))
327317 let aE = toBase58String(A.transactionId)
328318 if (if ((L == j))
329319 then true
330320 else (L == k))
331- then [ScriptTransfer(Address(fromBase58String(aI)), 150000000000, d)]
321+ then [ScriptTransfer(Address(fromBase58String(aH)), 150000000000, d)]
332322 else throw("Not allowed")
333323 }
334324
335325
336326
337-@Callable(aM)
338-func addArtwork (F,D,az,aA,aN,aO,aP,aq,au,ar,av,as) = if (!(m))
327+@Callable(aL)
328+func addArtwork (F,D,az,aA,aM,aN,aO,aq,au,ar,av,as) = if (!(m))
339329 then throw(n)
340330 else {
341- let T = toBase58String(aM.transactionId)
342- let L = toBase58String(aM.caller.bytes)
331+ let T = toBase58String(aL.transactionId)
332+ let L = toBase58String(aL.caller.bytes)
343333 if (!(ap(aq, ar, as)))
344334 then throw("Problem with CID")
345335 else if (!(I(F)))
346336 then throw("Hash should be 64 characters maximum")
347337 else if (!(at(au, av)))
348338 then throw("Problem with Hashes")
349- else if ((size(aM.payments) == 0))
339+ else if ((size(aL.payments) == 0))
350340 then throw("No payment attached")
351341 else {
352- let aQ = value(aM.payments[0])
353- let aR = value(aQ.amount)
354- let aS = if (if (isDefined(aQ.assetId))
355- then (aQ.assetId == d)
342+ let aP = value(aL.payments[0])
343+ let aQ = value(aP.amount)
344+ let aR = if (if (isDefined(aP.assetId))
345+ then (aP.assetId == d)
356346 else false)
357- then aQ.assetId
347+ then aP.assetId
358348 else throw("Only SIGN token accepted at the moment")
359- let aT = {
349+ let aS = {
360350 let x = getInteger(a, ("certification_fee_" + toBase58String(d)))
361351 if ($isInstanceOf(x, "Int"))
362352 then {
363- let aU = x
364- aU
353+ let aT = x
354+ aT
365355 }
366356 else throw("Price undefined in oracle")
367357 }
368- if ((aR != aT))
369- then throw(("Payment amount should be " + toString(aT)))
358+ if ((aQ != aS))
359+ then throw(("Payment amount should be " + toString(aS)))
370360 else {
371- let aV = v(ao(F, L))
372- if ((aV != ""))
361+ let aU = v(ao(F, L))
362+ if ((aU != ""))
373363 then throw("You already added it")
374364 else {
375- let aW = v(al(F))
376- if ((aW != ""))
365+ let aV = v(al(F))
366+ if ((aV != ""))
377367 then throw("Hash already registered")
378368 else {
379- let aX = C(D, L, F)
380- if (!(aX))
369+ let aW = C(D, L, F)
370+ if (!(aW))
381371 then throw("Sign Certificate not found for this address.")
382372 else if ((size(aq) == 0))
383373 then throw("Display CID cannot be empty")
385375 then throw("100 Char. max name")
386376 else if (!(aw(aA, 1000)))
387377 then throw("1000 Char. max description")
388- else if ((size(split(aN, ",")) > 5))
378+ else if ((size(split(aM, ",")) > 5))
389379 then throw("5 tags max.")
390380 else {
391- let aY = {
381+ let aX = {
392382 let x = getString(this, ("user_status_" + L))
393383 if ($isInstanceOf(x, "String"))
394384 then {
395- let aZ = x
396- aZ
385+ let aY = x
386+ aY
397387 }
398388 else t
399389 }
400390 let aF = lastBlock.timestamp
401- if (if (isDefined(aY))
402- then (aY == t)
391+ if (if (isDefined(aX))
392+ then (aX == t)
403393 else false)
404394 then throw("Register this account first with \"User infos\" tab")
405- else if ((aY == r))
395+ else if ((aX == r))
406396 then throw("Account suspended")
407- else if ((aY == s))
397+ else if ((aX == s))
408398 then throw("Account removed")
409- else if ((aP > 10))
399+ else if ((aO > 10))
410400 then throw("10 editions max")
411401 else if ((size(F) != 64))
412402 then throw("Hash 64 char. max")
413- else [StringEntry(al(F), L), StringEntry(ao(F, L), T), IntegerEntry(S(L, T), aF), StringEntry(U(L, T), az), StringEntry(V(L, T), aA), StringEntry(W(L, T), aq), StringEntry(Y(L, T), ar), StringEntry(X(L, T), au), StringEntry(ad(L, T), av), StringEntry(ae(L, T), as), StringEntry(ag(L, T), aO), StringEntry(af(L, T), aN), IntegerEntry(Z(L, T), aP), StringEntry(aa(L, T), D), IntegerEntry(ab(L, T), 0), BooleanEntry(ac(L, T), false), StringEntry(am(L, D), T), StringEntry("last_invoke_id", T), StringEntry(aj(L, T), F), ScriptTransfer(Address(fromBase58String(c)), aR, aS)]
403+ else [StringEntry(al(F), L), StringEntry(ao(F, L), T), IntegerEntry(S(L, T), aF), StringEntry(U(L, T), az), StringEntry(V(L, T), aA), StringEntry(W(L, T), aq), StringEntry(Y(L, T), ar), StringEntry(X(L, T), au), StringEntry(ad(L, T), av), StringEntry(ae(L, T), as), StringEntry(ag(L, T), aN), StringEntry(af(L, T), aM), IntegerEntry(Z(L, T), aO), StringEntry(aa(L, T), D), IntegerEntry(ab(L, T), 0), BooleanEntry(ac(L, T), false), StringEntry(am(L, D), T), StringEntry("last_invoke_id", T), StringEntry(aj(L, T), F), ScriptTransfer(Address(fromBase58String(c)), aQ, aR)]
414404 }
415405 }
416406 }
420410
421411
422412
423-@Callable(aM)
424-func updateArtwork (ak,az,aA,aN,aO,aP,aq,au,ar,av,as) = if (!(m))
413+@Callable(aL)
414+func updateArtwork (ak,az,aA,aM,aN,aO,aq,au,ar,av,as) = if (!(m))
425415 then throw(n)
426416 else {
427- let ba = toBase58String(aM.transactionId)
428- let L = toBase58String(aM.caller.bytes)
417+ let aZ = toBase58String(aL.transactionId)
418+ let L = toBase58String(aL.caller.bytes)
429419 if (!(ap(aq, ar, as)))
430420 then throw("Problem with CID")
431421 else if (!(at(au, av)))
432422 then throw("Problem with Hashes")
433423 else {
434- let aV = v(U(L, ak))
435- if ((aV == ""))
424+ let aU = v(U(L, ak))
425+ if ((aU == ""))
436426 then throw("Entry not found")
437427 else if (!(aw(az, 100)))
438428 then throw("100 Char. max name")
439429 else if (!(aw(aA, 1000)))
440430 then throw("1000 Char. max description")
441431 else {
442- let bb = {
432+ let ba = {
443433 let x = getInteger(this, ab(L, ak))
444434 if ($isInstanceOf(x, "Int"))
445435 then {
446- let bc = x
447- if ((bc == 0))
436+ let bb = x
437+ if ((bb == 0))
448438 then false
449439 else true
450440 }
451441 else false
452442 }
453- if ((size(split(aN, ",")) > 5))
443+ if ((size(split(aM, ",")) > 5))
454444 then throw("5 tags max.")
455445 else {
456- let aY = {
446+ let aX = {
457447 let x = getString(this, ("user_status_" + L))
458448 if ($isInstanceOf(x, "String"))
459449 then {
460- let aZ = x
461- aZ
450+ let aY = x
451+ aY
462452 }
463453 else t
464454 }
465- if (if (isDefined(aY))
466- then (aY == t)
455+ if (if (isDefined(aX))
456+ then (aX == t)
467457 else false)
468458 then throw("Register first with \"User infos\"")
469- else if ((aY == r))
459+ else if ((aX == r))
470460 then throw("Account suspended")
471- else if ((aY == s))
461+ else if ((aX == s))
472462 then throw("Account removed")
473- else if ((aP > 10))
463+ else if ((aO > 10))
474464 then throw("10 editions max per artwork")
475- else if (!(bb))
476- then [StringEntry(U(L, ak), az), StringEntry(V(L, ak), aA), StringEntry(W(L, ak), aq), StringEntry(Y(L, ak), ar), StringEntry(X(L, ak), au), StringEntry(ae(L, ak), as), StringEntry(ad(L, ak), av), IntegerEntry(Z(L, ak), aP), StringEntry(af(L, ak), aN), StringEntry(ag(L, ak), aO), StringEntry("last_invoke_id", ba)]
465+ else if (!(ba))
466+ then [StringEntry(U(L, ak), az), StringEntry(V(L, ak), aA), StringEntry(W(L, ak), aq), StringEntry(Y(L, ak), ar), StringEntry(X(L, ak), au), StringEntry(ae(L, ak), as), StringEntry(ad(L, ak), av), IntegerEntry(Z(L, ak), aO), StringEntry(af(L, ak), aM), StringEntry(ag(L, ak), aN), StringEntry("last_invoke_id", aZ)]
477467 else throw("Already minted")
478468 }
479469 }
483473
484474
485475 @Callable(A)
486-func flagArtwork (T,bd,be) = {
476+func flagArtwork (T,bc,bd) = {
487477 let L = toString(addressFromPublicKey(A.callerPublicKey))
488478 let aE = toBase58String(A.transactionId)
489479 if (if ((L == j))
490480 then true
491481 else (L == k))
492- then if ((be == "CONSENT"))
493- then [StringEntry(((("art_flag_" + T) + "_") + bd), be), StringEntry("last_invoke_id", aE)]
494- else if ((be == "ILLEGAL"))
495- then [StringEntry(((("art_flag_" + T) + "_") + bd), be), StringEntry(U(bd, T), "ILLEGAL CONTENT"), StringEntry(V(bd, T), "ILLEGAL CONTENT"), StringEntry(W(bd, T), ""), StringEntry(Y(bd, T), ""), StringEntry(ae(bd, T), ""), StringEntry("last_invoke_id", aE)]
496- else throw(("Unknow status" + be))
482+ then if ((bd == "CONSENT"))
483+ then [StringEntry(((("art_flag_" + T) + "_") + bc), bd), StringEntry("last_invoke_id", aE)]
484+ else if ((bd == ""))
485+ then [StringEntry(((("art_flag_" + T) + "_") + bc), bd), StringEntry("last_invoke_id", aE)]
486+ else if ((bd == "ILLEGAL"))
487+ then [StringEntry(((("art_flag_" + T) + "_") + bc), bd), StringEntry(U(bc, T), "ILLEGAL CONTENT"), StringEntry(V(bc, T), "ILLEGAL CONTENT"), StringEntry(W(bc, T), ""), StringEntry(Y(bc, T), ""), StringEntry(ae(bc, T), ""), StringEntry("last_invoke_id", aE)]
488+ else throw(("Unknow status" + bd))
497489 else throw("no")
498490 }
499491
500492
501493
502494 @Callable(A)
503-func deleteArtwork (T,bd) = {
495+func deleteArtwork (T,bc) = {
504496 let L = toString(addressFromPublicKey(A.callerPublicKey))
505497 let aE = toBase58String(A.transactionId)
506- let bf = if (if ((L == j))
498+ let be = if (if ((L == j))
507499 then true
508500 else (L == k))
509- then bd
501+ then bc
510502 else L
511- let aV = {
512- let x = getString(this, U(bf, T))
503+ let aU = {
504+ let x = getString(this, U(be, T))
513505 if ($isInstanceOf(x, "String"))
514506 then {
515- let aZ = x
516- aZ
507+ let aY = x
508+ aY
517509 }
518510 else throw("No art matching")
519511 }
520- let bb = {
521- let x = getInteger(this, ab(bf, T))
512+ let ba = {
513+ let x = getInteger(this, ab(be, T))
522514 if ($isInstanceOf(x, "Int"))
523515 then {
524- let bc = x
525- if ((bc != 0))
516+ let bb = x
517+ if ((bb != 0))
526518 then true
527519 else false
528520 }
529521 else false
530522 }
531- let bg = z(Z(bf, T))
523+ let bf = z(Z(be, T))
532524 let F = {
533- let x = getString(this, aj(bf, T))
525+ let x = getString(this, aj(be, T))
534526 if ($isInstanceOf(x, "String"))
535527 then {
536- let aZ = x
537- aZ
528+ let aY = x
529+ aY
538530 }
539531 else throw("No art hash matching")
540532 }
541533 let D = {
542- let x = getString(this, aa(bf, T))
534+ let x = getString(this, aa(be, T))
543535 if ($isInstanceOf(x, "String"))
544536 then {
545- let aZ = x
546- aZ
537+ let aY = x
538+ aY
547539 }
548540 else throw("No SIGN ID matching")
549541 }
550- let bh = [DeleteEntry(S(bf, T)), DeleteEntry(U(bf, T)), DeleteEntry(V(bf, T)), DeleteEntry(W(bf, T)), DeleteEntry(Y(bf, T)), DeleteEntry(X(bf, T)), DeleteEntry(ad(bf, T)), DeleteEntry(ae(bf, T)), DeleteEntry(ag(bf, T)), DeleteEntry(af(bf, T)), DeleteEntry(Z(bf, T)), DeleteEntry(aa(bf, T)), DeleteEntry(ab(bf, T)), DeleteEntry(ac(bf, T)), StringEntry("last_invoke_id", aE), DeleteEntry(al(F)), DeleteEntry(am(bf, D)), DeleteEntry(ao(F, bf))]
551- if (!(bb))
542+ let bg = [DeleteEntry(S(be, T)), DeleteEntry(U(be, T)), DeleteEntry(V(be, T)), DeleteEntry(W(be, T)), DeleteEntry(Y(be, T)), DeleteEntry(X(be, T)), DeleteEntry(ad(be, T)), DeleteEntry(ae(be, T)), DeleteEntry(ag(be, T)), DeleteEntry(af(be, T)), DeleteEntry(Z(be, T)), DeleteEntry(aa(be, T)), DeleteEntry(ab(be, T)), DeleteEntry(ac(be, T)), StringEntry("last_invoke_id", aE), DeleteEntry(al(F)), DeleteEntry(am(be, D)), DeleteEntry(ao(F, be))]
543+ if (!(ba))
552544 then if (!(m))
553545 then throw(n)
554- else bh
546+ else bg
555547 else throw("Art already minted, cannot delete")
556548 }
557549
558550
559551
560552 @Callable(A)
561-func sellArtwork (T,aU,bg,aS) = if (!(m))
553+func sellArtwork (T,aT,bf,aR) = if (!(m))
562554 then throw(n)
563555 else {
564556 let aE = toBase58String(A.transactionId)
565557 let L = toBase58String(A.caller.bytes)
566- let bi = lastBlock.timestamp
567- let bj = v(Y(L, T))
568- if ((size(split(bj, "/")[0]) != 59))
558+ let bh = lastBlock.timestamp
559+ let bi = v(Y(L, T))
560+ if ((size(split(bi, "/")[0]) != 59))
569561 then throw("You cannot sell art with no export file")
570562 else {
571- let bk = v(X(L, T))
572- if ((size(bk) != 64))
563+ let bj = v(X(L, T))
564+ if ((size(bj) != 64))
573565 then throw("You cannot sell art with no export hash")
574- else if (if (if ((aS != toBase58String(d)))
575- then (aS != toBase58String(f))
566+ else if (if (if ((aR != toBase58String(d)))
567+ then (aR != toBase58String(f))
576568 else false)
577- then (aS != toBase58String(e))
569+ then (aR != toBase58String(e))
578570 else false)
579571 then throw("Only SIGN, USDN or WAVES accepted")
580572 else {
581- let bl = {
573+ let bk = {
582574 let x = getString(this, U(L, T))
583575 if ($isInstanceOf(x, "String"))
584576 then {
585- let aZ = x
586- aZ
577+ let aY = x
578+ aY
587579 }
588580 else throw("This art doesn't match")
589581 }
590- let aY = {
582+ let aX = {
591583 let x = getString(this, Q(L))
592584 if ($isInstanceOf(x, "String"))
593585 then {
594- let aZ = x
595- aZ
586+ let aY = x
587+ aY
596588 }
597589 else throw("Register this account first")
598590 }
599- let bm = z(ab(L, T))
600- let bn = z(Z(L, T))
601- if (if ((bm != 0))
602- then (bm == bn)
591+ let bl = z(ab(L, T))
592+ let bm = z(Z(L, T))
593+ if (if ((bl != 0))
594+ then (bl == bm)
603595 else false)
604596 then throw("Max edition reached.")
605- else if (if ((bm > 0))
606- then (bn != bg)
597+ else if (if ((bl > 0))
598+ then (bm != bf)
607599 else false)
608600 then throw("Cannot change maximum issuable anymore")
609- else if ((aY == r))
601+ else if ((aX == r))
610602 then throw("Account suspended")
611- else if ((aY == s))
603+ else if ((aX == s))
612604 then throw("Account deleted")
613605 else {
614- let bo = if ((aU > 0))
606+ let bn = if ((aT > 0))
615607 then true
616608 else false
617-[BooleanEntry(ac(L, T), bo), IntegerEntry(ah(L, T), aU), IntegerEntry(Z(L, T), bg), StringEntry(ai(L, T), aS), StringEntry("last_invoke_id", aE)]
609+[BooleanEntry(ac(L, T), bn), IntegerEntry(ah(L, T), aT), IntegerEntry(Z(L, T), bf), StringEntry(ai(L, T), aR), StringEntry("last_invoke_id", aE)]
618610 }
619611 }
620612 }
623615
624616
625617 @Callable(A)
626-func buyArtwork (T,bp) = if (!(m))
618+func buyArtwork (T,bo) = if (!(m))
627619 then throw(n)
628620 else {
629621 let aE = toBase58String(A.transactionId)
630622 let L = toBase58String(A.caller.bytes)
631- let bq = z("total_nft_issued")
632- let D = v(aa(bp, T))
633- let bl = {
634- let x = getString(this, U(bp, T))
623+ let bp = z("total_nft_issued")
624+ let D = v(aa(bo, T))
625+ let bk = {
626+ let x = getString(this, U(bo, T))
635627 if ($isInstanceOf(x, "String"))
636628 then {
637- let aZ = x
638- aZ
629+ let aY = x
630+ aY
639631 }
640632 else throw("Art doesn't exist")
641633 }
642- let br = v(W(bp, T))
643- let bj = v(Y(bp, T))
644- let bk = v(X(bp, T))
645- let bs = v(ae(bp, T))
646- let bt = v(ad(bp, T))
647- let aA = take(v(V(bp, T)), 50)
648- let bm = z(ab(bp, T))
649- let bu = z(ah(bp, T))
650- let bv = B(ac(bp, T))
651- let bw = v(ai(bp, T))
652- let bx = v(aj(bp, T))
653- if ((bu == 0))
634+ let bq = v(W(bo, T))
635+ let bi = v(Y(bo, T))
636+ let bj = v(X(bo, T))
637+ let br = v(ae(bo, T))
638+ let bs = v(ad(bo, T))
639+ let aA = take(v(V(bo, T)), 50)
640+ let bl = z(ab(bo, T))
641+ let bt = z(ah(bo, T))
642+ let bu = B(ac(bo, T))
643+ let bv = v(ai(bo, T))
644+ let bw = v(aj(bo, T))
645+ if ((bt == 0))
654646 then throw("Art not for sell")
655- else if (!(bv))
647+ else if (!(bu))
656648 then throw("Art not for sale")
657649 else {
658- let bn = z(Z(bp, T))
659- let aQ = value(A.payments[0])
660- let aR = value(aQ.amount)
661- let aS = if (if (if (isDefined(aQ.assetId))
662- then (size(fromBase58String(bw)) > 0)
650+ let bm = z(Z(bo, T))
651+ let aP = value(A.payments[0])
652+ let aQ = value(aP.amount)
653+ let aR = if (if (if (isDefined(aP.assetId))
654+ then (size(fromBase58String(bv)) > 0)
663655 else false)
664- then (aQ.assetId == fromBase58String(bw))
656+ then (aP.assetId == fromBase58String(bv))
665657 else false)
666- then aQ.assetId
658+ then aP.assetId
667659 else unit
668- let by = if ((bw == toBase58String(d)))
660+ let bx = if ((bv == toBase58String(d)))
669661 then 8
670662 else 10
671- let bz = ((aR / 100) * by)
672- let bA = (aR - bz)
673- if ((bm == bn))
663+ let by = ((aQ / 100) * bx)
664+ let bz = (aQ - by)
665+ if ((bl == bm))
674666 then throw("Art sold out")
675- else if ((bu != aR))
667+ else if ((bt != aQ))
676668 then throw("Payment don't match")
677669 else {
678- let bB = (bm + 1)
679- let bC = lastBlock.timestamp
680- let bD = (((((((((((((((((((((((((((("{\"version\": 1,
681- \"creator\": \"" + bp) + "\",
670+ let bA = (bl + 1)
671+ let bB = lastBlock.timestamp
672+ let bC = (((((((((((((((((((((((((((("{\"version\": 1,
673+ \"creator\": \"" + bo) + "\",
682674 \"artID\": \"") + T) + "\",
683675 \"signID\": \"") + D) + "\",
684- \"artwork_name\": \"") + bl) + "\",
676+ \"artwork_name\": \"") + bk) + "\",
685677 \"artwork_desc\": \"") + aA) + "\",
686- \"issue\": \"") + toString(bB)) + "/") + toString(bn)) + "\",
687- \"maxIssuable\": \"") + toString(bn)) + "\",
688- \"source_hash\": \"") + bx) + "\",
689- \"display_cid\": \"") + br) + "\",
690- \"export_cid\": \"") + bj) + "\",
691- \"export_hash\": \"") + bk) + "\",
692- \"licence_cid\": \"") + bs) + "\",
693- \"licence_hash\": \"") + bt) + "\"}")
694- let bE = Issue(("SA_" + toString((bq + 1))), bD, 1, 0, false)
695- let bF = calculateAssetId(bE)
696- let bo = if ((bB == bn))
678+ \"issue\": \"") + toString(bA)) + "/") + toString(bm)) + "\",
679+ \"maxIssuable\": \"") + toString(bm)) + "\",
680+ \"source_hash\": \"") + bw) + "\",
681+ \"display_cid\": \"") + bq) + "\",
682+ \"export_cid\": \"") + bi) + "\",
683+ \"export_hash\": \"") + bj) + "\",
684+ \"licence_cid\": \"") + br) + "\",
685+ \"licence_hash\": \"") + bs) + "\"}")
686+ let bD = Issue(("SA_" + toString((bp + 1))), bC, 1, 0, false)
687+ let bE = calculateAssetId(bD)
688+ let bn = if ((bA == bm))
697689 then false
698690 else true
699-[IntegerEntry(ab(bp, T), bB), StringEntry(((((((("art_sold_" + toString(bB)) + "_of_") + toString(bn)) + "_") + T) + "_") + bp), ((((((((L + "_") + toString(bC)) + "_") + aE) + "_") + toString(bu)) + "_") + bw)), IntegerEntry("total_nft_issued", (bq + 1)), BooleanEntry(ac(bp, T), bo), StringEntry("last_invoke_id", aE), bE, ScriptTransfer(Address(fromBase58String(bp)), bA, aS), ScriptTransfer(Address(fromBase58String(c)), bz, aS), ScriptTransfer(A.caller, 1, bF)]
691+[IntegerEntry(ab(bo, T), bA), StringEntry(((((((("art_sold_" + toString(bA)) + "_of_") + toString(bm)) + "_") + T) + "_") + bo), ((((((((L + "_") + toString(bB)) + "_") + aE) + "_") + toString(bt)) + "_") + bv)), IntegerEntry("total_nft_issued", (bp + 1)), BooleanEntry(ac(bo, T), bn), StringEntry("last_invoke_id", aE), bD, ScriptTransfer(Address(fromBase58String(bo)), bz, aR), ScriptTransfer(Address(fromBase58String(c)), by, aR), ScriptTransfer(A.caller, 1, bE)]
700692 }
701693 }
702694 }
704696
705697
706698 @Callable(A)
707-func deleteUser (aI) = {
699+func deleteUser (aH) = {
708700 let L = toString(addressFromPublicKey(A.callerPublicKey))
709701 let aE = toBase58String(A.transactionId)
710702 if (if ((L == j))
711703 then true
712704 else (L == k))
713- then [DeleteEntry(R(aI)), DeleteEntry(K(aI)), DeleteEntry(M(aI)), DeleteEntry(N(aI)), DeleteEntry(O(aI)), DeleteEntry(P(aI)), StringEntry(Q(aI), s), StringEntry("last_invoke_id", aE)]
705+ then [DeleteEntry(R(aH)), DeleteEntry(K(aH)), DeleteEntry(M(aH)), DeleteEntry(N(aH)), DeleteEntry(O(aH)), DeleteEntry(P(aH)), StringEntry(Q(aH), s), StringEntry("last_invoke_id", aE)]
714706 else throw("Not allowed")
715707 }
716708
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
4646 func v (w) = {
4747 let x = getString(this, w)
4848 if ($isInstanceOf(x, "String"))
4949 then {
5050 let y = x
5151 y
5252 }
5353 else ""
5454 }
5555
5656
5757 func z (w) = {
5858 let x = getInteger(this, w)
5959 if ($isInstanceOf(x, "Int"))
6060 then {
6161 let A = x
6262 A
6363 }
6464 else 0
6565 }
6666
6767
6868 func B (w) = {
6969 let x = getBoolean(this, w)
7070 if ($isInstanceOf(x, "Boolean"))
7171 then {
7272 let A = x
7373 A
7474 }
7575 else false
7676 }
7777
7878
7979 func C (D,E,F) = {
8080 let x = getString(b, ((("data_fc_" + D) + "_") + E))
8181 if ($isInstanceOf(x, "String"))
8282 then {
8383 let y = x
8484 if (contains(y, F))
8585 then true
8686 else false
8787 }
8888 else false
8989 }
9090
9191
9292 func G (H) = if (if ((75 > size(H)))
9393 then (60 > size(split(H, "/")[0]))
9494 else false)
9595 then (16 > size(split(H, "/")[1]))
9696 else false
9797
9898
9999 func I (J) = (65 > size(J))
100100
101101
102102 func K (L) = ("user_" + L)
103103
104104
105105 func M (L) = ("user_name_" + L)
106106
107107
108108 func N (L) = ("user_desc_" + L)
109109
110110
111111 func O (L) = ("user_social_" + L)
112112
113113
114114 func P (L) = ("user_thumb_" + L)
115115
116116
117117 func Q (L) = ("user_status_" + L)
118118
119119
120120 func R (L) = ("user_date_" + L)
121121
122122
123123 func S (L,T) = ((("art_date_" + T) + "_") + L)
124124
125125
126126 func U (L,T) = ((("art_name_" + T) + "_") + L)
127127
128128
129129 func V (L,T) = ((("art_desc_" + T) + "_") + L)
130130
131131
132132 func W (L,T) = ((("art_display_cid_" + T) + "_") + L)
133133
134134
135135 func X (L,T) = ((("art_export_hash_" + T) + "_") + L)
136136
137137
138138 func Y (L,T) = ((("art_export_cid_" + T) + "_") + L)
139139
140140
141141 func Z (L,T) = ((("art_maxmint_" + T) + "_") + L)
142142
143143
144144 func aa (L,T) = ((("art_signid_" + T) + "_") + L)
145145
146146
147147 func ab (L,T) = ((("art_issued_" + T) + "_") + L)
148148
149149
150150 func ac (L,T) = ((("art_onsale_" + T) + "_") + L)
151151
152152
153153 func ad (L,T) = ((("art_licence_hash_" + T) + "_") + L)
154154
155155
156156 func ae (L,T) = ((("art_licence_cid_" + T) + "_") + L)
157157
158158
159159 func af (L,T) = ((("art_tags_" + T) + "_") + L)
160160
161161
162162 func ag (L,T) = ((("art_type_" + T) + "_") + L)
163163
164164
165165 func ah (L,T) = ((("art_price_" + T) + "_") + L)
166166
167167
168168 func ai (L,T) = ((("art_assetAccepted_" + T) + "_") + L)
169169
170170
171171 func aj (L,ak) = ((("get_hashbytxidaddr_" + ak) + "_") + L)
172172
173173
174174 func al (F) = ("get_owner_by_hash_" + F)
175175
176176
177177 func am (L,an) = ((("get_artidbysignid_" + an) + "_") + L)
178178
179179
180180 func ao (F,L) = ("get_txid_by_hash_owner_" + toBase58String(sha256_16Kb(toBytes((F + L)))))
181181
182182
183183 func ap (aq,ar,as) = if (if ((aq != ""))
184184 then !(G(aq))
185185 else false)
186186 then throw("Wrong Display CID")
187187 else if (if ((ar != ""))
188188 then !(G(ar))
189189 else false)
190190 then throw("Wrong Export CID")
191191 else if (if ((as != ""))
192192 then !(G(as))
193193 else false)
194194 then throw("Wrong Licence CID")
195195 else true
196196
197197
198198 func at (au,av) = if (if ((au != ""))
199199 then !(I(au))
200200 else false)
201201 then throw("Export Hash 64 char. max")
202202 else if (if ((av != ""))
203203 then !(I(av))
204204 else false)
205205 then throw("Licence Hash 64 char. max")
206206 else true
207207
208208
209209 func aw (ax,ay) = if ((size(ax) == 0))
210210 then throw("Field cannot be is empty")
211211 else if ((size(ax) > ay))
212212 then throw((ax + " is too long"))
213213 else true
214214
215215
216216 @Callable(A)
217217 func registerUser (az,aA,aB,aC) = if (!(m))
218218 then throw(n)
219219 else {
220220 let L = toString(addressFromPublicKey(A.callerPublicKey))
221221 let aD = v(Q(L))
222222 let aE = toBase58String(A.transactionId)
223223 let aF = lastBlock.timestamp
224224 if (if ((aD == r))
225225 then true
226226 else (aD == s))
227227 then throw("Account suspended/ removed.")
228228 else if ((aD == p))
229229 then throw("Already registered")
230230 else if (if ((aD == ""))
231231 then l
232232 else false)
233233 then throw("Can't register, get approved first.")
234234 else if (if ((az == ""))
235235 then true
236236 else (aA == ""))
237237 then throw("Name and description cannot be empty")
238238 else if ((size(aA) > 600))
239239 then throw("600 Char. max description")
240240 else [IntegerEntry(R(L), aF), StringEntry(K(L), ((aE + "_") + toString(lastBlock.timestamp))), StringEntry(M(L), az), StringEntry(N(L), aA), StringEntry(O(L), aC), StringEntry(P(L), aB), StringEntry(Q(L), p), StringEntry("last_invoke_id", aE)]
241241 }
242242
243243
244244
245245 @Callable(A)
246-func deleteEntry (aG) = {
247- let L = toString(addressFromPublicKey(A.callerPublicKey))
248- if ((L == j))
249- then [DeleteEntry(aG)]
250- else throw("no")
251- }
252-
253-
254-
255-@Callable(A)
256246 func updateUser (az,aA,aB,aC) = if (!(m))
257247 then throw(n)
258248 else {
259249 let aE = toBase58String(A.transactionId)
260250 let L = toString(addressFromPublicKey(A.callerPublicKey))
261- let aH = v(Q(L))
262- if (if ((aH == r))
251+ let aG = v(Q(L))
252+ if (if ((aG == r))
263253 then true
264- else (aH == s))
254+ else (aG == s))
265255 then throw("Account suspended/ removed.")
266- else if (if ((aH == ""))
256+ else if (if ((aG == ""))
267257 then true
268- else (aH == o))
258+ else (aG == o))
269259 then throw("Register first")
270260 else if (if ((az == ""))
271261 then true
272262 else (aA == ""))
273263 then throw("Name & description cannot be empty")
274264 else if ((size(aA) > 600))
275265 then throw("600 Char. max for description")
276266 else [StringEntry(M(L), az), StringEntry(N(L), aA), StringEntry(O(L), aC), StringEntry(P(L), aB), StringEntry("last_invoke_id", aE)]
277267 }
278268
279269
280270
281271 @Callable(A)
282-func changeUserStatus (aI,aJ) = if (!(m))
272+func changeUserStatus (aH,aI) = if (!(m))
283273 then throw(n)
284274 else {
285275 let L = toString(addressFromPublicKey(A.callerPublicKey))
286276 let aE = toBase58String(A.transactionId)
287- let aK = v(Q(aI))
288- let aL = if ((aJ == q))
277+ let aJ = v(Q(aH))
278+ let aK = if ((aI == q))
289279 then q
290- else if ((aJ == p))
280+ else if ((aI == p))
291281 then p
292- else if ((aJ == r))
282+ else if ((aI == r))
293283 then r
294- else if ((aJ == s))
284+ else if ((aI == s))
295285 then s
296- else if ((aJ == o))
286+ else if ((aI == o))
297287 then o
298- else if (if ((aJ == u))
299- then (aK == o)
288+ else if (if ((aI == u))
289+ then (aJ == o)
300290 else false)
301291 then ""
302292 else throw("Unknown status")
303- if (if ((aK == o))
304- then (aJ == o)
293+ if (if ((aJ == o))
294+ then (aI == o)
305295 else false)
306296 then throw("User already allowed")
307- else if (if ((aK == p))
308- then (aJ == o)
297+ else if (if ((aJ == p))
298+ then (aI == o)
309299 else false)
310300 then throw("User already allowed & registered")
311- else if (if ((aK == q))
312- then (aJ == o)
301+ else if (if ((aJ == q))
302+ then (aI == o)
313303 else false)
314304 then throw("User already allowed & verified")
315305 else if (if ((L == j))
316306 then true
317307 else (L == k))
318- then [StringEntry(Q(aI), aL), StringEntry("last_invoke_id", aE)]
308+ then [StringEntry(Q(aH), aK), StringEntry("last_invoke_id", aE)]
319309 else throw(((("Not allowed to change user status " + L) + " / ") + j))
320310 }
321311
322312
323313
324314 @Callable(A)
325-func creditUser (aI) = {
315+func creditUser (aH) = {
326316 let L = toString(addressFromPublicKey(A.callerPublicKey))
327317 let aE = toBase58String(A.transactionId)
328318 if (if ((L == j))
329319 then true
330320 else (L == k))
331- then [ScriptTransfer(Address(fromBase58String(aI)), 150000000000, d)]
321+ then [ScriptTransfer(Address(fromBase58String(aH)), 150000000000, d)]
332322 else throw("Not allowed")
333323 }
334324
335325
336326
337-@Callable(aM)
338-func addArtwork (F,D,az,aA,aN,aO,aP,aq,au,ar,av,as) = if (!(m))
327+@Callable(aL)
328+func addArtwork (F,D,az,aA,aM,aN,aO,aq,au,ar,av,as) = if (!(m))
339329 then throw(n)
340330 else {
341- let T = toBase58String(aM.transactionId)
342- let L = toBase58String(aM.caller.bytes)
331+ let T = toBase58String(aL.transactionId)
332+ let L = toBase58String(aL.caller.bytes)
343333 if (!(ap(aq, ar, as)))
344334 then throw("Problem with CID")
345335 else if (!(I(F)))
346336 then throw("Hash should be 64 characters maximum")
347337 else if (!(at(au, av)))
348338 then throw("Problem with Hashes")
349- else if ((size(aM.payments) == 0))
339+ else if ((size(aL.payments) == 0))
350340 then throw("No payment attached")
351341 else {
352- let aQ = value(aM.payments[0])
353- let aR = value(aQ.amount)
354- let aS = if (if (isDefined(aQ.assetId))
355- then (aQ.assetId == d)
342+ let aP = value(aL.payments[0])
343+ let aQ = value(aP.amount)
344+ let aR = if (if (isDefined(aP.assetId))
345+ then (aP.assetId == d)
356346 else false)
357- then aQ.assetId
347+ then aP.assetId
358348 else throw("Only SIGN token accepted at the moment")
359- let aT = {
349+ let aS = {
360350 let x = getInteger(a, ("certification_fee_" + toBase58String(d)))
361351 if ($isInstanceOf(x, "Int"))
362352 then {
363- let aU = x
364- aU
353+ let aT = x
354+ aT
365355 }
366356 else throw("Price undefined in oracle")
367357 }
368- if ((aR != aT))
369- then throw(("Payment amount should be " + toString(aT)))
358+ if ((aQ != aS))
359+ then throw(("Payment amount should be " + toString(aS)))
370360 else {
371- let aV = v(ao(F, L))
372- if ((aV != ""))
361+ let aU = v(ao(F, L))
362+ if ((aU != ""))
373363 then throw("You already added it")
374364 else {
375- let aW = v(al(F))
376- if ((aW != ""))
365+ let aV = v(al(F))
366+ if ((aV != ""))
377367 then throw("Hash already registered")
378368 else {
379- let aX = C(D, L, F)
380- if (!(aX))
369+ let aW = C(D, L, F)
370+ if (!(aW))
381371 then throw("Sign Certificate not found for this address.")
382372 else if ((size(aq) == 0))
383373 then throw("Display CID cannot be empty")
384374 else if (!(aw(az, 100)))
385375 then throw("100 Char. max name")
386376 else if (!(aw(aA, 1000)))
387377 then throw("1000 Char. max description")
388- else if ((size(split(aN, ",")) > 5))
378+ else if ((size(split(aM, ",")) > 5))
389379 then throw("5 tags max.")
390380 else {
391- let aY = {
381+ let aX = {
392382 let x = getString(this, ("user_status_" + L))
393383 if ($isInstanceOf(x, "String"))
394384 then {
395- let aZ = x
396- aZ
385+ let aY = x
386+ aY
397387 }
398388 else t
399389 }
400390 let aF = lastBlock.timestamp
401- if (if (isDefined(aY))
402- then (aY == t)
391+ if (if (isDefined(aX))
392+ then (aX == t)
403393 else false)
404394 then throw("Register this account first with \"User infos\" tab")
405- else if ((aY == r))
395+ else if ((aX == r))
406396 then throw("Account suspended")
407- else if ((aY == s))
397+ else if ((aX == s))
408398 then throw("Account removed")
409- else if ((aP > 10))
399+ else if ((aO > 10))
410400 then throw("10 editions max")
411401 else if ((size(F) != 64))
412402 then throw("Hash 64 char. max")
413- else [StringEntry(al(F), L), StringEntry(ao(F, L), T), IntegerEntry(S(L, T), aF), StringEntry(U(L, T), az), StringEntry(V(L, T), aA), StringEntry(W(L, T), aq), StringEntry(Y(L, T), ar), StringEntry(X(L, T), au), StringEntry(ad(L, T), av), StringEntry(ae(L, T), as), StringEntry(ag(L, T), aO), StringEntry(af(L, T), aN), IntegerEntry(Z(L, T), aP), StringEntry(aa(L, T), D), IntegerEntry(ab(L, T), 0), BooleanEntry(ac(L, T), false), StringEntry(am(L, D), T), StringEntry("last_invoke_id", T), StringEntry(aj(L, T), F), ScriptTransfer(Address(fromBase58String(c)), aR, aS)]
403+ else [StringEntry(al(F), L), StringEntry(ao(F, L), T), IntegerEntry(S(L, T), aF), StringEntry(U(L, T), az), StringEntry(V(L, T), aA), StringEntry(W(L, T), aq), StringEntry(Y(L, T), ar), StringEntry(X(L, T), au), StringEntry(ad(L, T), av), StringEntry(ae(L, T), as), StringEntry(ag(L, T), aN), StringEntry(af(L, T), aM), IntegerEntry(Z(L, T), aO), StringEntry(aa(L, T), D), IntegerEntry(ab(L, T), 0), BooleanEntry(ac(L, T), false), StringEntry(am(L, D), T), StringEntry("last_invoke_id", T), StringEntry(aj(L, T), F), ScriptTransfer(Address(fromBase58String(c)), aQ, aR)]
414404 }
415405 }
416406 }
417407 }
418408 }
419409 }
420410
421411
422412
423-@Callable(aM)
424-func updateArtwork (ak,az,aA,aN,aO,aP,aq,au,ar,av,as) = if (!(m))
413+@Callable(aL)
414+func updateArtwork (ak,az,aA,aM,aN,aO,aq,au,ar,av,as) = if (!(m))
425415 then throw(n)
426416 else {
427- let ba = toBase58String(aM.transactionId)
428- let L = toBase58String(aM.caller.bytes)
417+ let aZ = toBase58String(aL.transactionId)
418+ let L = toBase58String(aL.caller.bytes)
429419 if (!(ap(aq, ar, as)))
430420 then throw("Problem with CID")
431421 else if (!(at(au, av)))
432422 then throw("Problem with Hashes")
433423 else {
434- let aV = v(U(L, ak))
435- if ((aV == ""))
424+ let aU = v(U(L, ak))
425+ if ((aU == ""))
436426 then throw("Entry not found")
437427 else if (!(aw(az, 100)))
438428 then throw("100 Char. max name")
439429 else if (!(aw(aA, 1000)))
440430 then throw("1000 Char. max description")
441431 else {
442- let bb = {
432+ let ba = {
443433 let x = getInteger(this, ab(L, ak))
444434 if ($isInstanceOf(x, "Int"))
445435 then {
446- let bc = x
447- if ((bc == 0))
436+ let bb = x
437+ if ((bb == 0))
448438 then false
449439 else true
450440 }
451441 else false
452442 }
453- if ((size(split(aN, ",")) > 5))
443+ if ((size(split(aM, ",")) > 5))
454444 then throw("5 tags max.")
455445 else {
456- let aY = {
446+ let aX = {
457447 let x = getString(this, ("user_status_" + L))
458448 if ($isInstanceOf(x, "String"))
459449 then {
460- let aZ = x
461- aZ
450+ let aY = x
451+ aY
462452 }
463453 else t
464454 }
465- if (if (isDefined(aY))
466- then (aY == t)
455+ if (if (isDefined(aX))
456+ then (aX == t)
467457 else false)
468458 then throw("Register first with \"User infos\"")
469- else if ((aY == r))
459+ else if ((aX == r))
470460 then throw("Account suspended")
471- else if ((aY == s))
461+ else if ((aX == s))
472462 then throw("Account removed")
473- else if ((aP > 10))
463+ else if ((aO > 10))
474464 then throw("10 editions max per artwork")
475- else if (!(bb))
476- then [StringEntry(U(L, ak), az), StringEntry(V(L, ak), aA), StringEntry(W(L, ak), aq), StringEntry(Y(L, ak), ar), StringEntry(X(L, ak), au), StringEntry(ae(L, ak), as), StringEntry(ad(L, ak), av), IntegerEntry(Z(L, ak), aP), StringEntry(af(L, ak), aN), StringEntry(ag(L, ak), aO), StringEntry("last_invoke_id", ba)]
465+ else if (!(ba))
466+ then [StringEntry(U(L, ak), az), StringEntry(V(L, ak), aA), StringEntry(W(L, ak), aq), StringEntry(Y(L, ak), ar), StringEntry(X(L, ak), au), StringEntry(ae(L, ak), as), StringEntry(ad(L, ak), av), IntegerEntry(Z(L, ak), aO), StringEntry(af(L, ak), aM), StringEntry(ag(L, ak), aN), StringEntry("last_invoke_id", aZ)]
477467 else throw("Already minted")
478468 }
479469 }
480470 }
481471 }
482472
483473
484474
485475 @Callable(A)
486-func flagArtwork (T,bd,be) = {
476+func flagArtwork (T,bc,bd) = {
487477 let L = toString(addressFromPublicKey(A.callerPublicKey))
488478 let aE = toBase58String(A.transactionId)
489479 if (if ((L == j))
490480 then true
491481 else (L == k))
492- then if ((be == "CONSENT"))
493- then [StringEntry(((("art_flag_" + T) + "_") + bd), be), StringEntry("last_invoke_id", aE)]
494- else if ((be == "ILLEGAL"))
495- then [StringEntry(((("art_flag_" + T) + "_") + bd), be), StringEntry(U(bd, T), "ILLEGAL CONTENT"), StringEntry(V(bd, T), "ILLEGAL CONTENT"), StringEntry(W(bd, T), ""), StringEntry(Y(bd, T), ""), StringEntry(ae(bd, T), ""), StringEntry("last_invoke_id", aE)]
496- else throw(("Unknow status" + be))
482+ then if ((bd == "CONSENT"))
483+ then [StringEntry(((("art_flag_" + T) + "_") + bc), bd), StringEntry("last_invoke_id", aE)]
484+ else if ((bd == ""))
485+ then [StringEntry(((("art_flag_" + T) + "_") + bc), bd), StringEntry("last_invoke_id", aE)]
486+ else if ((bd == "ILLEGAL"))
487+ then [StringEntry(((("art_flag_" + T) + "_") + bc), bd), StringEntry(U(bc, T), "ILLEGAL CONTENT"), StringEntry(V(bc, T), "ILLEGAL CONTENT"), StringEntry(W(bc, T), ""), StringEntry(Y(bc, T), ""), StringEntry(ae(bc, T), ""), StringEntry("last_invoke_id", aE)]
488+ else throw(("Unknow status" + bd))
497489 else throw("no")
498490 }
499491
500492
501493
502494 @Callable(A)
503-func deleteArtwork (T,bd) = {
495+func deleteArtwork (T,bc) = {
504496 let L = toString(addressFromPublicKey(A.callerPublicKey))
505497 let aE = toBase58String(A.transactionId)
506- let bf = if (if ((L == j))
498+ let be = if (if ((L == j))
507499 then true
508500 else (L == k))
509- then bd
501+ then bc
510502 else L
511- let aV = {
512- let x = getString(this, U(bf, T))
503+ let aU = {
504+ let x = getString(this, U(be, T))
513505 if ($isInstanceOf(x, "String"))
514506 then {
515- let aZ = x
516- aZ
507+ let aY = x
508+ aY
517509 }
518510 else throw("No art matching")
519511 }
520- let bb = {
521- let x = getInteger(this, ab(bf, T))
512+ let ba = {
513+ let x = getInteger(this, ab(be, T))
522514 if ($isInstanceOf(x, "Int"))
523515 then {
524- let bc = x
525- if ((bc != 0))
516+ let bb = x
517+ if ((bb != 0))
526518 then true
527519 else false
528520 }
529521 else false
530522 }
531- let bg = z(Z(bf, T))
523+ let bf = z(Z(be, T))
532524 let F = {
533- let x = getString(this, aj(bf, T))
525+ let x = getString(this, aj(be, T))
534526 if ($isInstanceOf(x, "String"))
535527 then {
536- let aZ = x
537- aZ
528+ let aY = x
529+ aY
538530 }
539531 else throw("No art hash matching")
540532 }
541533 let D = {
542- let x = getString(this, aa(bf, T))
534+ let x = getString(this, aa(be, T))
543535 if ($isInstanceOf(x, "String"))
544536 then {
545- let aZ = x
546- aZ
537+ let aY = x
538+ aY
547539 }
548540 else throw("No SIGN ID matching")
549541 }
550- let bh = [DeleteEntry(S(bf, T)), DeleteEntry(U(bf, T)), DeleteEntry(V(bf, T)), DeleteEntry(W(bf, T)), DeleteEntry(Y(bf, T)), DeleteEntry(X(bf, T)), DeleteEntry(ad(bf, T)), DeleteEntry(ae(bf, T)), DeleteEntry(ag(bf, T)), DeleteEntry(af(bf, T)), DeleteEntry(Z(bf, T)), DeleteEntry(aa(bf, T)), DeleteEntry(ab(bf, T)), DeleteEntry(ac(bf, T)), StringEntry("last_invoke_id", aE), DeleteEntry(al(F)), DeleteEntry(am(bf, D)), DeleteEntry(ao(F, bf))]
551- if (!(bb))
542+ let bg = [DeleteEntry(S(be, T)), DeleteEntry(U(be, T)), DeleteEntry(V(be, T)), DeleteEntry(W(be, T)), DeleteEntry(Y(be, T)), DeleteEntry(X(be, T)), DeleteEntry(ad(be, T)), DeleteEntry(ae(be, T)), DeleteEntry(ag(be, T)), DeleteEntry(af(be, T)), DeleteEntry(Z(be, T)), DeleteEntry(aa(be, T)), DeleteEntry(ab(be, T)), DeleteEntry(ac(be, T)), StringEntry("last_invoke_id", aE), DeleteEntry(al(F)), DeleteEntry(am(be, D)), DeleteEntry(ao(F, be))]
543+ if (!(ba))
552544 then if (!(m))
553545 then throw(n)
554- else bh
546+ else bg
555547 else throw("Art already minted, cannot delete")
556548 }
557549
558550
559551
560552 @Callable(A)
561-func sellArtwork (T,aU,bg,aS) = if (!(m))
553+func sellArtwork (T,aT,bf,aR) = if (!(m))
562554 then throw(n)
563555 else {
564556 let aE = toBase58String(A.transactionId)
565557 let L = toBase58String(A.caller.bytes)
566- let bi = lastBlock.timestamp
567- let bj = v(Y(L, T))
568- if ((size(split(bj, "/")[0]) != 59))
558+ let bh = lastBlock.timestamp
559+ let bi = v(Y(L, T))
560+ if ((size(split(bi, "/")[0]) != 59))
569561 then throw("You cannot sell art with no export file")
570562 else {
571- let bk = v(X(L, T))
572- if ((size(bk) != 64))
563+ let bj = v(X(L, T))
564+ if ((size(bj) != 64))
573565 then throw("You cannot sell art with no export hash")
574- else if (if (if ((aS != toBase58String(d)))
575- then (aS != toBase58String(f))
566+ else if (if (if ((aR != toBase58String(d)))
567+ then (aR != toBase58String(f))
576568 else false)
577- then (aS != toBase58String(e))
569+ then (aR != toBase58String(e))
578570 else false)
579571 then throw("Only SIGN, USDN or WAVES accepted")
580572 else {
581- let bl = {
573+ let bk = {
582574 let x = getString(this, U(L, T))
583575 if ($isInstanceOf(x, "String"))
584576 then {
585- let aZ = x
586- aZ
577+ let aY = x
578+ aY
587579 }
588580 else throw("This art doesn't match")
589581 }
590- let aY = {
582+ let aX = {
591583 let x = getString(this, Q(L))
592584 if ($isInstanceOf(x, "String"))
593585 then {
594- let aZ = x
595- aZ
586+ let aY = x
587+ aY
596588 }
597589 else throw("Register this account first")
598590 }
599- let bm = z(ab(L, T))
600- let bn = z(Z(L, T))
601- if (if ((bm != 0))
602- then (bm == bn)
591+ let bl = z(ab(L, T))
592+ let bm = z(Z(L, T))
593+ if (if ((bl != 0))
594+ then (bl == bm)
603595 else false)
604596 then throw("Max edition reached.")
605- else if (if ((bm > 0))
606- then (bn != bg)
597+ else if (if ((bl > 0))
598+ then (bm != bf)
607599 else false)
608600 then throw("Cannot change maximum issuable anymore")
609- else if ((aY == r))
601+ else if ((aX == r))
610602 then throw("Account suspended")
611- else if ((aY == s))
603+ else if ((aX == s))
612604 then throw("Account deleted")
613605 else {
614- let bo = if ((aU > 0))
606+ let bn = if ((aT > 0))
615607 then true
616608 else false
617-[BooleanEntry(ac(L, T), bo), IntegerEntry(ah(L, T), aU), IntegerEntry(Z(L, T), bg), StringEntry(ai(L, T), aS), StringEntry("last_invoke_id", aE)]
609+[BooleanEntry(ac(L, T), bn), IntegerEntry(ah(L, T), aT), IntegerEntry(Z(L, T), bf), StringEntry(ai(L, T), aR), StringEntry("last_invoke_id", aE)]
618610 }
619611 }
620612 }
621613 }
622614
623615
624616
625617 @Callable(A)
626-func buyArtwork (T,bp) = if (!(m))
618+func buyArtwork (T,bo) = if (!(m))
627619 then throw(n)
628620 else {
629621 let aE = toBase58String(A.transactionId)
630622 let L = toBase58String(A.caller.bytes)
631- let bq = z("total_nft_issued")
632- let D = v(aa(bp, T))
633- let bl = {
634- let x = getString(this, U(bp, T))
623+ let bp = z("total_nft_issued")
624+ let D = v(aa(bo, T))
625+ let bk = {
626+ let x = getString(this, U(bo, T))
635627 if ($isInstanceOf(x, "String"))
636628 then {
637- let aZ = x
638- aZ
629+ let aY = x
630+ aY
639631 }
640632 else throw("Art doesn't exist")
641633 }
642- let br = v(W(bp, T))
643- let bj = v(Y(bp, T))
644- let bk = v(X(bp, T))
645- let bs = v(ae(bp, T))
646- let bt = v(ad(bp, T))
647- let aA = take(v(V(bp, T)), 50)
648- let bm = z(ab(bp, T))
649- let bu = z(ah(bp, T))
650- let bv = B(ac(bp, T))
651- let bw = v(ai(bp, T))
652- let bx = v(aj(bp, T))
653- if ((bu == 0))
634+ let bq = v(W(bo, T))
635+ let bi = v(Y(bo, T))
636+ let bj = v(X(bo, T))
637+ let br = v(ae(bo, T))
638+ let bs = v(ad(bo, T))
639+ let aA = take(v(V(bo, T)), 50)
640+ let bl = z(ab(bo, T))
641+ let bt = z(ah(bo, T))
642+ let bu = B(ac(bo, T))
643+ let bv = v(ai(bo, T))
644+ let bw = v(aj(bo, T))
645+ if ((bt == 0))
654646 then throw("Art not for sell")
655- else if (!(bv))
647+ else if (!(bu))
656648 then throw("Art not for sale")
657649 else {
658- let bn = z(Z(bp, T))
659- let aQ = value(A.payments[0])
660- let aR = value(aQ.amount)
661- let aS = if (if (if (isDefined(aQ.assetId))
662- then (size(fromBase58String(bw)) > 0)
650+ let bm = z(Z(bo, T))
651+ let aP = value(A.payments[0])
652+ let aQ = value(aP.amount)
653+ let aR = if (if (if (isDefined(aP.assetId))
654+ then (size(fromBase58String(bv)) > 0)
663655 else false)
664- then (aQ.assetId == fromBase58String(bw))
656+ then (aP.assetId == fromBase58String(bv))
665657 else false)
666- then aQ.assetId
658+ then aP.assetId
667659 else unit
668- let by = if ((bw == toBase58String(d)))
660+ let bx = if ((bv == toBase58String(d)))
669661 then 8
670662 else 10
671- let bz = ((aR / 100) * by)
672- let bA = (aR - bz)
673- if ((bm == bn))
663+ let by = ((aQ / 100) * bx)
664+ let bz = (aQ - by)
665+ if ((bl == bm))
674666 then throw("Art sold out")
675- else if ((bu != aR))
667+ else if ((bt != aQ))
676668 then throw("Payment don't match")
677669 else {
678- let bB = (bm + 1)
679- let bC = lastBlock.timestamp
680- let bD = (((((((((((((((((((((((((((("{\"version\": 1,
681- \"creator\": \"" + bp) + "\",
670+ let bA = (bl + 1)
671+ let bB = lastBlock.timestamp
672+ let bC = (((((((((((((((((((((((((((("{\"version\": 1,
673+ \"creator\": \"" + bo) + "\",
682674 \"artID\": \"") + T) + "\",
683675 \"signID\": \"") + D) + "\",
684- \"artwork_name\": \"") + bl) + "\",
676+ \"artwork_name\": \"") + bk) + "\",
685677 \"artwork_desc\": \"") + aA) + "\",
686- \"issue\": \"") + toString(bB)) + "/") + toString(bn)) + "\",
687- \"maxIssuable\": \"") + toString(bn)) + "\",
688- \"source_hash\": \"") + bx) + "\",
689- \"display_cid\": \"") + br) + "\",
690- \"export_cid\": \"") + bj) + "\",
691- \"export_hash\": \"") + bk) + "\",
692- \"licence_cid\": \"") + bs) + "\",
693- \"licence_hash\": \"") + bt) + "\"}")
694- let bE = Issue(("SA_" + toString((bq + 1))), bD, 1, 0, false)
695- let bF = calculateAssetId(bE)
696- let bo = if ((bB == bn))
678+ \"issue\": \"") + toString(bA)) + "/") + toString(bm)) + "\",
679+ \"maxIssuable\": \"") + toString(bm)) + "\",
680+ \"source_hash\": \"") + bw) + "\",
681+ \"display_cid\": \"") + bq) + "\",
682+ \"export_cid\": \"") + bi) + "\",
683+ \"export_hash\": \"") + bj) + "\",
684+ \"licence_cid\": \"") + br) + "\",
685+ \"licence_hash\": \"") + bs) + "\"}")
686+ let bD = Issue(("SA_" + toString((bp + 1))), bC, 1, 0, false)
687+ let bE = calculateAssetId(bD)
688+ let bn = if ((bA == bm))
697689 then false
698690 else true
699-[IntegerEntry(ab(bp, T), bB), StringEntry(((((((("art_sold_" + toString(bB)) + "_of_") + toString(bn)) + "_") + T) + "_") + bp), ((((((((L + "_") + toString(bC)) + "_") + aE) + "_") + toString(bu)) + "_") + bw)), IntegerEntry("total_nft_issued", (bq + 1)), BooleanEntry(ac(bp, T), bo), StringEntry("last_invoke_id", aE), bE, ScriptTransfer(Address(fromBase58String(bp)), bA, aS), ScriptTransfer(Address(fromBase58String(c)), bz, aS), ScriptTransfer(A.caller, 1, bF)]
691+[IntegerEntry(ab(bo, T), bA), StringEntry(((((((("art_sold_" + toString(bA)) + "_of_") + toString(bm)) + "_") + T) + "_") + bo), ((((((((L + "_") + toString(bB)) + "_") + aE) + "_") + toString(bt)) + "_") + bv)), IntegerEntry("total_nft_issued", (bp + 1)), BooleanEntry(ac(bo, T), bn), StringEntry("last_invoke_id", aE), bD, ScriptTransfer(Address(fromBase58String(bo)), bz, aR), ScriptTransfer(Address(fromBase58String(c)), by, aR), ScriptTransfer(A.caller, 1, bE)]
700692 }
701693 }
702694 }
703695
704696
705697
706698 @Callable(A)
707-func deleteUser (aI) = {
699+func deleteUser (aH) = {
708700 let L = toString(addressFromPublicKey(A.callerPublicKey))
709701 let aE = toBase58String(A.transactionId)
710702 if (if ((L == j))
711703 then true
712704 else (L == k))
713- then [DeleteEntry(R(aI)), DeleteEntry(K(aI)), DeleteEntry(M(aI)), DeleteEntry(N(aI)), DeleteEntry(O(aI)), DeleteEntry(P(aI)), StringEntry(Q(aI), s), StringEntry("last_invoke_id", aE)]
705+ then [DeleteEntry(R(aH)), DeleteEntry(K(aH)), DeleteEntry(M(aH)), DeleteEntry(N(aH)), DeleteEntry(O(aH)), DeleteEntry(P(aH)), StringEntry(Q(aH), s), StringEntry("last_invoke_id", aE)]
714706 else throw("Not allowed")
715707 }
716708
717709

github/deemru/w8io/3ef1775 
271.50 ms