tx · E7mDjCiY3CviAeEkHBRwnPdjjFX64PLDE4Uh3qzX8gW5

3NBquYd5fTq8HRDkagrtNLQ3HmWd7wcZoeL:  -0.01400000 Waves

2021.01.06 10:26 [1341233] smart account 3NBquYd5fTq8HRDkagrtNLQ3HmWd7wcZoeL > SELF 0.00000000 Waves

{ "type": 13, "id": "E7mDjCiY3CviAeEkHBRwnPdjjFX64PLDE4Uh3qzX8gW5", "fee": 1400000, "feeAssetId": null, "timestamp": 1609918052631, "version": 2, "chainId": 84, "sender": "3NBquYd5fTq8HRDkagrtNLQ3HmWd7wcZoeL", "senderPublicKey": "7irc2VpK5czoyVdwrCuQqr2JU9ZaZnEZn8RPChnfi3yL", "proofs": [ "5jDsjSbU13wd51h8gD3EPFZ3xmMqxWiboBptFBfzcso9mBpciwSqBviPRPfKT5tzC9RfhwhyxF3NNcMSyHfN7Z9u" ], "script": "base64:AAIEAAAAAAAAADwIAhIOCgwICAgICAgBCAgICAgSDQoLCAgICAgBCAgICAgSBQoDCAgIEgQKAggIEgYKBAgBAQgSBAoCCAgAAAA/AAAAAAh1bml0VGVzdAcAAAAACW9yYWNsZUZlZQkBAAAABXZhbHVlAAAAAQkABCYAAAABAgAAACMzTjJzNVJ0YUhQQmVuQ3N4MkVDY29GUmJZSHgzbm9aaFhXMQAAAAAIc2lnbkRhcHAJAQAAAAV2YWx1ZQAAAAEJAAQmAAAAAQIAAAAjM05DMjhoU2l2cm1zVFVYYVlEMXg2TDM2Mko0WnBVbm9UZEIAAAAAC2ZlZVJlY2VpdmVyAgAAACMzTjFFNnRYZGRSb1ZhUmZROWRRM3ZnNUxhVzJmc2Q4SEt1YgAAAAAIdXNlckRhcHADBQAAAAh1bml0VGVzdAkBAAAABXZhbHVlAAAAAQkABCYAAAABAgAAACMzTXQ0UkdNRXlqU1dZQW9jVFBxZDU1d2RIUVFCM1BVMlVDbQkBAAAABXZhbHVlAAAAAQkABCYAAAABAgAAACMzTXdEWmFnb1lFaU5mUUxjMzFjR3BZb2FFNTRNR013b0ZyWgAAAAANd2hpdGVsaXN0RGFwcAkBAAAABXZhbHVlAAAAAQkABCYAAAABAgAAACMzTjZCYVYxZENCNHpnNDNnb05OSGFDdHZSMTNCY3lKNUdzcQAAAAALc2lnbkFzc2V0SWQBAAAAIOilarzKd0LycGEyNUpPRYO5uR7lmWcXw3Hq2QuhBK3rAAAAAAt1c2RuQXNzZXRJZAEAAAAgD/IcEqzkxDya7EYaqyWosOy6BytGzG2IcvC14pJJAbQAAAAADHdhdmVzQXNzZXRJZAEAAAAAAAAAAAVjaHJpcwIAAAAjM01zRzZqUE5DclZKVXRZQjdYSkJ4Uzd1dFdzWEFmNG45VnAAAAAABGpvZXACAAAAIzNNem00Vkx3c045dVp3YlRNelBqM1h1eFY2a0VmQVI4VUROAAAAAAdzaWduQ3V0AAAAAAAAAAAHAAAAAAt1c2RuV2F2ZUN1dAAAAAAAAAAACgAAAAAOZGVmYXVsdExpY2VuY2UCAAAAR2JhZnliZWlnaXNmcXR5bzJxZGZzY2VoNWZwY3A3ZWV5bXJwZWdscDZlZGFvMmJteWhpamJheXZhdXN5L2xpY2VuY2UucGRmAAAAABJkZWZhdWx0SGFzaExpY2VuY2UCAAAAQDNkZjc5ZDM0YWJiY2E5OTMwOGU3OWNiOTQ0NjFjMTg5MzU4MjYwNGQ2ODMyOWE0MWZkNGJlYzE4ODVlNmFkYjQAAAAAC2RhcHBSdW5uaW5nCQEAAAALdmFsdWVPckVsc2UAAAACCQAEGwAAAAIFAAAACHVzZXJEYXBwAgAAABRjb25mX2RhcHBfaXNfcnVubmluZwYAAAAADm1haW50ZW5hbmNlTVNHCQEAAAALdmFsdWVPckVsc2UAAAACCQAEHQAAAAIFAAAACHVzZXJEYXBwAgAAABRjb25mX21haW50ZW5hbmNlX21zZwIAAAAAAAAAAA11c2VyU3VzcGVuZGVkAgAAAAlTVVNQRU5ERUQAAAAAC3VzZXJSZW1vdmVkAgAAAAdSRU1PVkVEAAAAABB1c2VyVW5yZWdpc3RlcmVkAgAAAAxVTlJFR0lTVEVSRUQAAAAAC3VzZXJBbGxvd2VkAgAAAAdBTExPV0VEAQAAABdnZXRTdHJpbmdCeUtleUZyb21Vc2VycwAAAAEAAAADa2V5CQEAAAALdmFsdWVPckVsc2UAAAACCQAEHQAAAAIFAAAACHVzZXJEYXBwBQAAAANrZXkCAAAAAAEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABAAAAA2tleQkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABB0AAAACBQAAAAR0aGlzBQAAAANrZXkCAAAAAAEAAAAZZ2V0SW50ZWdlckJ5S2V5RnJvbU9yYWNsZQAAAAEAAAADa2V5CQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgUAAAAJb3JhY2xlRmVlBQAAAANrZXkCAAAAH0ludGVnZXIgdW5kZWZpbmUgb3IgMCBpbiBvcmFjbGUBAAAAD2dldEludGVnZXJCeUtleQAAAAEAAAADa2V5CQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMFAAAAA2tleQAAAAAAAAAAAAEAAAAOY2hlY2tXaGl0ZWxpc3QAAAABAAAAA2tleQkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAA13aGl0ZWxpc3REYXBwBQAAAANrZXkAAAAAAAAAAAABAAAAD2dldEJvb2xlYW5C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dCBhdHRhY2hlZAQAAAAHcGF5bWVudAkBAAAABXZhbHVlAAAAAQkAAZEAAAACCAUAAAAGaW52b2tlAAAACHBheW1lbnRzAAAAAAAAAAAABAAAAAZhbW91bnQJAQAAAAV2YWx1ZQAAAAEIBQAAAAdwYXltZW50AAAABmFtb3VudAQAAAAHYXNzZXRJZAMDCQEAAAAJaXNEZWZpbmVkAAAAAQgFAAAAB3BheW1lbnQAAAAHYXNzZXRJZAkAAAAAAAACCAUAAAAHcGF5bWVudAAAAAdhc3NldElkBQAAAAtzaWduQXNzZXRJZAcIBQAAAAdwYXltZW50AAAAB2Fzc2V0SWQJAAACAAAAAQIAAAArT25seSBTSUdOIHRva2VuIGFjY2VwdGVkIGFzIHRyYW5zYWN0aW9uIGZlZQQAAAAZY3VycmVudENlcnRpZmljYXRpb25QcmljZQkBAAAAGWdldEludGVnZXJCeUtleUZyb21PcmFjbGUAAAABCQABLAAAAAICAAAAEmNlcnRpZmljYXRpb25fZmVlXwkAAlgAAAABBQAAAAtzaWduQXNzZXRJZAMJAQAAAAIhPQAAAAIFAAAABmFtb3VudAUAAAAZY3VycmVudENlcnRpZmljYXRpb25QcmljZQkAAAIAAAABCQABLAAAAAICAAAAGVBheW1lbnQgYW1vdW50IHNob3VsZCBiZSAJAAGkAAAAAQUAAAAZY3VycmVudENlcnRpZmljYXRpb25QcmljZQkABRQAAAACBQAAAAZhbW91bnQFAAAAB2Fzc2V0SWQBAAAAC2lzQXJ0TWludGVkAAAAAgAAAAxhZGRyZXNzVG9Vc2UAAAAFYXJ0SWQEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkBAAAADGtleUFydElzc3VlZAAAAAIFAAAADGFkZHJlc3NUb1VzZQUAAAAFYXJ0SWQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYgUAAAAHJG1hdGNoMAMJAQAAAAIhPQAAAAIFAAAAAWIAAAAAAAAAAAAGBwcBAAAAFHZhbGlkYXRlUHJpY2VBc3NldElkAAAAAwAAAAZpbnZva2UAAAAMcHJpY2VBc3NldElkAAAADGFydHdvcmtQcmljZQQAAAAHcGF5bWVudAkBAAAABXZhbHVlAAAAAQkAAZEAAAACCAUAAAAGaW52b2tlAAAACHBheW1lbnRzAAAAAAAAAAAABAAAAAZhbW91bnQJAQAAAAV2YWx1ZQAAAAEIBQAAAAdwYXltZW50AAAABmFtb3VudAQAAAAHYXNzZXRJZAMJAQAAAAEhAAAAAQkBAAAACWlzRGVmaW5lZAAAAAEIBQAAAAdwYXltZW50AAAAB2Fzc2V0SWQFAAAABHVuaXQDAwkAAGYAAAACCQABMQAAAAEFAAAADHByaWNlQXNzZXRJZAAAAAAAAAAAAAkAAAAAAAACCQACWAAAAAEJAQAAAAV2YWx1ZQAAAAEIBQAAAAdwYXltZW50AAAAB2Fzc2V0SWQFAAAADHByaWNlQXNzZXRJZAcIBQAAAAdwYXltZW50AAAAB2Fzc2V0SWQJAAACAAAAAQIAAAAOV3JvbmcgYXNzZXQgaWQDAwkAAAAAAAACBQAAAAdhc3NldElkBQAAAAR1bml0CQEAAAACIT0AAAACBQAAAAxwcmljZUFzc2V0SWQCAAAAAAcJAAACAAAAAQIAAAAOV3JvbmcgYXNzZXQgaWQDCQEAAAACIT0AAAACBQAAAAxhcnR3b3JrUHJpY2UFAAAABmFtb3VudAkAAAIAAAABAgAAABNQYXltZW50IGRvbid0IG1hdGNoCQAFFAAAAAIFAAAABmFtb3VudAUAAAAHYXNzZXRJZAEAAAAQYWNjZXB0ZWRBc3NldElkcwAAAAEAAAAHYXNzZXRJZAMDAwkBAAAAAiE9AAAAAgUAAAAHYXNzZXRJZAkAAlgAAAABBQAAAAtzaWduQXNzZXRJZAkBAAAAAiE9AAAAAgUAAAAHYXNzZXRJZAkAAlgAAAABBQAAAAx3YXZlc0Fzc2V0SWQHCQEAAAACIT0AAAACBQAAAAdhc3NldElkCQACWAAAAAEFAAAAC3VzZG5Bc3NldElkBwkAAAIAAAABAgAAACFPbmx5IFNJR04sIFVTRE4gb3IgV0FWRVMgYWNjZXB0ZWQGAQAAAA92YWxpZGF0ZU1pblNlbGwAAAACAAAAB2Fzc2V0SWQAAAAFcHJpY2UEAAAADG1pblNlbGxXYXZlcwMFAAAACHVuaXRUZXN0AAAAAAAAAAABCQEAAAAZZ2V0SW50ZWdlckJ5S2V5RnJvbU9yYWNsZQAAAAECAAAADndhdmVzX21pbl9zZWxsBAAAAAttaW5TZWxsVXNkbgAAAAAAAA9CQAQAAAALbWluU2VsbFNpZ24DBQAAAAh1bml0VGVzdAAAAAAAAAAAAQkAAGgAAAACCQEAAAAZZ2V0SW50ZWdlckJ5S2V5RnJvbU9yYWNsZQAAAAEJAAEsAAAAAgIAAAASY2VydGlmaWNhdGlvbl9mZWVfCQACWAAAAAEFAAAAC3NpZ25Bc3NldElkAAAAAAAAAAACAwMDAwMJAAAAAAAAAgUAAAAHYXNzZXRJZAkAAlgAAAABBQAAAAt1c2RuQXNzZXRJZAkAAGYAAAACBQAAAAttaW5TZWxsVXNkbgUAAAAFcHJpY2UHCQEAAAACIT0AAAACBQAAAAVwcmljZQAAAAAAAAAAAAcGAwMJAAAAAAAAAgUAAAAHYXNzZXRJZAkAAlgAAAABBQAAAAtzaWduQXNzZXRJZAkAAGYAAAACBQAAAAttaW5TZWxsU2lnbgUAAAAFcHJpY2UHCQEAAAACIT0AAAACBQAAAAVwcmljZQAAAAAAAAAAAAcGAwMJAAAAAAAAAgUAAAAHYXNzZXRJZAkAAlgAAAABBQAAAAx3YXZlc0Fzc2V0SWQJAABmAAAAAgUAAAAMbWluU2VsbFdhdmVzBQAAAAVwcmljZQcJAQAAAAIhPQAAAAIFAAAABXByaWNlAAAAAAAAAAAABwkAAAIAAAABAgAAABhXcm9uZyBtaW5pbXVtIHNlbGwgcHJpY2UGAAAABgAAAAZpbnZva2UBAAAACmFkZEFydHdvcmsAAAAMAAAACnNoYTI1Nkhhc2gAAAAGc2lnbklEAAAABG5hbWUAAAALZGVzY3JpcHRpb24AAAAEdGFncwAAAAR0eXBlAAAAB21heG1pbnQAAAAKY2lkRGlzcGxheQAAAAxzaGEyNTZFeHBvcnQAAAAJY2lkRXhwb3J0AAAADXNoYTI1NkxpY2VuY2UAAAAKY2lkTGljZW5jZQMJAQAAAAEhAAAAAQUAAAALZGFwcFJ1bm5pbmcJAAACAAAAAQUAAAAObWFpbnRlbmFuY2VNU0cEAAAABWFydElkCQACWAAAAAEIBQAAAAZpbnZva2UAAAANdHJhbnNhY3Rpb25JZAQAAAAJdGltZXN0YW1wCAUAAAAJbGFzdEJsb2NrAAAACXRpbWVzdGFtcAQAAAAGY2FsbGVyCQACWAAAAAEICAUAAAAGaW52b2tlAAAABmNhbGxlcgAAAAVieXRlcwMJAQAAAAEhAAAAAQkBAAAADHZhbGlkYXRlSGFzaAAAAAEFAAAACnNoYTI1Nkhhc2gJAAACAAAAAQIAAAAkSGFzaCBzaG91bGQgYmUgNjQgY2hhcmFjdGVycyBtYXhpbXVtBAAAAA0kdDAxMTQ5MTExNTYwCQEAAAAKc2V0TEljZW5jZQAAAAIFAAAACmNpZExpY2VuY2UFAAAADXNoYTI1NkxpY2VuY2UEAAAACmxpY2VuY2VDSUQIBQAAAA0kdDAxMTQ5MTExNTYwAAAAAl8xBAAAAAtsaWNlbmNlSGFzaAgFAAAADSR0MDExNDkxMTE1NjAAAAACXzIEAAAAD3ZhbGlkYXRlQXJ0d29yawkBAAAAE3ZhbGlkYXRlQXJ0d29ya0RhdGEAAAAKBQAAAAZjYWxsZXIFAAAACmNpZERpc3BsYXkFAAAACWNpZEV4cG9ydAUAAAAKbGljZW5jZUNJRAUAAAAMc2hhMjU2RXhwb3J0BQAAAAtsaWNlbmNlSGFzaAUAAAAEbmFtZQUAAAALZGVzY3JpcHRpb24FAAAABHRhZ3MFAAAAB21heG1pbnQDCQEAAAACIT0AAAACBQAAAA92YWxpZGF0ZUFydHdvcmsCAAAAAAkAAAIAAAABAgAAABVTb21ldGhpbmcgd2VudCB3cm9uZyEEAAAADSR0MDExNzg4MTE4MzUJAQAAAA92YWxpZGF0ZVBheW1lbnQAAAABBQAAAAZpbnZva2UEAAAABmFtb3VudAgFAAAADSR0MDExNzg4MTE4MzUAAAACXzEEAAAAB2Fzc2V0SWQIBQAAAA0kdDAxMTc4ODExODM1AAAAAl8yAwkBAAAAASEAAAABCQEAAAAJaXNEZWZpbmVkAAAAAQUAAAAGYW1vdW50CQAAAgAAAAECAAAAFFNvbWV0aGluZyB3ZW50IHdyb25nBAAAAAplbnRyeUV4aXN0CQEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABCQEAAAAVa2V5QXJ0VHhpZEJ5SGFzaE93bmVyAAAAAgUAAAAKc2hhMjU2SGFzaAUAAAAGY2FsbGVyAwkBAAAAAiE9AAAAAgUAAAAKZW50cnlFeGlzdAIAAAAACQAAAgAAAAECAAAAFFlvdSBhbHJlYWR5IGFkZGVkIGl0BAAAAAloYXNoRXhpc3QJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEJAQAAABFrZXlBcnRPd25lckJ5SGFzaAAAAAEFAAAACnNoYTI1Nkhhc2gDCQEAAAACIT0AAAACBQAAAAloYXNoRXhpc3QCAAAAAAkAAAIAAAABAgAAABdIYXNoIGFscmVhZHkgcmVnaXN0ZXJlZAQAAAAPaXNTaWduQ2VydGlmaWVkCQEAAAAUY2hlY2tTaWduQ2VydGlmaWNhdGUAAAADBQAAAAZzaWduSUQFAAAABmNhbGxlcgUAAAAKc2hhMjU2SGFzaAMJAQAAAAEhAAAAAQUAAAAPaXNTaWduQ2VydGlmaWVkCQAAAgAAAAECAAAALFNpZ24gQ2VydGlmaWNhdGUgbm90IGZvdW5kIGZvciB0aGlzIGFkZHJlc3MuCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABFrZXlBcnRPd25lckJ5SGFzaAAAAAEFAAAACnNoYTI1Nkhhc2gFAAAABmNhbGxlcgkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAVa2V5QXJ0VHhpZEJ5SGFzaE93bmVyAAAAAgUAAAAKc2hhMjU2SGFzaAUAAAAGY2FsbGVyBQAAAAVhcnRJZAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAACmtleUFydERhdGUAAAACBQAAAAZjYWxsZXIFAAAABWFydElkBQAAAAl0aW1lc3RhbXAJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAACmtleUFydE5hbWUAAAACBQAAAAZjYWxsZXIFAAAABWFydElkBQAAAARuYW1lCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAAAprZXlBcnREZXNjAAAAAgUAAAAGY2FsbGVyBQAAAAVhcnRJZAUAAAALZGVzY3JpcHRpb24JAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAEGtleUFydERpc3BsYXlDaWQAAAACBQAAAAZjYWxsZXIFAAAABWFydElkBQAAAApjaWREaXNwbGF5CQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAAA9rZXlBcnRFeHBvcnRDaWQAAAACBQAAAAZjYWxsZXIFAAAABWFydElkBQAAAAljaWRFeHBvcnQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAEGtleUFydEV4cG9ydEhhc2gAAAACBQAAAAZjYWxsZXIFAAAABWFydElkBQAAAAxzaGEyNTZFeHBvcnQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAEWtleUFydExpY2VuY2VIYXNoAAAAAgUAAAAGY2FsbGVyBQAAAAVhcnRJZAUAAAALbGljZW5jZUhhc2gJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAEGtleUFydExpY2VuY2VDaWQAAAACBQAAAAZjYWxsZXIFAAAABWFydElkBQAAAApsaWNlbmNlQ0lECQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAAAprZXlBcnRUeXBlAAAAAgUAAAAGY2FsbGVyBQAAAAVhcnRJZAUAAAAEdHlwZQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAKa2V5QXJ0VGFncwAAAAIFAAAABmNhbGxlcgUAAAAFYXJ0SWQFAAAABHRhZ3MJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAA1rZXlBcnRNYXhNaW50AAAAAgUAAAAGY2FsbGVyBQAAAAVhcnRJZAUAAAAHbWF4bWludAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAMa2V5QXJ0U2lnbklEAAAAAgUAAAAGY2FsbGVyBQAAAAVhcnRJZAUAAAAGc2lnbklECQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAMa2V5QXJ0SXNzdWVkAAAAAgUAAAAGY2FsbGVyBQAAAAVhcnRJZAAAAAAAAAAAAAkABEwAAAACCQEAAAAMQm9vbGVhbkVudHJ5AAAAAgkBAAAADGtleUFydE9uU2FsZQAAAAIFAAAABmNhbGxlcgUAAAAFYXJ0SWQHCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABNrZXlBcnRBcnRpZEJ5U2lnbmlkAAAAAgUAAAAGY2FsbGVyBQAAAAZzaWduSUQFAAAABWFydElkCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABRrZXlBcnRIYXNoQnlUeGlkQWRkcgAAAAIFAAAABmNhbGxlcgUAAAAFYXJ0SWQFAAAACnNoYTI1Nkhhc2gJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEFAAAAC2ZlZVJlY2VpdmVyBQAAAAZhbW91bnQFAAAAB2Fzc2V0SWQFAAAAA25pbAAAAAZpbnZva2UBAAAADXVwZGF0ZUFydHdvcmsAAAALAAAABHR4aWQAAAAEbmFtZQAAAAtkZXNjcmlwdGlvbgAAAAR0YWdzAAAABHR5cGUAAAAHbWF4bWludAAAAApjaWREaXNwbGF5AAAADHNoYTI1NkV4cG9ydAAAAAljaWRFeHBvcnQAAAANc2hhMjU2TGljZW5jZQAAAApjaWRMaWNlbmNlAwkBAAAAASEAAAABBQAAAAtkYXBwUnVubmluZwkAAAIAAAABBQAAAA5tYWludGVuYW5jZU1TRwQAAAAIdXBkYXRlSWQJAAJYAAAAAQgFAAAABmludm9rZQAAAA10cmFuc2FjdGlvbklkBAAAAAZjYWxsZXIJAAJYAAAAAQgIBQAAAAZpbnZva2UAAAAGY2FsbGVyAAAABWJ5dGVzBAAAAA0kdDAxNDY5MDE0NzU5CQEAAAAKc2V0TEljZW5jZQAAAAIFAAAACmNpZExpY2VuY2UFAAAADXNoYTI1NkxpY2VuY2UEAAAACmxpY2VuY2VDSUQIBQAAAA0kdDAxNDY5MDE0NzU5AAAAAl8xBAAAAAtsaWNlbmNlSGFzaAgFAAAADSR0MDE0NjkwMTQ3NTkAAAACXzIEAAAAD3ZhbGlkYXRlQXJ0d29yawkBAAAAE3ZhbGlkYXRlQXJ0d29ya0RhdGEAAAAKBQAAAAZjYWxsZXIFAAAACmNpZERpc3BsYXkFAAAACWNpZEV4cG9ydAUAAAAKbGljZW5jZUNJRAUAAAAMc2hhMjU2RXhwb3J0BQAAAAtsaWNlbmNlSGFzaAUAAAAEbmFtZQUAAAALZGVzY3JpcHRpb24FAAAABHRhZ3MFAAAAB21heG1pbnQDCQEAAAACIT0AAAACBQAAAA92YWxpZGF0ZUFydHdvcmsCAAAAAAkAAAIAAAABAgAAABVTb21ldGhpbmcg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CQEAAAAKa2V5QXJ0TmFtZQAAAAIFAAAADGFkZHJlc3NUb1VzZQUAAAAFYXJ0SWQDCQAAAAAAAAIFAAAACmVudHJ5RXhpc3QCAAAAAAkAAAIAAAABAgAAACBObyBhcnQgbWF0Y2hpbmcgZm9yIHRoaXMgYWRkcmVzcwQAAAAKc2hhMjU2SGFzaAkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQkBAAAAFGtleUFydEhhc2hCeVR4aWRBZGRyAAAAAgUAAAAMYWRkcmVzc1RvVXNlBQAAAAVhcnRJZAMJAAAAAAAAAgUAAAAKc2hhMjU2SGFzaAIAAAAACQAAAgAAAAECAAAAJU5vIGFydCBoYXNoIG1hdGNoaW5nIGZvciB0aGlzIGFkZHJlc3MEAAAABnNpZ25JRAkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQkBAAAADGtleUFydFNpZ25JRAAAAAIFAAAADGFkZHJlc3NUb1VzZQUAAAAFYXJ0SWQDCQAAAAAAAAIFAAAABnNpZ25JRAIAAAAACQAAAgAAAAECAAAAE05vIFNJR04gSUQgbWF0Y2hpbmcEAAAADGRhdGFUb0RlbGV0ZQkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQEAAAAKa2V5QXJ0RGF0ZQAAAAIFAAAADGFkZHJlc3NUb1VzZQUAAAAFYXJ0SWQJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkBAAAACmtleUFydE5hbWUAAAACBQAAAAxhZGRyZXNzVG9Vc2UFAAAABWFydElkCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAQAAAAprZXlBcnREZXNjAAAAAgUAAAAMYWRkcmVzc1RvVXNlBQAAAAVhcnRJZAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQEAAAAQa2V5QXJ0RGlzcGxheUNpZAAAAAIFAAAADGFkZHJlc3NUb1VzZQUAAAAFYXJ0SWQJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkBAAAAD2tleUFydEV4cG9ydENpZAAAAAIFAAAADGFkZHJlc3NUb1VzZQUAAAAFYXJ0SWQJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkBAAAAEGtleUFydEV4cG9ydEhhc2gAAAACBQAAAAxhZGRyZXNzVG9Vc2UFAAAABWFydElkCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAQAAABFrZXlBcnRMaWNlbmNlSGFzaAAAAAIFAAAADGFkZHJlc3NUb1VzZQUAAAAFYXJ0SWQJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkBAAAAEGtleUFydExpY2VuY2VDaWQAAAACBQAAAAxhZGRyZXNzVG9Vc2UFAAAABWFydElkCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAQAAAAprZXlBcnRUeXBlAAAAAgUAAAAMYWRkcmVzc1RvVXNlBQAAAAVhcnRJZAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQEAAAAKa2V5QXJ0VGFncwAAAAIFAAAADGFkZHJlc3NUb1VzZQUAAAAFYXJ0SWQJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkBAAAADWtleUFydE1heE1pbnQAAAACBQAAAAxhZGRyZXNzVG9Vc2UFAAAABWFydElkCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAQAAAAxrZXlBcnRTaWduSUQAAAACBQAAAAxhZGRyZXNzVG9Vc2UFAAAABWFydElkCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAQAAAAxrZXlBcnRJc3N1ZWQAAAACBQAAAAxhZGRyZXNzVG9Vc2UFAAAABWFydElkCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAQAAAAxrZXlBcnRPblNhbGUAAAACBQAAAAxhZGRyZXNzVG9Vc2UFAAAABWFydElkCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAQAAAAprZXlBcnRGbGFnAAAAAgUAAAAEYWRkcgUAAAAFYXJ0SWQJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkBAAAAEWtleUFydE93bmVyQnlIYXNoAAAAAQUAAAAKc2hhMjU2SGFzaAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQEAAAATa2V5QXJ0QXJ0aWRCeVNpZ25pZAAAAAIFAAAADGFkZHJlc3NUb1VzZQUAAAAGc2lnbklECQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAQAAABVrZXlBcnRUeGlkQnlIYXNoT3duZXIAAAACBQAAAApzaGEyNTZIYXNoBQAAAAxhZGRyZXNzVG9Vc2UFAAAAA25pbAMJAQAAAAEhAAAAAQkBAAAAC2lzQXJ0TWludGVkAAAAAgUAAAAMYWRkcmVzc1RvVXNlBQAAAAVhcnRJZAMJAQAAAAEhAAAAAQUAAAALZGFwcFJ1bm5pbmcJAAACAAAAAQUAAAAObWFpbnRlbmFuY2VNU0cFAAAADGRhdGFUb0RlbGV0ZQMJAQAAAA9jb250YWluc0VsZW1lbnQAAAACCQAETAAAAAIFAAAABWNocmlzCQAETAAAAAIJAAQlAAAAAQUAAAAEdGhpcwUAAAADbmlsBQAAAAZjYWxsZXIFAAAADGRhdGFUb0RlbGV0ZQkAAAIAAAABAgAAAChBcnQgYWxyZWFkeSBtaW50ZWQsIHlvdSBjYW5ub3QgZGVsZXRlIGl0AAAABmludm9rZQEAAAALc2VsbEFydHdvcmsAAAAEAAAABWFydElkAAAABXByaWNlAAAAB21heE1pbnQAAAAHYXNzZXRJZAMJAQAAAAEhAAAAAQUAAAALZGFwcFJ1bm5pbmcJAAACAAAAAQUAAAAObWFpbnRlbmFuY2VNU0cEAAAAAmlkCQACWAAAAAEIBQAAAAZpbnZva2UAAAANdHJhbnNhY3Rpb25JZAQAAAAGY2FsbGVyCQACWAAAAAEICAUAAAAGaW52b2tlAAAABmNhbGxlcgAAAAVieXRlcwQAAAAIc2VsbERhdGUIBQAAAAlsYXN0QmxvY2sAAAAJdGltZXN0YW1wBAAAAAthcnR3b3JrTmFtZQkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQkBAAAACmtleUFydE5hbWUAAAACBQAAAAZjYWxsZXIFAAAABWFydElkAwkAAAAAAAACBQAAAAthcnR3b3JrTmFtZQIAAAAACQAAAgAAAAECAAAAKVRoaXMgYXJ0IGRvZXNuJ3QgbWF0Y2ggbWF0Y2ggeW91ciBhY2NvdW50BAAAAAlleHBvcnRDSUQJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEJAQAAAA9rZXlBcnRFeHBvcnRDaWQAAAACBQAAAAZjYWxsZXIFAAAABWFydElkAwkBAAAAAiE9AAAAAgkAATEA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AAAFYXJ0SWQEAAAAC2FydHdvcmtOYW1lCQEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABCQEAAAAKa2V5QXJ0TmFtZQAAAAIFAAAABmlzc3VlcgUAAAAFYXJ0SWQDCQAAAAAAAAIFAAAAC2FydHdvcmtOYW1lAgAAAAAJAAACAAAAAQIAAAARQXJ0IGRvZXNuJ3QgZXhpc3QEAAAACmRpc3BsYXlDSUQJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEJAQAAABBrZXlBcnREaXNwbGF5Q2lkAAAAAgUAAAAGaXNzdWVyBQAAAAVhcnRJZAQAAAAJZXhwb3J0Q0lECQEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABCQEAAAAPa2V5QXJ0RXhwb3J0Q2lkAAAAAgUAAAAGaXNzdWVyBQAAAAVhcnRJZAQAAAAKZXhwb3J0SGFzaAkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQkBAAAAEGtleUFydEV4cG9ydEhhc2gAAAACBQAAAAZpc3N1ZXIFAAAABWFydElkBAAAAApsaWNlbmNlQ0lECQEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABCQEAAAAQa2V5QXJ0TGljZW5jZUNpZAAAAAIFAAAABmlzc3VlcgUAAAAFYXJ0SWQEAAAAC2xpY2VuY2VIYXNoCQEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABCQEAAAARa2V5QXJ0TGljZW5jZUhhc2gAAAACBQAAAAZpc3N1ZXIFAAAABWFydElkBAAAAAtkZXNjcmlwdGlvbgkAAS8AAAACCQEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABCQEAAAAKa2V5QXJ0RGVzYwAAAAIFAAAABmlzc3VlcgUAAAAFYXJ0SWQAAAAAAAAAADIEAAAACGlzT25TYWxlCQEAAAAPZ2V0Qm9vbGVhbkJ5S2V5AAAAAQkBAAAADGtleUFydE9uU2FsZQAAAAIFAAAABmlzc3VlcgUAAAAFYXJ0SWQEAAAACmFtb3VudFNvbGQJAQAAAA9nZXRJbnRlZ2VyQnlLZXkAAAABCQEAAAAMa2V5QXJ0SXNzdWVkAAAAAgUAAAAGaXNzdWVyBQAAAAVhcnRJZAQAAAAMYXJ0d29ya1ByaWNlCQEAAAAPZ2V0SW50ZWdlckJ5S2V5AAAAAQkBAAAAC2tleUFydFByaWNlAAAAAgUAAAAGaXNzdWVyBQAAAAVhcnRJZAQAAAAMcHJpY2VBc3NldElkCQEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABCQEAAAAVa2V5QXJ0QXNzZXRJZEFjY2VwdGVkAAAAAgUAAAAGaXNzdWVyBQAAAAVhcnRJZAQAAAAKc291cmNlSGFzaAkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQkBAAAAFGtleUFydEhhc2hCeVR4aWRBZGRyAAAAAgUAAAAGaXNzdWVyBQAAAAVhcnRJZAQAAAAKbWF4Q2FuU2VsbAkBAAAAD2dldEludGVnZXJCeUtleQAAAAEJAQAAAA1rZXlBcnRNYXhNaW50AAAAAgUAAAAGaXNzdWVyBQAAAAVhcnRJZAMDAwkAAGcAAAACAAAAAAAAAAAABQAAAAxhcnR3b3JrUHJpY2UGCQEAAAABIQAAAAEFAAAACGlzT25TYWxlBgkAAGcAAAACAAAAAAAAAAAABQAAAAptYXhDYW5TZWxsCQAAAgAAAAECAAAAEEFydCBub3QgZm9yIHNhbGUEAAAADSR0MDIyODgzMjI5NjMJAQAAABR2YWxpZGF0ZVByaWNlQXNzZXRJZAAAAAMFAAAABmludm9rZQUAAAAMcHJpY2VBc3NldElkBQAAAAxhcnR3b3JrUHJpY2UEAAAABmFtb3VudAgFAAAADSR0MDIyODgzMjI5NjMAAAACXzEEAAAAB2Fzc2V0SWQIBQAAAA0kdDAyMjg4MzIyOTYzAAAAAl8yBAAAAA1pc1doaXRlbGlzdGVkCQEAAAAOY2hlY2tXaGl0ZWxpc3QAAAABBQAAAAZpc3N1ZXIEAAAAA2N1dAMJAABmAAAAAgUAAAANaXNXaGl0ZWxpc3RlZAUAAAAGaGVpZ2h0AAAAAAAAAAAAAwkAAAAAAAACBQAAAAxwcmljZUFzc2V0SWQJAAJYAAAAAQUAAAALc2lnbkFzc2V0SWQFAAAAB3NpZ25DdXQFAAAAC3VzZG5XYXZlQ3V0BAAAAA1hbW91bnRGb3JTaWduCQAAawAAAAMFAAAABmFtb3VudAUAAAADY3V0AAAAAAAAAABkBAAAABBhbW91bnRGb3JDcmVhdG9yCQAAZQAAAAIFAAAABmFtb3VudAUAAAANYW1vdW50Rm9yU2lnbgMJAAAAAAAAAgUAAAAKYW1vdW50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", "height": 1341233, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: EsZaMK1FEQVpVwF2xjh2SuA38hzUrBtcmtcBWfaowyW Next: 5GzL8JsvjWat7pfF3m1trm17qXtsfUvMJmU2NnFpbAyD Diff:
OldNewDifferences
204204 }
205205
206206
207-func az (ap) = if ((size(ap) == 0))
208- then n
209- else ap
210-
211-
212-func aA (as) = if ((size(as) == 0))
213- then o
214- else as
215-
216-
217-func aB (N,an,ao,aC,ar,aD,aE,aF,aG,aH) = {
218- let aI = aw(N)
219- if ((aI != ""))
220- then throw(aI)
207+func az (N,an,ao,aA,ar,aB,aC,aD,aE,aF) = {
208+ let aG = aw(N)
209+ if ((aG != ""))
210+ then throw(aG)
221211 else if ((size(an) == 0))
222212 then throw("Display CID cannot be empty")
223- else if (!(am(an, ao, aC)))
213+ else if (!(am(an, ao, aA)))
224214 then throw("Problem with CID")
225- else if (!(aq(ar, aD)))
215+ else if (!(aq(ar, aB)))
226216 then throw("Problem with Hashes")
227- else if (!(at(aE, 100)))
217+ else if (!(at(aC, 100)))
228218 then throw("100 Char. max name")
229- else if (!(at(aF, 1000)))
219+ else if (!(at(aD, 1000)))
230220 then throw("1000 Char. max description")
231- else if ((size(split(aG, ",")) > 5))
221+ else if ((size(split(aE, ",")) > 5))
232222 then throw("5 tags max.")
233- else if ((aH > 10))
223+ else if ((aF > 10))
234224 then throw("10 editions max per artwork")
235225 else ""
236226 }
237227
238228
239-func aJ (aK) = if ((size(aK.payments) == 0))
229+func aH (aI) = if ((size(aI.payments) == 0))
240230 then throw("No payment attached")
241231 else {
242- let aL = value(aK.payments[0])
243- let aM = value(aL.amount)
244- let aN = if (if (isDefined(aL.assetId))
245- then (aL.assetId == g)
232+ let aJ = value(aI.payments[0])
233+ let aK = value(aJ.amount)
234+ let aL = if (if (isDefined(aJ.assetId))
235+ then (aJ.assetId == g)
246236 else false)
247- then aL.assetId
237+ then aJ.assetId
248238 else throw("Only SIGN token accepted as transaction fee")
249- let aO = y(("certification_fee_" + toBase58String(g)))
250- if ((aM != aO))
251- then throw(("Payment amount should be " + toString(aO)))
252- else $Tuple2(aM, aN)
239+ let aM = y(("certification_fee_" + toBase58String(g)))
240+ if ((aK != aM))
241+ then throw(("Payment amount should be " + toString(aM)))
242+ else $Tuple2(aK, aL)
253243 }
254244
255245
256-func aP (aQ,P) = {
257- let G = getInteger(this, X(aQ, P))
246+func aN (aO,P) = {
247+ let G = getInteger(this, X(aO, P))
258248 if ($isInstanceOf(G, "Int"))
259249 then {
260- let aR = G
261- if ((aR != 0))
250+ let aP = G
251+ if ((aP != 0))
262252 then true
263253 else false
264254 }
266256 }
267257
268258
269-func aS (aK,aT,aU) = {
270- let aL = value(aK.payments[0])
271- let aM = value(aL.amount)
272- let aN = if (!(isDefined(aL.assetId)))
259+func aQ (aI,aR,aS) = {
260+ let aJ = value(aI.payments[0])
261+ let aK = value(aJ.amount)
262+ let aL = if (!(isDefined(aJ.assetId)))
273263 then unit
274- else if (if ((size(aT) > 0))
275- then (toBase58String(value(aL.assetId)) == aT)
264+ else if (if ((size(aR) > 0))
265+ then (toBase58String(value(aJ.assetId)) == aR)
276266 else false)
277- then aL.assetId
267+ then aJ.assetId
278268 else throw("Wrong asset id")
279- if (if ((aN == unit))
280- then (aT != "")
269+ if (if ((aL == unit))
270+ then (aR != "")
281271 else false)
282272 then throw("Wrong asset id")
283- else if ((aU != aM))
273+ else if ((aS != aK))
284274 then throw("Payment don't match")
285- else $Tuple2(aM, aN)
275+ else $Tuple2(aK, aL)
286276 }
287277
288278
289-func aV (aN) = if (if (if ((aN != toBase58String(g)))
290- then (aN != toBase58String(i))
279+func aT (aL) = if (if (if ((aL != toBase58String(g)))
280+ then (aL != toBase58String(i))
291281 else false)
292- then (aN != toBase58String(h))
282+ then (aL != toBase58String(h))
293283 else false)
294284 then throw("Only SIGN, USDN or WAVES accepted")
295285 else true
296286
297287
298-func aW (aN,aX) = {
288+func aU (aL,aV) = {
289+ let aW = if (a)
290+ then 1
291+ else y("waves_min_sell")
292+ let aX = 1000000
299293 let aY = if (a)
300294 then 1
301- else y("waves_min_sell")
302- let aZ = 1000000
303- let ba = if (a)
304- then 1
305295 else (y(("certification_fee_" + toBase58String(g))) * 2)
306- if (if (if (if (if ((aN == toBase58String(h)))
307- then (aZ > aX)
296+ if (if (if (if (if ((aL == toBase58String(h)))
297+ then (aX > aV)
308298 else false)
309- then (aX != 0)
299+ then (aV != 0)
310300 else false)
311301 then true
312- else if (if ((aN == toBase58String(g)))
313- then (ba > aX)
302+ else if (if ((aL == toBase58String(g)))
303+ then (aY > aV)
314304 else false)
315- then (aX != 0)
305+ then (aV != 0)
316306 else false)
317307 then true
318- else if (if ((aN == toBase58String(i)))
319- then (aY > aX)
308+ else if (if ((aL == toBase58String(i)))
309+ then (aW > aV)
320310 else false)
321- then (aX != 0)
311+ then (aV != 0)
322312 else false)
323313 then throw("Wrong minimum sell price")
324314 else true
325315 }
326316
327317
328-@Callable(aK)
329-func addArtwork (F,D,aE,aF,aG,bb,aH,an,ar,ao,as,ap) = if (!(p))
318+@Callable(aI)
319+func addArtwork (F,D,aC,aD,aE,aZ,aF,an,ar,ao,as,ap) = if (!(p))
330320 then throw(q)
331321 else {
332- let P = toBase58String(aK.transactionId)
333- let bc = lastBlock.timestamp
334- let N = toBase58String(aK.caller.bytes)
322+ let P = toBase58String(aI.transactionId)
323+ let ba = lastBlock.timestamp
324+ let N = toBase58String(aI.caller.bytes)
335325 if (!(K(F)))
336326 then throw("Hash should be 64 characters maximum")
337327 else {
338- let bd = ay(ap, as)
339- let aC = bd._1
340- let aD = bd._2
341- let be = aB(N, an, ao, aC, ar, aD, aE, aF, aG, aH)
342- if ((be != ""))
328+ let bb = ay(ap, as)
329+ let aA = bb._1
330+ let aB = bb._2
331+ let bc = az(N, an, ao, aA, ar, aB, aC, aD, aE, aF)
332+ if ((bc != ""))
343333 then throw("Something went wrong!")
344334 else {
345- let bf = aJ(aK)
346- let aM = bf._1
347- let aN = bf._2
348- if (!(isDefined(aM)))
335+ let bd = aH(aI)
336+ let aK = bd._1
337+ let aL = bd._2
338+ if (!(isDefined(aK)))
349339 then throw("Something went wrong")
350340 else {
351- let bg = x(al(F, N))
352- if ((bg != ""))
341+ let be = x(al(F, N))
342+ if ((be != ""))
353343 then throw("You already added it")
354344 else {
355- let bh = x(ai(F))
356- if ((bh != ""))
345+ let bf = x(ai(F))
346+ if ((bf != ""))
357347 then throw("Hash already registered")
358348 else {
359- let bi = C(D, N, F)
360- if (!(bi))
349+ let bg = C(D, N, F)
350+ if (!(bg))
361351 then throw("Sign Certificate not found for this address.")
362- else [StringEntry(ai(F), N), StringEntry(al(F, N), P), IntegerEntry(O(N, P), bc), StringEntry(Q(N, P), aE), StringEntry(R(N, P), aF), StringEntry(S(N, P), an), StringEntry(U(N, P), ao), StringEntry(T(N, P), ar), StringEntry(Z(N, P), aD), StringEntry(aa(N, P), aC), StringEntry(ac(N, P), bb), StringEntry(ab(N, P), aG), IntegerEntry(V(N, P), aH), StringEntry(W(N, P), D), IntegerEntry(X(N, P), 0), BooleanEntry(Y(N, P), false), StringEntry(aj(N, D), P), StringEntry(ag(N, P), F), ScriptTransfer(Address(fromBase58String(d)), aM, aN)]
352+ else [StringEntry(ai(F), N), StringEntry(al(F, N), P), IntegerEntry(O(N, P), ba), StringEntry(Q(N, P), aC), StringEntry(R(N, P), aD), StringEntry(S(N, P), an), StringEntry(U(N, P), ao), StringEntry(T(N, P), ar), StringEntry(Z(N, P), aB), StringEntry(aa(N, P), aA), StringEntry(ac(N, P), aZ), StringEntry(ab(N, P), aE), IntegerEntry(V(N, P), aF), StringEntry(W(N, P), D), IntegerEntry(X(N, P), 0), BooleanEntry(Y(N, P), false), StringEntry(aj(N, D), P), StringEntry(ag(N, P), F), ScriptTransfer(Address(fromBase58String(d)), aK, aL)]
363353 }
364354 }
365355 }
369359
370360
371361
372-@Callable(aK)
373-func updateArtwork (ah,aE,aF,aG,bb,aH,an,ar,ao,as,ap) = if (!(p))
362+@Callable(aI)
363+func updateArtwork (ah,aC,aD,aE,aZ,aF,an,ar,ao,as,ap) = if (!(p))
374364 then throw(q)
375365 else {
376- let bj = toBase58String(aK.transactionId)
377- let N = toBase58String(aK.caller.bytes)
378- let bk = ay(ap, as)
379- let aC = bk._1
380- let aD = bk._2
381- let be = aB(N, an, ao, aC, ar, aD, aE, aF, aG, aH)
382- if ((be != ""))
366+ let bh = toBase58String(aI.transactionId)
367+ let N = toBase58String(aI.caller.bytes)
368+ let bi = ay(ap, as)
369+ let aA = bi._1
370+ let aB = bi._2
371+ let bc = az(N, an, ao, aA, ar, aB, aC, aD, aE, aF)
372+ if ((bc != ""))
383373 then throw("Something went wrong!")
384374 else {
385- let bg = x(Q(N, ah))
386- if ((bg == ""))
375+ let be = x(Q(N, ah))
376+ if ((be == ""))
387377 then throw("Entry not found")
388378 else {
389- let bl = x(af(N, ah))
390- if ((bl == "ILLEGAL"))
379+ let bj = x(af(N, ah))
380+ if ((bj == "ILLEGAL"))
391381 then throw("Cannot update ILLEGAL artwork")
392- else if (!(aP(N, ah)))
393- then [StringEntry(Q(N, ah), aE), StringEntry(R(N, ah), aF), StringEntry(S(N, ah), an), StringEntry(U(N, ah), ao), StringEntry(T(N, ah), ar), StringEntry(aa(N, ah), aC), StringEntry(Z(N, ah), aD), IntegerEntry(V(N, ah), aH), StringEntry(ab(N, ah), aG), StringEntry(ac(N, ah), bb)]
382+ else if (!(aN(N, ah)))
383+ then [StringEntry(Q(N, ah), aC), StringEntry(R(N, ah), aD), StringEntry(S(N, ah), an), StringEntry(U(N, ah), ao), StringEntry(T(N, ah), ar), StringEntry(aa(N, ah), aA), StringEntry(Z(N, ah), aB), IntegerEntry(V(N, ah), aF), StringEntry(ab(N, ah), aE), StringEntry(ac(N, ah), aZ)]
394384 else throw("Already minted")
395385 }
396386 }
398388
399389
400390
401-@Callable(aK)
402-func flagArtwork (P,bm,bl) = {
403- let N = toString(addressFromPublicKey(aK.callerPublicKey))
404- let bn = toBase58String(aK.transactionId)
391+@Callable(aI)
392+func flagArtwork (P,bk,bj) = {
393+ let N = toString(addressFromPublicKey(aI.callerPublicKey))
394+ let bl = toBase58String(aI.transactionId)
405395 if (containsElement([j, k, toString(this)], N))
406- then if ((bl == "CONSENT"))
407- then [StringEntry(af(bm, P), bl)]
408- else if ((bl == ""))
409- then [StringEntry(af(bm, P), bl)]
410- else if ((bl == "ILLEGAL"))
411- then [StringEntry(af(bm, P), bl), StringEntry(Q(bm, P), "ILLEGAL CONTENT"), StringEntry(R(bm, P), "ILLEGAL CONTENT"), StringEntry(S(bm, P), ""), StringEntry(U(bm, P), ""), StringEntry(aa(bm, P), "")]
412- else throw(("Unknow status " + bl))
396+ then if ((bj == "CONSENT"))
397+ then [StringEntry(af(bk, P), bj)]
398+ else if ((bj == ""))
399+ then [StringEntry(af(bk, P), bj)]
400+ else if ((bj == "ILLEGAL"))
401+ then [StringEntry(af(bk, P), bj), StringEntry(Q(bk, P), "ILLEGAL CONTENT"), StringEntry(R(bk, P), "ILLEGAL CONTENT"), StringEntry(S(bk, P), ""), StringEntry(U(bk, P), ""), StringEntry(aa(bk, P), "")]
402+ else throw(("Unknow status " + bj))
413403 else throw("You are not allowed")
414404 }
415405
416406
417407
418-@Callable(aK)
419-func deleteArtwork (P,bm) = {
420- let N = toString(addressFromPublicKey(aK.callerPublicKey))
421- let bn = toBase58String(aK.transactionId)
422- let aQ = if (containsElement([j, k, toString(this)], N))
423- then bm
408+@Callable(aI)
409+func deleteArtwork (P,bk) = {
410+ let N = toString(addressFromPublicKey(aI.callerPublicKey))
411+ let bl = toBase58String(aI.transactionId)
412+ let aO = if (containsElement([j, k, toString(this)], N))
413+ then bk
424414 else N
425- let bg = x(Q(aQ, P))
426- if ((bg == ""))
415+ let be = x(Q(aO, P))
416+ if ((be == ""))
427417 then throw("No art matching for this address")
428418 else {
429- let F = x(ag(aQ, P))
419+ let F = x(ag(aO, P))
430420 if ((F == ""))
431421 then throw("No art hash matching for this address")
432422 else {
433- let D = x(W(aQ, P))
423+ let D = x(W(aO, P))
434424 if ((D == ""))
435425 then throw("No SIGN ID matching")
436426 else {
437- let bo = [DeleteEntry(O(aQ, P)), DeleteEntry(Q(aQ, P)), DeleteEntry(R(aQ, P)), DeleteEntry(S(aQ, P)), DeleteEntry(U(aQ, P)), DeleteEntry(T(aQ, P)), DeleteEntry(Z(aQ, P)), DeleteEntry(aa(aQ, P)), DeleteEntry(ac(aQ, P)), DeleteEntry(ab(aQ, P)), DeleteEntry(V(aQ, P)), DeleteEntry(W(aQ, P)), DeleteEntry(X(aQ, P)), DeleteEntry(Y(aQ, P)), DeleteEntry(af(bm, P)), DeleteEntry(ai(F)), DeleteEntry(aj(aQ, D)), DeleteEntry(al(F, aQ))]
438- if (!(aP(aQ, P)))
427+ let bm = [DeleteEntry(O(aO, P)), DeleteEntry(Q(aO, P)), DeleteEntry(R(aO, P)), DeleteEntry(S(aO, P)), DeleteEntry(U(aO, P)), DeleteEntry(T(aO, P)), DeleteEntry(Z(aO, P)), DeleteEntry(aa(aO, P)), DeleteEntry(ac(aO, P)), DeleteEntry(ab(aO, P)), DeleteEntry(V(aO, P)), DeleteEntry(W(aO, P)), DeleteEntry(X(aO, P)), DeleteEntry(Y(aO, P)), DeleteEntry(af(bk, P)), DeleteEntry(ai(F)), DeleteEntry(aj(aO, D)), DeleteEntry(al(F, aO))]
428+ if (!(aN(aO, P)))
439429 then if (!(p))
440430 then throw(q)
441- else bo
431+ else bm
442432 else if (containsElement([j, toString(this)], N))
443- then bo
433+ then bm
444434 else throw("Art already minted, you cannot delete it")
445435 }
446436 }
449439
450440
451441
452-@Callable(aK)
453-func sellArtwork (P,aX,bp,aN) = if (!(p))
442+@Callable(aI)
443+func sellArtwork (P,aV,bn,aL) = if (!(p))
454444 then throw(q)
455445 else {
456- let bn = toBase58String(aK.transactionId)
457- let N = toBase58String(aK.caller.bytes)
458- let bq = lastBlock.timestamp
459- let br = x(Q(N, P))
460- if ((br == ""))
446+ let bl = toBase58String(aI.transactionId)
447+ let N = toBase58String(aI.caller.bytes)
448+ let bo = lastBlock.timestamp
449+ let bp = x(Q(N, P))
450+ if ((bp == ""))
461451 then throw("This art doesn't match match your account")
462452 else {
463- let bs = x(U(N, P))
464- if ((size(split(bs, "/")[0]) != 59))
453+ let bq = x(U(N, P))
454+ if ((size(split(bq, "/")[0]) != 59))
465455 then throw("You cannot sell art with no export file")
466456 else {
467- let bt = x(T(N, P))
468- if ((size(bt) != 64))
457+ let br = x(T(N, P))
458+ if ((size(br) != 64))
469459 then throw("You cannot sell art with no export hash")
470- else if (!(aV(aN)))
460+ else if (!(aT(aL)))
471461 then throw("Something wen wrong!")
472- else if (!(aW(aN, aX)))
462+ else if (!(aU(aL, aV)))
473463 then throw("Something wen wrong!")
474464 else {
475- let aI = aw(N)
476- if ((aI != ""))
477- then throw(aI)
465+ let aG = aw(N)
466+ if ((aG != ""))
467+ then throw(aG)
478468 else {
479- let bu = z(X(N, P))
480- let bv = z(V(N, P))
481- if ((bp > 10))
469+ let bs = z(X(N, P))
470+ let bt = z(V(N, P))
471+ if ((bn > 10))
482472 then throw("10 editions max per artwork")
483- else if (if ((bu != 0))
484- then (bu == bv)
473+ else if (if ((bs != 0))
474+ then (bs == bt)
485475 else false)
486476 then throw("Max edition reached.")
487- else if (if ((bu > 0))
488- then (bv != bp)
477+ else if (if ((bs > 0))
478+ then (bt != bn)
489479 else false)
490480 then throw("Cannot change maximum issuable anymore")
491481 else {
492- let bw = if (if ((aX > 0))
493- then (bp > 0)
482+ let bu = if (if ((aV > 0))
483+ then (bn > 0)
494484 else false)
495485 then true
496486 else false
497-[BooleanEntry(Y(N, P), bw), IntegerEntry(ad(N, P), aX), IntegerEntry(V(N, P), bp), StringEntry(ae(N, P), aN)]
487+[BooleanEntry(Y(N, P), bu), IntegerEntry(ad(N, P), aV), IntegerEntry(V(N, P), bn), StringEntry(ae(N, P), aL)]
498488 }
499489 }
500490 }
504494
505495
506496
507-@Callable(aK)
508-func buyArtwork (P,bx) = if (!(p))
497+@Callable(aI)
498+func buyArtwork (P,bv) = if (!(p))
509499 then throw(q)
510500 else {
511- let bn = toBase58String(aK.transactionId)
512- let N = toBase58String(aK.caller.bytes)
513- let by = z("total_nft_issued")
514- let D = x(W(bx, P))
515- let br = x(Q(bx, P))
516- if ((br == ""))
501+ let bl = toBase58String(aI.transactionId)
502+ let N = toBase58String(aI.caller.bytes)
503+ let bw = z("total_nft_issued")
504+ let D = x(W(bv, P))
505+ let bp = x(Q(bv, P))
506+ if ((bp == ""))
517507 then throw("Art doesn't exist")
518508 else {
519- let bz = x(S(bx, P))
520- let bs = x(U(bx, P))
521- let bt = x(T(bx, P))
522- let aC = x(aa(bx, P))
523- let aD = x(Z(bx, P))
524- let aF = take(x(R(bx, P)), 50)
525- let bA = B(Y(bx, P))
526- let bu = z(X(bx, P))
527- let aU = z(ad(bx, P))
528- let aT = x(ae(bx, P))
529- let bB = x(ag(bx, P))
530- let bv = z(V(bx, P))
531- if (if (if ((0 >= aU))
509+ let bx = x(S(bv, P))
510+ let bq = x(U(bv, P))
511+ let br = x(T(bv, P))
512+ let aA = x(aa(bv, P))
513+ let aB = x(Z(bv, P))
514+ let aD = take(x(R(bv, P)), 50)
515+ let by = B(Y(bv, P))
516+ let bs = z(X(bv, P))
517+ let aS = z(ad(bv, P))
518+ let aR = x(ae(bv, P))
519+ let bz = x(ag(bv, P))
520+ let bt = z(V(bv, P))
521+ if (if (if ((0 >= aS))
532522 then true
533- else !(bA))
523+ else !(by))
534524 then true
535- else (0 >= bv))
525+ else (0 >= bt))
536526 then throw("Art not for sale")
537527 else {
538- let bC = aS(aK, aT, aU)
539- let aM = bC._1
540- let aN = bC._2
541- let bD = A(bx)
542- let bE = if ((bD == 1))
528+ let bA = aQ(aI, aR, aS)
529+ let aK = bA._1
530+ let aL = bA._2
531+ let bB = A(bv)
532+ let bC = if ((bB > height))
543533 then 0
544- else if ((aT == toBase58String(g)))
534+ else if ((aR == toBase58String(g)))
545535 then l
546536 else m
547- let bF = fraction(aM, bE, 100)
548- let bG = (aM - bF)
549- if ((bu == bv))
537+ let bD = fraction(aK, bC, 100)
538+ let bE = (aK - bD)
539+ if ((bs == bt))
550540 then throw("Art sold out")
551541 else {
552- let bH = (bu + 1)
553- let bI = lastBlock.timestamp
554- let bJ = ((((((((((((((((((((((((((("Creator: " + bx) + ",
542+ let bF = (bs + 1)
543+ let bG = lastBlock.timestamp
544+ let bH = ((((((((((((((((((((((((((("Creator: " + bv) + ",
555545 ArtID: ") + P) + ",
556546 SignID: ") + D) + ",
557- Artwork name: ") + br) + ",
558- Artwork description: ") + aF) + ",
559- Issue: ") + toString(bH)) + "/") + toString(bv)) + ",
560- Max issuable: ") + toString(bv)) + ",
561- Source hash: ") + bB) + ",
562- Display cid: ") + bz) + ",
563- Export cid: ") + bs) + ",
564- Export hash: ") + bt) + ",
565- Licence cid: ") + aC) + ",
566- Licence hash: ") + aD)
567- let bK = Issue(("SA_" + toString((by + 1))), bJ, 1, 0, false)
568- let bL = calculateAssetId(bK)
569- let bw = if ((bH == bv))
547+ Artwork name: ") + bp) + ",
548+ Artwork description: ") + aD) + ",
549+ Issue: ") + toString(bF)) + "/") + toString(bt)) + ",
550+ Max issuable: ") + toString(bt)) + ",
551+ Source hash: ") + bz) + ",
552+ Display cid: ") + bx) + ",
553+ Export cid: ") + bq) + ",
554+ Export hash: ") + br) + ",
555+ Licence cid: ") + aA) + ",
556+ Licence hash: ") + aB)
557+ let bI = Issue(("SA_" + toString((bw + 1))), bH, 1, 0, false)
558+ let bJ = calculateAssetId(bI)
559+ let bu = if ((bF == bt))
570560 then false
571561 else true
572-[IntegerEntry(X(bx, P), bH), StringEntry(("nft_" + toBase58String(bL)), ((((((("art_sold_" + toString(bH)) + "_of_") + toString(bv)) + "_") + P) + "_") + bx)), StringEntry(((((((("art_sold_" + toString(bH)) + "_of_") + toString(bv)) + "_") + P) + "_") + bx), ((((((((((N + "_") + toString(bI)) + "_") + bn) + "_") + toString(aU)) + "_") + aT) + "_") + toBase58String(bL))), IntegerEntry("total_nft_issued", (by + 1)), BooleanEntry(Y(bx, P), bw), bK, ScriptTransfer(Address(fromBase58String(bx)), bG, aN), ScriptTransfer(Address(fromBase58String(d)), bF, aN), ScriptTransfer(aK.caller, 1, bL)]
562+[IntegerEntry(X(bv, P), bF), StringEntry(("nft_" + toBase58String(bJ)), ((((((("art_sold_" + toString(bF)) + "_of_") + toString(bt)) + "_") + P) + "_") + bv)), StringEntry(((((((("art_sold_" + toString(bF)) + "_of_") + toString(bt)) + "_") + P) + "_") + bv), ((((((((((N + "_") + toString(bG)) + "_") + bl) + "_") + toString(aS)) + "_") + aR) + "_") + toBase58String(bJ))), IntegerEntry("total_nft_issued", (bw + 1)), BooleanEntry(Y(bv, P), bu), bI, ScriptTransfer(Address(fromBase58String(bv)), bE, aL), ScriptTransfer(Address(fromBase58String(d)), bD, aL), ScriptTransfer(aI.caller, 1, bJ)]
573563 }
574564 }
575565 }
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 4 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = false
55
66 let b = value(addressFromString("3N2s5RtaHPBenCsx2ECcoFRbYHx3noZhXW1"))
77
88 let c = value(addressFromString("3NC28hSivrmsTUXaYD1x6L362J4ZpUnoTdB"))
99
1010 let d = "3N1E6tXddRoVaRfQ9dQ3vg5LaW2fsd8HKub"
1111
1212 let e = if (a)
1313 then value(addressFromString("3Mt4RGMEyjSWYAocTPqd55wdHQQB3PU2UCm"))
1414 else value(addressFromString("3MwDZagoYEiNfQLc31cGpYoaE54MGMwoFrZ"))
1515
1616 let f = value(addressFromString("3N6BaV1dCB4zg43goNNHaCtvR13BcyJ5Gsq"))
1717
1818 let g = base58'Gf9t8FA4H3ssoZPCwrg3KwUFCci8zuUFP9ssRsUY3s6a'
1919
2020 let h = base58'25FEqEjRkqK6yCkiT7Lz6SAYz7gUFCtxfCChnrVFD5AT'
2121
2222 let i = base58''
2323
2424 let j = "3MsG6jPNCrVJUtYB7XJBxS7utWsXAf4n9Vp"
2525
2626 let k = "3Mzm4VLwsN9uZwbTMzPj3XuxV6kEfAR8UDN"
2727
2828 let l = 7
2929
3030 let m = 10
3131
3232 let n = "bafybeigisfqtyo2qdfsceh5fpcp7eeymrpeglp6edao2bmyhijbayvausy/licence.pdf"
3333
3434 let o = "3df79d34abbca99308e79cb94461c1893582604d68329a41fd4bec1885e6adb4"
3535
3636 let p = valueOrElse(getBoolean(e, "conf_dapp_is_running"), true)
3737
3838 let q = valueOrElse(getString(e, "conf_maintenance_msg"), "")
3939
4040 let r = "SUSPENDED"
4141
4242 let s = "REMOVED"
4343
4444 let t = "UNREGISTERED"
4545
4646 let u = "ALLOWED"
4747
4848 func v (w) = valueOrElse(getString(e, w), "")
4949
5050
5151 func x (w) = valueOrElse(getString(this, w), "")
5252
5353
5454 func y (w) = valueOrErrorMessage(getInteger(b, w), "Integer undefine or 0 in oracle")
5555
5656
5757 func z (w) = valueOrElse(getInteger(this, w), 0)
5858
5959
6060 func A (w) = valueOrElse(getInteger(f, w), 0)
6161
6262
6363 func B (w) = valueOrElse(getBoolean(this, w), false)
6464
6565
6666 func C (D,E,F) = {
6767 let G = getString(c, ((("data_fc_" + D) + "_") + E))
6868 if ($isInstanceOf(G, "String"))
6969 then {
7070 let H = G
7171 if (contains(H, F))
7272 then true
7373 else false
7474 }
7575 else false
7676 }
7777
7878
7979 func I (J) = if (contains(J, "/"))
8080 then if (if ((76 > size(J)))
8181 then (size(split(J, "/")[0]) == 59)
8282 else false)
8383 then (16 > size(split(J, "/")[1]))
8484 else false
8585 else false
8686
8787
8888 func K (L) = (size(L) == 64)
8989
9090
9191 func M (N) = ("user_status_" + N)
9292
9393
9494 func O (N,P) = ((("art_date_" + P) + "_") + N)
9595
9696
9797 func Q (N,P) = ((("art_name_" + P) + "_") + N)
9898
9999
100100 func R (N,P) = ((("art_desc_" + P) + "_") + N)
101101
102102
103103 func S (N,P) = ((("art_display_cid_" + P) + "_") + N)
104104
105105
106106 func T (N,P) = ((("art_export_hash_" + P) + "_") + N)
107107
108108
109109 func U (N,P) = ((("art_export_cid_" + P) + "_") + N)
110110
111111
112112 func V (N,P) = ((("art_maxmint_" + P) + "_") + N)
113113
114114
115115 func W (N,P) = ((("art_signid_" + P) + "_") + N)
116116
117117
118118 func X (N,P) = ((("art_issued_" + P) + "_") + N)
119119
120120
121121 func Y (N,P) = ((("art_onsale_" + P) + "_") + N)
122122
123123
124124 func Z (N,P) = ((("art_licence_hash_" + P) + "_") + N)
125125
126126
127127 func aa (N,P) = ((("art_licence_cid_" + P) + "_") + N)
128128
129129
130130 func ab (N,P) = ((("art_tags_" + P) + "_") + N)
131131
132132
133133 func ac (N,P) = ((("art_type_" + P) + "_") + N)
134134
135135
136136 func ad (N,P) = ((("art_price_" + P) + "_") + N)
137137
138138
139139 func ae (N,P) = ((("art_assetAccepted_" + P) + "_") + N)
140140
141141
142142 func af (N,P) = ((("art_flag_" + P) + "_") + N)
143143
144144
145145 func ag (N,ah) = ((("get_hashbytxidaddr_" + ah) + "_") + N)
146146
147147
148148 func ai (F) = ("get_owner_by_hash_" + F)
149149
150150
151151 func aj (N,ak) = ((("get_artidbysignid_" + ak) + "_") + N)
152152
153153
154154 func al (F,N) = ("get_txid_by_hash_owner_" + toBase58String(sha256_16Kb(toBytes((F + N)))))
155155
156156
157157 func am (an,ao,ap) = if (!(I(an)))
158158 then throw("Wrong Display CID")
159159 else if (!(I(ao)))
160160 then throw("Wrong Export CID")
161161 else if (if ((ap != ""))
162162 then !(I(ap))
163163 else false)
164164 then throw("Wrong Licence CID")
165165 else true
166166
167167
168168 func aq (ar,as) = if (!(K(ar)))
169169 then throw("Export Hash 64 char. max")
170170 else if (!(K(as)))
171171 then throw("Licence Hash 64 char. max")
172172 else true
173173
174174
175175 func at (au,av) = if ((size(au) == 0))
176176 then throw("Field cannot be is empty")
177177 else if ((size(au) > av))
178178 then throw((au + " is too long"))
179179 else true
180180
181181
182182 func aw (N) = {
183183 let ax = valueOrElse(getString(e, M(N)), t)
184184 if (if ((ax == t))
185185 then true
186186 else (ax == u))
187187 then "Register this account first with \"Account\" tab"
188188 else if ((ax == r))
189189 then "Account suspended"
190190 else if ((ax == s))
191191 then "Account removed"
192192 else ""
193193 }
194194
195195
196196 func ay (ap,as) = {
197197 let J = if ((size(ap) == 0))
198198 then n
199199 else ap
200200 let L = if ((size(as) == 0))
201201 then o
202202 else as
203203 $Tuple2(J, L)
204204 }
205205
206206
207-func az (ap) = if ((size(ap) == 0))
208- then n
209- else ap
210-
211-
212-func aA (as) = if ((size(as) == 0))
213- then o
214- else as
215-
216-
217-func aB (N,an,ao,aC,ar,aD,aE,aF,aG,aH) = {
218- let aI = aw(N)
219- if ((aI != ""))
220- then throw(aI)
207+func az (N,an,ao,aA,ar,aB,aC,aD,aE,aF) = {
208+ let aG = aw(N)
209+ if ((aG != ""))
210+ then throw(aG)
221211 else if ((size(an) == 0))
222212 then throw("Display CID cannot be empty")
223- else if (!(am(an, ao, aC)))
213+ else if (!(am(an, ao, aA)))
224214 then throw("Problem with CID")
225- else if (!(aq(ar, aD)))
215+ else if (!(aq(ar, aB)))
226216 then throw("Problem with Hashes")
227- else if (!(at(aE, 100)))
217+ else if (!(at(aC, 100)))
228218 then throw("100 Char. max name")
229- else if (!(at(aF, 1000)))
219+ else if (!(at(aD, 1000)))
230220 then throw("1000 Char. max description")
231- else if ((size(split(aG, ",")) > 5))
221+ else if ((size(split(aE, ",")) > 5))
232222 then throw("5 tags max.")
233- else if ((aH > 10))
223+ else if ((aF > 10))
234224 then throw("10 editions max per artwork")
235225 else ""
236226 }
237227
238228
239-func aJ (aK) = if ((size(aK.payments) == 0))
229+func aH (aI) = if ((size(aI.payments) == 0))
240230 then throw("No payment attached")
241231 else {
242- let aL = value(aK.payments[0])
243- let aM = value(aL.amount)
244- let aN = if (if (isDefined(aL.assetId))
245- then (aL.assetId == g)
232+ let aJ = value(aI.payments[0])
233+ let aK = value(aJ.amount)
234+ let aL = if (if (isDefined(aJ.assetId))
235+ then (aJ.assetId == g)
246236 else false)
247- then aL.assetId
237+ then aJ.assetId
248238 else throw("Only SIGN token accepted as transaction fee")
249- let aO = y(("certification_fee_" + toBase58String(g)))
250- if ((aM != aO))
251- then throw(("Payment amount should be " + toString(aO)))
252- else $Tuple2(aM, aN)
239+ let aM = y(("certification_fee_" + toBase58String(g)))
240+ if ((aK != aM))
241+ then throw(("Payment amount should be " + toString(aM)))
242+ else $Tuple2(aK, aL)
253243 }
254244
255245
256-func aP (aQ,P) = {
257- let G = getInteger(this, X(aQ, P))
246+func aN (aO,P) = {
247+ let G = getInteger(this, X(aO, P))
258248 if ($isInstanceOf(G, "Int"))
259249 then {
260- let aR = G
261- if ((aR != 0))
250+ let aP = G
251+ if ((aP != 0))
262252 then true
263253 else false
264254 }
265255 else false
266256 }
267257
268258
269-func aS (aK,aT,aU) = {
270- let aL = value(aK.payments[0])
271- let aM = value(aL.amount)
272- let aN = if (!(isDefined(aL.assetId)))
259+func aQ (aI,aR,aS) = {
260+ let aJ = value(aI.payments[0])
261+ let aK = value(aJ.amount)
262+ let aL = if (!(isDefined(aJ.assetId)))
273263 then unit
274- else if (if ((size(aT) > 0))
275- then (toBase58String(value(aL.assetId)) == aT)
264+ else if (if ((size(aR) > 0))
265+ then (toBase58String(value(aJ.assetId)) == aR)
276266 else false)
277- then aL.assetId
267+ then aJ.assetId
278268 else throw("Wrong asset id")
279- if (if ((aN == unit))
280- then (aT != "")
269+ if (if ((aL == unit))
270+ then (aR != "")
281271 else false)
282272 then throw("Wrong asset id")
283- else if ((aU != aM))
273+ else if ((aS != aK))
284274 then throw("Payment don't match")
285- else $Tuple2(aM, aN)
275+ else $Tuple2(aK, aL)
286276 }
287277
288278
289-func aV (aN) = if (if (if ((aN != toBase58String(g)))
290- then (aN != toBase58String(i))
279+func aT (aL) = if (if (if ((aL != toBase58String(g)))
280+ then (aL != toBase58String(i))
291281 else false)
292- then (aN != toBase58String(h))
282+ then (aL != toBase58String(h))
293283 else false)
294284 then throw("Only SIGN, USDN or WAVES accepted")
295285 else true
296286
297287
298-func aW (aN,aX) = {
288+func aU (aL,aV) = {
289+ let aW = if (a)
290+ then 1
291+ else y("waves_min_sell")
292+ let aX = 1000000
299293 let aY = if (a)
300294 then 1
301- else y("waves_min_sell")
302- let aZ = 1000000
303- let ba = if (a)
304- then 1
305295 else (y(("certification_fee_" + toBase58String(g))) * 2)
306- if (if (if (if (if ((aN == toBase58String(h)))
307- then (aZ > aX)
296+ if (if (if (if (if ((aL == toBase58String(h)))
297+ then (aX > aV)
308298 else false)
309- then (aX != 0)
299+ then (aV != 0)
310300 else false)
311301 then true
312- else if (if ((aN == toBase58String(g)))
313- then (ba > aX)
302+ else if (if ((aL == toBase58String(g)))
303+ then (aY > aV)
314304 else false)
315- then (aX != 0)
305+ then (aV != 0)
316306 else false)
317307 then true
318- else if (if ((aN == toBase58String(i)))
319- then (aY > aX)
308+ else if (if ((aL == toBase58String(i)))
309+ then (aW > aV)
320310 else false)
321- then (aX != 0)
311+ then (aV != 0)
322312 else false)
323313 then throw("Wrong minimum sell price")
324314 else true
325315 }
326316
327317
328-@Callable(aK)
329-func addArtwork (F,D,aE,aF,aG,bb,aH,an,ar,ao,as,ap) = if (!(p))
318+@Callable(aI)
319+func addArtwork (F,D,aC,aD,aE,aZ,aF,an,ar,ao,as,ap) = if (!(p))
330320 then throw(q)
331321 else {
332- let P = toBase58String(aK.transactionId)
333- let bc = lastBlock.timestamp
334- let N = toBase58String(aK.caller.bytes)
322+ let P = toBase58String(aI.transactionId)
323+ let ba = lastBlock.timestamp
324+ let N = toBase58String(aI.caller.bytes)
335325 if (!(K(F)))
336326 then throw("Hash should be 64 characters maximum")
337327 else {
338- let bd = ay(ap, as)
339- let aC = bd._1
340- let aD = bd._2
341- let be = aB(N, an, ao, aC, ar, aD, aE, aF, aG, aH)
342- if ((be != ""))
328+ let bb = ay(ap, as)
329+ let aA = bb._1
330+ let aB = bb._2
331+ let bc = az(N, an, ao, aA, ar, aB, aC, aD, aE, aF)
332+ if ((bc != ""))
343333 then throw("Something went wrong!")
344334 else {
345- let bf = aJ(aK)
346- let aM = bf._1
347- let aN = bf._2
348- if (!(isDefined(aM)))
335+ let bd = aH(aI)
336+ let aK = bd._1
337+ let aL = bd._2
338+ if (!(isDefined(aK)))
349339 then throw("Something went wrong")
350340 else {
351- let bg = x(al(F, N))
352- if ((bg != ""))
341+ let be = x(al(F, N))
342+ if ((be != ""))
353343 then throw("You already added it")
354344 else {
355- let bh = x(ai(F))
356- if ((bh != ""))
345+ let bf = x(ai(F))
346+ if ((bf != ""))
357347 then throw("Hash already registered")
358348 else {
359- let bi = C(D, N, F)
360- if (!(bi))
349+ let bg = C(D, N, F)
350+ if (!(bg))
361351 then throw("Sign Certificate not found for this address.")
362- else [StringEntry(ai(F), N), StringEntry(al(F, N), P), IntegerEntry(O(N, P), bc), StringEntry(Q(N, P), aE), StringEntry(R(N, P), aF), StringEntry(S(N, P), an), StringEntry(U(N, P), ao), StringEntry(T(N, P), ar), StringEntry(Z(N, P), aD), StringEntry(aa(N, P), aC), StringEntry(ac(N, P), bb), StringEntry(ab(N, P), aG), IntegerEntry(V(N, P), aH), StringEntry(W(N, P), D), IntegerEntry(X(N, P), 0), BooleanEntry(Y(N, P), false), StringEntry(aj(N, D), P), StringEntry(ag(N, P), F), ScriptTransfer(Address(fromBase58String(d)), aM, aN)]
352+ else [StringEntry(ai(F), N), StringEntry(al(F, N), P), IntegerEntry(O(N, P), ba), StringEntry(Q(N, P), aC), StringEntry(R(N, P), aD), StringEntry(S(N, P), an), StringEntry(U(N, P), ao), StringEntry(T(N, P), ar), StringEntry(Z(N, P), aB), StringEntry(aa(N, P), aA), StringEntry(ac(N, P), aZ), StringEntry(ab(N, P), aE), IntegerEntry(V(N, P), aF), StringEntry(W(N, P), D), IntegerEntry(X(N, P), 0), BooleanEntry(Y(N, P), false), StringEntry(aj(N, D), P), StringEntry(ag(N, P), F), ScriptTransfer(Address(fromBase58String(d)), aK, aL)]
363353 }
364354 }
365355 }
366356 }
367357 }
368358 }
369359
370360
371361
372-@Callable(aK)
373-func updateArtwork (ah,aE,aF,aG,bb,aH,an,ar,ao,as,ap) = if (!(p))
362+@Callable(aI)
363+func updateArtwork (ah,aC,aD,aE,aZ,aF,an,ar,ao,as,ap) = if (!(p))
374364 then throw(q)
375365 else {
376- let bj = toBase58String(aK.transactionId)
377- let N = toBase58String(aK.caller.bytes)
378- let bk = ay(ap, as)
379- let aC = bk._1
380- let aD = bk._2
381- let be = aB(N, an, ao, aC, ar, aD, aE, aF, aG, aH)
382- if ((be != ""))
366+ let bh = toBase58String(aI.transactionId)
367+ let N = toBase58String(aI.caller.bytes)
368+ let bi = ay(ap, as)
369+ let aA = bi._1
370+ let aB = bi._2
371+ let bc = az(N, an, ao, aA, ar, aB, aC, aD, aE, aF)
372+ if ((bc != ""))
383373 then throw("Something went wrong!")
384374 else {
385- let bg = x(Q(N, ah))
386- if ((bg == ""))
375+ let be = x(Q(N, ah))
376+ if ((be == ""))
387377 then throw("Entry not found")
388378 else {
389- let bl = x(af(N, ah))
390- if ((bl == "ILLEGAL"))
379+ let bj = x(af(N, ah))
380+ if ((bj == "ILLEGAL"))
391381 then throw("Cannot update ILLEGAL artwork")
392- else if (!(aP(N, ah)))
393- then [StringEntry(Q(N, ah), aE), StringEntry(R(N, ah), aF), StringEntry(S(N, ah), an), StringEntry(U(N, ah), ao), StringEntry(T(N, ah), ar), StringEntry(aa(N, ah), aC), StringEntry(Z(N, ah), aD), IntegerEntry(V(N, ah), aH), StringEntry(ab(N, ah), aG), StringEntry(ac(N, ah), bb)]
382+ else if (!(aN(N, ah)))
383+ then [StringEntry(Q(N, ah), aC), StringEntry(R(N, ah), aD), StringEntry(S(N, ah), an), StringEntry(U(N, ah), ao), StringEntry(T(N, ah), ar), StringEntry(aa(N, ah), aA), StringEntry(Z(N, ah), aB), IntegerEntry(V(N, ah), aF), StringEntry(ab(N, ah), aE), StringEntry(ac(N, ah), aZ)]
394384 else throw("Already minted")
395385 }
396386 }
397387 }
398388
399389
400390
401-@Callable(aK)
402-func flagArtwork (P,bm,bl) = {
403- let N = toString(addressFromPublicKey(aK.callerPublicKey))
404- let bn = toBase58String(aK.transactionId)
391+@Callable(aI)
392+func flagArtwork (P,bk,bj) = {
393+ let N = toString(addressFromPublicKey(aI.callerPublicKey))
394+ let bl = toBase58String(aI.transactionId)
405395 if (containsElement([j, k, toString(this)], N))
406- then if ((bl == "CONSENT"))
407- then [StringEntry(af(bm, P), bl)]
408- else if ((bl == ""))
409- then [StringEntry(af(bm, P), bl)]
410- else if ((bl == "ILLEGAL"))
411- then [StringEntry(af(bm, P), bl), StringEntry(Q(bm, P), "ILLEGAL CONTENT"), StringEntry(R(bm, P), "ILLEGAL CONTENT"), StringEntry(S(bm, P), ""), StringEntry(U(bm, P), ""), StringEntry(aa(bm, P), "")]
412- else throw(("Unknow status " + bl))
396+ then if ((bj == "CONSENT"))
397+ then [StringEntry(af(bk, P), bj)]
398+ else if ((bj == ""))
399+ then [StringEntry(af(bk, P), bj)]
400+ else if ((bj == "ILLEGAL"))
401+ then [StringEntry(af(bk, P), bj), StringEntry(Q(bk, P), "ILLEGAL CONTENT"), StringEntry(R(bk, P), "ILLEGAL CONTENT"), StringEntry(S(bk, P), ""), StringEntry(U(bk, P), ""), StringEntry(aa(bk, P), "")]
402+ else throw(("Unknow status " + bj))
413403 else throw("You are not allowed")
414404 }
415405
416406
417407
418-@Callable(aK)
419-func deleteArtwork (P,bm) = {
420- let N = toString(addressFromPublicKey(aK.callerPublicKey))
421- let bn = toBase58String(aK.transactionId)
422- let aQ = if (containsElement([j, k, toString(this)], N))
423- then bm
408+@Callable(aI)
409+func deleteArtwork (P,bk) = {
410+ let N = toString(addressFromPublicKey(aI.callerPublicKey))
411+ let bl = toBase58String(aI.transactionId)
412+ let aO = if (containsElement([j, k, toString(this)], N))
413+ then bk
424414 else N
425- let bg = x(Q(aQ, P))
426- if ((bg == ""))
415+ let be = x(Q(aO, P))
416+ if ((be == ""))
427417 then throw("No art matching for this address")
428418 else {
429- let F = x(ag(aQ, P))
419+ let F = x(ag(aO, P))
430420 if ((F == ""))
431421 then throw("No art hash matching for this address")
432422 else {
433- let D = x(W(aQ, P))
423+ let D = x(W(aO, P))
434424 if ((D == ""))
435425 then throw("No SIGN ID matching")
436426 else {
437- let bo = [DeleteEntry(O(aQ, P)), DeleteEntry(Q(aQ, P)), DeleteEntry(R(aQ, P)), DeleteEntry(S(aQ, P)), DeleteEntry(U(aQ, P)), DeleteEntry(T(aQ, P)), DeleteEntry(Z(aQ, P)), DeleteEntry(aa(aQ, P)), DeleteEntry(ac(aQ, P)), DeleteEntry(ab(aQ, P)), DeleteEntry(V(aQ, P)), DeleteEntry(W(aQ, P)), DeleteEntry(X(aQ, P)), DeleteEntry(Y(aQ, P)), DeleteEntry(af(bm, P)), DeleteEntry(ai(F)), DeleteEntry(aj(aQ, D)), DeleteEntry(al(F, aQ))]
438- if (!(aP(aQ, P)))
427+ let bm = [DeleteEntry(O(aO, P)), DeleteEntry(Q(aO, P)), DeleteEntry(R(aO, P)), DeleteEntry(S(aO, P)), DeleteEntry(U(aO, P)), DeleteEntry(T(aO, P)), DeleteEntry(Z(aO, P)), DeleteEntry(aa(aO, P)), DeleteEntry(ac(aO, P)), DeleteEntry(ab(aO, P)), DeleteEntry(V(aO, P)), DeleteEntry(W(aO, P)), DeleteEntry(X(aO, P)), DeleteEntry(Y(aO, P)), DeleteEntry(af(bk, P)), DeleteEntry(ai(F)), DeleteEntry(aj(aO, D)), DeleteEntry(al(F, aO))]
428+ if (!(aN(aO, P)))
439429 then if (!(p))
440430 then throw(q)
441- else bo
431+ else bm
442432 else if (containsElement([j, toString(this)], N))
443- then bo
433+ then bm
444434 else throw("Art already minted, you cannot delete it")
445435 }
446436 }
447437 }
448438 }
449439
450440
451441
452-@Callable(aK)
453-func sellArtwork (P,aX,bp,aN) = if (!(p))
442+@Callable(aI)
443+func sellArtwork (P,aV,bn,aL) = if (!(p))
454444 then throw(q)
455445 else {
456- let bn = toBase58String(aK.transactionId)
457- let N = toBase58String(aK.caller.bytes)
458- let bq = lastBlock.timestamp
459- let br = x(Q(N, P))
460- if ((br == ""))
446+ let bl = toBase58String(aI.transactionId)
447+ let N = toBase58String(aI.caller.bytes)
448+ let bo = lastBlock.timestamp
449+ let bp = x(Q(N, P))
450+ if ((bp == ""))
461451 then throw("This art doesn't match match your account")
462452 else {
463- let bs = x(U(N, P))
464- if ((size(split(bs, "/")[0]) != 59))
453+ let bq = x(U(N, P))
454+ if ((size(split(bq, "/")[0]) != 59))
465455 then throw("You cannot sell art with no export file")
466456 else {
467- let bt = x(T(N, P))
468- if ((size(bt) != 64))
457+ let br = x(T(N, P))
458+ if ((size(br) != 64))
469459 then throw("You cannot sell art with no export hash")
470- else if (!(aV(aN)))
460+ else if (!(aT(aL)))
471461 then throw("Something wen wrong!")
472- else if (!(aW(aN, aX)))
462+ else if (!(aU(aL, aV)))
473463 then throw("Something wen wrong!")
474464 else {
475- let aI = aw(N)
476- if ((aI != ""))
477- then throw(aI)
465+ let aG = aw(N)
466+ if ((aG != ""))
467+ then throw(aG)
478468 else {
479- let bu = z(X(N, P))
480- let bv = z(V(N, P))
481- if ((bp > 10))
469+ let bs = z(X(N, P))
470+ let bt = z(V(N, P))
471+ if ((bn > 10))
482472 then throw("10 editions max per artwork")
483- else if (if ((bu != 0))
484- then (bu == bv)
473+ else if (if ((bs != 0))
474+ then (bs == bt)
485475 else false)
486476 then throw("Max edition reached.")
487- else if (if ((bu > 0))
488- then (bv != bp)
477+ else if (if ((bs > 0))
478+ then (bt != bn)
489479 else false)
490480 then throw("Cannot change maximum issuable anymore")
491481 else {
492- let bw = if (if ((aX > 0))
493- then (bp > 0)
482+ let bu = if (if ((aV > 0))
483+ then (bn > 0)
494484 else false)
495485 then true
496486 else false
497-[BooleanEntry(Y(N, P), bw), IntegerEntry(ad(N, P), aX), IntegerEntry(V(N, P), bp), StringEntry(ae(N, P), aN)]
487+[BooleanEntry(Y(N, P), bu), IntegerEntry(ad(N, P), aV), IntegerEntry(V(N, P), bn), StringEntry(ae(N, P), aL)]
498488 }
499489 }
500490 }
501491 }
502492 }
503493 }
504494
505495
506496
507-@Callable(aK)
508-func buyArtwork (P,bx) = if (!(p))
497+@Callable(aI)
498+func buyArtwork (P,bv) = if (!(p))
509499 then throw(q)
510500 else {
511- let bn = toBase58String(aK.transactionId)
512- let N = toBase58String(aK.caller.bytes)
513- let by = z("total_nft_issued")
514- let D = x(W(bx, P))
515- let br = x(Q(bx, P))
516- if ((br == ""))
501+ let bl = toBase58String(aI.transactionId)
502+ let N = toBase58String(aI.caller.bytes)
503+ let bw = z("total_nft_issued")
504+ let D = x(W(bv, P))
505+ let bp = x(Q(bv, P))
506+ if ((bp == ""))
517507 then throw("Art doesn't exist")
518508 else {
519- let bz = x(S(bx, P))
520- let bs = x(U(bx, P))
521- let bt = x(T(bx, P))
522- let aC = x(aa(bx, P))
523- let aD = x(Z(bx, P))
524- let aF = take(x(R(bx, P)), 50)
525- let bA = B(Y(bx, P))
526- let bu = z(X(bx, P))
527- let aU = z(ad(bx, P))
528- let aT = x(ae(bx, P))
529- let bB = x(ag(bx, P))
530- let bv = z(V(bx, P))
531- if (if (if ((0 >= aU))
509+ let bx = x(S(bv, P))
510+ let bq = x(U(bv, P))
511+ let br = x(T(bv, P))
512+ let aA = x(aa(bv, P))
513+ let aB = x(Z(bv, P))
514+ let aD = take(x(R(bv, P)), 50)
515+ let by = B(Y(bv, P))
516+ let bs = z(X(bv, P))
517+ let aS = z(ad(bv, P))
518+ let aR = x(ae(bv, P))
519+ let bz = x(ag(bv, P))
520+ let bt = z(V(bv, P))
521+ if (if (if ((0 >= aS))
532522 then true
533- else !(bA))
523+ else !(by))
534524 then true
535- else (0 >= bv))
525+ else (0 >= bt))
536526 then throw("Art not for sale")
537527 else {
538- let bC = aS(aK, aT, aU)
539- let aM = bC._1
540- let aN = bC._2
541- let bD = A(bx)
542- let bE = if ((bD == 1))
528+ let bA = aQ(aI, aR, aS)
529+ let aK = bA._1
530+ let aL = bA._2
531+ let bB = A(bv)
532+ let bC = if ((bB > height))
543533 then 0
544- else if ((aT == toBase58String(g)))
534+ else if ((aR == toBase58String(g)))
545535 then l
546536 else m
547- let bF = fraction(aM, bE, 100)
548- let bG = (aM - bF)
549- if ((bu == bv))
537+ let bD = fraction(aK, bC, 100)
538+ let bE = (aK - bD)
539+ if ((bs == bt))
550540 then throw("Art sold out")
551541 else {
552- let bH = (bu + 1)
553- let bI = lastBlock.timestamp
554- let bJ = ((((((((((((((((((((((((((("Creator: " + bx) + ",
542+ let bF = (bs + 1)
543+ let bG = lastBlock.timestamp
544+ let bH = ((((((((((((((((((((((((((("Creator: " + bv) + ",
555545 ArtID: ") + P) + ",
556546 SignID: ") + D) + ",
557- Artwork name: ") + br) + ",
558- Artwork description: ") + aF) + ",
559- Issue: ") + toString(bH)) + "/") + toString(bv)) + ",
560- Max issuable: ") + toString(bv)) + ",
561- Source hash: ") + bB) + ",
562- Display cid: ") + bz) + ",
563- Export cid: ") + bs) + ",
564- Export hash: ") + bt) + ",
565- Licence cid: ") + aC) + ",
566- Licence hash: ") + aD)
567- let bK = Issue(("SA_" + toString((by + 1))), bJ, 1, 0, false)
568- let bL = calculateAssetId(bK)
569- let bw = if ((bH == bv))
547+ Artwork name: ") + bp) + ",
548+ Artwork description: ") + aD) + ",
549+ Issue: ") + toString(bF)) + "/") + toString(bt)) + ",
550+ Max issuable: ") + toString(bt)) + ",
551+ Source hash: ") + bz) + ",
552+ Display cid: ") + bx) + ",
553+ Export cid: ") + bq) + ",
554+ Export hash: ") + br) + ",
555+ Licence cid: ") + aA) + ",
556+ Licence hash: ") + aB)
557+ let bI = Issue(("SA_" + toString((bw + 1))), bH, 1, 0, false)
558+ let bJ = calculateAssetId(bI)
559+ let bu = if ((bF == bt))
570560 then false
571561 else true
572-[IntegerEntry(X(bx, P), bH), StringEntry(("nft_" + toBase58String(bL)), ((((((("art_sold_" + toString(bH)) + "_of_") + toString(bv)) + "_") + P) + "_") + bx)), StringEntry(((((((("art_sold_" + toString(bH)) + "_of_") + toString(bv)) + "_") + P) + "_") + bx), ((((((((((N + "_") + toString(bI)) + "_") + bn) + "_") + toString(aU)) + "_") + aT) + "_") + toBase58String(bL))), IntegerEntry("total_nft_issued", (by + 1)), BooleanEntry(Y(bx, P), bw), bK, ScriptTransfer(Address(fromBase58String(bx)), bG, aN), ScriptTransfer(Address(fromBase58String(d)), bF, aN), ScriptTransfer(aK.caller, 1, bL)]
562+[IntegerEntry(X(bv, P), bF), StringEntry(("nft_" + toBase58String(bJ)), ((((((("art_sold_" + toString(bF)) + "_of_") + toString(bt)) + "_") + P) + "_") + bv)), StringEntry(((((((("art_sold_" + toString(bF)) + "_of_") + toString(bt)) + "_") + P) + "_") + bv), ((((((((((N + "_") + toString(bG)) + "_") + bl) + "_") + toString(aS)) + "_") + aR) + "_") + toBase58String(bJ))), IntegerEntry("total_nft_issued", (bw + 1)), BooleanEntry(Y(bv, P), bu), bI, ScriptTransfer(Address(fromBase58String(bv)), bE, aL), ScriptTransfer(Address(fromBase58String(d)), bD, aL), ScriptTransfer(aI.caller, 1, bJ)]
573563 }
574564 }
575565 }
576566 }
577567
578568

github/deemru/w8io/169f3d6 
183.44 ms