tx · 4d5f7c2sSBSbq9LAwRoqoZzYHQCZBBFcLADPcMwQs813

3MyRsssByY6ZDZxzXEFK7sgFYbtXAxajmJp:  -0.01000000 Waves

2021.10.06 12:18 [1734174] smart account 3MyRsssByY6ZDZxzXEFK7sgFYbtXAxajmJp > SELF 0.00000000 Waves

{ "type": 13, "id": "4d5f7c2sSBSbq9LAwRoqoZzYHQCZBBFcLADPcMwQs813", "fee": 1000000, "feeAssetId": null, "timestamp": 1633511931585, "version": 2, "chainId": 84, "sender": "3MyRsssByY6ZDZxzXEFK7sgFYbtXAxajmJp", "senderPublicKey": "7mNS5bKoVK7u5db7PvrcUj25wxK6NvkMjqkMHjBKcpVb", "proofs": [ "4FfJ3stvXYqsbYZZYEdyenY4n6k2noVbfjjUr8Tyu9wM6Ur9dzuwDF8TrejdFLdKs9qf2FRUbX9aVt9LdRaoAA2a" ], "script": "base64:AAIFAAAAAAAAAD8IAhIFCgMBCAgSCQoHCAgICAgICBIJCgcIAQEICAEBEgQKAggIEgMKAQgSBAoCCAgSBgoECAgICBIFCgMICAgAAABQAAAAAAh1bml0VGVzdAcAAAAACW9yYWNsZUZlZQkBAAAABXZhbHVlAAAAAQkABCYAAAABAgAAACMzTXBaUWp6R29nbWlmY0VLZThtRGQ2cmliTDdueFQ5QUN5ZQAAAAALZmVlUmVjZWl2ZXICAAAAIzNONjV4THE4SmNDZWFFaVIxVEpRN2RCcVhCdkV5NkU0OFd6AAAAAAhjZXJ0RGFwcAIAAAAjM014Y1hyTmJNWktZYVNyaGNmZU1tMmhabkJlQ3UzeVJXc3cAAAAACHVzZXJEYXBwCQEAAAAFdmFsdWUAAAABCQAEJgAAAAECAAAAIzNOOWNRZ1pGUEhIVnU4d3FzbjJEa1FGZWhnM2g4Q05pb29BAAAAAA13aGl0ZWxpc3REYXBwCQEAAAAFdmFsdWUAAAABCQAEJgAAAAECAAAAIzNOOXhaWUdwek1GRFh2WHVjdG1VNnpWOHFTem0yWmZGMzFmAAAAAAtVU0ROQXNzZXRJZAEAAAAgAIUpTOkTLqoXmGxvzdEleYQFDyLlDcuqJGsbsu9ZirwAAAAABm93bmVycwkABEwAAAACCQAEHQAAAAIFAAAACW9yYWNsZUZlZQIAAAAGb3duZXIxCQAETAAAAAIJAAQdAAAAAgUAAAAJb3JhY2xlRmVlAgAAAAZvd25lcjIFAAAAA25pbAAAAAAQVVNETkZpcnN0U2VsbEN1dAAAAAAAAAAAlgAAAAARVVNETlNlY29uZFNlbGxDdXQAAAAAAAAAAB4AAAAAEm9yaWdpbmFsQ3JlYXRvckN1dAAAAAAAAAAARgAAAAALZGFwcFJ1bm5pbmcJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQbAAAAAgUAAAAIdXNlckRhcHACAAAAFGNvbmZfZGFwcF9pc19ydW5uaW5nBgAAAAAObWFpbnRlbmFuY2VNU0cJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQdAAAAAgUAAAAIdXNlckRhcHACAAAAFGNvbmZfbWFpbnRlbmFuY2VfbXNnAgAAAAAAAAAADXVzZXJTdXNwZW5kZWQCAAAACVNVU1BFTkRFRAAAAAALdXNlclJl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X3ByaWNlXwUAAAAFYXJ0SWQCAAAAAV8FAAAABmNhbGxlcgEAAAASa2V5QXNzZXRJZEFjY2VwdGVkAAAAAgAAAAZjYWxsZXIAAAAFYXJ0SWQJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAEmFydF9hc3NldEFjY2VwdGVkXwUAAAAFYXJ0SWQCAAAAAV8FAAAABmNhbGxlcgEAAAARa2V5SGFzaEJ5VHhpZEFkZHIAAAACAAAABmNhbGxlcgAAAAR0eGlkCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAABNnZXRfaGFzaGJ5dHhpZGFkZHJfBQAAAAR0eGlkAgAAAAFfBQAAAAZjYWxsZXIBAAAADmtleU93bmVyQnlIYXNoAAAAAQAAAApzaGEyNTZIYXNoCQABLAAAAAICAAAAEmdldF9vd25lcl9ieV9oYXNoXwUAAAAKc2hhMjU2SGFzaAEAAAASa2V5VHhpZEJ5SGFzaE93bmVyAAAAAgAAAApzaGEyNTZIYXNoAAAABmNhbGxlcgkAASwAAAACAgAAABdnZXRfdHhpZF9ieV9oYXNoX293bmVyXwkAAlgAAAABCQALVAAAAAEJAAGbAAAAAQkAASwAAAACBQAAAApzaGEyNTZIYXNoBQAAAAZjYWxsZXIAAAAAGWN1cnJlbnRDZXJ0aWZpY2F0aW9uUHJpY2UJAQAAABlnZXRJbnRlZ2VyQnlLZXlGcm9tT3JhY2xlAAAAAQkAASwAAAACAgAAABJjZXJ0aWZpY2F0aW9uX2ZlZV8JAAJYAAAAAQUAAAALVVNETkFzc2V0SWQBAAAAEGdldEFtb3VudEJ5QmlkSWQAAAABAAAABWJpZElkCQEAAAALdmFsdWVPckVsc2UAAAACCQEAAAAPZ2V0SW50ZWdlckJ5S2V5AAAAAQkBAAAACGtleUJpZElkAAAAAQUAAAAFYmlkSWQAAAAAAAAAAAABAAAAGmdldEFtb3VudEhpZ2hlc3RCaWRCeUFydElkAAAAAQAAAAVhcnRJZAQAAAAFYmlkSWQJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEJAQAAABJrZXlIaWdoZXN0QmlkQmlkSWQAAAABBQAAAAVhcnRJZAMJAAAAAAAAAgUAAAAFYmlkSWQCAAAAAAAAAAAAAAAAAAkBAAAAEGdldEFtb3Vu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AAUZAAAABwUAAAAIdG90YWxORlQFAAAAC2FydHdvcmtOYW1lBQAAAAphbW91bnRTb2xkBQAAAAxhcnR3b3JrUHJpY2UFAAAADHByaWNlQXNzZXRJZAUAAAAKbWF4Q2FuU2VsbAUAAAAIaXNPblNhbGUBAAAACmdldEJpZERhdGEAAAAJAAAAAWkAAAAGY2FsbGVyAAAABmlzc3VlcgAAAAVhcnRJZAAAAAhiaWRPd25lcgAAAAViaWRJZAAAAAxwcmljZUFzc2V0SWQAAAAMYXJ0d29ya1ByaWNlAAAABWlzQmlkBAAAAAljaGVja1VzZXIJAQAAAAx2YWxpZGF0ZVVzZXIAAAABBQAAAAZpc3N1ZXIDAwUAAAAFaXNCaWQJAQAAAAIhPQAAAAIFAAAACWNoZWNrVXNlcgIAAAAABwkAAAIAAAABBQAAAAljaGVja1VzZXIEAAAACmJpZERhdGFLZXkJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAEYmlkXwUAAAAFYXJ0SWQCAAAAAV8FAAAABmlzc3VlcgIAAAABXwUAAAAIYmlkT3duZXICAAAAAV8FAAAABWJpZElkBAAAAAx0MDEzNTE5MTM2NDgDBQAAAAVpc0JpZAkBAAAAFmdldFByaWNlQXNzZXRJZEZyb21CaWQAAAABBQAAAApiaWREYXRhS2V5CQEAAAAUdmFsaWRhdGVQcmljZUFzc2V0SWQAAAADBQAAAAFpBQAAAAxwcmljZUFzc2V0SWQFAAAADGFydHdvcmtQcmljZQQAAAAGYW1vdW50CAUAAAAMdDAxMzUxOTEzNjQ4AAAAAl8xBAAAAAdhc3NldElkCAUAAAAMdDAxMzUxOTEzNjQ4AAAAAl8yCQAFFQAAAAMFAAAACmJpZERhdGFLZXkFAAAABmFtb3VudAUAAAAHYXNzZXRJZAEAAAARZ2V0Q29tbWlzc2lvbkRhdGEAAAAFAAAABmlzc3VlcgAAAAdhc3NldElkAAAABmFtb3VudAAAAAphbW91bnRTb2xkAAAACm1heENhblNlbGwEAAAADWlzV2hpdGVsaXN0ZWQJAQAAAA5jaGVja1doaXRlbGlzdAAAAAEFAAAABmlzc3VlcgQAAAADY3V0AwkAAGYAAAACBQAAAA1pc1doaXRlbGlzdGVkBQAAAAZoZWlnaHQAAAAAAAAAAAADCQAAAAAAAAIFAAAAB2Fzc2V0SWQFAAAAC1VTRE5Bc3NldElkBQAAABBVU0RORmlyc3RTZWxsQ3V0CQAAAgAAAAECAAAAFk9ubHkgVVNETiBpcyBhY2NlcHRlZCEEAAAAD2Ftb3VudEZvclNjb25leAkAAGsAAAADBQAAAAZhbW91bnQFAAAAA2N1dAAAAAAAAAAD6AQAAAAQYW1vdW50Rm9yQ3JlYXRvcgkAAGUAAAACBQAAAAZhbW91bnQFAAAAD2Ftb3VudEZvclNjb25leAMJAAAAAAAAAgUAAAAKYW1vdW50U29sZAUAAAAKbWF4Q2FuU2VsbAkAAAIAAAABAgAAAAxBcnQgc29sZCBvdXQEAAAADW5ld0Ftb3VudFNvbGQJAABkAAAAAgUAAAAKYW1vdW50U29sZAAAAAAAAAAAAQkABRUAAAADBQAAAA9hbW91bnRGb3JTY29uZXgFAAAAEGFtb3VudEZvckNyZWF0b3IFAAAADW5ld0Ftb3VudFNvbGQBAAAADGdldElzc3VlRGF0YQAAAAsAAAAGaXNzdWVyAAAABWFydElkAAAAC2FydHdvcmtOYW1lAAAADW5ld0Ftb3VudFNvbGQAAAAKbWF4Q2FuU2VsbAAAAAh0b3RhbE5GVAAAAAZjYWxsZXIAAAAIYmlkT3duZXIAAAAFYmlkSWQAAAABaQAAAAhpc09uU2FsZQQAAAAJaXNzdWVNZXRhCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAlDcmVhdG9yOiAFAAAABmlzc3VlcgIAAAAILEFydElEOiAFAAAABWFydElkAgAAAA8sQXJ0d29yayBuYW1lOiAFAAAAC2FydHdvcmtOYW1lAgAAAAgsSXNzdWU6IAkAAaQAAAABBQAAAA1uZXdBbW91bnRTb2xkAgAAAAEvCQABpAAAAAEFAAAACm1heENhblNlbGwEAAAACnNlbGxTdGF0dXMDAwkAAAAAAAACBQAAAA1uZXdBbW91bnRTb2xkBQAAAAptYXhDYW5TZWxsBgkBAAAAASEAAAABBQAAAAhpc09uU2FsZQcGBAAAAApyZWNlaXZlTkZUAwkBAAAAAiE9AAAAAgUAAAAIYmlkT3duZXICAAAAAAkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQUAAAAIYmlkT3duZXIIBQAAAAFpAAAABmNhbGxlcgkABRUAAAADBQAAAApzZWxsU3RhdHVzBQAAAApyZWNlaXZlTkZUBQAAAAlpc3N1ZU1ldGEBAAAAD2NhbGN1bGF0ZVJhcml0eQAAAAEAAAAJbWludEluZGV4AwkAAGYAAAACAAAAAAAAAAAEBQAAAAltaW50SW5kZXgCAAAAA1NTUgMJAABmAAAAAgAAAAAAAAAACwUAAAAJbWludEluZGV4AgAAAAJTUgMJAABmAAAAAgAAAAAAAAAAZQUAAAAJbWludEluZGV4AgAAAAFSAgAAAAFOAQAAAAxnZXRCaWRLZXlWYWwAAAADAAAAB2Fzc2V0SWQAAAAKYmlkRGF0YUtleQAAAARkYXRlBAAAAAphc3NldElkQmlkAwkBAAAAASEAAAABCQEAAAAJaXNEZWZpbmVkAAAAAQUAAAAHYXNzZXRJZAkAAAIAAAABAgAAABVPbmx5IFVTRE4gaXMgYWNjZXB0ZWQJAAJYAAAAAQkBAAAABXZhbHVlAAAAAQUAAAAHYXNzZXRJZAQAAAAHYmlkRGF0YQkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQkAASwAAAACBQAAAApiaWREYXRhS2V5AgAAAAVfT1BFTgQAAAAJYmlkRGVsT2xkCQEAAAALRGVsZXRlRW50cnkAAAABCQABLAAAAAIFAAAACmJpZERhdGFLZXkCAAAABV9PUEVOBAAAAAliaWRVcGRhdGUJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgUAAAAKYmlkRGF0YUtleQIAAAAHX0NMT1NFRAkAASwAAAACCQABLAAAAAIFAAAAB2JpZERhdGECAAAAAV8JAAGkAAAAAQUAAAAEZGF0ZQkABRUAAAADBQAAAAphc3NldElkQmlkBQAAAAliaWREZWxPbGQFAAAACWJpZFVwZGF0ZQEAAAAHYnV5TWludAAAAAYAAAABaQAAAAVhcnRJZAAAAAZpc3N1ZXIAAAAFYmlkSWQAAAAIYmlkT3duZXIAAAAFaXNCaWQEAAAACmNhbGxlckRhdGEJAQAAAAxpZENhbGxlckRhdGUAAAABBQAAAAFpBAAAAAJpZAgFAAAACmNhbGxlckRhdGEAAAACXzEEAAAABmNhbGxlcggFAAAACmNhbGxlckRhdGEAAAACXzIEAAAABGRhdGUIBQAAAApjYWxsZXJEYXRhAAAAAl8zBAAAAAdhcnREYXRhCQEAAAAKZ2V0QXJ0RGF0YQAAAAQFAAAAAWkFAAAABmlzc3VlcgUAAAAFYXJ0SWQFAAAABWlzQmlkBAAAAAh0b3RhbE5GVAgFAAAAB2FydERhdGEAAAACXzEEAAAAC2FydHdvcmtOYW1lCAUAAAAHYXJ0RGF0YQAAAAJfMgQAAAAKYW1vdW50U29sZAgFAAAAB2FydERhdGEAAAACXzMEAAAADGFydHdvcmtQcmljZQgFAAAAB2FydERhdGEAAAACXzQEAAAADHByaWNlQXNzZXRJZAgFAAAAB2FydERhdGEAAAACXzUEAAAACm1heENhblNlbGwIBQAAAAdhcnREYXRhAAAAAl82BAAAAAhpc09uU2FsZQgFAAAAB2FydERhdGEAAAACXzcEAAAAB2JpZERhdGEJAQAAAApnZXRCaWREYXRhAAAACQUAAAABaQUAAAAGY2FsbGVyBQAAAAZpc3N1ZXIFAAAABWFydElkBQAAAAhiaWRPd25lcgUAAAAFYmlkSWQFAAAADHByaWNlQXNzZXRJZAUAAAAMYXJ0d29ya1ByaWNlBQAAAAVpc0JpZAQAAAAKYmlkRGF0YUtleQgFAAAAB2JpZERhdGEAAAACXzEEAAAABmFtb3VudAgFAAAAB2JpZERhdGEAAAACXzIEAAAAB2Fzc2V0SWQIBQAAAAdiaWREYXRhAAAAAl8zBAAAAA1jb21taXNpb25EYXRhCQEAAAARZ2V0Q29tbWlzc2lvbkRhdGEAAAAFBQAAAAZpc3N1ZXIJAQAAAAV2YWx1ZQAAAAEFAAAAB2Fzc2V0SWQFAAAABmFtb3VudAUAAAAKYW1vdW50U29sZAUAAAAKbWF4Q2FuU2VsbAQAAAAPYW1vdW50Rm9yU2NvbmV4CAUAAAANY29tbWlzaW9uRGF0YQAAAAJfMQQAAAAQYW1vdW50Rm9yQ3JlYXRvcggFAAAADWNvbW1pc2lvbkRhdGEAAAACXzIEAAAADW5ld0Ftb3VudFNvbGQIBQAAAA1jb21taXNpb25EYXRh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bnRlZ2VyQnlLZXkAAAABCQEAAAAKa2V5TWF4TWludAAAAAIFAAAABmlzc3VlcgUAAAAFYXJ0SWQEAAAADG9sZEVuZEhlaWdodAkBAAAAD2dldEludGVnZXJCeUtleQAAAAEJAQAAAAxrZXlFbmRIZWlnaHQAAAACBQAAAAZpc3N1ZXIFAAAABWFydElkBAAAAAhkdXJhdGlvbgkBAAAAD2dldEludGVnZXJCeUtleQAAAAEJAQAAAAtrZXlEdXJhdGlvbgAAAAIFAAAABmlzc3VlcgUAAAAFYXJ0SWQEAAAACWVuZEhlaWdodAkAAGQAAAACBQAAAAhkdXJhdGlvbgUAAAAGaGVpZ2h0AwkAAGYAAAACBQAAAAZoZWlnaHQFAAAADG9sZEVuZEhlaWdodAMJAAAAAAAAAgUAAAAKYW1vdW50U29sZAUAAAAKbWF4Q2FuU2VsbAkAAAIAAAABAgAAACZDYW4ndCByZXN0YXJ0IGF1Y3Rpb24sIG1heCBhbW91bnQgc29sZAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAADGtleUVuZEhlaWdodAAAAAIFAAAABmlzc3VlcgUAAAAFYXJ0SWQFAAAACWVuZEhlaWdodAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQEAAAASa2V5SGlnaGVzdEJpZEJpZElkAAAAAQUAAAAFYXJ0SWQFAAAAA25pbAkAAAIAAAABAgAAACRQcmV2aW91cyBhdWN0aW9uIGlzbid0IGNvbXBsZXRlZCB5ZXQBAAAAFGFjY2VwdEJpZFRyYWRpdGlvbmFsAAAABQAAAAFpAAAABWFydElkAAAABmlzc3VlcgAAAAViaWRJZAAAAAhiaWRPd25lcgQAAAAJZW5kSGVpZ2h0CQEAAAAPZ2V0SW50ZWdlckJ5S2V5AAAAAQkBAAAADGtleUVuZEhlaWdodAAAAAIFAAAABmlzc3VlcgUAAAAFYXJ0SWQEAAAADGhpZ2hlc3RCaWRJZAkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQkBAAAAEmtleUhpZ2hlc3RCaWRCaWRJZAAAAAEFAAAABWFydElkAwkAAGYAAAACBQAAAAZoZWlnaHQFAAAACWVuZEhlaWdodAMJAAAAAAAAAgUAAAAFYmlkSWQFAAAADGhp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AQAAABFzZXRCaWRUcmFkaXRpb25hbAAAAAMFAAAAAWkFAAAABWFydElkBQAAAAZpc3N1ZXIJAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAAFlVua25vd24gYXVjdGlvbiB0eXBlIDoFAAAAC2F1Y3Rpb25UeXBlAgAAABssIHBsZWFzZSBjb250YWN0IHRoZSBhZG1pbnMAAAABaQEAAAAJYWNjZXB0QmlkAAAABAAAAAVhcnRJZAAAAAZpc3N1ZXIAAAAFYmlkSWQAAAAIYmlkT3duZXIEAAAAC2F1Y3Rpb25UeXBlCQEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABCQEAAAAOa2V5QXVjdGlvblR5cGUAAAACBQAAAAZpc3N1ZXIFAAAABWFydElkAwkAAAAAAAACBQAAAAthdWN0aW9uVHlwZQUAAAAMYXVjdGlvblR5cGUxCQEAAAAXYWNjZXB0QmlkTm9uVHJhZGl0aW9uYWwAAAAFBQAAAAFpBQAAAAVhcnRJZAUAAAAGaXNzdWVyBQAAAAViaWRJZAUAAAAIYmlkT3duZXIDCQAAAAAAAAIFAAAAC2F1Y3Rpb25UeXBlBQAAAAxhdWN0aW9uVHlwZTIJAQAAABRhY2NlcHRCaWRUcmFkaXRpb25hbAAAAAUFAAAAAWkFAAAABWFydElkBQAAAAZpc3N1ZXIFAAAABWJpZElkBQAAAAhiaWRPd25lcgkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAWVW5rbm93biBhdWN0aW9uIHR5cGUgOgUAAAALYXVjdGlvblR5cGUCAAAAGywgcGxlYXNlIGNvbnRhY3QgdGhlIGFkbWlucwAAAAFpAQAAAAljYW5jZWxCaWQAAAADAAAABWFydElkAAAABmlzc3VlcgAAAAViaWRJZAQAAAALYXVjdGlvblR5cGUJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEJAQAAAA5rZXlBdWN0aW9uVHlwZQAAAAIFAAAABmlzc3VlcgUAAAAFYXJ0SWQDCQAAAAAAAAIFAAAAC2F1Y3Rpb25UeXBlBQAAAAxhdWN0aW9uVHlwZTEJAQAAAA1jYW5jZWxCaWRJbXBsAAAABAUAAAABaQUAAAAFYXJ0SWQFAAAABmlzc3VlcgUAAAAFYmlkSWQJAQAAABhjYW5jZWxCaWRJbXBsVHJhZGl0aW9uYWwAAAAEBQAAAAFpBQAAAAVhcnRJZAUAAAAGaXNzdWVyBQAAAAViaWRJZAAAAAAPVw8g", "height": 1734174, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: BTWWj5ACCiSgaVYEYa2NnMrWD4jxqBHnKo9SeHinVfeL Next: 2mFEyMVbvC1WJvi4f5V7USxJcULDZZAK6DjDFFtacPUY Diff:
OldNewDifferences
77
88 let c = "3N65xLq8JcCeaEiR1TJQ7dBqXBvEy6E48Wz"
99
10-let d = value(addressFromString("3N9cQgZFPHHVu8wqsn2DkQFehg3h8CNiooA"))
10+let d = "3MxcXrNbMZKYaSrhcfeMm2hZnBeCu3yRWsw"
1111
12-let e = value(addressFromString("3N9xZYGpzMFDXvXuctmU6zV8qSzm2ZfF31f"))
12+let e = value(addressFromString("3N9cQgZFPHHVu8wqsn2DkQFehg3h8CNiooA"))
1313
14-let f = base58'DZ8ALmuLeSZ2ocsYLAcL9MiXBFDbMNQG9LtitREyU5ZC'
14+let f = value(addressFromString("3N9xZYGpzMFDXvXuctmU6zV8qSzm2ZfF31f"))
1515
16-let g = "3N1Dhq5ZZyoojQisuTLusYjnGisqrxDwGLy"
16+let g = base58'132maRL3uF35tc2bpRih9D6MYq5DR6H28zkop786dKyu'
1717
18-let h = 150
18+let h = [getString(b, "owner1"), getString(b, "owner2")]
1919
20-let i = valueOrElse(getBoolean(d, "conf_dapp_is_running"), true)
20+let i = 150
2121
22-let j = valueOrElse(getString(d, "conf_maintenance_msg"), "")
22+let j = 30
2323
24-let k = "SUSPENDED"
24+let k = 70
2525
26-let l = "REMOVED"
26+let l = valueOrElse(getBoolean(e, "conf_dapp_is_running"), true)
2727
28-let m = "UNREGISTERED"
28+let m = valueOrElse(getString(e, "conf_maintenance_msg"), "")
2929
30-let n = "ALLOWED"
30+let n = "SUSPENDED"
3131
32-let o = "BIDTYPE"
32+let o = "REMOVED"
3333
34-let p = "TRADITIONAL"
34+let p = "UNREGISTERED"
3535
36-func q (r) = valueOrElse(getString(this, r), "")
36+let q = "ALLOWED"
37+
38+let r = "BIDTYPE"
39+
40+let s = "TRADITIONAL"
41+
42+func t (u) = valueOrElse(getString(e, u), "")
3743
3844
39-func s (r) = valueOrErrorMessage(getInteger(b, r), "Integer undefine or 0 in oracle")
45+func v (u) = valueOrElse(getString(this, u), "")
4046
4147
42-func t (r) = valueOrElse(getInteger(this, r), 0)
48+func w (u,x) = valueOrErrorMessage(getString(this, u), x)
4349
4450
45-func u (r) = valueOrElse(getInteger(e, r), 0)
51+func y (u) = valueOrErrorMessage(getInteger(b, u), "Integer undefine or 0 in oracle")
4652
4753
48-func v (r) = valueOrElse(getBoolean(this, r), false)
54+func z (u) = valueOrElse(getInteger(this, u), 0)
4955
5056
51-func w (x) = ("user_status_" + x)
57+func A (u) = valueOrElse(getInteger(f, u), 0)
5258
5359
54-func y (x,z) = ((("art_date_" + z) + "_") + x)
60+func B (u) = valueOrElse(getBoolean(this, u), false)
5561
5662
57-func A (x,z) = ((("art_name_" + z) + "_") + x)
63+func C (D) = (size(D) == 64)
5864
5965
60-func B (x,z) = ((("art_desc_" + z) + "_") + x)
66+func E (F) = ("user_status_" + F)
6167
6268
63-func C (x,z) = ((("art_display_cid_" + z) + "_") + x)
69+func G (F,H) = ((("art_date_" + H) + "_") + F)
6470
6571
66-func D (x,z) = ((("art_maxmint_" + z) + "_") + x)
72+func I (F,H) = ((("art_name_" + H) + "_") + F)
6773
6874
69-func E (x,z) = ((("art_minprice_" + z) + "_") + x)
75+func J (F,H) = ((("art_desc_" + H) + "_") + F)
7076
7177
72-func F (z) = ("art_highestBidBidId_" + z)
78+func K (F,H) = ((("art_display_cid_" + H) + "_") + F)
7379
7480
75-func G (H) = ("bid_" + H)
81+func L (F,H) = ((("art_maxmint_" + H) + "_") + F)
7682
7783
78-func I (x,z) = ((("art_duration_" + z) + "_") + x)
84+func M (F,H) = ((("art_minprice_" + H) + "_") + F)
7985
8086
81-func J (x,z) = ((("art_endheight_" + z) + "_") + x)
87+func N (H) = ("art_highestBidBidId_" + H)
8288
8389
84-func K (x,z) = ((("art_auctiontype_" + z) + "_") + x)
90+func O (P) = ("bid_" + P)
8591
8692
87-func L (x,z) = ((("art_issued_" + z) + "_") + x)
93+func Q (F,H) = ((("art_duration_" + H) + "_") + F)
8894
8995
90-func M (N) = ("nft_issued_" + N)
96+func R (F,H) = ((("art_endheight_" + H) + "_") + F)
9197
9298
93-func O (x,z) = ((("art_onsale_" + z) + "_") + x)
99+func S (F,H) = ((("art_auctiontype_" + H) + "_") + F)
94100
95101
96-func P (x,z) = ((("art_entitlement_" + z) + "_") + x)
102+func T (F,H) = ((("art_issued_" + H) + "_") + F)
97103
98104
99-func Q (x,z) = ((("art_tags_" + z) + "_") + x)
105+func U (V) = ("nft_issued_" + V)
100106
101107
102-func R (x,z) = ((("art_type_" + z) + "_") + x)
108+func W (F,H) = ((("art_onsale_" + H) + "_") + F)
103109
104110
105-func S (x,z) = ((("art_price_" + z) + "_") + x)
111+func X (F,H) = ((("art_entitlement_" + H) + "_") + F)
106112
107113
108-func T (x,z) = ((("art_assetAccepted_" + z) + "_") + x)
114+func Y (F,H) = ((("art_tags_" + H) + "_") + F)
109115
110116
111-func U (x,V) = ((("get_hashbytxidaddr_" + V) + "_") + x)
117+func Z (F,H) = ((("art_type_" + H) + "_") + F)
112118
113119
114-func W (X) = ("get_owner_by_hash_" + X)
120+func aa (F,H) = ((("art_price_" + H) + "_") + F)
115121
116122
117-func Y (X,x) = ("get_txid_by_hash_owner_" + toBase58String(sha256_16Kb(toBytes((X + x)))))
123+func ab (F,H) = ((("art_assetAccepted_" + H) + "_") + F)
118124
119125
120-let Z = s(("certification_fee_" + toBase58String(f)))
121-
122-func aa (H) = valueOrElse(t(G(H)), 0)
126+func ac (F,ad) = ((("get_hashbytxidaddr_" + ad) + "_") + F)
123127
124128
125-func ab (z) = {
126- let H = valueOrElse(q(F(z)), "")
127- if ((H == ""))
129+func ae (af) = ("get_owner_by_hash_" + af)
130+
131+
132+func ag (af,F) = ("get_txid_by_hash_owner_" + toBase58String(sha256_16Kb(toBytes((af + F)))))
133+
134+
135+let ah = y(("certification_fee_" + toBase58String(g)))
136+
137+func ai (P) = valueOrElse(z(O(P)), 0)
138+
139+
140+func aj (H) = {
141+ let P = v(N(H))
142+ if ((P == ""))
128143 then 0
129- else aa(H)
144+ else ai(P)
130145 }
131146
132147
133-func ac (ad,ae) = if ((size(ad) == 0))
148+func ak (al,am) = if ((size(al) == 0))
134149 then throw("Field cannot be is empty")
135- else if ((size(ad) > ae))
136- then throw((ad + " is too long"))
150+ else if ((size(al) > am))
151+ then throw((al + " is too long"))
137152 else true
138153
139154
140-func af (x) = {
141- let ag = valueOrElse(getString(d, w(x)), m)
142- if (if ((ag == m))
155+func an (F) = {
156+ let ao = valueOrElse(getString(e, E(F)), p)
157+ if (if ((ao == p))
143158 then true
144- else (ag == n))
159+ else (ao == q))
145160 then "Register this account first with 'Account' tab"
146- else if ((ag == k))
161+ else if ((ao == n))
147162 then "Account suspended"
148- else if ((ag == l))
163+ else if ((ao == o))
149164 then "Account removed"
150165 else ""
151166 }
152167
153168
154-func ah (x,ai,aj,ak,al) = {
155- let am = af(x)
156- if ((am != ""))
157- then throw(am)
158- else if ((size(ai) == 0))
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))
159174 then throw("Display CID cannot be empty")
160- else if (!(ac(aj, 100)))
161- then throw("100 Char. max name")
162- else if (!(ac(ak, 1000)))
163- then throw("1000 Char. max description")
164- else if ((size(split(al, ",")) > 5))
165- then throw("5 tags max.")
166- else ""
175+ else if ((size(aq) != 46))
176+ then throw("This doesn't seem a valid CID!")
177+ else if (!(ak(ar, 100)))
178+ then throw("100 Char. max name")
179+ else if (!(ak(as, 1000)))
180+ then throw("1000 Char. max description")
181+ else if ((size(split(at, ",")) > 5))
182+ then throw("5 tags max.")
183+ else ""
167184 }
168185
169186
170-func an (ao) = if ((size(ao.payments) == 0))
187+func av (aw) = if ((size(aw.payments) == 0))
171188 then throw("No payment attached")
172189 else {
173- let ap = value(ao.payments[0])
174- let aq = value(ap.amount)
175- $Tuple2(ap, aq)
190+ let ax = value(aw.payments[0])
191+ let ay = value(ax.amount)
192+ $Tuple2(ax, ay)
176193 }
177194
178195
179-func ar (ao) = {
180- let as = an(ao)
181- let ap = as._1
182- let aq = as._2
183- let at = if (if (isDefined(ap.assetId))
184- then (ap.assetId == f)
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)
185202 else false)
186- then ap.assetId
187- else throw("Only Sconex token accepted as transaction fee")
188- if ((aq != Z))
189- then throw(("Payment amount should be " + toString(Z)))
190- else $Tuple2(aq, at)
203+ then ax.assetId
204+ 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)
191208 }
192209
193210
194-func au (ao,av,aw) = {
195- let ax = an(ao)
196- let ap = ax._1
197- let aq = ax._2
198- let at = if (!(isDefined(ap.assetId)))
199- then throw("Wrong asset id")
200- else if (if ((size(av) > 0))
201- then (toBase58String(value(ap.assetId)) == av)
202- else false)
203- then ap.assetId
204- else throw("Wrong asset id")
205- if (if ((at == unit))
206- then (av != "")
207- else false)
208- then throw("Wrong asset id")
209- else if ((aw != aq))
210- then throw(((("Payment don't match " + toString(aw)) + " ") + toString(aq)))
211- else $Tuple2(aq, at)
211+func aC (aD,H) = {
212+ let aE = getInteger(this, T(aD, H))
213+ if ($isInstanceOf(aE, "Int"))
214+ then {
215+ let aF = aE
216+ if ((aF != 0))
217+ then true
218+ else false
219+ }
220+ else false
212221 }
213222
214223
215-func ay (at) = if ((at != toBase58String(f)))
216- then throw("Only Sconex accepted")
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)))
229+ then throw("Wrong asset id")
230+ else if (if ((size(aH) > 0))
231+ then (toBase58String(value(ax.assetId)) == aH)
232+ else false)
233+ then ax.assetId
234+ else throw("Wrong asset id")
235+ if (if ((aB == unit))
236+ then (aH != "")
237+ else false)
238+ 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)
242+ }
243+
244+
245+func aK (aB) = if ((aB != toBase58String(g)))
246+ then throw("Only USDN accepted")
217247 else true
218248
219249
220-func az (at,aA) = {
221- let aB = if (a)
250+func aL (aB,aM) = {
251+ let aN = if (a)
222252 then 1
223- else (Z * 2)
224- if (if (if ((at == toBase58String(f)))
225- then (aB > aA)
253+ else (ah * 2)
254+ if (if (if ((aB == toBase58String(g)))
255+ then (aN > aM)
226256 else false)
227- then (aA != 0)
257+ then (aM != 0)
228258 else false)
229- then throw(("Wrong minimum sell price " + toString(aB)))
259+ then throw(("Wrong minimum sell price " + toString(aN)))
230260 else true
231261 }
232262
233263
234-func aC (at) = if ((at == "WAVES"))
235- then throw("Only sconex is accepted!")
236- else fromBase58String(at)
264+func aO (aB) = if ((aB == "WAVES"))
265+ then throw("Only USDN is accepted!")
266+ else fromBase58String(aB)
237267
238268
239-func aD (aE) = {
240- let aF = q((aE + "_OPEN"))
241- if ((aF == ""))
269+func aP (aQ) = {
270+ let aR = v((aQ + "_OPEN"))
271+ if ((aR == ""))
242272 then throw("Bid not found")
243273 else {
244- let aG = split(aF, "_")
245- let aH = parseIntValue(aG[1])
246- let aI = aC(aG[0])
247- if ((0 >= aH))
274+ let aS = split(aR, "_")
275+ let aT = parseIntValue(aS[1])
276+ let aU = aO(aS[0])
277+ if ((0 >= aT))
248278 then throw("Wrong amount")
249- else $Tuple2(aH, aI)
279+ else $Tuple2(aT, aU)
250280 }
251281 }
252282
253283
254-func aJ (ao) = if (!(i))
255- then throw(j)
256- else $Tuple3(toBase58String(ao.transactionId), toBase58String(ao.caller.bytes), lastBlock.timestamp)
284+func aV (aw) = if (!(l))
285+ then throw(m)
286+ else $Tuple3(toBase58String(aw.transactionId), toBase58String(aw.caller.bytes), lastBlock.timestamp)
257287
258288
259-func aK (ao,aL,z,aM) = {
260- let aN = (toBase58String(ao.caller.bytes) == aL)
261- let aO = t("total_nft_issued")
262- let aP = q(A(aL, z))
263- if ((aP == ""))
289+func aW (aw,aX,aY,P) = if (if (if ((toBase58String(aw.caller.bytes) == aX))
290+ then (aY != "")
291+ else false)
292+ then (P != "")
293+ else false)
294+ then true
295+ else false
296+
297+
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 == ""))
264303 then throw("Art doesn't exist")
265304 else {
266- let aQ = v(O(aL, z))
267- let aR = t(L(aL, z))
268- let aw = valueOrElse(t(S(aL, z)), (Z * 2))
269- let av = if (aN)
270- then toBase58String(f)
271- else q(T(aL, z))
272- let aS = t(D(aL, z))
273- if (if (if (!(aM))
274- then !(aN)
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)
309+ then toBase58String(g)
310+ else v(ab(aX, H))
311+ let bg = z(L(aX, H))
312+ if (if (if (!(ba))
313+ then !(bb)
275314 else false)
276- then if (if ((0 >= aw))
315+ then if (if ((0 >= aI))
277316 then true
278- else !(aQ))
317+ else !(be))
279318 then true
280- else (0 >= aS)
319+ else (0 >= bg)
281320 else false)
282321 then throw("Art not for sale")
283- else if (if (if (!(aM))
284- then aN
322+ else if (if (if (!(ba))
323+ then bb
285324 else false)
286- then (0 >= aS)
325+ then (0 >= bg)
287326 else false)
288327 then throw("Max issuable not set")
289- else $Tuple7(aO, aP, aR, aw, av, aS, aQ)
328+ else $Tuple7(bc, bd, bf, aI, aH, bg, be)
290329 }
291330 }
292331
293332
294-func aT (ao,x,aL,z,aU,H,av,aw,aM) = {
295- let am = af(aL)
296- if (if (aM)
297- then (am != "")
333+func bh (aw,F,aX,H,aY,P,aH,aI,ba) = {
334+ let au = an(aX)
335+ if (if (ba)
336+ then (au != "")
298337 else false)
299- then throw(am)
338+ then throw(au)
300339 else {
301- let aE = ((((((("bid_" + z) + "_") + aL) + "_") + aU) + "_") + H)
302- let aV = if (aM)
303- then aD(aE)
304- else au(ao, av, aw)
305- let aq = aV._1
306- let at = aV._2
307- $Tuple3(aE, aq, at)
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)
308347 }
309348 }
310349
311350
312-func aW (aL,at,aq,aR,aS) = {
313- let aX = u(aL)
314- let aY = if ((aX > height))
351+func bj (aX,aB,ay,bf,bg) = {
352+ let bk = A(aX)
353+ let bl = if ((bk > height))
315354 then 0
316- else if ((at == f))
317- then h
318- else throw("Only Sconex is accepted!")
319- let aZ = fraction(aq, aY, 1000)
320- let ba = (aq - aZ)
321- if ((aR == aS))
355+ else if ((aB == g))
356+ then i
357+ else throw("Only USDN is accepted!")
358+ let bm = fraction(ay, bl, 1000)
359+ let bn = (ay - bm)
360+ if ((bf == bg))
322361 then throw("Art sold out")
323362 else {
324- let bb = (aR + 1)
325- $Tuple3(aZ, ba, bb)
363+ let bo = (bf + 1)
364+ $Tuple3(bm, bn, bo)
326365 }
327366 }
328367
329368
330-func bc (aL,z,aP,bb,aS,aO,x,aU,H,ao,aQ) = {
331- let bd = ((((((((("Creator: " + aL) + ",ArtID: ") + z) + ",Artwork name: ") + aP) + ",Issue: ") + toString(bb)) + "/") + toString(aS))
332- let be = Issue(("SCONEX_" + toString((aO + 1))), bd, 1, 0, false)
333- let bf = calculateAssetId(be)
334- let bg = if (if ((bb == aS))
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))
335372 then true
336- else !(aQ))
373+ else !(be))
337374 then false
338375 else true
339- let bh = if ((aU != ""))
340- then addressFromStringValue(aU)
341- else ao.caller
342- $Tuple4(be, bf, bg, bh)
376+ let bs = if ((aY != ""))
377+ then addressFromStringValue(aY)
378+ else aw.caller
379+ $Tuple3(br, bs, bq)
343380 }
344381
345382
346-func bi (at,aE,bj) = {
347- let bk = if (!(isDefined(at)))
348- then throw("Only sconex is accepted")
349- else toBase58String(value(at))
350- let aF = q((aE + "_OPEN"))
351- let bl = DeleteEntry((aE + "_OPEN"))
352- let bm = StringEntry((aE + "_CLOSED"), ((aF + "_") + toString(bj)))
353- $Tuple3(bk, bl, bm)
383+func bt (bu) = if ((4 > bu))
384+ then "SSR"
385+ else if ((11 > bu))
386+ then "SR"
387+ else if ((101 > bu))
388+ then "R"
389+ else "N"
390+
391+
392+func bv (aB,aQ,bw) = {
393+ let bx = if (!(isDefined(aB)))
394+ 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)
354400 }
355401
356402
357-func bn (ao,z,aL,H,aU,aM) = {
358- let bo = aJ(ao)
359- let bp = bo._1
360- let x = bo._2
361- let bj = bo._3
362- let bq = aK(ao, aL, z, aM)
363- let aO = bq._1
364- let aP = bq._2
365- let aR = bq._3
366- let aw = bq._4
367- let av = bq._5
368- let aS = bq._6
369- let aQ = bq._7
370- let aF = aT(ao, x, aL, z, aU, H, av, aw, aM)
371- let aE = aF._1
372- let aq = aF._2
373- let at = aF._3
374- let br = aW(aL, value(at), aq, aR, aS)
375- let aZ = br._1
376- let ba = br._2
377- let bb = br._3
378- let bs = bc(aL, z, aP, bb, aS, aO, x, aU, H, ao, aQ)
379- let be = bs._1
380- let bf = bs._2
381- let bg = bs._3
382- let bh = bs._4
383- let bt = bi(at, aE, bj)
384- let bk = bt._1
385- let bl = bt._2
386- let bm = bt._3
387- let bu = ((((((("art_sold_" + toString(bb)) + "_of_") + toString(aS)) + "_") + z) + "_") + aL)
388- let bv = if (!(aM))
389- then ((((((((((x + "_") + toString(bj)) + "_") + bp) + "_") + toString(aw)) + "_") + av) + "_") + toBase58String(bf))
390- else ((((((((((toString(bh) + "_") + toString(bj)) + "_") + bp) + "_") + toString(aq)) + "_") + bk) + "_") + toBase58String(bf))
391- let bw = StringEntry(bu, bv)
392- let bx = [IntegerEntry(L(aL, z), bb), StringEntry(("nft_" + toBase58String(bf)), bu), IntegerEntry("total_nft_issued", (aO + 1)), BooleanEntry(O(aL, z), bg), be, ScriptTransfer(Address(fromBase58String(aL)), ba, at), ScriptTransfer(Address(fromBase58String(c)), aZ, at), ScriptTransfer(bh, 1, bf), StringEntry(M(toBase58String(bf)), aL)]
393- if (aM)
394- then (((bx :+ bw) :+ bm) :+ bl)
395- else bw :: bx
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))
430+ then {
431+ let bH = {
432+ let aE = bG
433+ if ($isInstanceOf(aE, "String"))
434+ then {
435+ let bI = aE
436+ bI
437+ }
438+ else throw("Incorrect invoke result")
439+ }
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
456+ else throw("Strict value is not equal to itself.")
457+ }
458+ else throw("Strict value is not equal to itself.")
396459 }
397460
398461
399-func by (ao,z,aL) = {
400- let bz = aJ(ao)
401- let bp = bz._1
402- let x = bz._2
403- let bj = bz._3
404- let bA = an(ao)
405- let ap = bA._1
406- let aq = bA._2
407- let at = if (!(isDefined(ap.assetId)))
408- then throw("Only sconex is accepted!")
409- else toBase58String(value(ap.assetId))
410- let bB = t(("current_bidamount_" + z))
411- if (!(ay(at)))
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)))
471+ then throw("Only USDN is accepted!")
472+ else toBase58String(value(ax.assetId))
473+ let bT = z(("current_bidamount_" + H))
474+ if (!(aK(aB)))
412475 then throw("asset not accepted")
413- else if (!(az(at, aq)))
476+ else if (!(aL(aB, ay)))
414477 then throw("Wrong min sell")
415478 else {
416- let aR = t(L(aL, z))
417- let aS = t(D(aL, z))
418- if ((0 >= aS))
479+ let bf = z(T(aX, H))
480+ let bg = z(L(aX, H))
481+ if ((0 >= bg))
419482 then throw("No max edition set for this artwork")
420- else if ((aR >= aS))
483+ else if ((bf >= bg))
421484 then throw("Sold out, you cannot bid")
422- else [StringEntry((((((((("bid_" + z) + "_") + aL) + "_") + x) + "_") + bp) + "_OPEN"), ((((at + "_") + toString(aq)) + "_") + toString(bj))), IntegerEntry(("current_bidamount_" + z), (bB + 1))]
485+ else [StringEntry((((((((("bid_" + H) + "_") + aX) + "_") + F) + "_") + bC) + "_OPEN"), ((((aB + "_") + toString(ay)) + "_") + toString(bw))), IntegerEntry(("current_bidamount_" + H), (bT + 1))]
423486 }
424487 }
425488
426489
427-func bC (ao,z,aL) = {
428- let bD = t(J(aL, z))
429- let bE = ab(z)
430- if ((height > bD))
490+func bU (aw,H,aX) = {
491+ let bV = z(R(aX, H))
492+ let bW = aj(H)
493+ if ((height > bV))
431494 then throw("This auction is finished already!")
432495 else {
433- let bF = aJ(ao)
434- let bp = bF._1
435- let x = bF._2
436- let bj = bF._3
437- let bG = an(ao)
438- let ap = bG._1
439- let aq = bG._2
440- if ((bE >= aq))
441- then throw(("Please place a bid higher then: " + toString(bE)))
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)))
442505 else {
443- let at = if (!(isDefined(ap.assetId)))
444- then throw("Only sconex is accepted!")
445- else toBase58String(value(ap.assetId))
446- let bB = t(("current_bidamount_" + z))
447- if (!(ay(at)))
506+ let aB = if (!(isDefined(ax.assetId)))
507+ then throw("Only USDN is accepted!")
508+ else toBase58String(value(ax.assetId))
509+ let bT = z(("current_bidamount_" + H))
510+ if (!(aK(aB)))
448511 then throw("asset not accepted")
449- else if (!(az(at, aq)))
512+ else if (!(aL(aB, ay)))
450513 then throw("Wrong min sell")
451514 else {
452- let aR = t(L(aL, z))
453- let aS = t(D(aL, z))
454- if ((0 >= aS))
515+ let bf = z(T(aX, H))
516+ let bg = z(L(aX, H))
517+ if ((0 >= bg))
455518 then throw("No max edition set for this artwork")
456- else if ((aR >= aS))
519+ else if ((bf >= bg))
457520 then throw("Sold out, you cannot bid")
458- else [StringEntry((((((((("bid_" + z) + "_") + aL) + "_") + x) + "_") + bp) + "_OPEN"), ((((at + "_") + toString(aq)) + "_") + toString(bj))), IntegerEntry(("current_bidamount_" + z), (bB + 1)), StringEntry(F(z), toBase58String(ao.transactionId)), IntegerEntry(G(toBase58String(ao.transactionId)), aq)]
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)]
459522 }
460523 }
461524 }
462525 }
463526
464527
465-func bH (ao,z,aL,H,aU) = {
466- let x = toBase58String(ao.caller.bytes)
467- if ((x != aL))
528+func bZ (aw,H,aX,P,aY) = {
529+ let F = toBase58String(aw.caller.bytes)
530+ if ((F != aX))
468531 then throw("You cannot do this action")
469- else bn(ao, z, aL, H, aU, true)
532+ else bA(aw, H, aX, P, aY, true)
470533 }
471534
472535
473-func bI (z,aL) = {
474- let aR = t(L(aL, z))
475- let aS = t(D(aL, z))
476- let bJ = t(J(aL, z))
477- let bK = t(I(aL, z))
478- let bD = (bK + height)
479- if ((height > bJ))
480- then if ((aR == aS))
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))
481544 then throw("Can't restart auction, max amount sold")
482- else [IntegerEntry(J(aL, z), bD), DeleteEntry(F(z))]
545+ else [IntegerEntry(R(aX, H), bV), DeleteEntry(N(H))]
483546 else throw("Previous auction isn't completed yet")
484547 }
485548
486549
487-func bL (ao,z,aL,H,aU) = {
488- let bD = t(J(aL, z))
489- let bM = q(F(z))
490- if ((height > bD))
491- then if ((H == bM))
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))
492555 then {
493- let bN = bn(ao, z, aL, H, aU, true)
494- let bO = bI(z, aL)
495- (bO ++ bN)
556+ let cf = bA(aw, H, aX, P, aY, true)
557+ let cg = ca(H, aX)
558+ (cg ++ cf)
496559 }
497560 else throw("This is not the winning bid!")
498561 else throw("This auction is not yet finished!")
499562 }
500563
501564
502-func bP (ao,z,aL,H) = {
503- let bQ = aJ(ao)
504- let bp = bQ._1
505- let x = bQ._2
506- let bj = bQ._3
507- let bB = t(("current_bidamount_" + z))
508- let aE = ((((((("bid_" + z) + "_") + aL) + "_") + x) + "_") + H)
509- let aF = q((aE + "_OPEN"))
510- if ((aF == ""))
511- then throw("Bid not found")
512- else {
513- let aG = split(aF, "_")
514- let at = aC(aG[0])
515- let bR = "CANCELED"
516-[DeleteEntry((aE + "_OPEN")), StringEntry(((aE + "_") + bR), ((aF + "_") + toString(bj))), IntegerEntry(("current_bidamount_" + z), (bB - 1)), ScriptTransfer(Address(fromBase58String(x)), parseIntValue(aG[1]), at)]
517- }
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)]
518577 }
519578
520579
521-func bS (ao,z,aL,H) = {
522- let bQ = aJ(ao)
523- let bp = bQ._1
524- let x = bQ._2
525- let bj = bQ._3
526- let bB = t(("current_bidamount_" + z))
527- let aE = ((((((("bid_" + z) + "_") + aL) + "_") + x) + "_") + H)
528- let aF = q((aE + "_OPEN"))
529- if ((aF == ""))
530- then throw("Bid not found")
531- else {
532- let aG = split(aF, "_")
533- let at = aC(aG[0])
534- let bR = "CANCELED"
535- let aH = parseIntValue(aG[1])
536- let bM = q(F(z))
537- if ((H == bM))
538- then throw("You can't cancel the highest bid!")
539- else [DeleteEntry((aE + "_OPEN")), StringEntry(((aE + "_") + bR), ((aF + "_") + toString(bj))), IntegerEntry(("current_bidamount_" + z), (bB - 1)), ScriptTransfer(Address(fromBase58String(x)), aH, at)]
540- }
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))
594+ 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)]
541596 }
542597
543598
544-@Callable(ao)
545-func addArtwork (X,aj,ak,al,bT,ai,bU) = {
546- let bV = aJ(ao)
547- let z = bV._1
548- let x = bV._2
549- let bj = bV._3
550- let bW = ah(x, ai, aj, ak, al)
551- if ((bW != ""))
599+@Callable(aw)
600+func mintNft (bc,bq,bs) = if ((aw.caller == this))
601+ 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))
606+ }
607+ else throw("Only the dApp can mint NFT's")
608+
609+
610+
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 != ""))
552619 then throw("Something went wrong!")
553620 else {
554- let bX = ar(ao)
555- let aq = bX._1
556- let at = bX._2
557- if (!(isDefined(aq)))
621+ let cr = az(aw)
622+ let ay = cr._1
623+ let aB = cr._2
624+ if (!(isDefined(ay)))
558625 then throw("Something went wrong")
559626 else {
560- let bY = q(Y(X, x))
561- if ((bY != ""))
627+ let cs = v(ag(af, F))
628+ if ((cs != ""))
562629 then throw("You already added it")
563630 else {
564- let bZ = q(W(X))
565- if ((bZ != ""))
566- then throw("Hash already registered")
567- else [StringEntry(W(X), x), StringEntry(Y(X, x), z), IntegerEntry(y(x, z), bj), StringEntry(A(x, z), aj), StringEntry(B(x, z), ak), StringEntry(C(x, z), ai), StringEntry(R(x, z), bT), StringEntry(Q(x, z), al), IntegerEntry(D(x, z), 0), IntegerEntry(L(x, z), 0), BooleanEntry(O(x, z), false), StringEntry(U(x, z), X), StringEntry(P(x, z), bU), ScriptTransfer(Address(fromBase58String(c)), aq, at)]
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)]
568635 }
569636 }
570637 }
572639
573640
574641
575-@Callable(ao)
576-func sellArtwork (z,aA,ca,at,cb,cc,bK) = {
577- let cd = aJ(ao)
578- let bp = cd._1
579- let x = cd._2
580- let aP = q(A(x, z))
581- if (!(containsElement([o, p], cb)))
582- then throw("We dont know this auction type")
583- else if ((aP == ""))
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 == ""))
584651 then throw("This art doesn't match your account")
585652 else {
586- let bB = t(("current_bidamount_" + z))
587- if (!(ay(at)))
653+ let bT = z(("current_bidamount_" + H))
654+ if (!(aK(aB)))
588655 then throw("Something went wrong!")
589- else if (!(az(at, aA)))
656+ else if (!(aL(aB, aM)))
590657 then throw("Something went wrong!")
591658 else {
592- let am = af(x)
593- if ((am != ""))
594- then throw(am)
659+ let au = an(F)
660+ if ((au != ""))
661+ then throw(au)
595662 else {
596- let aR = t(L(x, z))
597- let aS = t(D(x, z))
598- if ((ca > 10))
599- then throw("10 editions max per artwork")
600- else if (if ((aR != 0))
601- then (aR == aS)
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)
602669 else false)
603670 then throw("Max edition reached.")
604- else if (if ((aR > 0))
605- then (aS != ca)
671+ else if (if ((bf > 0))
672+ then (bg != cu)
606673 else false)
607674 then throw("Cannot change maximum issuable anymore")
608- else if (if ((bB > 0))
609- then (aS != ca)
675+ else if (if ((bT > 0))
676+ then (bg != cu)
610677 else false)
611678 then throw("Cannot change maximum issuable with active orders")
612679 else {
613- let bg = if (if ((aA > 0))
614- then (ca > 0)
680+ let br = if (if ((aM > 0))
681+ then (cu > 0)
615682 else false)
616683 then true
617684 else false
618- let bD = (bK + height)
619-[BooleanEntry(O(x, z), bg), IntegerEntry(S(x, z), aA), IntegerEntry(D(x, z), ca), IntegerEntry(E(x, z), cc), IntegerEntry(I(x, z), bK), IntegerEntry(J(x, z), bD), StringEntry(T(x, z), at), StringEntry(K(x, z), cb)]
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)]
620687 }
621688 }
622689 }
625692
626693
627694
628-@Callable(ao)
629-func buyArtwork (z,aL) = bn(ao, z, aL, "", "", false)
695+@Callable(aw)
696+func buyArtwork (H,aX) = bA(aw, H, aX, "", "", false)
630697
631698
632699
633-@Callable(ao)
634-func deleteEntry (ce) = {
635- let x = toString(addressFromPublicKey(ao.callerPublicKey))
636- if ((x == g))
637- then [DeleteEntry(ce)]
700+@Callable(aw)
701+func deleteEntry (cy) = {
702+ let F = toString(addressFromPublicKey(aw.callerPublicKey))
703+ if (containsElement(h, F))
704+ then [DeleteEntry(cy)]
638705 else throw("no")
639706 }
640707
641708
642709
643-@Callable(ao)
644-func setBid (z,aL) = {
645- let cb = q(K(aL, z))
646- if ((cb == o))
647- then by(ao, z, aL)
648- else if ((cb == p))
649- then bC(ao, z, aL)
650- else throw((("Unknown auction type :" + cb) + ", please contact the admins"))
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"))
651718 }
652719
653720
654721
655-@Callable(ao)
656-func acceptBid (z,aL,H,aU) = {
657- let cb = q(K(aL, z))
658- if ((cb == o))
659- then bH(ao, z, aL, H, aU)
660- else if ((cb == p))
661- then bL(ao, z, aL, H, aU)
662- else throw((("Unknown auction type :" + cb) + ", please contact the admins"))
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"))
663730 }
664731
665732
666733
667-@Callable(ao)
668-func cancelBid (z,aL,H) = {
669- let cb = q(K(aL, z))
670- if ((cb == o))
671- then bP(ao, z, aL, H)
672- else bS(ao, z, aL, H)
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)
673740 }
674741
675742
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
10-let d = value(addressFromString("3N9cQgZFPHHVu8wqsn2DkQFehg3h8CNiooA"))
10+let d = "3MxcXrNbMZKYaSrhcfeMm2hZnBeCu3yRWsw"
1111
12-let e = value(addressFromString("3N9xZYGpzMFDXvXuctmU6zV8qSzm2ZfF31f"))
12+let e = value(addressFromString("3N9cQgZFPHHVu8wqsn2DkQFehg3h8CNiooA"))
1313
14-let f = base58'DZ8ALmuLeSZ2ocsYLAcL9MiXBFDbMNQG9LtitREyU5ZC'
14+let f = value(addressFromString("3N9xZYGpzMFDXvXuctmU6zV8qSzm2ZfF31f"))
1515
16-let g = "3N1Dhq5ZZyoojQisuTLusYjnGisqrxDwGLy"
16+let g = base58'132maRL3uF35tc2bpRih9D6MYq5DR6H28zkop786dKyu'
1717
18-let h = 150
18+let h = [getString(b, "owner1"), getString(b, "owner2")]
1919
20-let i = valueOrElse(getBoolean(d, "conf_dapp_is_running"), true)
20+let i = 150
2121
22-let j = valueOrElse(getString(d, "conf_maintenance_msg"), "")
22+let j = 30
2323
24-let k = "SUSPENDED"
24+let k = 70
2525
26-let l = "REMOVED"
26+let l = valueOrElse(getBoolean(e, "conf_dapp_is_running"), true)
2727
28-let m = "UNREGISTERED"
28+let m = valueOrElse(getString(e, "conf_maintenance_msg"), "")
2929
30-let n = "ALLOWED"
30+let n = "SUSPENDED"
3131
32-let o = "BIDTYPE"
32+let o = "REMOVED"
3333
34-let p = "TRADITIONAL"
34+let p = "UNREGISTERED"
3535
36-func q (r) = valueOrElse(getString(this, r), "")
36+let q = "ALLOWED"
37+
38+let r = "BIDTYPE"
39+
40+let s = "TRADITIONAL"
41+
42+func t (u) = valueOrElse(getString(e, u), "")
3743
3844
39-func s (r) = valueOrErrorMessage(getInteger(b, r), "Integer undefine or 0 in oracle")
45+func v (u) = valueOrElse(getString(this, u), "")
4046
4147
42-func t (r) = valueOrElse(getInteger(this, r), 0)
48+func w (u,x) = valueOrErrorMessage(getString(this, u), x)
4349
4450
45-func u (r) = valueOrElse(getInteger(e, r), 0)
51+func y (u) = valueOrErrorMessage(getInteger(b, u), "Integer undefine or 0 in oracle")
4652
4753
48-func v (r) = valueOrElse(getBoolean(this, r), false)
54+func z (u) = valueOrElse(getInteger(this, u), 0)
4955
5056
51-func w (x) = ("user_status_" + x)
57+func A (u) = valueOrElse(getInteger(f, u), 0)
5258
5359
54-func y (x,z) = ((("art_date_" + z) + "_") + x)
60+func B (u) = valueOrElse(getBoolean(this, u), false)
5561
5662
57-func A (x,z) = ((("art_name_" + z) + "_") + x)
63+func C (D) = (size(D) == 64)
5864
5965
60-func B (x,z) = ((("art_desc_" + z) + "_") + x)
66+func E (F) = ("user_status_" + F)
6167
6268
63-func C (x,z) = ((("art_display_cid_" + z) + "_") + x)
69+func G (F,H) = ((("art_date_" + H) + "_") + F)
6470
6571
66-func D (x,z) = ((("art_maxmint_" + z) + "_") + x)
72+func I (F,H) = ((("art_name_" + H) + "_") + F)
6773
6874
69-func E (x,z) = ((("art_minprice_" + z) + "_") + x)
75+func J (F,H) = ((("art_desc_" + H) + "_") + F)
7076
7177
72-func F (z) = ("art_highestBidBidId_" + z)
78+func K (F,H) = ((("art_display_cid_" + H) + "_") + F)
7379
7480
75-func G (H) = ("bid_" + H)
81+func L (F,H) = ((("art_maxmint_" + H) + "_") + F)
7682
7783
78-func I (x,z) = ((("art_duration_" + z) + "_") + x)
84+func M (F,H) = ((("art_minprice_" + H) + "_") + F)
7985
8086
81-func J (x,z) = ((("art_endheight_" + z) + "_") + x)
87+func N (H) = ("art_highestBidBidId_" + H)
8288
8389
84-func K (x,z) = ((("art_auctiontype_" + z) + "_") + x)
90+func O (P) = ("bid_" + P)
8591
8692
87-func L (x,z) = ((("art_issued_" + z) + "_") + x)
93+func Q (F,H) = ((("art_duration_" + H) + "_") + F)
8894
8995
90-func M (N) = ("nft_issued_" + N)
96+func R (F,H) = ((("art_endheight_" + H) + "_") + F)
9197
9298
93-func O (x,z) = ((("art_onsale_" + z) + "_") + x)
99+func S (F,H) = ((("art_auctiontype_" + H) + "_") + F)
94100
95101
96-func P (x,z) = ((("art_entitlement_" + z) + "_") + x)
102+func T (F,H) = ((("art_issued_" + H) + "_") + F)
97103
98104
99-func Q (x,z) = ((("art_tags_" + z) + "_") + x)
105+func U (V) = ("nft_issued_" + V)
100106
101107
102-func R (x,z) = ((("art_type_" + z) + "_") + x)
108+func W (F,H) = ((("art_onsale_" + H) + "_") + F)
103109
104110
105-func S (x,z) = ((("art_price_" + z) + "_") + x)
111+func X (F,H) = ((("art_entitlement_" + H) + "_") + F)
106112
107113
108-func T (x,z) = ((("art_assetAccepted_" + z) + "_") + x)
114+func Y (F,H) = ((("art_tags_" + H) + "_") + F)
109115
110116
111-func U (x,V) = ((("get_hashbytxidaddr_" + V) + "_") + x)
117+func Z (F,H) = ((("art_type_" + H) + "_") + F)
112118
113119
114-func W (X) = ("get_owner_by_hash_" + X)
120+func aa (F,H) = ((("art_price_" + H) + "_") + F)
115121
116122
117-func Y (X,x) = ("get_txid_by_hash_owner_" + toBase58String(sha256_16Kb(toBytes((X + x)))))
123+func ab (F,H) = ((("art_assetAccepted_" + H) + "_") + F)
118124
119125
120-let Z = s(("certification_fee_" + toBase58String(f)))
121-
122-func aa (H) = valueOrElse(t(G(H)), 0)
126+func ac (F,ad) = ((("get_hashbytxidaddr_" + ad) + "_") + F)
123127
124128
125-func ab (z) = {
126- let H = valueOrElse(q(F(z)), "")
127- if ((H == ""))
129+func ae (af) = ("get_owner_by_hash_" + af)
130+
131+
132+func ag (af,F) = ("get_txid_by_hash_owner_" + toBase58String(sha256_16Kb(toBytes((af + F)))))
133+
134+
135+let ah = y(("certification_fee_" + toBase58String(g)))
136+
137+func ai (P) = valueOrElse(z(O(P)), 0)
138+
139+
140+func aj (H) = {
141+ let P = v(N(H))
142+ if ((P == ""))
128143 then 0
129- else aa(H)
144+ else ai(P)
130145 }
131146
132147
133-func ac (ad,ae) = if ((size(ad) == 0))
148+func ak (al,am) = if ((size(al) == 0))
134149 then throw("Field cannot be is empty")
135- else if ((size(ad) > ae))
136- then throw((ad + " is too long"))
150+ else if ((size(al) > am))
151+ then throw((al + " is too long"))
137152 else true
138153
139154
140-func af (x) = {
141- let ag = valueOrElse(getString(d, w(x)), m)
142- if (if ((ag == m))
155+func an (F) = {
156+ let ao = valueOrElse(getString(e, E(F)), p)
157+ if (if ((ao == p))
143158 then true
144- else (ag == n))
159+ else (ao == q))
145160 then "Register this account first with 'Account' tab"
146- else if ((ag == k))
161+ else if ((ao == n))
147162 then "Account suspended"
148- else if ((ag == l))
163+ else if ((ao == o))
149164 then "Account removed"
150165 else ""
151166 }
152167
153168
154-func ah (x,ai,aj,ak,al) = {
155- let am = af(x)
156- if ((am != ""))
157- then throw(am)
158- else if ((size(ai) == 0))
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))
159174 then throw("Display CID cannot be empty")
160- else if (!(ac(aj, 100)))
161- then throw("100 Char. max name")
162- else if (!(ac(ak, 1000)))
163- then throw("1000 Char. max description")
164- else if ((size(split(al, ",")) > 5))
165- then throw("5 tags max.")
166- else ""
175+ else if ((size(aq) != 46))
176+ then throw("This doesn't seem a valid CID!")
177+ else if (!(ak(ar, 100)))
178+ then throw("100 Char. max name")
179+ else if (!(ak(as, 1000)))
180+ then throw("1000 Char. max description")
181+ else if ((size(split(at, ",")) > 5))
182+ then throw("5 tags max.")
183+ else ""
167184 }
168185
169186
170-func an (ao) = if ((size(ao.payments) == 0))
187+func av (aw) = if ((size(aw.payments) == 0))
171188 then throw("No payment attached")
172189 else {
173- let ap = value(ao.payments[0])
174- let aq = value(ap.amount)
175- $Tuple2(ap, aq)
190+ let ax = value(aw.payments[0])
191+ let ay = value(ax.amount)
192+ $Tuple2(ax, ay)
176193 }
177194
178195
179-func ar (ao) = {
180- let as = an(ao)
181- let ap = as._1
182- let aq = as._2
183- let at = if (if (isDefined(ap.assetId))
184- then (ap.assetId == f)
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)
185202 else false)
186- then ap.assetId
187- else throw("Only Sconex token accepted as transaction fee")
188- if ((aq != Z))
189- then throw(("Payment amount should be " + toString(Z)))
190- else $Tuple2(aq, at)
203+ then ax.assetId
204+ 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)
191208 }
192209
193210
194-func au (ao,av,aw) = {
195- let ax = an(ao)
196- let ap = ax._1
197- let aq = ax._2
198- let at = if (!(isDefined(ap.assetId)))
199- then throw("Wrong asset id")
200- else if (if ((size(av) > 0))
201- then (toBase58String(value(ap.assetId)) == av)
202- else false)
203- then ap.assetId
204- else throw("Wrong asset id")
205- if (if ((at == unit))
206- then (av != "")
207- else false)
208- then throw("Wrong asset id")
209- else if ((aw != aq))
210- then throw(((("Payment don't match " + toString(aw)) + " ") + toString(aq)))
211- else $Tuple2(aq, at)
211+func aC (aD,H) = {
212+ let aE = getInteger(this, T(aD, H))
213+ if ($isInstanceOf(aE, "Int"))
214+ then {
215+ let aF = aE
216+ if ((aF != 0))
217+ then true
218+ else false
219+ }
220+ else false
212221 }
213222
214223
215-func ay (at) = if ((at != toBase58String(f)))
216- then throw("Only Sconex accepted")
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)))
229+ then throw("Wrong asset id")
230+ else if (if ((size(aH) > 0))
231+ then (toBase58String(value(ax.assetId)) == aH)
232+ else false)
233+ then ax.assetId
234+ else throw("Wrong asset id")
235+ if (if ((aB == unit))
236+ then (aH != "")
237+ else false)
238+ 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)
242+ }
243+
244+
245+func aK (aB) = if ((aB != toBase58String(g)))
246+ then throw("Only USDN accepted")
217247 else true
218248
219249
220-func az (at,aA) = {
221- let aB = if (a)
250+func aL (aB,aM) = {
251+ let aN = if (a)
222252 then 1
223- else (Z * 2)
224- if (if (if ((at == toBase58String(f)))
225- then (aB > aA)
253+ else (ah * 2)
254+ if (if (if ((aB == toBase58String(g)))
255+ then (aN > aM)
226256 else false)
227- then (aA != 0)
257+ then (aM != 0)
228258 else false)
229- then throw(("Wrong minimum sell price " + toString(aB)))
259+ then throw(("Wrong minimum sell price " + toString(aN)))
230260 else true
231261 }
232262
233263
234-func aC (at) = if ((at == "WAVES"))
235- then throw("Only sconex is accepted!")
236- else fromBase58String(at)
264+func aO (aB) = if ((aB == "WAVES"))
265+ then throw("Only USDN is accepted!")
266+ else fromBase58String(aB)
237267
238268
239-func aD (aE) = {
240- let aF = q((aE + "_OPEN"))
241- if ((aF == ""))
269+func aP (aQ) = {
270+ let aR = v((aQ + "_OPEN"))
271+ if ((aR == ""))
242272 then throw("Bid not found")
243273 else {
244- let aG = split(aF, "_")
245- let aH = parseIntValue(aG[1])
246- let aI = aC(aG[0])
247- if ((0 >= aH))
274+ let aS = split(aR, "_")
275+ let aT = parseIntValue(aS[1])
276+ let aU = aO(aS[0])
277+ if ((0 >= aT))
248278 then throw("Wrong amount")
249- else $Tuple2(aH, aI)
279+ else $Tuple2(aT, aU)
250280 }
251281 }
252282
253283
254-func aJ (ao) = if (!(i))
255- then throw(j)
256- else $Tuple3(toBase58String(ao.transactionId), toBase58String(ao.caller.bytes), lastBlock.timestamp)
284+func aV (aw) = if (!(l))
285+ then throw(m)
286+ else $Tuple3(toBase58String(aw.transactionId), toBase58String(aw.caller.bytes), lastBlock.timestamp)
257287
258288
259-func aK (ao,aL,z,aM) = {
260- let aN = (toBase58String(ao.caller.bytes) == aL)
261- let aO = t("total_nft_issued")
262- let aP = q(A(aL, z))
263- if ((aP == ""))
289+func aW (aw,aX,aY,P) = if (if (if ((toBase58String(aw.caller.bytes) == aX))
290+ then (aY != "")
291+ else false)
292+ then (P != "")
293+ else false)
294+ then true
295+ else false
296+
297+
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 == ""))
264303 then throw("Art doesn't exist")
265304 else {
266- let aQ = v(O(aL, z))
267- let aR = t(L(aL, z))
268- let aw = valueOrElse(t(S(aL, z)), (Z * 2))
269- let av = if (aN)
270- then toBase58String(f)
271- else q(T(aL, z))
272- let aS = t(D(aL, z))
273- if (if (if (!(aM))
274- then !(aN)
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)
309+ then toBase58String(g)
310+ else v(ab(aX, H))
311+ let bg = z(L(aX, H))
312+ if (if (if (!(ba))
313+ then !(bb)
275314 else false)
276- then if (if ((0 >= aw))
315+ then if (if ((0 >= aI))
277316 then true
278- else !(aQ))
317+ else !(be))
279318 then true
280- else (0 >= aS)
319+ else (0 >= bg)
281320 else false)
282321 then throw("Art not for sale")
283- else if (if (if (!(aM))
284- then aN
322+ else if (if (if (!(ba))
323+ then bb
285324 else false)
286- then (0 >= aS)
325+ then (0 >= bg)
287326 else false)
288327 then throw("Max issuable not set")
289- else $Tuple7(aO, aP, aR, aw, av, aS, aQ)
328+ else $Tuple7(bc, bd, bf, aI, aH, bg, be)
290329 }
291330 }
292331
293332
294-func aT (ao,x,aL,z,aU,H,av,aw,aM) = {
295- let am = af(aL)
296- if (if (aM)
297- then (am != "")
333+func bh (aw,F,aX,H,aY,P,aH,aI,ba) = {
334+ let au = an(aX)
335+ if (if (ba)
336+ then (au != "")
298337 else false)
299- then throw(am)
338+ then throw(au)
300339 else {
301- let aE = ((((((("bid_" + z) + "_") + aL) + "_") + aU) + "_") + H)
302- let aV = if (aM)
303- then aD(aE)
304- else au(ao, av, aw)
305- let aq = aV._1
306- let at = aV._2
307- $Tuple3(aE, aq, at)
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)
308347 }
309348 }
310349
311350
312-func aW (aL,at,aq,aR,aS) = {
313- let aX = u(aL)
314- let aY = if ((aX > height))
351+func bj (aX,aB,ay,bf,bg) = {
352+ let bk = A(aX)
353+ let bl = if ((bk > height))
315354 then 0
316- else if ((at == f))
317- then h
318- else throw("Only Sconex is accepted!")
319- let aZ = fraction(aq, aY, 1000)
320- let ba = (aq - aZ)
321- if ((aR == aS))
355+ else if ((aB == g))
356+ then i
357+ else throw("Only USDN is accepted!")
358+ let bm = fraction(ay, bl, 1000)
359+ let bn = (ay - bm)
360+ if ((bf == bg))
322361 then throw("Art sold out")
323362 else {
324- let bb = (aR + 1)
325- $Tuple3(aZ, ba, bb)
363+ let bo = (bf + 1)
364+ $Tuple3(bm, bn, bo)
326365 }
327366 }
328367
329368
330-func bc (aL,z,aP,bb,aS,aO,x,aU,H,ao,aQ) = {
331- let bd = ((((((((("Creator: " + aL) + ",ArtID: ") + z) + ",Artwork name: ") + aP) + ",Issue: ") + toString(bb)) + "/") + toString(aS))
332- let be = Issue(("SCONEX_" + toString((aO + 1))), bd, 1, 0, false)
333- let bf = calculateAssetId(be)
334- let bg = if (if ((bb == aS))
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))
335372 then true
336- else !(aQ))
373+ else !(be))
337374 then false
338375 else true
339- let bh = if ((aU != ""))
340- then addressFromStringValue(aU)
341- else ao.caller
342- $Tuple4(be, bf, bg, bh)
376+ let bs = if ((aY != ""))
377+ then addressFromStringValue(aY)
378+ else aw.caller
379+ $Tuple3(br, bs, bq)
343380 }
344381
345382
346-func bi (at,aE,bj) = {
347- let bk = if (!(isDefined(at)))
348- then throw("Only sconex is accepted")
349- else toBase58String(value(at))
350- let aF = q((aE + "_OPEN"))
351- let bl = DeleteEntry((aE + "_OPEN"))
352- let bm = StringEntry((aE + "_CLOSED"), ((aF + "_") + toString(bj)))
353- $Tuple3(bk, bl, bm)
383+func bt (bu) = if ((4 > bu))
384+ then "SSR"
385+ else if ((11 > bu))
386+ then "SR"
387+ else if ((101 > bu))
388+ then "R"
389+ else "N"
390+
391+
392+func bv (aB,aQ,bw) = {
393+ let bx = if (!(isDefined(aB)))
394+ 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)
354400 }
355401
356402
357-func bn (ao,z,aL,H,aU,aM) = {
358- let bo = aJ(ao)
359- let bp = bo._1
360- let x = bo._2
361- let bj = bo._3
362- let bq = aK(ao, aL, z, aM)
363- let aO = bq._1
364- let aP = bq._2
365- let aR = bq._3
366- let aw = bq._4
367- let av = bq._5
368- let aS = bq._6
369- let aQ = bq._7
370- let aF = aT(ao, x, aL, z, aU, H, av, aw, aM)
371- let aE = aF._1
372- let aq = aF._2
373- let at = aF._3
374- let br = aW(aL, value(at), aq, aR, aS)
375- let aZ = br._1
376- let ba = br._2
377- let bb = br._3
378- let bs = bc(aL, z, aP, bb, aS, aO, x, aU, H, ao, aQ)
379- let be = bs._1
380- let bf = bs._2
381- let bg = bs._3
382- let bh = bs._4
383- let bt = bi(at, aE, bj)
384- let bk = bt._1
385- let bl = bt._2
386- let bm = bt._3
387- let bu = ((((((("art_sold_" + toString(bb)) + "_of_") + toString(aS)) + "_") + z) + "_") + aL)
388- let bv = if (!(aM))
389- then ((((((((((x + "_") + toString(bj)) + "_") + bp) + "_") + toString(aw)) + "_") + av) + "_") + toBase58String(bf))
390- else ((((((((((toString(bh) + "_") + toString(bj)) + "_") + bp) + "_") + toString(aq)) + "_") + bk) + "_") + toBase58String(bf))
391- let bw = StringEntry(bu, bv)
392- let bx = [IntegerEntry(L(aL, z), bb), StringEntry(("nft_" + toBase58String(bf)), bu), IntegerEntry("total_nft_issued", (aO + 1)), BooleanEntry(O(aL, z), bg), be, ScriptTransfer(Address(fromBase58String(aL)), ba, at), ScriptTransfer(Address(fromBase58String(c)), aZ, at), ScriptTransfer(bh, 1, bf), StringEntry(M(toBase58String(bf)), aL)]
393- if (aM)
394- then (((bx :+ bw) :+ bm) :+ bl)
395- else bw :: bx
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))
430+ then {
431+ let bH = {
432+ let aE = bG
433+ if ($isInstanceOf(aE, "String"))
434+ then {
435+ let bI = aE
436+ bI
437+ }
438+ else throw("Incorrect invoke result")
439+ }
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
456+ else throw("Strict value is not equal to itself.")
457+ }
458+ else throw("Strict value is not equal to itself.")
396459 }
397460
398461
399-func by (ao,z,aL) = {
400- let bz = aJ(ao)
401- let bp = bz._1
402- let x = bz._2
403- let bj = bz._3
404- let bA = an(ao)
405- let ap = bA._1
406- let aq = bA._2
407- let at = if (!(isDefined(ap.assetId)))
408- then throw("Only sconex is accepted!")
409- else toBase58String(value(ap.assetId))
410- let bB = t(("current_bidamount_" + z))
411- if (!(ay(at)))
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)))
471+ then throw("Only USDN is accepted!")
472+ else toBase58String(value(ax.assetId))
473+ let bT = z(("current_bidamount_" + H))
474+ if (!(aK(aB)))
412475 then throw("asset not accepted")
413- else if (!(az(at, aq)))
476+ else if (!(aL(aB, ay)))
414477 then throw("Wrong min sell")
415478 else {
416- let aR = t(L(aL, z))
417- let aS = t(D(aL, z))
418- if ((0 >= aS))
479+ let bf = z(T(aX, H))
480+ let bg = z(L(aX, H))
481+ if ((0 >= bg))
419482 then throw("No max edition set for this artwork")
420- else if ((aR >= aS))
483+ else if ((bf >= bg))
421484 then throw("Sold out, you cannot bid")
422- else [StringEntry((((((((("bid_" + z) + "_") + aL) + "_") + x) + "_") + bp) + "_OPEN"), ((((at + "_") + toString(aq)) + "_") + toString(bj))), IntegerEntry(("current_bidamount_" + z), (bB + 1))]
485+ else [StringEntry((((((((("bid_" + H) + "_") + aX) + "_") + F) + "_") + bC) + "_OPEN"), ((((aB + "_") + toString(ay)) + "_") + toString(bw))), IntegerEntry(("current_bidamount_" + H), (bT + 1))]
423486 }
424487 }
425488
426489
427-func bC (ao,z,aL) = {
428- let bD = t(J(aL, z))
429- let bE = ab(z)
430- if ((height > bD))
490+func bU (aw,H,aX) = {
491+ let bV = z(R(aX, H))
492+ let bW = aj(H)
493+ if ((height > bV))
431494 then throw("This auction is finished already!")
432495 else {
433- let bF = aJ(ao)
434- let bp = bF._1
435- let x = bF._2
436- let bj = bF._3
437- let bG = an(ao)
438- let ap = bG._1
439- let aq = bG._2
440- if ((bE >= aq))
441- then throw(("Please place a bid higher then: " + toString(bE)))
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)))
442505 else {
443- let at = if (!(isDefined(ap.assetId)))
444- then throw("Only sconex is accepted!")
445- else toBase58String(value(ap.assetId))
446- let bB = t(("current_bidamount_" + z))
447- if (!(ay(at)))
506+ let aB = if (!(isDefined(ax.assetId)))
507+ then throw("Only USDN is accepted!")
508+ else toBase58String(value(ax.assetId))
509+ let bT = z(("current_bidamount_" + H))
510+ if (!(aK(aB)))
448511 then throw("asset not accepted")
449- else if (!(az(at, aq)))
512+ else if (!(aL(aB, ay)))
450513 then throw("Wrong min sell")
451514 else {
452- let aR = t(L(aL, z))
453- let aS = t(D(aL, z))
454- if ((0 >= aS))
515+ let bf = z(T(aX, H))
516+ let bg = z(L(aX, H))
517+ if ((0 >= bg))
455518 then throw("No max edition set for this artwork")
456- else if ((aR >= aS))
519+ else if ((bf >= bg))
457520 then throw("Sold out, you cannot bid")
458- else [StringEntry((((((((("bid_" + z) + "_") + aL) + "_") + x) + "_") + bp) + "_OPEN"), ((((at + "_") + toString(aq)) + "_") + toString(bj))), IntegerEntry(("current_bidamount_" + z), (bB + 1)), StringEntry(F(z), toBase58String(ao.transactionId)), IntegerEntry(G(toBase58String(ao.transactionId)), aq)]
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)]
459522 }
460523 }
461524 }
462525 }
463526
464527
465-func bH (ao,z,aL,H,aU) = {
466- let x = toBase58String(ao.caller.bytes)
467- if ((x != aL))
528+func bZ (aw,H,aX,P,aY) = {
529+ let F = toBase58String(aw.caller.bytes)
530+ if ((F != aX))
468531 then throw("You cannot do this action")
469- else bn(ao, z, aL, H, aU, true)
532+ else bA(aw, H, aX, P, aY, true)
470533 }
471534
472535
473-func bI (z,aL) = {
474- let aR = t(L(aL, z))
475- let aS = t(D(aL, z))
476- let bJ = t(J(aL, z))
477- let bK = t(I(aL, z))
478- let bD = (bK + height)
479- if ((height > bJ))
480- then if ((aR == aS))
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))
481544 then throw("Can't restart auction, max amount sold")
482- else [IntegerEntry(J(aL, z), bD), DeleteEntry(F(z))]
545+ else [IntegerEntry(R(aX, H), bV), DeleteEntry(N(H))]
483546 else throw("Previous auction isn't completed yet")
484547 }
485548
486549
487-func bL (ao,z,aL,H,aU) = {
488- let bD = t(J(aL, z))
489- let bM = q(F(z))
490- if ((height > bD))
491- then if ((H == bM))
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))
492555 then {
493- let bN = bn(ao, z, aL, H, aU, true)
494- let bO = bI(z, aL)
495- (bO ++ bN)
556+ let cf = bA(aw, H, aX, P, aY, true)
557+ let cg = ca(H, aX)
558+ (cg ++ cf)
496559 }
497560 else throw("This is not the winning bid!")
498561 else throw("This auction is not yet finished!")
499562 }
500563
501564
502-func bP (ao,z,aL,H) = {
503- let bQ = aJ(ao)
504- let bp = bQ._1
505- let x = bQ._2
506- let bj = bQ._3
507- let bB = t(("current_bidamount_" + z))
508- let aE = ((((((("bid_" + z) + "_") + aL) + "_") + x) + "_") + H)
509- let aF = q((aE + "_OPEN"))
510- if ((aF == ""))
511- then throw("Bid not found")
512- else {
513- let aG = split(aF, "_")
514- let at = aC(aG[0])
515- let bR = "CANCELED"
516-[DeleteEntry((aE + "_OPEN")), StringEntry(((aE + "_") + bR), ((aF + "_") + toString(bj))), IntegerEntry(("current_bidamount_" + z), (bB - 1)), ScriptTransfer(Address(fromBase58String(x)), parseIntValue(aG[1]), at)]
517- }
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)]
518577 }
519578
520579
521-func bS (ao,z,aL,H) = {
522- let bQ = aJ(ao)
523- let bp = bQ._1
524- let x = bQ._2
525- let bj = bQ._3
526- let bB = t(("current_bidamount_" + z))
527- let aE = ((((((("bid_" + z) + "_") + aL) + "_") + x) + "_") + H)
528- let aF = q((aE + "_OPEN"))
529- if ((aF == ""))
530- then throw("Bid not found")
531- else {
532- let aG = split(aF, "_")
533- let at = aC(aG[0])
534- let bR = "CANCELED"
535- let aH = parseIntValue(aG[1])
536- let bM = q(F(z))
537- if ((H == bM))
538- then throw("You can't cancel the highest bid!")
539- else [DeleteEntry((aE + "_OPEN")), StringEntry(((aE + "_") + bR), ((aF + "_") + toString(bj))), IntegerEntry(("current_bidamount_" + z), (bB - 1)), ScriptTransfer(Address(fromBase58String(x)), aH, at)]
540- }
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))
594+ 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)]
541596 }
542597
543598
544-@Callable(ao)
545-func addArtwork (X,aj,ak,al,bT,ai,bU) = {
546- let bV = aJ(ao)
547- let z = bV._1
548- let x = bV._2
549- let bj = bV._3
550- let bW = ah(x, ai, aj, ak, al)
551- if ((bW != ""))
599+@Callable(aw)
600+func mintNft (bc,bq,bs) = if ((aw.caller == this))
601+ 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))
606+ }
607+ else throw("Only the dApp can mint NFT's")
608+
609+
610+
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 != ""))
552619 then throw("Something went wrong!")
553620 else {
554- let bX = ar(ao)
555- let aq = bX._1
556- let at = bX._2
557- if (!(isDefined(aq)))
621+ let cr = az(aw)
622+ let ay = cr._1
623+ let aB = cr._2
624+ if (!(isDefined(ay)))
558625 then throw("Something went wrong")
559626 else {
560- let bY = q(Y(X, x))
561- if ((bY != ""))
627+ let cs = v(ag(af, F))
628+ if ((cs != ""))
562629 then throw("You already added it")
563630 else {
564- let bZ = q(W(X))
565- if ((bZ != ""))
566- then throw("Hash already registered")
567- else [StringEntry(W(X), x), StringEntry(Y(X, x), z), IntegerEntry(y(x, z), bj), StringEntry(A(x, z), aj), StringEntry(B(x, z), ak), StringEntry(C(x, z), ai), StringEntry(R(x, z), bT), StringEntry(Q(x, z), al), IntegerEntry(D(x, z), 0), IntegerEntry(L(x, z), 0), BooleanEntry(O(x, z), false), StringEntry(U(x, z), X), StringEntry(P(x, z), bU), ScriptTransfer(Address(fromBase58String(c)), aq, at)]
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)]
568635 }
569636 }
570637 }
571638 }
572639
573640
574641
575-@Callable(ao)
576-func sellArtwork (z,aA,ca,at,cb,cc,bK) = {
577- let cd = aJ(ao)
578- let bp = cd._1
579- let x = cd._2
580- let aP = q(A(x, z))
581- if (!(containsElement([o, p], cb)))
582- then throw("We dont know this auction type")
583- else if ((aP == ""))
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 == ""))
584651 then throw("This art doesn't match your account")
585652 else {
586- let bB = t(("current_bidamount_" + z))
587- if (!(ay(at)))
653+ let bT = z(("current_bidamount_" + H))
654+ if (!(aK(aB)))
588655 then throw("Something went wrong!")
589- else if (!(az(at, aA)))
656+ else if (!(aL(aB, aM)))
590657 then throw("Something went wrong!")
591658 else {
592- let am = af(x)
593- if ((am != ""))
594- then throw(am)
659+ let au = an(F)
660+ if ((au != ""))
661+ then throw(au)
595662 else {
596- let aR = t(L(x, z))
597- let aS = t(D(x, z))
598- if ((ca > 10))
599- then throw("10 editions max per artwork")
600- else if (if ((aR != 0))
601- then (aR == aS)
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)
602669 else false)
603670 then throw("Max edition reached.")
604- else if (if ((aR > 0))
605- then (aS != ca)
671+ else if (if ((bf > 0))
672+ then (bg != cu)
606673 else false)
607674 then throw("Cannot change maximum issuable anymore")
608- else if (if ((bB > 0))
609- then (aS != ca)
675+ else if (if ((bT > 0))
676+ then (bg != cu)
610677 else false)
611678 then throw("Cannot change maximum issuable with active orders")
612679 else {
613- let bg = if (if ((aA > 0))
614- then (ca > 0)
680+ let br = if (if ((aM > 0))
681+ then (cu > 0)
615682 else false)
616683 then true
617684 else false
618- let bD = (bK + height)
619-[BooleanEntry(O(x, z), bg), IntegerEntry(S(x, z), aA), IntegerEntry(D(x, z), ca), IntegerEntry(E(x, z), cc), IntegerEntry(I(x, z), bK), IntegerEntry(J(x, z), bD), StringEntry(T(x, z), at), StringEntry(K(x, z), cb)]
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)]
620687 }
621688 }
622689 }
623690 }
624691 }
625692
626693
627694
628-@Callable(ao)
629-func buyArtwork (z,aL) = bn(ao, z, aL, "", "", false)
695+@Callable(aw)
696+func buyArtwork (H,aX) = bA(aw, H, aX, "", "", false)
630697
631698
632699
633-@Callable(ao)
634-func deleteEntry (ce) = {
635- let x = toString(addressFromPublicKey(ao.callerPublicKey))
636- if ((x == g))
637- then [DeleteEntry(ce)]
700+@Callable(aw)
701+func deleteEntry (cy) = {
702+ let F = toString(addressFromPublicKey(aw.callerPublicKey))
703+ if (containsElement(h, F))
704+ then [DeleteEntry(cy)]
638705 else throw("no")
639706 }
640707
641708
642709
643-@Callable(ao)
644-func setBid (z,aL) = {
645- let cb = q(K(aL, z))
646- if ((cb == o))
647- then by(ao, z, aL)
648- else if ((cb == p))
649- then bC(ao, z, aL)
650- else throw((("Unknown auction type :" + cb) + ", please contact the admins"))
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"))
651718 }
652719
653720
654721
655-@Callable(ao)
656-func acceptBid (z,aL,H,aU) = {
657- let cb = q(K(aL, z))
658- if ((cb == o))
659- then bH(ao, z, aL, H, aU)
660- else if ((cb == p))
661- then bL(ao, z, aL, H, aU)
662- else throw((("Unknown auction type :" + cb) + ", please contact the admins"))
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"))
663730 }
664731
665732
666733
667-@Callable(ao)
668-func cancelBid (z,aL,H) = {
669- let cb = q(K(aL, z))
670- if ((cb == o))
671- then bP(ao, z, aL, H)
672- else bS(ao, z, aL, H)
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)
673740 }
674741
675742

github/deemru/w8io/026f985 
218.28 ms