tx · 2mFEyMVbvC1WJvi4f5V7USxJcULDZZAK6DjDFFtacPUY

3MyRsssByY6ZDZxzXEFK7sgFYbtXAxajmJp:  -0.01000000 Waves

2021.11.09 18:22 [1783649] smart account 3MyRsssByY6ZDZxzXEFK7sgFYbtXAxajmJp > SELF 0.00000000 Waves

{ "type": 13, "id": "2mFEyMVbvC1WJvi4f5V7USxJcULDZZAK6DjDFFtacPUY", "fee": 1000000, "feeAssetId": null, "timestamp": 1636471360183, "version": 2, "chainId": 84, "sender": "3MyRsssByY6ZDZxzXEFK7sgFYbtXAxajmJp", "senderPublicKey": "7mNS5bKoVK7u5db7PvrcUj25wxK6NvkMjqkMHjBKcpVb", "proofs": [ "26SYSUy7CUtcoQwmnUvAofX29i4cvuLpFB4FoVaqr6W459pTQaUtuz64LQrRGTcXohojMTA8sNiMxnDaHmcVMruZ" ], "script": "base64:AAIFAAAAAAAAAEcIAhIFCgMBCAgSCgoICAgICAgICAgSCQoHCAEBCAgBARIECgIICBIFCgMICAgSAwoBCBIECgIICBIGCgQICAgIEgUKAwgICAAAAFMAAAAACHVuaXRUZXN0BwAAAAAJb3JhY2xlRmVlCQEAAAAFdmFsdWUAAAABCQAEJgAAAAECAAAAIzNNcFpRanpHb2dtaWZjRUtlOG1EZDZyaWJMN254VDlBQ3llAAAAAAtmZWVSZWNlaXZlcgIAAAAjM042NXhMcThKY0NlYUVpUjFUSlE3ZEJxWEJ2RXk2RTQ4V3oAAAAACGNlcnREYXBwAgAAACMzTXhjWHJOYk1aS1lhU3JoY2ZlTW0yaFpuQmVDdTN5UldzdwAAAAAIdXNlckRhcHAJAQAAAAV2YWx1ZQAAAAEJAAQmAAAAAQIAAAAjM045Y1FnWkZQSEhWdTh3cXNuMkRrUUZlaGczaDhDTmlvb0EAAAAADXdoaXRlbGlzdERhcHAJAQAAAAV2YWx1ZQAAAAEJAAQmAAAAAQIAAAAjM045eFpZR3B6TUZEWHZYdWN0bVU2elY4cVN6bTJaZkYzMWYAAAAAC1VTRE5Bc3NldElkAQAAACAAhSlM6RMuqheYbG/N0SV5hAUPIuUNy6okaxuy71mKvAAAAAAGb3duZXJzCQAETAAAAAIJAAQdAAAAAgUAAAAJb3JhY2xlRmVlAgAAAAZvd25lcjEJAARMAAAAAgkABB0AAAACBQAAAAlvcmFjbGVGZWUCAAAABm93bmVyMgUAAAADbmlsAAAAAAV0eXBlcwkABEwAAAACAgAAAAVJTUFHRQkABEwAAAACAgAAAANQREYJAARMAAAAAgIAAAAFVklERU8FAAAAA25pbAAAAAAMUHJldmlld3R5cGVzCQAETAAAAAICAAAAA1BERgUAAAADbmlsAAAAABBVU0RORmlyc3RTZWxsQ3V0AAAAAAAAAACWAAAAAAtkYXBwUnVubmluZwkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBsAAAACBQAAAAh1c2VyRGFwcAIAAAAUY29uZl9kYXBwX2lzX3J1bm5pbmcGAAAAAA5tYWludGVuYW5jZU1TRwkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABB0AAAACBQAAAAh1c2VyRGFwcAIAAAAUY29uZl9tYWludGVuYW5jZV9tc2cCAAAAAAAAAAANdXNlclN1c3BlbmRlZAIAAAAJU1VTUEVOREVEAAAAAAt1c2VyUmVtb3ZlZAIAAAAHUkVNT1ZFRAAAAAAQdXNlclVucmVnaXN0ZXJlZAIAAAAMVU5SRUdJU1RFUkVEAAAAAAt1c2VyQWxsb3dlZAIAAAAHQUxMT1dFRAAAAAAMYXVjdGlvblR5cGUxAgAAAAdCSURUWVBFAAAAAAxhdWN0aW9uVHlwZTICAAAAC1RSQURJVElPTkFMAAAAAAxhdWN0aW9uVHlwZTMCAAAABkRJUkVDVAEAAAAXZ2V0U3RyaW5nQnlLZXlGcm9tVXNlcnMAAAABAAAAA2tleQkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABB0AAAACBQAAAAh1c2VyRGFwcAUAAAADa2V5AgAAAAABAAAADmdldFN0cmluZ0J5S2V5AAAAAQAAAANrZXkJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQdAAAAAgUAAAAEdGhpcwUAAAADa2V5AgAAAAABAAAAFWdldFN0cmluZ0J5S2V5T3JFcnJvcgAAAAIAAAADa2V5AAAABWVycm9yCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQdAAAAAgUAAAAEdGhpcwUAAAADa2V5BQAAAAVlcnJvcgEAAAAZZ2V0SW50ZWdlckJ5S2V5RnJvbU9yYWNsZQAAAAEAAAADa2V5CQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgUAAAAJb3JhY2xlRmVlBQAAAANrZXkCAAAAH0ludGVnZXIgdW5kZWZpbmUgb3IgMCBpbiBvcmFjbGUBAAAAD2dldEludGVnZXJCeUtleQAAAAEAAAADa2V5CQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMFAAAAA2tleQAAAAAAAAAAAAEAAAAOY2hlY2tXaGl0ZWxpc3QAAAABAAAAA2tleQkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAA13aGl0ZWxpc3REYXBwBQAAAANrZXkAAAAAAAAAAAABAAAAD2dldEJvb2xlYW5CeUtleQAAAAEAAAADa2V5CQEAAAALdmFsdWVPckVsc2UAAAACCQAEGwAAAAIFAAAABHRoaXMFAAAAA2tleQcBAAAADHZhbGlkYXRlSGFzaAAAAAEAAAAEaGFzaAkAAAAAAAACCQABMQAAAAEFAAAABGhhc2gAAAAAAAAAAEABAAAADWtleVVzZXJTdGF0dXMAAAABAAAABmNhbGxlcgkAASwAAAACAgAAAAx1c2VyX3N0YXR1c18FAAAABmNhbGxlcgEAAAAHa2V5RGF0ZQAAAAIAAAAGY2FsbGVyAAAABWFydElkCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAlhcnRfZGF0ZV8FAAAABWFydElkAgAAAAFfBQAAAAZjYWxsZXIBAAAAB2tleU5hbWUAAAACAAAABmNhbGxlcgAAAAVhcnRJZAkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAJYXJ0X25hbWVfBQAAAAVhcnRJZAIAAAABXwUAAAAGY2FsbGVyAQAAAAdrZXlEZXNjAAAAAgAAAAZjYWxsZXIAAAAFYXJ0SWQJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAACWFydF9kZXNjXwUAAAAFYXJ0SWQCAAAAAV8FAAAABmNhbGxlcgEAAAANa2V5RGlzcGxheUNpZAAAAAIAAAAGY2FsbGVyAAAABWFydElkCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAABBhcnRfZGlzcGxheV9jaWRfBQAAAAVhcnRJZAIAAAABXwUAAAAGY2FsbGVyAQAAAA1rZXlQcmV2aWV3Q2lkAAAAAgAAAAZjYWxsZXIAAAAFYXJ0SWQJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAEGFydF9wcmV2aWV3X2NpZF8FAAAABWFydElkAgAAAAFfBQAAAAZjYWxsZXIBAAAACmtleU1heE1pbnQAAAACAAAABmNhbGxlcgAAAAVhcnRJZAkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAMYXJ0X21heG1pbnRfBQAAAAVhcnRJZAIAAAABXwUAAAAGY2FsbGVyAQAAABJrZXlIaWdoZXN0QmlkQmlkSWQAAAABAAAABWFydElkCQABLAAAAAICAAAAFGFydF9oaWdoZXN0QmlkQmlkSWRfBQAAAAVhcnRJZAEAAAAIa2V5QmlkSWQAAAABAAAABWJpZElkCQABLAAAAAICAAAABGJpZF8FAAAABWJpZElkAQAAAAtrZXlEdXJhdGlvbgAAAAIAAAAGY2FsbGVyAAAABWFydElkCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAA1hcnRfZHVyYXRpb25fBQAAAAVhcnRJZAIAAAABXwUAAAAGY2FsbGVyAQAAAAxrZXlFbmRIZWlnaHQAAAACAAAABmNhbGxlcgAAAAVhcnRJZAkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAOYXJ0X2VuZGhlaWdodF8FAAAABWFydElkAgAAAAFfBQAAAAZjYWxsZXIBAAAADmtleUF1Y3Rpb25UeXBlAAAAAgAAAAZjYWxsZXIAAAAFYXJ0SWQJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAEGFydF9hdWN0aW9udHlwZV8FAAAABWFydElkAgAAAAFfBQAAAAZjYWxsZXIBAAAACWtleUlzc3VlZAAAAAIAAAAGY2FsbGVyAAAABWFydElkCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAthcnRfaXNzdWVkXwUAAAAFYXJ0SWQCAAAAAV8FAAAABmNhbGxlcgEAAAAMS2V5TmZ0SXNzdWVyAAAAAQAAAAVuZnRJZAkAASwAAAACAgAAAAtuZnRfaXNzdWVkXwUAAAAFbmZ0SWQBAAAAC0tleU5mdEFydElkAAAAAQAAAAVuZnRJZAkAASwAAAACAgAAAApuZnRfYXJ0SWRfBQAAAAVuZnRJZAEAAAAKa2V5Um95YWx0eQAAAAIAAAAGY2FsbGVyAAAABWFydElkCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAxhcnRfcm95YWx0eV8FAAAABWFydElkAgAAAAFfBQAAAAZjYWxsZXIBAAAACWtleU9uU2FsZQAAAAIAAAAGY2FsbGVyAAAABWFydElkCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAthcnRfb25zYWxlXwUAAAAFYXJ0SWQCAAAAAV8FAAAABmNhbGxlcgEAAAAOa2V5RW50aXRsZW1lbnQAAAACAAAABmNhbGxlcgAAAAVhcnRJZAkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAQYXJ0X2VudGl0bGVtZW50XwUAAAAFYXJ0SWQCAAAAAV8FAAAABmNhbGxlcgEAAAAHa2V5VGFncwAAAAIAAAAGY2FsbGVyAAAABWFydElkCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAlhcnRfdGFnc18FAAAABWFydElkAgAAAAFfBQAAAAZjYWxsZXIBAAAAB2tleVR5cGUAAAACAAAABmNhbGxlcgAAAAVhcnRJZAkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAJYXJ0X3R5cGVfBQAAAAVhcnRJZAIAAAABXwUAAAAGY2FsbGVyAQAAAAhrZXlQcmljZQAAAAIAAAAGY2FsbGVyAAAABWFydElkCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAphcnRfcHJpY2VfBQAAAAVhcnRJZAIAAAABXwUAAAAGY2FsbGVyAQAAABJrZXlBc3NldElkQWNjZXB0ZWQAAAACAAAABmNhbGxlcgAAAAVhcnRJZAkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAASYXJ0X2Fzc2V0QWNjZXB0ZWRfBQAAAAVhcnRJZAIAAAABXwUAAAAGY2FsbGVyAQAAABFrZXlIYXNoQnlUeGlkQWRkcgAAAAIAAAAGY2FsbGVyAAAABHR4aWQJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAE2dldF9oYXNoYnl0eGlkYWRkcl8FAAAABHR4aWQCAAAAAV8FAAAABmNhbGxlcgEAAAAOa2V5T3duZXJCeUhhc2gAAAABAAAACnNoYTI1Nkhhc2gJAAEsAAAAAgIAAAASZ2V0X293bmVyX2J5X2hhc2hfBQAAAApzaGEyNTZIYXNoAQAAABJrZXlUeGlkQnlIYXNoT3duZXIAAAACAAAACnNoYTI1Nkhhc2gAAAAGY2FsbGVyCQABLAAAAAICAAAAF2dldF90eGlkX2J5X2hhc2hfb3duZXJfCQACWAAAAAEJAAtUAAAAAQkAAZsAAAABCQABLAAAAAIFAAAACnNoYTI1Nkhhc2gFAAAABmNhbGxlcgAAAAAZY3VycmVudENlcnRpZmljYXRpb25QcmljZQkBAAAAGWdldEludGVnZXJCeUtleUZyb21PcmFjbGUAAAABCQABLAAAAAICAAAAEmNlcnRpZmljYXRpb25fZmVlXwkAAlgAAAABBQAAAAtVU0ROQXNzZXRJZAEAAAAQZ2V0QW1vdW50QnlCaWRJZAAAAAEAAAAFYmlkSWQJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAQAAAA9nZXRJbnRlZ2VyQnlLZXkAAAABCQEAAAAIa2V5QmlkSWQAAAABBQAAAAViaWRJZAAAAAAAAAAAAAEAAAAaZ2V0QW1vdW50SGlnaGVzdEJpZEJ5QXJ0SWQAAAABAAAABWFydElkBAAAAAViaWRJZAkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQkBAAAAEmtleUhpZ2hlc3RCaWRCaWRJZAAAAAEFAAAABWFydElkAwkAAAAAAAACBQAAAAViaWRJZAIAAAAAAAAAAAAAAAAACQEAAAAQZ2V0QW1vdW50QnlCaWRJZAAAAAEFAAAABWJpZElkAQAAAA52YWxpZGF0ZVN0cmluZwAAAAIAAAADc3RyAAAAA21heAMJAAAAAAAAAgkAATEAAAABBQAAAANzdHIAAAAAAAAAAAAJAAACAAAAAQIAAAAYRmllbGQgY2Fubm90IGJlIGlzIGVtcHR5AwkAAGYAAAACCQABMQAAAAEFAAAAA3N0cgUAAAADbWF4CQAAAgAAAAEJAAEsAAAAAgUAAAADc3RyAgAAAAwgaXMgdG9vIGxvbmcGAQAAAAx2YWxpZGF0ZVVzZXIAAAABAAAABmNhbGxlcgQAAAAKdXNlclN0YXR1cwkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABB0AAAACBQAAAAh1c2VyRGFwcAkBAAAADWtleVVzZXJTdGF0dXMAAAABBQAAAAZjYWxsZXIFAAAAEHVzZXJVbnJlZ2lzdGVyZWQDAwkAAAAAAAACBQAAAAp1c2VyU3RhdHVzBQAAABB1c2VyVW5yZWdpc3RlcmVkBgkAAAAAAAACBQAAAAp1c2VyU3RhdHVzBQAAAAt1c2VyQWxsb3dlZAIAAAAuUmVnaXN0ZXIgdGhpcyBhY2NvdW50IGZpcnN0IHdpdGggJ0FjY291bnQnIHRhYgMJAAAAAAAAAgUAAAAKdXNlclN0YXR1cwUAAAANdXNlclN1c3BlbmRlZAIAAAARQWNjb3VudCBzdXNwZW5kZWQDCQAAAAAAAAIFAAAACnVzZXJTdGF0dXMFAAAAC3VzZXJSZW1vdmVkAgAAAA9BY2NvdW50IHJlbW92ZWQCAAAAAAEAAAATdmFsaWRhdGVBcnR3b3JrRGF0YQAAAAUAAAAGY2FsbGVyAAAACmNpZERpc3BsYXkAAAAEbmFtZQAAAAtkZXNjcmlwdGlvbgAAAAR0YWdzBAAAAAljaGVja1VzZXIJAQAAAAx2YWxpZGF0ZVVzZXIAAAABBQAAAAZjYWxsZXIDCQEAAAACIT0AAAACBQAAAAljaGVja1VzZXICAAAAAAkAAAIAAAABBQAAAAljaGVja1VzZXIDCQAAAAAAAAIJAAExAAAAAQUAAAAKY2lkRGlzcGxheQAAAAAAAAAAAAkAAAIAAAABAgAAABtEaXNwbGF5IENJRCBjYW5ub3QgYmUgZW1wdHkDCQEAAAACIT0AAAACCQABMQAAAAEFAAAACmNpZERpc3BsYXkAAAAAAAAAAC4JAAACAAAAAQIAAAAeVGhpcyBkb2Vzbid0IHNlZW0gYSB2YWxpZCBDSUQhAwkBAAAAASEAAAABCQEAAAAOdmFsaWRhdGVTdHJpbmcAAAACBQAAAARuYW1lAAAAAAAAAABkCQAAAgAAAAECAAAAEjEwMCBDaGFyLiBtYXggbmFtZQMJAQAAAAEhAAAAAQkBAAAADnZhbGlkYXRlU3RyaW5nAAAAAgUAAAALZGVzY3JpcHRpb24AAAAAAAAAA+gJAAACAAAAAQIAAAAaMTAwMCBDaGFyLiBtYXggZGVzY3JpcHRpb24DCQAAZgAAAAIJAAGQAAAAAQkABLUAAAACBQAAAAR0YWdzAgAAAAEsAAAAAAAAAAAFCQAAAgAAAAECAAAACzUgdGFncyBtYXguAgAAAAABAAAACWlzUGF5bWVudAAAAAEAAAABaQMJAAAAAAAAAgkAAZAAAAABCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAkAAAIAAAABAgAAABNObyBwYXltZW50IGF0dGFjaGVkBAAAAAdwYXltZW50CQEAAAAFdmFsdWUAAAABCQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAABAAAAAZhbW91bnQJAQAAAAV2YWx1ZQAAAAEIBQAAAAdwYXltZW50AAAABmFtb3VudAkABRQAAAACBQAAAAdwYXltZW50BQAAAAZhbW91bnQBAAAAD3ZhbGlkYXRlUGF5bWVudAAAAAEAAAABaQQAAAAKdDA4OTgyOTAxOAkBAAAACWlzUGF5bWVudAAAAAEFAAAAAWkEAAAAB3BheW1lbnQIBQAAAAp0MDg5ODI5MDE4AAAAAl8xBAAAAAZhbW91bnQIBQAAAAp0MDg5ODI5MDE4AAAAAl8yBAAAAAdhc3NldElkAwMJAQAAAAlpc0RlZmluZWQAAAABCAUAAAAHcGF5bWVudAAAAAdhc3NldElkCQAAAAAAAAIIBQAAAAdwYXltZW50AAAAB2Fzc2V0SWQFAAAAC1VTRE5Bc3NldElkBwgFAAAAB3BheW1lbnQAAAAHYXNzZXRJZAkAAAIAAAABAgAAACtPbmx5IFVTRE4gdG9rZW4gYWNjZXB0ZWQgYXMgdHJhbnNhY3Rpb24gZmVlAwkBAAAAAiE9AAAAAgUAAAAGYW1vdW50BQAAABljdXJyZW50Q2VydGlmaWNhdGlvblByaWNlCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAGVBheW1lbnQgYW1vdW50IHNob3VsZCBiZSAJAAGkAAAAAQUAAAAZY3VycmVudENlcnRpZmljYXRpb25QcmljZQIAAAAJIGJ1dCBpczogCQABpAAAAAEFAAAABmFtb3VudAkABRQAAAACBQAAAAZhbW91bnQFAAAAB2Fzc2V0SWQBAAAAC2lzQXJ0TWludGVkAAAAAgAAAAlhZGRyVG9Vc2UAAAAFYXJ0SWQEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkBAAAACWtleUlzc3VlZAAAAAIFAAAACWFkZHJUb1VzZQUAAAAFYXJ0SWQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYgUAAAAHJG1hdGNoMAMJAQAAAAIhPQAAAAIFAAAAAWIAAAAAAAAAAAAGBwcBAAAAFHZhbGlkYXRlUHJpY2VBc3NldElkAAAAAwAAAAFpAAAADHByaWNlQXNzZXRJZAAAAAxhcnR3b3JrUHJpY2UEAAAACnQwOTYxMTk2NDcJAQAAAAlpc1BheW1lbnQAAAABBQAAAAFpBAAAAAdwYXltZW50CAUAAAAKdDA5NjExOTY0NwAAAAJfMQQAAAAGYW1vdW50CAUAAAAKdDA5NjExOTY0NwAAAAJfMgQAAAAHYXNzZXRJZAMJAQAAAAEhAAAAAQkBAAAACWlzRGVmaW5lZAAAAAEIBQAAAAdwYXltZW50AAAAB2Fzc2V0SWQJAAACAAAAAQIAAAAOV3JvbmcgYXNzZXQgaWQDAwkAAGYAAAACCQABMQAAAAEFAAAADHByaWNlQXNzZXRJZAAAAAAAAAAAAAkAAAAAAAACCQACWAAAAAEJAQAAAAV2YWx1ZQAAAAEIBQAAAAdwYXltZW50AAAAB2Fzc2V0SWQFAAAADHByaWNlQXNzZXRJZAcIBQAAAAdwYXltZW50AAAAB2Fzc2V0SWQJAAACAAAAAQIAAAAOV3JvbmcgYXNzZXQgaWQDAwkAAAAAAAACBQAAAAdhc3NldElkBQAAAAR1bml0CQEAAAACIT0AAAACBQAAAAxwcmljZUFzc2V0SWQCAAAAAAcJAAACAAAAAQIAAAAOV3JvbmcgYXNzZXQgaWQDCQEAAAACIT0AAAACBQAAAAxhcnR3b3JrUHJpY2UFAAAABmFtb3VudAkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAABRQYXltZW50IGRvbid0IG1hdGNoIAkAAaQAAAABBQAAAAxhcnR3b3JrUHJpY2UCAAAAASAJAAGkAAAAAQUAAAAGYW1vdW50CQAFFAAAAAIFAAAABmFtb3VudAUAAAAHYXNzZXRJZAEAAAAQYWNjZXB0ZWRBc3NldElkcwAAAAEAAAAHYXNzZXRJZAMJAQAAAAIhPQAAAAIFAAAAB2Fzc2V0SWQJAAJYAAAAAQUAAAALVVNETkFzc2V0SWQJAAACAAAAAQIAAAAST25seSBVU0ROIGFjY2VwdGVkBgEAAAAPdmFsaWRhdGVNaW5TZWxsAAAAAgAAAAdhc3NldElkAAAABXByaWNlBAAAAA1taW5TZWxsU2NvbmV4AwUAAAAIdW5pdFRlc3QAAAAAAAAAAAEJAABoAAAAAgUAAAAZY3VycmVudENlcnRpZmljYXRpb25QcmljZQAAAAAAAAAAAgMDAwkAAAAAAAACBQAAAAdhc3NldElkCQACWAAAAAEFAAAAC1VTRE5Bc3NldElkCQAAZgAAAAIFAAAADW1pblNlbGxTY29uZXgFAAAABXByaWNlBwkBAAAAAiE9AAAAAgUAAAAFcHJpY2UAAAAAAAAAAAAHCQAAAgAAAAEJAAEsAAAAAgIAAAAZV3JvbmcgbWluaW11bSBzZWxsIHByaWNlIAkAAaQAAAABBQAAAA1taW5TZWxsU2NvbmV4BgEAAAANZ2V0QmlkQXNzZXRJZAAAAAEAAAAHYXNzZXRJZAMJAAAAAAAAAgUAAAAHYXNzZXRJZAIAAAAFV0FWRVMJAAACAAAAAQIAAAAWT25seSBVU0ROIGlzIGFjY2VwdGVkIQkAAlkAAAABBQAAAAdhc3NldElkAQAAABZnZXRQcmljZUFzc2V0SWRGcm9tQmlkAAAAAQAAAApiaWREYXRhS2V5BAAAAAdiaWREYXRhCQEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABCQABLAAAAAIFAAAACmJpZERhdGFLZXkCAAAABV9PUEVOAwkAAAAAAAACBQAAAAdiaWREYXRhAgAAAAAJAAACAAAAAQIAAAANQmlkIG5vdCBmb3VuZAQAAAAKYmlkRGF0YUFycgkABLUAAAACBQAAAAdiaWREYXRhAgAAAAFfBAAAAAliaWRBbW91bnQJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAApiaWREYXRhQXJyAAAAAAAAAAABBAAAAApiaWRBc3NldElkCQEAAAANZ2V0QmlkQXNzZXRJZAAAAAEJAAGRAAAAAgUAAAAKYmlkRGF0YUFycgAAAAAAAAAAAAMJAABnAAAAAgAAAAAAAAAAAAUAAAAJYmlkQW1vdW50CQAAAgAAAAECAAAADFdyb25nIGFtb3VudAkABRQAAAACBQAAAAliaWRBbW91bnQFAAAACmJpZEFzc2V0SWQBAAAADGlkQ2FsbGVyRGF0ZQAAAAEAAAABaQMJAQAAAAEhAAAAAQUAAAALZGFwcFJ1bm5pbmcJAAACAAAAAQUAAAAObWFpbnRlbmFuY2VNU0cJAAUVAAAAAwkAAlgAAAABCAUAAAABaQAAAA10cmFuc2FjdGlvbklkCQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMIBQAAAAlsYXN0QmxvY2sAAAAJdGltZXN0YW1wAQAAAAppc0JpZENoZWNrAAAABAAAAAFpAAAABmlzc3VlcgAAAAhiaWRPd25lcgAAAAViaWRJZAMDAwkAAAAAAAACCQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMFAAAABmlzc3VlcgkBAAAAAiE9AAAAAgUAAAAIYmlkT3duZXICAAAAAAcJAQAAAAIhPQAAAAIFAAAABWJpZElkAgAAAAAHBgcBAAAACmdldEFydERhdGEAAAAEAAAAAWkAAAAGaXNzdWVyAAAABWFydElkAAAABWlzQmlkBAAAAA5jYWxsZXJJc0lzc3VlcgkAAAAAAAACCQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMFAAAABmlzc3VlcgQAAAAIdG90YWxORlQJAQAAAA9nZXRJbnRlZ2VyQnlLZXkAAAABAgAAABB0b3RhbF9uZnRfaXNzdWVkBAAAAAthcnR3b3JrTmFtZQkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQkBAAAAB2tleU5hbWUAAAACBQAAAAZpc3N1ZXIFAAAABWFydElkAwkAAAAAAAACBQAAAAthcnR3b3JrTmFtZQIAAAAACQAAAgAAAAECAAAAEUFydCBkb2Vzbid0IGV4aXN0BAAAAAhpc09uU2FsZQkBAAAAD2dldEJvb2xlYW5CeUtleQAAAAEJAQAAAAlrZXlPblNhbGUAAAACBQAAAAZpc3N1ZXIFAAAABWFydElkBAAAAAphbW91bnRTb2xkCQEAAAAPZ2V0SW50ZWdlckJ5S2V5AAAAAQkBAAAACWtleUlzc3VlZAAAAAIFAAAABmlzc3VlcgUAAAAFYXJ0SWQEAAAADGFydHdvcmtQcmljZQkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkBAAAAD2dldEludGVnZXJCeUtleQAAAAEJAQAAAAhrZXlQcmljZQAAAAIFAAAABmlzc3VlcgUAAAAFYXJ0SWQJAABoAAAAAgUAAAAZY3VycmVudENlcnRpZmljYXRpb25QcmljZQAAAAAAAAAAAgQAAAAMcHJpY2VBc3NldElkAwUAAAAOY2FsbGVySXNJc3N1ZXIJAAJYAAAAAQUAAAALVVNETkFzc2V0SWQJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEJAQAAABJrZXlBc3NldElkQWNjZXB0ZWQAAAACBQAAAAZpc3N1ZXIFAAAABWFydElkBAAAAAptYXhDYW5TZWxsCQEAAAAPZ2V0SW50ZWdlckJ5S2V5AAAAAQkBAAAACmtleU1heE1pbnQAAAACBQAAAAZpc3N1ZXIFAAAABWFydElkAwMDCQEAAAABIQAAAAEFAAAABWlzQmlkCQEAAAABIQAAAAEFAAAADmNhbGxlcklzSXNzdWVyBwMDCQAAZwAAAAIAAAAAAAAAAAAFAAAADGFydHdvcmtQcmljZQYJAQAAAAEhAAAAAQUAAAAIaXNPblNhbGUGCQAAZwAAAAIAAAAAAAAAAAAFAAAACm1heENhblNlbGwHCQAAAgAAAAECAAAAEEFydCBub3QgZm9yIHNhbGUDAwMJAQAAAAEhAAAAAQUAAAAFaXNCaWQFAAAADmNhbGxlcklzSXNzdWVyBwkAAGcAAAACAAAAAAAAAAAABQAAAAptYXhDYW5TZWxsBwkAAAIAAAABAgAAABRNYXggaXNzdWFibGUgbm90IHNldAkABRkAAAAHBQAAAAh0b3RhbE5GVAUAAAALYXJ0d29ya05hbWUFAAAACmFtb3VudFNvbGQFAAAADGFydHdvcmtQcmljZQUAAAAMcHJpY2VBc3NldElkBQAAAAptYXhDYW5TZWxsBQAAAAhpc09uU2FsZQEAAAAKZ2V0QmlkRGF0YQAAAAkAAAABaQAAAAZjYWxsZXIAAAAGaXNzdWVyAAAABWFydElkAAAACGJpZE93bmVyAAAABWJpZElkAAAADHByaWNlQXNzZXRJZAAAAAxhcnR3b3JrUHJpY2UAAAAFaXNCaWQEAAAACWNoZWNrVXNlcgkBAAAADHZhbGlkYXRlVXNlcgAAAAEFAAAABmlzc3VlcgMDBQAAAAVpc0JpZAkBAAAAAiE9AAAAAgUAAAAJY2hlY2tVc2VyAgAAAAAHCQAAAgAAAAEFAAAACWNoZWNrVXNlcgQAAAAKYmlkRGF0YUtleQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAARiaWRfBQAAAAVhcnRJZAIAAAABXwUAAAAGaXNzdWVyAgAAAAFfBQAAAAhiaWRPd25lcgIAAAABXwUAAAAFYmlkSWQEAAAADHQwMTM1MTkxMzY0OAMFAAAABWlzQmlkCQEAAAAWZ2V0UHJpY2VBc3NldElkRnJvbUJpZAAAAAEFAAAACmJpZERhdGFLZXkJAQAAABR2YWxpZGF0ZVByaWNlQXNzZXRJZAAAAAMFAAAAAWkFAAAADHByaWNlQXNzZXRJZAUAAAAMYXJ0d29ya1ByaWNlBAAAAAZhbW91bnQIBQAAAAx0MDEzNTE5MTM2NDgAAAACXzEEAAAAB2Fzc2V0SWQIBQAAAAx0MDEzNTE5MTM2NDgAAAACXzIJAAUVAAAAAwUAAAAKYmlkRGF0YUtleQUAAAAGYW1vdW50BQAAAAdhc3NldElkAQAAABFnZXRDb21taXNzaW9uRGF0YQAAAAUAAAAGaXNzdWVyAAAAB2Fzc2V0SWQAAAAGYW1vdW50AAAACmFtb3VudFNvbGQAAAAKbWF4Q2FuU2VsbAQAAAANaXNXaGl0ZWxpc3RlZAkBAAAADmNoZWNrV2hpdGVsaXN0AAAAAQUAAAAGaXNzdWVyBAAAAANjdXQDCQAAZgAAAAIFAAAADWlzV2hpdGVsaXN0ZWQFAAAABmhlaWdodAAAAAAAAAAAAAMJAAAAAAAAAgUAAAAHYXNzZXRJZAUAAAALVVNETkFzc2V0SWQFAAAAEFVTRE5GaXJzdFNlbGxDdXQJAAACAAAAAQIAAAAWT25seSBVU0ROIGlzIGFjY2VwdGVkIQQAAAAPYW1vdW50Rm9yU2NvbmV4CQAAawAAAAMFAAAABmFtb3VudAUAAAADY3V0AAAAAAAAAAPoBAAAABBhbW91bnRGb3JDcmVhdG9yCQAAZQAAAAIFAAAABmFtb3VudAUAAAAPYW1vdW50Rm9yU2NvbmV4AwkAAAAAAAACBQAAAAphbW91bnRTb2xkBQAAAAptYXhDYW5TZWxsCQAAAgAAAAECAAAADEFydCBzb2xkIG91dAQAAAANbmV3QW1vdW50U29sZAkAAGQAAAACBQAAAAphbW91bnRTb2xkAAAAAAAAAAABCQAFFQAAAAMFAAAAD2Ftb3VudEZvclNjb25leAUAAAAQYW1vdW50Rm9yQ3JlYXRvcgUAAAANbmV3QW1vdW50U29sZAEAAAAMZ2V0SXNzdWVEYXRhAAAACwAAAAZpc3N1ZXIAAAAFYXJ0SWQAAAALYXJ0d29ya05hbWUAAAANbmV3QW1vdW50U29sZAAAAAptYXhDYW5TZWxsAAAACHRvdGFsTkZUAAAABmNhbGxlcgAAAAhiaWRPd25lcgAAAAViaWRJZAAAAAFpAAAACGlzT25TYWxlBAAAAAlpc3N1ZU1ldGEJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAA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AAACXzMEAAAADWNvbW1pc2lvbkRhdGEJAQAAABFnZXRDb21taXNzaW9uRGF0YQAAAAUFAAAABmlzc3VlcgkBAAAABXZhbHVlAAAAAQUAAAAHYXNzZXRJZAUAAAAGYW1vdW50BQAAAAphbW91bnRTb2xkBQAAAAptYXhDYW5TZWxsBAAAAA9hbW91bnRGb3JTY29uZXgIBQAAAA1jb21taXNpb25EYXRhAAAAAl8xBAAAABBhbW91bnRGb3JDcmVhdG9yCAUAAAANY29tbWlzaW9uRGF0YQAAAAJfMgQAAAANbmV3QW1vdW50U29sZAgFAAAADWNvbW1pc2lvbkRhdGEAAAACXzMEAAAACmlzc3VlckRhdGEJAQAAAAxnZXRJc3N1ZURhdGEAAAALBQAAAAZpc3N1ZXIFAAAABWFydElkBQAAAAthcnR3b3JrTmFtZQUAAAANbmV3QW1vdW50U29sZAUAAAAKbWF4Q2FuU2VsbAUAAAAIdG90YWxORlQFAAAABmNhbGxlcgUAAAAIYmlkT3duZXIFAAAABWJpZElkBQAAAAFpBQAAAAhpc09uU2FsZQQAAAAKc2VsbFN0YXR1cwgFAAAACmlzc3VlckRhdGEAAAACXzEEAAAACnJlY2VpdmVORlQIBQAAAAppc3N1ZXJEYXRhAAAAAl8yBAAAAAlpc3N1ZU1ldGEIBQAAAAppc3N1ZXJEYXRhAAAAAl8zBAAAAAtpZE5GVEludm9rZQkAA/wAAAAEBQAAAAR0aGlzAgAAAAdtaW50TmZ0CQAETAAAAAIFAAAACHRvdGFsTkZUCQAETAAAAAIFAAAACWlzc3VlTWV0YQkABEwAAAACCQAEJQAAAAEFAAAACnJlY2VpdmVORlQFAAAAA25pbAUAAAADbmlsAwkAAAAAAAACBQAAAAtpZE5GVEludm9rZQUAAAALaWRORlRJbnZva2UEAAAABWlkTkZUBAAAAAckbWF0Y2gwBQAAAAtpZE5GVEludm9rZQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFyBQAAAAckbWF0Y2gwBQAAAAFyCQAAAgAAAAECAAAAF0luY29ycmVjdCBpbnZva2UgcmVzdWx0BAAAAAtiaWRLZXlWYWx1ZQkBAAAADGdldEJpZEtleVZhbAAAAAMFAAAAB2Fzc2V0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BAAAAAllbmRIZWlnaHQJAQAAAA9nZXRJbnRlZ2VyQnlLZXkAAAABCQEAAAAMa2V5RW5kSGVpZ2h0AAAAAgUAAAAGaXNzdWVyBQAAAAVhcnRJZAQAAAAKaGlnaGVzdEJpZAkBAAAAGmdldEFtb3VudEhpZ2hlc3RCaWRCeUFydElkAAAAAQUAAAAFYXJ0SWQDCQAAZgAAAAIFAAAABmhlaWdodAUAAAAJZW5kSGVpZ2h0CQAAAgAAAAECAAAAIVRoaXMgYXVjdGlvbiBpcyBmaW5pc2hlZCBhbHJlYWR5IQQAAAALY2FsbGRlckRhdGEJAQAAAAxpZENhbGxlckRhdGUAAAABBQAAAAFpBAAAAAJpZAgFAAAAC2NhbGxkZXJEYXRhAAAAAl8xBAAAAAZjYWxsZXIIBQAAAAtjYWxsZGVyRGF0YQAAAAJfMgQAAAAEZGF0ZQgFAAAAC2NhbGxkZXJEYXRhAAAAAl8zBAAAAAxpc1BheW1lbnRWYXIJAQAAAAlpc1BheW1lbnQAAAABBQAAAAFpBAAAAAdwYXltZW50CAUAAAAMaXNQYXltZW50VmFyAAAAAl8xBAAAAAZhbW91bnQIBQAAAAxpc1BheW1lbnRWYXIAAAACXzIDCQAAZwAAAAIFAAAACmhpZ2hlc3RCaWQFAAAABmFtb3VudAkAAAIAAAABCQABLAAAAAICAAAAIFBsZWFzZSBwbGFjZSBhIGJpZCBoaWdoZXIgdGhhbjogCQABpAAAAAEFAAAACmhpZ2hlc3RCaWQEAAAAB2Fzc2V0SWQDCQEAAAABIQAAAAEJAQAAAAlpc0RlZmluZWQAAAABCAUAAAAHcGF5bWVudAAAAAdhc3NldElkCQAAAgAAAAECAAAAFk9ubHkgVVNETiBpcyBhY2NlcHRlZCEJAAJYAAAAAQkBAAAABXZhbHVlAAAAAQgFAAAAB3BheW1lbnQAAAAHYXNzZXRJZAQAAAAGYmlkTmJyCQEAAAAPZ2V0SW50ZWdlckJ5S2V5AAAAAQkAASwAAAACAgAAABJjdXJyZW50X2JpZGFtb3VudF8FAAAABWFydElkBAAAAA9taW5BcnR3b3JrUHJpY2UJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAQAAAA9nZXRJbnRlZ2VyQnlLZXkAAAABCQEAAAAIa2V5UHJpY2UAAAACBQAA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DG9sZEVuZEhlaWdodAMJAAAAAAAAAgUAAAAKYW1vdW50U29sZAUAAAAKbWF4Q2FuU2VsbAkAAAIAAAABAgAAACZDYW4ndCByZXN0YXJ0IGF1Y3Rpb24sIG1heCBhbW91bnQgc29sZAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAADGtleUVuZEhlaWdodAAAAAIFAAAABmlzc3VlcgUAAAAFYXJ0SWQFAAAACWVuZEhlaWdodAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQEAAAASa2V5SGlnaGVzdEJpZEJpZElkAAAAAQUAAAAFYXJ0SWQFAAAAA25pbAkAAAIAAAABAgAAACRQcmV2aW91cyBhdWN0aW9uIGlzbid0IGNvbXBsZXRlZCB5ZXQBAAAAFGFjY2VwdEJpZFRyYWRpdGlvbmFsAAAABQAAAAFpAAAABWFydElkAAAABmlzc3VlcgAAAAViaWRJZAAAAAhiaWRPd25lcgQAAAAJZW5kSGVpZ2h0CQEAAAAPZ2V0SW50ZWdlckJ5S2V5AAAAAQkBAAAADGtleUVuZEhlaWdodAAAAAIFAAAABmlzc3VlcgUAAAAFYXJ0SWQEAAAADGhpZ2hlc3RCaWRJZAkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQkBAAAAEmtleUhpZ2hlc3RCaWRCaWRJZAAAAAEFAAAABWFydElkAwkAAGYAAAACBQAAAAZoZWlnaHQFAAAACWVuZEhlaWdodAMJAAAAAAAAAgUAAAAFYmlkSWQFAAAADGhpZ2hlc3RCaWRJZAQAAAALYnV5TWludERhdGEJAQAAAAdidXlNaW50AAAABgUAAAABaQUAAAAFYXJ0SWQFAAAABmlzc3VlcgUAAAAFYmlkSWQFAAAACGJpZE93bmVyBgQAAAAScmVzdGFydEF1Y3Rpb25EYXRhCQEAAAAOcmVzdGFydEF1Y3Rpb24AAAACBQAAAAVhcnRJZAUAAAAGaXNzdWVyCQAETgAAAAIFAAAAEnJlc3RhcnRBdWN0aW9uRGF0YQUAAAALYnV5TWludERhdGEJAAACAAAAAQIAAAAcVGhpcyBpcyBub3QgdGhlIHdpbm5pbmcgYmlkIQkAAAIAAAABAgAAACFUaGlzIGF1Y3Rpb24gaXMgbm90IHlldCBmaW5p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AAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADBQAAAA5yZWNlaXZlTkZUQWRkeQAAAAAAAAAAAQUAAAAFaWRORlQFAAAAA25pbAkAAlgAAAABBQAAAAVpZE5GVAkAAAIAAAABAgAAABxPbmx5IHRoZSBkQXBwIGNhbiBtaW50IE5GVCdzAAAAAWkBAAAACmFkZEFydHdvcmsAAAAIAAAACnNoYTI1Nkhhc2gAAAAEbmFtZQAAAAtkZXNjcmlwdGlvbgAAAAR0YWdzAAAABHR5cGUAAAAKY2lkRGlzcGxheQAAAAtlbnRpdGxlbWVudAAAAAdwcmV2aWV3BAAAAAx0MDE3NzQwMTc3ODEJAQAAAAxpZENhbGxlckRhdGUAAAABBQAAAAFpBAAAAAVhcnRJZAgFAAAADHQwMTc3NDAxNzc4MQAAAAJfMQQAAAAGY2FsbGVyCAUAAAAMdDAxNzc0MDE3NzgxAAAAAl8yBAAAAARkYXRlCAUAAAAMdDAxNzc0MDE3NzgxAAAAAl8zAwkBAAAAD2NvbnRhaW5zRWxlbWVudAAAAAIFAAAABXR5cGVzBQAAAAR0eXBlBAAAAA92YWxpZGF0ZUFydHdvcmsJAQAAABN2YWxpZGF0ZUFydHdvcmtEYXRhAAAABQUAAAAGY2FsbGVyBQAAAApjaWREaXNwbGF5BQAAAARuYW1lBQAAAAtkZXNjcmlwdGlvbgUAAAAEdGFncwMJAQAAAAIhPQAAAAIFAAAAD3ZhbGlkYXRlQXJ0d29yawIAAAAACQAAAgAAAAECAAAAFVNvbWV0aGluZyB3ZW50IHdyb25nIQQAAAAMdDAxODE3MDE4MjEyCQEAAAAPdmFsaWRhdGVQYXltZW50AAAAAQUAAAABaQQAAAAGYW1vdW50CAUAAAAMdDAxODE3MDE4MjEyAAAAAl8xBAAAAAdhc3NldElkCAUAAAAMdDAxODE3MDE4MjEyAAAAAl8yAwkBAAAAASEAAAABCQEAAAAJaXNEZWZpbmVkAAAAAQUAAAAGYW1vdW50CQAAAgAAAAECAAAAFFNvbWV0aGluZyB3ZW50IHdyb25nBAAAAAtwcmV2aWV3RGF0YQMJAQAAAA9jb250YWluc0VsZW1lbnQAAAACBQAAAAxQcmV2aWV3dHlwZXMFAAAABHR5cGUJAARMAAAAAgkBAAAAC1N0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TWF4TWludAAAAAIFAAAABmNhbGxlcgUAAAAFYXJ0SWQFAAAAB21heE1pbnQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAAtrZXlEdXJhdGlvbgAAAAIFAAAABmNhbGxlcgUAAAAFYXJ0SWQFAAAACGR1cmF0aW9uCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAMa2V5RW5kSGVpZ2h0AAAAAgUAAAAGY2FsbGVyBQAAAAVhcnRJZAUAAAAJZW5kSGVpZ2h0CQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABJrZXlBc3NldElkQWNjZXB0ZWQAAAACBQAAAAZjYWxsZXIFAAAABWFydElkBQAAAAdhc3NldElkCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAAA5rZXlBdWN0aW9uVHlwZQAAAAIFAAAABmNhbGxlcgUAAAAFYXJ0SWQFAAAAC2F1Y3Rpb25UeXBlCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAKa2V5Um95YWx0eQAAAAIFAAAABmNhbGxlcgUAAAAFYXJ0SWQFAAAAB3JveWFsdHkFAAAAA25pbAAAAAFpAQAAAApidXlBcnR3b3JrAAAAAgAAAAVhcnRJZAAAAAZpc3N1ZXIEAAAAC2F1Y3Rpb25UeXBlCQEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABCQEAAAAOa2V5QXVjdGlvblR5cGUAAAACBQAAAAZpc3N1ZXIFAAAABWFydElkAwkAAAAAAAACBQAAAAthdWN0aW9uVHlwZQUAAAAMYXVjdGlvblR5cGUzCQEAAAAHYnV5TWludAAAAAYFAAAAAWkFAAAABWFydElkBQAAAAZpc3N1ZXICAAAAAAIAAAAABwkAAAIAAAABAgAAADREaXJlY3QgYnV5IG9ubHkgYWxsb3dlZCB3aGVuIG5vIGF1Y3Rpb24gdHlwZSBpcyBzZXQhAAAAAWkBAAAACnVwZGF0ZVRhZ3MAAAADAAAABmFydGlzdAAAAAVhcnRJZAAAAAR0YWdzBAAAAAZjYWxsZXIJAAQlAAAAAQkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5AwkBAAAAD2NvbnRhaW5zRWxlbWVudAAAAAIFAAAABm93bmVycwUAAAAGY2FsbGVyAwkAAGYAAAACCQABkAAAAAEJAAS1AAAAAgUAAAAEdGFncwIAAAABLAAAAAAAAAAABQkAAAIAAAABAgAAAAs1IHRhZ3MgbWF4LgQAAAAHdGFnc09sZAkBAAAAFWdldFN0cmluZ0J5S2V5T3JFcnJvcgAAAAIJAQAAAAdrZXlUYWdzAAAAAgUAAAAGYXJ0aXN0BQAAAAVhcnRJZAIAAAAvTm8gdGFncyBjcmVhdGVkIHdpdGggdGhpcyBrZXksIHNvIGNhbid0IHVwZGF0ZSEDCQAAAAAAAAIFAAAABHRhZ3MFAAAAB3RhZ3NPbGQJAAACAAAAAQIAAAAeVGFncyBhcmUgdGhlIHNhbWUgYXMgb2xkIHRhZ3MhCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAAAdrZXlUYWdzAAAAAgUAAAAGYXJ0aXN0BQAAAAVhcnRJZAUAAAAEdGFncwUAAAADbmlsCQAAAgAAAAECAAAAAm5vAAAAAWkBAAAAC2RlbGV0ZUVudHJ5AAAAAQAAAAVlbnRyeQQAAAAGY2FsbGVyCQAEJQAAAAEJAQAAABRhZGRyZXNzRnJvbVB1YmxpY0tleQAAAAEIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQMJAQAAAA9jb250YWluc0VsZW1lbnQAAAACBQAAAAZvd25lcnMFAAAABmNhbGxlcgkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABBQAAAAVlbnRyeQUAAAADbmlsCQAAAgAAAAECAAAAAm5vAAAAAWkBAAAABnNldEJpZAAAAAIAAAAFYXJ0SWQAAAAGaXNzdWVyBAAAAAthdWN0aW9uVHlwZQkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQkBAAAADmtleUF1Y3Rpb25UeXBlAAAAAgUAAAAGaXNzdWVyBQAAAAVhcnRJZAMJAAAAAAAAAgUAAAALYXVjdGlvblR5cGUFAAAADGF1Y3Rpb25UeXBlMQkBAAAAFHNldEJpZE5vblRyYWRpdGlvbmFsAAAAAwUAAAABaQUAAAAFYXJ0SWQFAAAABmlzc3VlcgMJAAAAAAAAAgUAAAALYXVjdGlvblR5cGUFAAAADGF1Y3Rpb25UeXBlMgkBAAAAEXNldEJpZFRyYWRpdGlvbmFsAAAAAwUAAAABaQUAAAAFYXJ0SWQFAAAABmlzc3VlcgkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAWVW5rbm93biBhdWN0aW9uIHR5cGUgOgUAAAALYXVjdGlvblR5cGUCAAAAGywgcGxlYXNlIGNvbnRhY3QgdGhlIGFkbWlucwAAAAFpAQAAAAlhY2NlcHRCaWQAAAAEAAAABWFydElkAAAABmlzc3VlcgAAAAViaWRJZAAAAAhiaWRPd25lcgQAAAALYXVjdGlvblR5cGUJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEJAQAAAA5rZXlBdWN0aW9uVHlwZQAAAAIFAAAABmlzc3VlcgUAAAAFYXJ0SWQDCQAAAAAAAAIFAAAAC2F1Y3Rpb25UeXBlBQAAAAxhdWN0aW9uVHlwZTEJAQAAABdhY2NlcHRCaWROb25UcmFkaXRpb25hbAAAAAUFAAAAAWkFAAAABWFydElkBQAAAAZpc3N1ZXIFAAAABWJpZElkBQAAAAhiaWRPd25lcgMJAAAAAAAAAgUAAAALYXVjdGlvblR5cGUFAAAADGF1Y3Rpb25UeXBlMgkBAAAAFGFjY2VwdEJpZFRyYWRpdGlvbmFsAAAABQUAAAABaQUAAAAFYXJ0SWQFAAAABmlzc3VlcgUAAAAFYmlkSWQFAAAACGJpZE93bmVyCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACAgAAABZVbmtub3duIGF1Y3Rpb24gdHlwZSA6BQAAAAthdWN0aW9uVHlwZQIAAAAbLCBwbGVhc2UgY29udGFjdCB0aGUgYWRtaW5zAAAAAWkBAAAACWNhbmNlbEJpZAAAAAMAAAAFYXJ0SWQAAAAGaXNzdWVyAAAABWJpZElkBAAAAAthdWN0aW9uVHlwZQkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQkBAAAADmtleUF1Y3Rpb25UeXBlAAAAAgUAAAAGaXNzdWVyBQAAAAVhcnRJZAMJAAAAAAAAAgUAAAALYXVjdGlvblR5cGUFAAAADGF1Y3Rpb25UeXBlMQkBAAAADWNhbmNlbEJpZEltcGwAAAAEBQAAAAFpBQAAAAVhcnRJZAUAAAAGaXNzdWVyBQAAAAViaWRJZAkBAAAAGGNhbmNlbEJpZEltcGxUcmFkaXRpb25hbAAAAAQFAAAAAWkFAAAABWFydElkBQAAAAZpc3N1ZXIFAAAABWJpZElkAAAAAIM0fE8=", "height": 1783649, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 4d5f7c2sSBSbq9LAwRoqoZzYHQCZBBFcLADPcMwQs813 Next: DTqcGow4be637qkBA1YszrJ8YQx5VxVq2eA9tQ4A9kJN Diff:
OldNewDifferences
1717
1818 let h = [getString(b, "owner1"), getString(b, "owner2")]
1919
20-let i = 150
20+let i = ["IMAGE", "PDF", "VIDEO"]
2121
22-let j = 30
22+let j = ["PDF"]
2323
24-let k = 70
24+let k = 150
2525
2626 let l = valueOrElse(getBoolean(e, "conf_dapp_is_running"), true)
2727
3939
4040 let s = "TRADITIONAL"
4141
42-func t (u) = valueOrElse(getString(e, u), "")
42+let t = "DIRECT"
43+
44+func u (v) = valueOrElse(getString(e, v), "")
4345
4446
45-func v (u) = valueOrElse(getString(this, u), "")
47+func w (v) = valueOrElse(getString(this, v), "")
4648
4749
48-func w (u,x) = valueOrErrorMessage(getString(this, u), x)
50+func x (v,y) = valueOrErrorMessage(getString(this, v), y)
4951
5052
51-func y (u) = valueOrErrorMessage(getInteger(b, u), "Integer undefine or 0 in oracle")
53+func z (v) = valueOrErrorMessage(getInteger(b, v), "Integer undefine or 0 in oracle")
5254
5355
54-func z (u) = valueOrElse(getInteger(this, u), 0)
56+func A (v) = valueOrElse(getInteger(this, v), 0)
5557
5658
57-func A (u) = valueOrElse(getInteger(f, u), 0)
59+func B (v) = valueOrElse(getInteger(f, v), 0)
5860
5961
60-func B (u) = valueOrElse(getBoolean(this, u), false)
62+func C (v) = valueOrElse(getBoolean(this, v), false)
6163
6264
63-func C (D) = (size(D) == 64)
65+func D (E) = (size(E) == 64)
6466
6567
66-func E (F) = ("user_status_" + F)
68+func F (G) = ("user_status_" + G)
6769
6870
69-func G (F,H) = ((("art_date_" + H) + "_") + F)
71+func H (G,I) = ((("art_date_" + I) + "_") + G)
7072
7173
72-func I (F,H) = ((("art_name_" + H) + "_") + F)
74+func J (G,I) = ((("art_name_" + I) + "_") + G)
7375
7476
75-func J (F,H) = ((("art_desc_" + H) + "_") + F)
77+func K (G,I) = ((("art_desc_" + I) + "_") + G)
7678
7779
78-func K (F,H) = ((("art_display_cid_" + H) + "_") + F)
80+func L (G,I) = ((("art_display_cid_" + I) + "_") + G)
7981
8082
81-func L (F,H) = ((("art_maxmint_" + H) + "_") + F)
83+func M (G,I) = ((("art_preview_cid_" + I) + "_") + G)
8284
8385
84-func M (F,H) = ((("art_minprice_" + H) + "_") + F)
86+func N (G,I) = ((("art_maxmint_" + I) + "_") + G)
8587
8688
87-func N (H) = ("art_highestBidBidId_" + H)
89+func O (I) = ("art_highestBidBidId_" + I)
8890
8991
90-func O (P) = ("bid_" + P)
92+func P (Q) = ("bid_" + Q)
9193
9294
93-func Q (F,H) = ((("art_duration_" + H) + "_") + F)
95+func R (G,I) = ((("art_duration_" + I) + "_") + G)
9496
9597
96-func R (F,H) = ((("art_endheight_" + H) + "_") + F)
98+func S (G,I) = ((("art_endheight_" + I) + "_") + G)
9799
98100
99-func S (F,H) = ((("art_auctiontype_" + H) + "_") + F)
101+func T (G,I) = ((("art_auctiontype_" + I) + "_") + G)
100102
101103
102-func T (F,H) = ((("art_issued_" + H) + "_") + F)
104+func U (G,I) = ((("art_issued_" + I) + "_") + G)
103105
104106
105-func U (V) = ("nft_issued_" + V)
107+func V (W) = ("nft_issued_" + W)
106108
107109
108-func W (F,H) = ((("art_onsale_" + H) + "_") + F)
110+func X (W) = ("nft_artId_" + W)
109111
110112
111-func X (F,H) = ((("art_entitlement_" + H) + "_") + F)
113+func Y (G,I) = ((("art_royalty_" + I) + "_") + G)
112114
113115
114-func Y (F,H) = ((("art_tags_" + H) + "_") + F)
116+func Z (G,I) = ((("art_onsale_" + I) + "_") + G)
115117
116118
117-func Z (F,H) = ((("art_type_" + H) + "_") + F)
119+func aa (G,I) = ((("art_entitlement_" + I) + "_") + G)
118120
119121
120-func aa (F,H) = ((("art_price_" + H) + "_") + F)
122+func ab (G,I) = ((("art_tags_" + I) + "_") + G)
121123
122124
123-func ab (F,H) = ((("art_assetAccepted_" + H) + "_") + F)
125+func ac (G,I) = ((("art_type_" + I) + "_") + G)
124126
125127
126-func ac (F,ad) = ((("get_hashbytxidaddr_" + ad) + "_") + F)
128+func ad (G,I) = ((("art_price_" + I) + "_") + G)
127129
128130
129-func ae (af) = ("get_owner_by_hash_" + af)
131+func ae (G,I) = ((("art_assetAccepted_" + I) + "_") + G)
130132
131133
132-func ag (af,F) = ("get_txid_by_hash_owner_" + toBase58String(sha256_16Kb(toBytes((af + F)))))
134+func af (G,ag) = ((("get_hashbytxidaddr_" + ag) + "_") + G)
133135
134136
135-let ah = y(("certification_fee_" + toBase58String(g)))
136-
137-func ai (P) = valueOrElse(z(O(P)), 0)
137+func ah (ai) = ("get_owner_by_hash_" + ai)
138138
139139
140-func aj (H) = {
141- let P = v(N(H))
142- if ((P == ""))
140+func aj (ai,G) = ("get_txid_by_hash_owner_" + toBase58String(sha256_16Kb(toBytes((ai + G)))))
141+
142+
143+let ak = z(("certification_fee_" + toBase58String(g)))
144+
145+func al (Q) = valueOrElse(A(P(Q)), 0)
146+
147+
148+func am (I) = {
149+ let Q = w(O(I))
150+ if ((Q == ""))
143151 then 0
144- else ai(P)
152+ else al(Q)
145153 }
146154
147155
148-func ak (al,am) = if ((size(al) == 0))
156+func an (ao,ap) = if ((size(ao) == 0))
149157 then throw("Field cannot be is empty")
150- else if ((size(al) > am))
151- then throw((al + " is too long"))
158+ else if ((size(ao) > ap))
159+ then throw((ao + " is too long"))
152160 else true
153161
154162
155-func an (F) = {
156- let ao = valueOrElse(getString(e, E(F)), p)
157- if (if ((ao == p))
163+func aq (G) = {
164+ let ar = valueOrElse(getString(e, F(G)), p)
165+ if (if ((ar == p))
158166 then true
159- else (ao == q))
167+ else (ar == q))
160168 then "Register this account first with 'Account' tab"
161- else if ((ao == n))
169+ else if ((ar == n))
162170 then "Account suspended"
163- else if ((ao == o))
171+ else if ((ar == o))
164172 then "Account removed"
165173 else ""
166174 }
167175
168176
169-func ap (F,aq,ar,as,at) = {
170- let au = an(F)
171- if ((au != ""))
172- then throw(au)
173- else if ((size(aq) == 0))
177+func as (G,at,au,av,aw) = {
178+ let ax = aq(G)
179+ if ((ax != ""))
180+ then throw(ax)
181+ else if ((size(at) == 0))
174182 then throw("Display CID cannot be empty")
175- else if ((size(aq) != 46))
183+ else if ((size(at) != 46))
176184 then throw("This doesn't seem a valid CID!")
177- else if (!(ak(ar, 100)))
185+ else if (!(an(au, 100)))
178186 then throw("100 Char. max name")
179- else if (!(ak(as, 1000)))
187+ else if (!(an(av, 1000)))
180188 then throw("1000 Char. max description")
181- else if ((size(split(at, ",")) > 5))
189+ else if ((size(split(aw, ",")) > 5))
182190 then throw("5 tags max.")
183191 else ""
184192 }
185193
186194
187-func av (aw) = if ((size(aw.payments) == 0))
195+func ay (az) = if ((size(az.payments) == 0))
188196 then throw("No payment attached")
189197 else {
190- let ax = value(aw.payments[0])
191- let ay = value(ax.amount)
192- $Tuple2(ax, ay)
198+ let aA = value(az.payments[0])
199+ let aB = value(aA.amount)
200+ $Tuple2(aA, aB)
193201 }
194202
195203
196-func az (aw) = {
197- let aA = av(aw)
198- let ax = aA._1
199- let ay = aA._2
200- let aB = if (if (isDefined(ax.assetId))
201- then (ax.assetId == g)
204+func aC (az) = {
205+ let aD = ay(az)
206+ let aA = aD._1
207+ let aB = aD._2
208+ let aE = if (if (isDefined(aA.assetId))
209+ then (aA.assetId == g)
202210 else false)
203- then ax.assetId
211+ then aA.assetId
204212 else throw("Only USDN token accepted as transaction fee")
205- if ((ay != ah))
206- then throw(((("Payment amount should be " + toString(ah)) + " but is: ") + toString(ay)))
207- else $Tuple2(ay, aB)
213+ if ((aB != ak))
214+ then throw(((("Payment amount should be " + toString(ak)) + " but is: ") + toString(aB)))
215+ else $Tuple2(aB, aE)
208216 }
209217
210218
211-func aC (aD,H) = {
212- let aE = getInteger(this, T(aD, H))
213- if ($isInstanceOf(aE, "Int"))
219+func aF (aG,I) = {
220+ let aH = getInteger(this, U(aG, I))
221+ if ($isInstanceOf(aH, "Int"))
214222 then {
215- let aF = aE
216- if ((aF != 0))
223+ let aI = aH
224+ if ((aI != 0))
217225 then true
218226 else false
219227 }
221229 }
222230
223231
224-func aG (aw,aH,aI) = {
225- let aJ = av(aw)
226- let ax = aJ._1
227- let ay = aJ._2
228- let aB = if (!(isDefined(ax.assetId)))
232+func aJ (az,aK,aL) = {
233+ let aM = ay(az)
234+ let aA = aM._1
235+ let aB = aM._2
236+ let aE = if (!(isDefined(aA.assetId)))
229237 then throw("Wrong asset id")
230- else if (if ((size(aH) > 0))
231- then (toBase58String(value(ax.assetId)) == aH)
238+ else if (if ((size(aK) > 0))
239+ then (toBase58String(value(aA.assetId)) == aK)
232240 else false)
233- then ax.assetId
241+ then aA.assetId
234242 else throw("Wrong asset id")
235- if (if ((aB == unit))
236- then (aH != "")
243+ if (if ((aE == unit))
244+ then (aK != "")
237245 else false)
238246 then throw("Wrong asset id")
239- else if ((aI != ay))
240- then throw(((("Payment don't match " + toString(aI)) + " ") + toString(ay)))
241- else $Tuple2(ay, aB)
247+ else if ((aL != aB))
248+ then throw(((("Payment don't match " + toString(aL)) + " ") + toString(aB)))
249+ else $Tuple2(aB, aE)
242250 }
243251
244252
245-func aK (aB) = if ((aB != toBase58String(g)))
253+func aN (aE) = if ((aE != toBase58String(g)))
246254 then throw("Only USDN accepted")
247255 else true
248256
249257
250-func aL (aB,aM) = {
251- let aN = if (a)
258+func aO (aE,aP) = {
259+ let aQ = if (a)
252260 then 1
253- else (ah * 2)
254- if (if (if ((aB == toBase58String(g)))
255- then (aN > aM)
261+ else (ak * 2)
262+ if (if (if ((aE == toBase58String(g)))
263+ then (aQ > aP)
256264 else false)
257- then (aM != 0)
265+ then (aP != 0)
258266 else false)
259- then throw(("Wrong minimum sell price " + toString(aN)))
267+ then throw(("Wrong minimum sell price " + toString(aQ)))
260268 else true
261269 }
262270
263271
264-func aO (aB) = if ((aB == "WAVES"))
272+func aR (aE) = if ((aE == "WAVES"))
265273 then throw("Only USDN is accepted!")
266- else fromBase58String(aB)
274+ else fromBase58String(aE)
267275
268276
269-func aP (aQ) = {
270- let aR = v((aQ + "_OPEN"))
271- if ((aR == ""))
277+func aS (aT) = {
278+ let aU = w((aT + "_OPEN"))
279+ if ((aU == ""))
272280 then throw("Bid not found")
273281 else {
274- let aS = split(aR, "_")
275- let aT = parseIntValue(aS[1])
276- let aU = aO(aS[0])
277- if ((0 >= aT))
282+ let aV = split(aU, "_")
283+ let aW = parseIntValue(aV[1])
284+ let aX = aR(aV[0])
285+ if ((0 >= aW))
278286 then throw("Wrong amount")
279- else $Tuple2(aT, aU)
287+ else $Tuple2(aW, aX)
280288 }
281289 }
282290
283291
284-func aV (aw) = if (!(l))
292+func aY (az) = if (!(l))
285293 then throw(m)
286- else $Tuple3(toBase58String(aw.transactionId), toBase58String(aw.caller.bytes), lastBlock.timestamp)
294+ else $Tuple3(toBase58String(az.transactionId), toBase58String(az.caller.bytes), lastBlock.timestamp)
287295
288296
289-func aW (aw,aX,aY,P) = if (if (if ((toBase58String(aw.caller.bytes) == aX))
290- then (aY != "")
297+func aZ (az,ba,bb,Q) = if (if (if ((toBase58String(az.caller.bytes) == ba))
298+ then (bb != "")
291299 else false)
292- then (P != "")
300+ then (Q != "")
293301 else false)
294302 then true
295303 else false
296304
297305
298-func aZ (aw,aX,H,ba) = {
299- let bb = (toBase58String(aw.caller.bytes) == aX)
300- let bc = z("total_nft_issued")
301- let bd = v(I(aX, H))
302- if ((bd == ""))
306+func bc (az,ba,I,bd) = {
307+ let be = (toBase58String(az.caller.bytes) == ba)
308+ let bf = A("total_nft_issued")
309+ let bg = w(J(ba, I))
310+ if ((bg == ""))
303311 then throw("Art doesn't exist")
304312 else {
305- let be = B(W(aX, H))
306- let bf = z(T(aX, H))
307- let aI = valueOrElse(z(aa(aX, H)), (ah * 2))
308- let aH = if (bb)
313+ let bh = C(Z(ba, I))
314+ let bi = A(U(ba, I))
315+ let aL = valueOrElse(A(ad(ba, I)), (ak * 2))
316+ let aK = if (be)
309317 then toBase58String(g)
310- else v(ab(aX, H))
311- let bg = z(L(aX, H))
312- if (if (if (!(ba))
313- then !(bb)
318+ else w(ae(ba, I))
319+ let bj = A(N(ba, I))
320+ if (if (if (!(bd))
321+ then !(be)
314322 else false)
315- then if (if ((0 >= aI))
323+ then if (if ((0 >= aL))
316324 then true
317- else !(be))
325+ else !(bh))
318326 then true
319- else (0 >= bg)
327+ else (0 >= bj)
320328 else false)
321329 then throw("Art not for sale")
322- else if (if (if (!(ba))
323- then bb
330+ else if (if (if (!(bd))
331+ then be
324332 else false)
325- then (0 >= bg)
333+ then (0 >= bj)
326334 else false)
327335 then throw("Max issuable not set")
328- else $Tuple7(bc, bd, bf, aI, aH, bg, be)
336+ else $Tuple7(bf, bg, bi, aL, aK, bj, bh)
329337 }
330338 }
331339
332340
333-func bh (aw,F,aX,H,aY,P,aH,aI,ba) = {
334- let au = an(aX)
335- if (if (ba)
336- then (au != "")
341+func bk (az,G,ba,I,bb,Q,aK,aL,bd) = {
342+ let ax = aq(ba)
343+ if (if (bd)
344+ then (ax != "")
337345 else false)
338- then throw(au)
346+ then throw(ax)
339347 else {
340- let aQ = ((((((("bid_" + H) + "_") + aX) + "_") + aY) + "_") + P)
341- let bi = if (ba)
342- then aP(aQ)
343- else aG(aw, aH, aI)
344- let ay = bi._1
345- let aB = bi._2
346- $Tuple3(aQ, ay, aB)
348+ let aT = ((((((("bid_" + I) + "_") + ba) + "_") + bb) + "_") + Q)
349+ let bl = if (bd)
350+ then aS(aT)
351+ else aJ(az, aK, aL)
352+ let aB = bl._1
353+ let aE = bl._2
354+ $Tuple3(aT, aB, aE)
347355 }
348356 }
349357
350358
351-func bj (aX,aB,ay,bf,bg) = {
352- let bk = A(aX)
353- let bl = if ((bk > height))
359+func bm (ba,aE,aB,bi,bj) = {
360+ let bn = B(ba)
361+ let bo = if ((bn > height))
354362 then 0
355- else if ((aB == g))
356- then i
363+ else if ((aE == g))
364+ then k
357365 else throw("Only USDN is accepted!")
358- let bm = fraction(ay, bl, 1000)
359- let bn = (ay - bm)
360- if ((bf == bg))
366+ let bp = fraction(aB, bo, 1000)
367+ let bq = (aB - bp)
368+ if ((bi == bj))
361369 then throw("Art sold out")
362370 else {
363- let bo = (bf + 1)
364- $Tuple3(bm, bn, bo)
371+ let br = (bi + 1)
372+ $Tuple3(bp, bq, br)
365373 }
366374 }
367375
368376
369-func bp (aX,H,bd,bo,bg,bc,F,aY,P,aw,be) = {
370- let bq = ((((((((("Creator: " + aX) + ",ArtID: ") + H) + ",Artwork name: ") + bd) + ",Issue: ") + toString(bo)) + "/") + toString(bg))
371- let br = if (if ((bo == bg))
377+func bs (ba,I,bg,br,bj,bf,G,bb,Q,az,bh) = {
378+ let bt = ((((((((("Creator: " + ba) + ",ArtID: ") + I) + ",Artwork name: ") + bg) + ",Issue: ") + toString(br)) + "/") + toString(bj))
379+ let bu = if (if ((br == bj))
372380 then true
373- else !(be))
381+ else !(bh))
374382 then false
375383 else true
376- let bs = if ((aY != ""))
377- then addressFromStringValue(aY)
378- else aw.caller
379- $Tuple3(br, bs, bq)
384+ let bv = if ((bb != ""))
385+ then addressFromStringValue(bb)
386+ else az.caller
387+ $Tuple3(bu, bv, bt)
380388 }
381389
382390
383-func bt (bu) = if ((4 > bu))
391+func bw (bx) = if ((4 > bx))
384392 then "SSR"
385- else if ((11 > bu))
393+ else if ((11 > bx))
386394 then "SR"
387- else if ((101 > bu))
395+ else if ((101 > bx))
388396 then "R"
389397 else "N"
390398
391399
392-func bv (aB,aQ,bw) = {
393- let bx = if (!(isDefined(aB)))
400+func by (aE,aT,bz) = {
401+ let bA = if (!(isDefined(aE)))
394402 then throw("Only USDN is accepted")
395- else toBase58String(value(aB))
396- let aR = v((aQ + "_OPEN"))
397- let by = DeleteEntry((aQ + "_OPEN"))
398- let bz = StringEntry((aQ + "_CLOSED"), ((aR + "_") + toString(bw)))
399- $Tuple3(bx, by, bz)
403+ else toBase58String(value(aE))
404+ let aU = w((aT + "_OPEN"))
405+ let bB = DeleteEntry((aT + "_OPEN"))
406+ let bC = StringEntry((aT + "_CLOSED"), ((aU + "_") + toString(bz)))
407+ $Tuple3(bA, bB, bC)
400408 }
401409
402410
403-func bA (aw,H,aX,P,aY,ba) = {
404- let bB = aV(aw)
405- let bC = bB._1
406- let F = bB._2
407- let bw = bB._3
408- let bD = aZ(aw, aX, H, ba)
409- let bc = bD._1
410- let bd = bD._2
411- let bf = bD._3
412- let aI = bD._4
413- let aH = bD._5
414- let bg = bD._6
415- let be = bD._7
416- let aR = bh(aw, F, aX, H, aY, P, aH, aI, ba)
417- let aQ = aR._1
418- let ay = aR._2
419- let aB = aR._3
420- let bE = bj(aX, value(aB), ay, bf, bg)
421- let bm = bE._1
422- let bn = bE._2
423- let bo = bE._3
424- let bF = bp(aX, H, bd, bo, bg, bc, F, aY, P, aw, be)
425- let br = bF._1
426- let bs = bF._2
427- let bq = bF._3
428- let bG = invoke(this, "mintNft", [bc, bq, toString(bs)], nil)
429- if ((bG == bG))
411+func bD (az,I,ba,Q,bb,bd) = {
412+ let bE = aY(az)
413+ let bF = bE._1
414+ let G = bE._2
415+ let bz = bE._3
416+ let bG = bc(az, ba, I, bd)
417+ let bf = bG._1
418+ let bg = bG._2
419+ let bi = bG._3
420+ let aL = bG._4
421+ let aK = bG._5
422+ let bj = bG._6
423+ let bh = bG._7
424+ let aU = bk(az, G, ba, I, bb, Q, aK, aL, bd)
425+ let aT = aU._1
426+ let aB = aU._2
427+ let aE = aU._3
428+ let bH = bm(ba, value(aE), aB, bi, bj)
429+ let bp = bH._1
430+ let bq = bH._2
431+ let br = bH._3
432+ let bI = bs(ba, I, bg, br, bj, bf, G, bb, Q, az, bh)
433+ let bu = bI._1
434+ let bv = bI._2
435+ let bt = bI._3
436+ let bJ = invoke(this, "mintNft", [bf, bt, toString(bv)], nil)
437+ if ((bJ == bJ))
430438 then {
431- let bH = {
432- let aE = bG
433- if ($isInstanceOf(aE, "String"))
439+ let bK = {
440+ let aH = bJ
441+ if ($isInstanceOf(aH, "String"))
434442 then {
435- let bI = aE
436- bI
443+ let bL = aH
444+ bL
437445 }
438446 else throw("Incorrect invoke result")
439447 }
440- let bJ = bv(aB, aQ, bw)
441- let bx = bJ._1
442- let by = bJ._2
443- let bz = bJ._3
444- let bK = ((((((("art_sold_" + toString(bo)) + "_of_") + toString(bg)) + "_") + H) + "_") + aX)
445- let bL = bt(bo)
446- let bM = if (!(ba))
447- then ((((((((((F + "_") + toString(bw)) + "_") + bC) + "_") + toString(aI)) + "_") + aH) + "_") + bH)
448- else ((((((((((toString(bs) + "_") + toString(bw)) + "_") + bC) + "_") + toString(ay)) + "_") + bx) + "_") + bH)
449- let bN = StringEntry(bK, bM)
450- let bO = [IntegerEntry(T(aX, H), bo), StringEntry(("nft_" + bH), bK), StringEntry(("nft_rarity_" + bH), bL), IntegerEntry("total_nft_issued", (bc + 1)), BooleanEntry(W(aX, H), br), ScriptTransfer(Address(fromBase58String(aX)), bn, aB), ScriptTransfer(Address(fromBase58String(c)), bm, aB), StringEntry(U(bH), aX)]
451- let bP = invoke(addressFromStringValue(d), "createCert", [toString(bs), bH, aX], nil)
452- if ((bP == bP))
453- then if (ba)
454- then (((bO :+ bN) :+ bz) :+ by)
455- else bN :: bO
448+ let bM = by(aE, aT, bz)
449+ let bA = bM._1
450+ let bB = bM._2
451+ let bC = bM._3
452+ let bN = ((((((("art_sold_" + toString(br)) + "_of_") + toString(bj)) + "_") + I) + "_") + ba)
453+ let bO = bw(br)
454+ let bP = if (!(bd))
455+ then ((((((((((G + "_") + toString(bz)) + "_") + bF) + "_") + toString(aL)) + "_") + aK) + "_") + bK)
456+ else ((((((((((toString(bv) + "_") + toString(bz)) + "_") + bF) + "_") + toString(aB)) + "_") + bA) + "_") + bK)
457+ let bQ = StringEntry(bN, bP)
458+ let bR = [IntegerEntry(U(ba, I), br), StringEntry(("nft_" + bK), bN), StringEntry(("nft_rarity_" + bK), bO), IntegerEntry("total_nft_issued", (bf + 1)), BooleanEntry(Z(ba, I), bu), ScriptTransfer(Address(fromBase58String(ba)), bq, aE), ScriptTransfer(Address(fromBase58String(c)), bp, aE), StringEntry(V(bK), ba), StringEntry(X(bK), I)]
459+ let bS = invoke(addressFromStringValue(d), "createCert", [toString(bv), bK, ba], nil)
460+ if ((bS == bS))
461+ then if (bd)
462+ then (((bR :+ bQ) :+ bC) :+ bB)
463+ else bQ :: bR
456464 else throw("Strict value is not equal to itself.")
457465 }
458466 else throw("Strict value is not equal to itself.")
459467 }
460468
461469
462-func bQ (aw,H,aX) = {
463- let bR = aV(aw)
464- let bC = bR._1
465- let F = bR._2
466- let bw = bR._3
467- let bS = av(aw)
468- let ax = bS._1
469- let ay = bS._2
470- let aB = if (!(isDefined(ax.assetId)))
470+func bT (az,I,ba) = {
471+ let bU = aY(az)
472+ let bF = bU._1
473+ let G = bU._2
474+ let bz = bU._3
475+ let bV = ay(az)
476+ let aA = bV._1
477+ let aB = bV._2
478+ let aE = if (!(isDefined(aA.assetId)))
471479 then throw("Only USDN is accepted!")
472- else toBase58String(value(ax.assetId))
473- let bT = z(("current_bidamount_" + H))
474- if (!(aK(aB)))
480+ else toBase58String(value(aA.assetId))
481+ let bW = A(("current_bidamount_" + I))
482+ let bX = valueOrElse(A(ad(ba, I)), (ak * 2))
483+ if (!(aN(aE)))
475484 then throw("asset not accepted")
476- else if (!(aL(aB, ay)))
477- then throw("Wrong min sell")
485+ else if ((bX > aB))
486+ then throw("Bid is below min price!")
478487 else {
479- let bf = z(T(aX, H))
480- let bg = z(L(aX, H))
481- if ((0 >= bg))
488+ let bi = A(U(ba, I))
489+ let bj = A(N(ba, I))
490+ if ((0 >= bj))
482491 then throw("No max edition set for this artwork")
483- else if ((bf >= bg))
492+ else if ((bi >= bj))
484493 then throw("Sold out, you cannot bid")
485- else [StringEntry((((((((("bid_" + H) + "_") + aX) + "_") + F) + "_") + bC) + "_OPEN"), ((((aB + "_") + toString(ay)) + "_") + toString(bw))), IntegerEntry(("current_bidamount_" + H), (bT + 1))]
494+ else [StringEntry((((((((("bid_" + I) + "_") + ba) + "_") + G) + "_") + bF) + "_OPEN"), ((((aE + "_") + toString(aB)) + "_") + toString(bz))), IntegerEntry(("current_bidamount_" + I), (bW + 1))]
486495 }
487496 }
488497
489498
490-func bU (aw,H,aX) = {
491- let bV = z(R(aX, H))
492- let bW = aj(H)
493- if ((height > bV))
499+func bY (az,I,ba) = {
500+ let bZ = A(S(ba, I))
501+ let ca = am(I)
502+ if ((height > bZ))
494503 then throw("This auction is finished already!")
495504 else {
496- let bX = aV(aw)
497- let bC = bX._1
498- let F = bX._2
499- let bw = bX._3
500- let bY = av(aw)
501- let ax = bY._1
502- let ay = bY._2
503- if ((bW >= ay))
504- then throw(("Please place a bid higher than: " + toString(bW)))
505+ let cb = aY(az)
506+ let bF = cb._1
507+ let G = cb._2
508+ let bz = cb._3
509+ let cc = ay(az)
510+ let aA = cc._1
511+ let aB = cc._2
512+ if ((ca >= aB))
513+ then throw(("Please place a bid higher than: " + toString(ca)))
505514 else {
506- let aB = if (!(isDefined(ax.assetId)))
515+ let aE = if (!(isDefined(aA.assetId)))
507516 then throw("Only USDN is accepted!")
508- else toBase58String(value(ax.assetId))
509- let bT = z(("current_bidamount_" + H))
510- if (!(aK(aB)))
517+ else toBase58String(value(aA.assetId))
518+ let bW = A(("current_bidamount_" + I))
519+ let bX = valueOrElse(A(ad(ba, I)), (ak * 2))
520+ if (!(aN(aE)))
511521 then throw("asset not accepted")
512- else if (!(aL(aB, ay)))
513- then throw("Wrong min sell")
522+ else if ((bX > aB))
523+ then throw("Bid is below min price!")
514524 else {
515- let bf = z(T(aX, H))
516- let bg = z(L(aX, H))
517- if ((0 >= bg))
525+ let bi = A(U(ba, I))
526+ let bj = A(N(ba, I))
527+ if ((0 >= bj))
518528 then throw("No max edition set for this artwork")
519- else if ((bf >= bg))
529+ else if ((bi >= bj))
520530 then throw("Sold out, you cannot bid")
521- else [StringEntry((((((((("bid_" + H) + "_") + aX) + "_") + F) + "_") + bC) + "_OPEN"), ((((aB + "_") + toString(ay)) + "_") + toString(bw))), IntegerEntry(("current_bidamount_" + H), (bT + 1)), StringEntry(N(H), toBase58String(aw.transactionId)), IntegerEntry(O(toBase58String(aw.transactionId)), ay)]
531+ else [StringEntry((((((((("bid_" + I) + "_") + ba) + "_") + G) + "_") + bF) + "_OPEN"), ((((aE + "_") + toString(aB)) + "_") + toString(bz))), IntegerEntry(("current_bidamount_" + I), (bW + 1)), StringEntry(O(I), toBase58String(az.transactionId)), IntegerEntry(P(toBase58String(az.transactionId)), aB)]
522532 }
523533 }
524534 }
525535 }
526536
527537
528-func bZ (aw,H,aX,P,aY) = {
529- let F = toBase58String(aw.caller.bytes)
530- if ((F != aX))
538+func cd (az,I,ba,Q,bb) = {
539+ let G = toBase58String(az.caller.bytes)
540+ if ((G != ba))
531541 then throw("You cannot do this action")
532- else bA(aw, H, aX, P, aY, true)
542+ else bD(az, I, ba, Q, bb, true)
533543 }
534544
535545
536-func ca (H,aX) = {
537- let bf = z(T(aX, H))
538- let bg = z(L(aX, H))
539- let cb = z(R(aX, H))
540- let cc = z(Q(aX, H))
541- let bV = (cc + height)
542- if ((height > cb))
543- then if ((bf == bg))
546+func ce (I,ba) = {
547+ let bi = A(U(ba, I))
548+ let bj = A(N(ba, I))
549+ let cf = A(S(ba, I))
550+ let cg = A(R(ba, I))
551+ let bZ = (cg + height)
552+ if ((height > cf))
553+ then if ((bi == bj))
544554 then throw("Can't restart auction, max amount sold")
545- else [IntegerEntry(R(aX, H), bV), DeleteEntry(N(H))]
555+ else [IntegerEntry(S(ba, I), bZ), DeleteEntry(O(I))]
546556 else throw("Previous auction isn't completed yet")
547557 }
548558
549559
550-func cd (aw,H,aX,P,aY) = {
551- let bV = z(R(aX, H))
552- let ce = v(N(H))
553- if ((height > bV))
554- then if ((P == ce))
560+func ch (az,I,ba,Q,bb) = {
561+ let bZ = A(S(ba, I))
562+ let ci = w(O(I))
563+ if ((height > bZ))
564+ then if ((Q == ci))
555565 then {
556- let cf = bA(aw, H, aX, P, aY, true)
557- let cg = ca(H, aX)
558- (cg ++ cf)
566+ let cj = bD(az, I, ba, Q, bb, true)
567+ let ck = ce(I, ba)
568+ (ck ++ cj)
559569 }
560570 else throw("This is not the winning bid!")
561571 else throw("This auction is not yet finished!")
562572 }
563573
564574
565-func ch (aw,H,aX,P) = {
566- let ci = aV(aw)
567- let bC = ci._1
568- let F = ci._2
569- let bw = ci._3
570- let bT = z(("current_bidamount_" + H))
571- let aQ = ((((((("bid_" + H) + "_") + aX) + "_") + F) + "_") + P)
572- let aR = w((aQ + "_OPEN"), "Bid not found")
573- let aS = split(aR, "_")
574- let aB = aO(aS[0])
575- let cj = "CANCELED"
576-[DeleteEntry((aQ + "_OPEN")), StringEntry(((aQ + "_") + cj), ((aR + "_") + toString(bw))), IntegerEntry(("current_bidamount_" + H), (bT - 1)), ScriptTransfer(Address(fromBase58String(F)), parseIntValue(aS[1]), aB)]
575+func cl (az,I,ba,Q) = {
576+ let cm = aY(az)
577+ let bF = cm._1
578+ let G = cm._2
579+ let bz = cm._3
580+ let bW = A(("current_bidamount_" + I))
581+ let aT = ((((((("bid_" + I) + "_") + ba) + "_") + G) + "_") + Q)
582+ let aU = x((aT + "_OPEN"), "Bid not found")
583+ let aV = split(aU, "_")
584+ let aE = aR(aV[0])
585+ let cn = "CANCELED"
586+[DeleteEntry((aT + "_OPEN")), StringEntry(((aT + "_") + cn), ((aU + "_") + toString(bz))), IntegerEntry(("current_bidamount_" + I), (bW - 1)), ScriptTransfer(Address(fromBase58String(G)), parseIntValue(aV[1]), aE)]
577587 }
578588
579589
580-func ck (aw,H,aX,P) = {
581- let ci = aV(aw)
582- let bC = ci._1
583- let F = ci._2
584- let bw = ci._3
585- let bT = z(("current_bidamount_" + H))
586- let aQ = ((((((("bid_" + H) + "_") + aX) + "_") + F) + "_") + P)
587- let aR = w((aQ + "_OPEN"), "Bid not found")
588- let aS = split(aR, "_")
589- let aB = aO(aS[0])
590- let cj = "CANCELED"
591- let aT = parseIntValue(aS[1])
592- let ce = v(N(H))
593- if ((P == ce))
590+func co (az,I,ba,Q) = {
591+ let cm = aY(az)
592+ let bF = cm._1
593+ let G = cm._2
594+ let bz = cm._3
595+ let bW = A(("current_bidamount_" + I))
596+ let aT = ((((((("bid_" + I) + "_") + ba) + "_") + G) + "_") + Q)
597+ let aU = x((aT + "_OPEN"), "Bid not found")
598+ let aV = split(aU, "_")
599+ let aE = aR(aV[0])
600+ let cn = "CANCELED"
601+ let aW = parseIntValue(aV[1])
602+ let ci = w(O(I))
603+ if ((Q == ci))
594604 then throw("You can't cancel the highest bid!")
595- else [DeleteEntry((aQ + "_OPEN")), StringEntry(((aQ + "_") + cj), ((aR + "_") + toString(bw))), IntegerEntry(("current_bidamount_" + H), (bT - 1)), ScriptTransfer(Address(fromBase58String(F)), aT, aB)]
605+ else [DeleteEntry((aT + "_OPEN")), StringEntry(((aT + "_") + cn), ((aU + "_") + toString(bz))), IntegerEntry(("current_bidamount_" + I), (bW - 1)), ScriptTransfer(Address(fromBase58String(G)), aW, aE)]
596606 }
597607
598608
599-@Callable(aw)
600-func mintNft (bc,bq,bs) = if ((aw.caller == this))
609+@Callable(az)
610+func mintNft (bf,bt,bv) = if ((az.caller == this))
601611 then {
602- let cl = Address(fromBase58String(bs))
603- let cm = Issue(("SCONEX_" + toString((bc + 1))), bq, 1, 0, false)
604- let bH = calculateAssetId(cm)
605- $Tuple2([cm, ScriptTransfer(cl, 1, bH)], toBase58String(bH))
612+ let cp = Address(fromBase58String(bv))
613+ let cq = Issue(("SCONEX_" + toString((bf + 1))), bt, 1, 0, false)
614+ let bK = calculateAssetId(cq)
615+ $Tuple2([cq, ScriptTransfer(cp, 1, bK)], toBase58String(bK))
606616 }
607617 else throw("Only the dApp can mint NFT's")
608618
609619
610620
611-@Callable(aw)
612-func addArtwork (af,ar,as,at,cn,aq,co) = {
613- let cp = aV(aw)
614- let H = cp._1
615- let F = cp._2
616- let bw = cp._3
617- let cq = ap(F, aq, ar, as, at)
618- if ((cq != ""))
619- then throw("Something went wrong!")
620- else {
621- let cr = az(aw)
622- let ay = cr._1
623- let aB = cr._2
624- if (!(isDefined(ay)))
625- then throw("Something went wrong")
621+@Callable(az)
622+func addArtwork (ai,au,av,aw,cr,at,cs,ct) = {
623+ let cu = aY(az)
624+ let I = cu._1
625+ let G = cu._2
626+ let bz = cu._3
627+ if (containsElement(i, cr))
628+ then {
629+ let cv = as(G, at, au, av, aw)
630+ if ((cv != ""))
631+ then throw("Something went wrong!")
626632 else {
627- let cs = v(ag(af, F))
628- if ((cs != ""))
629- then throw("You already added it")
633+ let cw = aC(az)
634+ let aB = cw._1
635+ let aE = cw._2
636+ if (!(isDefined(aB)))
637+ then throw("Something went wrong")
630638 else {
631- let ct = v(ae(af))
632- if ((ct != ""))
633- then throw("This hash is already registered")
634- else [StringEntry(ae(af), F), StringEntry(ag(af, F), H), IntegerEntry(G(F, H), bw), StringEntry(I(F, H), ar), StringEntry(J(F, H), as), StringEntry(K(F, H), aq), StringEntry(Z(F, H), cn), StringEntry(Y(F, H), at), IntegerEntry(L(F, H), 0), IntegerEntry(T(F, H), 0), BooleanEntry(W(F, H), false), StringEntry(ac(F, H), af), StringEntry(X(F, H), co), ScriptTransfer(Address(fromBase58String(c)), ay, aB)]
639+ let cx = if (containsElement(j, cr))
640+ then [StringEntry(M(G, I), ct)]
641+ else nil
642+ let cy = w(aj(ai, G))
643+ if ((cy != ""))
644+ then throw("You already added it")
645+ else {
646+ let cz = w(ah(ai))
647+ if ((cz != ""))
648+ then throw("This hash is already registered")
649+ else (cx ++ [StringEntry(ah(ai), G), StringEntry(aj(ai, G), I), IntegerEntry(H(G, I), bz), StringEntry(J(G, I), au), StringEntry(K(G, I), av), StringEntry(L(G, I), at), StringEntry(ac(G, I), cr), StringEntry(ab(G, I), aw), IntegerEntry(N(G, I), 0), IntegerEntry(U(G, I), 0), BooleanEntry(Z(G, I), false), StringEntry(af(G, I), ai), StringEntry(aa(G, I), cs), ScriptTransfer(Address(fromBase58String(c)), aB, aE)])
650+ }
635651 }
636652 }
637653 }
654+ else throw("Unknown type")
638655 }
639656
640657
641658
642-@Callable(aw)
643-func sellArtwork (H,aM,cu,aB,cv,cw,cc) = {
644- let cx = aV(aw)
645- let bC = cx._1
646- let F = cx._2
647- let bd = v(I(F, H))
648- if (!(containsElement([r, s], cv)))
649- then throw("We don't know this auction type")
650- else if ((bd == ""))
651- then throw("This art doesn't match your account")
652- else {
653- let bT = z(("current_bidamount_" + H))
654- if (!(aK(aB)))
655- then throw("Something went wrong!")
656- else if (!(aL(aB, aM)))
657- then throw("Something went wrong!")
658- else {
659- let au = an(F)
660- if ((au != ""))
661- then throw(au)
659+@Callable(az)
660+func sellArtwork (I,aP,cA,aE,cB,cg,cC) = {
661+ let cD = aY(az)
662+ let bF = cD._1
663+ let G = cD._2
664+ let bg = w(J(G, I))
665+ if ((0 > cC))
666+ then throw("Royalty percentage should be above 0")
667+ else if ((cC > 85))
668+ then throw("Royalty percentage should be below 85")
669+ else if (!(containsElement([r, s, t], cB)))
670+ then throw("We don't know this auction type")
671+ else if ((bg == ""))
672+ then throw("This art doesn't match your account")
673+ else {
674+ let bW = A(("current_bidamount_" + I))
675+ if (!(aN(aE)))
676+ then throw("Something went wrong!")
677+ else if (!(aO(aE, aP)))
678+ then throw("Something went wrong!")
662679 else {
663- let bf = z(T(F, H))
664- let bg = z(L(F, H))
665- if ((cu > 101))
666- then throw("101 editions max per artwork")
667- else if (if ((bf != 0))
668- then (bf == bg)
669- else false)
670- then throw("Max edition reached.")
671- else if (if ((bf > 0))
672- then (bg != cu)
673- else false)
674- then throw("Cannot change maximum issuable anymore")
675- else if (if ((bT > 0))
676- then (bg != cu)
680+ let ax = aq(G)
681+ if ((ax != ""))
682+ then throw(ax)
683+ else {
684+ let bi = A(U(G, I))
685+ let bj = A(N(G, I))
686+ if ((cA > 10000))
687+ then throw("10000 editions max per artwork")
688+ else if (if ((bi != 0))
689+ then (bi == bj)
677690 else false)
678- then throw("Cannot change maximum issuable with active orders")
679- else {
680- let br = if (if ((aM > 0))
681- then (cu > 0)
691+ then throw("Max edition reached.")
692+ else if (if ((bi > 0))
693+ then (bj != cA)
694+ else false)
695+ then throw("Cannot change maximum issuable anymore")
696+ else if (if ((bW > 0))
697+ then (bj != cA)
682698 else false)
683- then true
684- else false
685- let bV = (cc + height)
686-[BooleanEntry(W(F, H), br), IntegerEntry(aa(F, H), aM), IntegerEntry(L(F, H), cu), IntegerEntry(M(F, H), cw), IntegerEntry(Q(F, H), cc), IntegerEntry(R(F, H), bV), StringEntry(ab(F, H), aB), StringEntry(S(F, H), cv)]
687- }
699+ then throw("Cannot change maximum issuable with active orders")
700+ else {
701+ let bu = if (if ((aP > 0))
702+ then (cA > 0)
703+ else false)
704+ then true
705+ else false
706+ let bZ = (cg + height)
707+[BooleanEntry(Z(G, I), bu), IntegerEntry(ad(G, I), aP), IntegerEntry(N(G, I), cA), IntegerEntry(R(G, I), cg), IntegerEntry(S(G, I), bZ), StringEntry(ae(G, I), aE), StringEntry(T(G, I), cB), IntegerEntry(Y(G, I), cC)]
708+ }
709+ }
688710 }
689- }
690- }
711+ }
691712 }
692713
693714
694715
695-@Callable(aw)
696-func buyArtwork (H,aX) = bA(aw, H, aX, "", "", false)
716+@Callable(az)
717+func buyArtwork (I,ba) = {
718+ let cB = w(T(ba, I))
719+ if ((cB == t))
720+ then bD(az, I, ba, "", "", false)
721+ else throw("Direct buy only allowed when no auction type is set!")
722+ }
697723
698724
699725
700-@Callable(aw)
701-func deleteEntry (cy) = {
702- let F = toString(addressFromPublicKey(aw.callerPublicKey))
703- if (containsElement(h, F))
704- then [DeleteEntry(cy)]
726+@Callable(az)
727+func updateTags (cE,I,aw) = {
728+ let G = toString(addressFromPublicKey(az.callerPublicKey))
729+ if (containsElement(h, G))
730+ then if ((size(split(aw, ",")) > 5))
731+ then throw("5 tags max.")
732+ else {
733+ let cF = x(ab(cE, I), "No tags created with this key, so can't update!")
734+ if ((aw == cF))
735+ then throw("Tags are the same as old tags!")
736+ else [StringEntry(ab(cE, I), aw)]
737+ }
705738 else throw("no")
706739 }
707740
708741
709742
710-@Callable(aw)
711-func setBid (H,aX) = {
712- let cv = v(S(aX, H))
713- if ((cv == r))
714- then bQ(aw, H, aX)
715- else if ((cv == s))
716- then bU(aw, H, aX)
717- else throw((("Unknown auction type :" + cv) + ", please contact the admins"))
743+@Callable(az)
744+func deleteEntry (cG) = {
745+ let G = toString(addressFromPublicKey(az.callerPublicKey))
746+ if (containsElement(h, G))
747+ then [DeleteEntry(cG)]
748+ else throw("no")
718749 }
719750
720751
721752
722-@Callable(aw)
723-func acceptBid (H,aX,P,aY) = {
724- let cv = v(S(aX, H))
725- if ((cv == r))
726- then bZ(aw, H, aX, P, aY)
727- else if ((cv == s))
728- then cd(aw, H, aX, P, aY)
729- else throw((("Unknown auction type :" + cv) + ", please contact the admins"))
753+@Callable(az)
754+func setBid (I,ba) = {
755+ let cB = w(T(ba, I))
756+ if ((cB == r))
757+ then bT(az, I, ba)
758+ else if ((cB == s))
759+ then bY(az, I, ba)
760+ else throw((("Unknown auction type :" + cB) + ", please contact the admins"))
730761 }
731762
732763
733764
734-@Callable(aw)
735-func cancelBid (H,aX,P) = {
736- let cv = v(S(aX, H))
737- if ((cv == r))
738- then ch(aw, H, aX, P)
739- else ck(aw, H, aX, P)
765+@Callable(az)
766+func acceptBid (I,ba,Q,bb) = {
767+ let cB = w(T(ba, I))
768+ if ((cB == r))
769+ then cd(az, I, ba, Q, bb)
770+ else if ((cB == s))
771+ then ch(az, I, ba, Q, bb)
772+ else throw((("Unknown auction type :" + cB) + ", please contact the admins"))
773+ }
774+
775+
776+
777+@Callable(az)
778+func cancelBid (I,ba,Q) = {
779+ let cB = w(T(ba, I))
780+ if ((cB == r))
781+ then cl(az, I, ba, Q)
782+ else co(az, I, ba, Q)
740783 }
741784
742785
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
20-let i = 150
20+let i = ["IMAGE", "PDF", "VIDEO"]
2121
22-let j = 30
22+let j = ["PDF"]
2323
24-let k = 70
24+let k = 150
2525
2626 let l = valueOrElse(getBoolean(e, "conf_dapp_is_running"), true)
2727
2828 let m = valueOrElse(getString(e, "conf_maintenance_msg"), "")
2929
3030 let n = "SUSPENDED"
3131
3232 let o = "REMOVED"
3333
3434 let p = "UNREGISTERED"
3535
3636 let q = "ALLOWED"
3737
3838 let r = "BIDTYPE"
3939
4040 let s = "TRADITIONAL"
4141
42-func t (u) = valueOrElse(getString(e, u), "")
42+let t = "DIRECT"
43+
44+func u (v) = valueOrElse(getString(e, v), "")
4345
4446
45-func v (u) = valueOrElse(getString(this, u), "")
47+func w (v) = valueOrElse(getString(this, v), "")
4648
4749
48-func w (u,x) = valueOrErrorMessage(getString(this, u), x)
50+func x (v,y) = valueOrErrorMessage(getString(this, v), y)
4951
5052
51-func y (u) = valueOrErrorMessage(getInteger(b, u), "Integer undefine or 0 in oracle")
53+func z (v) = valueOrErrorMessage(getInteger(b, v), "Integer undefine or 0 in oracle")
5254
5355
54-func z (u) = valueOrElse(getInteger(this, u), 0)
56+func A (v) = valueOrElse(getInteger(this, v), 0)
5557
5658
57-func A (u) = valueOrElse(getInteger(f, u), 0)
59+func B (v) = valueOrElse(getInteger(f, v), 0)
5860
5961
60-func B (u) = valueOrElse(getBoolean(this, u), false)
62+func C (v) = valueOrElse(getBoolean(this, v), false)
6163
6264
63-func C (D) = (size(D) == 64)
65+func D (E) = (size(E) == 64)
6466
6567
66-func E (F) = ("user_status_" + F)
68+func F (G) = ("user_status_" + G)
6769
6870
69-func G (F,H) = ((("art_date_" + H) + "_") + F)
71+func H (G,I) = ((("art_date_" + I) + "_") + G)
7072
7173
72-func I (F,H) = ((("art_name_" + H) + "_") + F)
74+func J (G,I) = ((("art_name_" + I) + "_") + G)
7375
7476
75-func J (F,H) = ((("art_desc_" + H) + "_") + F)
77+func K (G,I) = ((("art_desc_" + I) + "_") + G)
7678
7779
78-func K (F,H) = ((("art_display_cid_" + H) + "_") + F)
80+func L (G,I) = ((("art_display_cid_" + I) + "_") + G)
7981
8082
81-func L (F,H) = ((("art_maxmint_" + H) + "_") + F)
83+func M (G,I) = ((("art_preview_cid_" + I) + "_") + G)
8284
8385
84-func M (F,H) = ((("art_minprice_" + H) + "_") + F)
86+func N (G,I) = ((("art_maxmint_" + I) + "_") + G)
8587
8688
87-func N (H) = ("art_highestBidBidId_" + H)
89+func O (I) = ("art_highestBidBidId_" + I)
8890
8991
90-func O (P) = ("bid_" + P)
92+func P (Q) = ("bid_" + Q)
9193
9294
93-func Q (F,H) = ((("art_duration_" + H) + "_") + F)
95+func R (G,I) = ((("art_duration_" + I) + "_") + G)
9496
9597
96-func R (F,H) = ((("art_endheight_" + H) + "_") + F)
98+func S (G,I) = ((("art_endheight_" + I) + "_") + G)
9799
98100
99-func S (F,H) = ((("art_auctiontype_" + H) + "_") + F)
101+func T (G,I) = ((("art_auctiontype_" + I) + "_") + G)
100102
101103
102-func T (F,H) = ((("art_issued_" + H) + "_") + F)
104+func U (G,I) = ((("art_issued_" + I) + "_") + G)
103105
104106
105-func U (V) = ("nft_issued_" + V)
107+func V (W) = ("nft_issued_" + W)
106108
107109
108-func W (F,H) = ((("art_onsale_" + H) + "_") + F)
110+func X (W) = ("nft_artId_" + W)
109111
110112
111-func X (F,H) = ((("art_entitlement_" + H) + "_") + F)
113+func Y (G,I) = ((("art_royalty_" + I) + "_") + G)
112114
113115
114-func Y (F,H) = ((("art_tags_" + H) + "_") + F)
116+func Z (G,I) = ((("art_onsale_" + I) + "_") + G)
115117
116118
117-func Z (F,H) = ((("art_type_" + H) + "_") + F)
119+func aa (G,I) = ((("art_entitlement_" + I) + "_") + G)
118120
119121
120-func aa (F,H) = ((("art_price_" + H) + "_") + F)
122+func ab (G,I) = ((("art_tags_" + I) + "_") + G)
121123
122124
123-func ab (F,H) = ((("art_assetAccepted_" + H) + "_") + F)
125+func ac (G,I) = ((("art_type_" + I) + "_") + G)
124126
125127
126-func ac (F,ad) = ((("get_hashbytxidaddr_" + ad) + "_") + F)
128+func ad (G,I) = ((("art_price_" + I) + "_") + G)
127129
128130
129-func ae (af) = ("get_owner_by_hash_" + af)
131+func ae (G,I) = ((("art_assetAccepted_" + I) + "_") + G)
130132
131133
132-func ag (af,F) = ("get_txid_by_hash_owner_" + toBase58String(sha256_16Kb(toBytes((af + F)))))
134+func af (G,ag) = ((("get_hashbytxidaddr_" + ag) + "_") + G)
133135
134136
135-let ah = y(("certification_fee_" + toBase58String(g)))
136-
137-func ai (P) = valueOrElse(z(O(P)), 0)
137+func ah (ai) = ("get_owner_by_hash_" + ai)
138138
139139
140-func aj (H) = {
141- let P = v(N(H))
142- if ((P == ""))
140+func aj (ai,G) = ("get_txid_by_hash_owner_" + toBase58String(sha256_16Kb(toBytes((ai + G)))))
141+
142+
143+let ak = z(("certification_fee_" + toBase58String(g)))
144+
145+func al (Q) = valueOrElse(A(P(Q)), 0)
146+
147+
148+func am (I) = {
149+ let Q = w(O(I))
150+ if ((Q == ""))
143151 then 0
144- else ai(P)
152+ else al(Q)
145153 }
146154
147155
148-func ak (al,am) = if ((size(al) == 0))
156+func an (ao,ap) = if ((size(ao) == 0))
149157 then throw("Field cannot be is empty")
150- else if ((size(al) > am))
151- then throw((al + " is too long"))
158+ else if ((size(ao) > ap))
159+ then throw((ao + " is too long"))
152160 else true
153161
154162
155-func an (F) = {
156- let ao = valueOrElse(getString(e, E(F)), p)
157- if (if ((ao == p))
163+func aq (G) = {
164+ let ar = valueOrElse(getString(e, F(G)), p)
165+ if (if ((ar == p))
158166 then true
159- else (ao == q))
167+ else (ar == q))
160168 then "Register this account first with 'Account' tab"
161- else if ((ao == n))
169+ else if ((ar == n))
162170 then "Account suspended"
163- else if ((ao == o))
171+ else if ((ar == o))
164172 then "Account removed"
165173 else ""
166174 }
167175
168176
169-func ap (F,aq,ar,as,at) = {
170- let au = an(F)
171- if ((au != ""))
172- then throw(au)
173- else if ((size(aq) == 0))
177+func as (G,at,au,av,aw) = {
178+ let ax = aq(G)
179+ if ((ax != ""))
180+ then throw(ax)
181+ else if ((size(at) == 0))
174182 then throw("Display CID cannot be empty")
175- else if ((size(aq) != 46))
183+ else if ((size(at) != 46))
176184 then throw("This doesn't seem a valid CID!")
177- else if (!(ak(ar, 100)))
185+ else if (!(an(au, 100)))
178186 then throw("100 Char. max name")
179- else if (!(ak(as, 1000)))
187+ else if (!(an(av, 1000)))
180188 then throw("1000 Char. max description")
181- else if ((size(split(at, ",")) > 5))
189+ else if ((size(split(aw, ",")) > 5))
182190 then throw("5 tags max.")
183191 else ""
184192 }
185193
186194
187-func av (aw) = if ((size(aw.payments) == 0))
195+func ay (az) = if ((size(az.payments) == 0))
188196 then throw("No payment attached")
189197 else {
190- let ax = value(aw.payments[0])
191- let ay = value(ax.amount)
192- $Tuple2(ax, ay)
198+ let aA = value(az.payments[0])
199+ let aB = value(aA.amount)
200+ $Tuple2(aA, aB)
193201 }
194202
195203
196-func az (aw) = {
197- let aA = av(aw)
198- let ax = aA._1
199- let ay = aA._2
200- let aB = if (if (isDefined(ax.assetId))
201- then (ax.assetId == g)
204+func aC (az) = {
205+ let aD = ay(az)
206+ let aA = aD._1
207+ let aB = aD._2
208+ let aE = if (if (isDefined(aA.assetId))
209+ then (aA.assetId == g)
202210 else false)
203- then ax.assetId
211+ then aA.assetId
204212 else throw("Only USDN token accepted as transaction fee")
205- if ((ay != ah))
206- then throw(((("Payment amount should be " + toString(ah)) + " but is: ") + toString(ay)))
207- else $Tuple2(ay, aB)
213+ if ((aB != ak))
214+ then throw(((("Payment amount should be " + toString(ak)) + " but is: ") + toString(aB)))
215+ else $Tuple2(aB, aE)
208216 }
209217
210218
211-func aC (aD,H) = {
212- let aE = getInteger(this, T(aD, H))
213- if ($isInstanceOf(aE, "Int"))
219+func aF (aG,I) = {
220+ let aH = getInteger(this, U(aG, I))
221+ if ($isInstanceOf(aH, "Int"))
214222 then {
215- let aF = aE
216- if ((aF != 0))
223+ let aI = aH
224+ if ((aI != 0))
217225 then true
218226 else false
219227 }
220228 else false
221229 }
222230
223231
224-func aG (aw,aH,aI) = {
225- let aJ = av(aw)
226- let ax = aJ._1
227- let ay = aJ._2
228- let aB = if (!(isDefined(ax.assetId)))
232+func aJ (az,aK,aL) = {
233+ let aM = ay(az)
234+ let aA = aM._1
235+ let aB = aM._2
236+ let aE = if (!(isDefined(aA.assetId)))
229237 then throw("Wrong asset id")
230- else if (if ((size(aH) > 0))
231- then (toBase58String(value(ax.assetId)) == aH)
238+ else if (if ((size(aK) > 0))
239+ then (toBase58String(value(aA.assetId)) == aK)
232240 else false)
233- then ax.assetId
241+ then aA.assetId
234242 else throw("Wrong asset id")
235- if (if ((aB == unit))
236- then (aH != "")
243+ if (if ((aE == unit))
244+ then (aK != "")
237245 else false)
238246 then throw("Wrong asset id")
239- else if ((aI != ay))
240- then throw(((("Payment don't match " + toString(aI)) + " ") + toString(ay)))
241- else $Tuple2(ay, aB)
247+ else if ((aL != aB))
248+ then throw(((("Payment don't match " + toString(aL)) + " ") + toString(aB)))
249+ else $Tuple2(aB, aE)
242250 }
243251
244252
245-func aK (aB) = if ((aB != toBase58String(g)))
253+func aN (aE) = if ((aE != toBase58String(g)))
246254 then throw("Only USDN accepted")
247255 else true
248256
249257
250-func aL (aB,aM) = {
251- let aN = if (a)
258+func aO (aE,aP) = {
259+ let aQ = if (a)
252260 then 1
253- else (ah * 2)
254- if (if (if ((aB == toBase58String(g)))
255- then (aN > aM)
261+ else (ak * 2)
262+ if (if (if ((aE == toBase58String(g)))
263+ then (aQ > aP)
256264 else false)
257- then (aM != 0)
265+ then (aP != 0)
258266 else false)
259- then throw(("Wrong minimum sell price " + toString(aN)))
267+ then throw(("Wrong minimum sell price " + toString(aQ)))
260268 else true
261269 }
262270
263271
264-func aO (aB) = if ((aB == "WAVES"))
272+func aR (aE) = if ((aE == "WAVES"))
265273 then throw("Only USDN is accepted!")
266- else fromBase58String(aB)
274+ else fromBase58String(aE)
267275
268276
269-func aP (aQ) = {
270- let aR = v((aQ + "_OPEN"))
271- if ((aR == ""))
277+func aS (aT) = {
278+ let aU = w((aT + "_OPEN"))
279+ if ((aU == ""))
272280 then throw("Bid not found")
273281 else {
274- let aS = split(aR, "_")
275- let aT = parseIntValue(aS[1])
276- let aU = aO(aS[0])
277- if ((0 >= aT))
282+ let aV = split(aU, "_")
283+ let aW = parseIntValue(aV[1])
284+ let aX = aR(aV[0])
285+ if ((0 >= aW))
278286 then throw("Wrong amount")
279- else $Tuple2(aT, aU)
287+ else $Tuple2(aW, aX)
280288 }
281289 }
282290
283291
284-func aV (aw) = if (!(l))
292+func aY (az) = if (!(l))
285293 then throw(m)
286- else $Tuple3(toBase58String(aw.transactionId), toBase58String(aw.caller.bytes), lastBlock.timestamp)
294+ else $Tuple3(toBase58String(az.transactionId), toBase58String(az.caller.bytes), lastBlock.timestamp)
287295
288296
289-func aW (aw,aX,aY,P) = if (if (if ((toBase58String(aw.caller.bytes) == aX))
290- then (aY != "")
297+func aZ (az,ba,bb,Q) = if (if (if ((toBase58String(az.caller.bytes) == ba))
298+ then (bb != "")
291299 else false)
292- then (P != "")
300+ then (Q != "")
293301 else false)
294302 then true
295303 else false
296304
297305
298-func aZ (aw,aX,H,ba) = {
299- let bb = (toBase58String(aw.caller.bytes) == aX)
300- let bc = z("total_nft_issued")
301- let bd = v(I(aX, H))
302- if ((bd == ""))
306+func bc (az,ba,I,bd) = {
307+ let be = (toBase58String(az.caller.bytes) == ba)
308+ let bf = A("total_nft_issued")
309+ let bg = w(J(ba, I))
310+ if ((bg == ""))
303311 then throw("Art doesn't exist")
304312 else {
305- let be = B(W(aX, H))
306- let bf = z(T(aX, H))
307- let aI = valueOrElse(z(aa(aX, H)), (ah * 2))
308- let aH = if (bb)
313+ let bh = C(Z(ba, I))
314+ let bi = A(U(ba, I))
315+ let aL = valueOrElse(A(ad(ba, I)), (ak * 2))
316+ let aK = if (be)
309317 then toBase58String(g)
310- else v(ab(aX, H))
311- let bg = z(L(aX, H))
312- if (if (if (!(ba))
313- then !(bb)
318+ else w(ae(ba, I))
319+ let bj = A(N(ba, I))
320+ if (if (if (!(bd))
321+ then !(be)
314322 else false)
315- then if (if ((0 >= aI))
323+ then if (if ((0 >= aL))
316324 then true
317- else !(be))
325+ else !(bh))
318326 then true
319- else (0 >= bg)
327+ else (0 >= bj)
320328 else false)
321329 then throw("Art not for sale")
322- else if (if (if (!(ba))
323- then bb
330+ else if (if (if (!(bd))
331+ then be
324332 else false)
325- then (0 >= bg)
333+ then (0 >= bj)
326334 else false)
327335 then throw("Max issuable not set")
328- else $Tuple7(bc, bd, bf, aI, aH, bg, be)
336+ else $Tuple7(bf, bg, bi, aL, aK, bj, bh)
329337 }
330338 }
331339
332340
333-func bh (aw,F,aX,H,aY,P,aH,aI,ba) = {
334- let au = an(aX)
335- if (if (ba)
336- then (au != "")
341+func bk (az,G,ba,I,bb,Q,aK,aL,bd) = {
342+ let ax = aq(ba)
343+ if (if (bd)
344+ then (ax != "")
337345 else false)
338- then throw(au)
346+ then throw(ax)
339347 else {
340- let aQ = ((((((("bid_" + H) + "_") + aX) + "_") + aY) + "_") + P)
341- let bi = if (ba)
342- then aP(aQ)
343- else aG(aw, aH, aI)
344- let ay = bi._1
345- let aB = bi._2
346- $Tuple3(aQ, ay, aB)
348+ let aT = ((((((("bid_" + I) + "_") + ba) + "_") + bb) + "_") + Q)
349+ let bl = if (bd)
350+ then aS(aT)
351+ else aJ(az, aK, aL)
352+ let aB = bl._1
353+ let aE = bl._2
354+ $Tuple3(aT, aB, aE)
347355 }
348356 }
349357
350358
351-func bj (aX,aB,ay,bf,bg) = {
352- let bk = A(aX)
353- let bl = if ((bk > height))
359+func bm (ba,aE,aB,bi,bj) = {
360+ let bn = B(ba)
361+ let bo = if ((bn > height))
354362 then 0
355- else if ((aB == g))
356- then i
363+ else if ((aE == g))
364+ then k
357365 else throw("Only USDN is accepted!")
358- let bm = fraction(ay, bl, 1000)
359- let bn = (ay - bm)
360- if ((bf == bg))
366+ let bp = fraction(aB, bo, 1000)
367+ let bq = (aB - bp)
368+ if ((bi == bj))
361369 then throw("Art sold out")
362370 else {
363- let bo = (bf + 1)
364- $Tuple3(bm, bn, bo)
371+ let br = (bi + 1)
372+ $Tuple3(bp, bq, br)
365373 }
366374 }
367375
368376
369-func bp (aX,H,bd,bo,bg,bc,F,aY,P,aw,be) = {
370- let bq = ((((((((("Creator: " + aX) + ",ArtID: ") + H) + ",Artwork name: ") + bd) + ",Issue: ") + toString(bo)) + "/") + toString(bg))
371- let br = if (if ((bo == bg))
377+func bs (ba,I,bg,br,bj,bf,G,bb,Q,az,bh) = {
378+ let bt = ((((((((("Creator: " + ba) + ",ArtID: ") + I) + ",Artwork name: ") + bg) + ",Issue: ") + toString(br)) + "/") + toString(bj))
379+ let bu = if (if ((br == bj))
372380 then true
373- else !(be))
381+ else !(bh))
374382 then false
375383 else true
376- let bs = if ((aY != ""))
377- then addressFromStringValue(aY)
378- else aw.caller
379- $Tuple3(br, bs, bq)
384+ let bv = if ((bb != ""))
385+ then addressFromStringValue(bb)
386+ else az.caller
387+ $Tuple3(bu, bv, bt)
380388 }
381389
382390
383-func bt (bu) = if ((4 > bu))
391+func bw (bx) = if ((4 > bx))
384392 then "SSR"
385- else if ((11 > bu))
393+ else if ((11 > bx))
386394 then "SR"
387- else if ((101 > bu))
395+ else if ((101 > bx))
388396 then "R"
389397 else "N"
390398
391399
392-func bv (aB,aQ,bw) = {
393- let bx = if (!(isDefined(aB)))
400+func by (aE,aT,bz) = {
401+ let bA = if (!(isDefined(aE)))
394402 then throw("Only USDN is accepted")
395- else toBase58String(value(aB))
396- let aR = v((aQ + "_OPEN"))
397- let by = DeleteEntry((aQ + "_OPEN"))
398- let bz = StringEntry((aQ + "_CLOSED"), ((aR + "_") + toString(bw)))
399- $Tuple3(bx, by, bz)
403+ else toBase58String(value(aE))
404+ let aU = w((aT + "_OPEN"))
405+ let bB = DeleteEntry((aT + "_OPEN"))
406+ let bC = StringEntry((aT + "_CLOSED"), ((aU + "_") + toString(bz)))
407+ $Tuple3(bA, bB, bC)
400408 }
401409
402410
403-func bA (aw,H,aX,P,aY,ba) = {
404- let bB = aV(aw)
405- let bC = bB._1
406- let F = bB._2
407- let bw = bB._3
408- let bD = aZ(aw, aX, H, ba)
409- let bc = bD._1
410- let bd = bD._2
411- let bf = bD._3
412- let aI = bD._4
413- let aH = bD._5
414- let bg = bD._6
415- let be = bD._7
416- let aR = bh(aw, F, aX, H, aY, P, aH, aI, ba)
417- let aQ = aR._1
418- let ay = aR._2
419- let aB = aR._3
420- let bE = bj(aX, value(aB), ay, bf, bg)
421- let bm = bE._1
422- let bn = bE._2
423- let bo = bE._3
424- let bF = bp(aX, H, bd, bo, bg, bc, F, aY, P, aw, be)
425- let br = bF._1
426- let bs = bF._2
427- let bq = bF._3
428- let bG = invoke(this, "mintNft", [bc, bq, toString(bs)], nil)
429- if ((bG == bG))
411+func bD (az,I,ba,Q,bb,bd) = {
412+ let bE = aY(az)
413+ let bF = bE._1
414+ let G = bE._2
415+ let bz = bE._3
416+ let bG = bc(az, ba, I, bd)
417+ let bf = bG._1
418+ let bg = bG._2
419+ let bi = bG._3
420+ let aL = bG._4
421+ let aK = bG._5
422+ let bj = bG._6
423+ let bh = bG._7
424+ let aU = bk(az, G, ba, I, bb, Q, aK, aL, bd)
425+ let aT = aU._1
426+ let aB = aU._2
427+ let aE = aU._3
428+ let bH = bm(ba, value(aE), aB, bi, bj)
429+ let bp = bH._1
430+ let bq = bH._2
431+ let br = bH._3
432+ let bI = bs(ba, I, bg, br, bj, bf, G, bb, Q, az, bh)
433+ let bu = bI._1
434+ let bv = bI._2
435+ let bt = bI._3
436+ let bJ = invoke(this, "mintNft", [bf, bt, toString(bv)], nil)
437+ if ((bJ == bJ))
430438 then {
431- let bH = {
432- let aE = bG
433- if ($isInstanceOf(aE, "String"))
439+ let bK = {
440+ let aH = bJ
441+ if ($isInstanceOf(aH, "String"))
434442 then {
435- let bI = aE
436- bI
443+ let bL = aH
444+ bL
437445 }
438446 else throw("Incorrect invoke result")
439447 }
440- let bJ = bv(aB, aQ, bw)
441- let bx = bJ._1
442- let by = bJ._2
443- let bz = bJ._3
444- let bK = ((((((("art_sold_" + toString(bo)) + "_of_") + toString(bg)) + "_") + H) + "_") + aX)
445- let bL = bt(bo)
446- let bM = if (!(ba))
447- then ((((((((((F + "_") + toString(bw)) + "_") + bC) + "_") + toString(aI)) + "_") + aH) + "_") + bH)
448- else ((((((((((toString(bs) + "_") + toString(bw)) + "_") + bC) + "_") + toString(ay)) + "_") + bx) + "_") + bH)
449- let bN = StringEntry(bK, bM)
450- let bO = [IntegerEntry(T(aX, H), bo), StringEntry(("nft_" + bH), bK), StringEntry(("nft_rarity_" + bH), bL), IntegerEntry("total_nft_issued", (bc + 1)), BooleanEntry(W(aX, H), br), ScriptTransfer(Address(fromBase58String(aX)), bn, aB), ScriptTransfer(Address(fromBase58String(c)), bm, aB), StringEntry(U(bH), aX)]
451- let bP = invoke(addressFromStringValue(d), "createCert", [toString(bs), bH, aX], nil)
452- if ((bP == bP))
453- then if (ba)
454- then (((bO :+ bN) :+ bz) :+ by)
455- else bN :: bO
448+ let bM = by(aE, aT, bz)
449+ let bA = bM._1
450+ let bB = bM._2
451+ let bC = bM._3
452+ let bN = ((((((("art_sold_" + toString(br)) + "_of_") + toString(bj)) + "_") + I) + "_") + ba)
453+ let bO = bw(br)
454+ let bP = if (!(bd))
455+ then ((((((((((G + "_") + toString(bz)) + "_") + bF) + "_") + toString(aL)) + "_") + aK) + "_") + bK)
456+ else ((((((((((toString(bv) + "_") + toString(bz)) + "_") + bF) + "_") + toString(aB)) + "_") + bA) + "_") + bK)
457+ let bQ = StringEntry(bN, bP)
458+ let bR = [IntegerEntry(U(ba, I), br), StringEntry(("nft_" + bK), bN), StringEntry(("nft_rarity_" + bK), bO), IntegerEntry("total_nft_issued", (bf + 1)), BooleanEntry(Z(ba, I), bu), ScriptTransfer(Address(fromBase58String(ba)), bq, aE), ScriptTransfer(Address(fromBase58String(c)), bp, aE), StringEntry(V(bK), ba), StringEntry(X(bK), I)]
459+ let bS = invoke(addressFromStringValue(d), "createCert", [toString(bv), bK, ba], nil)
460+ if ((bS == bS))
461+ then if (bd)
462+ then (((bR :+ bQ) :+ bC) :+ bB)
463+ else bQ :: bR
456464 else throw("Strict value is not equal to itself.")
457465 }
458466 else throw("Strict value is not equal to itself.")
459467 }
460468
461469
462-func bQ (aw,H,aX) = {
463- let bR = aV(aw)
464- let bC = bR._1
465- let F = bR._2
466- let bw = bR._3
467- let bS = av(aw)
468- let ax = bS._1
469- let ay = bS._2
470- let aB = if (!(isDefined(ax.assetId)))
470+func bT (az,I,ba) = {
471+ let bU = aY(az)
472+ let bF = bU._1
473+ let G = bU._2
474+ let bz = bU._3
475+ let bV = ay(az)
476+ let aA = bV._1
477+ let aB = bV._2
478+ let aE = if (!(isDefined(aA.assetId)))
471479 then throw("Only USDN is accepted!")
472- else toBase58String(value(ax.assetId))
473- let bT = z(("current_bidamount_" + H))
474- if (!(aK(aB)))
480+ else toBase58String(value(aA.assetId))
481+ let bW = A(("current_bidamount_" + I))
482+ let bX = valueOrElse(A(ad(ba, I)), (ak * 2))
483+ if (!(aN(aE)))
475484 then throw("asset not accepted")
476- else if (!(aL(aB, ay)))
477- then throw("Wrong min sell")
485+ else if ((bX > aB))
486+ then throw("Bid is below min price!")
478487 else {
479- let bf = z(T(aX, H))
480- let bg = z(L(aX, H))
481- if ((0 >= bg))
488+ let bi = A(U(ba, I))
489+ let bj = A(N(ba, I))
490+ if ((0 >= bj))
482491 then throw("No max edition set for this artwork")
483- else if ((bf >= bg))
492+ else if ((bi >= bj))
484493 then throw("Sold out, you cannot bid")
485- else [StringEntry((((((((("bid_" + H) + "_") + aX) + "_") + F) + "_") + bC) + "_OPEN"), ((((aB + "_") + toString(ay)) + "_") + toString(bw))), IntegerEntry(("current_bidamount_" + H), (bT + 1))]
494+ else [StringEntry((((((((("bid_" + I) + "_") + ba) + "_") + G) + "_") + bF) + "_OPEN"), ((((aE + "_") + toString(aB)) + "_") + toString(bz))), IntegerEntry(("current_bidamount_" + I), (bW + 1))]
486495 }
487496 }
488497
489498
490-func bU (aw,H,aX) = {
491- let bV = z(R(aX, H))
492- let bW = aj(H)
493- if ((height > bV))
499+func bY (az,I,ba) = {
500+ let bZ = A(S(ba, I))
501+ let ca = am(I)
502+ if ((height > bZ))
494503 then throw("This auction is finished already!")
495504 else {
496- let bX = aV(aw)
497- let bC = bX._1
498- let F = bX._2
499- let bw = bX._3
500- let bY = av(aw)
501- let ax = bY._1
502- let ay = bY._2
503- if ((bW >= ay))
504- then throw(("Please place a bid higher than: " + toString(bW)))
505+ let cb = aY(az)
506+ let bF = cb._1
507+ let G = cb._2
508+ let bz = cb._3
509+ let cc = ay(az)
510+ let aA = cc._1
511+ let aB = cc._2
512+ if ((ca >= aB))
513+ then throw(("Please place a bid higher than: " + toString(ca)))
505514 else {
506- let aB = if (!(isDefined(ax.assetId)))
515+ let aE = if (!(isDefined(aA.assetId)))
507516 then throw("Only USDN is accepted!")
508- else toBase58String(value(ax.assetId))
509- let bT = z(("current_bidamount_" + H))
510- if (!(aK(aB)))
517+ else toBase58String(value(aA.assetId))
518+ let bW = A(("current_bidamount_" + I))
519+ let bX = valueOrElse(A(ad(ba, I)), (ak * 2))
520+ if (!(aN(aE)))
511521 then throw("asset not accepted")
512- else if (!(aL(aB, ay)))
513- then throw("Wrong min sell")
522+ else if ((bX > aB))
523+ then throw("Bid is below min price!")
514524 else {
515- let bf = z(T(aX, H))
516- let bg = z(L(aX, H))
517- if ((0 >= bg))
525+ let bi = A(U(ba, I))
526+ let bj = A(N(ba, I))
527+ if ((0 >= bj))
518528 then throw("No max edition set for this artwork")
519- else if ((bf >= bg))
529+ else if ((bi >= bj))
520530 then throw("Sold out, you cannot bid")
521- else [StringEntry((((((((("bid_" + H) + "_") + aX) + "_") + F) + "_") + bC) + "_OPEN"), ((((aB + "_") + toString(ay)) + "_") + toString(bw))), IntegerEntry(("current_bidamount_" + H), (bT + 1)), StringEntry(N(H), toBase58String(aw.transactionId)), IntegerEntry(O(toBase58String(aw.transactionId)), ay)]
531+ else [StringEntry((((((((("bid_" + I) + "_") + ba) + "_") + G) + "_") + bF) + "_OPEN"), ((((aE + "_") + toString(aB)) + "_") + toString(bz))), IntegerEntry(("current_bidamount_" + I), (bW + 1)), StringEntry(O(I), toBase58String(az.transactionId)), IntegerEntry(P(toBase58String(az.transactionId)), aB)]
522532 }
523533 }
524534 }
525535 }
526536
527537
528-func bZ (aw,H,aX,P,aY) = {
529- let F = toBase58String(aw.caller.bytes)
530- if ((F != aX))
538+func cd (az,I,ba,Q,bb) = {
539+ let G = toBase58String(az.caller.bytes)
540+ if ((G != ba))
531541 then throw("You cannot do this action")
532- else bA(aw, H, aX, P, aY, true)
542+ else bD(az, I, ba, Q, bb, true)
533543 }
534544
535545
536-func ca (H,aX) = {
537- let bf = z(T(aX, H))
538- let bg = z(L(aX, H))
539- let cb = z(R(aX, H))
540- let cc = z(Q(aX, H))
541- let bV = (cc + height)
542- if ((height > cb))
543- then if ((bf == bg))
546+func ce (I,ba) = {
547+ let bi = A(U(ba, I))
548+ let bj = A(N(ba, I))
549+ let cf = A(S(ba, I))
550+ let cg = A(R(ba, I))
551+ let bZ = (cg + height)
552+ if ((height > cf))
553+ then if ((bi == bj))
544554 then throw("Can't restart auction, max amount sold")
545- else [IntegerEntry(R(aX, H), bV), DeleteEntry(N(H))]
555+ else [IntegerEntry(S(ba, I), bZ), DeleteEntry(O(I))]
546556 else throw("Previous auction isn't completed yet")
547557 }
548558
549559
550-func cd (aw,H,aX,P,aY) = {
551- let bV = z(R(aX, H))
552- let ce = v(N(H))
553- if ((height > bV))
554- then if ((P == ce))
560+func ch (az,I,ba,Q,bb) = {
561+ let bZ = A(S(ba, I))
562+ let ci = w(O(I))
563+ if ((height > bZ))
564+ then if ((Q == ci))
555565 then {
556- let cf = bA(aw, H, aX, P, aY, true)
557- let cg = ca(H, aX)
558- (cg ++ cf)
566+ let cj = bD(az, I, ba, Q, bb, true)
567+ let ck = ce(I, ba)
568+ (ck ++ cj)
559569 }
560570 else throw("This is not the winning bid!")
561571 else throw("This auction is not yet finished!")
562572 }
563573
564574
565-func ch (aw,H,aX,P) = {
566- let ci = aV(aw)
567- let bC = ci._1
568- let F = ci._2
569- let bw = ci._3
570- let bT = z(("current_bidamount_" + H))
571- let aQ = ((((((("bid_" + H) + "_") + aX) + "_") + F) + "_") + P)
572- let aR = w((aQ + "_OPEN"), "Bid not found")
573- let aS = split(aR, "_")
574- let aB = aO(aS[0])
575- let cj = "CANCELED"
576-[DeleteEntry((aQ + "_OPEN")), StringEntry(((aQ + "_") + cj), ((aR + "_") + toString(bw))), IntegerEntry(("current_bidamount_" + H), (bT - 1)), ScriptTransfer(Address(fromBase58String(F)), parseIntValue(aS[1]), aB)]
575+func cl (az,I,ba,Q) = {
576+ let cm = aY(az)
577+ let bF = cm._1
578+ let G = cm._2
579+ let bz = cm._3
580+ let bW = A(("current_bidamount_" + I))
581+ let aT = ((((((("bid_" + I) + "_") + ba) + "_") + G) + "_") + Q)
582+ let aU = x((aT + "_OPEN"), "Bid not found")
583+ let aV = split(aU, "_")
584+ let aE = aR(aV[0])
585+ let cn = "CANCELED"
586+[DeleteEntry((aT + "_OPEN")), StringEntry(((aT + "_") + cn), ((aU + "_") + toString(bz))), IntegerEntry(("current_bidamount_" + I), (bW - 1)), ScriptTransfer(Address(fromBase58String(G)), parseIntValue(aV[1]), aE)]
577587 }
578588
579589
580-func ck (aw,H,aX,P) = {
581- let ci = aV(aw)
582- let bC = ci._1
583- let F = ci._2
584- let bw = ci._3
585- let bT = z(("current_bidamount_" + H))
586- let aQ = ((((((("bid_" + H) + "_") + aX) + "_") + F) + "_") + P)
587- let aR = w((aQ + "_OPEN"), "Bid not found")
588- let aS = split(aR, "_")
589- let aB = aO(aS[0])
590- let cj = "CANCELED"
591- let aT = parseIntValue(aS[1])
592- let ce = v(N(H))
593- if ((P == ce))
590+func co (az,I,ba,Q) = {
591+ let cm = aY(az)
592+ let bF = cm._1
593+ let G = cm._2
594+ let bz = cm._3
595+ let bW = A(("current_bidamount_" + I))
596+ let aT = ((((((("bid_" + I) + "_") + ba) + "_") + G) + "_") + Q)
597+ let aU = x((aT + "_OPEN"), "Bid not found")
598+ let aV = split(aU, "_")
599+ let aE = aR(aV[0])
600+ let cn = "CANCELED"
601+ let aW = parseIntValue(aV[1])
602+ let ci = w(O(I))
603+ if ((Q == ci))
594604 then throw("You can't cancel the highest bid!")
595- else [DeleteEntry((aQ + "_OPEN")), StringEntry(((aQ + "_") + cj), ((aR + "_") + toString(bw))), IntegerEntry(("current_bidamount_" + H), (bT - 1)), ScriptTransfer(Address(fromBase58String(F)), aT, aB)]
605+ else [DeleteEntry((aT + "_OPEN")), StringEntry(((aT + "_") + cn), ((aU + "_") + toString(bz))), IntegerEntry(("current_bidamount_" + I), (bW - 1)), ScriptTransfer(Address(fromBase58String(G)), aW, aE)]
596606 }
597607
598608
599-@Callable(aw)
600-func mintNft (bc,bq,bs) = if ((aw.caller == this))
609+@Callable(az)
610+func mintNft (bf,bt,bv) = if ((az.caller == this))
601611 then {
602- let cl = Address(fromBase58String(bs))
603- let cm = Issue(("SCONEX_" + toString((bc + 1))), bq, 1, 0, false)
604- let bH = calculateAssetId(cm)
605- $Tuple2([cm, ScriptTransfer(cl, 1, bH)], toBase58String(bH))
612+ let cp = Address(fromBase58String(bv))
613+ let cq = Issue(("SCONEX_" + toString((bf + 1))), bt, 1, 0, false)
614+ let bK = calculateAssetId(cq)
615+ $Tuple2([cq, ScriptTransfer(cp, 1, bK)], toBase58String(bK))
606616 }
607617 else throw("Only the dApp can mint NFT's")
608618
609619
610620
611-@Callable(aw)
612-func addArtwork (af,ar,as,at,cn,aq,co) = {
613- let cp = aV(aw)
614- let H = cp._1
615- let F = cp._2
616- let bw = cp._3
617- let cq = ap(F, aq, ar, as, at)
618- if ((cq != ""))
619- then throw("Something went wrong!")
620- else {
621- let cr = az(aw)
622- let ay = cr._1
623- let aB = cr._2
624- if (!(isDefined(ay)))
625- then throw("Something went wrong")
621+@Callable(az)
622+func addArtwork (ai,au,av,aw,cr,at,cs,ct) = {
623+ let cu = aY(az)
624+ let I = cu._1
625+ let G = cu._2
626+ let bz = cu._3
627+ if (containsElement(i, cr))
628+ then {
629+ let cv = as(G, at, au, av, aw)
630+ if ((cv != ""))
631+ then throw("Something went wrong!")
626632 else {
627- let cs = v(ag(af, F))
628- if ((cs != ""))
629- then throw("You already added it")
633+ let cw = aC(az)
634+ let aB = cw._1
635+ let aE = cw._2
636+ if (!(isDefined(aB)))
637+ then throw("Something went wrong")
630638 else {
631- let ct = v(ae(af))
632- if ((ct != ""))
633- then throw("This hash is already registered")
634- else [StringEntry(ae(af), F), StringEntry(ag(af, F), H), IntegerEntry(G(F, H), bw), StringEntry(I(F, H), ar), StringEntry(J(F, H), as), StringEntry(K(F, H), aq), StringEntry(Z(F, H), cn), StringEntry(Y(F, H), at), IntegerEntry(L(F, H), 0), IntegerEntry(T(F, H), 0), BooleanEntry(W(F, H), false), StringEntry(ac(F, H), af), StringEntry(X(F, H), co), ScriptTransfer(Address(fromBase58String(c)), ay, aB)]
639+ let cx = if (containsElement(j, cr))
640+ then [StringEntry(M(G, I), ct)]
641+ else nil
642+ let cy = w(aj(ai, G))
643+ if ((cy != ""))
644+ then throw("You already added it")
645+ else {
646+ let cz = w(ah(ai))
647+ if ((cz != ""))
648+ then throw("This hash is already registered")
649+ else (cx ++ [StringEntry(ah(ai), G), StringEntry(aj(ai, G), I), IntegerEntry(H(G, I), bz), StringEntry(J(G, I), au), StringEntry(K(G, I), av), StringEntry(L(G, I), at), StringEntry(ac(G, I), cr), StringEntry(ab(G, I), aw), IntegerEntry(N(G, I), 0), IntegerEntry(U(G, I), 0), BooleanEntry(Z(G, I), false), StringEntry(af(G, I), ai), StringEntry(aa(G, I), cs), ScriptTransfer(Address(fromBase58String(c)), aB, aE)])
650+ }
635651 }
636652 }
637653 }
654+ else throw("Unknown type")
638655 }
639656
640657
641658
642-@Callable(aw)
643-func sellArtwork (H,aM,cu,aB,cv,cw,cc) = {
644- let cx = aV(aw)
645- let bC = cx._1
646- let F = cx._2
647- let bd = v(I(F, H))
648- if (!(containsElement([r, s], cv)))
649- then throw("We don't know this auction type")
650- else if ((bd == ""))
651- then throw("This art doesn't match your account")
652- else {
653- let bT = z(("current_bidamount_" + H))
654- if (!(aK(aB)))
655- then throw("Something went wrong!")
656- else if (!(aL(aB, aM)))
657- then throw("Something went wrong!")
658- else {
659- let au = an(F)
660- if ((au != ""))
661- then throw(au)
659+@Callable(az)
660+func sellArtwork (I,aP,cA,aE,cB,cg,cC) = {
661+ let cD = aY(az)
662+ let bF = cD._1
663+ let G = cD._2
664+ let bg = w(J(G, I))
665+ if ((0 > cC))
666+ then throw("Royalty percentage should be above 0")
667+ else if ((cC > 85))
668+ then throw("Royalty percentage should be below 85")
669+ else if (!(containsElement([r, s, t], cB)))
670+ then throw("We don't know this auction type")
671+ else if ((bg == ""))
672+ then throw("This art doesn't match your account")
673+ else {
674+ let bW = A(("current_bidamount_" + I))
675+ if (!(aN(aE)))
676+ then throw("Something went wrong!")
677+ else if (!(aO(aE, aP)))
678+ then throw("Something went wrong!")
662679 else {
663- let bf = z(T(F, H))
664- let bg = z(L(F, H))
665- if ((cu > 101))
666- then throw("101 editions max per artwork")
667- else if (if ((bf != 0))
668- then (bf == bg)
669- else false)
670- then throw("Max edition reached.")
671- else if (if ((bf > 0))
672- then (bg != cu)
673- else false)
674- then throw("Cannot change maximum issuable anymore")
675- else if (if ((bT > 0))
676- then (bg != cu)
680+ let ax = aq(G)
681+ if ((ax != ""))
682+ then throw(ax)
683+ else {
684+ let bi = A(U(G, I))
685+ let bj = A(N(G, I))
686+ if ((cA > 10000))
687+ then throw("10000 editions max per artwork")
688+ else if (if ((bi != 0))
689+ then (bi == bj)
677690 else false)
678- then throw("Cannot change maximum issuable with active orders")
679- else {
680- let br = if (if ((aM > 0))
681- then (cu > 0)
691+ then throw("Max edition reached.")
692+ else if (if ((bi > 0))
693+ then (bj != cA)
694+ else false)
695+ then throw("Cannot change maximum issuable anymore")
696+ else if (if ((bW > 0))
697+ then (bj != cA)
682698 else false)
683- then true
684- else false
685- let bV = (cc + height)
686-[BooleanEntry(W(F, H), br), IntegerEntry(aa(F, H), aM), IntegerEntry(L(F, H), cu), IntegerEntry(M(F, H), cw), IntegerEntry(Q(F, H), cc), IntegerEntry(R(F, H), bV), StringEntry(ab(F, H), aB), StringEntry(S(F, H), cv)]
687- }
699+ then throw("Cannot change maximum issuable with active orders")
700+ else {
701+ let bu = if (if ((aP > 0))
702+ then (cA > 0)
703+ else false)
704+ then true
705+ else false
706+ let bZ = (cg + height)
707+[BooleanEntry(Z(G, I), bu), IntegerEntry(ad(G, I), aP), IntegerEntry(N(G, I), cA), IntegerEntry(R(G, I), cg), IntegerEntry(S(G, I), bZ), StringEntry(ae(G, I), aE), StringEntry(T(G, I), cB), IntegerEntry(Y(G, I), cC)]
708+ }
709+ }
688710 }
689- }
690- }
711+ }
691712 }
692713
693714
694715
695-@Callable(aw)
696-func buyArtwork (H,aX) = bA(aw, H, aX, "", "", false)
716+@Callable(az)
717+func buyArtwork (I,ba) = {
718+ let cB = w(T(ba, I))
719+ if ((cB == t))
720+ then bD(az, I, ba, "", "", false)
721+ else throw("Direct buy only allowed when no auction type is set!")
722+ }
697723
698724
699725
700-@Callable(aw)
701-func deleteEntry (cy) = {
702- let F = toString(addressFromPublicKey(aw.callerPublicKey))
703- if (containsElement(h, F))
704- then [DeleteEntry(cy)]
726+@Callable(az)
727+func updateTags (cE,I,aw) = {
728+ let G = toString(addressFromPublicKey(az.callerPublicKey))
729+ if (containsElement(h, G))
730+ then if ((size(split(aw, ",")) > 5))
731+ then throw("5 tags max.")
732+ else {
733+ let cF = x(ab(cE, I), "No tags created with this key, so can't update!")
734+ if ((aw == cF))
735+ then throw("Tags are the same as old tags!")
736+ else [StringEntry(ab(cE, I), aw)]
737+ }
705738 else throw("no")
706739 }
707740
708741
709742
710-@Callable(aw)
711-func setBid (H,aX) = {
712- let cv = v(S(aX, H))
713- if ((cv == r))
714- then bQ(aw, H, aX)
715- else if ((cv == s))
716- then bU(aw, H, aX)
717- else throw((("Unknown auction type :" + cv) + ", please contact the admins"))
743+@Callable(az)
744+func deleteEntry (cG) = {
745+ let G = toString(addressFromPublicKey(az.callerPublicKey))
746+ if (containsElement(h, G))
747+ then [DeleteEntry(cG)]
748+ else throw("no")
718749 }
719750
720751
721752
722-@Callable(aw)
723-func acceptBid (H,aX,P,aY) = {
724- let cv = v(S(aX, H))
725- if ((cv == r))
726- then bZ(aw, H, aX, P, aY)
727- else if ((cv == s))
728- then cd(aw, H, aX, P, aY)
729- else throw((("Unknown auction type :" + cv) + ", please contact the admins"))
753+@Callable(az)
754+func setBid (I,ba) = {
755+ let cB = w(T(ba, I))
756+ if ((cB == r))
757+ then bT(az, I, ba)
758+ else if ((cB == s))
759+ then bY(az, I, ba)
760+ else throw((("Unknown auction type :" + cB) + ", please contact the admins"))
730761 }
731762
732763
733764
734-@Callable(aw)
735-func cancelBid (H,aX,P) = {
736- let cv = v(S(aX, H))
737- if ((cv == r))
738- then ch(aw, H, aX, P)
739- else ck(aw, H, aX, P)
765+@Callable(az)
766+func acceptBid (I,ba,Q,bb) = {
767+ let cB = w(T(ba, I))
768+ if ((cB == r))
769+ then cd(az, I, ba, Q, bb)
770+ else if ((cB == s))
771+ then ch(az, I, ba, Q, bb)
772+ else throw((("Unknown auction type :" + cB) + ", please contact the admins"))
773+ }
774+
775+
776+
777+@Callable(az)
778+func cancelBid (I,ba,Q) = {
779+ let cB = w(T(ba, I))
780+ if ((cB == r))
781+ then cl(az, I, ba, Q)
782+ else co(az, I, ba, Q)
740783 }
741784
742785

github/deemru/w8io/169f3d6 
250.14 ms