tx · FVC58Wazb9odxubs8ZnKFXRKFzEc2xXgXYXmkXb3vRKB

3MrWNTqFcHBqb58Za1A5crQrMV5KJ5DYhtA:  -0.01000000 Waves

2021.10.10 15:41 [1740185] smart account 3MrWNTqFcHBqb58Za1A5crQrMV5KJ5DYhtA > SELF 0.00000000 Waves

{ "type": 13, "id": "FVC58Wazb9odxubs8ZnKFXRKFzEc2xXgXYXmkXb3vRKB", "fee": 1000000, "feeAssetId": null, "timestamp": 1633869775020, "version": 2, "chainId": 84, "sender": "3MrWNTqFcHBqb58Za1A5crQrMV5KJ5DYhtA", "senderPublicKey": "9abKuN1XmLjjire2feZH26PmcEWhEXxiHToWSmii3Gn2", "proofs": [ "RAVFsBXbXS5zh5b8GEH1CZffFLPYuHBoCixJHZrTcHsj8cGcLMtPKyPHfXa6pVHrGqaf3GhbpNuF2S3ZT8mVR3t" ], "script": "base64:AAIFAAAAAAAAAEUIAhIFCgMBCAgSCQoHCAgICAgICBIICgYIAQEICAESBAoCCAgSBQoDCAgIEgMKAQgSBAoCCAgSBgoECAgICBIFCgMICAgAAABOAAAAAAh1bml0VGVzdAcAAAAACW9yYWNsZUZlZQkBAAAABXZhbHVlAAAAAQkABCYAAAABAgAAACMzTXBaUWp6R29nbWlmY0VLZThtRGQ2cmliTDdueFQ5QUN5ZQAAAAALZmVlUmVjZWl2ZXICAAAAIzNONjV4THE4SmNDZWFFaVIxVEpRN2RCcVhCdkV5NkU0OFd6AAAAAAhjZXJ0RGFwcAIAAAAjM014Y1hyTmJNWktZYVNyaGNmZU1tMmhabkJlQ3UzeVJXc3cAAAAACHVzZXJEYXBwCQEAAAAFdmFsdWUAAAABCQAEJgAAAAECAAAAIzNOOWNRZ1pGUEhIVnU4d3FzbjJEa1FGZWhnM2g4Q05pb29BAAAAAA13aGl0ZWxpc3REYXBwCQEAAAAFdmFsdWUAAAABCQAEJgAAAAECAAAAIzNOOXhaWUdwek1GRFh2WHVjdG1VNnpWOHFTem0yWmZGMzFmAAAAAAtVU0ROQXNzZXRJZAEAAAAgAIUpTOkTLqoXmGxvzdEleYQFDyLlDcuqJGsbsu9ZirwAAAAABm93bmVycwkABEwAAAACCQAEHQAAAAIFAAAACW9yYWNsZUZlZQIAAAAGb3duZXIxCQAETAAAAAIJAAQdAAAAAgUAAAAJb3JhY2xlRmVlAgAAAAZvd25lcjIFAAAAA25pbAAAAAAQVVNETkZpcnN0U2VsbEN1dAAAAAAAAAAAlgAAAAALZGFwcFJ1bm5pbmcJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQbAAAAAgUAAAAIdXNlckRhcHACAAAAFGNvbmZfZGFwcF9pc19ydW5uaW5nBgAAAAAObWFpbnRlbmFuY2VNU0cJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQdAAAAAgUAAAAIdXNlckRhcHACAAAAFGNvbmZfbWFpbnRlbmFuY2VfbXNnAgAAAAAAAAAADXVzZXJTdXNwZW5kZWQCAAAACVNVU1BFTkRFRAAAAAALdXNlclJlbW92ZWQCAAAAB1JFTU9WRUQAAAAAEHVzZXJVbnJlZ2lzdGVyZWQCAAAADFVOUkVHSVNURVJFRAAA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AgAAAAFfBQAAAAZjYWxsZXIBAAAAEWtleUhhc2hCeVR4aWRBZGRyAAAAAgAAAAZjYWxsZXIAAAAEdHhpZAkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAATZ2V0X2hhc2hieXR4aWRhZGRyXwUAAAAEdHhpZAIAAAABXwUAAAAGY2FsbGVyAQAAAA5rZXlPd25lckJ5SGFzaAAAAAEAAAAKc2hhMjU2SGFzaAkAASwAAAACAgAAABJnZXRfb3duZXJfYnlfaGFzaF8FAAAACnNoYTI1Nkhhc2gBAAAAEmtleVR4aWRCeUhhc2hPd25lcgAAAAIAAAAKc2hhMjU2SGFzaAAAAAZjYWxsZXIJAAEsAAAAAgIAAAAXZ2V0X3R4aWRfYnlfaGFzaF9vd25lcl8JAAJYAAAAAQkAC1QAAAABCQABmwAAAAEJAAEsAAAAAgUAAAAKc2hhMjU2SGFzaAUAAAAGY2FsbGVyAAAAABljdXJyZW50Q2VydGlmaWNhdGlvblByaWNlCQEAAAAZZ2V0SW50ZWdlckJ5S2V5RnJvbU9yYWNsZQAAAAEJAAEsAAAAAgIAAAASY2VydGlmaWNhdGlvbl9mZWVfCQACWAAAAAEFAAAAC1VTRE5Bc3NldElkAQAAABBnZXRBbW91bnRCeUJpZElkAAAAAQAAAAViaWRJZAkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkBAAAAD2dldEludGVnZXJCeUtleQAAAAEJAQAAAAhrZXlCaWRJZAAAAAEFAAAABWJpZElkAAAAAAAAAAAAAQAAABpnZXRBbW91bnRIaWdoZXN0QmlkQnlBcnRJZAAAAAEAAAAFYXJ0SWQEAAAABWJpZElkCQEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABCQEAAAASa2V5SGlnaGVzdEJpZEJpZElkAAAAAQUAAAAFYXJ0SWQDCQAAAAAAAAIFAAAABWJpZElkAgAAAAAAAAAAAAAAAAAJAQAAABBnZXRBbW91bnRCeUJpZElkAAAAAQUAAAAFYmlkSWQBAAAADnZhbGlkYXRlU3RyaW5nAAAAAgAAAANzdHIAAAADbWF4AwkAAAAAAAACCQABMQAAAAEFAAAAA3N0cgAAAAAAAAAAAAkAAAIAAAABAgAAABhGaWVsZCBjYW5ub3QgYmUgaXMgZW1wdHkDCQAAZgAA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AAAABmNhbGxlcgAAAAZpc3N1ZXIAAAAFYXJ0SWQAAAAIYmlkT3duZXIAAAAFYmlkSWQAAAAMcHJpY2VBc3NldElkAAAADGFydHdvcmtQcmljZQAAAAVpc0JpZAQAAAAJY2hlY2tVc2VyCQEAAAAMdmFsaWRhdGVVc2VyAAAAAQUAAAAGaXNzdWVyAwMFAAAABWlzQmlkCQEAAAACIT0AAAACBQAAAAljaGVja1VzZXICAAAAAAcJAAACAAAAAQUAAAAJY2hlY2tVc2VyBAAAAApiaWREYXRhS2V5CQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAABGJpZF8FAAAABWFydElkAgAAAAFfBQAAAAZpc3N1ZXICAAAAAV8FAAAACGJpZE93bmVyAgAAAAFfBQAAAAViaWRJZAQAAAAMdDAxMzUxOTEzNjQ4AwUAAAAFaXNCaWQJAQAAABZnZXRQcmljZUFzc2V0SWRGcm9tQmlkAAAAAQUAAAAKYmlkRGF0YUtleQkBAAAAFHZhbGlkYXRlUHJpY2VBc3NldElkAAAAAwUAAAABaQUAAAAMcHJpY2VBc3NldElkBQAAAAxhcnR3b3JrUHJpY2UEAAAABmFtb3VudAgFAAAADHQwMTM1MTkxMzY0OAAAAAJfMQQAAAAHYXNzZXRJZAgFAAAADHQwMTM1MTkxMzY0OAAAAAJfMgkABRUAAAADBQAAAApiaWREYXRhS2V5BQAAAAZhbW91bnQFAAAAB2Fzc2V0SWQBAAAAEWdldENvbW1pc3Npb25EYXRhAAAABQAAAAZpc3N1ZXIAAAAHYXNzZXRJZAAAAAZhbW91bnQAAAAKYW1vdW50U29sZAAAAAptYXhDYW5TZWxsBAAAAA1pc1doaXRlbGlzdGVkCQEAAAAOY2hlY2tXaGl0ZWxpc3QAAAABBQAAAAZpc3N1ZXIEAAAAA2N1dAMJAABmAAAAAgUAAAANaXNXaGl0ZWxpc3RlZAUAAAAGaGVpZ2h0AAAAAAAAAAAAAwkAAAAAAAACBQAAAAdhc3NldElkBQAAAAtVU0ROQXNzZXRJZAUAAAAQVVNETkZpcnN0U2VsbEN1dAkAAAIAAAABAgAAABZPbmx5IFVTRE4gaXMgYWNjZXB0ZWQhBAAAAA9h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AAAEBQAAAAFpBQAAAAZpc3N1ZXIFAAAABWFydElkBQAAAAVpc0JpZAQAAAAIdG90YWxORlQIBQAAAAdhcnREYXRhAAAAAl8xBAAAAAthcnR3b3JrTmFtZQgFAAAAB2FydERhdGEAAAACXzIEAAAACmFtb3VudFNvbGQIBQAAAAdhcnREYXRhAAAAAl8zBAAAAAxhcnR3b3JrUHJpY2UIBQAAAAdhcnREYXRhAAAAAl80BAAAAAxwcmljZUFzc2V0SWQIBQAAAAdhcnREYXRhAAAAAl81BAAAAAptYXhDYW5TZWxsCAUAAAAHYXJ0RGF0YQAAAAJfNgQAAAAIaXNPblNhbGUIBQAAAAdhcnREYXRhAAAAAl83BAAAAAdiaWREYXRhCQEAAAAKZ2V0QmlkRGF0YQAAAAkFAAAAAWkFAAAABmNhbGxlcgUAAAAGaXNzdWVyBQAAAAVhcnRJZAUAAAAIYmlkT3duZXIFAAAABWJpZElkBQAAAAxwcmljZUFzc2V0SWQFAAAADGFydHdvcmtQcmljZQUAAAAFaXNCaWQEAAAACmJpZERhdGFLZXkIBQAAAAdiaWREYXRhAAAAAl8xBAAAAAZhbW91bnQIBQAAAAdiaWREYXRhAAAAAl8yBAAAAAdhc3NldElkCAUAAAAHYmlkRGF0YQAAAAJfMwQAAAANY29tbWlzaW9uRGF0YQkBAAAAEWdldENvbW1pc3Npb25EYXRhAAAABQUAAAAGaXNzdWVyCQEAAAAFdmFsdWUAAAABBQAAAAdhc3NldElkBQAAAAZhbW91bnQFAAAACmFtb3VudFNvbGQFAAAACm1heENhblNlbGwEAAAAD2Ftb3VudEZvclNjb25leAgFAAAADWNvbW1pc2lvbkRhdGEAAAACXzEEAAAAEGFtb3VudEZvckNyZWF0b3IIBQAAAA1jb21taXNpb25EYXRhAAAAAl8yBAAAAA1uZXdBbW91bnRTb2xkCAUAAAANY29tbWlzaW9uRGF0YQAAAAJfMwQAAAAKaXNzdWVyRGF0YQkBAAAADGdldElzc3VlRGF0YQAAAAsFAAAABmlzc3VlcgUAAAAFYXJ0SWQFAAAAC2FydHdvcmtOYW1lBQAAAA1uZXdBbW91bnRTb2xkBQAAAAptYXhDYW5TZWxsBQAAAAh0b3RhbE5GVAUAAAAGY2FsbGVy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cnRJZAQAAAAIZHVyYXRpb24JAQAAAA9nZXRJbnRlZ2VyQnlLZXkAAAABCQEAAAALa2V5RHVyYXRpb24AAAACBQAAAAZpc3N1ZXIFAAAABWFydElkBAAAAAllbmRIZWlnaHQJAABkAAAAAgUAAAAIZHVyYXRpb24FAAAABmhlaWdodAMJAABmAAAAAgUAAAAGaGVpZ2h0BQAAAAxvbGRFbmRIZWlnaHQDCQAAAAAAAAIFAAAACmFtb3VudFNvbGQFAAAACm1heENhblNlbGwJAAACAAAAAQIAAAAmQ2FuJ3QgcmVzdGFydCBhdWN0aW9uLCBtYXggYW1vdW50IHNvbGQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAAxrZXlFbmRIZWlnaHQAAAACBQAAAAZpc3N1ZXIFAAAABWFydElkBQAAAAllbmRIZWlnaHQJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkBAAAAEmtleUhpZ2hlc3RCaWRCaWRJZAAAAAEFAAAABWFydElkBQAAAANuaWwJAAACAAAAAQIAAAAkUHJldmlvdXMgYXVjdGlvbiBpc24ndCBjb21wbGV0ZWQgeWV0AQAAABRhY2NlcHRCaWRUcmFkaXRpb25hbAAAAAUAAAABaQAAAAVhcnRJZAAAAAZpc3N1ZXIAAAAFYmlkSWQAAAAIYmlkT3duZXIEAAAACWVuZEhlaWdodAkBAAAAD2dldEludGVnZXJCeUtleQAAAAEJAQAAAAxrZXlFbmRIZWlnaHQAAAACBQAAAAZpc3N1ZXIFAAAABWFydElkBAAAAAxoaWdoZXN0QmlkSWQJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEJAQAAABJrZXlIaWdoZXN0QmlkQmlkSWQAAAABBQAAAAVhcnRJZAMJAABmAAAAAgUAAAAGaGVpZ2h0BQAAAAllbmRIZWlnaHQDCQAAAAAAAAIFAAAABWJpZElkBQAAAAxoaWdoZXN0QmlkSWQEAAAAC2J1eU1pbnREYXRhCQEAAAAHYnV5TWludAAAAAYFAAAAAWkFAAAABWFydElkBQAAAAZpc3N1ZXIFAAAABWJpZElkBQAAAAhiaWRPd25lcgYEAAAAEnJlc3RhcnRBdWN0aW9uRGF0YQkBAAAADnJlc3RhcnRBdWN0aW9u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CAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkDCQEAAAAPY29udGFpbnNFbGVtZW50AAAAAgUAAAAGb3duZXJzBQAAAAZjYWxsZXIJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQUAAAAFZW50cnkFAAAAA25pbAkAAAIAAAABAgAAAAJubwAAAAFpAQAAAAZzZXRCaWQAAAACAAAABWFydElkAAAABmlzc3VlcgQAAAALYXVjdGlvblR5cGUJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEJAQAAAA5rZXlBdWN0aW9uVHlwZQAAAAIFAAAABmlzc3VlcgUAAAAFYXJ0SWQDCQAAAAAAAAIFAAAAC2F1Y3Rpb25UeXBlBQAAAAxhdWN0aW9uVHlwZTEJAQAAABRzZXRCaWROb25UcmFkaXRpb25hbAAAAAMFAAAAAWkFAAAABWFydElkBQAAAAZpc3N1ZXIDCQAAAAAAAAIFAAAAC2F1Y3Rpb25UeXBlBQAAAAxhdWN0aW9uVHlwZTIJAQAAABFzZXRCaWRUcmFkaXRpb25hbAAAAAMFAAAAAWkFAAAABWFydElkBQAAAAZpc3N1ZXIJAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAAFlVua25vd24gYXVjdGlvbiB0eXBlIDoFAAAAC2F1Y3Rpb25UeXBlAgAAABssIHBsZWFzZSBjb250YWN0IHRoZSBhZG1pbnMAAAABaQEAAAAJYWNjZXB0QmlkAAAABAAAAAVhcnRJZAAAAAZpc3N1ZXIAAAAFYmlkSWQAAAAIYmlkT3duZXIEAAAAC2F1Y3Rpb25UeXBlCQEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABCQEAAAAOa2V5QXVjdGlvblR5cGUAAAACBQAAAAZpc3N1ZXIFAAAABWFydElkAwkAAAAAAAACBQAAAAthdWN0aW9uVHlwZQUAAAAMYXVjdGlvblR5cGUxCQEAAAAXYWNjZXB0QmlkTm9uVHJhZGl0aW9uYWwAAAAFBQAAAAFpBQAAAAVhcnRJZAUAAAAGaXNzdWVyBQAAAAViaWRJZAUAAAAIYmlkT3duZXIDCQAAAAAAAAIFAAAAC2F1Y3Rpb25UeXBlBQAAAAxhdWN0aW9uVHlwZTIJAQAAABRhY2NlcHRCaWRUcmFkaXRpb25hbAAAAAUFAAAAAWkFAAAABWFydElkBQAAAAZpc3N1ZXIFAAAABWJpZElkBQAAAAhiaWRPd25lcgkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAWVW5rbm93biBhdWN0aW9uIHR5cGUgOgUAAAALYXVjdGlvblR5cGUCAAAAGywgcGxlYXNlIGNvbnRhY3QgdGhlIGFkbWlucwAAAAFpAQAAAAljYW5jZWxCaWQAAAADAAAABWFydElkAAAABmlzc3VlcgAAAAViaWRJZAQAAAALYXVjdGlvblR5cGUJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEJAQAAAA5rZXlBdWN0aW9uVHlwZQAAAAIFAAAABmlzc3VlcgUAAAAFYXJ0SWQDCQAAAAAAAAIFAAAAC2F1Y3Rpb25UeXBlBQAAAAxhdWN0aW9uVHlwZTEJAQAAAA1jYW5jZWxCaWRJbXBsAAAABAUAAAABaQUAAAAFYXJ0SWQFAAAABmlzc3VlcgUAAAAFYmlkSWQJAQAAABhjYW5jZWxCaWRJbXBsVHJhZGl0aW9uYWwAAAAEBQAAAAFpBQAAAAVhcnRJZAUAAAAGaXNzdWVyBQAAAAViaWRJZAAAAADfGEMm", "height": 1740185, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 2CdVoqS9tPHRqkHUTveMhdsq3nf9Dx92jUtLhSkxuXke Next: FgSf1iBWVKaUeSvMZqtZs1gaReA4WsGAEtKUZp7eusTh Diff:
OldNewDifferences
1919
2020 let i = 150
2121
22-let j = 30
22+let j = valueOrElse(getBoolean(e, "conf_dapp_is_running"), true)
2323
24-let k = 70
24+let k = valueOrElse(getString(e, "conf_maintenance_msg"), "")
2525
26-let l = valueOrElse(getBoolean(e, "conf_dapp_is_running"), true)
26+let l = "SUSPENDED"
2727
28-let m = valueOrElse(getString(e, "conf_maintenance_msg"), "")
28+let m = "REMOVED"
2929
30-let n = "SUSPENDED"
30+let n = "UNREGISTERED"
3131
32-let o = "REMOVED"
32+let o = "ALLOWED"
3333
34-let p = "UNREGISTERED"
34+let p = "BIDTYPE"
3535
36-let q = "ALLOWED"
36+let q = "TRADITIONAL"
3737
38-let r = "BIDTYPE"
38+let r = "DIRECT"
3939
40-let s = "TRADITIONAL"
41-
42-let t = "DIRECT"
43-
44-func u (v) = valueOrElse(getString(e, v), "")
40+func s (t) = valueOrElse(getString(e, t), "")
4541
4642
47-func w (v) = valueOrElse(getString(this, v), "")
43+func u (t) = valueOrElse(getString(this, t), "")
4844
4945
50-func x (v,y) = valueOrErrorMessage(getString(this, v), y)
46+func v (t,w) = valueOrErrorMessage(getString(this, t), w)
5147
5248
53-func z (v) = valueOrErrorMessage(getInteger(b, v), "Integer undefine or 0 in oracle")
49+func x (t) = valueOrErrorMessage(getInteger(b, t), "Integer undefine or 0 in oracle")
5450
5551
56-func A (v) = valueOrElse(getInteger(this, v), 0)
52+func y (t) = valueOrElse(getInteger(this, t), 0)
5753
5854
59-func B (v) = valueOrElse(getInteger(f, v), 0)
55+func z (t) = valueOrElse(getInteger(f, t), 0)
6056
6157
62-func C (v) = valueOrElse(getBoolean(this, v), false)
58+func A (t) = valueOrElse(getBoolean(this, t), false)
6359
6460
65-func D (E) = (size(E) == 64)
61+func B (C) = (size(C) == 64)
6662
6763
68-func F (G) = ("user_status_" + G)
64+func D (E) = ("user_status_" + E)
6965
7066
71-func H (G,I) = ((("art_date_" + I) + "_") + G)
67+func F (E,G) = ((("art_date_" + G) + "_") + E)
7268
7369
74-func J (G,I) = ((("art_name_" + I) + "_") + G)
70+func H (E,G) = ((("art_name_" + G) + "_") + E)
7571
7672
77-func K (G,I) = ((("art_desc_" + I) + "_") + G)
73+func I (E,G) = ((("art_desc_" + G) + "_") + E)
7874
7975
80-func L (G,I) = ((("art_display_cid_" + I) + "_") + G)
76+func J (E,G) = ((("art_display_cid_" + G) + "_") + E)
8177
8278
83-func M (G,I) = ((("art_maxmint_" + I) + "_") + G)
79+func K (E,G) = ((("art_maxmint_" + G) + "_") + E)
8480
8581
86-func N (I) = ("art_highestBidBidId_" + I)
82+func L (G) = ("art_highestBidBidId_" + G)
8783
8884
89-func O (P) = ("bid_" + P)
85+func M (N) = ("bid_" + N)
9086
9187
92-func Q (G,I) = ((("art_duration_" + I) + "_") + G)
88+func O (E,G) = ((("art_duration_" + G) + "_") + E)
9389
9490
95-func R (G,I) = ((("art_endheight_" + I) + "_") + G)
91+func P (E,G) = ((("art_endheight_" + G) + "_") + E)
9692
9793
98-func S (G,I) = ((("art_auctiontype_" + I) + "_") + G)
94+func Q (E,G) = ((("art_auctiontype_" + G) + "_") + E)
9995
10096
101-func T (G,I) = ((("art_issued_" + I) + "_") + G)
97+func R (E,G) = ((("art_issued_" + G) + "_") + E)
10298
10399
104-func U (V) = ("nft_issued_" + V)
100+func S (T) = ("nft_issued_" + T)
105101
106102
107-func W (G,I) = ((("art_onsale_" + I) + "_") + G)
103+func U (E,G) = ((("art_onsale_" + G) + "_") + E)
108104
109105
110-func X (G,I) = ((("art_entitlement_" + I) + "_") + G)
106+func V (E,G) = ((("art_entitlement_" + G) + "_") + E)
111107
112108
113-func Y (G,I) = ((("art_tags_" + I) + "_") + G)
109+func W (E,G) = ((("art_tags_" + G) + "_") + E)
114110
115111
116-func Z (G,I) = ((("art_type_" + I) + "_") + G)
112+func X (E,G) = ((("art_type_" + G) + "_") + E)
117113
118114
119-func aa (G,I) = ((("art_price_" + I) + "_") + G)
115+func Y (E,G) = ((("art_price_" + G) + "_") + E)
120116
121117
122-func ab (G,I) = ((("art_assetAccepted_" + I) + "_") + G)
118+func Z (E,G) = ((("art_assetAccepted_" + G) + "_") + E)
123119
124120
125-func ac (G,ad) = ((("get_hashbytxidaddr_" + ad) + "_") + G)
121+func aa (E,ab) = ((("get_hashbytxidaddr_" + ab) + "_") + E)
126122
127123
128-func ae (af) = ("get_owner_by_hash_" + af)
124+func ac (ad) = ("get_owner_by_hash_" + ad)
129125
130126
131-func ag (af,G) = ("get_txid_by_hash_owner_" + toBase58String(sha256_16Kb(toBytes((af + G)))))
127+func ae (ad,E) = ("get_txid_by_hash_owner_" + toBase58String(sha256_16Kb(toBytes((ad + E)))))
132128
133129
134-let ah = z(("certification_fee_" + toBase58String(g)))
130+let af = x(("certification_fee_" + toBase58String(g)))
135131
136-func ai (P) = valueOrElse(A(O(P)), 0)
132+func ag (N) = valueOrElse(y(M(N)), 0)
137133
138134
139-func aj (I) = {
140- let P = w(N(I))
141- if ((P == ""))
135+func ah (G) = {
136+ let N = u(L(G))
137+ if ((N == ""))
142138 then 0
143- else ai(P)
139+ else ag(N)
144140 }
145141
146142
147-func ak (al,am) = if ((size(al) == 0))
143+func ai (aj,ak) = if ((size(aj) == 0))
148144 then throw("Field cannot be is empty")
149- else if ((size(al) > am))
150- then throw((al + " is too long"))
145+ else if ((size(aj) > ak))
146+ then throw((aj + " is too long"))
151147 else true
152148
153149
154-func an (G) = {
155- let ao = valueOrElse(getString(e, F(G)), p)
156- if (if ((ao == p))
150+func al (E) = {
151+ let am = valueOrElse(getString(e, D(E)), n)
152+ if (if ((am == n))
157153 then true
158- else (ao == q))
154+ else (am == o))
159155 then "Register this account first with 'Account' tab"
160- else if ((ao == n))
156+ else if ((am == l))
161157 then "Account suspended"
162- else if ((ao == o))
158+ else if ((am == m))
163159 then "Account removed"
164160 else ""
165161 }
166162
167163
168-func ap (G,aq,ar,as,at) = {
169- let au = an(G)
170- if ((au != ""))
171- then throw(au)
172- else if ((size(aq) == 0))
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))
173169 then throw("Display CID cannot be empty")
174- else if ((size(aq) != 46))
170+ else if ((size(ao) != 46))
175171 then throw("This doesn't seem a valid CID!")
176- else if (!(ak(ar, 100)))
172+ else if (!(ai(ap, 100)))
177173 then throw("100 Char. max name")
178- else if (!(ak(as, 1000)))
174+ else if (!(ai(aq, 1000)))
179175 then throw("1000 Char. max description")
180- else if ((size(split(at, ",")) > 5))
176+ else if ((size(split(ar, ",")) > 5))
181177 then throw("5 tags max.")
182178 else ""
183179 }
184180
185181
186-func av (aw) = if ((size(aw.payments) == 0))
182+func at (au) = if ((size(au.payments) == 0))
187183 then throw("No payment attached")
188184 else {
189- let ax = value(aw.payments[0])
190- let ay = value(ax.amount)
191- $Tuple2(ax, ay)
185+ let av = value(au.payments[0])
186+ let aw = value(av.amount)
187+ $Tuple2(av, aw)
192188 }
193189
194190
195-func az (aw) = {
196- let aA = av(aw)
197- let ax = aA._1
198- let ay = aA._2
199- let aB = if (if (isDefined(ax.assetId))
200- then (ax.assetId == g)
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)
201197 else false)
202- then ax.assetId
198+ then av.assetId
203199 else throw("Only USDN token accepted as transaction fee")
204- if ((ay != ah))
205- then throw(((("Payment amount should be " + toString(ah)) + " but is: ") + toString(ay)))
206- else $Tuple2(ay, aB)
200+ if ((aw != af))
201+ then throw(((("Payment amount should be " + toString(af)) + " but is: ") + toString(aw)))
202+ else $Tuple2(aw, az)
207203 }
208204
209205
210-func aC (aD,I) = {
211- let aE = getInteger(this, T(aD, I))
212- if ($isInstanceOf(aE, "Int"))
206+func aA (aB,G) = {
207+ let aC = getInteger(this, R(aB, G))
208+ if ($isInstanceOf(aC, "Int"))
213209 then {
214- let aF = aE
215- if ((aF != 0))
210+ let aD = aC
211+ if ((aD != 0))
216212 then true
217213 else false
218214 }
220216 }
221217
222218
223-func aG (aw,aH,aI) = {
224- let aJ = av(aw)
225- let ax = aJ._1
226- let ay = aJ._2
227- let aB = if (!(isDefined(ax.assetId)))
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)))
228224 then throw("Wrong asset id")
229- else if (if ((size(aH) > 0))
230- then (toBase58String(value(ax.assetId)) == aH)
225+ else if (if ((size(aF) > 0))
226+ then (toBase58String(value(av.assetId)) == aF)
231227 else false)
232- then ax.assetId
228+ then av.assetId
233229 else throw("Wrong asset id")
234- if (if ((aB == unit))
235- then (aH != "")
230+ if (if ((az == unit))
231+ then (aF != "")
236232 else false)
237233 then throw("Wrong asset id")
238- else if ((aI != ay))
239- then throw(((("Payment don't match " + toString(aI)) + " ") + toString(ay)))
240- else $Tuple2(ay, aB)
234+ else if ((aG != aw))
235+ then throw(((("Payment don't match " + toString(aG)) + " ") + toString(aw)))
236+ else $Tuple2(aw, az)
241237 }
242238
243239
244-func aK (aB) = if ((aB != toBase58String(g)))
240+func aI (az) = if ((az != toBase58String(g)))
245241 then throw("Only USDN accepted")
246242 else true
247243
248244
249-func aL (aB,aM) = {
250- let aN = if (a)
245+func aJ (az,aK) = {
246+ let aL = if (a)
251247 then 1
252- else (ah * 2)
253- if (if (if ((aB == toBase58String(g)))
254- then (aN > aM)
248+ else (af * 2)
249+ if (if (if ((az == toBase58String(g)))
250+ then (aL > aK)
255251 else false)
256- then (aM != 0)
252+ then (aK != 0)
257253 else false)
258- then throw(("Wrong minimum sell price " + toString(aN)))
254+ then throw(("Wrong minimum sell price " + toString(aL)))
259255 else true
260256 }
261257
262258
263-func aO (aB) = if ((aB == "WAVES"))
259+func aM (az) = if ((az == "WAVES"))
264260 then throw("Only USDN is accepted!")
265- else fromBase58String(aB)
261+ else fromBase58String(az)
266262
267263
268-func aP (aQ) = {
269- let aR = w((aQ + "_OPEN"))
270- if ((aR == ""))
264+func aN (aO) = {
265+ let aP = u((aO + "_OPEN"))
266+ if ((aP == ""))
271267 then throw("Bid not found")
272268 else {
273- let aS = split(aR, "_")
274- let aT = parseIntValue(aS[1])
275- let aU = aO(aS[0])
276- if ((0 >= aT))
269+ let aQ = split(aP, "_")
270+ let aR = parseIntValue(aQ[1])
271+ let aS = aM(aQ[0])
272+ if ((0 >= aR))
277273 then throw("Wrong amount")
278- else $Tuple2(aT, aU)
274+ else $Tuple2(aR, aS)
279275 }
280276 }
281277
282278
283-func aV (aw) = if (!(l))
284- then throw(m)
285- else $Tuple3(toBase58String(aw.transactionId), toBase58String(aw.caller.bytes), lastBlock.timestamp)
279+func aT (au) = if (!(j))
280+ then throw(k)
281+ else $Tuple3(toBase58String(au.transactionId), toBase58String(au.caller.bytes), lastBlock.timestamp)
286282
287283
288-func aW (aw,aX,aY,P) = if (if (if ((toBase58String(aw.caller.bytes) == aX))
289- then (aY != "")
284+func aU (au,aV,aW,N) = if (if (if ((toBase58String(au.caller.bytes) == aV))
285+ then (aW != "")
290286 else false)
291- then (P != "")
287+ then (N != "")
292288 else false)
293289 then true
294290 else false
295291
296292
297-func aZ (aw,aX,I,ba) = {
298- let bb = (toBase58String(aw.caller.bytes) == aX)
299- let bc = A("total_nft_issued")
300- let bd = w(J(aX, I))
301- if ((bd == ""))
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 == ""))
302298 then throw("Art doesn't exist")
303299 else {
304- let be = C(W(aX, I))
305- let bf = A(T(aX, I))
306- let aI = valueOrElse(A(aa(aX, I)), (ah * 2))
307- let aH = if (bb)
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)
308304 then toBase58String(g)
309- else w(ab(aX, I))
310- let bg = A(M(aX, I))
311- if (if (if (!(ba))
312- then !(bb)
305+ else u(Z(aV, G))
306+ let be = y(K(aV, G))
307+ if (if (if (!(aY))
308+ then !(aZ)
313309 else false)
314- then if (if ((0 >= aI))
310+ then if (if ((0 >= aG))
315311 then true
316- else !(be))
312+ else !(bc))
317313 then true
318- else (0 >= bg)
314+ else (0 >= be)
319315 else false)
320316 then throw("Art not for sale")
321- else if (if (if (!(ba))
322- then bb
317+ else if (if (if (!(aY))
318+ then aZ
323319 else false)
324- then (0 >= bg)
320+ then (0 >= be)
325321 else false)
326322 then throw("Max issuable not set")
327- else $Tuple7(bc, bd, bf, aI, aH, bg, be)
323+ else $Tuple7(ba, bb, bd, aG, aF, be, bc)
328324 }
329325 }
330326
331327
332-func bh (aw,G,aX,I,aY,P,aH,aI,ba) = {
333- let au = an(aX)
334- if (if (ba)
335- then (au != "")
328+func bf (au,E,aV,G,aW,N,aF,aG,aY) = {
329+ let as = al(aV)
330+ if (if (aY)
331+ then (as != "")
336332 else false)
337- then throw(au)
333+ then throw(as)
338334 else {
339- let aQ = ((((((("bid_" + I) + "_") + aX) + "_") + aY) + "_") + P)
340- let bi = if (ba)
341- then aP(aQ)
342- else aG(aw, aH, aI)
343- let ay = bi._1
344- let aB = bi._2
345- $Tuple3(aQ, ay, aB)
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)
346342 }
347343 }
348344
349345
350-func bj (aX,aB,ay,bf,bg) = {
351- let bk = B(aX)
352- let bl = if ((bk > height))
346+func bh (aV,az,aw,bd,be) = {
347+ let bi = z(aV)
348+ let bj = if ((bi > height))
353349 then 0
354- else if ((aB == g))
350+ else if ((az == g))
355351 then i
356352 else throw("Only USDN is accepted!")
357- let bm = fraction(ay, bl, 1000)
358- let bn = (ay - bm)
359- if ((bf == bg))
353+ let bk = fraction(aw, bj, 1000)
354+ let bl = (aw - bk)
355+ if ((bd == be))
360356 then throw("Art sold out")
361357 else {
362- let bo = (bf + 1)
363- $Tuple3(bm, bn, bo)
358+ let bm = (bd + 1)
359+ $Tuple3(bk, bl, bm)
364360 }
365361 }
366362
367363
368-func bp (aX,I,bd,bo,bg,bc,G,aY,P,aw,be) = {
369- let bq = ((((((((("Creator: " + aX) + ",ArtID: ") + I) + ",Artwork name: ") + bd) + ",Issue: ") + toString(bo)) + "/") + toString(bg))
370- let br = if (if ((bo == bg))
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))
371367 then true
372- else !(be))
368+ else !(bc))
373369 then false
374370 else true
375- let bs = if ((aY != ""))
376- then addressFromStringValue(aY)
377- else aw.caller
378- $Tuple3(br, bs, bq)
371+ let bq = if ((aW != ""))
372+ then addressFromStringValue(aW)
373+ else au.caller
374+ $Tuple3(bp, bq, bo)
379375 }
380376
381377
382-func bt (bu) = if ((4 > bu))
378+func br (bs) = if ((4 > bs))
383379 then "SSR"
384- else if ((11 > bu))
380+ else if ((11 > bs))
385381 then "SR"
386- else if ((101 > bu))
382+ else if ((101 > bs))
387383 then "R"
388384 else "N"
389385
390386
391-func bv (aB,aQ,bw) = {
392- let bx = if (!(isDefined(aB)))
387+func bt (az,aO,bu) = {
388+ let bv = if (!(isDefined(az)))
393389 then throw("Only USDN is accepted")
394- else toBase58String(value(aB))
395- let aR = w((aQ + "_OPEN"))
396- let by = DeleteEntry((aQ + "_OPEN"))
397- let bz = StringEntry((aQ + "_CLOSED"), ((aR + "_") + toString(bw)))
398- $Tuple3(bx, by, bz)
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)
399395 }
400396
401397
402-func bA (aw,I,aX,P,aY,ba) = {
403- let bB = aV(aw)
404- let bC = bB._1
405- let G = bB._2
406- let bw = bB._3
407- let bD = aZ(aw, aX, I, ba)
408- let bc = bD._1
409- let bd = bD._2
410- let bf = bD._3
411- let aI = bD._4
412- let aH = bD._5
413- let bg = bD._6
414- let be = bD._7
415- let aR = bh(aw, G, aX, I, aY, P, aH, aI, ba)
416- let aQ = aR._1
417- let ay = aR._2
418- let aB = aR._3
419- let bE = bj(aX, value(aB), ay, bf, bg)
420- let bm = bE._1
421- let bn = bE._2
422- let bo = bE._3
423- let bF = bp(aX, I, bd, bo, bg, bc, G, aY, P, aw, be)
424- let br = bF._1
425- let bs = bF._2
426- let bq = bF._3
427- let bG = invoke(this, "mintNft", [bc, bq, toString(bs)], nil)
428- if ((bG == bG))
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))
429425 then {
430- let bH = {
431- let aE = bG
432- if ($isInstanceOf(aE, "String"))
426+ let bF = {
427+ let aC = bE
428+ if ($isInstanceOf(aC, "String"))
433429 then {
434- let bI = aE
435- bI
430+ let bG = aC
431+ bG
436432 }
437433 else throw("Incorrect invoke result")
438434 }
439- let bJ = bv(aB, aQ, bw)
440- let bx = bJ._1
441- let by = bJ._2
442- let bz = bJ._3
443- let bK = ((((((("art_sold_" + toString(bo)) + "_of_") + toString(bg)) + "_") + I) + "_") + aX)
444- let bL = bt(bo)
445- let bM = if (!(ba))
446- then ((((((((((G + "_") + toString(bw)) + "_") + bC) + "_") + toString(aI)) + "_") + aH) + "_") + bH)
447- else ((((((((((toString(bs) + "_") + toString(bw)) + "_") + bC) + "_") + toString(ay)) + "_") + bx) + "_") + bH)
448- let bN = StringEntry(bK, bM)
449- let bO = [IntegerEntry(T(aX, I), bo), StringEntry(("nft_" + bH), bK), StringEntry(("nft_rarity_" + bH), bL), IntegerEntry("total_nft_issued", (bc + 1)), BooleanEntry(W(aX, I), br), ScriptTransfer(Address(fromBase58String(aX)), bn, aB), ScriptTransfer(Address(fromBase58String(c)), bm, aB), StringEntry(U(bH), aX)]
450- let bP = invoke(addressFromStringValue(d), "createCert", [toString(bs), bH, aX], nil)
451- if ((bP == bP))
452- then if (ba)
453- then (((bO :+ bN) :+ bz) :+ by)
454- else bN :: bO
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
455451 else throw("Strict value is not equal to itself.")
456452 }
457453 else throw("Strict value is not equal to itself.")
458454 }
459455
460456
461-func bQ (aw,I,aX) = {
462- let bR = aV(aw)
463- let bC = bR._1
464- let G = bR._2
465- let bw = bR._3
466- let bS = av(aw)
467- let ax = bS._1
468- let ay = bS._2
469- let aB = if (!(isDefined(ax.assetId)))
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)))
470466 then throw("Only USDN is accepted!")
471- else toBase58String(value(ax.assetId))
472- let bT = A(("current_bidamount_" + I))
473- if (!(aK(aB)))
467+ else toBase58String(value(av.assetId))
468+ let bR = y(("current_bidamount_" + G))
469+ if (!(aI(az)))
474470 then throw("asset not accepted")
475- else if (!(aL(aB, ay)))
471+ else if (!(aJ(az, aw)))
476472 then throw("Wrong min sell")
477473 else {
478- let bf = A(T(aX, I))
479- let bg = A(M(aX, I))
480- if ((0 >= bg))
474+ let bd = y(R(aV, G))
475+ let be = y(K(aV, G))
476+ if ((0 >= be))
481477 then throw("No max edition set for this artwork")
482- else if ((bf >= bg))
478+ else if ((bd >= be))
483479 then throw("Sold out, you cannot bid")
484- else [StringEntry((((((((("bid_" + I) + "_") + aX) + "_") + G) + "_") + bC) + "_OPEN"), ((((aB + "_") + toString(ay)) + "_") + toString(bw))), IntegerEntry(("current_bidamount_" + I), (bT + 1))]
480+ else [StringEntry((((((((("bid_" + G) + "_") + aV) + "_") + E) + "_") + bA) + "_OPEN"), ((((az + "_") + toString(aw)) + "_") + toString(bu))), IntegerEntry(("current_bidamount_" + G), (bR + 1))]
485481 }
486482 }
487483
488484
489-func bU (aw,I,aX) = {
490- let bV = A(R(aX, I))
491- let bW = aj(I)
492- if ((height > bV))
485+func bS (au,G,aV) = {
486+ let bT = y(P(aV, G))
487+ let bU = ah(G)
488+ if ((height > bT))
493489 then throw("This auction is finished already!")
494490 else {
495- let bX = aV(aw)
496- let bC = bX._1
497- let G = bX._2
498- let bw = bX._3
499- let bY = av(aw)
500- let ax = bY._1
501- let ay = bY._2
502- if ((bW >= ay))
503- then throw(("Please place a bid higher than: " + toString(bW)))
491+ let bV = aT(au)
492+ let bA = bV._1
493+ let E = bV._2
494+ let bu = bV._3
495+ let bW = at(au)
496+ let av = bW._1
497+ let aw = bW._2
498+ if ((bU >= aw))
499+ then throw(("Please place a bid higher than: " + toString(bU)))
504500 else {
505- let aB = if (!(isDefined(ax.assetId)))
501+ let az = if (!(isDefined(av.assetId)))
506502 then throw("Only USDN is accepted!")
507- else toBase58String(value(ax.assetId))
508- let bT = A(("current_bidamount_" + I))
509- if (!(aK(aB)))
503+ else toBase58String(value(av.assetId))
504+ let bR = y(("current_bidamount_" + G))
505+ if (!(aI(az)))
510506 then throw("asset not accepted")
511- else if (!(aL(aB, ay)))
507+ else if (!(aJ(az, aw)))
512508 then throw("Wrong min sell")
513509 else {
514- let bf = A(T(aX, I))
515- let bg = A(M(aX, I))
516- if ((0 >= bg))
510+ let bd = y(R(aV, G))
511+ let be = y(K(aV, G))
512+ if ((0 >= be))
517513 then throw("No max edition set for this artwork")
518- else if ((bf >= bg))
514+ else if ((bd >= be))
519515 then throw("Sold out, you cannot bid")
520- else [StringEntry((((((((("bid_" + I) + "_") + aX) + "_") + G) + "_") + bC) + "_OPEN"), ((((aB + "_") + toString(ay)) + "_") + toString(bw))), IntegerEntry(("current_bidamount_" + I), (bT + 1)), StringEntry(N(I), toBase58String(aw.transactionId)), IntegerEntry(O(toBase58String(aw.transactionId)), ay)]
516+ 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)]
521517 }
522518 }
523519 }
524520 }
525521
526522
527-func bZ (aw,I,aX,P,aY) = {
528- let G = toBase58String(aw.caller.bytes)
529- if ((G != aX))
523+func bX (au,G,aV,N,aW) = {
524+ let E = toBase58String(au.caller.bytes)
525+ if ((E != aV))
530526 then throw("You cannot do this action")
531- else bA(aw, I, aX, P, aY, true)
527+ else by(au, G, aV, N, aW, true)
532528 }
533529
534530
535-func ca (I,aX) = {
536- let bf = A(T(aX, I))
537- let bg = A(M(aX, I))
538- let cb = A(R(aX, I))
539- let cc = A(Q(aX, I))
540- let bV = (cc + height)
541- if ((height > cb))
542- then if ((bf == bg))
531+func bY (G,aV) = {
532+ let bd = y(R(aV, G))
533+ let be = y(K(aV, G))
534+ let bZ = y(P(aV, G))
535+ let ca = y(O(aV, G))
536+ let bT = (ca + height)
537+ if ((height > bZ))
538+ then if ((bd == be))
543539 then throw("Can't restart auction, max amount sold")
544- else [IntegerEntry(R(aX, I), bV), DeleteEntry(N(I))]
540+ else [IntegerEntry(P(aV, G), bT), DeleteEntry(L(G))]
545541 else throw("Previous auction isn't completed yet")
546542 }
547543
548544
549-func cd (aw,I,aX,P,aY) = {
550- let bV = A(R(aX, I))
551- let ce = w(N(I))
552- if ((height > bV))
553- then if ((P == ce))
545+func cb (au,G,aV,N,aW) = {
546+ let bT = y(P(aV, G))
547+ let cc = u(L(G))
548+ if ((height > bT))
549+ then if ((N == cc))
554550 then {
555- let cf = bA(aw, I, aX, P, aY, true)
556- let cg = ca(I, aX)
557- (cg ++ cf)
551+ let cd = by(au, G, aV, N, aW, true)
552+ let ce = bY(G, aV)
553+ (ce ++ cd)
558554 }
559555 else throw("This is not the winning bid!")
560556 else throw("This auction is not yet finished!")
561557 }
562558
563559
564-func ch (aw,I,aX,P) = {
565- let ci = aV(aw)
566- let bC = ci._1
567- let G = ci._2
568- let bw = ci._3
569- let bT = A(("current_bidamount_" + I))
570- let aQ = ((((((("bid_" + I) + "_") + aX) + "_") + G) + "_") + P)
571- let aR = x((aQ + "_OPEN"), "Bid not found")
572- let aS = split(aR, "_")
573- let aB = aO(aS[0])
574- let cj = "CANCELED"
575-[DeleteEntry((aQ + "_OPEN")), StringEntry(((aQ + "_") + cj), ((aR + "_") + toString(bw))), IntegerEntry(("current_bidamount_" + I), (bT - 1)), ScriptTransfer(Address(fromBase58String(G)), parseIntValue(aS[1]), aB)]
560+func cf (au,G,aV,N) = {
561+ let cg = aT(au)
562+ let bA = cg._1
563+ let E = cg._2
564+ let bu = cg._3
565+ let bR = y(("current_bidamount_" + G))
566+ let aO = ((((((("bid_" + G) + "_") + aV) + "_") + E) + "_") + N)
567+ let aP = v((aO + "_OPEN"), "Bid not found")
568+ let aQ = split(aP, "_")
569+ let az = aM(aQ[0])
570+ let ch = "CANCELED"
571+[DeleteEntry((aO + "_OPEN")), StringEntry(((aO + "_") + ch), ((aP + "_") + toString(bu))), IntegerEntry(("current_bidamount_" + G), (bR - 1)), ScriptTransfer(Address(fromBase58String(E)), parseIntValue(aQ[1]), az)]
576572 }
577573
578574
579-func ck (aw,I,aX,P) = {
580- let ci = aV(aw)
581- let bC = ci._1
582- let G = ci._2
583- let bw = ci._3
584- let bT = A(("current_bidamount_" + I))
585- let aQ = ((((((("bid_" + I) + "_") + aX) + "_") + G) + "_") + P)
586- let aR = x((aQ + "_OPEN"), "Bid not found")
587- let aS = split(aR, "_")
588- let aB = aO(aS[0])
589- let cj = "CANCELED"
590- let aT = parseIntValue(aS[1])
591- let ce = w(N(I))
592- if ((P == ce))
575+func ci (au,G,aV,N) = {
576+ let cg = aT(au)
577+ let bA = cg._1
578+ let E = cg._2
579+ let bu = cg._3
580+ let bR = y(("current_bidamount_" + G))
581+ let aO = ((((((("bid_" + G) + "_") + aV) + "_") + E) + "_") + N)
582+ let aP = v((aO + "_OPEN"), "Bid not found")
583+ let aQ = split(aP, "_")
584+ let az = aM(aQ[0])
585+ let ch = "CANCELED"
586+ let aR = parseIntValue(aQ[1])
587+ let cc = u(L(G))
588+ if ((N == cc))
593589 then throw("You can't cancel the highest bid!")
594- else [DeleteEntry((aQ + "_OPEN")), StringEntry(((aQ + "_") + cj), ((aR + "_") + toString(bw))), IntegerEntry(("current_bidamount_" + I), (bT - 1)), ScriptTransfer(Address(fromBase58String(G)), aT, aB)]
590+ else [DeleteEntry((aO + "_OPEN")), StringEntry(((aO + "_") + ch), ((aP + "_") + toString(bu))), IntegerEntry(("current_bidamount_" + G), (bR - 1)), ScriptTransfer(Address(fromBase58String(E)), aR, az)]
595591 }
596592
597593
598-@Callable(aw)
599-func mintNft (bc,bq,bs) = if ((aw.caller == this))
594+@Callable(au)
595+func mintNft (ba,bo,bq) = if ((au.caller == this))
600596 then {
601- let cl = Address(fromBase58String(bs))
602- let cm = Issue(("SCONEX_" + toString((bc + 1))), bq, 1, 0, false)
603- let bH = calculateAssetId(cm)
604- $Tuple2([cm, ScriptTransfer(cl, 1, bH)], toBase58String(bH))
597+ let cj = Address(fromBase58String(bq))
598+ let ck = Issue(("SCONEX_" + toString((ba + 1))), bo, 1, 0, false)
599+ let bF = calculateAssetId(ck)
600+ $Tuple2([ck, ScriptTransfer(cj, 1, bF)], toBase58String(bF))
605601 }
606602 else throw("Only the dApp can mint NFT's")
607603
608604
609605
610-@Callable(aw)
611-func addArtwork (af,ar,as,at,cn,aq,co) = {
612- let cp = aV(aw)
613- let I = cp._1
614- let G = cp._2
615- let bw = cp._3
616- let cq = ap(G, aq, ar, as, at)
617- if ((cq != ""))
606+@Callable(au)
607+func addArtwork (ad,ap,aq,ar,cl,ao,cm) = {
608+ let cn = aT(au)
609+ let G = cn._1
610+ let E = cn._2
611+ let bu = cn._3
612+ let co = an(E, ao, ap, aq, ar)
613+ if ((co != ""))
618614 then throw("Something went wrong!")
619615 else {
620- let cr = az(aw)
621- let ay = cr._1
622- let aB = cr._2
623- if (!(isDefined(ay)))
616+ let cp = ax(au)
617+ let aw = cp._1
618+ let az = cp._2
619+ if (!(isDefined(aw)))
624620 then throw("Something went wrong")
625621 else {
626- let cs = w(ag(af, G))
627- if ((cs != ""))
622+ let cq = u(ae(ad, E))
623+ if ((cq != ""))
628624 then throw("You already added it")
629625 else {
630- let ct = w(ae(af))
631- if ((ct != ""))
626+ let cr = u(ac(ad))
627+ if ((cr != ""))
632628 then throw("This hash is already registered")
633- else [StringEntry(ae(af), G), StringEntry(ag(af, G), I), IntegerEntry(H(G, I), bw), StringEntry(J(G, I), ar), StringEntry(K(G, I), as), StringEntry(L(G, I), aq), StringEntry(Z(G, I), cn), StringEntry(Y(G, I), at), IntegerEntry(M(G, I), 0), IntegerEntry(T(G, I), 0), BooleanEntry(W(G, I), false), StringEntry(ac(G, I), af), StringEntry(X(G, I), co), ScriptTransfer(Address(fromBase58String(c)), ay, aB)]
629+ 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), cl), 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), cm), ScriptTransfer(Address(fromBase58String(c)), aw, az)]
634630 }
635631 }
636632 }
638634
639635
640636
641-@Callable(aw)
642-func sellArtwork (I,aM,cu,aB,cv,cc) = {
643- let cw = aV(aw)
644- let bC = cw._1
645- let G = cw._2
646- let bd = w(J(G, I))
647- if (!(containsElement([r, s, t], cv)))
637+@Callable(au)
638+func sellArtwork (G,aK,cs,az,ct,ca) = {
639+ let cu = aT(au)
640+ let bA = cu._1
641+ let E = cu._2
642+ let bb = u(H(E, G))
643+ if (!(containsElement([p, q, r], ct)))
648644 then throw("We don't know this auction type")
649- else if ((bd == ""))
645+ else if ((bb == ""))
650646 then throw("This art doesn't match your account")
651647 else {
652- let bT = A(("current_bidamount_" + I))
653- if (!(aK(aB)))
648+ let bR = y(("current_bidamount_" + G))
649+ if (!(aI(az)))
654650 then throw("Something went wrong!")
655- else if (!(aL(aB, aM)))
651+ else if (!(aJ(az, aK)))
656652 then throw("Something went wrong!")
657653 else {
658- let au = an(G)
659- if ((au != ""))
660- then throw(au)
654+ let as = al(E)
655+ if ((as != ""))
656+ then throw(as)
661657 else {
662- let bf = A(T(G, I))
663- let bg = A(M(G, I))
664- if ((cu > 5000))
658+ let bd = y(R(E, G))
659+ let be = y(K(E, G))
660+ if ((cs > 5000))
665661 then throw("5000 editions max per artwork")
666- else if (if ((bf != 0))
667- then (bf == bg)
662+ else if (if ((bd != 0))
663+ then (bd == be)
668664 else false)
669665 then throw("Max edition reached.")
670- else if (if ((bf > 0))
671- then (bg != cu)
666+ else if (if ((bd > 0))
667+ then (be != cs)
672668 else false)
673669 then throw("Cannot change maximum issuable anymore")
674- else if (if ((bT > 0))
675- then (bg != cu)
670+ else if (if ((bR > 0))
671+ then (be != cs)
676672 else false)
677673 then throw("Cannot change maximum issuable with active orders")
678674 else {
679- let br = if (if ((aM > 0))
680- then (cu > 0)
675+ let bp = if (if ((aK > 0))
676+ then (cs > 0)
681677 else false)
682678 then true
683679 else false
684- let bV = (cc + height)
685-[BooleanEntry(W(G, I), br), IntegerEntry(aa(G, I), aM), IntegerEntry(M(G, I), cu), IntegerEntry(Q(G, I), cc), IntegerEntry(R(G, I), bV), StringEntry(ab(G, I), aB), StringEntry(S(G, I), cv)]
680+ let bT = (ca + height)
681+[BooleanEntry(U(E, G), bp), IntegerEntry(Y(E, G), aK), IntegerEntry(K(E, G), cs), IntegerEntry(O(E, G), ca), IntegerEntry(P(E, G), bT), StringEntry(Z(E, G), az), StringEntry(Q(E, G), ct)]
686682 }
687683 }
688684 }
691687
692688
693689
694-@Callable(aw)
695-func buyArtwork (I,aX) = {
696- let cv = w(S(aX, I))
697- if ((cv == t))
698- then bA(aw, I, aX, "", "", false)
690+@Callable(au)
691+func buyArtwork (G,aV) = {
692+ let ct = u(Q(aV, G))
693+ if ((ct == r))
694+ then by(au, G, aV, "", "", false)
699695 else throw("Direct buy only allowed when no auction type is set!")
700696 }
701697
702698
703699
704-@Callable(aw)
700+@Callable(au)
701+func updateTags (cv,G,ar) = if ((size(split(ar, ",")) > 5))
702+ then throw("5 tags max.")
703+ else {
704+ let cw = v(W(cv, G), "No tags created with this key, so can't update!")
705+ if ((ar == cw))
706+ then throw("Tags are the same as old tags!")
707+ else [StringEntry(W(cv, G), ar)]
708+ }
709+
710+
711+
712+@Callable(au)
705713 func deleteEntry (cx) = {
706- let G = toString(addressFromPublicKey(aw.callerPublicKey))
707- if (containsElement(h, G))
714+ let E = toString(addressFromPublicKey(au.callerPublicKey))
715+ if (containsElement(h, E))
708716 then [DeleteEntry(cx)]
709717 else throw("no")
710718 }
711719
712720
713721
714-@Callable(aw)
715-func setBid (I,aX) = {
716- let cv = w(S(aX, I))
717- if ((cv == r))
718- then bQ(aw, I, aX)
719- else if ((cv == s))
720- then bU(aw, I, aX)
721- else throw((("Unknown auction type :" + cv) + ", please contact the admins"))
722+@Callable(au)
723+func setBid (G,aV) = {
724+ let ct = u(Q(aV, G))
725+ if ((ct == p))
726+ then bO(au, G, aV)
727+ else if ((ct == q))
728+ then bS(au, G, aV)
729+ else throw((("Unknown auction type :" + ct) + ", please contact the admins"))
722730 }
723731
724732
725733
726-@Callable(aw)
727-func acceptBid (I,aX,P,aY) = {
728- let cv = w(S(aX, I))
729- if ((cv == r))
730- then bZ(aw, I, aX, P, aY)
731- else if ((cv == s))
732- then cd(aw, I, aX, P, aY)
733- else throw((("Unknown auction type :" + cv) + ", please contact the admins"))
734+@Callable(au)
735+func acceptBid (G,aV,N,aW) = {
736+ let ct = u(Q(aV, G))
737+ if ((ct == p))
738+ then bX(au, G, aV, N, aW)
739+ else if ((ct == q))
740+ then cb(au, G, aV, N, aW)
741+ else throw((("Unknown auction type :" + ct) + ", please contact the admins"))
734742 }
735743
736744
737745
738-@Callable(aw)
739-func cancelBid (I,aX,P) = {
740- let cv = w(S(aX, I))
741- if ((cv == r))
742- then ch(aw, I, aX, P)
743- else ck(aw, I, aX, P)
746+@Callable(au)
747+func cancelBid (G,aV,N) = {
748+ let ct = u(Q(aV, G))
749+ if ((ct == p))
750+ then cf(au, G, aV, N)
751+ else ci(au, G, aV, N)
744752 }
745753
746754
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
22-let j = 30
22+let j = valueOrElse(getBoolean(e, "conf_dapp_is_running"), true)
2323
24-let k = 70
24+let k = valueOrElse(getString(e, "conf_maintenance_msg"), "")
2525
26-let l = valueOrElse(getBoolean(e, "conf_dapp_is_running"), true)
26+let l = "SUSPENDED"
2727
28-let m = valueOrElse(getString(e, "conf_maintenance_msg"), "")
28+let m = "REMOVED"
2929
30-let n = "SUSPENDED"
30+let n = "UNREGISTERED"
3131
32-let o = "REMOVED"
32+let o = "ALLOWED"
3333
34-let p = "UNREGISTERED"
34+let p = "BIDTYPE"
3535
36-let q = "ALLOWED"
36+let q = "TRADITIONAL"
3737
38-let r = "BIDTYPE"
38+let r = "DIRECT"
3939
40-let s = "TRADITIONAL"
41-
42-let t = "DIRECT"
43-
44-func u (v) = valueOrElse(getString(e, v), "")
40+func s (t) = valueOrElse(getString(e, t), "")
4541
4642
47-func w (v) = valueOrElse(getString(this, v), "")
43+func u (t) = valueOrElse(getString(this, t), "")
4844
4945
50-func x (v,y) = valueOrErrorMessage(getString(this, v), y)
46+func v (t,w) = valueOrErrorMessage(getString(this, t), w)
5147
5248
53-func z (v) = valueOrErrorMessage(getInteger(b, v), "Integer undefine or 0 in oracle")
49+func x (t) = valueOrErrorMessage(getInteger(b, t), "Integer undefine or 0 in oracle")
5450
5551
56-func A (v) = valueOrElse(getInteger(this, v), 0)
52+func y (t) = valueOrElse(getInteger(this, t), 0)
5753
5854
59-func B (v) = valueOrElse(getInteger(f, v), 0)
55+func z (t) = valueOrElse(getInteger(f, t), 0)
6056
6157
62-func C (v) = valueOrElse(getBoolean(this, v), false)
58+func A (t) = valueOrElse(getBoolean(this, t), false)
6359
6460
65-func D (E) = (size(E) == 64)
61+func B (C) = (size(C) == 64)
6662
6763
68-func F (G) = ("user_status_" + G)
64+func D (E) = ("user_status_" + E)
6965
7066
71-func H (G,I) = ((("art_date_" + I) + "_") + G)
67+func F (E,G) = ((("art_date_" + G) + "_") + E)
7268
7369
74-func J (G,I) = ((("art_name_" + I) + "_") + G)
70+func H (E,G) = ((("art_name_" + G) + "_") + E)
7571
7672
77-func K (G,I) = ((("art_desc_" + I) + "_") + G)
73+func I (E,G) = ((("art_desc_" + G) + "_") + E)
7874
7975
80-func L (G,I) = ((("art_display_cid_" + I) + "_") + G)
76+func J (E,G) = ((("art_display_cid_" + G) + "_") + E)
8177
8278
83-func M (G,I) = ((("art_maxmint_" + I) + "_") + G)
79+func K (E,G) = ((("art_maxmint_" + G) + "_") + E)
8480
8581
86-func N (I) = ("art_highestBidBidId_" + I)
82+func L (G) = ("art_highestBidBidId_" + G)
8783
8884
89-func O (P) = ("bid_" + P)
85+func M (N) = ("bid_" + N)
9086
9187
92-func Q (G,I) = ((("art_duration_" + I) + "_") + G)
88+func O (E,G) = ((("art_duration_" + G) + "_") + E)
9389
9490
95-func R (G,I) = ((("art_endheight_" + I) + "_") + G)
91+func P (E,G) = ((("art_endheight_" + G) + "_") + E)
9692
9793
98-func S (G,I) = ((("art_auctiontype_" + I) + "_") + G)
94+func Q (E,G) = ((("art_auctiontype_" + G) + "_") + E)
9995
10096
101-func T (G,I) = ((("art_issued_" + I) + "_") + G)
97+func R (E,G) = ((("art_issued_" + G) + "_") + E)
10298
10399
104-func U (V) = ("nft_issued_" + V)
100+func S (T) = ("nft_issued_" + T)
105101
106102
107-func W (G,I) = ((("art_onsale_" + I) + "_") + G)
103+func U (E,G) = ((("art_onsale_" + G) + "_") + E)
108104
109105
110-func X (G,I) = ((("art_entitlement_" + I) + "_") + G)
106+func V (E,G) = ((("art_entitlement_" + G) + "_") + E)
111107
112108
113-func Y (G,I) = ((("art_tags_" + I) + "_") + G)
109+func W (E,G) = ((("art_tags_" + G) + "_") + E)
114110
115111
116-func Z (G,I) = ((("art_type_" + I) + "_") + G)
112+func X (E,G) = ((("art_type_" + G) + "_") + E)
117113
118114
119-func aa (G,I) = ((("art_price_" + I) + "_") + G)
115+func Y (E,G) = ((("art_price_" + G) + "_") + E)
120116
121117
122-func ab (G,I) = ((("art_assetAccepted_" + I) + "_") + G)
118+func Z (E,G) = ((("art_assetAccepted_" + G) + "_") + E)
123119
124120
125-func ac (G,ad) = ((("get_hashbytxidaddr_" + ad) + "_") + G)
121+func aa (E,ab) = ((("get_hashbytxidaddr_" + ab) + "_") + E)
126122
127123
128-func ae (af) = ("get_owner_by_hash_" + af)
124+func ac (ad) = ("get_owner_by_hash_" + ad)
129125
130126
131-func ag (af,G) = ("get_txid_by_hash_owner_" + toBase58String(sha256_16Kb(toBytes((af + G)))))
127+func ae (ad,E) = ("get_txid_by_hash_owner_" + toBase58String(sha256_16Kb(toBytes((ad + E)))))
132128
133129
134-let ah = z(("certification_fee_" + toBase58String(g)))
130+let af = x(("certification_fee_" + toBase58String(g)))
135131
136-func ai (P) = valueOrElse(A(O(P)), 0)
132+func ag (N) = valueOrElse(y(M(N)), 0)
137133
138134
139-func aj (I) = {
140- let P = w(N(I))
141- if ((P == ""))
135+func ah (G) = {
136+ let N = u(L(G))
137+ if ((N == ""))
142138 then 0
143- else ai(P)
139+ else ag(N)
144140 }
145141
146142
147-func ak (al,am) = if ((size(al) == 0))
143+func ai (aj,ak) = if ((size(aj) == 0))
148144 then throw("Field cannot be is empty")
149- else if ((size(al) > am))
150- then throw((al + " is too long"))
145+ else if ((size(aj) > ak))
146+ then throw((aj + " is too long"))
151147 else true
152148
153149
154-func an (G) = {
155- let ao = valueOrElse(getString(e, F(G)), p)
156- if (if ((ao == p))
150+func al (E) = {
151+ let am = valueOrElse(getString(e, D(E)), n)
152+ if (if ((am == n))
157153 then true
158- else (ao == q))
154+ else (am == o))
159155 then "Register this account first with 'Account' tab"
160- else if ((ao == n))
156+ else if ((am == l))
161157 then "Account suspended"
162- else if ((ao == o))
158+ else if ((am == m))
163159 then "Account removed"
164160 else ""
165161 }
166162
167163
168-func ap (G,aq,ar,as,at) = {
169- let au = an(G)
170- if ((au != ""))
171- then throw(au)
172- else if ((size(aq) == 0))
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))
173169 then throw("Display CID cannot be empty")
174- else if ((size(aq) != 46))
170+ else if ((size(ao) != 46))
175171 then throw("This doesn't seem a valid CID!")
176- else if (!(ak(ar, 100)))
172+ else if (!(ai(ap, 100)))
177173 then throw("100 Char. max name")
178- else if (!(ak(as, 1000)))
174+ else if (!(ai(aq, 1000)))
179175 then throw("1000 Char. max description")
180- else if ((size(split(at, ",")) > 5))
176+ else if ((size(split(ar, ",")) > 5))
181177 then throw("5 tags max.")
182178 else ""
183179 }
184180
185181
186-func av (aw) = if ((size(aw.payments) == 0))
182+func at (au) = if ((size(au.payments) == 0))
187183 then throw("No payment attached")
188184 else {
189- let ax = value(aw.payments[0])
190- let ay = value(ax.amount)
191- $Tuple2(ax, ay)
185+ let av = value(au.payments[0])
186+ let aw = value(av.amount)
187+ $Tuple2(av, aw)
192188 }
193189
194190
195-func az (aw) = {
196- let aA = av(aw)
197- let ax = aA._1
198- let ay = aA._2
199- let aB = if (if (isDefined(ax.assetId))
200- then (ax.assetId == g)
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)
201197 else false)
202- then ax.assetId
198+ then av.assetId
203199 else throw("Only USDN token accepted as transaction fee")
204- if ((ay != ah))
205- then throw(((("Payment amount should be " + toString(ah)) + " but is: ") + toString(ay)))
206- else $Tuple2(ay, aB)
200+ if ((aw != af))
201+ then throw(((("Payment amount should be " + toString(af)) + " but is: ") + toString(aw)))
202+ else $Tuple2(aw, az)
207203 }
208204
209205
210-func aC (aD,I) = {
211- let aE = getInteger(this, T(aD, I))
212- if ($isInstanceOf(aE, "Int"))
206+func aA (aB,G) = {
207+ let aC = getInteger(this, R(aB, G))
208+ if ($isInstanceOf(aC, "Int"))
213209 then {
214- let aF = aE
215- if ((aF != 0))
210+ let aD = aC
211+ if ((aD != 0))
216212 then true
217213 else false
218214 }
219215 else false
220216 }
221217
222218
223-func aG (aw,aH,aI) = {
224- let aJ = av(aw)
225- let ax = aJ._1
226- let ay = aJ._2
227- let aB = if (!(isDefined(ax.assetId)))
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)))
228224 then throw("Wrong asset id")
229- else if (if ((size(aH) > 0))
230- then (toBase58String(value(ax.assetId)) == aH)
225+ else if (if ((size(aF) > 0))
226+ then (toBase58String(value(av.assetId)) == aF)
231227 else false)
232- then ax.assetId
228+ then av.assetId
233229 else throw("Wrong asset id")
234- if (if ((aB == unit))
235- then (aH != "")
230+ if (if ((az == unit))
231+ then (aF != "")
236232 else false)
237233 then throw("Wrong asset id")
238- else if ((aI != ay))
239- then throw(((("Payment don't match " + toString(aI)) + " ") + toString(ay)))
240- else $Tuple2(ay, aB)
234+ else if ((aG != aw))
235+ then throw(((("Payment don't match " + toString(aG)) + " ") + toString(aw)))
236+ else $Tuple2(aw, az)
241237 }
242238
243239
244-func aK (aB) = if ((aB != toBase58String(g)))
240+func aI (az) = if ((az != toBase58String(g)))
245241 then throw("Only USDN accepted")
246242 else true
247243
248244
249-func aL (aB,aM) = {
250- let aN = if (a)
245+func aJ (az,aK) = {
246+ let aL = if (a)
251247 then 1
252- else (ah * 2)
253- if (if (if ((aB == toBase58String(g)))
254- then (aN > aM)
248+ else (af * 2)
249+ if (if (if ((az == toBase58String(g)))
250+ then (aL > aK)
255251 else false)
256- then (aM != 0)
252+ then (aK != 0)
257253 else false)
258- then throw(("Wrong minimum sell price " + toString(aN)))
254+ then throw(("Wrong minimum sell price " + toString(aL)))
259255 else true
260256 }
261257
262258
263-func aO (aB) = if ((aB == "WAVES"))
259+func aM (az) = if ((az == "WAVES"))
264260 then throw("Only USDN is accepted!")
265- else fromBase58String(aB)
261+ else fromBase58String(az)
266262
267263
268-func aP (aQ) = {
269- let aR = w((aQ + "_OPEN"))
270- if ((aR == ""))
264+func aN (aO) = {
265+ let aP = u((aO + "_OPEN"))
266+ if ((aP == ""))
271267 then throw("Bid not found")
272268 else {
273- let aS = split(aR, "_")
274- let aT = parseIntValue(aS[1])
275- let aU = aO(aS[0])
276- if ((0 >= aT))
269+ let aQ = split(aP, "_")
270+ let aR = parseIntValue(aQ[1])
271+ let aS = aM(aQ[0])
272+ if ((0 >= aR))
277273 then throw("Wrong amount")
278- else $Tuple2(aT, aU)
274+ else $Tuple2(aR, aS)
279275 }
280276 }
281277
282278
283-func aV (aw) = if (!(l))
284- then throw(m)
285- else $Tuple3(toBase58String(aw.transactionId), toBase58String(aw.caller.bytes), lastBlock.timestamp)
279+func aT (au) = if (!(j))
280+ then throw(k)
281+ else $Tuple3(toBase58String(au.transactionId), toBase58String(au.caller.bytes), lastBlock.timestamp)
286282
287283
288-func aW (aw,aX,aY,P) = if (if (if ((toBase58String(aw.caller.bytes) == aX))
289- then (aY != "")
284+func aU (au,aV,aW,N) = if (if (if ((toBase58String(au.caller.bytes) == aV))
285+ then (aW != "")
290286 else false)
291- then (P != "")
287+ then (N != "")
292288 else false)
293289 then true
294290 else false
295291
296292
297-func aZ (aw,aX,I,ba) = {
298- let bb = (toBase58String(aw.caller.bytes) == aX)
299- let bc = A("total_nft_issued")
300- let bd = w(J(aX, I))
301- if ((bd == ""))
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 == ""))
302298 then throw("Art doesn't exist")
303299 else {
304- let be = C(W(aX, I))
305- let bf = A(T(aX, I))
306- let aI = valueOrElse(A(aa(aX, I)), (ah * 2))
307- let aH = if (bb)
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)
308304 then toBase58String(g)
309- else w(ab(aX, I))
310- let bg = A(M(aX, I))
311- if (if (if (!(ba))
312- then !(bb)
305+ else u(Z(aV, G))
306+ let be = y(K(aV, G))
307+ if (if (if (!(aY))
308+ then !(aZ)
313309 else false)
314- then if (if ((0 >= aI))
310+ then if (if ((0 >= aG))
315311 then true
316- else !(be))
312+ else !(bc))
317313 then true
318- else (0 >= bg)
314+ else (0 >= be)
319315 else false)
320316 then throw("Art not for sale")
321- else if (if (if (!(ba))
322- then bb
317+ else if (if (if (!(aY))
318+ then aZ
323319 else false)
324- then (0 >= bg)
320+ then (0 >= be)
325321 else false)
326322 then throw("Max issuable not set")
327- else $Tuple7(bc, bd, bf, aI, aH, bg, be)
323+ else $Tuple7(ba, bb, bd, aG, aF, be, bc)
328324 }
329325 }
330326
331327
332-func bh (aw,G,aX,I,aY,P,aH,aI,ba) = {
333- let au = an(aX)
334- if (if (ba)
335- then (au != "")
328+func bf (au,E,aV,G,aW,N,aF,aG,aY) = {
329+ let as = al(aV)
330+ if (if (aY)
331+ then (as != "")
336332 else false)
337- then throw(au)
333+ then throw(as)
338334 else {
339- let aQ = ((((((("bid_" + I) + "_") + aX) + "_") + aY) + "_") + P)
340- let bi = if (ba)
341- then aP(aQ)
342- else aG(aw, aH, aI)
343- let ay = bi._1
344- let aB = bi._2
345- $Tuple3(aQ, ay, aB)
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)
346342 }
347343 }
348344
349345
350-func bj (aX,aB,ay,bf,bg) = {
351- let bk = B(aX)
352- let bl = if ((bk > height))
346+func bh (aV,az,aw,bd,be) = {
347+ let bi = z(aV)
348+ let bj = if ((bi > height))
353349 then 0
354- else if ((aB == g))
350+ else if ((az == g))
355351 then i
356352 else throw("Only USDN is accepted!")
357- let bm = fraction(ay, bl, 1000)
358- let bn = (ay - bm)
359- if ((bf == bg))
353+ let bk = fraction(aw, bj, 1000)
354+ let bl = (aw - bk)
355+ if ((bd == be))
360356 then throw("Art sold out")
361357 else {
362- let bo = (bf + 1)
363- $Tuple3(bm, bn, bo)
358+ let bm = (bd + 1)
359+ $Tuple3(bk, bl, bm)
364360 }
365361 }
366362
367363
368-func bp (aX,I,bd,bo,bg,bc,G,aY,P,aw,be) = {
369- let bq = ((((((((("Creator: " + aX) + ",ArtID: ") + I) + ",Artwork name: ") + bd) + ",Issue: ") + toString(bo)) + "/") + toString(bg))
370- let br = if (if ((bo == bg))
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))
371367 then true
372- else !(be))
368+ else !(bc))
373369 then false
374370 else true
375- let bs = if ((aY != ""))
376- then addressFromStringValue(aY)
377- else aw.caller
378- $Tuple3(br, bs, bq)
371+ let bq = if ((aW != ""))
372+ then addressFromStringValue(aW)
373+ else au.caller
374+ $Tuple3(bp, bq, bo)
379375 }
380376
381377
382-func bt (bu) = if ((4 > bu))
378+func br (bs) = if ((4 > bs))
383379 then "SSR"
384- else if ((11 > bu))
380+ else if ((11 > bs))
385381 then "SR"
386- else if ((101 > bu))
382+ else if ((101 > bs))
387383 then "R"
388384 else "N"
389385
390386
391-func bv (aB,aQ,bw) = {
392- let bx = if (!(isDefined(aB)))
387+func bt (az,aO,bu) = {
388+ let bv = if (!(isDefined(az)))
393389 then throw("Only USDN is accepted")
394- else toBase58String(value(aB))
395- let aR = w((aQ + "_OPEN"))
396- let by = DeleteEntry((aQ + "_OPEN"))
397- let bz = StringEntry((aQ + "_CLOSED"), ((aR + "_") + toString(bw)))
398- $Tuple3(bx, by, bz)
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)
399395 }
400396
401397
402-func bA (aw,I,aX,P,aY,ba) = {
403- let bB = aV(aw)
404- let bC = bB._1
405- let G = bB._2
406- let bw = bB._3
407- let bD = aZ(aw, aX, I, ba)
408- let bc = bD._1
409- let bd = bD._2
410- let bf = bD._3
411- let aI = bD._4
412- let aH = bD._5
413- let bg = bD._6
414- let be = bD._7
415- let aR = bh(aw, G, aX, I, aY, P, aH, aI, ba)
416- let aQ = aR._1
417- let ay = aR._2
418- let aB = aR._3
419- let bE = bj(aX, value(aB), ay, bf, bg)
420- let bm = bE._1
421- let bn = bE._2
422- let bo = bE._3
423- let bF = bp(aX, I, bd, bo, bg, bc, G, aY, P, aw, be)
424- let br = bF._1
425- let bs = bF._2
426- let bq = bF._3
427- let bG = invoke(this, "mintNft", [bc, bq, toString(bs)], nil)
428- if ((bG == bG))
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))
429425 then {
430- let bH = {
431- let aE = bG
432- if ($isInstanceOf(aE, "String"))
426+ let bF = {
427+ let aC = bE
428+ if ($isInstanceOf(aC, "String"))
433429 then {
434- let bI = aE
435- bI
430+ let bG = aC
431+ bG
436432 }
437433 else throw("Incorrect invoke result")
438434 }
439- let bJ = bv(aB, aQ, bw)
440- let bx = bJ._1
441- let by = bJ._2
442- let bz = bJ._3
443- let bK = ((((((("art_sold_" + toString(bo)) + "_of_") + toString(bg)) + "_") + I) + "_") + aX)
444- let bL = bt(bo)
445- let bM = if (!(ba))
446- then ((((((((((G + "_") + toString(bw)) + "_") + bC) + "_") + toString(aI)) + "_") + aH) + "_") + bH)
447- else ((((((((((toString(bs) + "_") + toString(bw)) + "_") + bC) + "_") + toString(ay)) + "_") + bx) + "_") + bH)
448- let bN = StringEntry(bK, bM)
449- let bO = [IntegerEntry(T(aX, I), bo), StringEntry(("nft_" + bH), bK), StringEntry(("nft_rarity_" + bH), bL), IntegerEntry("total_nft_issued", (bc + 1)), BooleanEntry(W(aX, I), br), ScriptTransfer(Address(fromBase58String(aX)), bn, aB), ScriptTransfer(Address(fromBase58String(c)), bm, aB), StringEntry(U(bH), aX)]
450- let bP = invoke(addressFromStringValue(d), "createCert", [toString(bs), bH, aX], nil)
451- if ((bP == bP))
452- then if (ba)
453- then (((bO :+ bN) :+ bz) :+ by)
454- else bN :: bO
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
455451 else throw("Strict value is not equal to itself.")
456452 }
457453 else throw("Strict value is not equal to itself.")
458454 }
459455
460456
461-func bQ (aw,I,aX) = {
462- let bR = aV(aw)
463- let bC = bR._1
464- let G = bR._2
465- let bw = bR._3
466- let bS = av(aw)
467- let ax = bS._1
468- let ay = bS._2
469- let aB = if (!(isDefined(ax.assetId)))
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)))
470466 then throw("Only USDN is accepted!")
471- else toBase58String(value(ax.assetId))
472- let bT = A(("current_bidamount_" + I))
473- if (!(aK(aB)))
467+ else toBase58String(value(av.assetId))
468+ let bR = y(("current_bidamount_" + G))
469+ if (!(aI(az)))
474470 then throw("asset not accepted")
475- else if (!(aL(aB, ay)))
471+ else if (!(aJ(az, aw)))
476472 then throw("Wrong min sell")
477473 else {
478- let bf = A(T(aX, I))
479- let bg = A(M(aX, I))
480- if ((0 >= bg))
474+ let bd = y(R(aV, G))
475+ let be = y(K(aV, G))
476+ if ((0 >= be))
481477 then throw("No max edition set for this artwork")
482- else if ((bf >= bg))
478+ else if ((bd >= be))
483479 then throw("Sold out, you cannot bid")
484- else [StringEntry((((((((("bid_" + I) + "_") + aX) + "_") + G) + "_") + bC) + "_OPEN"), ((((aB + "_") + toString(ay)) + "_") + toString(bw))), IntegerEntry(("current_bidamount_" + I), (bT + 1))]
480+ else [StringEntry((((((((("bid_" + G) + "_") + aV) + "_") + E) + "_") + bA) + "_OPEN"), ((((az + "_") + toString(aw)) + "_") + toString(bu))), IntegerEntry(("current_bidamount_" + G), (bR + 1))]
485481 }
486482 }
487483
488484
489-func bU (aw,I,aX) = {
490- let bV = A(R(aX, I))
491- let bW = aj(I)
492- if ((height > bV))
485+func bS (au,G,aV) = {
486+ let bT = y(P(aV, G))
487+ let bU = ah(G)
488+ if ((height > bT))
493489 then throw("This auction is finished already!")
494490 else {
495- let bX = aV(aw)
496- let bC = bX._1
497- let G = bX._2
498- let bw = bX._3
499- let bY = av(aw)
500- let ax = bY._1
501- let ay = bY._2
502- if ((bW >= ay))
503- then throw(("Please place a bid higher than: " + toString(bW)))
491+ let bV = aT(au)
492+ let bA = bV._1
493+ let E = bV._2
494+ let bu = bV._3
495+ let bW = at(au)
496+ let av = bW._1
497+ let aw = bW._2
498+ if ((bU >= aw))
499+ then throw(("Please place a bid higher than: " + toString(bU)))
504500 else {
505- let aB = if (!(isDefined(ax.assetId)))
501+ let az = if (!(isDefined(av.assetId)))
506502 then throw("Only USDN is accepted!")
507- else toBase58String(value(ax.assetId))
508- let bT = A(("current_bidamount_" + I))
509- if (!(aK(aB)))
503+ else toBase58String(value(av.assetId))
504+ let bR = y(("current_bidamount_" + G))
505+ if (!(aI(az)))
510506 then throw("asset not accepted")
511- else if (!(aL(aB, ay)))
507+ else if (!(aJ(az, aw)))
512508 then throw("Wrong min sell")
513509 else {
514- let bf = A(T(aX, I))
515- let bg = A(M(aX, I))
516- if ((0 >= bg))
510+ let bd = y(R(aV, G))
511+ let be = y(K(aV, G))
512+ if ((0 >= be))
517513 then throw("No max edition set for this artwork")
518- else if ((bf >= bg))
514+ else if ((bd >= be))
519515 then throw("Sold out, you cannot bid")
520- else [StringEntry((((((((("bid_" + I) + "_") + aX) + "_") + G) + "_") + bC) + "_OPEN"), ((((aB + "_") + toString(ay)) + "_") + toString(bw))), IntegerEntry(("current_bidamount_" + I), (bT + 1)), StringEntry(N(I), toBase58String(aw.transactionId)), IntegerEntry(O(toBase58String(aw.transactionId)), ay)]
516+ 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)]
521517 }
522518 }
523519 }
524520 }
525521
526522
527-func bZ (aw,I,aX,P,aY) = {
528- let G = toBase58String(aw.caller.bytes)
529- if ((G != aX))
523+func bX (au,G,aV,N,aW) = {
524+ let E = toBase58String(au.caller.bytes)
525+ if ((E != aV))
530526 then throw("You cannot do this action")
531- else bA(aw, I, aX, P, aY, true)
527+ else by(au, G, aV, N, aW, true)
532528 }
533529
534530
535-func ca (I,aX) = {
536- let bf = A(T(aX, I))
537- let bg = A(M(aX, I))
538- let cb = A(R(aX, I))
539- let cc = A(Q(aX, I))
540- let bV = (cc + height)
541- if ((height > cb))
542- then if ((bf == bg))
531+func bY (G,aV) = {
532+ let bd = y(R(aV, G))
533+ let be = y(K(aV, G))
534+ let bZ = y(P(aV, G))
535+ let ca = y(O(aV, G))
536+ let bT = (ca + height)
537+ if ((height > bZ))
538+ then if ((bd == be))
543539 then throw("Can't restart auction, max amount sold")
544- else [IntegerEntry(R(aX, I), bV), DeleteEntry(N(I))]
540+ else [IntegerEntry(P(aV, G), bT), DeleteEntry(L(G))]
545541 else throw("Previous auction isn't completed yet")
546542 }
547543
548544
549-func cd (aw,I,aX,P,aY) = {
550- let bV = A(R(aX, I))
551- let ce = w(N(I))
552- if ((height > bV))
553- then if ((P == ce))
545+func cb (au,G,aV,N,aW) = {
546+ let bT = y(P(aV, G))
547+ let cc = u(L(G))
548+ if ((height > bT))
549+ then if ((N == cc))
554550 then {
555- let cf = bA(aw, I, aX, P, aY, true)
556- let cg = ca(I, aX)
557- (cg ++ cf)
551+ let cd = by(au, G, aV, N, aW, true)
552+ let ce = bY(G, aV)
553+ (ce ++ cd)
558554 }
559555 else throw("This is not the winning bid!")
560556 else throw("This auction is not yet finished!")
561557 }
562558
563559
564-func ch (aw,I,aX,P) = {
565- let ci = aV(aw)
566- let bC = ci._1
567- let G = ci._2
568- let bw = ci._3
569- let bT = A(("current_bidamount_" + I))
570- let aQ = ((((((("bid_" + I) + "_") + aX) + "_") + G) + "_") + P)
571- let aR = x((aQ + "_OPEN"), "Bid not found")
572- let aS = split(aR, "_")
573- let aB = aO(aS[0])
574- let cj = "CANCELED"
575-[DeleteEntry((aQ + "_OPEN")), StringEntry(((aQ + "_") + cj), ((aR + "_") + toString(bw))), IntegerEntry(("current_bidamount_" + I), (bT - 1)), ScriptTransfer(Address(fromBase58String(G)), parseIntValue(aS[1]), aB)]
560+func cf (au,G,aV,N) = {
561+ let cg = aT(au)
562+ let bA = cg._1
563+ let E = cg._2
564+ let bu = cg._3
565+ let bR = y(("current_bidamount_" + G))
566+ let aO = ((((((("bid_" + G) + "_") + aV) + "_") + E) + "_") + N)
567+ let aP = v((aO + "_OPEN"), "Bid not found")
568+ let aQ = split(aP, "_")
569+ let az = aM(aQ[0])
570+ let ch = "CANCELED"
571+[DeleteEntry((aO + "_OPEN")), StringEntry(((aO + "_") + ch), ((aP + "_") + toString(bu))), IntegerEntry(("current_bidamount_" + G), (bR - 1)), ScriptTransfer(Address(fromBase58String(E)), parseIntValue(aQ[1]), az)]
576572 }
577573
578574
579-func ck (aw,I,aX,P) = {
580- let ci = aV(aw)
581- let bC = ci._1
582- let G = ci._2
583- let bw = ci._3
584- let bT = A(("current_bidamount_" + I))
585- let aQ = ((((((("bid_" + I) + "_") + aX) + "_") + G) + "_") + P)
586- let aR = x((aQ + "_OPEN"), "Bid not found")
587- let aS = split(aR, "_")
588- let aB = aO(aS[0])
589- let cj = "CANCELED"
590- let aT = parseIntValue(aS[1])
591- let ce = w(N(I))
592- if ((P == ce))
575+func ci (au,G,aV,N) = {
576+ let cg = aT(au)
577+ let bA = cg._1
578+ let E = cg._2
579+ let bu = cg._3
580+ let bR = y(("current_bidamount_" + G))
581+ let aO = ((((((("bid_" + G) + "_") + aV) + "_") + E) + "_") + N)
582+ let aP = v((aO + "_OPEN"), "Bid not found")
583+ let aQ = split(aP, "_")
584+ let az = aM(aQ[0])
585+ let ch = "CANCELED"
586+ let aR = parseIntValue(aQ[1])
587+ let cc = u(L(G))
588+ if ((N == cc))
593589 then throw("You can't cancel the highest bid!")
594- else [DeleteEntry((aQ + "_OPEN")), StringEntry(((aQ + "_") + cj), ((aR + "_") + toString(bw))), IntegerEntry(("current_bidamount_" + I), (bT - 1)), ScriptTransfer(Address(fromBase58String(G)), aT, aB)]
590+ else [DeleteEntry((aO + "_OPEN")), StringEntry(((aO + "_") + ch), ((aP + "_") + toString(bu))), IntegerEntry(("current_bidamount_" + G), (bR - 1)), ScriptTransfer(Address(fromBase58String(E)), aR, az)]
595591 }
596592
597593
598-@Callable(aw)
599-func mintNft (bc,bq,bs) = if ((aw.caller == this))
594+@Callable(au)
595+func mintNft (ba,bo,bq) = if ((au.caller == this))
600596 then {
601- let cl = Address(fromBase58String(bs))
602- let cm = Issue(("SCONEX_" + toString((bc + 1))), bq, 1, 0, false)
603- let bH = calculateAssetId(cm)
604- $Tuple2([cm, ScriptTransfer(cl, 1, bH)], toBase58String(bH))
597+ let cj = Address(fromBase58String(bq))
598+ let ck = Issue(("SCONEX_" + toString((ba + 1))), bo, 1, 0, false)
599+ let bF = calculateAssetId(ck)
600+ $Tuple2([ck, ScriptTransfer(cj, 1, bF)], toBase58String(bF))
605601 }
606602 else throw("Only the dApp can mint NFT's")
607603
608604
609605
610-@Callable(aw)
611-func addArtwork (af,ar,as,at,cn,aq,co) = {
612- let cp = aV(aw)
613- let I = cp._1
614- let G = cp._2
615- let bw = cp._3
616- let cq = ap(G, aq, ar, as, at)
617- if ((cq != ""))
606+@Callable(au)
607+func addArtwork (ad,ap,aq,ar,cl,ao,cm) = {
608+ let cn = aT(au)
609+ let G = cn._1
610+ let E = cn._2
611+ let bu = cn._3
612+ let co = an(E, ao, ap, aq, ar)
613+ if ((co != ""))
618614 then throw("Something went wrong!")
619615 else {
620- let cr = az(aw)
621- let ay = cr._1
622- let aB = cr._2
623- if (!(isDefined(ay)))
616+ let cp = ax(au)
617+ let aw = cp._1
618+ let az = cp._2
619+ if (!(isDefined(aw)))
624620 then throw("Something went wrong")
625621 else {
626- let cs = w(ag(af, G))
627- if ((cs != ""))
622+ let cq = u(ae(ad, E))
623+ if ((cq != ""))
628624 then throw("You already added it")
629625 else {
630- let ct = w(ae(af))
631- if ((ct != ""))
626+ let cr = u(ac(ad))
627+ if ((cr != ""))
632628 then throw("This hash is already registered")
633- else [StringEntry(ae(af), G), StringEntry(ag(af, G), I), IntegerEntry(H(G, I), bw), StringEntry(J(G, I), ar), StringEntry(K(G, I), as), StringEntry(L(G, I), aq), StringEntry(Z(G, I), cn), StringEntry(Y(G, I), at), IntegerEntry(M(G, I), 0), IntegerEntry(T(G, I), 0), BooleanEntry(W(G, I), false), StringEntry(ac(G, I), af), StringEntry(X(G, I), co), ScriptTransfer(Address(fromBase58String(c)), ay, aB)]
629+ 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), cl), 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), cm), ScriptTransfer(Address(fromBase58String(c)), aw, az)]
634630 }
635631 }
636632 }
637633 }
638634
639635
640636
641-@Callable(aw)
642-func sellArtwork (I,aM,cu,aB,cv,cc) = {
643- let cw = aV(aw)
644- let bC = cw._1
645- let G = cw._2
646- let bd = w(J(G, I))
647- if (!(containsElement([r, s, t], cv)))
637+@Callable(au)
638+func sellArtwork (G,aK,cs,az,ct,ca) = {
639+ let cu = aT(au)
640+ let bA = cu._1
641+ let E = cu._2
642+ let bb = u(H(E, G))
643+ if (!(containsElement([p, q, r], ct)))
648644 then throw("We don't know this auction type")
649- else if ((bd == ""))
645+ else if ((bb == ""))
650646 then throw("This art doesn't match your account")
651647 else {
652- let bT = A(("current_bidamount_" + I))
653- if (!(aK(aB)))
648+ let bR = y(("current_bidamount_" + G))
649+ if (!(aI(az)))
654650 then throw("Something went wrong!")
655- else if (!(aL(aB, aM)))
651+ else if (!(aJ(az, aK)))
656652 then throw("Something went wrong!")
657653 else {
658- let au = an(G)
659- if ((au != ""))
660- then throw(au)
654+ let as = al(E)
655+ if ((as != ""))
656+ then throw(as)
661657 else {
662- let bf = A(T(G, I))
663- let bg = A(M(G, I))
664- if ((cu > 5000))
658+ let bd = y(R(E, G))
659+ let be = y(K(E, G))
660+ if ((cs > 5000))
665661 then throw("5000 editions max per artwork")
666- else if (if ((bf != 0))
667- then (bf == bg)
662+ else if (if ((bd != 0))
663+ then (bd == be)
668664 else false)
669665 then throw("Max edition reached.")
670- else if (if ((bf > 0))
671- then (bg != cu)
666+ else if (if ((bd > 0))
667+ then (be != cs)
672668 else false)
673669 then throw("Cannot change maximum issuable anymore")
674- else if (if ((bT > 0))
675- then (bg != cu)
670+ else if (if ((bR > 0))
671+ then (be != cs)
676672 else false)
677673 then throw("Cannot change maximum issuable with active orders")
678674 else {
679- let br = if (if ((aM > 0))
680- then (cu > 0)
675+ let bp = if (if ((aK > 0))
676+ then (cs > 0)
681677 else false)
682678 then true
683679 else false
684- let bV = (cc + height)
685-[BooleanEntry(W(G, I), br), IntegerEntry(aa(G, I), aM), IntegerEntry(M(G, I), cu), IntegerEntry(Q(G, I), cc), IntegerEntry(R(G, I), bV), StringEntry(ab(G, I), aB), StringEntry(S(G, I), cv)]
680+ let bT = (ca + height)
681+[BooleanEntry(U(E, G), bp), IntegerEntry(Y(E, G), aK), IntegerEntry(K(E, G), cs), IntegerEntry(O(E, G), ca), IntegerEntry(P(E, G), bT), StringEntry(Z(E, G), az), StringEntry(Q(E, G), ct)]
686682 }
687683 }
688684 }
689685 }
690686 }
691687
692688
693689
694-@Callable(aw)
695-func buyArtwork (I,aX) = {
696- let cv = w(S(aX, I))
697- if ((cv == t))
698- then bA(aw, I, aX, "", "", false)
690+@Callable(au)
691+func buyArtwork (G,aV) = {
692+ let ct = u(Q(aV, G))
693+ if ((ct == r))
694+ then by(au, G, aV, "", "", false)
699695 else throw("Direct buy only allowed when no auction type is set!")
700696 }
701697
702698
703699
704-@Callable(aw)
700+@Callable(au)
701+func updateTags (cv,G,ar) = if ((size(split(ar, ",")) > 5))
702+ then throw("5 tags max.")
703+ else {
704+ let cw = v(W(cv, G), "No tags created with this key, so can't update!")
705+ if ((ar == cw))
706+ then throw("Tags are the same as old tags!")
707+ else [StringEntry(W(cv, G), ar)]
708+ }
709+
710+
711+
712+@Callable(au)
705713 func deleteEntry (cx) = {
706- let G = toString(addressFromPublicKey(aw.callerPublicKey))
707- if (containsElement(h, G))
714+ let E = toString(addressFromPublicKey(au.callerPublicKey))
715+ if (containsElement(h, E))
708716 then [DeleteEntry(cx)]
709717 else throw("no")
710718 }
711719
712720
713721
714-@Callable(aw)
715-func setBid (I,aX) = {
716- let cv = w(S(aX, I))
717- if ((cv == r))
718- then bQ(aw, I, aX)
719- else if ((cv == s))
720- then bU(aw, I, aX)
721- else throw((("Unknown auction type :" + cv) + ", please contact the admins"))
722+@Callable(au)
723+func setBid (G,aV) = {
724+ let ct = u(Q(aV, G))
725+ if ((ct == p))
726+ then bO(au, G, aV)
727+ else if ((ct == q))
728+ then bS(au, G, aV)
729+ else throw((("Unknown auction type :" + ct) + ", please contact the admins"))
722730 }
723731
724732
725733
726-@Callable(aw)
727-func acceptBid (I,aX,P,aY) = {
728- let cv = w(S(aX, I))
729- if ((cv == r))
730- then bZ(aw, I, aX, P, aY)
731- else if ((cv == s))
732- then cd(aw, I, aX, P, aY)
733- else throw((("Unknown auction type :" + cv) + ", please contact the admins"))
734+@Callable(au)
735+func acceptBid (G,aV,N,aW) = {
736+ let ct = u(Q(aV, G))
737+ if ((ct == p))
738+ then bX(au, G, aV, N, aW)
739+ else if ((ct == q))
740+ then cb(au, G, aV, N, aW)
741+ else throw((("Unknown auction type :" + ct) + ", please contact the admins"))
734742 }
735743
736744
737745
738-@Callable(aw)
739-func cancelBid (I,aX,P) = {
740- let cv = w(S(aX, I))
741- if ((cv == r))
742- then ch(aw, I, aX, P)
743- else ck(aw, I, aX, P)
746+@Callable(au)
747+func cancelBid (G,aV,N) = {
748+ let ct = u(Q(aV, G))
749+ if ((ct == p))
750+ then cf(au, G, aV, N)
751+ else ci(au, G, aV, N)
744752 }
745753
746754

github/deemru/w8io/873ac7e 
323.16 ms