tx · 9Eg32Z6SJ7WXA35obFxybTRvjA6FRnkMyDHnx4ra7NEu

3MrWNTqFcHBqb58Za1A5crQrMV5KJ5DYhtA:  -0.01000000 Waves

2021.10.10 17:13 [1740275] smart account 3MrWNTqFcHBqb58Za1A5crQrMV5KJ5DYhtA > SELF 0.00000000 Waves

{ "type": 13, "id": "9Eg32Z6SJ7WXA35obFxybTRvjA6FRnkMyDHnx4ra7NEu", "fee": 1000000, "feeAssetId": null, "timestamp": 1633875218326, "version": 2, "chainId": 84, "sender": "3MrWNTqFcHBqb58Za1A5crQrMV5KJ5DYhtA", "senderPublicKey": "9abKuN1XmLjjire2feZH26PmcEWhEXxiHToWSmii3Gn2", "proofs": [ "2dbg7irijJwiMPFrH2ooQ6GXQwXvhtwVpMZES9Sc2qkMgaWzH9MizmvYkgb51NXc4et27Ph3iikZF87ftA6UM26R" ], "script": "base64:AAIFAAAAAAAAAEUIAhIFCgMBCAgSCQoHCAgICAgICBIICgYIAQEICAESBAoCCAgSBQoDCAgIEgMKAQgSBAoCCAgSBgoECAgICBIFCgMICAgAAABQAAAAAAh1bml0VGVzdAcAAAAACW9yYWNsZUZlZQkBAAAABXZhbHVlAAAAAQkABCYAAAABAgAAACMzTXBaUWp6R29nbWlmY0VLZThtRGQ2cmliTDdueFQ5QUN5ZQAAAAALZmVlUmVjZWl2ZXICAAAAIzNONjV4THE4SmNDZWFFaVIxVEpRN2RCcVhCdkV5NkU0OFd6AAAAAAhjZXJ0RGFwcAIAAAAjM014Y1hyTmJNWktZYVNyaGNmZU1tMmhabkJlQ3UzeVJXc3cAAAAACHVzZXJEYXBwCQEAAAAFdmFsdWUAAAABCQAEJgAAAAECAAAAIzNOOWNRZ1pGUEhIVnU4d3FzbjJEa1FGZWhnM2g4Q05pb29BAAAAAA13aGl0ZWxpc3REYXBwCQEAAAAFdmFsdWUAAAABCQAEJgAAAAECAAAAIzNOOXhaWUdwek1GRFh2WHVjdG1VNnpWOHFTem0yWmZGMzFmAAAAAAtVU0ROQXNzZXRJZAEAAAAgAIUpTOkTLqoXmGxvzdEleYQFDyLlDcuqJGsbsu9ZirwAAAAABm93bmVycwkABEwAAAACCQAEHQAAAAIFAAAACW9yYWNsZUZlZQIAAAAGb3duZXIxCQAETAAAAAIJAAQdAAAAAgUAAAAJb3JhY2xlRmVlAgAAAAZvd25lcjIFAAAAA25pbAAAAAAQVVNETkZpcnN0U2VsbEN1dAAAAAAAAAAAlgAAAAALZGFwcFJ1bm5pbmcJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQbAAAAAgUAAAAIdXNlckRhcHACAAAAFGNvbmZfZGFwcF9pc19ydW5uaW5nBgAAAAAObWFpbnRlbmFuY2VNU0cJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQdAAAAAgUAAAAIdXNlckRhcHACAAAAFGNvbmZfbWFpbnRlbmFuY2VfbXNnAgAAAAAAAAAADXVzZXJTdXNwZW5kZWQCAAAACVNVU1BFTkRFRAAAAAALdXNlclJlbW92ZWQCAAAAB1JFTU9WRUQAAAAAEHVzZXJVbnJlZ2lzdGVyZWQCAAAADFVOUkVHSVNURVJFRAAA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AAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAACmFydF9wcmljZV8FAAAABWFydElkAgAAAAFfBQAAAAZjYWxsZXIBAAAAEmtleUFzc2V0SWRBY2NlcHRlZAAAAAIAAAAGY2FsbGVyAAAABWFydElkCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAABJhcnRfYXNzZXRBY2NlcHRlZF8FAAAABWFydElkAgAAAAFfBQAAAAZjYWxsZXIBAAAAEWtleUhhc2hCeVR4aWRBZGRyAAAAAgAAAAZjYWxsZXIAAAAEdHhpZAkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAATZ2V0X2hhc2hieXR4aWRhZGRyXwUAAAAEdHhpZAIAAAABXwUAAAAGY2FsbGVyAQAAAA5rZXlPd25lckJ5SGFzaAAAAAEAAAAKc2hhMjU2SGFzaAkAASwAAAACAgAAABJnZXRfb3duZXJfYnlfaGFzaF8FAAAACnNoYTI1Nkhhc2gBAAAAEmtleVR4aWRCeUhhc2hPd25lcgAAAAIAAAAKc2hhMjU2SGFzaAAAAAZjYWxsZXIJAAEsAAAAAgIAAAAXZ2V0X3R4aWRfYnlfaGFzaF9vd25lcl8JAAJYAAAAAQkAC1QAAAABCQABmwAAAAEJAAEsAAAAAgUAAAAKc2hhMjU2SGFzaAUAAAAGY2FsbGVyAAAAABljdXJyZW50Q2VydGlmaWNhdGlvblByaWNlCQEAAAAZZ2V0SW50ZWdlckJ5S2V5RnJvbU9yYWNsZQAAAAEJAAEsAAAAAgIAAAASY2VydGlmaWNhdGlvbl9mZWVfCQACWAAAAAEFAAAAC1VTRE5Bc3NldElkAQAAABBnZXRBbW91bnRCeUJpZElkAAAAAQAAAAViaWRJZAkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkBAAAAD2dldEludGVnZXJCeUtleQAAAAEJAQAAAAhrZXlCaWRJZAAAAAEFAAAABWJpZElkAAAAAAAAAAAAAQAAABpnZXRBbW91bnRIaWdoZXN0QmlkQnlBcnRJZAAAAAEAAAAFYXJ0SWQEAAAABWJpZElkCQEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABCQEAAAASa2V5SGlnaGVzdEJpZEJpZElkAAAAAQUAAAAFYXJ0SWQDCQAAAAAAAAIFAAAABWJp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AgAAAAECAAAAFE1heCBpc3N1YWJsZSBub3Qgc2V0CQAFGQAAAAcFAAAACHRvdGFsTkZUBQAAAAthcnR3b3JrTmFtZQUAAAAKYW1vdW50U29sZAUAAAAMYXJ0d29ya1ByaWNlBQAAAAxwcmljZUFzc2V0SWQFAAAACm1heENhblNlbGwFAAAACGlzT25TYWxlAQAAAApnZXRCaWREYXRhAAAACQAAAAFpAAAABmNhbGxlcgAAAAZpc3N1ZXIAAAAFYXJ0SWQAAAAIYmlkT3duZXIAAAAFYmlkSWQAAAAMcHJpY2VBc3NldElkAAAADGFydHdvcmtQcmljZQAAAAVpc0JpZAQAAAAJY2hlY2tVc2VyCQEAAAAMdmFsaWRhdGVVc2VyAAAAAQUAAAAGaXNzdWVyAwMFAAAABWlzQmlkCQEAAAACIT0AAAACBQAAAAljaGVja1VzZXICAAAAAAcJAAACAAAAAQUAAAAJY2hlY2tVc2VyBAAAAApiaWREYXRhS2V5CQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAABGJpZF8FAAAABWFydElkAgAAAAFfBQAAAAZpc3N1ZXICAAAAAV8FAAAACGJpZE93bmVyAgAAAAFfBQAAAAViaWRJZAQAAAAMdDAxMzUxOTEzNjQ4AwUAAAAFaXNCaWQJAQAAABZnZXRQcmljZUFzc2V0SWRGcm9tQmlkAAAAAQUAAAAKYmlkRGF0YUtleQkBAAAAFHZhbGlkYXRlUHJpY2VBc3NldElkAAAAAwUAAAABaQUAAAAMcHJpY2VBc3NldElkBQAAAAxhcnR3b3JrUHJpY2UEAAAABmFtb3VudAgFAAAADHQwMTM1MTkxMzY0OAAAAAJfMQQAAAAHYXNzZXRJZAgFAAAADHQwMTM1MTkxMzY0OAAAAAJfMgkABRUAAAADBQAAAApiaWREYXRhS2V5BQAAAAZhbW91bnQFAAAAB2Fzc2V0SWQBAAAAEWdldENvbW1pc3Npb25EYXRhAAAABQAAAAZpc3N1ZXIAAAAHYXNzZXRJZAAAAAZhbW91bnQAAAAKYW1vdW50U29sZAAAAAptYXhDYW5TZWxsBAAAAA1pc1doaXRlbGlzdGVkCQEAAAAOY2hlY2tXaGl0ZWxpc3QA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QmlkBAAAAApjYWxsZXJEYXRhCQEAAAAMaWRDYWxsZXJEYXRlAAAAAQUAAAABaQQAAAACaWQIBQAAAApjYWxsZXJEYXRhAAAAAl8xBAAAAAZjYWxsZXIIBQAAAApjYWxsZXJEYXRhAAAAAl8yBAAAAARkYXRlCAUAAAAKY2FsbGVyRGF0YQAAAAJfMwQAAAAHYXJ0RGF0YQkBAAAACmdldEFydERhdGEAAAAEBQAAAAFpBQAAAAZpc3N1ZXIFAAAABWFydElkBQAAAAVpc0JpZAQAAAAIdG90YWxORlQIBQAAAAdhcnREYXRhAAAAAl8xBAAAAAthcnR3b3JrTmFtZQgFAAAAB2FydERhdGEAAAACXzIEAAAACmFtb3VudFNvbGQIBQAAAAdhcnREYXRhAAAAAl8zBAAAAAxhcnR3b3JrUHJpY2UIBQAAAAdhcnREYXRhAAAAAl80BAAAAAxwcmljZUFzc2V0SWQIBQAAAAdhcnREYXRhAAAAAl81BAAAAAptYXhDYW5TZWxsCAUAAAAHYXJ0RGF0YQAAAAJfNgQAAAAIaXNPblNhbGUIBQAAAAdhcnREYXRhAAAAAl83BAAAAAdiaWREYXRhCQEAAAAKZ2V0QmlkRGF0YQAAAAkFAAAAAWkFAAAABmNhbGxlcgUAAAAGaXNzdWVyBQAAAAVhcnRJZAUAAAAIYmlkT3duZXIFAAAABWJpZElkBQAAAAxwcmljZUFzc2V0SWQFAAAADGFydHdvcmtQcmljZQUAAAAFaXNCaWQEAAAACmJpZERhdGFLZXkIBQAAAAdiaWREYXRhAAAAAl8xBAAAAAZhbW91bnQIBQAAAAdiaWREYXRhAAAAAl8yBAAAAAdhc3NldElkCAUAAAAHYmlkRGF0YQAAAAJfMwQAAAANY29tbWlzaW9uRGF0YQkBAAAAEWdldENvbW1pc3Npb25EYXRhAAAABQUAAAAGaXNzdWVyCQEAAAAFdmFsdWUAAAABBQAAAAdhc3NldElkBQAAAAZhbW91bnQFAAAACmFtb3VudFNvbGQFAAAACm1heENhblNlbGwEAAAAD2Ftb3VudEZvclNjb25leAgFAAAADWNvbW1pc2lvbkRhdGEAAAACXzEEAAAAEGFtb3VudEZvckNyZWF0b3IIBQAAAA1jb21taXNpb25EYXRhAAAAAl8yBAAAAA1u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dEJpZE5vblRyYWRpdGlvbmFsAAAAAwAAAAFpAAAABWFydElkAAAABmlzc3VlcgQAAAAMdDAyNzcwOTI3NzQ3CQEAAAAMaWRDYWxsZXJEYXRlAAAAAQUAAAABaQQAAAACaWQIBQAAAAx0MDI3NzA5Mjc3NDcAAAACXzEEAAAABmNhbGxlcggFAAAADHQwMjc3MDkyNzc0NwAAAAJfMgQAAAAEZGF0ZQgFAAAADHQwMjc3MDkyNzc0NwAAAAJfMwQAAAAMdDAyNzc1MjI3Nzg4CQEAAAAJaXNQYXltZW50AAAAAQUAAAABaQQAAAAHcGF5bWVudAgFAAAADHQwMjc3NTIyNzc4OAAAAAJfMQQAAAAGYW1vdW50CAUAAAAMdDAyNzc1MjI3Nzg4AAAAAl8yBAAAAAdhc3NldElkAwkBAAAAASEAAAABCQEAAAAJaXNEZWZpbmVkAAAAAQgFAAAAB3BheW1lbnQAAAAHYXNzZXRJZAkAAAIAAAABAgAAABZPbmx5IFVTRE4gaXMgYWNjZXB0ZWQhCQACWAAAAAEJAQAAAAV2YWx1ZQAAAAEIBQAAAAdwYXltZW50AAAAB2Fzc2V0SWQEAAAABmJpZE5icgkBAAAAD2dldEludGVnZXJCeUtleQAAAAEJAAEsAAAAAgIAAAASY3VycmVudF9iaWRhbW91bnRfBQAAAAVhcnRJZAQAAAAPbWluQXJ0d29ya1ByaWNlCQEAAAALdmFsdWVPckVsc2UAAAACCQEAAAAPZ2V0SW50ZWdlckJ5S2V5AAAAAQkBAAAACGtleVByaWNlAAAAAgUAAAAGaXNzdWVyBQAAAAVhcnRJZAkAAGgAAAACBQAAABljdXJyZW50Q2VydGlmaWNhdGlvblByaWNlAAAAAAAAAAACAwkBAAAAASEAAAABCQEAAAAQYWNjZXB0ZWRBc3NldElkcwAAAAEFAAAAB2Fzc2V0SWQJAAACAAAAAQIAAAASYXNzZXQgbm90IGFjY2VwdGVkAwkAAGYAAAACBQAAAA9taW5BcnR3b3JrUHJpY2UFAAAABmFtb3VudAkAAAIAAAABAgAAABdCaWQgaXMgYmVsb3cgbWluIHByaWNlIQQAAAAKYW1vdW50U29sZAkBAAAAD2dldEludGVnZXJCeUtleQAAAAEJAQAAAAlrZXlJc3N1ZWQAAAACBQAA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AAAABQAAAAFpAAAABWFydElkAAAABmlzc3VlcgAAAAViaWRJZAAAAAhiaWRPd25lcgQAAAAGY2FsbGVyCQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMDCQEAAAACIT0AAAACBQAAAAZjYWxsZXIFAAAABmlzc3VlcgkAAAIAAAABAgAAABlZb3UgY2Fubm90IGRvIHRoaXMgYWN0aW9uCQEAAAAHYnV5TWludAAAAAYFAAAAAWkFAAAABWFydElkBQAAAAZpc3N1ZXIFAAAABWJpZElkBQAAAAhiaWRPd25lcgYBAAAADnJlc3RhcnRBdWN0aW9uAAAAAgAAAAVhcnRJZAAAAAZpc3N1ZXIEAAAACmFtb3VudFNvbGQJAQAAAA9nZXRJbnRlZ2VyQnlLZXkAAAABCQEAAAAJa2V5SXNzdWVkAAAAAgUAAAAGaXNzdWVyBQAAAAVhcnRJZAQAAAAKbWF4Q2FuU2VsbAkBAAAAD2dldEludGVnZXJCeUtleQAAAAEJAQAAAAprZXlNYXhNaW50AAAAAgUAAAAGaXNzdWVyBQAAAAVhcnRJZAQAAAAMb2xkRW5kSGVpZ2h0CQEAAAAPZ2V0SW50ZWdlckJ5S2V5AAAAAQkBAAAADGtleUVuZEhlaWdodAAAAAIFAAAABmlzc3VlcgUAAAAFYXJ0SWQEAAAACGR1cmF0aW9uCQEAAAAPZ2V0SW50ZWdlckJ5S2V5AAAAAQkBAAAAC2tleUR1cmF0aW9uAAAAAgUAAAAGaXNzdWVyBQAAAAVhcnRJZAQAAAAJZW5kSGVpZ2h0CQAAZAAAAAIFAAAACGR1cmF0aW9uBQAAAAZoZWlnaHQDCQAAZgAAAAIFAAAABmhlaWdodAUAAAAMb2xkRW5kSGVpZ2h0AwkAAAAAAAACBQAAAAphbW91bnRTb2xkBQAAAAptYXhDYW5TZWxsCQAAAgAAAAECAAAAJkNhbid0IHJlc3RhcnQgYXVjdGlvbiwgbWF4IGFtb3VudCBzb2xkCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAMa2V5RW5kSGVpZ2h0AAAAAgUAAAAGaXNzdWVyBQAAAAVhcnRJZAUAAAAJZW5kSGVpZ2h0CQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAQAAABJrZXlIaWdoZXN0QmlkQmlkSWQAAAABBQAAAAVhcnRJZAUAAAADbmlsCQAAAgAAAAECAAAAJFByZXZpb3VzIGF1Y3Rpb24gaXNuJ3QgY29tcGxldGVkIHlldAEAAAAUYWNjZXB0QmlkVHJhZGl0aW9uYWwAAAAFAAAAAWkAAAAFYXJ0SWQAAAAGaXNzdWVyAAAABWJpZElkAAAACGJpZE93bmVyBAAAAAllbmRIZWlnaHQJAQAAAA9nZXRJbnRlZ2VyQnlLZXkAAAABCQEAAAAMa2V5RW5kSGVpZ2h0AAAAAgUAAAAGaXNzdWVyBQAAAAVhcnRJZAQAAAAMaGlnaGVzdEJpZElkCQEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABCQEAAAASa2V5SGlnaGVzdEJpZEJpZElkAAAAAQUAAAAFYXJ0SWQDCQAAZgAAAAIFAAAABmhlaWdodAUAAAAJZW5kSGVpZ2h0AwkAAAAAAAACBQAAAAViaWRJZAUAAAAMaGlnaGVzdEJpZElkBAAAAAtidXlNaW50RGF0YQkBAAAAB2J1eU1pbnQAAAAGBQAAAAFpBQAAAAVhcnRJZAUAAAAGaXNzdWVyBQAAAAViaWRJZAUAAAAIYmlkT3duZXIGBAAAABJyZXN0YXJ0QXVjdGlvbkRhdGEJAQAAAA5yZXN0YXJ0QXVjdGlvbgAAAAIFAAAABWFydElkBQAAAAZpc3N1ZXIJAAROAAAAAgUAAAAScmVzdGFydEF1Y3Rpb25EYXRhBQAAAAtidXlNaW50RGF0YQkAAAIAAAABAgAAABxUaGlzIGlzIG5vdCB0aGUgd2lubmluZyBiaWQhCQAAAgAAAAECAAAAIVRoaXMgYXVjdGlvbiBpcyBub3QgeWV0IGZpbmlzaGVkIQEAAAANY2FuY2VsQmlkSW1wbAAAAAQAAAABaQAAAAVhcnRJZAAAAAZpc3N1ZXIAAAAFYmlkSWQEAAAADHQwMjg5NDIyOTA5NAkBAAAADGlkQ2FsbGVyRGF0ZQAAAAEFAAAAAWkEAAAAAmlkCAUAAAAMdDAyODk0MjI5MDk0AAAAAl8xBAAAAAZjYWxsZXIIBQAAAAx0MDI4OTQyMjkwOTQAAAACXzIEAAAABGRhdGUIBQAAAAx0MDI4OTQyMjkwOTQAAAACXzMEAAAABmJpZE5icgkBAAAAD2dldElu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C2VudGl0bGVtZW50BAAAAAx0MDE3NzQwMTc3ODEJAQAAAAxpZENhbGxlckRhdGUAAAABBQAAAAFpBAAAAAVhcnRJZAgFAAAADHQwMTc3NDAxNzc4MQAAAAJfMQQAAAAGY2FsbGVyCAUAAAAMdDAxNzc0MDE3NzgxAAAAAl8yBAAAAARkYXRlCAUAAAAMdDAxNzc0MDE3NzgxAAAAAl8zBAAAAA92YWxpZGF0ZUFydHdvcmsJAQAAABN2YWxpZGF0ZUFydHdvcmtEYXRhAAAABQUAAAAGY2FsbGVyBQAAAApjaWREaXNwbGF5BQAAAARuYW1lBQAAAAtkZXNjcmlwdGlvbgUAAAAEdGFncwMJAQAAAAIhPQAAAAIFAAAAD3ZhbGlkYXRlQXJ0d29yawIAAAAACQAAAgAAAAECAAAAFVNvbWV0aGluZyB3ZW50IHdyb25nIQQAAAAMdDAxODE3MDE4MjEyCQEAAAAPdmFsaWRhdGVQYXltZW50AAAAAQUAAAABaQQAAAAGYW1vdW50CAUAAAAMdDAxODE3MDE4MjEyAAAAAl8xBAAAAAdhc3NldElkCAUAAAAMdDAxODE3MDE4MjEyAAAAAl8yAwkBAAAAASEAAAABCQEAAAAJaXNEZWZpbmVkAAAAAQUAAAAGYW1vdW50CQAAAgAAAAECAAAAFFNvbWV0aGluZyB3ZW50IHdyb25nBAAAAAplbnRyeUV4aXN0CQEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABCQEAAAASa2V5VHhpZEJ5SGFzaE93bmVyAAAAAgUAAAAKc2hhMjU2SGFzaAUAAAAGY2FsbGVyAwkBAAAAAiE9AAAAAgUAAAAKZW50cnlFeGlzdAIAAAAACQAAAgAAAAECAAAAFFlvdSBhbHJlYWR5IGFkZGVkIGl0BAAAAAloYXNoRXhpc3QJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEJAQAAAA5rZXlPd25lckJ5SGFzaAAAAAEFAAAACnNoYTI1Nkhhc2gDCQEAAAACIT0AAAACBQAAAAloYXNoRXhpc3QCAAAAAAkAAAIAAAABAgAAAB9UaGlzIGhhc2ggaXMgYWxyZWFkeSByZWdpc3RlcmVkCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAAA5rZXlPd25lckJ5SGFzaAAAAAEF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AAZpc3N1ZXIFAAAABWFydElkAwkAAAAAAAACBQAAAAthdWN0aW9uVHlwZQUAAAAMYXVjdGlvblR5cGUxCQEAAAAUc2V0QmlkTm9uVHJhZGl0aW9uYWwAAAADBQAAAAFpBQAAAAVhcnRJZAUAAAAGaXNzdWVyAwkAAAAAAAACBQAAAAthdWN0aW9uVHlwZQUAAAAMYXVjdGlvblR5cGUyCQEAAAARc2V0QmlkVHJhZGl0aW9uYWwAAAADBQAAAAFpBQAAAAVhcnRJZAUAAAAGaXNzdWVyCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACAgAAABZVbmtub3duIGF1Y3Rpb24gdHlwZSA6BQAAAAthdWN0aW9uVHlwZQIAAAAbLCBwbGVhc2UgY29udGFjdCB0aGUgYWRtaW5zAAAAAWkBAAAACWFjY2VwdEJpZAAAAAQAAAAFYXJ0SWQAAAAGaXNzdWVyAAAABWJpZElkAAAACGJpZE93bmVyBAAAAAthdWN0aW9uVHlwZQkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQkBAAAADmtleUF1Y3Rpb25UeXBlAAAAAgUAAAAGaXNzdWVyBQAAAAVhcnRJZAMJAAAAAAAAAgUAAAALYXVjdGlvblR5cGUFAAAADGF1Y3Rpb25UeXBlMQkBAAAAF2FjY2VwdEJpZE5vblRyYWRpdGlvbmFsAAAABQUAAAABaQUAAAAFYXJ0SWQFAAAABmlzc3VlcgUAAAAFYmlkSWQFAAAACGJpZE93bmVyAwkAAAAAAAACBQAAAAthdWN0aW9uVHlwZQUAAAAMYXVjdGlvblR5cGUyCQEAAAAUYWNjZXB0QmlkVHJhZGl0aW9uYWwAAAAFBQAAAAFpBQAAAAVhcnRJZAUAAAAGaXNzdWVyBQAAAAViaWRJZAUAAAAIYmlkT3duZXIJAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAAFlVua25vd24gYXVjdGlvbiB0eXBlIDoFAAAAC2F1Y3Rpb25UeXBlAgAAABssIHBsZWFzZSBjb250YWN0IHRoZSBhZG1pbnMAAAABaQEAAAAJY2FuY2VsQmlkAAAAAwAAAAVhcnRJZAAAAAZpc3N1ZXIAAAAFYmlkSWQEAAAAC2F1Y3Rpb25UeXBlCQEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABCQEAAAAOa2V5QXVjdGlvblR5cGUAAAACBQAAAAZpc3N1ZXIFAAAABWFydElkAwkAAAAAAAACBQAAAAthdWN0aW9uVHlwZQUAAAAMYXVjdGlvblR5cGUxCQEAAAANY2FuY2VsQmlkSW1wbAAAAAQFAAAAAWkFAAAABWFydElkBQAAAAZpc3N1ZXIFAAAABWJpZElkCQEAAAAYY2FuY2VsQmlkSW1wbFRyYWRpdGlvbmFsAAAABAUAAAABaQUAAAAFYXJ0SWQFAAAABmlzc3VlcgUAAAAFYmlkSWQAAAAAdWXlVw==", "height": 1740275, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: eyngvcvBaC6JNhdRWfV71bi21pqzdqLD7pJYSfoVBmE Next: 9HvNHDvA6y492HZUNyNxjyRXr1xV4KdBb7MunQHp4gzb Diff:
OldNewDifferences
100100 func S (T) = ("nft_issued_" + T)
101101
102102
103-func U (E,G) = ((("art_onsale_" + G) + "_") + E)
103+func U (T) = ("nft_artId_" + T)
104104
105105
106-func V (E,G) = ((("art_entitlement_" + G) + "_") + E)
106+func V (E,G) = ((("art_royalty_" + G) + "_") + E)
107107
108108
109-func W (E,G) = ((("art_tags_" + G) + "_") + E)
109+func W (E,G) = ((("art_onsale_" + G) + "_") + E)
110110
111111
112-func X (E,G) = ((("art_type_" + G) + "_") + E)
112+func X (E,G) = ((("art_entitlement_" + G) + "_") + E)
113113
114114
115-func Y (E,G) = ((("art_price_" + G) + "_") + E)
115+func Y (E,G) = ((("art_tags_" + G) + "_") + E)
116116
117117
118-func Z (E,G) = ((("art_assetAccepted_" + G) + "_") + E)
118+func Z (E,G) = ((("art_type_" + G) + "_") + E)
119119
120120
121-func aa (E,ab) = ((("get_hashbytxidaddr_" + ab) + "_") + E)
121+func aa (E,G) = ((("art_price_" + G) + "_") + E)
122122
123123
124-func ac (ad) = ("get_owner_by_hash_" + ad)
124+func ab (E,G) = ((("art_assetAccepted_" + G) + "_") + E)
125125
126126
127-func ae (ad,E) = ("get_txid_by_hash_owner_" + toBase58String(sha256_16Kb(toBytes((ad + E)))))
127+func ac (E,ad) = ((("get_hashbytxidaddr_" + ad) + "_") + E)
128128
129129
130-let af = x(("certification_fee_" + toBase58String(g)))
131-
132-func ag (N) = valueOrElse(y(M(N)), 0)
130+func ae (af) = ("get_owner_by_hash_" + af)
133131
134132
135-func ah (G) = {
133+func ag (af,E) = ("get_txid_by_hash_owner_" + toBase58String(sha256_16Kb(toBytes((af + E)))))
134+
135+
136+let ah = x(("certification_fee_" + toBase58String(g)))
137+
138+func ai (N) = valueOrElse(y(M(N)), 0)
139+
140+
141+func aj (G) = {
136142 let N = u(L(G))
137143 if ((N == ""))
138144 then 0
139- else ag(N)
145+ else ai(N)
140146 }
141147
142148
143-func ai (aj,ak) = if ((size(aj) == 0))
149+func ak (al,am) = if ((size(al) == 0))
144150 then throw("Field cannot be is empty")
145- else if ((size(aj) > ak))
146- then throw((aj + " is too long"))
151+ else if ((size(al) > am))
152+ then throw((al + " is too long"))
147153 else true
148154
149155
150-func al (E) = {
151- let am = valueOrElse(getString(e, D(E)), n)
152- if (if ((am == n))
156+func an (E) = {
157+ let ao = valueOrElse(getString(e, D(E)), n)
158+ if (if ((ao == n))
153159 then true
154- else (am == o))
160+ else (ao == o))
155161 then "Register this account first with 'Account' tab"
156- else if ((am == l))
162+ else if ((ao == l))
157163 then "Account suspended"
158- else if ((am == m))
164+ else if ((ao == m))
159165 then "Account removed"
160166 else ""
161167 }
162168
163169
164-func an (E,ao,ap,aq,ar) = {
165- let as = al(E)
166- if ((as != ""))
167- then throw(as)
168- else if ((size(ao) == 0))
170+func ap (E,aq,ar,as,at) = {
171+ let au = an(E)
172+ if ((au != ""))
173+ then throw(au)
174+ else if ((size(aq) == 0))
169175 then throw("Display CID cannot be empty")
170- else if ((size(ao) != 46))
176+ else if ((size(aq) != 46))
171177 then throw("This doesn't seem a valid CID!")
172- else if (!(ai(ap, 100)))
178+ else if (!(ak(ar, 100)))
173179 then throw("100 Char. max name")
174- else if (!(ai(aq, 1000)))
180+ else if (!(ak(as, 1000)))
175181 then throw("1000 Char. max description")
176- else if ((size(split(ar, ",")) > 5))
182+ else if ((size(split(at, ",")) > 5))
177183 then throw("5 tags max.")
178184 else ""
179185 }
180186
181187
182-func at (au) = if ((size(au.payments) == 0))
188+func av (aw) = if ((size(aw.payments) == 0))
183189 then throw("No payment attached")
184190 else {
185- let av = value(au.payments[0])
186- let aw = value(av.amount)
187- $Tuple2(av, aw)
191+ let ax = value(aw.payments[0])
192+ let ay = value(ax.amount)
193+ $Tuple2(ax, ay)
188194 }
189195
190196
191-func ax (au) = {
192- let ay = at(au)
193- let av = ay._1
194- let aw = ay._2
195- let az = if (if (isDefined(av.assetId))
196- then (av.assetId == g)
197+func az (aw) = {
198+ let aA = av(aw)
199+ let ax = aA._1
200+ let ay = aA._2
201+ let aB = if (if (isDefined(ax.assetId))
202+ then (ax.assetId == g)
197203 else false)
198- then av.assetId
204+ then ax.assetId
199205 else throw("Only USDN token accepted as transaction fee")
200- if ((aw != af))
201- then throw(((("Payment amount should be " + toString(af)) + " but is: ") + toString(aw)))
202- else $Tuple2(aw, az)
206+ if ((ay != ah))
207+ then throw(((("Payment amount should be " + toString(ah)) + " but is: ") + toString(ay)))
208+ else $Tuple2(ay, aB)
203209 }
204210
205211
206-func aA (aB,G) = {
207- let aC = getInteger(this, R(aB, G))
208- if ($isInstanceOf(aC, "Int"))
212+func aC (aD,G) = {
213+ let aE = getInteger(this, R(aD, G))
214+ if ($isInstanceOf(aE, "Int"))
209215 then {
210- let aD = aC
211- if ((aD != 0))
216+ let aF = aE
217+ if ((aF != 0))
212218 then true
213219 else false
214220 }
216222 }
217223
218224
219-func aE (au,aF,aG) = {
220- let aH = at(au)
221- let av = aH._1
222- let aw = aH._2
223- let az = if (!(isDefined(av.assetId)))
225+func aG (aw,aH,aI) = {
226+ let aJ = av(aw)
227+ let ax = aJ._1
228+ let ay = aJ._2
229+ let aB = if (!(isDefined(ax.assetId)))
224230 then throw("Wrong asset id")
225- else if (if ((size(aF) > 0))
226- then (toBase58String(value(av.assetId)) == aF)
231+ else if (if ((size(aH) > 0))
232+ then (toBase58String(value(ax.assetId)) == aH)
227233 else false)
228- then av.assetId
234+ then ax.assetId
229235 else throw("Wrong asset id")
230- if (if ((az == unit))
231- then (aF != "")
236+ if (if ((aB == unit))
237+ then (aH != "")
232238 else false)
233239 then throw("Wrong asset id")
234- else if ((aG != aw))
235- then throw(((("Payment don't match " + toString(aG)) + " ") + toString(aw)))
236- else $Tuple2(aw, az)
240+ else if ((aI != ay))
241+ then throw(((("Payment don't match " + toString(aI)) + " ") + toString(ay)))
242+ else $Tuple2(ay, aB)
237243 }
238244
239245
240-func aI (az) = if ((az != toBase58String(g)))
246+func aK (aB) = if ((aB != toBase58String(g)))
241247 then throw("Only USDN accepted")
242248 else true
243249
244250
245-func aJ (az,aK) = {
246- let aL = if (a)
251+func aL (aB,aM) = {
252+ let aN = if (a)
247253 then 1
248- else (af * 2)
249- if (if (if ((az == toBase58String(g)))
250- then (aL > aK)
254+ else (ah * 2)
255+ if (if (if ((aB == toBase58String(g)))
256+ then (aN > aM)
251257 else false)
252- then (aK != 0)
258+ then (aM != 0)
253259 else false)
254- then throw(("Wrong minimum sell price " + toString(aL)))
260+ then throw(("Wrong minimum sell price " + toString(aN)))
255261 else true
256262 }
257263
258264
259-func aM (az) = if ((az == "WAVES"))
265+func aO (aB) = if ((aB == "WAVES"))
260266 then throw("Only USDN is accepted!")
261- else fromBase58String(az)
267+ else fromBase58String(aB)
262268
263269
264-func aN (aO) = {
265- let aP = u((aO + "_OPEN"))
266- if ((aP == ""))
270+func aP (aQ) = {
271+ let aR = u((aQ + "_OPEN"))
272+ if ((aR == ""))
267273 then throw("Bid not found")
268274 else {
269- let aQ = split(aP, "_")
270- let aR = parseIntValue(aQ[1])
271- let aS = aM(aQ[0])
272- if ((0 >= aR))
275+ let aS = split(aR, "_")
276+ let aT = parseIntValue(aS[1])
277+ let aU = aO(aS[0])
278+ if ((0 >= aT))
273279 then throw("Wrong amount")
274- else $Tuple2(aR, aS)
280+ else $Tuple2(aT, aU)
275281 }
276282 }
277283
278284
279-func aT (au) = if (!(j))
285+func aV (aw) = if (!(j))
280286 then throw(k)
281- else $Tuple3(toBase58String(au.transactionId), toBase58String(au.caller.bytes), lastBlock.timestamp)
287+ else $Tuple3(toBase58String(aw.transactionId), toBase58String(aw.caller.bytes), lastBlock.timestamp)
282288
283289
284-func aU (au,aV,aW,N) = if (if (if ((toBase58String(au.caller.bytes) == aV))
285- then (aW != "")
290+func aW (aw,aX,aY,N) = if (if (if ((toBase58String(aw.caller.bytes) == aX))
291+ then (aY != "")
286292 else false)
287293 then (N != "")
288294 else false)
290296 else false
291297
292298
293-func aX (au,aV,G,aY) = {
294- let aZ = (toBase58String(au.caller.bytes) == aV)
295- let ba = y("total_nft_issued")
296- let bb = u(H(aV, G))
297- if ((bb == ""))
299+func aZ (aw,aX,G,ba) = {
300+ let bb = (toBase58String(aw.caller.bytes) == aX)
301+ let bc = y("total_nft_issued")
302+ let bd = u(H(aX, G))
303+ if ((bd == ""))
298304 then throw("Art doesn't exist")
299305 else {
300- let bc = A(U(aV, G))
301- let bd = y(R(aV, G))
302- let aG = valueOrElse(y(Y(aV, G)), (af * 2))
303- let aF = if (aZ)
306+ let be = A(W(aX, G))
307+ let bf = y(R(aX, G))
308+ let aI = valueOrElse(y(aa(aX, G)), (ah * 2))
309+ let aH = if (bb)
304310 then toBase58String(g)
305- else u(Z(aV, G))
306- let be = y(K(aV, G))
307- if (if (if (!(aY))
308- then !(aZ)
311+ else u(ab(aX, G))
312+ let bg = y(K(aX, G))
313+ if (if (if (!(ba))
314+ then !(bb)
309315 else false)
310- then if (if ((0 >= aG))
316+ then if (if ((0 >= aI))
311317 then true
312- else !(bc))
318+ else !(be))
313319 then true
314- else (0 >= be)
320+ else (0 >= bg)
315321 else false)
316322 then throw("Art not for sale")
317- else if (if (if (!(aY))
318- then aZ
323+ else if (if (if (!(ba))
324+ then bb
319325 else false)
320- then (0 >= be)
326+ then (0 >= bg)
321327 else false)
322328 then throw("Max issuable not set")
323- else $Tuple7(ba, bb, bd, aG, aF, be, bc)
329+ else $Tuple7(bc, bd, bf, aI, aH, bg, be)
324330 }
325331 }
326332
327333
328-func bf (au,E,aV,G,aW,N,aF,aG,aY) = {
329- let as = al(aV)
330- if (if (aY)
331- then (as != "")
334+func bh (aw,E,aX,G,aY,N,aH,aI,ba) = {
335+ let au = an(aX)
336+ if (if (ba)
337+ then (au != "")
332338 else false)
333- then throw(as)
339+ then throw(au)
334340 else {
335- let aO = ((((((("bid_" + G) + "_") + aV) + "_") + aW) + "_") + N)
336- let bg = if (aY)
337- then aN(aO)
338- else aE(au, aF, aG)
339- let aw = bg._1
340- let az = bg._2
341- $Tuple3(aO, aw, az)
341+ let aQ = ((((((("bid_" + G) + "_") + aX) + "_") + aY) + "_") + N)
342+ let bi = if (ba)
343+ then aP(aQ)
344+ else aG(aw, aH, aI)
345+ let ay = bi._1
346+ let aB = bi._2
347+ $Tuple3(aQ, ay, aB)
342348 }
343349 }
344350
345351
346-func bh (aV,az,aw,bd,be) = {
347- let bi = z(aV)
348- let bj = if ((bi > height))
352+func bj (aX,aB,ay,bf,bg) = {
353+ let bk = z(aX)
354+ let bl = if ((bk > height))
349355 then 0
350- else if ((az == g))
356+ else if ((aB == g))
351357 then i
352358 else throw("Only USDN is accepted!")
353- let bk = fraction(aw, bj, 1000)
354- let bl = (aw - bk)
355- if ((bd == be))
359+ let bm = fraction(ay, bl, 1000)
360+ let bn = (ay - bm)
361+ if ((bf == bg))
356362 then throw("Art sold out")
357363 else {
358- let bm = (bd + 1)
359- $Tuple3(bk, bl, bm)
364+ let bo = (bf + 1)
365+ $Tuple3(bm, bn, bo)
360366 }
361367 }
362368
363369
364-func bn (aV,G,bb,bm,be,ba,E,aW,N,au,bc) = {
365- let bo = ((((((((("Creator: " + aV) + ",ArtID: ") + G) + ",Artwork name: ") + bb) + ",Issue: ") + toString(bm)) + "/") + toString(be))
366- let bp = if (if ((bm == be))
370+func bp (aX,G,bd,bo,bg,bc,E,aY,N,aw,be) = {
371+ let bq = ((((((((("Creator: " + aX) + ",ArtID: ") + G) + ",Artwork name: ") + bd) + ",Issue: ") + toString(bo)) + "/") + toString(bg))
372+ let br = if (if ((bo == bg))
367373 then true
368- else !(bc))
374+ else !(be))
369375 then false
370376 else true
371- let bq = if ((aW != ""))
372- then addressFromStringValue(aW)
373- else au.caller
374- $Tuple3(bp, bq, bo)
377+ let bs = if ((aY != ""))
378+ then addressFromStringValue(aY)
379+ else aw.caller
380+ $Tuple3(br, bs, bq)
375381 }
376382
377383
378-func br (bs) = if ((4 > bs))
384+func bt (bu) = if ((4 > bu))
379385 then "SSR"
380- else if ((11 > bs))
386+ else if ((11 > bu))
381387 then "SR"
382- else if ((101 > bs))
388+ else if ((101 > bu))
383389 then "R"
384390 else "N"
385391
386392
387-func bt (az,aO,bu) = {
388- let bv = if (!(isDefined(az)))
393+func bv (aB,aQ,bw) = {
394+ let bx = if (!(isDefined(aB)))
389395 then throw("Only USDN is accepted")
390- else toBase58String(value(az))
391- let aP = u((aO + "_OPEN"))
392- let bw = DeleteEntry((aO + "_OPEN"))
393- let bx = StringEntry((aO + "_CLOSED"), ((aP + "_") + toString(bu)))
394- $Tuple3(bv, bw, bx)
396+ else toBase58String(value(aB))
397+ let aR = u((aQ + "_OPEN"))
398+ let by = DeleteEntry((aQ + "_OPEN"))
399+ let bz = StringEntry((aQ + "_CLOSED"), ((aR + "_") + toString(bw)))
400+ $Tuple3(bx, by, bz)
395401 }
396402
397403
398-func by (au,G,aV,N,aW,aY) = {
399- let bz = aT(au)
400- let bA = bz._1
401- let E = bz._2
402- let bu = bz._3
403- let bB = aX(au, aV, G, aY)
404- let ba = bB._1
405- let bb = bB._2
406- let bd = bB._3
407- let aG = bB._4
408- let aF = bB._5
409- let be = bB._6
410- let bc = bB._7
411- let aP = bf(au, E, aV, G, aW, N, aF, aG, aY)
412- let aO = aP._1
413- let aw = aP._2
414- let az = aP._3
415- let bC = bh(aV, value(az), aw, bd, be)
416- let bk = bC._1
417- let bl = bC._2
418- let bm = bC._3
419- let bD = bn(aV, G, bb, bm, be, ba, E, aW, N, au, bc)
420- let bp = bD._1
421- let bq = bD._2
422- let bo = bD._3
423- let bE = invoke(this, "mintNft", [ba, bo, toString(bq)], nil)
424- if ((bE == bE))
404+func bA (aw,G,aX,N,aY,ba) = {
405+ let bB = aV(aw)
406+ let bC = bB._1
407+ let E = bB._2
408+ let bw = bB._3
409+ let bD = aZ(aw, aX, G, ba)
410+ let bc = bD._1
411+ let bd = bD._2
412+ let bf = bD._3
413+ let aI = bD._4
414+ let aH = bD._5
415+ let bg = bD._6
416+ let be = bD._7
417+ let aR = bh(aw, E, aX, G, aY, N, aH, aI, ba)
418+ let aQ = aR._1
419+ let ay = aR._2
420+ let aB = aR._3
421+ let bE = bj(aX, value(aB), ay, bf, bg)
422+ let bm = bE._1
423+ let bn = bE._2
424+ let bo = bE._3
425+ let bF = bp(aX, G, bd, bo, bg, bc, E, aY, N, aw, be)
426+ let br = bF._1
427+ let bs = bF._2
428+ let bq = bF._3
429+ let bG = invoke(this, "mintNft", [bc, bq, toString(bs)], nil)
430+ if ((bG == bG))
425431 then {
426- let bF = {
427- let aC = bE
428- if ($isInstanceOf(aC, "String"))
432+ let bH = {
433+ let aE = bG
434+ if ($isInstanceOf(aE, "String"))
429435 then {
430- let bG = aC
431- bG
436+ let bI = aE
437+ bI
432438 }
433439 else throw("Incorrect invoke result")
434440 }
435- let bH = bt(az, aO, bu)
436- let bv = bH._1
437- let bw = bH._2
438- let bx = bH._3
439- let bI = ((((((("art_sold_" + toString(bm)) + "_of_") + toString(be)) + "_") + G) + "_") + aV)
440- let bJ = br(bm)
441- let bK = if (!(aY))
442- then ((((((((((E + "_") + toString(bu)) + "_") + bA) + "_") + toString(aG)) + "_") + aF) + "_") + bF)
443- else ((((((((((toString(bq) + "_") + toString(bu)) + "_") + bA) + "_") + toString(aw)) + "_") + bv) + "_") + bF)
444- let bL = StringEntry(bI, bK)
445- let bM = [IntegerEntry(R(aV, G), bm), StringEntry(("nft_" + bF), bI), StringEntry(("nft_rarity_" + bF), bJ), IntegerEntry("total_nft_issued", (ba + 1)), BooleanEntry(U(aV, G), bp), ScriptTransfer(Address(fromBase58String(aV)), bl, az), ScriptTransfer(Address(fromBase58String(c)), bk, az), StringEntry(S(bF), aV)]
446- let bN = invoke(addressFromStringValue(d), "createCert", [toString(bq), bF, aV], nil)
447- if ((bN == bN))
448- then if (aY)
449- then (((bM :+ bL) :+ bx) :+ bw)
450- else bL :: bM
441+ let bJ = bv(aB, aQ, bw)
442+ let bx = bJ._1
443+ let by = bJ._2
444+ let bz = bJ._3
445+ let bK = ((((((("art_sold_" + toString(bo)) + "_of_") + toString(bg)) + "_") + G) + "_") + aX)
446+ let bL = bt(bo)
447+ let bM = if (!(ba))
448+ then ((((((((((E + "_") + toString(bw)) + "_") + bC) + "_") + toString(aI)) + "_") + aH) + "_") + bH)
449+ else ((((((((((toString(bs) + "_") + toString(bw)) + "_") + bC) + "_") + toString(ay)) + "_") + bx) + "_") + bH)
450+ let bN = StringEntry(bK, bM)
451+ let bO = [IntegerEntry(R(aX, G), bo), StringEntry(("nft_" + bH), bK), StringEntry(("nft_rarity_" + bH), bL), IntegerEntry("total_nft_issued", (bc + 1)), BooleanEntry(W(aX, G), br), ScriptTransfer(Address(fromBase58String(aX)), bn, aB), ScriptTransfer(Address(fromBase58String(c)), bm, aB), StringEntry(S(bH), aX), StringEntry(U(bH), G)]
452+ let bP = invoke(addressFromStringValue(d), "createCert", [toString(bs), bH, aX], nil)
453+ if ((bP == bP))
454+ then if (ba)
455+ then (((bO :+ bN) :+ bz) :+ by)
456+ else bN :: bO
451457 else throw("Strict value is not equal to itself.")
452458 }
453459 else throw("Strict value is not equal to itself.")
454460 }
455461
456462
457-func bO (au,G,aV) = {
458- let bP = aT(au)
459- let bA = bP._1
460- let E = bP._2
461- let bu = bP._3
462- let bQ = at(au)
463- let av = bQ._1
464- let aw = bQ._2
465- let az = if (!(isDefined(av.assetId)))
463+func bQ (aw,G,aX) = {
464+ let bR = aV(aw)
465+ let bC = bR._1
466+ let E = bR._2
467+ let bw = bR._3
468+ let bS = av(aw)
469+ let ax = bS._1
470+ let ay = bS._2
471+ let aB = if (!(isDefined(ax.assetId)))
466472 then throw("Only USDN is accepted!")
467- else toBase58String(value(av.assetId))
468- let bR = y(("current_bidamount_" + G))
469- let bS = valueOrElse(y(Y(aV, G)), (af * 2))
470- if (!(aI(az)))
473+ else toBase58String(value(ax.assetId))
474+ let bT = y(("current_bidamount_" + G))
475+ let bU = valueOrElse(y(aa(aX, G)), (ah * 2))
476+ if (!(aK(aB)))
471477 then throw("asset not accepted")
472- else if ((bS > aw))
478+ else if ((bU > ay))
473479 then throw("Bid is below min price!")
474480 else {
475- let bd = y(R(aV, G))
476- let be = y(K(aV, G))
477- if ((0 >= be))
481+ let bf = y(R(aX, G))
482+ let bg = y(K(aX, G))
483+ if ((0 >= bg))
478484 then throw("No max edition set for this artwork")
479- else if ((bd >= be))
485+ else if ((bf >= bg))
480486 then throw("Sold out, you cannot bid")
481- else [StringEntry((((((((("bid_" + G) + "_") + aV) + "_") + E) + "_") + bA) + "_OPEN"), ((((az + "_") + toString(aw)) + "_") + toString(bu))), IntegerEntry(("current_bidamount_" + G), (bR + 1))]
487+ else [StringEntry((((((((("bid_" + G) + "_") + aX) + "_") + E) + "_") + bC) + "_OPEN"), ((((aB + "_") + toString(ay)) + "_") + toString(bw))), IntegerEntry(("current_bidamount_" + G), (bT + 1))]
482488 }
483489 }
484490
485491
486-func bT (au,G,aV) = {
487- let bU = y(P(aV, G))
488- let bV = ah(G)
489- if ((height > bU))
492+func bV (aw,G,aX) = {
493+ let bW = y(P(aX, G))
494+ let bX = aj(G)
495+ if ((height > bW))
490496 then throw("This auction is finished already!")
491497 else {
492- let bW = aT(au)
493- let bA = bW._1
494- let E = bW._2
495- let bu = bW._3
496- let bX = at(au)
497- let av = bX._1
498- let aw = bX._2
499- if ((bV >= aw))
500- then throw(("Please place a bid higher than: " + toString(bV)))
498+ let bY = aV(aw)
499+ let bC = bY._1
500+ let E = bY._2
501+ let bw = bY._3
502+ let bZ = av(aw)
503+ let ax = bZ._1
504+ let ay = bZ._2
505+ if ((bX >= ay))
506+ then throw(("Please place a bid higher than: " + toString(bX)))
501507 else {
502- let az = if (!(isDefined(av.assetId)))
508+ let aB = if (!(isDefined(ax.assetId)))
503509 then throw("Only USDN is accepted!")
504- else toBase58String(value(av.assetId))
505- let bR = y(("current_bidamount_" + G))
506- let bS = valueOrElse(y(Y(aV, G)), (af * 2))
507- if (!(aI(az)))
510+ else toBase58String(value(ax.assetId))
511+ let bT = y(("current_bidamount_" + G))
512+ let bU = valueOrElse(y(aa(aX, G)), (ah * 2))
513+ if (!(aK(aB)))
508514 then throw("asset not accepted")
509- else if ((bS > aw))
515+ else if ((bU > ay))
510516 then throw("Bid is below min price!")
511517 else {
512- let bd = y(R(aV, G))
513- let be = y(K(aV, G))
514- if ((0 >= be))
518+ let bf = y(R(aX, G))
519+ let bg = y(K(aX, G))
520+ if ((0 >= bg))
515521 then throw("No max edition set for this artwork")
516- else if ((bd >= be))
522+ else if ((bf >= bg))
517523 then throw("Sold out, you cannot bid")
518- else [StringEntry((((((((("bid_" + G) + "_") + aV) + "_") + E) + "_") + bA) + "_OPEN"), ((((az + "_") + toString(aw)) + "_") + toString(bu))), IntegerEntry(("current_bidamount_" + G), (bR + 1)), StringEntry(L(G), toBase58String(au.transactionId)), IntegerEntry(M(toBase58String(au.transactionId)), aw)]
524+ else [StringEntry((((((((("bid_" + G) + "_") + aX) + "_") + E) + "_") + bC) + "_OPEN"), ((((aB + "_") + toString(ay)) + "_") + toString(bw))), IntegerEntry(("current_bidamount_" + G), (bT + 1)), StringEntry(L(G), toBase58String(aw.transactionId)), IntegerEntry(M(toBase58String(aw.transactionId)), ay)]
519525 }
520526 }
521527 }
522528 }
523529
524530
525-func bY (au,G,aV,N,aW) = {
526- let E = toBase58String(au.caller.bytes)
527- if ((E != aV))
531+func ca (aw,G,aX,N,aY) = {
532+ let E = toBase58String(aw.caller.bytes)
533+ if ((E != aX))
528534 then throw("You cannot do this action")
529- else by(au, G, aV, N, aW, true)
535+ else bA(aw, G, aX, N, aY, true)
530536 }
531537
532538
533-func bZ (G,aV) = {
534- let bd = y(R(aV, G))
535- let be = y(K(aV, G))
536- let ca = y(P(aV, G))
537- let cb = y(O(aV, G))
538- let bU = (cb + height)
539- if ((height > ca))
540- then if ((bd == be))
539+func cb (G,aX) = {
540+ let bf = y(R(aX, G))
541+ let bg = y(K(aX, G))
542+ let cc = y(P(aX, G))
543+ let cd = y(O(aX, G))
544+ let bW = (cd + height)
545+ if ((height > cc))
546+ then if ((bf == bg))
541547 then throw("Can't restart auction, max amount sold")
542- else [IntegerEntry(P(aV, G), bU), DeleteEntry(L(G))]
548+ else [IntegerEntry(P(aX, G), bW), DeleteEntry(L(G))]
543549 else throw("Previous auction isn't completed yet")
544550 }
545551
546552
547-func cc (au,G,aV,N,aW) = {
548- let bU = y(P(aV, G))
549- let cd = u(L(G))
550- if ((height > bU))
551- then if ((N == cd))
553+func ce (aw,G,aX,N,aY) = {
554+ let bW = y(P(aX, G))
555+ let cf = u(L(G))
556+ if ((height > bW))
557+ then if ((N == cf))
552558 then {
553- let ce = by(au, G, aV, N, aW, true)
554- let cf = bZ(G, aV)
555- (cf ++ ce)
559+ let cg = bA(aw, G, aX, N, aY, true)
560+ let ch = cb(G, aX)
561+ (ch ++ cg)
556562 }
557563 else throw("This is not the winning bid!")
558564 else throw("This auction is not yet finished!")
559565 }
560566
561567
562-func cg (au,G,aV,N) = {
563- let ch = aT(au)
564- let bA = ch._1
565- let E = ch._2
566- let bu = ch._3
567- let bR = y(("current_bidamount_" + G))
568- let aO = ((((((("bid_" + G) + "_") + aV) + "_") + E) + "_") + N)
569- let aP = v((aO + "_OPEN"), "Bid not found")
570- let aQ = split(aP, "_")
571- let az = aM(aQ[0])
572- let ci = "CANCELED"
573-[DeleteEntry((aO + "_OPEN")), StringEntry(((aO + "_") + ci), ((aP + "_") + toString(bu))), IntegerEntry(("current_bidamount_" + G), (bR - 1)), ScriptTransfer(Address(fromBase58String(E)), parseIntValue(aQ[1]), az)]
568+func ci (aw,G,aX,N) = {
569+ let cj = aV(aw)
570+ let bC = cj._1
571+ let E = cj._2
572+ let bw = cj._3
573+ let bT = y(("current_bidamount_" + G))
574+ let aQ = ((((((("bid_" + G) + "_") + aX) + "_") + E) + "_") + N)
575+ let aR = v((aQ + "_OPEN"), "Bid not found")
576+ let aS = split(aR, "_")
577+ let aB = aO(aS[0])
578+ let ck = "CANCELED"
579+[DeleteEntry((aQ + "_OPEN")), StringEntry(((aQ + "_") + ck), ((aR + "_") + toString(bw))), IntegerEntry(("current_bidamount_" + G), (bT - 1)), ScriptTransfer(Address(fromBase58String(E)), parseIntValue(aS[1]), aB)]
574580 }
575581
576582
577-func cj (au,G,aV,N) = {
578- let ch = aT(au)
579- let bA = ch._1
580- let E = ch._2
581- let bu = ch._3
582- let bR = y(("current_bidamount_" + G))
583- let aO = ((((((("bid_" + G) + "_") + aV) + "_") + E) + "_") + N)
584- let aP = v((aO + "_OPEN"), "Bid not found")
585- let aQ = split(aP, "_")
586- let az = aM(aQ[0])
587- let ci = "CANCELED"
588- let aR = parseIntValue(aQ[1])
589- let cd = u(L(G))
590- if ((N == cd))
583+func cl (aw,G,aX,N) = {
584+ let cj = aV(aw)
585+ let bC = cj._1
586+ let E = cj._2
587+ let bw = cj._3
588+ let bT = y(("current_bidamount_" + G))
589+ let aQ = ((((((("bid_" + G) + "_") + aX) + "_") + E) + "_") + N)
590+ let aR = v((aQ + "_OPEN"), "Bid not found")
591+ let aS = split(aR, "_")
592+ let aB = aO(aS[0])
593+ let ck = "CANCELED"
594+ let aT = parseIntValue(aS[1])
595+ let cf = u(L(G))
596+ if ((N == cf))
591597 then throw("You can't cancel the highest bid!")
592- else [DeleteEntry((aO + "_OPEN")), StringEntry(((aO + "_") + ci), ((aP + "_") + toString(bu))), IntegerEntry(("current_bidamount_" + G), (bR - 1)), ScriptTransfer(Address(fromBase58String(E)), aR, az)]
598+ else [DeleteEntry((aQ + "_OPEN")), StringEntry(((aQ + "_") + ck), ((aR + "_") + toString(bw))), IntegerEntry(("current_bidamount_" + G), (bT - 1)), ScriptTransfer(Address(fromBase58String(E)), aT, aB)]
593599 }
594600
595601
596-@Callable(au)
597-func mintNft (ba,bo,bq) = if ((au.caller == this))
602+@Callable(aw)
603+func mintNft (bc,bq,bs) = if ((aw.caller == this))
598604 then {
599- let ck = Address(fromBase58String(bq))
600- let cl = Issue(("SCONEX_" + toString((ba + 1))), bo, 1, 0, false)
601- let bF = calculateAssetId(cl)
602- $Tuple2([cl, ScriptTransfer(ck, 1, bF)], toBase58String(bF))
605+ let cm = Address(fromBase58String(bs))
606+ let cn = Issue(("SCONEX_" + toString((bc + 1))), bq, 1, 0, false)
607+ let bH = calculateAssetId(cn)
608+ $Tuple2([cn, ScriptTransfer(cm, 1, bH)], toBase58String(bH))
603609 }
604610 else throw("Only the dApp can mint NFT's")
605611
606612
607613
608-@Callable(au)
609-func addArtwork (ad,ap,aq,ar,cm,ao,cn) = {
610- let co = aT(au)
611- let G = co._1
612- let E = co._2
613- let bu = co._3
614- let cp = an(E, ao, ap, aq, ar)
615- if ((cp != ""))
614+@Callable(aw)
615+func addArtwork (af,ar,as,at,co,aq,cp) = {
616+ let cq = aV(aw)
617+ let G = cq._1
618+ let E = cq._2
619+ let bw = cq._3
620+ let cr = ap(E, aq, ar, as, at)
621+ if ((cr != ""))
616622 then throw("Something went wrong!")
617623 else {
618- let cq = ax(au)
619- let aw = cq._1
620- let az = cq._2
621- if (!(isDefined(aw)))
624+ let cs = az(aw)
625+ let ay = cs._1
626+ let aB = cs._2
627+ if (!(isDefined(ay)))
622628 then throw("Something went wrong")
623629 else {
624- let cr = u(ae(ad, E))
625- if ((cr != ""))
630+ let ct = u(ag(af, E))
631+ if ((ct != ""))
626632 then throw("You already added it")
627633 else {
628- let cs = u(ac(ad))
629- if ((cs != ""))
634+ let cu = u(ae(af))
635+ if ((cu != ""))
630636 then throw("This hash is already registered")
631- else [StringEntry(ac(ad), E), StringEntry(ae(ad, E), G), IntegerEntry(F(E, G), bu), StringEntry(H(E, G), ap), StringEntry(I(E, G), aq), StringEntry(J(E, G), ao), StringEntry(X(E, G), cm), StringEntry(W(E, G), ar), IntegerEntry(K(E, G), 0), IntegerEntry(R(E, G), 0), BooleanEntry(U(E, G), false), StringEntry(aa(E, G), ad), StringEntry(V(E, G), cn), ScriptTransfer(Address(fromBase58String(c)), aw, az)]
637+ else [StringEntry(ae(af), E), StringEntry(ag(af, E), G), IntegerEntry(F(E, G), bw), StringEntry(H(E, G), ar), StringEntry(I(E, G), as), StringEntry(J(E, G), aq), StringEntry(Z(E, G), co), StringEntry(Y(E, G), at), IntegerEntry(K(E, G), 0), IntegerEntry(R(E, G), 0), BooleanEntry(W(E, G), false), StringEntry(ac(E, G), af), StringEntry(X(E, G), cp), ScriptTransfer(Address(fromBase58String(c)), ay, aB)]
632638 }
633639 }
634640 }
636642
637643
638644
639-@Callable(au)
640-func sellArtwork (G,aK,ct,az,cu,cb) = {
641- let cv = aT(au)
642- let bA = cv._1
643- let E = cv._2
644- let bb = u(H(E, G))
645- if (!(containsElement([p, q, r], cu)))
645+@Callable(aw)
646+func sellArtwork (G,aM,cv,aB,cw,cd) = {
647+ let cx = aV(aw)
648+ let bC = cx._1
649+ let E = cx._2
650+ let bd = u(H(E, G))
651+ if (!(containsElement([p, q, r], cw)))
646652 then throw("We don't know this auction type")
647- else if ((bb == ""))
653+ else if ((bd == ""))
648654 then throw("This art doesn't match your account")
649655 else {
650- let bR = y(("current_bidamount_" + G))
651- if (!(aI(az)))
656+ let bT = y(("current_bidamount_" + G))
657+ if (!(aK(aB)))
652658 then throw("Something went wrong!")
653- else if (!(aJ(az, aK)))
659+ else if (!(aL(aB, aM)))
654660 then throw("Something went wrong!")
655661 else {
656- let as = al(E)
657- if ((as != ""))
658- then throw(as)
662+ let au = an(E)
663+ if ((au != ""))
664+ then throw(au)
659665 else {
660- let bd = y(R(E, G))
661- let be = y(K(E, G))
662- if ((ct > 5000))
666+ let bf = y(R(E, G))
667+ let bg = y(K(E, G))
668+ if ((cv > 5000))
663669 then throw("5000 editions max per artwork")
664- else if (if ((bd != 0))
665- then (bd == be)
670+ else if (if ((bf != 0))
671+ then (bf == bg)
666672 else false)
667673 then throw("Max edition reached.")
668- else if (if ((bd > 0))
669- then (be != ct)
674+ else if (if ((bf > 0))
675+ then (bg != cv)
670676 else false)
671677 then throw("Cannot change maximum issuable anymore")
672- else if (if ((bR > 0))
673- then (be != ct)
678+ else if (if ((bT > 0))
679+ then (bg != cv)
674680 else false)
675681 then throw("Cannot change maximum issuable with active orders")
676682 else {
677- let bp = if (if ((aK > 0))
678- then (ct > 0)
683+ let br = if (if ((aM > 0))
684+ then (cv > 0)
679685 else false)
680686 then true
681687 else false
682- let bU = (cb + height)
683-[BooleanEntry(U(E, G), bp), IntegerEntry(Y(E, G), aK), IntegerEntry(K(E, G), ct), IntegerEntry(O(E, G), cb), IntegerEntry(P(E, G), bU), StringEntry(Z(E, G), az), StringEntry(Q(E, G), cu)]
688+ let bW = (cd + height)
689+[BooleanEntry(W(E, G), br), IntegerEntry(aa(E, G), aM), IntegerEntry(K(E, G), cv), IntegerEntry(O(E, G), cd), IntegerEntry(P(E, G), bW), StringEntry(ab(E, G), aB), StringEntry(Q(E, G), cw)]
684690 }
685691 }
686692 }
689695
690696
691697
692-@Callable(au)
693-func buyArtwork (G,aV) = {
694- let cu = u(Q(aV, G))
695- if ((cu == r))
696- then by(au, G, aV, "", "", false)
698+@Callable(aw)
699+func buyArtwork (G,aX) = {
700+ let cw = u(Q(aX, G))
701+ if ((cw == r))
702+ then bA(aw, G, aX, "", "", false)
697703 else throw("Direct buy only allowed when no auction type is set!")
698704 }
699705
700706
701707
702-@Callable(au)
703-func updateTags (cw,G,ar) = {
704- let E = toString(addressFromPublicKey(au.callerPublicKey))
708+@Callable(aw)
709+func updateTags (cy,G,at) = {
710+ let E = toString(addressFromPublicKey(aw.callerPublicKey))
705711 if (containsElement(h, E))
706- then if ((size(split(ar, ",")) > 5))
712+ then if ((size(split(at, ",")) > 5))
707713 then throw("5 tags max.")
708714 else {
709- let cx = v(W(cw, G), "No tags created with this key, so can't update!")
710- if ((ar == cx))
715+ let cz = v(Y(cy, G), "No tags created with this key, so can't update!")
716+ if ((at == cz))
711717 then throw("Tags are the same as old tags!")
712- else [StringEntry(W(cw, G), ar)]
718+ else [StringEntry(Y(cy, G), at)]
713719 }
714720 else throw("no")
715721 }
716722
717723
718724
719-@Callable(au)
720-func deleteEntry (cy) = {
721- let E = toString(addressFromPublicKey(au.callerPublicKey))
725+@Callable(aw)
726+func deleteEntry (cA) = {
727+ let E = toString(addressFromPublicKey(aw.callerPublicKey))
722728 if (containsElement(h, E))
723- then [DeleteEntry(cy)]
729+ then [DeleteEntry(cA)]
724730 else throw("no")
725731 }
726732
727733
728734
729-@Callable(au)
730-func setBid (G,aV) = {
731- let cu = u(Q(aV, G))
732- if ((cu == p))
733- then bO(au, G, aV)
734- else if ((cu == q))
735- then bT(au, G, aV)
736- else throw((("Unknown auction type :" + cu) + ", please contact the admins"))
735+@Callable(aw)
736+func setBid (G,aX) = {
737+ let cw = u(Q(aX, G))
738+ if ((cw == p))
739+ then bQ(aw, G, aX)
740+ else if ((cw == q))
741+ then bV(aw, G, aX)
742+ else throw((("Unknown auction type :" + cw) + ", please contact the admins"))
737743 }
738744
739745
740746
741-@Callable(au)
742-func acceptBid (G,aV,N,aW) = {
743- let cu = u(Q(aV, G))
744- if ((cu == p))
745- then bY(au, G, aV, N, aW)
746- else if ((cu == q))
747- then cc(au, G, aV, N, aW)
748- else throw((("Unknown auction type :" + cu) + ", please contact the admins"))
747+@Callable(aw)
748+func acceptBid (G,aX,N,aY) = {
749+ let cw = u(Q(aX, G))
750+ if ((cw == p))
751+ then ca(aw, G, aX, N, aY)
752+ else if ((cw == q))
753+ then ce(aw, G, aX, N, aY)
754+ else throw((("Unknown auction type :" + cw) + ", please contact the admins"))
749755 }
750756
751757
752758
753-@Callable(au)
754-func cancelBid (G,aV,N) = {
755- let cu = u(Q(aV, G))
756- if ((cu == p))
757- then cg(au, G, aV, N)
758- else cj(au, G, aV, N)
759+@Callable(aw)
760+func cancelBid (G,aX,N) = {
761+ let cw = u(Q(aX, G))
762+ if ((cw == p))
763+ then ci(aw, G, aX, N)
764+ else cl(aw, G, aX, N)
759765 }
760766
761767
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = false
55
66 let b = value(addressFromString("3MpZQjzGogmifcEKe8mDd6ribL7nxT9ACye"))
77
88 let c = "3N65xLq8JcCeaEiR1TJQ7dBqXBvEy6E48Wz"
99
1010 let d = "3MxcXrNbMZKYaSrhcfeMm2hZnBeCu3yRWsw"
1111
1212 let e = value(addressFromString("3N9cQgZFPHHVu8wqsn2DkQFehg3h8CNiooA"))
1313
1414 let f = value(addressFromString("3N9xZYGpzMFDXvXuctmU6zV8qSzm2ZfF31f"))
1515
1616 let g = base58'132maRL3uF35tc2bpRih9D6MYq5DR6H28zkop786dKyu'
1717
1818 let h = [getString(b, "owner1"), getString(b, "owner2")]
1919
2020 let i = 150
2121
2222 let j = valueOrElse(getBoolean(e, "conf_dapp_is_running"), true)
2323
2424 let k = valueOrElse(getString(e, "conf_maintenance_msg"), "")
2525
2626 let l = "SUSPENDED"
2727
2828 let m = "REMOVED"
2929
3030 let n = "UNREGISTERED"
3131
3232 let o = "ALLOWED"
3333
3434 let p = "BIDTYPE"
3535
3636 let q = "TRADITIONAL"
3737
3838 let r = "DIRECT"
3939
4040 func s (t) = valueOrElse(getString(e, t), "")
4141
4242
4343 func u (t) = valueOrElse(getString(this, t), "")
4444
4545
4646 func v (t,w) = valueOrErrorMessage(getString(this, t), w)
4747
4848
4949 func x (t) = valueOrErrorMessage(getInteger(b, t), "Integer undefine or 0 in oracle")
5050
5151
5252 func y (t) = valueOrElse(getInteger(this, t), 0)
5353
5454
5555 func z (t) = valueOrElse(getInteger(f, t), 0)
5656
5757
5858 func A (t) = valueOrElse(getBoolean(this, t), false)
5959
6060
6161 func B (C) = (size(C) == 64)
6262
6363
6464 func D (E) = ("user_status_" + E)
6565
6666
6767 func F (E,G) = ((("art_date_" + G) + "_") + E)
6868
6969
7070 func H (E,G) = ((("art_name_" + G) + "_") + E)
7171
7272
7373 func I (E,G) = ((("art_desc_" + G) + "_") + E)
7474
7575
7676 func J (E,G) = ((("art_display_cid_" + G) + "_") + E)
7777
7878
7979 func K (E,G) = ((("art_maxmint_" + G) + "_") + E)
8080
8181
8282 func L (G) = ("art_highestBidBidId_" + G)
8383
8484
8585 func M (N) = ("bid_" + N)
8686
8787
8888 func O (E,G) = ((("art_duration_" + G) + "_") + E)
8989
9090
9191 func P (E,G) = ((("art_endheight_" + G) + "_") + E)
9292
9393
9494 func Q (E,G) = ((("art_auctiontype_" + G) + "_") + E)
9595
9696
9797 func R (E,G) = ((("art_issued_" + G) + "_") + E)
9898
9999
100100 func S (T) = ("nft_issued_" + T)
101101
102102
103-func U (E,G) = ((("art_onsale_" + G) + "_") + E)
103+func U (T) = ("nft_artId_" + T)
104104
105105
106-func V (E,G) = ((("art_entitlement_" + G) + "_") + E)
106+func V (E,G) = ((("art_royalty_" + G) + "_") + E)
107107
108108
109-func W (E,G) = ((("art_tags_" + G) + "_") + E)
109+func W (E,G) = ((("art_onsale_" + G) + "_") + E)
110110
111111
112-func X (E,G) = ((("art_type_" + G) + "_") + E)
112+func X (E,G) = ((("art_entitlement_" + G) + "_") + E)
113113
114114
115-func Y (E,G) = ((("art_price_" + G) + "_") + E)
115+func Y (E,G) = ((("art_tags_" + G) + "_") + E)
116116
117117
118-func Z (E,G) = ((("art_assetAccepted_" + G) + "_") + E)
118+func Z (E,G) = ((("art_type_" + G) + "_") + E)
119119
120120
121-func aa (E,ab) = ((("get_hashbytxidaddr_" + ab) + "_") + E)
121+func aa (E,G) = ((("art_price_" + G) + "_") + E)
122122
123123
124-func ac (ad) = ("get_owner_by_hash_" + ad)
124+func ab (E,G) = ((("art_assetAccepted_" + G) + "_") + E)
125125
126126
127-func ae (ad,E) = ("get_txid_by_hash_owner_" + toBase58String(sha256_16Kb(toBytes((ad + E)))))
127+func ac (E,ad) = ((("get_hashbytxidaddr_" + ad) + "_") + E)
128128
129129
130-let af = x(("certification_fee_" + toBase58String(g)))
131-
132-func ag (N) = valueOrElse(y(M(N)), 0)
130+func ae (af) = ("get_owner_by_hash_" + af)
133131
134132
135-func ah (G) = {
133+func ag (af,E) = ("get_txid_by_hash_owner_" + toBase58String(sha256_16Kb(toBytes((af + E)))))
134+
135+
136+let ah = x(("certification_fee_" + toBase58String(g)))
137+
138+func ai (N) = valueOrElse(y(M(N)), 0)
139+
140+
141+func aj (G) = {
136142 let N = u(L(G))
137143 if ((N == ""))
138144 then 0
139- else ag(N)
145+ else ai(N)
140146 }
141147
142148
143-func ai (aj,ak) = if ((size(aj) == 0))
149+func ak (al,am) = if ((size(al) == 0))
144150 then throw("Field cannot be is empty")
145- else if ((size(aj) > ak))
146- then throw((aj + " is too long"))
151+ else if ((size(al) > am))
152+ then throw((al + " is too long"))
147153 else true
148154
149155
150-func al (E) = {
151- let am = valueOrElse(getString(e, D(E)), n)
152- if (if ((am == n))
156+func an (E) = {
157+ let ao = valueOrElse(getString(e, D(E)), n)
158+ if (if ((ao == n))
153159 then true
154- else (am == o))
160+ else (ao == o))
155161 then "Register this account first with 'Account' tab"
156- else if ((am == l))
162+ else if ((ao == l))
157163 then "Account suspended"
158- else if ((am == m))
164+ else if ((ao == m))
159165 then "Account removed"
160166 else ""
161167 }
162168
163169
164-func an (E,ao,ap,aq,ar) = {
165- let as = al(E)
166- if ((as != ""))
167- then throw(as)
168- else if ((size(ao) == 0))
170+func ap (E,aq,ar,as,at) = {
171+ let au = an(E)
172+ if ((au != ""))
173+ then throw(au)
174+ else if ((size(aq) == 0))
169175 then throw("Display CID cannot be empty")
170- else if ((size(ao) != 46))
176+ else if ((size(aq) != 46))
171177 then throw("This doesn't seem a valid CID!")
172- else if (!(ai(ap, 100)))
178+ else if (!(ak(ar, 100)))
173179 then throw("100 Char. max name")
174- else if (!(ai(aq, 1000)))
180+ else if (!(ak(as, 1000)))
175181 then throw("1000 Char. max description")
176- else if ((size(split(ar, ",")) > 5))
182+ else if ((size(split(at, ",")) > 5))
177183 then throw("5 tags max.")
178184 else ""
179185 }
180186
181187
182-func at (au) = if ((size(au.payments) == 0))
188+func av (aw) = if ((size(aw.payments) == 0))
183189 then throw("No payment attached")
184190 else {
185- let av = value(au.payments[0])
186- let aw = value(av.amount)
187- $Tuple2(av, aw)
191+ let ax = value(aw.payments[0])
192+ let ay = value(ax.amount)
193+ $Tuple2(ax, ay)
188194 }
189195
190196
191-func ax (au) = {
192- let ay = at(au)
193- let av = ay._1
194- let aw = ay._2
195- let az = if (if (isDefined(av.assetId))
196- then (av.assetId == g)
197+func az (aw) = {
198+ let aA = av(aw)
199+ let ax = aA._1
200+ let ay = aA._2
201+ let aB = if (if (isDefined(ax.assetId))
202+ then (ax.assetId == g)
197203 else false)
198- then av.assetId
204+ then ax.assetId
199205 else throw("Only USDN token accepted as transaction fee")
200- if ((aw != af))
201- then throw(((("Payment amount should be " + toString(af)) + " but is: ") + toString(aw)))
202- else $Tuple2(aw, az)
206+ if ((ay != ah))
207+ then throw(((("Payment amount should be " + toString(ah)) + " but is: ") + toString(ay)))
208+ else $Tuple2(ay, aB)
203209 }
204210
205211
206-func aA (aB,G) = {
207- let aC = getInteger(this, R(aB, G))
208- if ($isInstanceOf(aC, "Int"))
212+func aC (aD,G) = {
213+ let aE = getInteger(this, R(aD, G))
214+ if ($isInstanceOf(aE, "Int"))
209215 then {
210- let aD = aC
211- if ((aD != 0))
216+ let aF = aE
217+ if ((aF != 0))
212218 then true
213219 else false
214220 }
215221 else false
216222 }
217223
218224
219-func aE (au,aF,aG) = {
220- let aH = at(au)
221- let av = aH._1
222- let aw = aH._2
223- let az = if (!(isDefined(av.assetId)))
225+func aG (aw,aH,aI) = {
226+ let aJ = av(aw)
227+ let ax = aJ._1
228+ let ay = aJ._2
229+ let aB = if (!(isDefined(ax.assetId)))
224230 then throw("Wrong asset id")
225- else if (if ((size(aF) > 0))
226- then (toBase58String(value(av.assetId)) == aF)
231+ else if (if ((size(aH) > 0))
232+ then (toBase58String(value(ax.assetId)) == aH)
227233 else false)
228- then av.assetId
234+ then ax.assetId
229235 else throw("Wrong asset id")
230- if (if ((az == unit))
231- then (aF != "")
236+ if (if ((aB == unit))
237+ then (aH != "")
232238 else false)
233239 then throw("Wrong asset id")
234- else if ((aG != aw))
235- then throw(((("Payment don't match " + toString(aG)) + " ") + toString(aw)))
236- else $Tuple2(aw, az)
240+ else if ((aI != ay))
241+ then throw(((("Payment don't match " + toString(aI)) + " ") + toString(ay)))
242+ else $Tuple2(ay, aB)
237243 }
238244
239245
240-func aI (az) = if ((az != toBase58String(g)))
246+func aK (aB) = if ((aB != toBase58String(g)))
241247 then throw("Only USDN accepted")
242248 else true
243249
244250
245-func aJ (az,aK) = {
246- let aL = if (a)
251+func aL (aB,aM) = {
252+ let aN = if (a)
247253 then 1
248- else (af * 2)
249- if (if (if ((az == toBase58String(g)))
250- then (aL > aK)
254+ else (ah * 2)
255+ if (if (if ((aB == toBase58String(g)))
256+ then (aN > aM)
251257 else false)
252- then (aK != 0)
258+ then (aM != 0)
253259 else false)
254- then throw(("Wrong minimum sell price " + toString(aL)))
260+ then throw(("Wrong minimum sell price " + toString(aN)))
255261 else true
256262 }
257263
258264
259-func aM (az) = if ((az == "WAVES"))
265+func aO (aB) = if ((aB == "WAVES"))
260266 then throw("Only USDN is accepted!")
261- else fromBase58String(az)
267+ else fromBase58String(aB)
262268
263269
264-func aN (aO) = {
265- let aP = u((aO + "_OPEN"))
266- if ((aP == ""))
270+func aP (aQ) = {
271+ let aR = u((aQ + "_OPEN"))
272+ if ((aR == ""))
267273 then throw("Bid not found")
268274 else {
269- let aQ = split(aP, "_")
270- let aR = parseIntValue(aQ[1])
271- let aS = aM(aQ[0])
272- if ((0 >= aR))
275+ let aS = split(aR, "_")
276+ let aT = parseIntValue(aS[1])
277+ let aU = aO(aS[0])
278+ if ((0 >= aT))
273279 then throw("Wrong amount")
274- else $Tuple2(aR, aS)
280+ else $Tuple2(aT, aU)
275281 }
276282 }
277283
278284
279-func aT (au) = if (!(j))
285+func aV (aw) = if (!(j))
280286 then throw(k)
281- else $Tuple3(toBase58String(au.transactionId), toBase58String(au.caller.bytes), lastBlock.timestamp)
287+ else $Tuple3(toBase58String(aw.transactionId), toBase58String(aw.caller.bytes), lastBlock.timestamp)
282288
283289
284-func aU (au,aV,aW,N) = if (if (if ((toBase58String(au.caller.bytes) == aV))
285- then (aW != "")
290+func aW (aw,aX,aY,N) = if (if (if ((toBase58String(aw.caller.bytes) == aX))
291+ then (aY != "")
286292 else false)
287293 then (N != "")
288294 else false)
289295 then true
290296 else false
291297
292298
293-func aX (au,aV,G,aY) = {
294- let aZ = (toBase58String(au.caller.bytes) == aV)
295- let ba = y("total_nft_issued")
296- let bb = u(H(aV, G))
297- if ((bb == ""))
299+func aZ (aw,aX,G,ba) = {
300+ let bb = (toBase58String(aw.caller.bytes) == aX)
301+ let bc = y("total_nft_issued")
302+ let bd = u(H(aX, G))
303+ if ((bd == ""))
298304 then throw("Art doesn't exist")
299305 else {
300- let bc = A(U(aV, G))
301- let bd = y(R(aV, G))
302- let aG = valueOrElse(y(Y(aV, G)), (af * 2))
303- let aF = if (aZ)
306+ let be = A(W(aX, G))
307+ let bf = y(R(aX, G))
308+ let aI = valueOrElse(y(aa(aX, G)), (ah * 2))
309+ let aH = if (bb)
304310 then toBase58String(g)
305- else u(Z(aV, G))
306- let be = y(K(aV, G))
307- if (if (if (!(aY))
308- then !(aZ)
311+ else u(ab(aX, G))
312+ let bg = y(K(aX, G))
313+ if (if (if (!(ba))
314+ then !(bb)
309315 else false)
310- then if (if ((0 >= aG))
316+ then if (if ((0 >= aI))
311317 then true
312- else !(bc))
318+ else !(be))
313319 then true
314- else (0 >= be)
320+ else (0 >= bg)
315321 else false)
316322 then throw("Art not for sale")
317- else if (if (if (!(aY))
318- then aZ
323+ else if (if (if (!(ba))
324+ then bb
319325 else false)
320- then (0 >= be)
326+ then (0 >= bg)
321327 else false)
322328 then throw("Max issuable not set")
323- else $Tuple7(ba, bb, bd, aG, aF, be, bc)
329+ else $Tuple7(bc, bd, bf, aI, aH, bg, be)
324330 }
325331 }
326332
327333
328-func bf (au,E,aV,G,aW,N,aF,aG,aY) = {
329- let as = al(aV)
330- if (if (aY)
331- then (as != "")
334+func bh (aw,E,aX,G,aY,N,aH,aI,ba) = {
335+ let au = an(aX)
336+ if (if (ba)
337+ then (au != "")
332338 else false)
333- then throw(as)
339+ then throw(au)
334340 else {
335- let aO = ((((((("bid_" + G) + "_") + aV) + "_") + aW) + "_") + N)
336- let bg = if (aY)
337- then aN(aO)
338- else aE(au, aF, aG)
339- let aw = bg._1
340- let az = bg._2
341- $Tuple3(aO, aw, az)
341+ let aQ = ((((((("bid_" + G) + "_") + aX) + "_") + aY) + "_") + N)
342+ let bi = if (ba)
343+ then aP(aQ)
344+ else aG(aw, aH, aI)
345+ let ay = bi._1
346+ let aB = bi._2
347+ $Tuple3(aQ, ay, aB)
342348 }
343349 }
344350
345351
346-func bh (aV,az,aw,bd,be) = {
347- let bi = z(aV)
348- let bj = if ((bi > height))
352+func bj (aX,aB,ay,bf,bg) = {
353+ let bk = z(aX)
354+ let bl = if ((bk > height))
349355 then 0
350- else if ((az == g))
356+ else if ((aB == g))
351357 then i
352358 else throw("Only USDN is accepted!")
353- let bk = fraction(aw, bj, 1000)
354- let bl = (aw - bk)
355- if ((bd == be))
359+ let bm = fraction(ay, bl, 1000)
360+ let bn = (ay - bm)
361+ if ((bf == bg))
356362 then throw("Art sold out")
357363 else {
358- let bm = (bd + 1)
359- $Tuple3(bk, bl, bm)
364+ let bo = (bf + 1)
365+ $Tuple3(bm, bn, bo)
360366 }
361367 }
362368
363369
364-func bn (aV,G,bb,bm,be,ba,E,aW,N,au,bc) = {
365- let bo = ((((((((("Creator: " + aV) + ",ArtID: ") + G) + ",Artwork name: ") + bb) + ",Issue: ") + toString(bm)) + "/") + toString(be))
366- let bp = if (if ((bm == be))
370+func bp (aX,G,bd,bo,bg,bc,E,aY,N,aw,be) = {
371+ let bq = ((((((((("Creator: " + aX) + ",ArtID: ") + G) + ",Artwork name: ") + bd) + ",Issue: ") + toString(bo)) + "/") + toString(bg))
372+ let br = if (if ((bo == bg))
367373 then true
368- else !(bc))
374+ else !(be))
369375 then false
370376 else true
371- let bq = if ((aW != ""))
372- then addressFromStringValue(aW)
373- else au.caller
374- $Tuple3(bp, bq, bo)
377+ let bs = if ((aY != ""))
378+ then addressFromStringValue(aY)
379+ else aw.caller
380+ $Tuple3(br, bs, bq)
375381 }
376382
377383
378-func br (bs) = if ((4 > bs))
384+func bt (bu) = if ((4 > bu))
379385 then "SSR"
380- else if ((11 > bs))
386+ else if ((11 > bu))
381387 then "SR"
382- else if ((101 > bs))
388+ else if ((101 > bu))
383389 then "R"
384390 else "N"
385391
386392
387-func bt (az,aO,bu) = {
388- let bv = if (!(isDefined(az)))
393+func bv (aB,aQ,bw) = {
394+ let bx = if (!(isDefined(aB)))
389395 then throw("Only USDN is accepted")
390- else toBase58String(value(az))
391- let aP = u((aO + "_OPEN"))
392- let bw = DeleteEntry((aO + "_OPEN"))
393- let bx = StringEntry((aO + "_CLOSED"), ((aP + "_") + toString(bu)))
394- $Tuple3(bv, bw, bx)
396+ else toBase58String(value(aB))
397+ let aR = u((aQ + "_OPEN"))
398+ let by = DeleteEntry((aQ + "_OPEN"))
399+ let bz = StringEntry((aQ + "_CLOSED"), ((aR + "_") + toString(bw)))
400+ $Tuple3(bx, by, bz)
395401 }
396402
397403
398-func by (au,G,aV,N,aW,aY) = {
399- let bz = aT(au)
400- let bA = bz._1
401- let E = bz._2
402- let bu = bz._3
403- let bB = aX(au, aV, G, aY)
404- let ba = bB._1
405- let bb = bB._2
406- let bd = bB._3
407- let aG = bB._4
408- let aF = bB._5
409- let be = bB._6
410- let bc = bB._7
411- let aP = bf(au, E, aV, G, aW, N, aF, aG, aY)
412- let aO = aP._1
413- let aw = aP._2
414- let az = aP._3
415- let bC = bh(aV, value(az), aw, bd, be)
416- let bk = bC._1
417- let bl = bC._2
418- let bm = bC._3
419- let bD = bn(aV, G, bb, bm, be, ba, E, aW, N, au, bc)
420- let bp = bD._1
421- let bq = bD._2
422- let bo = bD._3
423- let bE = invoke(this, "mintNft", [ba, bo, toString(bq)], nil)
424- if ((bE == bE))
404+func bA (aw,G,aX,N,aY,ba) = {
405+ let bB = aV(aw)
406+ let bC = bB._1
407+ let E = bB._2
408+ let bw = bB._3
409+ let bD = aZ(aw, aX, G, ba)
410+ let bc = bD._1
411+ let bd = bD._2
412+ let bf = bD._3
413+ let aI = bD._4
414+ let aH = bD._5
415+ let bg = bD._6
416+ let be = bD._7
417+ let aR = bh(aw, E, aX, G, aY, N, aH, aI, ba)
418+ let aQ = aR._1
419+ let ay = aR._2
420+ let aB = aR._3
421+ let bE = bj(aX, value(aB), ay, bf, bg)
422+ let bm = bE._1
423+ let bn = bE._2
424+ let bo = bE._3
425+ let bF = bp(aX, G, bd, bo, bg, bc, E, aY, N, aw, be)
426+ let br = bF._1
427+ let bs = bF._2
428+ let bq = bF._3
429+ let bG = invoke(this, "mintNft", [bc, bq, toString(bs)], nil)
430+ if ((bG == bG))
425431 then {
426- let bF = {
427- let aC = bE
428- if ($isInstanceOf(aC, "String"))
432+ let bH = {
433+ let aE = bG
434+ if ($isInstanceOf(aE, "String"))
429435 then {
430- let bG = aC
431- bG
436+ let bI = aE
437+ bI
432438 }
433439 else throw("Incorrect invoke result")
434440 }
435- let bH = bt(az, aO, bu)
436- let bv = bH._1
437- let bw = bH._2
438- let bx = bH._3
439- let bI = ((((((("art_sold_" + toString(bm)) + "_of_") + toString(be)) + "_") + G) + "_") + aV)
440- let bJ = br(bm)
441- let bK = if (!(aY))
442- then ((((((((((E + "_") + toString(bu)) + "_") + bA) + "_") + toString(aG)) + "_") + aF) + "_") + bF)
443- else ((((((((((toString(bq) + "_") + toString(bu)) + "_") + bA) + "_") + toString(aw)) + "_") + bv) + "_") + bF)
444- let bL = StringEntry(bI, bK)
445- let bM = [IntegerEntry(R(aV, G), bm), StringEntry(("nft_" + bF), bI), StringEntry(("nft_rarity_" + bF), bJ), IntegerEntry("total_nft_issued", (ba + 1)), BooleanEntry(U(aV, G), bp), ScriptTransfer(Address(fromBase58String(aV)), bl, az), ScriptTransfer(Address(fromBase58String(c)), bk, az), StringEntry(S(bF), aV)]
446- let bN = invoke(addressFromStringValue(d), "createCert", [toString(bq), bF, aV], nil)
447- if ((bN == bN))
448- then if (aY)
449- then (((bM :+ bL) :+ bx) :+ bw)
450- else bL :: bM
441+ let bJ = bv(aB, aQ, bw)
442+ let bx = bJ._1
443+ let by = bJ._2
444+ let bz = bJ._3
445+ let bK = ((((((("art_sold_" + toString(bo)) + "_of_") + toString(bg)) + "_") + G) + "_") + aX)
446+ let bL = bt(bo)
447+ let bM = if (!(ba))
448+ then ((((((((((E + "_") + toString(bw)) + "_") + bC) + "_") + toString(aI)) + "_") + aH) + "_") + bH)
449+ else ((((((((((toString(bs) + "_") + toString(bw)) + "_") + bC) + "_") + toString(ay)) + "_") + bx) + "_") + bH)
450+ let bN = StringEntry(bK, bM)
451+ let bO = [IntegerEntry(R(aX, G), bo), StringEntry(("nft_" + bH), bK), StringEntry(("nft_rarity_" + bH), bL), IntegerEntry("total_nft_issued", (bc + 1)), BooleanEntry(W(aX, G), br), ScriptTransfer(Address(fromBase58String(aX)), bn, aB), ScriptTransfer(Address(fromBase58String(c)), bm, aB), StringEntry(S(bH), aX), StringEntry(U(bH), G)]
452+ let bP = invoke(addressFromStringValue(d), "createCert", [toString(bs), bH, aX], nil)
453+ if ((bP == bP))
454+ then if (ba)
455+ then (((bO :+ bN) :+ bz) :+ by)
456+ else bN :: bO
451457 else throw("Strict value is not equal to itself.")
452458 }
453459 else throw("Strict value is not equal to itself.")
454460 }
455461
456462
457-func bO (au,G,aV) = {
458- let bP = aT(au)
459- let bA = bP._1
460- let E = bP._2
461- let bu = bP._3
462- let bQ = at(au)
463- let av = bQ._1
464- let aw = bQ._2
465- let az = if (!(isDefined(av.assetId)))
463+func bQ (aw,G,aX) = {
464+ let bR = aV(aw)
465+ let bC = bR._1
466+ let E = bR._2
467+ let bw = bR._3
468+ let bS = av(aw)
469+ let ax = bS._1
470+ let ay = bS._2
471+ let aB = if (!(isDefined(ax.assetId)))
466472 then throw("Only USDN is accepted!")
467- else toBase58String(value(av.assetId))
468- let bR = y(("current_bidamount_" + G))
469- let bS = valueOrElse(y(Y(aV, G)), (af * 2))
470- if (!(aI(az)))
473+ else toBase58String(value(ax.assetId))
474+ let bT = y(("current_bidamount_" + G))
475+ let bU = valueOrElse(y(aa(aX, G)), (ah * 2))
476+ if (!(aK(aB)))
471477 then throw("asset not accepted")
472- else if ((bS > aw))
478+ else if ((bU > ay))
473479 then throw("Bid is below min price!")
474480 else {
475- let bd = y(R(aV, G))
476- let be = y(K(aV, G))
477- if ((0 >= be))
481+ let bf = y(R(aX, G))
482+ let bg = y(K(aX, G))
483+ if ((0 >= bg))
478484 then throw("No max edition set for this artwork")
479- else if ((bd >= be))
485+ else if ((bf >= bg))
480486 then throw("Sold out, you cannot bid")
481- else [StringEntry((((((((("bid_" + G) + "_") + aV) + "_") + E) + "_") + bA) + "_OPEN"), ((((az + "_") + toString(aw)) + "_") + toString(bu))), IntegerEntry(("current_bidamount_" + G), (bR + 1))]
487+ else [StringEntry((((((((("bid_" + G) + "_") + aX) + "_") + E) + "_") + bC) + "_OPEN"), ((((aB + "_") + toString(ay)) + "_") + toString(bw))), IntegerEntry(("current_bidamount_" + G), (bT + 1))]
482488 }
483489 }
484490
485491
486-func bT (au,G,aV) = {
487- let bU = y(P(aV, G))
488- let bV = ah(G)
489- if ((height > bU))
492+func bV (aw,G,aX) = {
493+ let bW = y(P(aX, G))
494+ let bX = aj(G)
495+ if ((height > bW))
490496 then throw("This auction is finished already!")
491497 else {
492- let bW = aT(au)
493- let bA = bW._1
494- let E = bW._2
495- let bu = bW._3
496- let bX = at(au)
497- let av = bX._1
498- let aw = bX._2
499- if ((bV >= aw))
500- then throw(("Please place a bid higher than: " + toString(bV)))
498+ let bY = aV(aw)
499+ let bC = bY._1
500+ let E = bY._2
501+ let bw = bY._3
502+ let bZ = av(aw)
503+ let ax = bZ._1
504+ let ay = bZ._2
505+ if ((bX >= ay))
506+ then throw(("Please place a bid higher than: " + toString(bX)))
501507 else {
502- let az = if (!(isDefined(av.assetId)))
508+ let aB = if (!(isDefined(ax.assetId)))
503509 then throw("Only USDN is accepted!")
504- else toBase58String(value(av.assetId))
505- let bR = y(("current_bidamount_" + G))
506- let bS = valueOrElse(y(Y(aV, G)), (af * 2))
507- if (!(aI(az)))
510+ else toBase58String(value(ax.assetId))
511+ let bT = y(("current_bidamount_" + G))
512+ let bU = valueOrElse(y(aa(aX, G)), (ah * 2))
513+ if (!(aK(aB)))
508514 then throw("asset not accepted")
509- else if ((bS > aw))
515+ else if ((bU > ay))
510516 then throw("Bid is below min price!")
511517 else {
512- let bd = y(R(aV, G))
513- let be = y(K(aV, G))
514- if ((0 >= be))
518+ let bf = y(R(aX, G))
519+ let bg = y(K(aX, G))
520+ if ((0 >= bg))
515521 then throw("No max edition set for this artwork")
516- else if ((bd >= be))
522+ else if ((bf >= bg))
517523 then throw("Sold out, you cannot bid")
518- else [StringEntry((((((((("bid_" + G) + "_") + aV) + "_") + E) + "_") + bA) + "_OPEN"), ((((az + "_") + toString(aw)) + "_") + toString(bu))), IntegerEntry(("current_bidamount_" + G), (bR + 1)), StringEntry(L(G), toBase58String(au.transactionId)), IntegerEntry(M(toBase58String(au.transactionId)), aw)]
524+ else [StringEntry((((((((("bid_" + G) + "_") + aX) + "_") + E) + "_") + bC) + "_OPEN"), ((((aB + "_") + toString(ay)) + "_") + toString(bw))), IntegerEntry(("current_bidamount_" + G), (bT + 1)), StringEntry(L(G), toBase58String(aw.transactionId)), IntegerEntry(M(toBase58String(aw.transactionId)), ay)]
519525 }
520526 }
521527 }
522528 }
523529
524530
525-func bY (au,G,aV,N,aW) = {
526- let E = toBase58String(au.caller.bytes)
527- if ((E != aV))
531+func ca (aw,G,aX,N,aY) = {
532+ let E = toBase58String(aw.caller.bytes)
533+ if ((E != aX))
528534 then throw("You cannot do this action")
529- else by(au, G, aV, N, aW, true)
535+ else bA(aw, G, aX, N, aY, true)
530536 }
531537
532538
533-func bZ (G,aV) = {
534- let bd = y(R(aV, G))
535- let be = y(K(aV, G))
536- let ca = y(P(aV, G))
537- let cb = y(O(aV, G))
538- let bU = (cb + height)
539- if ((height > ca))
540- then if ((bd == be))
539+func cb (G,aX) = {
540+ let bf = y(R(aX, G))
541+ let bg = y(K(aX, G))
542+ let cc = y(P(aX, G))
543+ let cd = y(O(aX, G))
544+ let bW = (cd + height)
545+ if ((height > cc))
546+ then if ((bf == bg))
541547 then throw("Can't restart auction, max amount sold")
542- else [IntegerEntry(P(aV, G), bU), DeleteEntry(L(G))]
548+ else [IntegerEntry(P(aX, G), bW), DeleteEntry(L(G))]
543549 else throw("Previous auction isn't completed yet")
544550 }
545551
546552
547-func cc (au,G,aV,N,aW) = {
548- let bU = y(P(aV, G))
549- let cd = u(L(G))
550- if ((height > bU))
551- then if ((N == cd))
553+func ce (aw,G,aX,N,aY) = {
554+ let bW = y(P(aX, G))
555+ let cf = u(L(G))
556+ if ((height > bW))
557+ then if ((N == cf))
552558 then {
553- let ce = by(au, G, aV, N, aW, true)
554- let cf = bZ(G, aV)
555- (cf ++ ce)
559+ let cg = bA(aw, G, aX, N, aY, true)
560+ let ch = cb(G, aX)
561+ (ch ++ cg)
556562 }
557563 else throw("This is not the winning bid!")
558564 else throw("This auction is not yet finished!")
559565 }
560566
561567
562-func cg (au,G,aV,N) = {
563- let ch = aT(au)
564- let bA = ch._1
565- let E = ch._2
566- let bu = ch._3
567- let bR = y(("current_bidamount_" + G))
568- let aO = ((((((("bid_" + G) + "_") + aV) + "_") + E) + "_") + N)
569- let aP = v((aO + "_OPEN"), "Bid not found")
570- let aQ = split(aP, "_")
571- let az = aM(aQ[0])
572- let ci = "CANCELED"
573-[DeleteEntry((aO + "_OPEN")), StringEntry(((aO + "_") + ci), ((aP + "_") + toString(bu))), IntegerEntry(("current_bidamount_" + G), (bR - 1)), ScriptTransfer(Address(fromBase58String(E)), parseIntValue(aQ[1]), az)]
568+func ci (aw,G,aX,N) = {
569+ let cj = aV(aw)
570+ let bC = cj._1
571+ let E = cj._2
572+ let bw = cj._3
573+ let bT = y(("current_bidamount_" + G))
574+ let aQ = ((((((("bid_" + G) + "_") + aX) + "_") + E) + "_") + N)
575+ let aR = v((aQ + "_OPEN"), "Bid not found")
576+ let aS = split(aR, "_")
577+ let aB = aO(aS[0])
578+ let ck = "CANCELED"
579+[DeleteEntry((aQ + "_OPEN")), StringEntry(((aQ + "_") + ck), ((aR + "_") + toString(bw))), IntegerEntry(("current_bidamount_" + G), (bT - 1)), ScriptTransfer(Address(fromBase58String(E)), parseIntValue(aS[1]), aB)]
574580 }
575581
576582
577-func cj (au,G,aV,N) = {
578- let ch = aT(au)
579- let bA = ch._1
580- let E = ch._2
581- let bu = ch._3
582- let bR = y(("current_bidamount_" + G))
583- let aO = ((((((("bid_" + G) + "_") + aV) + "_") + E) + "_") + N)
584- let aP = v((aO + "_OPEN"), "Bid not found")
585- let aQ = split(aP, "_")
586- let az = aM(aQ[0])
587- let ci = "CANCELED"
588- let aR = parseIntValue(aQ[1])
589- let cd = u(L(G))
590- if ((N == cd))
583+func cl (aw,G,aX,N) = {
584+ let cj = aV(aw)
585+ let bC = cj._1
586+ let E = cj._2
587+ let bw = cj._3
588+ let bT = y(("current_bidamount_" + G))
589+ let aQ = ((((((("bid_" + G) + "_") + aX) + "_") + E) + "_") + N)
590+ let aR = v((aQ + "_OPEN"), "Bid not found")
591+ let aS = split(aR, "_")
592+ let aB = aO(aS[0])
593+ let ck = "CANCELED"
594+ let aT = parseIntValue(aS[1])
595+ let cf = u(L(G))
596+ if ((N == cf))
591597 then throw("You can't cancel the highest bid!")
592- else [DeleteEntry((aO + "_OPEN")), StringEntry(((aO + "_") + ci), ((aP + "_") + toString(bu))), IntegerEntry(("current_bidamount_" + G), (bR - 1)), ScriptTransfer(Address(fromBase58String(E)), aR, az)]
598+ else [DeleteEntry((aQ + "_OPEN")), StringEntry(((aQ + "_") + ck), ((aR + "_") + toString(bw))), IntegerEntry(("current_bidamount_" + G), (bT - 1)), ScriptTransfer(Address(fromBase58String(E)), aT, aB)]
593599 }
594600
595601
596-@Callable(au)
597-func mintNft (ba,bo,bq) = if ((au.caller == this))
602+@Callable(aw)
603+func mintNft (bc,bq,bs) = if ((aw.caller == this))
598604 then {
599- let ck = Address(fromBase58String(bq))
600- let cl = Issue(("SCONEX_" + toString((ba + 1))), bo, 1, 0, false)
601- let bF = calculateAssetId(cl)
602- $Tuple2([cl, ScriptTransfer(ck, 1, bF)], toBase58String(bF))
605+ let cm = Address(fromBase58String(bs))
606+ let cn = Issue(("SCONEX_" + toString((bc + 1))), bq, 1, 0, false)
607+ let bH = calculateAssetId(cn)
608+ $Tuple2([cn, ScriptTransfer(cm, 1, bH)], toBase58String(bH))
603609 }
604610 else throw("Only the dApp can mint NFT's")
605611
606612
607613
608-@Callable(au)
609-func addArtwork (ad,ap,aq,ar,cm,ao,cn) = {
610- let co = aT(au)
611- let G = co._1
612- let E = co._2
613- let bu = co._3
614- let cp = an(E, ao, ap, aq, ar)
615- if ((cp != ""))
614+@Callable(aw)
615+func addArtwork (af,ar,as,at,co,aq,cp) = {
616+ let cq = aV(aw)
617+ let G = cq._1
618+ let E = cq._2
619+ let bw = cq._3
620+ let cr = ap(E, aq, ar, as, at)
621+ if ((cr != ""))
616622 then throw("Something went wrong!")
617623 else {
618- let cq = ax(au)
619- let aw = cq._1
620- let az = cq._2
621- if (!(isDefined(aw)))
624+ let cs = az(aw)
625+ let ay = cs._1
626+ let aB = cs._2
627+ if (!(isDefined(ay)))
622628 then throw("Something went wrong")
623629 else {
624- let cr = u(ae(ad, E))
625- if ((cr != ""))
630+ let ct = u(ag(af, E))
631+ if ((ct != ""))
626632 then throw("You already added it")
627633 else {
628- let cs = u(ac(ad))
629- if ((cs != ""))
634+ let cu = u(ae(af))
635+ if ((cu != ""))
630636 then throw("This hash is already registered")
631- else [StringEntry(ac(ad), E), StringEntry(ae(ad, E), G), IntegerEntry(F(E, G), bu), StringEntry(H(E, G), ap), StringEntry(I(E, G), aq), StringEntry(J(E, G), ao), StringEntry(X(E, G), cm), StringEntry(W(E, G), ar), IntegerEntry(K(E, G), 0), IntegerEntry(R(E, G), 0), BooleanEntry(U(E, G), false), StringEntry(aa(E, G), ad), StringEntry(V(E, G), cn), ScriptTransfer(Address(fromBase58String(c)), aw, az)]
637+ else [StringEntry(ae(af), E), StringEntry(ag(af, E), G), IntegerEntry(F(E, G), bw), StringEntry(H(E, G), ar), StringEntry(I(E, G), as), StringEntry(J(E, G), aq), StringEntry(Z(E, G), co), StringEntry(Y(E, G), at), IntegerEntry(K(E, G), 0), IntegerEntry(R(E, G), 0), BooleanEntry(W(E, G), false), StringEntry(ac(E, G), af), StringEntry(X(E, G), cp), ScriptTransfer(Address(fromBase58String(c)), ay, aB)]
632638 }
633639 }
634640 }
635641 }
636642
637643
638644
639-@Callable(au)
640-func sellArtwork (G,aK,ct,az,cu,cb) = {
641- let cv = aT(au)
642- let bA = cv._1
643- let E = cv._2
644- let bb = u(H(E, G))
645- if (!(containsElement([p, q, r], cu)))
645+@Callable(aw)
646+func sellArtwork (G,aM,cv,aB,cw,cd) = {
647+ let cx = aV(aw)
648+ let bC = cx._1
649+ let E = cx._2
650+ let bd = u(H(E, G))
651+ if (!(containsElement([p, q, r], cw)))
646652 then throw("We don't know this auction type")
647- else if ((bb == ""))
653+ else if ((bd == ""))
648654 then throw("This art doesn't match your account")
649655 else {
650- let bR = y(("current_bidamount_" + G))
651- if (!(aI(az)))
656+ let bT = y(("current_bidamount_" + G))
657+ if (!(aK(aB)))
652658 then throw("Something went wrong!")
653- else if (!(aJ(az, aK)))
659+ else if (!(aL(aB, aM)))
654660 then throw("Something went wrong!")
655661 else {
656- let as = al(E)
657- if ((as != ""))
658- then throw(as)
662+ let au = an(E)
663+ if ((au != ""))
664+ then throw(au)
659665 else {
660- let bd = y(R(E, G))
661- let be = y(K(E, G))
662- if ((ct > 5000))
666+ let bf = y(R(E, G))
667+ let bg = y(K(E, G))
668+ if ((cv > 5000))
663669 then throw("5000 editions max per artwork")
664- else if (if ((bd != 0))
665- then (bd == be)
670+ else if (if ((bf != 0))
671+ then (bf == bg)
666672 else false)
667673 then throw("Max edition reached.")
668- else if (if ((bd > 0))
669- then (be != ct)
674+ else if (if ((bf > 0))
675+ then (bg != cv)
670676 else false)
671677 then throw("Cannot change maximum issuable anymore")
672- else if (if ((bR > 0))
673- then (be != ct)
678+ else if (if ((bT > 0))
679+ then (bg != cv)
674680 else false)
675681 then throw("Cannot change maximum issuable with active orders")
676682 else {
677- let bp = if (if ((aK > 0))
678- then (ct > 0)
683+ let br = if (if ((aM > 0))
684+ then (cv > 0)
679685 else false)
680686 then true
681687 else false
682- let bU = (cb + height)
683-[BooleanEntry(U(E, G), bp), IntegerEntry(Y(E, G), aK), IntegerEntry(K(E, G), ct), IntegerEntry(O(E, G), cb), IntegerEntry(P(E, G), bU), StringEntry(Z(E, G), az), StringEntry(Q(E, G), cu)]
688+ let bW = (cd + height)
689+[BooleanEntry(W(E, G), br), IntegerEntry(aa(E, G), aM), IntegerEntry(K(E, G), cv), IntegerEntry(O(E, G), cd), IntegerEntry(P(E, G), bW), StringEntry(ab(E, G), aB), StringEntry(Q(E, G), cw)]
684690 }
685691 }
686692 }
687693 }
688694 }
689695
690696
691697
692-@Callable(au)
693-func buyArtwork (G,aV) = {
694- let cu = u(Q(aV, G))
695- if ((cu == r))
696- then by(au, G, aV, "", "", false)
698+@Callable(aw)
699+func buyArtwork (G,aX) = {
700+ let cw = u(Q(aX, G))
701+ if ((cw == r))
702+ then bA(aw, G, aX, "", "", false)
697703 else throw("Direct buy only allowed when no auction type is set!")
698704 }
699705
700706
701707
702-@Callable(au)
703-func updateTags (cw,G,ar) = {
704- let E = toString(addressFromPublicKey(au.callerPublicKey))
708+@Callable(aw)
709+func updateTags (cy,G,at) = {
710+ let E = toString(addressFromPublicKey(aw.callerPublicKey))
705711 if (containsElement(h, E))
706- then if ((size(split(ar, ",")) > 5))
712+ then if ((size(split(at, ",")) > 5))
707713 then throw("5 tags max.")
708714 else {
709- let cx = v(W(cw, G), "No tags created with this key, so can't update!")
710- if ((ar == cx))
715+ let cz = v(Y(cy, G), "No tags created with this key, so can't update!")
716+ if ((at == cz))
711717 then throw("Tags are the same as old tags!")
712- else [StringEntry(W(cw, G), ar)]
718+ else [StringEntry(Y(cy, G), at)]
713719 }
714720 else throw("no")
715721 }
716722
717723
718724
719-@Callable(au)
720-func deleteEntry (cy) = {
721- let E = toString(addressFromPublicKey(au.callerPublicKey))
725+@Callable(aw)
726+func deleteEntry (cA) = {
727+ let E = toString(addressFromPublicKey(aw.callerPublicKey))
722728 if (containsElement(h, E))
723- then [DeleteEntry(cy)]
729+ then [DeleteEntry(cA)]
724730 else throw("no")
725731 }
726732
727733
728734
729-@Callable(au)
730-func setBid (G,aV) = {
731- let cu = u(Q(aV, G))
732- if ((cu == p))
733- then bO(au, G, aV)
734- else if ((cu == q))
735- then bT(au, G, aV)
736- else throw((("Unknown auction type :" + cu) + ", please contact the admins"))
735+@Callable(aw)
736+func setBid (G,aX) = {
737+ let cw = u(Q(aX, G))
738+ if ((cw == p))
739+ then bQ(aw, G, aX)
740+ else if ((cw == q))
741+ then bV(aw, G, aX)
742+ else throw((("Unknown auction type :" + cw) + ", please contact the admins"))
737743 }
738744
739745
740746
741-@Callable(au)
742-func acceptBid (G,aV,N,aW) = {
743- let cu = u(Q(aV, G))
744- if ((cu == p))
745- then bY(au, G, aV, N, aW)
746- else if ((cu == q))
747- then cc(au, G, aV, N, aW)
748- else throw((("Unknown auction type :" + cu) + ", please contact the admins"))
747+@Callable(aw)
748+func acceptBid (G,aX,N,aY) = {
749+ let cw = u(Q(aX, G))
750+ if ((cw == p))
751+ then ca(aw, G, aX, N, aY)
752+ else if ((cw == q))
753+ then ce(aw, G, aX, N, aY)
754+ else throw((("Unknown auction type :" + cw) + ", please contact the admins"))
749755 }
750756
751757
752758
753-@Callable(au)
754-func cancelBid (G,aV,N) = {
755- let cu = u(Q(aV, G))
756- if ((cu == p))
757- then cg(au, G, aV, N)
758- else cj(au, G, aV, N)
759+@Callable(aw)
760+func cancelBid (G,aX,N) = {
761+ let cw = u(Q(aX, G))
762+ if ((cw == p))
763+ then ci(aw, G, aX, N)
764+ else cl(aw, G, aX, N)
759765 }
760766
761767

github/deemru/w8io/873ac7e 
287.06 ms