tx · 7hkYU5nd1tyjLHq415q18sC1pCrr78trXwBjgR7Pe9au

3N8jKcYWjJn5GjrJV94rxzVk42TPk1rPLeu:  -0.01000000 Waves

2022.03.30 18:14 [1986830] smart account 3N8jKcYWjJn5GjrJV94rxzVk42TPk1rPLeu > SELF 0.00000000 Waves

{ "type": 13, "id": "7hkYU5nd1tyjLHq415q18sC1pCrr78trXwBjgR7Pe9au", "fee": 1000000, "feeAssetId": null, "timestamp": 1648653323348, "version": 2, "chainId": 84, "sender": "3N8jKcYWjJn5GjrJV94rxzVk42TPk1rPLeu", "senderPublicKey": "914UmzBhcoS4onGGVcBRgb4VPV88m9VCFjsj5WWck5vm", "proofs": [ "2tT5vFxrMDQqMGyGRur1F3pyQ8vRuvfHuBttjKQ2ZdBxF5oYNuHSEHpm2599JhxArQDds1jsb3HHAowYcCwkwKnk" ], "script": "base64:AAIFAAAAAAAAAFgIAhIDCgEIEgMKAQgSBQoDAQgIEgwKCggICAgICAgICAgSDgoMCAEBCAgBCAgIAQEBEgQKAggIEgUKAwgICBIDCgEIEgQKAggIEgYKBAgICAgSBQoDCAgIAAAAUwAAAAAIdW5pdFRlc3QHAAAAAAlvcmFjbGVLZXkCAAAACW9yYWNsZUtleQEAAAAGZ2V0U3RyAAAAAQAAAANrZXkEAAAAByRtYXRjaDAJAAQdAAAAAgUAAAAEdGhpcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAWIFAAAAByRtYXRjaDAFAAAAAWICAAAAAAAAAAAGb3JhY2xlCQEAAAAGZ2V0U3RyAAAAAQUAAAAJb3JhY2xlS2V5AAAAAAlvcmFjbGVGZWUJAQAAAAV2YWx1ZQAAAAEJAAQmAAAAAQUAAAAGb3JhY2xlAAAAAAZvd25lcnMJAARMAAAAAgkABB0AAAACBQAAAAlvcmFjbGVGZWUCAAAABm93bmVyMQkABEwAAAACCQAEHQAAAAIFAAAACW9yYWNsZUZlZQIAAAAGb3duZXIyBQAAAANuaWwAAAAAD2NvbGxlY3Rpb25zRGFwcAkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEHQAAAAIFAAAACW9yYWNsZUZlZQIAAAAPY29sbGVjdGlvbnNEYXBwAgAAABhjb2xsZWN0aW9uRGFwcCBub3QgZm91bmQAAAAAC2ZlZVJlY2VpdmVyCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQdAAAAAgUAAAAJb3JhY2xlRmVlAgAAAAtmZWVSZWNlaXZlcgIAAAAVZmVlUmVjZWl2ZXIgbm90IGZvdW5kAAAAAAhjZXJ0RGFwcAkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEHQAAAAIFAAAACW9yYWNsZUZlZQIAAAAIY2VydERhcHACAAAAEmNlcnREYXBwIG5vdCBmb3VuZAAAAAAHZmVlRGFwcAkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEHQAAAAIFAAAACW9yYWNsZUZlZQIAAAAHZmVlRGFwcAIAAAARZmVlRGFwcCBub3QgZm91bmQAAAAACHVzZXJEYXBwCQEAAAAFdmFsdWUAAAABCQAEJgAAAAEJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABB0AAAACBQAAAAlvcmFjbGVGZWUCAAAACHVzZXJEYXBwAgAAABJ1c2VyZGFwcCBub3QgZm91bmQAAAAAC1VTRE5Bc3NldElkCQACWQAAAAEJAQAAABFAZXh0ck5hdGl2ZSgxMDUzKQAAAAIFAAAACW9yYWNsZUZlZQIAAAALVVNETkFzc2V0SWQAAAAADVNjb25leEFzc2V0SWQJAAJZAAAAAQkBAAAAEUBleHRyTmF0aXZlKDEwNTMpAAAAAgUAAAAJb3JhY2xlRmVlAgAAAA1TY29uZXhBc3NldElkAAAAAAV0eXBlcwkABEwAAAACAgAAAAVJTUFHRQkABEwAAAACAgAAAANQREYJAARMAAAAAgIAAAAFVklERU8FAAAAA25pbAAAAAAMUHJldmlld3R5cGVzCQAETAAAAAICAAAAA1BERgUAAAADbmlsAAAAAAtkYXBwUnVubmluZwkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBsAAAACBQAAAAh1c2VyRGFwcAIAAAAUY29uZl9kYXBwX2lzX3J1bm5pbmcGAAAAAA5tYWludGVuYW5jZU1TRwkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABB0AAAACBQAAAAh1c2VyRGFwcAIAAAAUY29uZl9tYWludGVuYW5jZV9tc2cCAAAAAAAAAAANdXNlclN1c3BlbmRlZAIAAAAJU1VTUEVOREVEAAAAAAt1c2VyUmVtb3ZlZAIAAAAHUkVNT1ZFRAAAAAAQdXNlclVucmVnaXN0ZXJlZAIAAAAMVU5SRUdJU1RFUkVEAAAAAAxhdWN0aW9uVHlwZTECAAAAB0JJRFRZUEUAAAAADGF1Y3Rpb25UeXBlMgIAAAALVFJBRElUSU9OQUwAAAAADGF1Y3Rpb25UeXBlMwIAAAAGRElSRUNUAQAAABdnZXRTdHJpbmdCeUtleUZyb21Vc2VycwAAAAEAAAADa2V5CQEAAAALdmFsdWVPckVsc2UAAAACCQAEHQAAAAIFAAAACHVzZXJEYXBwBQAAAANrZXkCAAAAAAEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABAAAAA2tleQkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABB0AAAACBQAA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YmlkQW1vdW50BQAAAApiaWRBc3NldElkAQAAAAxpZENhbGxlckRhdGUAAAABAAAAAWkDCQEAAAABIQAAAAEFAAAAC2RhcHBSdW5uaW5nCQAAAgAAAAEFAAAADm1haW50ZW5hbmNlTVNHCQAFFQAAAAMJAAJYAAAAAQgFAAAAAWkAAAANdHJhbnNhY3Rpb25JZAkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzCAUAAAAJbGFzdEJsb2NrAAAACXRpbWVzdGFtcAEAAAAKZ2V0QXJ0RGF0YQAAAAQAAAABaQAAAAZpc3N1ZXIAAAAFYXJ0SWQAAAAFaXNCaWQEAAAADmNhbGxlcklzSXNzdWVyCQAAAAAAAAIJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwUAAAAGaXNzdWVyBAAAAAh0b3RhbE5GVAkBAAAAD2dldEludGVnZXJCeUtleQAAAAECAAAAEHRvdGFsX25mdF9pc3N1ZWQEAAAAC2FydHdvcmtOYW1lCQEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABCQEAAAAHa2V5TmFtZQAAAAIFAAAABmlzc3VlcgUAAAAFYXJ0SWQDCQAAAAAAAAIFAAAAC2FydHdvcmtOYW1lAgAAAAAJAAACAAAAAQIAAAARQXJ0IGRvZXNuJ3QgZXhpc3QEAAAACGlzT25TYWxlCQEAAAAPZ2V0Qm9vbGVhbkJ5S2V5AAAAAQkBAAAACWtleU9uU2FsZQAAAAIFAAAABmlzc3VlcgUAAAAFYXJ0SWQEAAAACmFtb3VudFNvbGQJAQAAAA9nZXRJbnRlZ2VyQnlLZXkAAAABCQEAAAAJa2V5SXNzdWVkAAAAAgUAAAAGaXNzdWVyBQAAAAVhcnRJZAQAAAAMYXJ0d29ya1ByaWNlCQEAAAALdmFsdWVPckVsc2UAAAACCQEAAAAPZ2V0SW50ZWdlckJ5S2V5AAAAAQkBAAAACGtleVByaWNlAAAAAgUAAAAGaXNzdWVyBQAAAAVhcnRJZAUAAAAMbWluVVNETlByaWNlBAAAAAxwcmljZUFzc2V0SWQDBQAAAA5jYWxsZXJJc0lzc3VlcgkAAlgAAAABBQAAAAtVU0ROQXNzZXRJZAkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQkBAAAAEmtleUFzc2V0SWRBY2NlcHRlZAAAAAIFAAAABmlzc3VlcgUAAAAFYXJ0SWQEAAAACm1heENhblNlbGwJAQAAAA9nZXRJbnRlZ2VyQnlLZXkAAAABCQEAAAAKa2V5TWF4TWludAAAAAIFAAAABmlzc3VlcgUAAAAFYXJ0SWQDAwMJAQAAAAEhAAAAAQUAAAAFaXNCaWQJAQAAAAEhAAAAAQUAAAAOY2FsbGVySXNJc3N1ZXIHAwMJAABnAAAAAgAAAAAAAAAAAAUAAAAMYXJ0d29ya1ByaWNlBgkBAAAAASEAAAABBQAAAAhpc09uU2FsZQYJAABnAAAAAgAAAAAAAAAAAAUAAAAKbWF4Q2FuU2VsbAcJAAACAAAAAQIAAAAQQXJ0IG5vdCBmb3Igc2FsZQMDAwkBAAAAASEAAAABBQAAAAVpc0JpZAUAAAAOY2FsbGVySXNJc3N1ZXIHCQAAZwAAAAIAAAAAAAAAAAAFAAAACm1heENhblNlbGwHCQAAAgAAAAECAAAAFE1heCBpc3N1YWJsZSBub3Qgc2V0CQAFGQAAAAcFAAAACHRvdGFsTkZUBQAAAAthcnR3b3JrTmFtZQUAAAAKYW1vdW50U29sZAUAAAAMYXJ0d29ya1ByaWNlBQAAAAxwcmljZUFzc2V0SWQFAAAACm1heENhblNlbGwFAAAACGlzT25TYWxlAQAAAApnZXRCaWREYXRhAAAACQAAAAFpAAAABmNhbGxlcgAAAAZpc3N1ZXIAAAAFYXJ0SWQAAAAIYmlkT3duZXIAAAAFYmlkSWQAAAAMcHJpY2VBc3NldElkAAAADGFydHdvcmtQcmljZQAAAAVpc0JpZAQAAAAJY2hlY2tVc2VyCQEAAAAMdmFsaWRhdGVVc2VyAAAAAQUAAAAGaXNzdWVyAwMFAAAABWlzQmlkCQEAAAACIT0AAAACBQAAAAljaGVja1VzZXICAAAAAAcJAAACAAAAAQUAAAAJY2hlY2tVc2VyBAAAAApiaWREYXRhS2V5CQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAABGJpZF8FAAAABWFydElkAgAAAAFfBQAAAAZpc3N1ZXICAAAAAV8FAAAACGJpZE93bmVyAgAAAAFfBQAAAAViaWRJZAQAAAAMdDAxMzUxOTEzNjQ4AwUAAAAFaXNCaWQJAQAAABZnZXRQcmljZUFzc2V0SWRGcm9tQmlkAAAAAQUAAAAKYmlkRGF0YUtleQkBAAAAFHZhbGlkYXRlUHJpY2VBc3NldElkAAAAAwUAAAABaQUAAAAMcHJpY2VBc3NldElkBQAAAAxhcnR3b3JrUHJpY2UEAAAABmFtb3VudAgFAAAADHQwMTM1MTkxMzY0OAAAAAJfMQQAAAAHYXNzZXRJZAgFAAAADHQwMTM1MTkxMzY0OAAAAAJfMgkABRUAAAADBQAAAApiaWREYXRhS2V5BQAAAAZhbW91bnQFAAAAB2Fzc2V0SWQBAAAADGdldElzc3VlRGF0YQAAAAsAAAAGaXNzdWVyAAAABWFydElkAAAAC2FydHdvcmtOYW1lAAAADW5ld0Ftb3VudFNvbGQAAAAKbWF4Q2FuU2VsbAAAAAh0b3RhbE5GVAAAAAZjYWxsZXIAAAAIYmlkT3duZXIAAAAFYmlkSWQAAAABaQAAAAhpc09uU2FsZQQAAAAJaXNzdWVNZXRhCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAlDcmVhdG9yOiAFAAAABmlzc3VlcgIAAAAILEFydElEOiAFAAAABWFydElkAgAAAA8sQXJ0d29yayBuYW1lOiAFAAAAC2FydHdvcmtOYW1lAgAAAAgsSXNzdWU6IAkAAaQAAAABBQAAAA1uZXdBbW91bnRTb2xkAgAAAAEvCQABpAAAAAEFAAAACm1heENhblNlbGwEAAAACnNlbGxTdGF0dXMDAwkAAAAAAAACBQAAAA1uZXdBbW91bnRTb2xkBQAAAAptYXhDYW5TZWxsBgkBAAAAASEAAAABBQAAAAhpc09uU2FsZQcGBAAAAApyZWNlaXZlTkZUAwkBAAAAAiE9AAAAAgUAAAAIYmlkT3duZXICAAAAAAkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQUAAAAIYmlkT3duZXIIBQAAAAFpAAAABmNhbGxlcgkABRUAAAADBQAAAApzZWxsU3RhdHVzBQAAAApyZWNlaXZlTkZUBQAAAAlpc3N1ZU1ldGEBAAAADGdldEJpZEtleVZhbAAA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AAANdHJhbnNhY3Rpb25JZAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAACGtleUJpZElkAAAAAQkAAlgAAAABCAUAAAABaQAAAA10cmFuc2FjdGlvbklkBQAAAAZhbW91bnQFAAAAA25pbAEAAAAXYWNjZXB0QmlkTm9uVHJhZGl0aW9uYWwAAAAFAAAAAWkAAAAFYXJ0SWQAAAAGaXNzdWVyAAAABWJpZElkAAAACGJpZE93bmVyBAAAAAZjYWxsZXIJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwMJAQAAAAIhPQAAAAIFAAAABmNhbGxlcgUAAAAGaXNzdWVyCQAAAgAAAAECAAAAGVlvdSBjYW5ub3QgZG8gdGhpcyBhY3Rpb24JAQAAAAdidXlNaW50AAAABgUAAAABaQUAAAAFYXJ0SWQFAAAABmlzc3VlcgUAAAAFYmlkSWQFAAAACGJpZE93bmVyBgEAAAAOcmVzdGFydEF1Y3Rpb24AAAACAAAABWFydElkAAAABmlzc3VlcgQAAAAKYW1vdW50U29sZAkBAAAAD2dldEludGVnZXJCeUtleQAAAAEJAQAAAAlrZXlJc3N1ZWQAAAACBQAAAAZpc3N1ZXIFAAAABWFydElkBAAAAAptYXhDYW5TZWxsCQEAAAAPZ2V0SW50ZWdlckJ5S2V5AAAAAQkBAAAACmtleU1heE1pbnQAAAACBQAAAAZpc3N1ZXIFAAAABWFydElkBAAAAAxvbGRFbmRIZWlnaHQJAQAAAA9nZXRJbnRlZ2VyQnlLZXkAAAABCQEAAAAMa2V5RW5kSGVpZ2h0AAAAAgUAAAAGaXNzdWVyBQAAAAVhcnRJZAQAAAAIZHVyYXRpb24JAQAAAA9nZXRJbnRlZ2VyQnlLZXkAAAABCQEAAAALa2V5RHVyYXRpb24AAAACBQAAAAZpc3N1ZXIFAAAABWFydElkBAAAAAllbmRIZWlnaHQJAABkAAAAAgUAAAAIZHVyYXRpb24FAAAABmhlaWdodAMJAABmAAAAAgUAAAAGaGVpZ2h0BQAAAAxvbGRFbmRIZWlnaHQDCQAAAAAAAAIFAAAACmFtb3VudFNvbGQFAAAACm1heENhblNlbGwJAAACAAAAAQIAAAAmQ2FuJ3QgcmVzdGFydCBhdWN0aW9uLCBtYXggYW1vdW50IHNvbGQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAAxrZXlFbmRIZWlnaHQAAAACBQAAAAZpc3N1ZXIFAAAABWFydElkBQAAAAllbmRIZWlnaHQJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkBAAAAEmtleUhpZ2hlc3RCaWRCaWRJZAAAAAEFAAAABWFydElkBQAAAANuaWwJAAACAAAAAQIAAAAkUHJldmlvdXMgYXVjdGlvbiBpc24ndCBjb21wbGV0ZWQgeWV0AQAAABRhY2NlcHRCaWRUcmFkaXRpb25hbAAAAAUAAAABaQAAAAVhcnRJZAAAAAZpc3N1ZXIAAAAFYmlkSWQAAAAIYmlkT3duZXIEAAAACWVuZEhlaWdodAkBAAAAD2dldEludGVnZXJCeUtleQAAAAEJAQAAAAxrZXlFbmRIZWlnaHQAAAACBQAAAAZpc3N1ZXIFAAAABWFydElkBAAAAAxoaWdoZXN0QmlkSWQJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEJAQAAABJrZXlIaWdoZXN0QmlkQmlkSWQAAAABBQAAAAVhcnRJZAMJAABmAAAAAgUAAAAGaGVpZ2h0BQAAAAllbmRIZWlnaHQDCQAAAAAAAAIFAAAABWJpZElkBQAAAAxoaWdoZXN0QmlkSWQEAAAAC2J1eU1pbnREYXRhCQEAAAAHYnV5TWludAAAAAYFAAAAAWkFAAAABWFydElkBQAAAAZpc3N1ZXIFAAAABWJpZElkBQAAAAhiaWRPd25lcgYEAAAAEnJlc3RhcnRBdWN0aW9uRGF0YQkBAAAADnJlc3RhcnRBdWN0aW9uAAAAAgUAAAAFYXJ0SWQFAAAABmlzc3VlcgkABE4AAAACBQAAABJyZXN0YXJ0QXVjdGlvbkRhdGEFAAAAC2J1eU1pbnREYXRhCQAAAgAAAAECAAAAHFRoaXMgaXMgbm90IHRoZSB3aW5uaW5nIGJpZCEJAAACAAAAAQIAAAAhVGhpcyBhdWN0aW9uIGlzIG5vdCB5ZXQgZmluaXNoZWQhAQAAAA1jYW5jZWxCaWRJbXBsAAAABAAAAAFpAAAABWFydElkAAAABmlzc3VlcgAAAAViaWRJZAQAAAAMdDAyODk0MjI5MDk0CQEAAAAM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QXJ0d29ya0RhdGEAAAAFBQAAAAZjYWxsZXIFAAAACmNpZERpc3BsYXkFAAAABG5hbWUFAAAAC2Rlc2NyaXB0aW9uBQAAAAR0YWdzAwkBAAAAAiE9AAAAAgUAAAAPdmFsaWRhdGVBcnR3b3JrAgAAAAAJAAACAAAAAQIAAAAVU29tZXRoaW5nIHdlbnQgd3JvbmchBAAAAAx0MDE4MTcwMTgyMTIJAQAAAA92YWxpZGF0ZVBheW1lbnQAAAABBQAAAAFpBAAAAAZhbW91bnQIBQAAAAx0MDE4MTcwMTgyMTIAAAACXzEEAAAAB2Fzc2V0SWQIBQAAAAx0MDE4MTcwMTgyMTIAAAACXzIDCQEAAAABIQAAAAEJAQAAAAlpc0RlZmluZWQAAAABBQAAAAZhbW91bnQJAAACAAAAAQIAAAAUU29tZXRoaW5nIHdlbnQgd3JvbmcEAAAAC3ByZXZpZXdEYXRhAwkBAAAAD2NvbnRhaW5zRWxlbWVudAAAAAIFAAAADFByZXZpZXd0eXBlcwUAAAAEdHlwZQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAANa2V5UHJldmlld0NpZAAAAAIFAAAABmNhbGxlcgUAAAAFYXJ0SWQFAAAAB3ByZXZpZXcFAAAAA25pbAUAAAADbmlsBAAAABZpbnZva2VDb2xsZWN0aW9uQ3JlYXRlCQAD/AAAAAQJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABCYAAAABBQAAAA9jb2xsZWN0aW9uc0RhcHAJAAEsAAAAAgUAAAAPY29sbGVjdGlvbnNEYXBwAgAAAAogbm90IGZvdW5kAgAAABFjb2xsZWN0aW9uUHJvY2VzcwkABEwAAAACBQAAAApjb2xsZWN0aW9uCQAETAAAAAIFAAAADXN1YmNvbGxlY3Rpb24JAARMAAAAAgUAAAAGY2FsbGVyBQAAAANuaWwFAAAAA25pbAMJAAAAAAAAAgUAAAAWaW52b2tlQ29sbGVjdGlvbkNyZWF0ZQUAAAAWaW52b2tlQ29sbGVjdGlvbkNyZWF0ZQQAAAAMaWRDb2xsZWN0aW9uBAAAAAckbWF0Y2gwBQAAABZpbnZva2VDb2xsZWN0aW9uQ3JlYXRlAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJp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SWQDCQAAAAAAAAIFAAAAC2F1Y3Rpb25UeXBlBQAAAAxhdWN0aW9uVHlwZTEJAQAAABdhY2NlcHRCaWROb25UcmFkaXRpb25hbAAAAAUFAAAAAWkFAAAABWFydElkBQAAAAZpc3N1ZXIFAAAABWJpZElkBQAAAAhiaWRPd25lcgMJAAAAAAAAAgUAAAALYXVjdGlvblR5cGUFAAAADGF1Y3Rpb25UeXBlMgkBAAAAFGFjY2VwdEJpZFRyYWRpdGlvbmFsAAAABQUAAAABaQUAAAAFYXJ0SWQFAAAABmlzc3VlcgUAAAAFYmlkSWQFAAAACGJpZE93bmVyCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACAgAAABZVbmtub3duIGF1Y3Rpb24gdHlwZSA6BQAAAAthdWN0aW9uVHlwZQIAAAAbLCBwbGVhc2UgY29udGFjdCB0aGUgYWRtaW5zAAAAAWkBAAAACWNhbmNlbEJpZAAAAAMAAAAFYXJ0SWQAAAAGaXNzdWVyAAAABWJpZElkBAAAAAthdWN0aW9uVHlwZQkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQkBAAAADmtleUF1Y3Rpb25UeXBlAAAAAgUAAAAGaXNzdWVyBQAAAAVhcnRJZAMJAAAAAAAAAgUAAAALYXVjdGlvblR5cGUFAAAADGF1Y3Rpb25UeXBlMQkBAAAADWNhbmNlbEJpZEltcGwAAAAEBQAAAAFpBQAAAAVhcnRJZAUAAAAGaXNzdWVyBQAAAAViaWRJZAkBAAAAGGNhbmNlbEJpZEltcGxUcmFkaXRpb25hbAAAAAQFAAAAAWkFAAAABWFydElkBQAAAAZpc3N1ZXIFAAAABWJpZElkAAAAAIGFQFs=", "height": 1986830, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 9Bu8f8iQDrnm6ba3bXKHCPs4eFfmjCoox6gmCHqrv28x Next: 6DsLvQXsVFPRRmtBBP961EPJwuXCYt7H9bF1VKajhArU Diff:
OldNewDifferences
3434
3535 let o = fromBase58String(getStringValue(h, "USDNAssetId"))
3636
37-let p = ["IMAGE", "PDF", "VIDEO"]
37+let p = fromBase58String(getStringValue(h, "SconexAssetId"))
3838
39-let q = ["PDF"]
39+let q = ["IMAGE", "PDF", "VIDEO"]
4040
41-let r = valueOrElse(getBoolean(n, "conf_dapp_is_running"), true)
41+let r = ["PDF"]
4242
43-let s = valueOrElse(getString(n, "conf_maintenance_msg"), "")
43+let s = valueOrElse(getBoolean(n, "conf_dapp_is_running"), true)
4444
45-let t = "SUSPENDED"
45+let t = valueOrElse(getString(n, "conf_maintenance_msg"), "")
4646
47-let u = "REMOVED"
47+let u = "SUSPENDED"
4848
49-let v = "UNREGISTERED"
49+let v = "REMOVED"
5050
51-let w = "BIDTYPE"
51+let w = "UNREGISTERED"
5252
53-let x = "TRADITIONAL"
53+let x = "BIDTYPE"
5454
55-let y = "DIRECT"
55+let y = "TRADITIONAL"
5656
57-func z (d) = valueOrElse(getString(n, d), "")
57+let z = "DIRECT"
58+
59+func A (d) = valueOrElse(getString(n, d), "")
5860
5961
60-func A (d) = valueOrElse(getString(this, d), "")
62+func B (d) = valueOrElse(getString(this, d), "")
6163
6264
63-func B (d,C) = valueOrErrorMessage(getString(this, d), C)
65+func C (d,D) = valueOrErrorMessage(getString(this, d), D)
6466
6567
66-func D (d) = valueOrErrorMessage(getInteger(h, d), "Integer undefine or 0 in oracle")
68+func E (d) = valueOrErrorMessage(getInteger(h, d), "Integer undefine or 0 in oracle")
6769
6870
69-func E (d) = valueOrElse(getInteger(this, d), 0)
71+func F (d) = valueOrElse(getInteger(this, d), 0)
7072
7173
72-func F (d) = valueOrElse(getBoolean(this, d), false)
74+func G (d) = valueOrElse(getBoolean(this, d), false)
7375
7476
75-func G (H) = (size(H) == 64)
77+func H (I) = (size(I) == 64)
7678
7779
78-func I (J) = ("user_status_" + J)
80+func J (K) = ("user_status_" + K)
7981
8082
81-func K (J,L) = ((("art_date_" + L) + "_") + J)
83+func L (K,M) = ((("art_date_" + M) + "_") + K)
8284
8385
84-func M (J,L) = ((("art_name_" + L) + "_") + J)
86+func N (K,M) = ((("art_name_" + M) + "_") + K)
8587
8688
87-func N (J,L) = ((("art_desc_" + L) + "_") + J)
89+func O (K,M) = ((("art_desc_" + M) + "_") + K)
8890
8991
90-func O (J,L) = ((("art_display_cid_" + L) + "_") + J)
92+func P (K,M) = ((("art_display_cid_" + M) + "_") + K)
9193
9294
93-func P (J,L) = ((("art_preview_cid_" + L) + "_") + J)
95+func Q (K,M) = ((("art_preview_cid_" + M) + "_") + K)
9496
9597
96-func Q (J,L) = ((("art_maxmint_" + L) + "_") + J)
98+func R (K,M) = ((("art_maxmint_" + M) + "_") + K)
9799
98100
99-func R (L) = ("art_highestBidBidId_" + L)
101+func S (M) = ("art_highestBidBidId_" + M)
100102
101103
102-func S (T) = ("bid_" + T)
104+func T (U) = ("bid_" + U)
103105
104106
105-func U (J,L) = ((("art_duration_" + L) + "_") + J)
107+func V (K,M) = ((("art_duration_" + M) + "_") + K)
106108
107109
108-func V (J,L) = ((("art_endheight_" + L) + "_") + J)
110+func W (K,M) = ((("art_endheight_" + M) + "_") + K)
109111
110112
111-func W (J,L) = ((("art_auctiontype_" + L) + "_") + J)
113+func X (K,M) = ((("art_auctiontype_" + M) + "_") + K)
112114
113115
114-func X (J,L) = ((("art_issued_" + L) + "_") + J)
116+func Y (K,M) = ((("art_issued_" + M) + "_") + K)
115117
116118
117-func Y (Z) = ("nft_issued_" + Z)
119+func Z (aa) = ("nft_issued_" + aa)
118120
119121
120-func aa (Z) = ("nft_artId_" + Z)
122+func ab (aa) = ("nft_artId_" + aa)
121123
122124
123-func ab (J,L) = ((("art_onsale_" + L) + "_") + J)
125+func ac (K,M) = ((("art_onsale_" + M) + "_") + K)
124126
125127
126-func ac (J,L) = ((("art_entitlement_" + L) + "_") + J)
128+func ad (K,M) = ((("art_entitlement_" + M) + "_") + K)
127129
128130
129-func ad (J,L) = ((("art_tags_" + L) + "_") + J)
131+func ae (K,M) = ((("art_tags_" + M) + "_") + K)
130132
131133
132-func ae (J,L) = ((("art_type_" + L) + "_") + J)
134+func af (K,M) = ((("art_type_" + M) + "_") + K)
133135
134136
135-func af (J,L) = ((("art_price_" + L) + "_") + J)
137+func ag (K,M) = ((("art_price_" + M) + "_") + K)
136138
137139
138-func ag (J,L) = ((("art_assetAccepted_" + L) + "_") + J)
140+func ah (K,M) = ((("art_assetAccepted_" + M) + "_") + K)
139141
140142
141-func ah (J,ai) = ((("get_hashbytxidaddr_" + ai) + "_") + J)
143+func ai (K,aj) = ((("get_hashbytxidaddr_" + aj) + "_") + K)
142144
143145
144-func aj (ak) = ("get_owner_by_hash_" + ak)
146+func ak (al) = ("get_owner_by_hash_" + al)
145147
146148
147-func al (ak,J) = ("get_txid_by_hash_owner_" + toBase58String(sha256_16Kb(toBytes((ak + J)))))
149+func am (al,K) = ("get_txid_by_hash_owner_" + toBase58String(sha256_16Kb(toBytes((al + K)))))
148150
149151
150-func am (J,L) = ((("collection_" + L) + "_") + J)
152+func an (K,M) = ((("collection_" + M) + "_") + K)
151153
152154
153-let an = D(("certification_fee_" + toBase58String(o)))
155+let ao = E(("min_" + toBase58String(o)))
154156
155-func ao (T) = valueOrElse(E(S(T)), 0)
157+let ap = E(("fee_" + toBase58String(p)))
158+
159+func aq (U) = valueOrElse(F(T(U)), 0)
156160
157161
158-func ap (L) = {
159- let T = A(R(L))
160- if ((T == ""))
162+func ar (M) = {
163+ let U = B(S(M))
164+ if ((U == ""))
161165 then 0
162- else ao(T)
166+ else aq(U)
163167 }
164168
165169
166-func aq (ar,as) = if ((size(ar) == 0))
170+func as (at,au) = if ((size(at) == 0))
167171 then throw("Field cannot be is empty")
168- else if ((size(ar) > as))
169- then throw((ar + " is too long"))
172+ else if ((size(at) > au))
173+ then throw((at + " is too long"))
170174 else true
171175
172176
173-func at (J) = {
174- let au = valueOrElse(getString(n, I(J)), v)
175- if ((au == v))
177+func av (K) = {
178+ let aw = valueOrElse(getString(n, J(K)), w)
179+ if ((aw == w))
176180 then "Register this account first with 'Account' tab"
177- else if ((au == t))
181+ else if ((aw == u))
178182 then "Account suspended"
179- else if ((au == u))
183+ else if ((aw == v))
180184 then "Account removed"
181185 else ""
182186 }
183187
184188
185-func av (J,aw,ax,ay,az) = {
186- let aA = at(J)
187- if ((aA != ""))
188- then throw(aA)
189- else if ((size(aw) == 0))
189+func ax (K,ay,az,aA,aB) = {
190+ let aC = av(K)
191+ if ((aC != ""))
192+ then throw(aC)
193+ else if ((size(ay) == 0))
190194 then throw("Display CID cannot be empty")
191- else if ((size(aw) != 46))
195+ else if ((size(ay) != 46))
192196 then throw("This doesn't seem a valid CID!")
193- else if (!(aq(ax, 100)))
197+ else if (!(as(az, 100)))
194198 then throw("100 Char. max name")
195- else if (!(aq(ay, 1000)))
199+ else if (!(as(aA, 1000)))
196200 then throw("1000 Char. max description")
197- else if ((size(split(az, ",")) > 5))
201+ else if ((size(split(aB, ",")) > 5))
198202 then throw("5 tags max.")
199203 else ""
200204 }
201205
202206
203-func aB (aC) = if ((size(aC.payments) == 0))
207+func aD (aE) = if ((size(aE.payments) == 0))
204208 then throw("No payment attached")
205209 else {
206- let aD = value(aC.payments[0])
207- let aE = value(aD.amount)
208- $Tuple2(aD, aE)
210+ let aF = value(aE.payments[0])
211+ let aG = value(aF.amount)
212+ $Tuple2(aF, aG)
209213 }
210214
211215
212-func aF (aC) = {
213- let aG = aB(aC)
214- let aD = aG._1
215- let aE = aG._2
216- let aH = if (if (isDefined(aD.assetId))
217- then (aD.assetId == o)
216+func aH (aE) = {
217+ let aI = aD(aE)
218+ let aF = aI._1
219+ let aG = aI._2
220+ let aJ = if (if (isDefined(aF.assetId))
221+ then (aF.assetId == p)
218222 else false)
219- then aD.assetId
220- else throw("Only USDN token accepted as transaction fee")
221- if ((aE != an))
222- then throw(((("Payment amount should be " + toString(an)) + " but is: ") + toString(aE)))
223- else $Tuple2(aE, aH)
223+ then aF.assetId
224+ else throw("Only SCONEX token accepted as transaction fee")
225+ if ((aG != ap))
226+ then throw(((("Payment amount should be " + toString(ap)) + " but is: ") + toString(aG)))
227+ else $Tuple2(aG, aJ)
224228 }
225229
226230
227-func aI (aJ,L) = {
228- let e = getInteger(this, X(aJ, L))
231+func aK (aL,M) = {
232+ let e = getInteger(this, Y(aL, M))
229233 if ($isInstanceOf(e, "Int"))
230234 then {
231235 let f = e
237241 }
238242
239243
240-func aK (aC,aL,aM) = {
241- let aN = aB(aC)
242- let aD = aN._1
243- let aE = aN._2
244- let aH = if (!(isDefined(aD.assetId)))
244+func aM (aE,aN,aO) = {
245+ let aP = aD(aE)
246+ let aF = aP._1
247+ let aG = aP._2
248+ let aJ = if (!(isDefined(aF.assetId)))
245249 then throw("Wrong asset id")
246- else if (if ((size(aL) > 0))
247- then (toBase58String(value(aD.assetId)) == aL)
250+ else if (if ((size(aN) > 0))
251+ then (toBase58String(value(aF.assetId)) == aN)
248252 else false)
249- then aD.assetId
253+ then aF.assetId
250254 else throw("Wrong asset id")
251- if (if ((aH == unit))
252- then (aL != "")
255+ if (if ((aJ == unit))
256+ then (aN != "")
253257 else false)
254258 then throw("Wrong asset id")
255- else if ((aM != aE))
256- then throw(((("Payment don't match " + toString(aM)) + " ") + toString(aE)))
257- else $Tuple2(aE, aH)
259+ else if ((aO != aG))
260+ then throw(((("Payment don't match " + toString(aO)) + " ") + toString(aG)))
261+ else $Tuple2(aG, aJ)
258262 }
259263
260264
261-func aO (aH) = if ((aH != toBase58String(o)))
265+func aQ (aJ) = if ((aJ != toBase58String(o)))
262266 then throw("Only USDN accepted")
263267 else true
264268
265269
266-func aP (aH,aQ) = {
267- let aR = an
268- if (if ((aR > aQ))
270+func aR (aJ,aS) = {
271+ let aT = ao
272+ if (if ((aT > aS))
269273 then true
270- else (aH != toBase58String(o)))
271- then throw(("Wrong minimum sell price " + toString(aR)))
274+ else (aJ != toBase58String(o)))
275+ then throw(("Wrong minimum sell price " + toString(aT)))
272276 else true
273277 }
274278
275279
276-func aS (aH) = if ((aH == "WAVES"))
280+func aU (aJ) = if ((aJ == "WAVES"))
277281 then throw("Only USDN is accepted!")
278- else fromBase58String(aH)
282+ else fromBase58String(aJ)
279283
280284
281-func aT (aU) = {
282- let aV = A((aU + "_OPEN"))
283- if ((aV == ""))
285+func aV (aW) = {
286+ let aX = B((aW + "_OPEN"))
287+ if ((aX == ""))
284288 then throw("Bid not found")
285289 else {
286- let aW = split(aV, "_")
287- let aX = parseIntValue(aW[1])
288- let aY = aS(aW[0])
289- if ((0 >= aX))
290+ let aY = split(aX, "_")
291+ let aZ = parseIntValue(aY[1])
292+ let ba = aU(aY[0])
293+ if ((0 >= aZ))
290294 then throw("Wrong amount")
291- else $Tuple2(aX, aY)
295+ else $Tuple2(aZ, ba)
292296 }
293297 }
294298
295299
296-func aZ (aC) = if (!(r))
297- then throw(s)
298- else $Tuple3(toBase58String(aC.transactionId), toBase58String(aC.caller.bytes), lastBlock.timestamp)
300+func bb (aE) = if (!(s))
301+ then throw(t)
302+ else $Tuple3(toBase58String(aE.transactionId), toBase58String(aE.caller.bytes), lastBlock.timestamp)
299303
300304
301-func ba (aC,bb,L,bc) = {
302- let bd = (toBase58String(aC.caller.bytes) == bb)
303- let be = E("total_nft_issued")
304- let bf = A(M(bb, L))
305- if ((bf == ""))
305+func bc (aE,bd,M,be) = {
306+ let bf = (toBase58String(aE.caller.bytes) == bd)
307+ let bg = F("total_nft_issued")
308+ let bh = B(N(bd, M))
309+ if ((bh == ""))
306310 then throw("Art doesn't exist")
307311 else {
308- let bg = F(ab(bb, L))
309- let bh = E(X(bb, L))
310- let aM = valueOrElse(E(af(bb, L)), (an * 2))
311- let aL = if (bd)
312+ let bi = G(ac(bd, M))
313+ let bj = F(Y(bd, M))
314+ let aO = valueOrElse(F(ag(bd, M)), ao)
315+ let aN = if (bf)
312316 then toBase58String(o)
313- else A(ag(bb, L))
314- let bi = E(Q(bb, L))
315- if (if (if (!(bc))
316- then !(bd)
317+ else B(ah(bd, M))
318+ let bk = F(R(bd, M))
319+ if (if (if (!(be))
320+ then !(bf)
317321 else false)
318- then if (if ((0 >= aM))
322+ then if (if ((0 >= aO))
319323 then true
320- else !(bg))
324+ else !(bi))
321325 then true
322- else (0 >= bi)
326+ else (0 >= bk)
323327 else false)
324328 then throw("Art not for sale")
325- else if (if (if (!(bc))
326- then bd
329+ else if (if (if (!(be))
330+ then bf
327331 else false)
328- then (0 >= bi)
332+ then (0 >= bk)
329333 else false)
330334 then throw("Max issuable not set")
331- else $Tuple7(be, bf, bh, aM, aL, bi, bg)
335+ else $Tuple7(bg, bh, bj, aO, aN, bk, bi)
332336 }
333337 }
334338
335339
336-func bj (aC,J,bb,L,bk,T,aL,aM,bc) = {
337- let aA = at(bb)
338- if (if (bc)
339- then (aA != "")
340+func bl (aE,K,bd,M,bm,U,aN,aO,be) = {
341+ let aC = av(bd)
342+ if (if (be)
343+ then (aC != "")
340344 else false)
341- then throw(aA)
345+ then throw(aC)
342346 else {
343- let aU = ((((((("bid_" + L) + "_") + bb) + "_") + bk) + "_") + T)
344- let bl = if (bc)
345- then aT(aU)
346- else aK(aC, aL, aM)
347- let aE = bl._1
348- let aH = bl._2
349- $Tuple3(aU, aE, aH)
347+ let aW = ((((((("bid_" + M) + "_") + bd) + "_") + bm) + "_") + U)
348+ let bn = if (be)
349+ then aV(aW)
350+ else aM(aE, aN, aO)
351+ let aG = bn._1
352+ let aJ = bn._2
353+ $Tuple3(aW, aG, aJ)
350354 }
351355 }
352356
353357
354-func bm (bb,L,bf,bn,bi,be,J,bk,T,aC,bg) = {
355- let bo = ((((((((("Creator: " + bb) + ",ArtID: ") + L) + ",Artwork name: ") + bf) + ",Issue: ") + toString(bn)) + "/") + toString(bi))
356- let bp = if (if ((bn == bi))
358+func bo (bd,M,bh,bp,bk,bg,K,bm,U,aE,bi) = {
359+ let bq = ((((((((("Creator: " + bd) + ",ArtID: ") + M) + ",Artwork name: ") + bh) + ",Issue: ") + toString(bp)) + "/") + toString(bk))
360+ let br = if (if ((bp == bk))
357361 then true
358- else !(bg))
362+ else !(bi))
359363 then false
360364 else true
361- let bq = if ((bk != ""))
362- then addressFromStringValue(bk)
363- else aC.caller
364- $Tuple3(bp, bq, bo)
365+ let bs = if ((bm != ""))
366+ then addressFromStringValue(bm)
367+ else aE.caller
368+ $Tuple3(br, bs, bq)
365369 }
366370
367371
368-func br (aH,aU,bs) = {
369- let bt = if (!(isDefined(aH)))
372+func bt (aJ,aW,bu) = {
373+ let bv = if (!(isDefined(aJ)))
370374 then throw("Only USDN is accepted")
371- else toBase58String(value(aH))
372- let aV = A((aU + "_OPEN"))
373- let bu = DeleteEntry((aU + "_OPEN"))
374- let bv = StringEntry((aU + "_CLOSED"), ((aV + "_") + toString(bs)))
375- $Tuple3(bt, bu, bv)
375+ else toBase58String(value(aJ))
376+ let aX = B((aW + "_OPEN"))
377+ let bw = DeleteEntry((aW + "_OPEN"))
378+ let bx = StringEntry((aW + "_CLOSED"), ((aX + "_") + toString(bu)))
379+ $Tuple3(bv, bw, bx)
376380 }
377381
378382
379-func bw (aC,L,bb,T,bk,bc) = {
380- let bx = aZ(aC)
381- let by = bx._1
382- let J = bx._2
383- let bs = bx._3
384- let bz = ba(aC, bb, L, bc)
385- let be = bz._1
386- let bf = bz._2
387- let bh = bz._3
388- let aM = bz._4
389- let aL = bz._5
390- let bi = bz._6
391- let bg = bz._7
392- let aV = bj(aC, J, bb, L, bk, T, aL, aM, bc)
393- let aU = aV._1
394- let aE = aV._2
395- let aH = aV._3
396- let bn = if ((bh == bi))
383+func by (aE,M,bd,U,bm,be) = {
384+ let bz = bb(aE)
385+ let bA = bz._1
386+ let K = bz._2
387+ let bu = bz._3
388+ let bB = bc(aE, bd, M, be)
389+ let bg = bB._1
390+ let bh = bB._2
391+ let bj = bB._3
392+ let aO = bB._4
393+ let aN = bB._5
394+ let bk = bB._6
395+ let bi = bB._7
396+ let aX = bl(aE, K, bd, M, bm, U, aN, aO, be)
397+ let aW = aX._1
398+ let aG = aX._2
399+ let aJ = aX._3
400+ let bp = if ((bj == bk))
397401 then throw("Max items sold")
398- else (bh + 1)
399- let bA = bm(bb, L, bf, bn, bi, be, J, bk, T, aC, bg)
400- let bp = bA._1
401- let bq = bA._2
402- let bo = bA._3
403- let bB = invoke(this, "mintNft", [be, bo, toString(bq)], nil)
404- if ((bB == bB))
402+ else (bj + 1)
403+ let bC = bo(bd, M, bh, bp, bk, bg, K, bm, U, aE, bi)
404+ let br = bC._1
405+ let bs = bC._2
406+ let bq = bC._3
407+ let bD = invoke(this, "mintNft", [bg, bq, toString(bs)], nil)
408+ if ((bD == bD))
405409 then {
406- let bC = {
407- let e = bB
410+ let bE = {
411+ let e = bD
408412 if ($isInstanceOf(e, "String"))
409413 then {
410- let bD = e
411- bD
414+ let bF = e
415+ bF
412416 }
413417 else throw("Incorrect invoke result")
414418 }
415- let bE = br(aH, aU, bs)
416- let bt = bE._1
417- let bu = bE._2
418- let bv = bE._3
419- let bF = ((((((("art_sold_" + toString(bn)) + "_of_") + toString(bi)) + "_") + L) + "_") + bb)
420- let bG = if (!(bc))
421- then ((((((((((J + "_") + toString(bs)) + "_") + by) + "_") + toString(aM)) + "_") + aL) + "_") + bC)
422- else ((((((((((toString(bq) + "_") + toString(bs)) + "_") + by) + "_") + toString(aE)) + "_") + bt) + "_") + bC)
423- let bH = invoke(valueOrErrorMessage(addressFromString(m), (m + " not found")), "payFee", [L, bb], [AttachedPayment(aH, aE)])
424- if ((bH == bH))
419+ let bG = bt(aJ, aW, bu)
420+ let bv = bG._1
421+ let bw = bG._2
422+ let bx = bG._3
423+ let bH = ((((((("art_sold_" + toString(bp)) + "_of_") + toString(bk)) + "_") + M) + "_") + bd)
424+ let bI = if (!(be))
425+ then ((((((((((K + "_") + toString(bu)) + "_") + bA) + "_") + toString(aO)) + "_") + aN) + "_") + bE)
426+ else ((((((((((toString(bs) + "_") + toString(bu)) + "_") + bA) + "_") + toString(aG)) + "_") + bv) + "_") + bE)
427+ let bJ = invoke(valueOrErrorMessage(addressFromString(m), (m + " not found")), "payFee", [M, bd], [AttachedPayment(aJ, aG)])
428+ if ((bJ == bJ))
425429 then {
426- let bI = StringEntry(bF, bG)
427- let bJ = [IntegerEntry(X(bb, L), bn), StringEntry(("nft_" + bC), bF), IntegerEntry("total_nft_issued", (be + 1)), BooleanEntry(ab(bb, L), bp), StringEntry(Y(bC), bb), StringEntry(aa(bC), L)]
428- let bK = invoke(addressFromStringValue(l), "createCert", [toString(bq), bC, bb], nil)
429- if ((bK == bK))
430- then if (bc)
431- then (((bJ :+ bI) :+ bv) :+ bu)
432- else bI :: bJ
430+ let bK = StringEntry(bH, bI)
431+ let bL = [IntegerEntry(Y(bd, M), bp), StringEntry(("nft_" + bE), bH), IntegerEntry("total_nft_issued", (bg + 1)), BooleanEntry(ac(bd, M), br), StringEntry(Z(bE), bd), StringEntry(ab(bE), M)]
432+ let bM = invoke(addressFromStringValue(l), "createCert", [toString(bs), bE, bd], nil)
433+ if ((bM == bM))
434+ then if (be)
435+ then (((bL :+ bK) :+ bx) :+ bw)
436+ else bK :: bL
433437 else throw("Strict value is not equal to itself.")
434438 }
435439 else throw("Strict value is not equal to itself.")
438442 }
439443
440444
441-func bL (aC,L,bb) = {
442- let bM = aZ(aC)
443- let by = bM._1
444- let J = bM._2
445- let bs = bM._3
446- let bN = aB(aC)
447- let aD = bN._1
448- let aE = bN._2
449- let aH = if (!(isDefined(aD.assetId)))
445+func bN (aE,M,bd) = {
446+ let bO = bb(aE)
447+ let bA = bO._1
448+ let K = bO._2
449+ let bu = bO._3
450+ let bP = aD(aE)
451+ let aF = bP._1
452+ let aG = bP._2
453+ let aJ = if (!(isDefined(aF.assetId)))
450454 then throw("Only USDN is accepted!")
451- else toBase58String(value(aD.assetId))
452- let bO = E(("current_bidamount_" + L))
453- if (!(aO(aH)))
455+ else toBase58String(value(aF.assetId))
456+ let bQ = F(("current_bidamount_" + M))
457+ if (!(aQ(aJ)))
454458 then throw("asset not accepted")
455459 else {
456- let bh = E(X(bb, L))
457- let bi = E(Q(bb, L))
458- if ((0 >= bi))
460+ let bj = F(Y(bd, M))
461+ let bk = F(R(bd, M))
462+ if ((0 >= bk))
459463 then throw("No max edition set for this artwork")
460- else if ((bh >= bi))
464+ else if ((bj >= bk))
461465 then throw("Sold out, you cannot bid")
462- else [StringEntry((((((((("bid_" + L) + "_") + bb) + "_") + J) + "_") + by) + "_OPEN"), ((((aH + "_") + toString(aE)) + "_") + toString(bs))), IntegerEntry(("current_bidamount_" + L), (bO + 1))]
466+ else [StringEntry((((((((("bid_" + M) + "_") + bd) + "_") + K) + "_") + bA) + "_OPEN"), ((((aJ + "_") + toString(aG)) + "_") + toString(bu))), IntegerEntry(("current_bidamount_" + M), (bQ + 1))]
463467 }
464468 }
465469
466470
467-func bP (aC,L,bb) = {
468- let bQ = E(V(bb, L))
469- let bR = ap(L)
470- if ((height > bQ))
471+func bR (aE,M,bd) = {
472+ let bS = F(W(bd, M))
473+ let bT = ar(M)
474+ if ((height > bS))
471475 then throw("This auction is finished already!")
472476 else {
473- let bS = aZ(aC)
474- let by = bS._1
475- let J = bS._2
476- let bs = bS._3
477- let bT = aB(aC)
478- let aD = bT._1
479- let aE = bT._2
480- if ((bR >= aE))
481- then throw(("Please place a bid higher than: " + toString(bR)))
477+ let bU = bb(aE)
478+ let bA = bU._1
479+ let K = bU._2
480+ let bu = bU._3
481+ let bV = aD(aE)
482+ let aF = bV._1
483+ let aG = bV._2
484+ if ((bT >= aG))
485+ then throw(("Please place a bid higher than: " + toString(bT)))
482486 else {
483- let aH = if (!(isDefined(aD.assetId)))
487+ let aJ = if (!(isDefined(aF.assetId)))
484488 then throw("Only USDN is accepted!")
485- else toBase58String(value(aD.assetId))
486- let bO = E(("current_bidamount_" + L))
487- let bU = valueOrElse(E(af(bb, L)), (an * 2))
488- if (!(aO(aH)))
489+ else toBase58String(value(aF.assetId))
490+ let bQ = F(("current_bidamount_" + M))
491+ let bW = valueOrElse(F(ag(bd, M)), ao)
492+ if (!(aQ(aJ)))
489493 then throw("asset not accepted")
490- else if ((bU > aE))
494+ else if ((bW > aG))
491495 then throw("Bid is below min price!")
492496 else {
493- let bh = E(X(bb, L))
494- let bi = E(Q(bb, L))
495- if ((0 >= bi))
497+ let bj = F(Y(bd, M))
498+ let bk = F(R(bd, M))
499+ if ((0 >= bk))
496500 then throw("No max edition set for this artwork")
497- else if ((bh >= bi))
501+ else if ((bj >= bk))
498502 then throw("Sold out, you cannot bid")
499- else [StringEntry((((((((("bid_" + L) + "_") + bb) + "_") + J) + "_") + by) + "_OPEN"), ((((aH + "_") + toString(aE)) + "_") + toString(bs))), IntegerEntry(("current_bidamount_" + L), (bO + 1)), StringEntry(R(L), toBase58String(aC.transactionId)), IntegerEntry(S(toBase58String(aC.transactionId)), aE)]
503+ else [StringEntry((((((((("bid_" + M) + "_") + bd) + "_") + K) + "_") + bA) + "_OPEN"), ((((aJ + "_") + toString(aG)) + "_") + toString(bu))), IntegerEntry(("current_bidamount_" + M), (bQ + 1)), StringEntry(S(M), toBase58String(aE.transactionId)), IntegerEntry(T(toBase58String(aE.transactionId)), aG)]
500504 }
501505 }
502506 }
503507 }
504508
505509
506-func bV (aC,L,bb,T,bk) = {
507- let J = toBase58String(aC.caller.bytes)
508- if ((J != bb))
510+func bX (aE,M,bd,U,bm) = {
511+ let K = toBase58String(aE.caller.bytes)
512+ if ((K != bd))
509513 then throw("You cannot do this action")
510- else bw(aC, L, bb, T, bk, true)
514+ else by(aE, M, bd, U, bm, true)
511515 }
512516
513517
514-func bW (L,bb) = {
515- let bh = E(X(bb, L))
516- let bi = E(Q(bb, L))
517- let bX = E(V(bb, L))
518- let bY = E(U(bb, L))
519- let bQ = (bY + height)
520- if ((height > bX))
521- then if ((bh == bi))
518+func bY (M,bd) = {
519+ let bj = F(Y(bd, M))
520+ let bk = F(R(bd, M))
521+ let bZ = F(W(bd, M))
522+ let ca = F(V(bd, M))
523+ let bS = (ca + height)
524+ if ((height > bZ))
525+ then if ((bj == bk))
522526 then throw("Can't restart auction, max amount sold")
523- else [IntegerEntry(V(bb, L), bQ), DeleteEntry(R(L))]
527+ else [IntegerEntry(W(bd, M), bS), DeleteEntry(S(M))]
524528 else throw("Previous auction isn't completed yet")
525529 }
526530
527531
528-func bZ (aC,L,bb,T,bk) = {
529- let bQ = E(V(bb, L))
530- let ca = A(R(L))
531- if ((height > bQ))
532- then if ((T == ca))
532+func cb (aE,M,bd,U,bm) = {
533+ let bS = F(W(bd, M))
534+ let cc = B(S(M))
535+ if ((height > bS))
536+ then if ((U == cc))
533537 then {
534- let cb = bw(aC, L, bb, T, bk, true)
535- let cc = bW(L, bb)
536- (cc ++ cb)
538+ let cd = by(aE, M, bd, U, bm, true)
539+ let ce = bY(M, bd)
540+ (ce ++ cd)
537541 }
538542 else throw("This is not the winning bid!")
539543 else throw("This auction is not yet finished!")
540544 }
541545
542546
543-func cd (aC,L,bb,T) = {
544- let ce = aZ(aC)
545- let by = ce._1
546- let J = ce._2
547- let bs = ce._3
548- let bO = E(("current_bidamount_" + L))
549- let aU = ((((((("bid_" + L) + "_") + bb) + "_") + J) + "_") + T)
550- let aV = B((aU + "_OPEN"), "Bid not found")
551- let aW = split(aV, "_")
552- let aH = aS(aW[0])
553- let cf = "CANCELED"
554-[DeleteEntry((aU + "_OPEN")), StringEntry(((aU + "_") + cf), ((aV + "_") + toString(bs))), IntegerEntry(("current_bidamount_" + L), (bO - 1)), ScriptTransfer(Address(fromBase58String(J)), parseIntValue(aW[1]), aH)]
547+func cf (aE,M,bd,U) = {
548+ let cg = bb(aE)
549+ let bA = cg._1
550+ let K = cg._2
551+ let bu = cg._3
552+ let bQ = F(("current_bidamount_" + M))
553+ let aW = ((((((("bid_" + M) + "_") + bd) + "_") + K) + "_") + U)
554+ let aX = C((aW + "_OPEN"), "Bid not found")
555+ let aY = split(aX, "_")
556+ let aJ = aU(aY[0])
557+ let ch = "CANCELED"
558+[DeleteEntry((aW + "_OPEN")), StringEntry(((aW + "_") + ch), ((aX + "_") + toString(bu))), IntegerEntry(("current_bidamount_" + M), (bQ - 1)), ScriptTransfer(Address(fromBase58String(K)), parseIntValue(aY[1]), aJ)]
555559 }
556560
557561
558-func cg (aC,L,bb,T) = {
559- let ce = aZ(aC)
560- let by = ce._1
561- let J = ce._2
562- let bs = ce._3
563- let bO = E(("current_bidamount_" + L))
564- let aU = ((((((("bid_" + L) + "_") + bb) + "_") + J) + "_") + T)
565- let aV = B((aU + "_OPEN"), "Bid not found")
566- let aW = split(aV, "_")
567- let aH = aS(aW[0])
568- let cf = "CANCELED"
569- let aX = parseIntValue(aW[1])
570- let ca = A(R(L))
571- if ((T == ca))
562+func ci (aE,M,bd,U) = {
563+ let cg = bb(aE)
564+ let bA = cg._1
565+ let K = cg._2
566+ let bu = cg._3
567+ let bQ = F(("current_bidamount_" + M))
568+ let aW = ((((((("bid_" + M) + "_") + bd) + "_") + K) + "_") + U)
569+ let aX = C((aW + "_OPEN"), "Bid not found")
570+ let aY = split(aX, "_")
571+ let aJ = aU(aY[0])
572+ let ch = "CANCELED"
573+ let aZ = parseIntValue(aY[1])
574+ let cc = B(S(M))
575+ if ((U == cc))
572576 then throw("You can't cancel the highest bid!")
573- else [DeleteEntry((aU + "_OPEN")), StringEntry(((aU + "_") + cf), ((aV + "_") + toString(bs))), IntegerEntry(("current_bidamount_" + L), (bO - 1)), ScriptTransfer(Address(fromBase58String(J)), aX, aH)]
577+ else [DeleteEntry((aW + "_OPEN")), StringEntry(((aW + "_") + ch), ((aX + "_") + toString(bu))), IntegerEntry(("current_bidamount_" + M), (bQ - 1)), ScriptTransfer(Address(fromBase58String(K)), aZ, aJ)]
574578 }
575579
576580
577-@Callable(aC)
578-func initDapp (ch) = if ((aC.caller != this))
581+@Callable(aE)
582+func initDapp (cj) = if ((aE.caller != this))
579583 then throw("You cannot do this action")
580584 else if ((g != ""))
581585 then throw("oracle already set, you can't override!")
582- else [StringEntry(b, ch)]
586+ else [StringEntry(b, cj)]
583587
584588
585589
586-@Callable(aC)
587-func restartAuctionManual (L) = if ((ap(L) != 0))
590+@Callable(aE)
591+func restartAuctionManual (M) = if ((ar(M) != 0))
588592 then throw("Please accept the highest bid!")
589- else bW(L, toBase58String(aC.caller.bytes))
593+ else bY(M, toBase58String(aE.caller.bytes))
590594
591595
592596
593-@Callable(aC)
594-func mintNft (be,bo,bq) = if ((aC.caller == this))
597+@Callable(aE)
598+func mintNft (bg,bq,bs) = if ((aE.caller == this))
595599 then {
596- let ci = Address(fromBase58String(bq))
597- let cj = Issue(("SCONEX_" + toString((be + 1))), bo, 1, 0, false)
598- let bC = calculateAssetId(cj)
599- $Tuple2([cj, ScriptTransfer(ci, 1, bC)], toBase58String(bC))
600+ let ck = Address(fromBase58String(bs))
601+ let cl = Issue(("SCONEX_" + toString((bg + 1))), bq, 1, 0, false)
602+ let bE = calculateAssetId(cl)
603+ $Tuple2([cl, ScriptTransfer(ck, 1, bE)], toBase58String(bE))
600604 }
601605 else throw("Only the dApp can mint NFT's")
602606
603607
604608
605-@Callable(aC)
606-func addArtwork (ak,ax,ay,az,ck,aw,cl,cm,cn,co) = {
607- let cp = aZ(aC)
608- let L = cp._1
609- let J = cp._2
610- let bs = cp._3
611- if (containsElement(p, ck))
609+@Callable(aE)
610+func addArtwork (al,az,aA,aB,cm,ay,cn,co,cp,cq) = {
611+ let cr = bb(aE)
612+ let M = cr._1
613+ let K = cr._2
614+ let bu = cr._3
615+ if (containsElement(q, cm))
612616 then {
613- let cq = av(J, aw, ax, ay, az)
614- if ((cq != ""))
617+ let cs = ax(K, ay, az, aA, aB)
618+ if ((cs != ""))
615619 then throw("Something went wrong!")
616620 else {
617- let cr = aF(aC)
618- let aE = cr._1
619- let aH = cr._2
620- if (!(isDefined(aE)))
621+ let ct = aH(aE)
622+ let aG = ct._1
623+ let aJ = ct._2
624+ if (!(isDefined(aG)))
621625 then throw("Something went wrong")
622626 else {
623- let cs = if (containsElement(q, ck))
624- then [StringEntry(P(J, L), cm)]
627+ let cu = if (containsElement(r, cm))
628+ then [StringEntry(Q(K, M), co)]
625629 else nil
626- let ct = invoke(valueOrErrorMessage(addressFromString(j), (j + " not found")), "collectionProcess", [cn, co, J], nil)
627- if ((ct == ct))
630+ let cv = invoke(valueOrErrorMessage(addressFromString(j), (j + " not found")), "collectionProcess", [cp, cq, K], nil)
631+ if ((cv == cv))
628632 then {
629- let cu = {
630- let e = ct
633+ let cw = {
634+ let e = cv
631635 if ($isInstanceOf(e, "String"))
632636 then {
633- let bD = e
634- bD
637+ let bF = e
638+ bF
635639 }
636640 else throw("Incorrect invoke result")
637641 }
638- let cv = A(al(ak, J))
639- if ((cv != ""))
642+ let cx = B(am(al, K))
643+ if ((cx != ""))
640644 then throw("You already added it")
641645 else {
642- let cw = A(aj(ak))
643- if ((cw != ""))
646+ let cy = B(ak(al))
647+ if ((cy != ""))
644648 then throw("This hash is already registered")
645- else (cs ++ [StringEntry(aj(ak), J), StringEntry(al(ak, J), L), IntegerEntry(K(J, L), bs), StringEntry(M(J, L), ax), StringEntry(N(J, L), ay), StringEntry(O(J, L), aw), StringEntry(ae(J, L), ck), StringEntry(ad(J, L), az), IntegerEntry(Q(J, L), 0), IntegerEntry(X(J, L), 0), BooleanEntry(ab(J, L), false), StringEntry(ah(J, L), ak), StringEntry(ac(J, L), cl), ScriptTransfer(Address(fromBase58String(k)), aE, aH)])
649+ else (cu ++ [StringEntry(ak(al), K), StringEntry(am(al, K), M), IntegerEntry(L(K, M), bu), StringEntry(N(K, M), az), StringEntry(O(K, M), aA), StringEntry(P(K, M), ay), StringEntry(af(K, M), cm), StringEntry(ae(K, M), aB), IntegerEntry(R(K, M), 0), IntegerEntry(Y(K, M), 0), BooleanEntry(ac(K, M), false), StringEntry(ai(K, M), al), StringEntry(ad(K, M), cn), ScriptTransfer(Address(fromBase58String(k)), aG, aJ)])
646650 }
647651 }
648652 else throw("Strict value is not equal to itself.")
654658
655659
656660
657-@Callable(aC)
658-func sellArtwork (L,aQ,cx,aH,cy,bY,cz,cA,cB,cC,cD,cE) = {
659- let bH = invoke(valueOrErrorMessage(addressFromString(m), (m + " not found")), "teamSplitFee", [L, k, "", "", 15, 0, 0], nil)
660- if ((bH == bH))
661+@Callable(aE)
662+func sellArtwork (M,aS,cz,aJ,cA,ca,cB,cC,cD,cE,cF,cG) = {
663+ let bJ = invoke(valueOrErrorMessage(addressFromString(m), (m + " not found")), "teamSplitFee", [M, k, "", "", 15, 0, 0], nil)
664+ if ((bJ == bJ))
661665 then {
662- let cF = invoke(valueOrErrorMessage(addressFromString(m), (m + " not found")), "creatorSplitFee", [L, cz, cA, cB, cC, cD, cE], nil)
663- if ((cF == cF))
666+ let cH = invoke(valueOrErrorMessage(addressFromString(m), (m + " not found")), "creatorSplitFee", [M, cB, cC, cD, cE, cF, cG], nil)
667+ if ((cH == cH))
664668 then {
665- let cG = aZ(aC)
666- let by = cG._1
667- let J = cG._2
668- let bf = A(M(J, L))
669- if (!(containsElement([w, x, y], cy)))
669+ let cI = bb(aE)
670+ let bA = cI._1
671+ let K = cI._2
672+ let bh = B(N(K, M))
673+ if (!(containsElement([x, y, z], cA)))
670674 then throw("We don't know this auction type")
671- else if ((bf == ""))
675+ else if ((bh == ""))
672676 then throw("This art doesn't match your account")
673677 else {
674- let bO = E(("current_bidamount_" + L))
675- if (!(aO(aH)))
678+ let bQ = F(("current_bidamount_" + M))
679+ if (!(aQ(aJ)))
676680 then throw("Something went wrong!")
677- else if (!(aP(aH, aQ)))
681+ else if (!(aR(aJ, aS)))
678682 then throw("Something went wrong!")
679683 else {
680- let aA = at(J)
681- if ((aA != ""))
682- then throw(aA)
684+ let aC = av(K)
685+ if ((aC != ""))
686+ then throw(aC)
683687 else {
684- let bh = E(X(J, L))
685- let bi = E(Q(J, L))
686- if ((cx > 10000))
688+ let bj = F(Y(K, M))
689+ let bk = F(R(K, M))
690+ if ((cz > 10000))
687691 then throw("10000 editions max per artwork")
688- else if (if ((bh != 0))
689- then (bh == bi)
692+ else if (if ((bj != 0))
693+ then (bj == bk)
690694 else false)
691695 then throw("Max edition reached.")
692- else if (if ((bh > 0))
693- then (bi != cx)
696+ else if (if ((bj > 0))
697+ then (bk != cz)
694698 else false)
695699 then throw("Cannot change maximum issuable anymore")
696- else if (if ((bO > 0))
697- then (bi != cx)
700+ else if (if ((bQ > 0))
701+ then (bk != cz)
698702 else false)
699703 then throw("Cannot change maximum issuable with active orders")
700704 else {
701- let bp = if (if ((aQ > 0))
702- then (cx > 0)
705+ let br = if (if ((aS > 0))
706+ then (cz > 0)
703707 else false)
704708 then true
705709 else false
706- let bQ = (bY + height)
707-[BooleanEntry(ab(J, L), bp), IntegerEntry(af(J, L), aQ), IntegerEntry(Q(J, L), cx), IntegerEntry(U(J, L), bY), IntegerEntry(V(J, L), bQ), StringEntry(ag(J, L), aH), StringEntry(W(J, L), cy)]
710+ let bS = (ca + height)
711+[BooleanEntry(ac(K, M), br), IntegerEntry(ag(K, M), aS), IntegerEntry(R(K, M), cz), IntegerEntry(V(K, M), ca), IntegerEntry(W(K, M), bS), StringEntry(ah(K, M), aJ), StringEntry(X(K, M), cA)]
708712 }
709713 }
710714 }
717721
718722
719723
720-@Callable(aC)
721-func buyArtwork (L,bb) = {
722- let cy = A(W(bb, L))
723- if ((cy == y))
724- then bw(aC, L, bb, "", "", false)
724+@Callable(aE)
725+func buyArtwork (M,bd) = {
726+ let cA = B(X(bd, M))
727+ if ((cA == z))
728+ then by(aE, M, bd, "", "", false)
725729 else throw("Direct buy only allowed when no auction type is set!")
726730 }
727731
728732
729733
730-@Callable(aC)
731-func updateTags (cH,L,az) = {
732- let J = toString(addressFromPublicKey(aC.callerPublicKey))
733- if (containsElement(i, J))
734- then if ((size(split(az, ",")) > 5))
734+@Callable(aE)
735+func updateTags (cJ,M,aB) = {
736+ let K = toString(addressFromPublicKey(aE.callerPublicKey))
737+ if (containsElement(i, K))
738+ then if ((size(split(aB, ",")) > 5))
735739 then throw("5 tags max.")
736740 else {
737- let cI = B(ad(cH, L), "No tags created with this key, so can't update!")
738- if ((az == cI))
741+ let cK = C(ae(cJ, M), "No tags created with this key, so can't update!")
742+ if ((aB == cK))
739743 then throw("Tags are the same as old tags!")
740- else [StringEntry(ad(cH, L), az)]
744+ else [StringEntry(ae(cJ, M), aB)]
741745 }
742746 else throw("no")
743747 }
744748
745749
746750
747-@Callable(aC)
748-func deleteEntry (cJ) = {
749- let J = toString(addressFromPublicKey(aC.callerPublicKey))
750- if (containsElement(i, J))
751- then [DeleteEntry(cJ)]
751+@Callable(aE)
752+func deleteEntry (cL) = {
753+ let K = toString(addressFromPublicKey(aE.callerPublicKey))
754+ if (containsElement(i, K))
755+ then [DeleteEntry(cL)]
752756 else throw("no")
753757 }
754758
755759
756760
757-@Callable(aC)
758-func setBid (L,bb) = {
759- let cy = A(W(bb, L))
760- if ((cy == w))
761- then bL(aC, L, bb)
762- else if ((cy == x))
763- then bP(aC, L, bb)
764- else throw((("Unknown auction type :" + cy) + ", please contact the admins"))
761+@Callable(aE)
762+func setBid (M,bd) = {
763+ let cA = B(X(bd, M))
764+ if ((cA == x))
765+ then bN(aE, M, bd)
766+ else if ((cA == y))
767+ then bR(aE, M, bd)
768+ else throw((("Unknown auction type :" + cA) + ", please contact the admins"))
765769 }
766770
767771
768772
769-@Callable(aC)
770-func acceptBid (L,bb,T,bk) = {
771- let cy = A(W(bb, L))
772- if ((cy == w))
773- then bV(aC, L, bb, T, bk)
774- else if ((cy == x))
775- then bZ(aC, L, bb, T, bk)
776- else throw((("Unknown auction type :" + cy) + ", please contact the admins"))
773+@Callable(aE)
774+func acceptBid (M,bd,U,bm) = {
775+ let cA = B(X(bd, M))
776+ if ((cA == x))
777+ then bX(aE, M, bd, U, bm)
778+ else if ((cA == y))
779+ then cb(aE, M, bd, U, bm)
780+ else throw((("Unknown auction type :" + cA) + ", please contact the admins"))
777781 }
778782
779783
780784
781-@Callable(aC)
782-func cancelBid (L,bb,T) = {
783- let cy = A(W(bb, L))
784- if ((cy == w))
785- then cd(aC, L, bb, T)
786- else cg(aC, L, bb, T)
785+@Callable(aE)
786+func cancelBid (M,bd,U) = {
787+ let cA = B(X(bd, M))
788+ if ((cA == x))
789+ then cf(aE, M, bd, U)
790+ else ci(aE, M, bd, U)
787791 }
788792
789793
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = false
55
66 let b = "oracleKey"
77
88 func c (d) = {
99 let e = getString(this, d)
1010 if ($isInstanceOf(e, "String"))
1111 then {
1212 let f = e
1313 f
1414 }
1515 else ""
1616 }
1717
1818
1919 let g = c(b)
2020
2121 let h = value(addressFromString(g))
2222
2323 let i = [getString(h, "owner1"), getString(h, "owner2")]
2424
2525 let j = valueOrErrorMessage(getString(h, "collectionsDapp"), "collectionDapp not found")
2626
2727 let k = valueOrErrorMessage(getString(h, "feeReceiver"), "feeReceiver not found")
2828
2929 let l = valueOrErrorMessage(getString(h, "certDapp"), "certDapp not found")
3030
3131 let m = valueOrErrorMessage(getString(h, "feeDapp"), "feeDapp not found")
3232
3333 let n = value(addressFromString(valueOrErrorMessage(getString(h, "userDapp"), "userdapp not found")))
3434
3535 let o = fromBase58String(getStringValue(h, "USDNAssetId"))
3636
37-let p = ["IMAGE", "PDF", "VIDEO"]
37+let p = fromBase58String(getStringValue(h, "SconexAssetId"))
3838
39-let q = ["PDF"]
39+let q = ["IMAGE", "PDF", "VIDEO"]
4040
41-let r = valueOrElse(getBoolean(n, "conf_dapp_is_running"), true)
41+let r = ["PDF"]
4242
43-let s = valueOrElse(getString(n, "conf_maintenance_msg"), "")
43+let s = valueOrElse(getBoolean(n, "conf_dapp_is_running"), true)
4444
45-let t = "SUSPENDED"
45+let t = valueOrElse(getString(n, "conf_maintenance_msg"), "")
4646
47-let u = "REMOVED"
47+let u = "SUSPENDED"
4848
49-let v = "UNREGISTERED"
49+let v = "REMOVED"
5050
51-let w = "BIDTYPE"
51+let w = "UNREGISTERED"
5252
53-let x = "TRADITIONAL"
53+let x = "BIDTYPE"
5454
55-let y = "DIRECT"
55+let y = "TRADITIONAL"
5656
57-func z (d) = valueOrElse(getString(n, d), "")
57+let z = "DIRECT"
58+
59+func A (d) = valueOrElse(getString(n, d), "")
5860
5961
60-func A (d) = valueOrElse(getString(this, d), "")
62+func B (d) = valueOrElse(getString(this, d), "")
6163
6264
63-func B (d,C) = valueOrErrorMessage(getString(this, d), C)
65+func C (d,D) = valueOrErrorMessage(getString(this, d), D)
6466
6567
66-func D (d) = valueOrErrorMessage(getInteger(h, d), "Integer undefine or 0 in oracle")
68+func E (d) = valueOrErrorMessage(getInteger(h, d), "Integer undefine or 0 in oracle")
6769
6870
69-func E (d) = valueOrElse(getInteger(this, d), 0)
71+func F (d) = valueOrElse(getInteger(this, d), 0)
7072
7173
72-func F (d) = valueOrElse(getBoolean(this, d), false)
74+func G (d) = valueOrElse(getBoolean(this, d), false)
7375
7476
75-func G (H) = (size(H) == 64)
77+func H (I) = (size(I) == 64)
7678
7779
78-func I (J) = ("user_status_" + J)
80+func J (K) = ("user_status_" + K)
7981
8082
81-func K (J,L) = ((("art_date_" + L) + "_") + J)
83+func L (K,M) = ((("art_date_" + M) + "_") + K)
8284
8385
84-func M (J,L) = ((("art_name_" + L) + "_") + J)
86+func N (K,M) = ((("art_name_" + M) + "_") + K)
8587
8688
87-func N (J,L) = ((("art_desc_" + L) + "_") + J)
89+func O (K,M) = ((("art_desc_" + M) + "_") + K)
8890
8991
90-func O (J,L) = ((("art_display_cid_" + L) + "_") + J)
92+func P (K,M) = ((("art_display_cid_" + M) + "_") + K)
9193
9294
93-func P (J,L) = ((("art_preview_cid_" + L) + "_") + J)
95+func Q (K,M) = ((("art_preview_cid_" + M) + "_") + K)
9496
9597
96-func Q (J,L) = ((("art_maxmint_" + L) + "_") + J)
98+func R (K,M) = ((("art_maxmint_" + M) + "_") + K)
9799
98100
99-func R (L) = ("art_highestBidBidId_" + L)
101+func S (M) = ("art_highestBidBidId_" + M)
100102
101103
102-func S (T) = ("bid_" + T)
104+func T (U) = ("bid_" + U)
103105
104106
105-func U (J,L) = ((("art_duration_" + L) + "_") + J)
107+func V (K,M) = ((("art_duration_" + M) + "_") + K)
106108
107109
108-func V (J,L) = ((("art_endheight_" + L) + "_") + J)
110+func W (K,M) = ((("art_endheight_" + M) + "_") + K)
109111
110112
111-func W (J,L) = ((("art_auctiontype_" + L) + "_") + J)
113+func X (K,M) = ((("art_auctiontype_" + M) + "_") + K)
112114
113115
114-func X (J,L) = ((("art_issued_" + L) + "_") + J)
116+func Y (K,M) = ((("art_issued_" + M) + "_") + K)
115117
116118
117-func Y (Z) = ("nft_issued_" + Z)
119+func Z (aa) = ("nft_issued_" + aa)
118120
119121
120-func aa (Z) = ("nft_artId_" + Z)
122+func ab (aa) = ("nft_artId_" + aa)
121123
122124
123-func ab (J,L) = ((("art_onsale_" + L) + "_") + J)
125+func ac (K,M) = ((("art_onsale_" + M) + "_") + K)
124126
125127
126-func ac (J,L) = ((("art_entitlement_" + L) + "_") + J)
128+func ad (K,M) = ((("art_entitlement_" + M) + "_") + K)
127129
128130
129-func ad (J,L) = ((("art_tags_" + L) + "_") + J)
131+func ae (K,M) = ((("art_tags_" + M) + "_") + K)
130132
131133
132-func ae (J,L) = ((("art_type_" + L) + "_") + J)
134+func af (K,M) = ((("art_type_" + M) + "_") + K)
133135
134136
135-func af (J,L) = ((("art_price_" + L) + "_") + J)
137+func ag (K,M) = ((("art_price_" + M) + "_") + K)
136138
137139
138-func ag (J,L) = ((("art_assetAccepted_" + L) + "_") + J)
140+func ah (K,M) = ((("art_assetAccepted_" + M) + "_") + K)
139141
140142
141-func ah (J,ai) = ((("get_hashbytxidaddr_" + ai) + "_") + J)
143+func ai (K,aj) = ((("get_hashbytxidaddr_" + aj) + "_") + K)
142144
143145
144-func aj (ak) = ("get_owner_by_hash_" + ak)
146+func ak (al) = ("get_owner_by_hash_" + al)
145147
146148
147-func al (ak,J) = ("get_txid_by_hash_owner_" + toBase58String(sha256_16Kb(toBytes((ak + J)))))
149+func am (al,K) = ("get_txid_by_hash_owner_" + toBase58String(sha256_16Kb(toBytes((al + K)))))
148150
149151
150-func am (J,L) = ((("collection_" + L) + "_") + J)
152+func an (K,M) = ((("collection_" + M) + "_") + K)
151153
152154
153-let an = D(("certification_fee_" + toBase58String(o)))
155+let ao = E(("min_" + toBase58String(o)))
154156
155-func ao (T) = valueOrElse(E(S(T)), 0)
157+let ap = E(("fee_" + toBase58String(p)))
158+
159+func aq (U) = valueOrElse(F(T(U)), 0)
156160
157161
158-func ap (L) = {
159- let T = A(R(L))
160- if ((T == ""))
162+func ar (M) = {
163+ let U = B(S(M))
164+ if ((U == ""))
161165 then 0
162- else ao(T)
166+ else aq(U)
163167 }
164168
165169
166-func aq (ar,as) = if ((size(ar) == 0))
170+func as (at,au) = if ((size(at) == 0))
167171 then throw("Field cannot be is empty")
168- else if ((size(ar) > as))
169- then throw((ar + " is too long"))
172+ else if ((size(at) > au))
173+ then throw((at + " is too long"))
170174 else true
171175
172176
173-func at (J) = {
174- let au = valueOrElse(getString(n, I(J)), v)
175- if ((au == v))
177+func av (K) = {
178+ let aw = valueOrElse(getString(n, J(K)), w)
179+ if ((aw == w))
176180 then "Register this account first with 'Account' tab"
177- else if ((au == t))
181+ else if ((aw == u))
178182 then "Account suspended"
179- else if ((au == u))
183+ else if ((aw == v))
180184 then "Account removed"
181185 else ""
182186 }
183187
184188
185-func av (J,aw,ax,ay,az) = {
186- let aA = at(J)
187- if ((aA != ""))
188- then throw(aA)
189- else if ((size(aw) == 0))
189+func ax (K,ay,az,aA,aB) = {
190+ let aC = av(K)
191+ if ((aC != ""))
192+ then throw(aC)
193+ else if ((size(ay) == 0))
190194 then throw("Display CID cannot be empty")
191- else if ((size(aw) != 46))
195+ else if ((size(ay) != 46))
192196 then throw("This doesn't seem a valid CID!")
193- else if (!(aq(ax, 100)))
197+ else if (!(as(az, 100)))
194198 then throw("100 Char. max name")
195- else if (!(aq(ay, 1000)))
199+ else if (!(as(aA, 1000)))
196200 then throw("1000 Char. max description")
197- else if ((size(split(az, ",")) > 5))
201+ else if ((size(split(aB, ",")) > 5))
198202 then throw("5 tags max.")
199203 else ""
200204 }
201205
202206
203-func aB (aC) = if ((size(aC.payments) == 0))
207+func aD (aE) = if ((size(aE.payments) == 0))
204208 then throw("No payment attached")
205209 else {
206- let aD = value(aC.payments[0])
207- let aE = value(aD.amount)
208- $Tuple2(aD, aE)
210+ let aF = value(aE.payments[0])
211+ let aG = value(aF.amount)
212+ $Tuple2(aF, aG)
209213 }
210214
211215
212-func aF (aC) = {
213- let aG = aB(aC)
214- let aD = aG._1
215- let aE = aG._2
216- let aH = if (if (isDefined(aD.assetId))
217- then (aD.assetId == o)
216+func aH (aE) = {
217+ let aI = aD(aE)
218+ let aF = aI._1
219+ let aG = aI._2
220+ let aJ = if (if (isDefined(aF.assetId))
221+ then (aF.assetId == p)
218222 else false)
219- then aD.assetId
220- else throw("Only USDN token accepted as transaction fee")
221- if ((aE != an))
222- then throw(((("Payment amount should be " + toString(an)) + " but is: ") + toString(aE)))
223- else $Tuple2(aE, aH)
223+ then aF.assetId
224+ else throw("Only SCONEX token accepted as transaction fee")
225+ if ((aG != ap))
226+ then throw(((("Payment amount should be " + toString(ap)) + " but is: ") + toString(aG)))
227+ else $Tuple2(aG, aJ)
224228 }
225229
226230
227-func aI (aJ,L) = {
228- let e = getInteger(this, X(aJ, L))
231+func aK (aL,M) = {
232+ let e = getInteger(this, Y(aL, M))
229233 if ($isInstanceOf(e, "Int"))
230234 then {
231235 let f = e
232236 if ((f != 0))
233237 then true
234238 else false
235239 }
236240 else false
237241 }
238242
239243
240-func aK (aC,aL,aM) = {
241- let aN = aB(aC)
242- let aD = aN._1
243- let aE = aN._2
244- let aH = if (!(isDefined(aD.assetId)))
244+func aM (aE,aN,aO) = {
245+ let aP = aD(aE)
246+ let aF = aP._1
247+ let aG = aP._2
248+ let aJ = if (!(isDefined(aF.assetId)))
245249 then throw("Wrong asset id")
246- else if (if ((size(aL) > 0))
247- then (toBase58String(value(aD.assetId)) == aL)
250+ else if (if ((size(aN) > 0))
251+ then (toBase58String(value(aF.assetId)) == aN)
248252 else false)
249- then aD.assetId
253+ then aF.assetId
250254 else throw("Wrong asset id")
251- if (if ((aH == unit))
252- then (aL != "")
255+ if (if ((aJ == unit))
256+ then (aN != "")
253257 else false)
254258 then throw("Wrong asset id")
255- else if ((aM != aE))
256- then throw(((("Payment don't match " + toString(aM)) + " ") + toString(aE)))
257- else $Tuple2(aE, aH)
259+ else if ((aO != aG))
260+ then throw(((("Payment don't match " + toString(aO)) + " ") + toString(aG)))
261+ else $Tuple2(aG, aJ)
258262 }
259263
260264
261-func aO (aH) = if ((aH != toBase58String(o)))
265+func aQ (aJ) = if ((aJ != toBase58String(o)))
262266 then throw("Only USDN accepted")
263267 else true
264268
265269
266-func aP (aH,aQ) = {
267- let aR = an
268- if (if ((aR > aQ))
270+func aR (aJ,aS) = {
271+ let aT = ao
272+ if (if ((aT > aS))
269273 then true
270- else (aH != toBase58String(o)))
271- then throw(("Wrong minimum sell price " + toString(aR)))
274+ else (aJ != toBase58String(o)))
275+ then throw(("Wrong minimum sell price " + toString(aT)))
272276 else true
273277 }
274278
275279
276-func aS (aH) = if ((aH == "WAVES"))
280+func aU (aJ) = if ((aJ == "WAVES"))
277281 then throw("Only USDN is accepted!")
278- else fromBase58String(aH)
282+ else fromBase58String(aJ)
279283
280284
281-func aT (aU) = {
282- let aV = A((aU + "_OPEN"))
283- if ((aV == ""))
285+func aV (aW) = {
286+ let aX = B((aW + "_OPEN"))
287+ if ((aX == ""))
284288 then throw("Bid not found")
285289 else {
286- let aW = split(aV, "_")
287- let aX = parseIntValue(aW[1])
288- let aY = aS(aW[0])
289- if ((0 >= aX))
290+ let aY = split(aX, "_")
291+ let aZ = parseIntValue(aY[1])
292+ let ba = aU(aY[0])
293+ if ((0 >= aZ))
290294 then throw("Wrong amount")
291- else $Tuple2(aX, aY)
295+ else $Tuple2(aZ, ba)
292296 }
293297 }
294298
295299
296-func aZ (aC) = if (!(r))
297- then throw(s)
298- else $Tuple3(toBase58String(aC.transactionId), toBase58String(aC.caller.bytes), lastBlock.timestamp)
300+func bb (aE) = if (!(s))
301+ then throw(t)
302+ else $Tuple3(toBase58String(aE.transactionId), toBase58String(aE.caller.bytes), lastBlock.timestamp)
299303
300304
301-func ba (aC,bb,L,bc) = {
302- let bd = (toBase58String(aC.caller.bytes) == bb)
303- let be = E("total_nft_issued")
304- let bf = A(M(bb, L))
305- if ((bf == ""))
305+func bc (aE,bd,M,be) = {
306+ let bf = (toBase58String(aE.caller.bytes) == bd)
307+ let bg = F("total_nft_issued")
308+ let bh = B(N(bd, M))
309+ if ((bh == ""))
306310 then throw("Art doesn't exist")
307311 else {
308- let bg = F(ab(bb, L))
309- let bh = E(X(bb, L))
310- let aM = valueOrElse(E(af(bb, L)), (an * 2))
311- let aL = if (bd)
312+ let bi = G(ac(bd, M))
313+ let bj = F(Y(bd, M))
314+ let aO = valueOrElse(F(ag(bd, M)), ao)
315+ let aN = if (bf)
312316 then toBase58String(o)
313- else A(ag(bb, L))
314- let bi = E(Q(bb, L))
315- if (if (if (!(bc))
316- then !(bd)
317+ else B(ah(bd, M))
318+ let bk = F(R(bd, M))
319+ if (if (if (!(be))
320+ then !(bf)
317321 else false)
318- then if (if ((0 >= aM))
322+ then if (if ((0 >= aO))
319323 then true
320- else !(bg))
324+ else !(bi))
321325 then true
322- else (0 >= bi)
326+ else (0 >= bk)
323327 else false)
324328 then throw("Art not for sale")
325- else if (if (if (!(bc))
326- then bd
329+ else if (if (if (!(be))
330+ then bf
327331 else false)
328- then (0 >= bi)
332+ then (0 >= bk)
329333 else false)
330334 then throw("Max issuable not set")
331- else $Tuple7(be, bf, bh, aM, aL, bi, bg)
335+ else $Tuple7(bg, bh, bj, aO, aN, bk, bi)
332336 }
333337 }
334338
335339
336-func bj (aC,J,bb,L,bk,T,aL,aM,bc) = {
337- let aA = at(bb)
338- if (if (bc)
339- then (aA != "")
340+func bl (aE,K,bd,M,bm,U,aN,aO,be) = {
341+ let aC = av(bd)
342+ if (if (be)
343+ then (aC != "")
340344 else false)
341- then throw(aA)
345+ then throw(aC)
342346 else {
343- let aU = ((((((("bid_" + L) + "_") + bb) + "_") + bk) + "_") + T)
344- let bl = if (bc)
345- then aT(aU)
346- else aK(aC, aL, aM)
347- let aE = bl._1
348- let aH = bl._2
349- $Tuple3(aU, aE, aH)
347+ let aW = ((((((("bid_" + M) + "_") + bd) + "_") + bm) + "_") + U)
348+ let bn = if (be)
349+ then aV(aW)
350+ else aM(aE, aN, aO)
351+ let aG = bn._1
352+ let aJ = bn._2
353+ $Tuple3(aW, aG, aJ)
350354 }
351355 }
352356
353357
354-func bm (bb,L,bf,bn,bi,be,J,bk,T,aC,bg) = {
355- let bo = ((((((((("Creator: " + bb) + ",ArtID: ") + L) + ",Artwork name: ") + bf) + ",Issue: ") + toString(bn)) + "/") + toString(bi))
356- let bp = if (if ((bn == bi))
358+func bo (bd,M,bh,bp,bk,bg,K,bm,U,aE,bi) = {
359+ let bq = ((((((((("Creator: " + bd) + ",ArtID: ") + M) + ",Artwork name: ") + bh) + ",Issue: ") + toString(bp)) + "/") + toString(bk))
360+ let br = if (if ((bp == bk))
357361 then true
358- else !(bg))
362+ else !(bi))
359363 then false
360364 else true
361- let bq = if ((bk != ""))
362- then addressFromStringValue(bk)
363- else aC.caller
364- $Tuple3(bp, bq, bo)
365+ let bs = if ((bm != ""))
366+ then addressFromStringValue(bm)
367+ else aE.caller
368+ $Tuple3(br, bs, bq)
365369 }
366370
367371
368-func br (aH,aU,bs) = {
369- let bt = if (!(isDefined(aH)))
372+func bt (aJ,aW,bu) = {
373+ let bv = if (!(isDefined(aJ)))
370374 then throw("Only USDN is accepted")
371- else toBase58String(value(aH))
372- let aV = A((aU + "_OPEN"))
373- let bu = DeleteEntry((aU + "_OPEN"))
374- let bv = StringEntry((aU + "_CLOSED"), ((aV + "_") + toString(bs)))
375- $Tuple3(bt, bu, bv)
375+ else toBase58String(value(aJ))
376+ let aX = B((aW + "_OPEN"))
377+ let bw = DeleteEntry((aW + "_OPEN"))
378+ let bx = StringEntry((aW + "_CLOSED"), ((aX + "_") + toString(bu)))
379+ $Tuple3(bv, bw, bx)
376380 }
377381
378382
379-func bw (aC,L,bb,T,bk,bc) = {
380- let bx = aZ(aC)
381- let by = bx._1
382- let J = bx._2
383- let bs = bx._3
384- let bz = ba(aC, bb, L, bc)
385- let be = bz._1
386- let bf = bz._2
387- let bh = bz._3
388- let aM = bz._4
389- let aL = bz._5
390- let bi = bz._6
391- let bg = bz._7
392- let aV = bj(aC, J, bb, L, bk, T, aL, aM, bc)
393- let aU = aV._1
394- let aE = aV._2
395- let aH = aV._3
396- let bn = if ((bh == bi))
383+func by (aE,M,bd,U,bm,be) = {
384+ let bz = bb(aE)
385+ let bA = bz._1
386+ let K = bz._2
387+ let bu = bz._3
388+ let bB = bc(aE, bd, M, be)
389+ let bg = bB._1
390+ let bh = bB._2
391+ let bj = bB._3
392+ let aO = bB._4
393+ let aN = bB._5
394+ let bk = bB._6
395+ let bi = bB._7
396+ let aX = bl(aE, K, bd, M, bm, U, aN, aO, be)
397+ let aW = aX._1
398+ let aG = aX._2
399+ let aJ = aX._3
400+ let bp = if ((bj == bk))
397401 then throw("Max items sold")
398- else (bh + 1)
399- let bA = bm(bb, L, bf, bn, bi, be, J, bk, T, aC, bg)
400- let bp = bA._1
401- let bq = bA._2
402- let bo = bA._3
403- let bB = invoke(this, "mintNft", [be, bo, toString(bq)], nil)
404- if ((bB == bB))
402+ else (bj + 1)
403+ let bC = bo(bd, M, bh, bp, bk, bg, K, bm, U, aE, bi)
404+ let br = bC._1
405+ let bs = bC._2
406+ let bq = bC._3
407+ let bD = invoke(this, "mintNft", [bg, bq, toString(bs)], nil)
408+ if ((bD == bD))
405409 then {
406- let bC = {
407- let e = bB
410+ let bE = {
411+ let e = bD
408412 if ($isInstanceOf(e, "String"))
409413 then {
410- let bD = e
411- bD
414+ let bF = e
415+ bF
412416 }
413417 else throw("Incorrect invoke result")
414418 }
415- let bE = br(aH, aU, bs)
416- let bt = bE._1
417- let bu = bE._2
418- let bv = bE._3
419- let bF = ((((((("art_sold_" + toString(bn)) + "_of_") + toString(bi)) + "_") + L) + "_") + bb)
420- let bG = if (!(bc))
421- then ((((((((((J + "_") + toString(bs)) + "_") + by) + "_") + toString(aM)) + "_") + aL) + "_") + bC)
422- else ((((((((((toString(bq) + "_") + toString(bs)) + "_") + by) + "_") + toString(aE)) + "_") + bt) + "_") + bC)
423- let bH = invoke(valueOrErrorMessage(addressFromString(m), (m + " not found")), "payFee", [L, bb], [AttachedPayment(aH, aE)])
424- if ((bH == bH))
419+ let bG = bt(aJ, aW, bu)
420+ let bv = bG._1
421+ let bw = bG._2
422+ let bx = bG._3
423+ let bH = ((((((("art_sold_" + toString(bp)) + "_of_") + toString(bk)) + "_") + M) + "_") + bd)
424+ let bI = if (!(be))
425+ then ((((((((((K + "_") + toString(bu)) + "_") + bA) + "_") + toString(aO)) + "_") + aN) + "_") + bE)
426+ else ((((((((((toString(bs) + "_") + toString(bu)) + "_") + bA) + "_") + toString(aG)) + "_") + bv) + "_") + bE)
427+ let bJ = invoke(valueOrErrorMessage(addressFromString(m), (m + " not found")), "payFee", [M, bd], [AttachedPayment(aJ, aG)])
428+ if ((bJ == bJ))
425429 then {
426- let bI = StringEntry(bF, bG)
427- let bJ = [IntegerEntry(X(bb, L), bn), StringEntry(("nft_" + bC), bF), IntegerEntry("total_nft_issued", (be + 1)), BooleanEntry(ab(bb, L), bp), StringEntry(Y(bC), bb), StringEntry(aa(bC), L)]
428- let bK = invoke(addressFromStringValue(l), "createCert", [toString(bq), bC, bb], nil)
429- if ((bK == bK))
430- then if (bc)
431- then (((bJ :+ bI) :+ bv) :+ bu)
432- else bI :: bJ
430+ let bK = StringEntry(bH, bI)
431+ let bL = [IntegerEntry(Y(bd, M), bp), StringEntry(("nft_" + bE), bH), IntegerEntry("total_nft_issued", (bg + 1)), BooleanEntry(ac(bd, M), br), StringEntry(Z(bE), bd), StringEntry(ab(bE), M)]
432+ let bM = invoke(addressFromStringValue(l), "createCert", [toString(bs), bE, bd], nil)
433+ if ((bM == bM))
434+ then if (be)
435+ then (((bL :+ bK) :+ bx) :+ bw)
436+ else bK :: bL
433437 else throw("Strict value is not equal to itself.")
434438 }
435439 else throw("Strict value is not equal to itself.")
436440 }
437441 else throw("Strict value is not equal to itself.")
438442 }
439443
440444
441-func bL (aC,L,bb) = {
442- let bM = aZ(aC)
443- let by = bM._1
444- let J = bM._2
445- let bs = bM._3
446- let bN = aB(aC)
447- let aD = bN._1
448- let aE = bN._2
449- let aH = if (!(isDefined(aD.assetId)))
445+func bN (aE,M,bd) = {
446+ let bO = bb(aE)
447+ let bA = bO._1
448+ let K = bO._2
449+ let bu = bO._3
450+ let bP = aD(aE)
451+ let aF = bP._1
452+ let aG = bP._2
453+ let aJ = if (!(isDefined(aF.assetId)))
450454 then throw("Only USDN is accepted!")
451- else toBase58String(value(aD.assetId))
452- let bO = E(("current_bidamount_" + L))
453- if (!(aO(aH)))
455+ else toBase58String(value(aF.assetId))
456+ let bQ = F(("current_bidamount_" + M))
457+ if (!(aQ(aJ)))
454458 then throw("asset not accepted")
455459 else {
456- let bh = E(X(bb, L))
457- let bi = E(Q(bb, L))
458- if ((0 >= bi))
460+ let bj = F(Y(bd, M))
461+ let bk = F(R(bd, M))
462+ if ((0 >= bk))
459463 then throw("No max edition set for this artwork")
460- else if ((bh >= bi))
464+ else if ((bj >= bk))
461465 then throw("Sold out, you cannot bid")
462- else [StringEntry((((((((("bid_" + L) + "_") + bb) + "_") + J) + "_") + by) + "_OPEN"), ((((aH + "_") + toString(aE)) + "_") + toString(bs))), IntegerEntry(("current_bidamount_" + L), (bO + 1))]
466+ else [StringEntry((((((((("bid_" + M) + "_") + bd) + "_") + K) + "_") + bA) + "_OPEN"), ((((aJ + "_") + toString(aG)) + "_") + toString(bu))), IntegerEntry(("current_bidamount_" + M), (bQ + 1))]
463467 }
464468 }
465469
466470
467-func bP (aC,L,bb) = {
468- let bQ = E(V(bb, L))
469- let bR = ap(L)
470- if ((height > bQ))
471+func bR (aE,M,bd) = {
472+ let bS = F(W(bd, M))
473+ let bT = ar(M)
474+ if ((height > bS))
471475 then throw("This auction is finished already!")
472476 else {
473- let bS = aZ(aC)
474- let by = bS._1
475- let J = bS._2
476- let bs = bS._3
477- let bT = aB(aC)
478- let aD = bT._1
479- let aE = bT._2
480- if ((bR >= aE))
481- then throw(("Please place a bid higher than: " + toString(bR)))
477+ let bU = bb(aE)
478+ let bA = bU._1
479+ let K = bU._2
480+ let bu = bU._3
481+ let bV = aD(aE)
482+ let aF = bV._1
483+ let aG = bV._2
484+ if ((bT >= aG))
485+ then throw(("Please place a bid higher than: " + toString(bT)))
482486 else {
483- let aH = if (!(isDefined(aD.assetId)))
487+ let aJ = if (!(isDefined(aF.assetId)))
484488 then throw("Only USDN is accepted!")
485- else toBase58String(value(aD.assetId))
486- let bO = E(("current_bidamount_" + L))
487- let bU = valueOrElse(E(af(bb, L)), (an * 2))
488- if (!(aO(aH)))
489+ else toBase58String(value(aF.assetId))
490+ let bQ = F(("current_bidamount_" + M))
491+ let bW = valueOrElse(F(ag(bd, M)), ao)
492+ if (!(aQ(aJ)))
489493 then throw("asset not accepted")
490- else if ((bU > aE))
494+ else if ((bW > aG))
491495 then throw("Bid is below min price!")
492496 else {
493- let bh = E(X(bb, L))
494- let bi = E(Q(bb, L))
495- if ((0 >= bi))
497+ let bj = F(Y(bd, M))
498+ let bk = F(R(bd, M))
499+ if ((0 >= bk))
496500 then throw("No max edition set for this artwork")
497- else if ((bh >= bi))
501+ else if ((bj >= bk))
498502 then throw("Sold out, you cannot bid")
499- else [StringEntry((((((((("bid_" + L) + "_") + bb) + "_") + J) + "_") + by) + "_OPEN"), ((((aH + "_") + toString(aE)) + "_") + toString(bs))), IntegerEntry(("current_bidamount_" + L), (bO + 1)), StringEntry(R(L), toBase58String(aC.transactionId)), IntegerEntry(S(toBase58String(aC.transactionId)), aE)]
503+ else [StringEntry((((((((("bid_" + M) + "_") + bd) + "_") + K) + "_") + bA) + "_OPEN"), ((((aJ + "_") + toString(aG)) + "_") + toString(bu))), IntegerEntry(("current_bidamount_" + M), (bQ + 1)), StringEntry(S(M), toBase58String(aE.transactionId)), IntegerEntry(T(toBase58String(aE.transactionId)), aG)]
500504 }
501505 }
502506 }
503507 }
504508
505509
506-func bV (aC,L,bb,T,bk) = {
507- let J = toBase58String(aC.caller.bytes)
508- if ((J != bb))
510+func bX (aE,M,bd,U,bm) = {
511+ let K = toBase58String(aE.caller.bytes)
512+ if ((K != bd))
509513 then throw("You cannot do this action")
510- else bw(aC, L, bb, T, bk, true)
514+ else by(aE, M, bd, U, bm, true)
511515 }
512516
513517
514-func bW (L,bb) = {
515- let bh = E(X(bb, L))
516- let bi = E(Q(bb, L))
517- let bX = E(V(bb, L))
518- let bY = E(U(bb, L))
519- let bQ = (bY + height)
520- if ((height > bX))
521- then if ((bh == bi))
518+func bY (M,bd) = {
519+ let bj = F(Y(bd, M))
520+ let bk = F(R(bd, M))
521+ let bZ = F(W(bd, M))
522+ let ca = F(V(bd, M))
523+ let bS = (ca + height)
524+ if ((height > bZ))
525+ then if ((bj == bk))
522526 then throw("Can't restart auction, max amount sold")
523- else [IntegerEntry(V(bb, L), bQ), DeleteEntry(R(L))]
527+ else [IntegerEntry(W(bd, M), bS), DeleteEntry(S(M))]
524528 else throw("Previous auction isn't completed yet")
525529 }
526530
527531
528-func bZ (aC,L,bb,T,bk) = {
529- let bQ = E(V(bb, L))
530- let ca = A(R(L))
531- if ((height > bQ))
532- then if ((T == ca))
532+func cb (aE,M,bd,U,bm) = {
533+ let bS = F(W(bd, M))
534+ let cc = B(S(M))
535+ if ((height > bS))
536+ then if ((U == cc))
533537 then {
534- let cb = bw(aC, L, bb, T, bk, true)
535- let cc = bW(L, bb)
536- (cc ++ cb)
538+ let cd = by(aE, M, bd, U, bm, true)
539+ let ce = bY(M, bd)
540+ (ce ++ cd)
537541 }
538542 else throw("This is not the winning bid!")
539543 else throw("This auction is not yet finished!")
540544 }
541545
542546
543-func cd (aC,L,bb,T) = {
544- let ce = aZ(aC)
545- let by = ce._1
546- let J = ce._2
547- let bs = ce._3
548- let bO = E(("current_bidamount_" + L))
549- let aU = ((((((("bid_" + L) + "_") + bb) + "_") + J) + "_") + T)
550- let aV = B((aU + "_OPEN"), "Bid not found")
551- let aW = split(aV, "_")
552- let aH = aS(aW[0])
553- let cf = "CANCELED"
554-[DeleteEntry((aU + "_OPEN")), StringEntry(((aU + "_") + cf), ((aV + "_") + toString(bs))), IntegerEntry(("current_bidamount_" + L), (bO - 1)), ScriptTransfer(Address(fromBase58String(J)), parseIntValue(aW[1]), aH)]
547+func cf (aE,M,bd,U) = {
548+ let cg = bb(aE)
549+ let bA = cg._1
550+ let K = cg._2
551+ let bu = cg._3
552+ let bQ = F(("current_bidamount_" + M))
553+ let aW = ((((((("bid_" + M) + "_") + bd) + "_") + K) + "_") + U)
554+ let aX = C((aW + "_OPEN"), "Bid not found")
555+ let aY = split(aX, "_")
556+ let aJ = aU(aY[0])
557+ let ch = "CANCELED"
558+[DeleteEntry((aW + "_OPEN")), StringEntry(((aW + "_") + ch), ((aX + "_") + toString(bu))), IntegerEntry(("current_bidamount_" + M), (bQ - 1)), ScriptTransfer(Address(fromBase58String(K)), parseIntValue(aY[1]), aJ)]
555559 }
556560
557561
558-func cg (aC,L,bb,T) = {
559- let ce = aZ(aC)
560- let by = ce._1
561- let J = ce._2
562- let bs = ce._3
563- let bO = E(("current_bidamount_" + L))
564- let aU = ((((((("bid_" + L) + "_") + bb) + "_") + J) + "_") + T)
565- let aV = B((aU + "_OPEN"), "Bid not found")
566- let aW = split(aV, "_")
567- let aH = aS(aW[0])
568- let cf = "CANCELED"
569- let aX = parseIntValue(aW[1])
570- let ca = A(R(L))
571- if ((T == ca))
562+func ci (aE,M,bd,U) = {
563+ let cg = bb(aE)
564+ let bA = cg._1
565+ let K = cg._2
566+ let bu = cg._3
567+ let bQ = F(("current_bidamount_" + M))
568+ let aW = ((((((("bid_" + M) + "_") + bd) + "_") + K) + "_") + U)
569+ let aX = C((aW + "_OPEN"), "Bid not found")
570+ let aY = split(aX, "_")
571+ let aJ = aU(aY[0])
572+ let ch = "CANCELED"
573+ let aZ = parseIntValue(aY[1])
574+ let cc = B(S(M))
575+ if ((U == cc))
572576 then throw("You can't cancel the highest bid!")
573- else [DeleteEntry((aU + "_OPEN")), StringEntry(((aU + "_") + cf), ((aV + "_") + toString(bs))), IntegerEntry(("current_bidamount_" + L), (bO - 1)), ScriptTransfer(Address(fromBase58String(J)), aX, aH)]
577+ else [DeleteEntry((aW + "_OPEN")), StringEntry(((aW + "_") + ch), ((aX + "_") + toString(bu))), IntegerEntry(("current_bidamount_" + M), (bQ - 1)), ScriptTransfer(Address(fromBase58String(K)), aZ, aJ)]
574578 }
575579
576580
577-@Callable(aC)
578-func initDapp (ch) = if ((aC.caller != this))
581+@Callable(aE)
582+func initDapp (cj) = if ((aE.caller != this))
579583 then throw("You cannot do this action")
580584 else if ((g != ""))
581585 then throw("oracle already set, you can't override!")
582- else [StringEntry(b, ch)]
586+ else [StringEntry(b, cj)]
583587
584588
585589
586-@Callable(aC)
587-func restartAuctionManual (L) = if ((ap(L) != 0))
590+@Callable(aE)
591+func restartAuctionManual (M) = if ((ar(M) != 0))
588592 then throw("Please accept the highest bid!")
589- else bW(L, toBase58String(aC.caller.bytes))
593+ else bY(M, toBase58String(aE.caller.bytes))
590594
591595
592596
593-@Callable(aC)
594-func mintNft (be,bo,bq) = if ((aC.caller == this))
597+@Callable(aE)
598+func mintNft (bg,bq,bs) = if ((aE.caller == this))
595599 then {
596- let ci = Address(fromBase58String(bq))
597- let cj = Issue(("SCONEX_" + toString((be + 1))), bo, 1, 0, false)
598- let bC = calculateAssetId(cj)
599- $Tuple2([cj, ScriptTransfer(ci, 1, bC)], toBase58String(bC))
600+ let ck = Address(fromBase58String(bs))
601+ let cl = Issue(("SCONEX_" + toString((bg + 1))), bq, 1, 0, false)
602+ let bE = calculateAssetId(cl)
603+ $Tuple2([cl, ScriptTransfer(ck, 1, bE)], toBase58String(bE))
600604 }
601605 else throw("Only the dApp can mint NFT's")
602606
603607
604608
605-@Callable(aC)
606-func addArtwork (ak,ax,ay,az,ck,aw,cl,cm,cn,co) = {
607- let cp = aZ(aC)
608- let L = cp._1
609- let J = cp._2
610- let bs = cp._3
611- if (containsElement(p, ck))
609+@Callable(aE)
610+func addArtwork (al,az,aA,aB,cm,ay,cn,co,cp,cq) = {
611+ let cr = bb(aE)
612+ let M = cr._1
613+ let K = cr._2
614+ let bu = cr._3
615+ if (containsElement(q, cm))
612616 then {
613- let cq = av(J, aw, ax, ay, az)
614- if ((cq != ""))
617+ let cs = ax(K, ay, az, aA, aB)
618+ if ((cs != ""))
615619 then throw("Something went wrong!")
616620 else {
617- let cr = aF(aC)
618- let aE = cr._1
619- let aH = cr._2
620- if (!(isDefined(aE)))
621+ let ct = aH(aE)
622+ let aG = ct._1
623+ let aJ = ct._2
624+ if (!(isDefined(aG)))
621625 then throw("Something went wrong")
622626 else {
623- let cs = if (containsElement(q, ck))
624- then [StringEntry(P(J, L), cm)]
627+ let cu = if (containsElement(r, cm))
628+ then [StringEntry(Q(K, M), co)]
625629 else nil
626- let ct = invoke(valueOrErrorMessage(addressFromString(j), (j + " not found")), "collectionProcess", [cn, co, J], nil)
627- if ((ct == ct))
630+ let cv = invoke(valueOrErrorMessage(addressFromString(j), (j + " not found")), "collectionProcess", [cp, cq, K], nil)
631+ if ((cv == cv))
628632 then {
629- let cu = {
630- let e = ct
633+ let cw = {
634+ let e = cv
631635 if ($isInstanceOf(e, "String"))
632636 then {
633- let bD = e
634- bD
637+ let bF = e
638+ bF
635639 }
636640 else throw("Incorrect invoke result")
637641 }
638- let cv = A(al(ak, J))
639- if ((cv != ""))
642+ let cx = B(am(al, K))
643+ if ((cx != ""))
640644 then throw("You already added it")
641645 else {
642- let cw = A(aj(ak))
643- if ((cw != ""))
646+ let cy = B(ak(al))
647+ if ((cy != ""))
644648 then throw("This hash is already registered")
645- else (cs ++ [StringEntry(aj(ak), J), StringEntry(al(ak, J), L), IntegerEntry(K(J, L), bs), StringEntry(M(J, L), ax), StringEntry(N(J, L), ay), StringEntry(O(J, L), aw), StringEntry(ae(J, L), ck), StringEntry(ad(J, L), az), IntegerEntry(Q(J, L), 0), IntegerEntry(X(J, L), 0), BooleanEntry(ab(J, L), false), StringEntry(ah(J, L), ak), StringEntry(ac(J, L), cl), ScriptTransfer(Address(fromBase58String(k)), aE, aH)])
649+ else (cu ++ [StringEntry(ak(al), K), StringEntry(am(al, K), M), IntegerEntry(L(K, M), bu), StringEntry(N(K, M), az), StringEntry(O(K, M), aA), StringEntry(P(K, M), ay), StringEntry(af(K, M), cm), StringEntry(ae(K, M), aB), IntegerEntry(R(K, M), 0), IntegerEntry(Y(K, M), 0), BooleanEntry(ac(K, M), false), StringEntry(ai(K, M), al), StringEntry(ad(K, M), cn), ScriptTransfer(Address(fromBase58String(k)), aG, aJ)])
646650 }
647651 }
648652 else throw("Strict value is not equal to itself.")
649653 }
650654 }
651655 }
652656 else throw("Unknown type")
653657 }
654658
655659
656660
657-@Callable(aC)
658-func sellArtwork (L,aQ,cx,aH,cy,bY,cz,cA,cB,cC,cD,cE) = {
659- let bH = invoke(valueOrErrorMessage(addressFromString(m), (m + " not found")), "teamSplitFee", [L, k, "", "", 15, 0, 0], nil)
660- if ((bH == bH))
661+@Callable(aE)
662+func sellArtwork (M,aS,cz,aJ,cA,ca,cB,cC,cD,cE,cF,cG) = {
663+ let bJ = invoke(valueOrErrorMessage(addressFromString(m), (m + " not found")), "teamSplitFee", [M, k, "", "", 15, 0, 0], nil)
664+ if ((bJ == bJ))
661665 then {
662- let cF = invoke(valueOrErrorMessage(addressFromString(m), (m + " not found")), "creatorSplitFee", [L, cz, cA, cB, cC, cD, cE], nil)
663- if ((cF == cF))
666+ let cH = invoke(valueOrErrorMessage(addressFromString(m), (m + " not found")), "creatorSplitFee", [M, cB, cC, cD, cE, cF, cG], nil)
667+ if ((cH == cH))
664668 then {
665- let cG = aZ(aC)
666- let by = cG._1
667- let J = cG._2
668- let bf = A(M(J, L))
669- if (!(containsElement([w, x, y], cy)))
669+ let cI = bb(aE)
670+ let bA = cI._1
671+ let K = cI._2
672+ let bh = B(N(K, M))
673+ if (!(containsElement([x, y, z], cA)))
670674 then throw("We don't know this auction type")
671- else if ((bf == ""))
675+ else if ((bh == ""))
672676 then throw("This art doesn't match your account")
673677 else {
674- let bO = E(("current_bidamount_" + L))
675- if (!(aO(aH)))
678+ let bQ = F(("current_bidamount_" + M))
679+ if (!(aQ(aJ)))
676680 then throw("Something went wrong!")
677- else if (!(aP(aH, aQ)))
681+ else if (!(aR(aJ, aS)))
678682 then throw("Something went wrong!")
679683 else {
680- let aA = at(J)
681- if ((aA != ""))
682- then throw(aA)
684+ let aC = av(K)
685+ if ((aC != ""))
686+ then throw(aC)
683687 else {
684- let bh = E(X(J, L))
685- let bi = E(Q(J, L))
686- if ((cx > 10000))
688+ let bj = F(Y(K, M))
689+ let bk = F(R(K, M))
690+ if ((cz > 10000))
687691 then throw("10000 editions max per artwork")
688- else if (if ((bh != 0))
689- then (bh == bi)
692+ else if (if ((bj != 0))
693+ then (bj == bk)
690694 else false)
691695 then throw("Max edition reached.")
692- else if (if ((bh > 0))
693- then (bi != cx)
696+ else if (if ((bj > 0))
697+ then (bk != cz)
694698 else false)
695699 then throw("Cannot change maximum issuable anymore")
696- else if (if ((bO > 0))
697- then (bi != cx)
700+ else if (if ((bQ > 0))
701+ then (bk != cz)
698702 else false)
699703 then throw("Cannot change maximum issuable with active orders")
700704 else {
701- let bp = if (if ((aQ > 0))
702- then (cx > 0)
705+ let br = if (if ((aS > 0))
706+ then (cz > 0)
703707 else false)
704708 then true
705709 else false
706- let bQ = (bY + height)
707-[BooleanEntry(ab(J, L), bp), IntegerEntry(af(J, L), aQ), IntegerEntry(Q(J, L), cx), IntegerEntry(U(J, L), bY), IntegerEntry(V(J, L), bQ), StringEntry(ag(J, L), aH), StringEntry(W(J, L), cy)]
710+ let bS = (ca + height)
711+[BooleanEntry(ac(K, M), br), IntegerEntry(ag(K, M), aS), IntegerEntry(R(K, M), cz), IntegerEntry(V(K, M), ca), IntegerEntry(W(K, M), bS), StringEntry(ah(K, M), aJ), StringEntry(X(K, M), cA)]
708712 }
709713 }
710714 }
711715 }
712716 }
713717 else throw("Strict value is not equal to itself.")
714718 }
715719 else throw("Strict value is not equal to itself.")
716720 }
717721
718722
719723
720-@Callable(aC)
721-func buyArtwork (L,bb) = {
722- let cy = A(W(bb, L))
723- if ((cy == y))
724- then bw(aC, L, bb, "", "", false)
724+@Callable(aE)
725+func buyArtwork (M,bd) = {
726+ let cA = B(X(bd, M))
727+ if ((cA == z))
728+ then by(aE, M, bd, "", "", false)
725729 else throw("Direct buy only allowed when no auction type is set!")
726730 }
727731
728732
729733
730-@Callable(aC)
731-func updateTags (cH,L,az) = {
732- let J = toString(addressFromPublicKey(aC.callerPublicKey))
733- if (containsElement(i, J))
734- then if ((size(split(az, ",")) > 5))
734+@Callable(aE)
735+func updateTags (cJ,M,aB) = {
736+ let K = toString(addressFromPublicKey(aE.callerPublicKey))
737+ if (containsElement(i, K))
738+ then if ((size(split(aB, ",")) > 5))
735739 then throw("5 tags max.")
736740 else {
737- let cI = B(ad(cH, L), "No tags created with this key, so can't update!")
738- if ((az == cI))
741+ let cK = C(ae(cJ, M), "No tags created with this key, so can't update!")
742+ if ((aB == cK))
739743 then throw("Tags are the same as old tags!")
740- else [StringEntry(ad(cH, L), az)]
744+ else [StringEntry(ae(cJ, M), aB)]
741745 }
742746 else throw("no")
743747 }
744748
745749
746750
747-@Callable(aC)
748-func deleteEntry (cJ) = {
749- let J = toString(addressFromPublicKey(aC.callerPublicKey))
750- if (containsElement(i, J))
751- then [DeleteEntry(cJ)]
751+@Callable(aE)
752+func deleteEntry (cL) = {
753+ let K = toString(addressFromPublicKey(aE.callerPublicKey))
754+ if (containsElement(i, K))
755+ then [DeleteEntry(cL)]
752756 else throw("no")
753757 }
754758
755759
756760
757-@Callable(aC)
758-func setBid (L,bb) = {
759- let cy = A(W(bb, L))
760- if ((cy == w))
761- then bL(aC, L, bb)
762- else if ((cy == x))
763- then bP(aC, L, bb)
764- else throw((("Unknown auction type :" + cy) + ", please contact the admins"))
761+@Callable(aE)
762+func setBid (M,bd) = {
763+ let cA = B(X(bd, M))
764+ if ((cA == x))
765+ then bN(aE, M, bd)
766+ else if ((cA == y))
767+ then bR(aE, M, bd)
768+ else throw((("Unknown auction type :" + cA) + ", please contact the admins"))
765769 }
766770
767771
768772
769-@Callable(aC)
770-func acceptBid (L,bb,T,bk) = {
771- let cy = A(W(bb, L))
772- if ((cy == w))
773- then bV(aC, L, bb, T, bk)
774- else if ((cy == x))
775- then bZ(aC, L, bb, T, bk)
776- else throw((("Unknown auction type :" + cy) + ", please contact the admins"))
773+@Callable(aE)
774+func acceptBid (M,bd,U,bm) = {
775+ let cA = B(X(bd, M))
776+ if ((cA == x))
777+ then bX(aE, M, bd, U, bm)
778+ else if ((cA == y))
779+ then cb(aE, M, bd, U, bm)
780+ else throw((("Unknown auction type :" + cA) + ", please contact the admins"))
777781 }
778782
779783
780784
781-@Callable(aC)
782-func cancelBid (L,bb,T) = {
783- let cy = A(W(bb, L))
784- if ((cy == w))
785- then cd(aC, L, bb, T)
786- else cg(aC, L, bb, T)
785+@Callable(aE)
786+func cancelBid (M,bd,U) = {
787+ let cA = B(X(bd, M))
788+ if ((cA == x))
789+ then cf(aE, M, bd, U)
790+ else ci(aE, M, bd, U)
787791 }
788792
789793

github/deemru/w8io/169f3d6 
308.01 ms