tx · G14Dqty4MgAMRGpjKv9y3s6CLnftYMCgQfVfzDAqtwK5

3NBB3iv7YDRsD8ZM2Pw2V5eTcsfqh3j2mvF:  -0.01400000 Waves

2019.08.06 15:07 [619033] smart account 3NBB3iv7YDRsD8ZM2Pw2V5eTcsfqh3j2mvF > SELF 0.00000000 Waves

{ "type": 13, "id": "G14Dqty4MgAMRGpjKv9y3s6CLnftYMCgQfVfzDAqtwK5", "fee": 1400000, "feeAssetId": null, "timestamp": 1565093178390, "version": 1, "sender": "3NBB3iv7YDRsD8ZM2Pw2V5eTcsfqh3j2mvF", "senderPublicKey": "9i5FpMUFCwhogG5euZDBZKV6NehQN4xX83qvNr8NWipE", "proofs": [ "3hoi6xT9CxG9AgX9ppjwyJxJdKkGhNnK5o3Ehoq4Dg2sXFzDCyFbQ1HgqMPWaoXzZ1FHpyQunnYx5TT4EmecvuAN" ], "script": "base64:AAIDAAAAAAAAAAAAAABYAAAAAAROT05FAgAAAARub25lAQAAAA5nZXROdW1iZXJCeUtleQAAAAEAAAADa2V5BAAAAANudW0EAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAFAAAAA251bQEAAAALZ2V0U3RyQnlLZXkAAAABAAAAA2tleQQAAAADc3RyBAAAAAckbWF0Y2gwCQAEHQAAAAIFAAAABHRoaXMFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhBQAAAAROT05FBQAAAANzdHIBAAAAEmdldEtleVdoaXRlbGlzdFJlZgAAAAEAAAAHYWNjb3VudAkAASwAAAACAgAAAAd3bF9yZWZfBQAAAAdhY2NvdW50AQAAABVnZXRLZXlXaGl0ZWxpc3RTdGF0dXMAAAABAAAAB2FjY291bnQJAAEsAAAAAgIAAAAHd2xfc3RzXwUAAAAHYWNjb3VudAEAAAANZ2V0S2V5QmFsYW5jZQAAAAEAAAAHYWNjb3VudAkAASwAAAACAgAAAAhiYWxhbmNlXwUAAAAHYWNjb3VudAEAAAASZ2V0S2V5V2hpdGVsaXN0QmlvAAAAAQAAAAdhY2NvdW50CQABLAAAAAICAAAAB3dsX2Jpb18FAAAAB2FjY291bnQBAAAAFGdldEtleVdoaXRlbGlzdEJsb2NrAAAAAQAAAAdhY2NvdW50CQABLAAAAAICAAAAB3dsX2Jsa18FAAAAB2FjY291bnQBAAAAEGdldEtleUl0ZW1BdXRob3IAAAABAAAABGl0ZW0JAAEsAAAAAgIAAAAHYXV0aG9yXwUAAAAEaXRlbQEAAAAPZ2V0S2V5SXRlbUJsb2NrAAAAAQAAAARpdGVtCQABLAAAAAICAAAABmJsb2NrXwUAAAAEaXRlbQEAAAAaZ2V0S2V5SXRlbVZvdGluZ0V4cGlyYXRpb24AAAABAAAABGl0ZW0JAAEsAAAAAgIAAAARZXhwaXJhdGlvbl9ibG9ja18FAAAABGl0ZW0BAAAADmdldEtleUl0ZW1CYW5rAAAAAQAAAARpdGVtCQABLAAAAAICAAAABWJhbmtfBQAAAARpdGVtAQAAABBnZXRLZXlJdGVtU3RhdHVzAAAAAQAAAARpdGVtCQABLAAAAAICAAAAB3N0YXR1c18FAAAABGl0ZW0BAAAADmdldEtleUl0ZW1EYXRhAAAAAQAAAARpdGVtCQABLAAAAAICAAAACWRhdGFqc29uXwUAAAAEaXRlbQEAAAARZ2V0S2V5Q29udGVzdERhdGEAAAABAAAABGl0ZW0JAAEsAAAAAgIAAAARY29udGVzdF9kYXRhanNvbl8FAAAABGl0ZW0BAAAAGWdldEtleUl0ZW1Dcm93ZEV4cGlyYXRpb24AAAABAAAABGl0ZW0JAAEsAAAAAgIAAAAPZXhwaXJhdGlvbl9vbmVfBQAAAARpdGVtAQAAABlnZXRLZXlJdGVtV2hhbGVFeHBpcmF0aW9uAAAAAQAAAARpdGVtCQABLAAAAAICAAAAD2V4cGlyYXRpb25fdHdvXwUAAAAEaXRlbQEAAAASZ2V0S2V5SXRlbU5Db21taXRzAAAAAQAAAARpdGVtCQABLAAAAAICAAAACW5jb21taXRzXwUAAAAEaXRlbQEAAAATZ2V0S2V5SXRlbUFjY0NvbW1pdAAAAAIAAAAEaXRlbQAAAAdhY2NvdW50CQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAdjb21taXRfBQAAAARpdGVtAgAAAAFfBQAAAAdhY2NvdW50AQAAABNnZXRLZXlJdGVtQWNjUmV2ZWFsAAAAAgAAAARpdGVtAAAAB2FjY291bnQJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAB3JldmVhbF8FAAAABGl0ZW0CAAAAAV8FAAAAB2FjY291bnQBAAAAEmdldEtleUl0ZW1Wb3Rlc1llcwAAAAEAAAAEaXRlbQkAASwAAAACAgAAAAhjbnRfeWVzXwUAAAAEaXRlbQEAAAARZ2V0S2V5SXRlbVZvdGVzTm8AAAABAAAABGl0ZW0JAAEsAAAAAgIAAAAHY250X25vXwUAAAAEaXRlbQEAAAASZ2V0S2V5SXRlbUFjY0ZpbmFsAAAAAgAAAARpdGVtAAAAB2FjY291bnQJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAABmZpbmFsXwUAAAAEaXRlbQIAAAABXwUAAAAHYWNjb3VudAEAAAAWZ2V0S2V5SXRlbUZ1bmRQb3NpdGl2ZQAAAAEAAAAEaXRlbQkAASwAAAACAgAAAA5wb3NpdGl2ZV9mdW5kXwUAAAAEaXRlbQEAAAAWZ2V0S2V5SXRlbUZ1bmROZWdhdGl2ZQAAAAEAAAAEaXRlbQkAASwAAAACAgAAAA5uZWdhdGl2ZV9mdW5kXwUAAAAEaXRlbQEAAAAZZ2V0S2V5SXRlbUFjY0Z1bmRQb3NpdGl2ZQAAAAIAAAAEaXRlbQAAAAdhY2NvdW50CQABLAAAAAIJAAEsAAAAAgkBAAAAFmdldEtleUl0ZW1GdW5kUG9zaXRpdmUAAAABBQAAAARpdGVtAgAAAAFfBQAAAAdhY2NvdW50AQAAABlnZXRLZXlJdGVtQWNjRnVuZE5lZ2F0aXZlAAAAAgAAAARpdGVtAAAAB2FjY291bnQJAAEsAAAAAgkAASwAAAACCQEAAAAWZ2V0S2V5SXRlbUZ1bmROZWdhdGl2ZQAAAAEFAAAABGl0ZW0CAAAAAV8FAAAAB2FjY291bnQBAAAAF2dldEtleUl0ZW1BY2NSZXZpZXdzQ250AAAAAgAAAARpdGVtAAAAB2FjY291bnQJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAADHJldmlld3NfY250XwUAAAAEaXRlbQIAAAABXwUAAAAHYWNjb3VudAEAAAATZ2V0S2V5SXRlbUFjY1JldmlldwAAAAIAAAAEaXRlbQAAAAdhY2NvdW50CQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAdyZXZpZXdfBQAAAARpdGVtAgAAAAFfBQAAAAdhY2NvdW50AQAAABdnZXRLZXlJdGVtQWNjUmV2aWV3VGV4dAAAAAMAAAAEaXRlbQAAAAdhY2NvdW50AAAAA2NudAkAASwAAAACCQABLAAAAAIJAQAAABNnZXRLZXlJdGVtQWNjUmV2aWV3AAAAAgUAAAAEaXRlbQUAAAAHYWNjb3VudAIAAAAJX3RleHRfaWQ6BQAAAANjbnQBAAAAF2dldEtleUl0ZW1BY2NSZXZpZXdNb2RlAAAAAwAAAARpdGVtAAAAB2FjY291bnQAAAADY250CQABLAAAAAIJAAEsAAAAAgkBAAAAE2dldEtleUl0ZW1BY2NSZXZpZXcAAAACBQAAAARpdGVtBQAAAAdhY2NvdW50AgAAAAlfbW9kZV9pZDoFAAAAA2NudAEAAAAXZ2V0S2V5SXRlbUFjY1Jldmlld1RpZXIAAAADAAAABGl0ZW0AAAAHYWNjb3VudAAAAANjbnQJAAEsAAAAAgkAASwAAAACCQEAAAATZ2V0S2V5SXRlbUFjY1JldmlldwAAAAIFAAAABGl0ZW0FAAAAB2FjY291bnQCAAAACV90aWVyX2lkOgUAAAADY250AQAAABtnZXRLZXlJdGVtQWNjVm90ZVJldmlld1RleHQAAAACAAAABGl0ZW0AAAAHYWNjb3VudAkAASwAAAACCQEAAAATZ2V0S2V5SXRlbUFjY1JldmlldwAAAAIFAAAABGl0ZW0FAAAAB2FjY291bnQCAAAAC192b3RlcmV2aWV3AQAAABxnZXRLZXlJdGVtQWNjV2hhbGVSZXZpZXdUZXh0AAAAAgAAAARpdGVtAAAAB2FjY291bnQJAAEsAAAAAgkBAAAAE2dldEtleUl0ZW1BY2NSZXZpZXcAAAACBQAAAARpdGVtBQAAAAdhY2NvdW50AgAAAAxfd2hhbGVyZXZpZXcBAAAAFmdldEtleUl0ZW1CdXlvdXRBbW91bnQAAAABAAAABGl0ZW0JAAEsAAAAAgIAAAAOYnV5b3V0X2Ftb3VudF8FAAAABGl0ZW0BAAAAFWdldEtleUl0ZW1BY2NXaW5uaW5ncwAAAAIAAAAEaXRlbQAAAAdhY2NvdW50CQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAl3aW5uaW5nc18FAAAABGl0ZW0CAAAAAV8FAAAAB2FjY291bnQBAAAAFGdldFZhbHVlV2hpdGVsaXN0UmVmAAAAAQAAAAdhY2NvdW50CQEAAAALZ2V0U3RyQnlLZXkAAAABCQEAAAASZ2V0S2V5V2hpdGVsaXN0UmVmAAAAAQUAAAAHYWNjb3VudAEAAAAXZ2V0VmFsdWVXaGl0ZWxpc3RTdGF0dXMAAAABAAAAB2FjY291bnQJAQAAAAtnZXRTdHJCeUtleQAAAAEJAQAAABVnZXRLZXlXaGl0ZWxpc3RTdGF0dXMAAAABBQAAAAdhY2NvdW50AQAAAA9nZXRWYWx1ZUJhbGFuY2UAAAABAAAAB2FjY291bnQJAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAAA1nZXRLZXlCYWxhbmNlAAAAAQUAAAAHYWNjb3VudAEAAAAUZ2V0VmFsdWVXaGl0ZWxpc3RCaW8AAAABAAAAB2FjY291bnQJAQAAAAtnZXRTdHJCeUtleQAAAAEJAQAAABJnZXRLZXlXaGl0ZWxpc3RCaW8AAAABBQAAAAdhY2NvdW50AQAAABZnZXRWYWx1ZVdoaXRlbGlzdEJsb2NrAAAAAQAAAAdhY2NvdW50CQEAAAALZ2V0U3RyQnlLZXkAAAABCQEAAAAUZ2V0S2V5V2hpdGVsaXN0QmxvY2sAAAABBQAAAAdhY2NvdW50AQAAABJnZXRWYWx1ZUl0ZW1BdXRob3IAAAABAAAABGl0ZW0JAQAAAAtnZXRTdHJCeUtleQAAAAEJAQAAABBnZXRLZXlJdGVtQXV0aG9yAAAAAQUAAAAEaXRlbQEAAAARZ2V0VmFsdWVJdGVtQmxvY2sAAAABAAAABGl0ZW0JAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAAA9nZXRLZXlJdGVtQmxvY2sAAAABBQAAAARpdGVtAQAAABxnZXRWYWx1ZUl0ZW1Wb3RpbmdFeHBpcmF0aW9uAAAAAQAAAARpdGVtCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAaZ2V0S2V5SXRlbVZvdGluZ0V4cGlyYXRpb24AAAABBQAAAARpdGVtAQAAABBnZXRWYWx1ZUl0ZW1CYW5rAAAAAQAAAARpdGVtCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAOZ2V0S2V5SXRlbUJhbmsAAAABBQAAAARpdGVtAQAAABJnZXRWYWx1ZUl0ZW1TdGF0dXMAAAABAAAABGl0ZW0JAQAAAAtnZXRTdHJCeUtleQAAAAEJAQAAABBnZXRLZXlJdGVtU3RhdHVzAAAAAQUAAAAEaXRlbQEAAAAQZ2V0VmFsdWVJdGVtRGF0YQAAAAEAAAAEaXRlbQkBAAAAC2dldFN0ckJ5S2V5AAAAAQkBAAAADmdldEtleUl0ZW1EYXRhAAAAAQUAAAAEaXRlbQEAAAAbZ2V0VmFsdWVJdGVtQ3Jvd2RFeHBpcmF0aW9uAAAAAQAAAARpdGVtCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAZZ2V0S2V5SXRlbUNyb3dkRXhwaXJhdGlvbgAAAAEFAAAABGl0ZW0BAAAAG2dldFZhbHVlSXRlbVdoYWxlRXhwaXJhdGlvbgAAAAEAAAAEaXRlbQkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAGWdldEtleUl0ZW1XaGFsZUV4cGlyYXRpb24AAAABBQAAAARpdGVtAQAAABRnZXRWYWx1ZUl0ZW1OQ29tbWl0cwAAAAEAAAAEaXRlbQkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAEmdldEtleUl0ZW1OQ29tbWl0cwAAAAEFAAAABGl0ZW0BAAAAFWdldFZhbHVlSXRlbUFjY0NvbW1pdAAAAAIAAAAEaXRlbQAAAAdhY2NvdW50CQEAAAALZ2V0U3RyQnlLZXkAAAABCQEAAAATZ2V0S2V5SXRlbUFjY0NvbW1pdAAAAAIFAAAABGl0ZW0FAAAAB2FjY291bnQBAAAAFWdldFZhbHVlSXRlbUFjY1JldmVhbAAAAAIAAAAEaXRlbQAAAAdhY2NvdW50CQEAAAALZ2V0U3RyQnlLZXkAAAABCQEAAAATZ2V0S2V5SXRlbUFjY1JldmVhbAAAAAIFAAAABGl0ZW0FAAAAB2FjY291bnQBAAAAFGdldFZhbHVlSXRlbVZvdGVzWWVzAAAAAQAAAARpdGVtCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAASZ2V0S2V5SXRlbVZvdGVzWWVzAAAAAQUAAAAEaXRlbQEAAAATZ2V0VmFsdWVJdGVtVm90ZXNObwAAAAEAAAAEaXRlbQkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAEWdldEtleUl0ZW1Wb3Rlc05vAAAAAQUAAAAEaXRlbQEAAAAUZ2V0VmFsdWVJdGVtQWNjRmluYWwAAAACAAAABGl0ZW0AAAAHYWNjb3VudAkBAAAAC2dldFN0ckJ5S2V5AAAAAQkBAAAAEmdldEtleUl0ZW1BY2NGaW5hbAAAAAIFAAAABGl0ZW0FAAAAB2FjY291bnQBAAAAGGdldFZhbHVlSXRlbUZ1bmRQb3NpdGl2ZQAAAAEAAAAEaXRlbQkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAFmdldEtleUl0ZW1GdW5kUG9zaXRpdmUAAAABBQAAAARpdGVtAQAAABhnZXRWYWx1ZUl0ZW1GdW5kTmVnYXRpdmUAAAABAAAABGl0ZW0JAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAABZnZXRLZXlJdGVtRnVuZE5lZ2F0aXZlAAAAAQUAAAAEaXRlbQEAAAAbZ2V0VmFsdWVJdGVtQWNjRnVuZFBvc2l0aXZlAAAAAgAAAARpdGVtAAAAB2FjY291bnQJAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAABlnZXRLZXlJdGVtQWNjRnVuZFBvc2l0aXZlAAAAAgUAAAAEaXRlbQUAAAAHYWNjb3VudAEAAAAbZ2V0VmFsdWVJdGVtQWNjRnVuZE5lZ2F0aXZlAAAAAgAAAARpdGVtAAAAB2FjY291bnQJAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAABlnZXRLZXlJdGVtQWNjRnVuZE5lZ2F0aXZlAAAAAgUAAAAEaXRlbQUAAAAHYWNjb3VudAEAAAAZZ2V0VmFsdWVJdGVtQWNjUmV2aWV3c0NudAAAAAIAAAAEaXRlbQAAAAdhY2NvdW50CQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAXZ2V0S2V5SXRlbUFjY1Jldmlld3NDbnQAAAACBQAAAARpdGVtBQAAAAdhY2NvdW50AQAAABlnZXRWYWx1ZUl0ZW1BY2NSZXZpZXdUZXh0AAAAAwAAAARpdGVtAAAAB2FjY291bnQAAAADY250CQEAAAALZ2V0U3RyQnlLZXkAAAABCQEAAAAXZ2V0S2V5SXRlbUFjY1Jldmlld1RleHQAAAADBQAAAARpdGVtBQAAAAdhY2NvdW50BQAAAANjbnQBAAAAGWdldFZhbHVlSXRlbUFjY1Jldmlld01vZGUAAAADAAAABGl0ZW0AAAAHYWNjb3VudAAAAANjbnQJAQAAAAtnZXRTdHJCeUtleQAAAAEJAQAAABdnZXRLZXlJdGVtQWNjUmV2aWV3TW9kZQAAAAMFAAAABGl0ZW0FAAAAB2FjY291bnQFAAAAA2NudAEAAAAZZ2V0VmFsdWVJdGVtQWNjUmV2aWV3VGllcgAAAAMAAAAEaXRlbQAAAAdhY2NvdW50AAAAA2NudAkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAF2dldEtleUl0ZW1BY2NSZXZpZXdUaWVyAAAAAwUAAAAEaXRlbQUAAAAHYWNjb3VudAUAAAADY250AQAAABhnZXRWYWx1ZUl0ZW1CdXlvdXRBbW91bnQAAAABAAAABGl0ZW0JAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAABZnZXRLZXlJdGVtQnV5b3V0QW1vdW50AAAAAQUAAAAEaXRlbQEAAAAXZ2V0VmFsdWVJdGVtQWNjV2lubmluZ3MAAAACAAAABGl0ZW0AAAAHYWNjb3VudAkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAFWdldEtleUl0ZW1BY2NXaW5uaW5ncwAAAAIFAAAABGl0ZW0FAAAAB2FjY291bnQAAAAAC1dISVRFTElTVEVEAgAAAApyZWdpc3RlcmVkAAAAAAdJTlZJVEVEAgAAAAdpbnZpdGVkAAAAAAVXSEFMRQIAAAAFd2hhbGUAAAAAC1NQRU5ESU5WSVRFAgAAAAxzcGVuZF9pbnZpdGUAAAAAA05FVwIAAAADbmV3AAAAAAZDT01NSVQCAAAADXZvdGluZ19jb21taXQAAAAABlJFVkVBTAIAAAANdm90aW5nX3JldmVhbAAAAAAIRkVBVFVSRUQCAAAACGZlYXR1cmVkAAAAAAhERUxJU1RFRAIAAAAIZGVsaXN0ZWQAAAAAB0NBU0hPVVQCAAAAB2Nhc2hvdXQAAAAABkJVWU9VVAIAAAAGYnV5b3V0AAAAAAhGSU5JU0hFRAIAAAAIZmluaXNoZWQAAAAAB0NMQUlNRUQCAAAAB2NsYWltZWQAAAAACFBPU0lUSVZFAgAAAAhwb3NpdGl2ZQAAAAAITkVHQVRJVkUCAAAACG5lZ2F0aXZlAAAAAAdHRU5FU0lTAgAAACMzUDhGdnkxeUR3Tkh2VnJhYmU0ZWs1YjlkQXd4RmpES1Y3UgAAAAAFQURNSU4CAAAAIzNQOU5EeHQ5WTZlUGZNOWhrUXlzZ1N2YkhKdmlocjU2WjE4AAAAAAZWT1RFUlMAAAAAAAAAAAMAAAAABlFVT1JVTQAAAAAAAAAAAgAAAAAFVElFUlMJAARMAAAAAgkAAGgAAAACAAAAAAAAAAADAAAAAAAF9eEACQAETAAAAAIJAABoAAAAAgAAAAAAAAAACgAAAAAABfXhAAkABEwAAAACCQAAaAAAAAIAAAAAAAAAAGQAAAAAAAX14QAJAARM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cmFuc2ZlclNldAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAHEBleHRyVXNlcihhZGRyZXNzRnJvbVN0cmluZykAAAABBQAAAAdhY2NvdW50BQAAAAdWT1RFQkVUBQAAAAR1bml0BQAAAANuaWwAAAABaQEAAAAOZmluYWxpemV2b3RpbmcAAAACAAAABGl0ZW0AAAAHYWNjb3VudAQAAAAGeWVzY250CQEAAAAUZ2V0VmFsdWVJdGVtVm90ZXNZZXMAAAABBQAAAARpdGVtBAAAAAZub3RjbnQJAQAAABNnZXRWYWx1ZUl0ZW1Wb3Rlc05vAAAAAQUAAAAEaXRlbQQAAAAHYWNjdm90ZQkBAAAAFWdldFZhbHVlSXRlbUFjY1JldmVhbAAAAAIFAAAABGl0ZW0FAAAAB2FjY291bnQEAAAACGlzYXV0aG9yCQAAAAAAAAIFAAAAB2FjY291bnQJAQAAABJnZXRWYWx1ZUl0ZW1BdXRob3IAAAABBQAAAARpdGVtBAAAAAtmaW5hbHN0YXR1cwMJAABmAAAAAgUAAAAGeWVzY250BQAAAAZRVU9SVU0FAAAACEZFQVRVUkVEAwkAAGYAAAACBQAAAAZub3RjbnQFAAAABlFVT1JVTQUAAAAIREVMSVNURUQFAAAABE5PTkUEAAAAFG1sdGlzbm90ZnVsbG1ham9yaXR5AwMJAAAAAAAAAgUAAAAGeWVzY250BQAAAAZWT1RFUlMGCQAAAAAAAAIFAAAABm5vdGNudAUAAAAGVk9URVJTAAAAAAAAAAAAAAAAAAAAAAABBAAAAAhud2lubmVycwMJAAAAAAAAAgUAAAALZmluYWxzdGF0dXMFAAAACEZFQVRVUkVEBQAAAAZ5ZXNjbnQDCQAAAAAAAAIFAAAAC2ZpbmFsc3RhdHVzBQAAAAhERUxJU1RFRAUAAAAGbm90Y250AAAAAAAAAAAABAAAAAhubG9vc2VycwkAAGUAAAACBQAAAAZWT1RFUlMFAAAACG53aW5uZXJzBAAAAA5tbHRhY2Npc3dpbm5lcgMJAAAAAAAAAgUAAAALZmluYWxzdGF0dXMFAAAAB2FjY3ZvdGUAAAAAAAAAAAEAAAAAAAAAAAAEAAAACnZvdGVwcm9maXQDCQAAAAAAAAIFAAAACG53aW5uZXJzAAAAAAAAAAAAAAAAAAAAAAAACQAAaAAAAAIFAAAADm1sdGFjY2lzd2lubmVyCQAAZAAAAAIFAAAAB1ZPVEVCRVQJAABpAAAAAgkAAGgAAAACBQAAABRtbHRpc25vdGZ1bGxtYWpvcml0eQkAAGQAAAACCQAAaAAAAAIFAAAACG5sb29zZXJzBQAAAAdWT1RFQkVUBQAAAApMSVNUSU5HRkVFBQAAAAhud2lubmVycwQAAAAMYXV0aG9ycmV0dXJuCQAAaAAAAAIJAABoAAAAAgkAAGgAAAACBQAAAApMSVNUSU5HRkVFAwUAAAAIaXNhdXRob3IAAAAAAAAAAAEAAAAAAAAAAAADCQAAAAAAAAIFAAAAFG1sdGlzbm90ZnVsbG1ham9yaXR5AAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAABAwkAAAAAAAACBQAAAAtmaW5hbHN0YXR1cwUAAAAIRkVBVFVSRUQAAAAAAAAAAAEAAAAAAAAAAAADCQAAZgAAAAIJAQAAABxnZXRWYWx1ZUl0ZW1Wb3RpbmdFeHBpcmF0aW9uAAAAAQUAAAAEaXRlbQUAAAAGaGVpZ2h0CQAAAgAAAAECAAAAHlRoZSB2b3RpbmcgaGFzbid0IGZpbmlzaGVkIHlldAMJAAAAAAAAAgkBAAAAFGdldFZhbHVlSXRlbUFjY0ZpbmFsAAAAAgUAAAAEaXRlbQUAAAAHYWNjb3VudAUAAAAIRklOSVNIRUQJAAACAAAAAQIAAAAbQWNjb3VudCBoYXMgYWxyZWFkeSBjbGFpbWVkAwMJAAAAAAAAAgUAAAAHYWNjdm90ZQUAAAAETk9ORQkBAAAAASEAAAABBQAAAAhpc2F1dGhvcgcJAAACAAAAAQIAAAAzQWNjb3VudCBoYXNub3Qgdm90ZWQsIGhhc25vdCByZXZlYWwgb3IgaXNub3QgYXV0aG9yAwkAAAAAAAACBQAAAAtmaW5hbHN0YXR1cwUAAAAETk9ORQkAAAIAAAABAgAAABJWb3RpbmcgaGFzIGV4cGlyZWQJAQAAAAxTY3JpcHRSZXN1bHQAAAACCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAASZ2V0S2V5SXRlbUFjY0ZpbmFsAAAAAgUAAAAEaXRlbQUAAAAHYWNjb3VudAUAAAAIRklOSVNIRUQFAAAAA25pbAkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAcQGV4dHJVc2VyKGFkZHJlc3NGcm9tU3RyaW5nKQAAAAEFAAAAB2FjY291bnQJAABkAAAAAgUAAAAKdm90ZXByb2ZpdAUAAAAMYXV0aG9ycmV0dXJuBQAAAAR1bml0BQAAAANuaWwAAAABaQEAAAASY2xvc2VleHBpcmVkdm90aW5nAAAAAgAAAARpdGVtAAAAB2FjY291bnQEAAAAC2ZpbmFsc3RhdHVzAwkAAGYAAAACCQEAAAAUZ2V0VmFsdWVJdGVtVm90ZXNZZXMAAAABBQAAAARpdGVtBQAAAAZRVU9SVU0FAAAACEZFQVRVUkVEAwkAAGYAAAACCQEAAAATZ2V0VmFsdWVJdGVtVm90ZXNObwAAAAEFAAAABGl0ZW0FAAAABlFVT1JVTQUAAAAIREVMSVNURUQFAAAABE5PTkUEAAAAB2FjY3ZvdGUJAQAAABVnZXRWYWx1ZUl0ZW1BY2NSZXZlYWwAAAACBQAAAARpdGVtBQAAAAdhY2NvdW50BAAAAAhpc2F1dGhvcgkAAAAAAAACBQAAAAdhY2NvdW50CQEAAAASZ2V0VmFsdWVJdGVtQXV0aG9yAAAAAQUAAAAEaXRlbQQAAAAHYWNjY29taQkBAAAAFWdldFZhbHVlSXRlbUFjY0NvbW1pdAAAAAIFAAAABGl0ZW0FAAAAB2FjY291bnQEAAAADmhhc3JldmVhbHN0YWdlCQAAAAAAAAIJAQAAABRnZXRWYWx1ZUl0ZW1OQ29tbWl0cwAAAAEFAAAABGl0ZW0FAAAABlZPVEVSUwQAAAAMYXV0aG9ycmV0dXJuCQAAaAAAAAIFAAAACkxJU1RJTkdGRUUDBQAAAAhpc2F1dGhvcgAAAAAAAAAAAQAAAAAAAAAAAAQAAAANdm90ZXJzcmV0dXJuMQkAAGgAAAACCQAAaAAAAAIFAAAAB1ZPVEVCRVQDBQAAAA5oYXNyZXZlYWxzdGFnZQAAAAAAAAAAAQAAAAAAAAAAAAMJAQAAAAIhPQAAAAIFAAAAB2FjY3ZvdGUFAAAABE5PTkUAAAAAAAAAAAEAAAAAAAAAAAAEAAAADXZvdGVyc3Jl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", "chainId": 84, "height": 619033, "spentComplexity": 0 } View: original | compacted Prev: CjmU8yoBv22cPDW17SVzX43xYMB3AXZVDzkkGFm76PZ1 Next: GKqtaUb3TKEsN6PYdrMLMHbpkeonLC14NEvikfQ9dyuo Diff:
OldNewDifferences
223223
224224 let ax = "whale"
225225
226-let ay = "new"
226+let ay = "spend_invite"
227227
228-let az = "voting_commit"
228+let az = "new"
229229
230-let aA = "voting_reveal"
230+let aA = "voting_commit"
231231
232-let aB = "featured"
232+let aB = "voting_reveal"
233233
234-let aC = "delisted"
234+let aC = "featured"
235235
236-let aD = "cashout"
236+let aD = "delisted"
237237
238-let aE = "buyout"
238+let aE = "cashout"
239239
240-let aF = "finished"
240+let aF = "buyout"
241241
242-let aG = "claimed"
242+let aG = "finished"
243243
244-let aH = "positive"
244+let aH = "claimed"
245245
246-let aI = "negative"
246+let aI = "positive"
247247
248-let aJ = "3P8Fvy1yDwNHvVrabe4ek5b9dAwxFjDKV7R"
248+let aJ = "negative"
249249
250-let aK = "3P9NDxt9Y6ePfM9hkQysgSvbHJvihr56Z18"
250+let aK = "3P8Fvy1yDwNHvVrabe4ek5b9dAwxFjDKV7R"
251251
252-let aL = 3
252+let aL = "3P9NDxt9Y6ePfM9hkQysgSvbHJvihr56Z18"
253253
254-let aM = 2
254+let aM = 3
255255
256-let aN = [(3 * 100000000), (10 * 100000000), (100 * 100000000), (300 * 100000000), (1000 * 100000000)]
256+let aN = 2
257257
258-let aO = (3 * 100000000)
258+let aO = [(3 * 100000000), (10 * 100000000), (100 * 100000000), (300 * 100000000), (1000 * 100000000)]
259259
260-let aP = (1 * 100000000)
260+let aP = (3 * 100000000)
261261
262-let aQ = 150
262+let aQ = (1 * 100000000)
263263
264-@Callable(aR)
265-func inviteuser (aS,aT) = {
266- let j = toBase58String(aR.caller.bytes)
267- let aU = T(aS)
268- let aV = T(j)
269- if (if ((aU == av))
264+let aR = 150
265+
266+@Callable(aS)
267+func inviteuser (aT,aU) = {
268+ let j = toBase58String(aS.caller.bytes)
269+ let aV = T(aT)
270+ let aW = T(j)
271+ if (if ((aV == av))
270272 then true
271- else (aU == ax))
273+ else (aV == ax))
272274 then throw("User has already been registered")
273- else if (if (if ((aV != av))
274- then (j != aJ)
275+ else if (if (if ((aW != av))
276+ then (j != aK)
275277 else false)
276- then (aV != ax)
278+ then (aW != ax)
277279 else false)
278- then throw(("Your account should be whitelisted. status: " + aV))
279- else WriteSet([DataEntry(i(aS), j), DataEntry(m(aS), aT), DataEntry(k(aS), aw)])
280+ then throw(("Your account should be whitelisted. status: " + aW))
281+ else WriteSet([DataEntry(i(aT), j), DataEntry(m(aT), aU), DataEntry(k(aT), aw)])
280282 }
281283
282284
283285
284-@Callable(aR)
285-func signupbylink (aW,aT,aX) = {
286- let j = toBase58String(aR.caller.bytes)
287- let aY = T(aW)
288- if ((aY != aw))
289- then throw(((((("Referral invite needed. Current status: " + aY) + ", key:") + k(aW)) + ", account:") + aW))
290- else WriteSet([DataEntry(m(j), aT), DataEntry(n(j), height), DataEntry(k(j), if ((aX == ax))
286+@Callable(aS)
287+func signupbylink (aX,aU,aY) = {
288+ let j = toBase58String(aS.caller.bytes)
289+ let aZ = T(aX)
290+ if ((aZ != aw))
291+ then throw(((((("Referral invite needed. Current status: " + aZ) + ", key:") + k(aX)) + ", account:") + aX))
292+ else WriteSet([DataEntry(m(j), aU), DataEntry(n(j), height), DataEntry(k(j), if ((aY == ax))
291293 then ax
292- else av), DataEntry(k(aW), if ((aX == ax))
293- then ax
294- else av), DataEntry(i(j), S(aW))])
294+ else av), DataEntry(k(aX), ay), DataEntry(i(j), S(aX))])
295295 }
296296
297297
298298
299-@Callable(aR)
300-func signup (aT,aX) = {
301- let j = toBase58String(aR.caller.bytes)
302- let aY = T(j)
303- if ((aY == a))
304- then throw(((((("Referral invite needed. Current status: " + aY) + ", key:") + k(j)) + ", account:") + j))
305- else WriteSet([DataEntry(m(j), aT), DataEntry(n(j), height), DataEntry(k(j), if ((aX == ax))
299+@Callable(aS)
300+func signup (aU,aY) = {
301+ let j = toBase58String(aS.caller.bytes)
302+ let aZ = T(j)
303+ if ((aZ == a))
304+ then throw(((((("Referral invite needed. Current status: " + aZ) + ", key:") + k(j)) + ", account:") + j))
305+ else WriteSet([DataEntry(m(j), aU), DataEntry(n(j), height), DataEntry(k(j), if ((aY == ax))
306306 then ax
307307 else av)])
308308 }
309309
310310
311311
312-@Callable(aR)
313-func userupdate (aT,aX) = {
314- let j = toBase58String(aR.caller.bytes)
315- WriteSet([DataEntry(m(j), aT), DataEntry(k(j), if ((aX == ax))
312+@Callable(aS)
313+func userupdate (aU,aY) = {
314+ let j = toBase58String(aS.caller.bytes)
315+ WriteSet([DataEntry(m(j), aU), DataEntry(k(j), if ((aY == ax))
316316 then ax
317317 else av)])
318318 }
319319
320320
321321
322-@Callable(aR)
323-func projupdate (p,aT) = {
324- let j = toBase58String(aR.caller.bytes)
322+@Callable(aS)
323+func projupdate (p,aU) = {
324+ let j = toBase58String(aS.caller.bytes)
325325 if ((X(p) != j))
326326 then throw("You're not author")
327- else WriteSet([DataEntry(u(p), aT)])
327+ else WriteSet([DataEntry(u(p), aU)])
328328 }
329329
330330
331331
332-@Callable(aR)
333-func contestAddOrUpdate (p,aT) = {
334- let j = toBase58String(aR.caller.bytes)
335- if ((j != aK))
332+@Callable(aS)
333+func contestAddOrUpdate (p,aU) = {
334+ let j = toBase58String(aS.caller.bytes)
335+ if ((j != aL))
336336 then throw("You're not admin")
337- else WriteSet([DataEntry(v(p), aT)])
337+ else WriteSet([DataEntry(v(p), aU)])
338338 }
339339
340340
341341
342-@Callable(aR)
342+@Callable(aS)
343343 func withdraw () = {
344- let aZ = toBase58String(aR.caller.bytes)
345- let ba = U(aZ)
346- if ((0 >= ba))
344+ let ba = toBase58String(aS.caller.bytes)
345+ let bb = U(ba)
346+ if ((0 >= bb))
347347 then throw("Not enough balance")
348- else ScriptResult(WriteSet([DataEntry(l(aZ), 0)]), TransferSet([ScriptTransfer(aR.caller, ba, unit)]))
348+ else ScriptResult(WriteSet([DataEntry(l(ba), 0)]), TransferSet([ScriptTransfer(aS.caller, bb, unit)]))
349349 }
350350
351351
352352
353-@Callable(aR)
354-func additem (p,bb,bc,bd,aT) = {
355- let j = toBase58String(aR.caller.bytes)
356- let be = extract(aR.payment)
357- if (isDefined(be.assetId))
353+@Callable(aS)
354+func additem (p,bc,bd,be,aU) = {
355+ let j = toBase58String(aS.caller.bytes)
356+ let bf = extract(aS.payment)
357+ if (isDefined(bf.assetId))
358358 then throw("can use waves only at the moment")
359- else if ((be.amount != aO))
360- then throw(((("Please pay exact amount for the listing: " + toString(aO)) + ", actual payment is: ") + toString(be.amount)))
361- else if (!(if (if ((bb > 2))
362- then (bc > bb)
359+ else if ((bf.amount != aP))
360+ then throw(((("Please pay exact amount for the listing: " + toString(aP)) + ", actual payment is: ") + toString(bf.amount)))
361+ else if (!(if (if ((bc > 2))
362+ then (bd > bc)
363363 else false)
364- then (bd > bc)
364+ then (be > bd)
365365 else false))
366366 then throw("Incorrect time parameters")
367367 else if ((X(p) != a))
368368 then throw("Item already exist")
369- else WriteSet([DataEntry(o(p), j), DataEntry(q(p), height), DataEntry(r(p), (height + bb)), DataEntry(s(p), aO), DataEntry(t(p), ay), DataEntry(u(p), aT), DataEntry(w(p), (height + bc)), DataEntry(x(p), (height + bd))])
369+ else WriteSet([DataEntry(o(p), j), DataEntry(q(p), height), DataEntry(r(p), (height + bc)), DataEntry(s(p), aP), DataEntry(t(p), az), DataEntry(u(p), aU), DataEntry(w(p), (height + bd)), DataEntry(x(p), (height + be))])
370370 }
371371
372372
373373
374-@Callable(aR)
375-func votecommit (p,aW) = {
376- let j = toBase58String(aR.caller.bytes)
377- let bf = af(p)
378- let aY = ab(p)
379- let be = extract(aR.payment)
380- if (isDefined(be.assetId))
374+@Callable(aS)
375+func votecommit (p,aX) = {
376+ let j = toBase58String(aS.caller.bytes)
377+ let bg = af(p)
378+ let aZ = ab(p)
379+ let bf = extract(aS.payment)
380+ if (isDefined(bf.assetId))
381381 then throw("can use waves only at the moment")
382- else if ((be.amount != (2 * aP)))
382+ else if ((bf.amount != (2 * aQ)))
383383 then throw("Not enough funds to vote for a new item")
384384 else if ((height > Z(p)))
385385 then throw("The voting has expired")
386386 else if ((X(p) == j))
387387 then throw("Cannot vote for own proposal")
388- else if (if ((aY != ay))
389- then (aY != az)
388+ else if (if ((aZ != az))
389+ then (aZ != aA)
390390 else false)
391391 then throw("Wrong item status for 'commit' action")
392- else if ((bf >= aL))
392+ else if ((bg >= aM))
393393 then throw("No more voters for this item")
394394 else if ((ag(p, j) != a))
395395 then throw("Can't vote twice")
396- else WriteSet([DataEntry(t(p), if (((bf + 1) == aL))
397- then aA
398- else az), DataEntry(z(p, j), aW), DataEntry(y(p), (bf + 1))])
396+ else WriteSet([DataEntry(t(p), if (((bg + 1) == aM))
397+ then aB
398+ else aA), DataEntry(z(p, j), aX), DataEntry(y(p), (bg + 1))])
399399 }
400400
401401
402402
403-@Callable(aR)
404-func votereveal (p,bg,bh,bi) = {
405- let bj = toBase58String(sha256(toBytes((bg + bh))))
406- let j = toBase58String(aR.caller.bytes)
407- let bk = if ((bg == aB))
403+@Callable(aS)
404+func votereveal (p,bh,bi,bj) = {
405+ let bk = toBase58String(sha256(toBytes((bh + bi))))
406+ let j = toBase58String(aS.caller.bytes)
407+ let bl = if ((bh == aC))
408408 then 1
409409 else 0
410- let bl = if ((bg == aC))
410+ let bm = if ((bh == aD))
411411 then 1
412412 else 0
413- let bm = ai(p)
414- let bn = aj(p)
415- let aU = if ((bm >= aM))
416- then aB
417- else if ((bn >= aM))
418- then aC
419- else aA
420- if ((ag(p, j) != bj))
413+ let bn = ai(p)
414+ let bo = aj(p)
415+ let aV = if ((bn >= aN))
416+ then aC
417+ else if ((bo >= aN))
418+ then aD
419+ else aB
420+ if ((ag(p, j) != bk))
421421 then throw("Hashes don't match")
422422 else if ((height > Z(p)))
423423 then throw("The challenge has expired")
424- else if ((aL > af(p)))
424+ else if ((aM > af(p)))
425425 then throw("It's still commit stage")
426- else if (if ((ab(p) != aA))
427- then (ab(p) != aU)
426+ else if (if ((ab(p) != aB))
427+ then (ab(p) != aV)
428428 else false)
429429 then throw("Wrong item status for 'reveal' action")
430430 else if ((ah(p, j) != a))
431431 then throw("Can't vote twice")
432- else if (if ((bg != aB))
433- then (bg != aC)
432+ else if (if ((bh != aC))
433+ then (bh != aD)
434434 else false)
435435 then throw("Bad vote result format")
436- else ScriptResult(WriteSet([DataEntry(A(p, j), bg), DataEntry(B(p), (bm + bk)), DataEntry(C(p), (bn + bl)), DataEntry(t(p), aU), DataEntry(O(p, j), bi)]), TransferSet([ScriptTransfer(addressFromStringValue(j), aP, unit)]))
436+ else ScriptResult(WriteSet([DataEntry(A(p, j), bh), DataEntry(B(p), (bn + bl)), DataEntry(C(p), (bo + bm)), DataEntry(t(p), aV), DataEntry(O(p, j), bj)]), TransferSet([ScriptTransfer(addressFromStringValue(j), aQ, unit)]))
437437 }
438438
439439
440440
441-@Callable(aR)
441+@Callable(aS)
442442 func finalizevoting (p,j) = {
443- let bm = ai(p)
444- let bn = aj(p)
445- let bo = ah(p, j)
446- let bp = (j == X(p))
447- let bq = if ((bm > aM))
448- then aB
449- else if ((bn > aM))
450- then aC
443+ let bn = ai(p)
444+ let bo = aj(p)
445+ let bp = ah(p, j)
446+ let bq = (j == X(p))
447+ let br = if ((bn > aN))
448+ then aC
449+ else if ((bo > aN))
450+ then aD
451451 else a
452- let br = if (if ((bm == aL))
452+ let bs = if (if ((bn == aM))
453453 then true
454- else (bn == aL))
454+ else (bo == aM))
455455 then 0
456456 else 1
457- let bs = if ((bq == aB))
458- then bm
459- else if ((bq == aC))
460- then bn
457+ let bt = if ((br == aC))
458+ then bn
459+ else if ((br == aD))
460+ then bo
461461 else 0
462- let bt = (aL - bs)
463- let bu = if ((bq == bo))
462+ let bu = (aM - bt)
463+ let bv = if ((br == bp))
464464 then 1
465465 else 0
466- let bv = if ((bs == 0))
466+ let bw = if ((bt == 0))
467467 then 0
468- else (bu * (aP + ((br * ((bt * aP) + aO)) / bs)))
469- let bw = (((aO * (if (bp)
468+ else (bv * (aQ + ((bs * ((bu * aQ) + aP)) / bt)))
469+ let bx = (((aP * (if (bq)
470470 then 1
471- else 0)) * (if ((br == 1))
471+ else 0)) * (if ((bs == 1))
472472 then 0
473- else 1)) * (if ((bq == aB))
473+ else 1)) * (if ((br == aC))
474474 then 1
475475 else 0))
476476 if ((Z(p) > height))
477477 then throw("The voting hasn't finished yet")
478- else if ((ak(p, j) == aF))
478+ else if ((ak(p, j) == aG))
479479 then throw("Account has already claimed")
480- else if (if ((bo == a))
481- then !(bp)
480+ else if (if ((bp == a))
481+ then !(bq)
482482 else false)
483483 then throw("Account hasnot voted, hasnot reveal or isnot author")
484- else if ((bq == a))
484+ else if ((br == a))
485485 then throw("Voting has expired")
486- else ScriptResult(WriteSet([DataEntry(D(p, j), aF)]), TransferSet([ScriptTransfer(addressFromStringValue(j), (bv + bw), unit)]))
486+ else ScriptResult(WriteSet([DataEntry(D(p, j), aG)]), TransferSet([ScriptTransfer(addressFromStringValue(j), (bw + bx), unit)]))
487487 }
488488
489489
490490
491-@Callable(aR)
491+@Callable(aS)
492492 func closeexpiredvoting (p,j) = {
493- let bq = if ((ai(p) > aM))
494- then aB
495- else if ((aj(p) > aM))
496- then aC
493+ let br = if ((ai(p) > aN))
494+ then aC
495+ else if ((aj(p) > aN))
496+ then aD
497497 else a
498- let bo = ah(p, j)
499- let bp = (j == X(p))
500- let bx = ag(p, j)
501- let by = (af(p) == aL)
502- let bw = (aO * (if (bp)
498+ let bp = ah(p, j)
499+ let bq = (j == X(p))
500+ let by = ag(p, j)
501+ let bz = (af(p) == aM)
502+ let bx = (aP * (if (bq)
503503 then 1
504504 else 0))
505- let bz = ((aP * (if (by)
505+ let bA = ((aQ * (if (bz)
506506 then 1
507- else 0)) * (if ((bo != a))
507+ else 0)) * (if ((bp != a))
508508 then 1
509509 else 0))
510- let bA = (((2 * aP) * (if (by)
510+ let bB = (((2 * aQ) * (if (bz)
511511 then 0
512- else 1)) * (if ((bx != a))
512+ else 1)) * (if ((by != a))
513513 then 1
514514 else 0))
515515 if ((Z(p) > height))
516516 then throw("The voting hasn't finished yet")
517- else if (if (!(bp))
518- then (bx == a)
517+ else if (if (!(bq))
518+ then (by == a)
519519 else false)
520520 then throw("Wrong account or item")
521- else if ((ak(p, j) == aF))
521+ else if ((ak(p, j) == aG))
522522 then throw("Account has already claimed")
523- else if ((bq != a))
523+ else if ((br != a))
524524 then throw("Wrong item status")
525- else ScriptResult(WriteSet([DataEntry(D(p, j), aF)]), TransferSet([ScriptTransfer(addressFromStringValue(j), ((bw + bz) + bA), unit)]))
525+ else ScriptResult(WriteSet([DataEntry(D(p, j), aG)]), TransferSet([ScriptTransfer(addressFromStringValue(j), ((bx + bA) + bB), unit)]))
526526 }
527527
528528
529529
530-@Callable(aR)
531-func donate (p,bB,bC,bi) = {
532- let j = toBase58String(aR.caller.bytes)
533- let be = extract(aR.payment)
534- if (isDefined(be.assetId))
530+@Callable(aS)
531+func donate (p,bC,bD,bj) = {
532+ let j = toBase58String(aS.caller.bytes)
533+ let bf = extract(aS.payment)
534+ if (isDefined(bf.assetId))
535535 then throw("can use waves only at the moment")
536536 else {
537537 let L = (ap(p, j) + 1)
538- let bD = (am(p) + ((if ((bC == aI))
538+ let bE = (am(p) + ((if ((bD == aJ))
539539 then 1
540- else 0) * be.amount))
541- let bE = (al(p) + ((if ((bC == aH))
540+ else 0) * bf.amount))
541+ let bF = (al(p) + ((if ((bD == aI))
542542 then 1
543- else 0) * be.amount))
544- if ((ab(p) != aB))
543+ else 0) * bf.amount))
544+ if ((ab(p) != aC))
545545 then throw("The project hasn't accepted by community")
546546 else if ((height >= ad(p)))
547547 then throw("The time for crowdfunding has expired")
548- else if ((bD >= bE))
548+ else if ((bE >= bF))
549549 then throw("Negative fund can't be higher than positive fund")
550- else if (if ((bC != aH))
551- then (bC != aI)
550+ else if (if ((bD != aI))
551+ then (bD != aJ)
552552 else false)
553553 then throw("Wrong mode parameter")
554554 else if ((X(p) == j))
555555 then throw("Can't donate own project")
556- else if ((be.amount != aN[(bB - 1)]))
557- then throw(("The payment must be equal to tier amount: " + toString(aN[(bB - 1)])))
558- else WriteSet([DataEntry(I(p, j), L), DataEntry(G(p, j), (an(p, j) + ((if ((bC == aH))
556+ else if ((bf.amount != aO[(bC - 1)]))
557+ then throw(("The payment must be equal to tier amount: " + toString(aO[(bC - 1)])))
558+ else WriteSet([DataEntry(I(p, j), L), DataEntry(G(p, j), (an(p, j) + ((if ((bD == aI))
559559 then 1
560- else 0) * be.amount))), DataEntry(H(p, j), (ao(p, j) + ((if ((bC == aI))
560+ else 0) * bf.amount))), DataEntry(H(p, j), (ao(p, j) + ((if ((bD == aJ))
561561 then 1
562- else 0) * be.amount))), DataEntry(E(p), bE), DataEntry(F(p), bD), DataEntry(K(p, j, toString(L)), bi), DataEntry(M(p, j, toString(L)), bC), DataEntry(N(p, j, toString(L)), bB)])
562+ else 0) * bf.amount))), DataEntry(E(p), bF), DataEntry(F(p), bE), DataEntry(K(p, j, toString(L)), bj), DataEntry(M(p, j, toString(L)), bD), DataEntry(N(p, j, toString(L)), bC)])
563563 }
564564 }
565565
566566
567567
568-@Callable(aR)
569-func whale (p,bi) = {
570- let j = toBase58String(aR.caller.bytes)
571- let be = extract(aR.payment)
572- if (isDefined(be.assetId))
568+@Callable(aS)
569+func whale (p,bj) = {
570+ let j = toBase58String(aS.caller.bytes)
571+ let bf = extract(aS.payment)
572+ if (isDefined(bf.assetId))
573573 then throw("can use waves only at the moment")
574- else if ((ab(p) != aB))
574+ else if ((ab(p) != aC))
575575 then throw("The project hasn't accepted by community")
576576 else if ((ad(p) > height))
577577 then throw("The time for crowdfunding has not expired yet")
578578 else if ((height > ae(p)))
579579 then throw("The time for grant has expired")
580- else if ((ab(p) == aE))
580+ else if ((ab(p) == aF))
581581 then throw("Investement has already done")
582- else if ((((al(p) * aQ) / 100) > be.amount))
583- then throw((("Investement must be more than " + toString(aQ)) + "% of supportes funds"))
584- else WriteSet([DataEntry(t(p), aE), DataEntry(P(p, j), bi), DataEntry(l(X(p)), (U(X(p)) + al(p))), DataEntry(Q(p), be.amount)])
582+ else if ((((al(p) * aR) / 100) > bf.amount))
583+ then throw((("Investement must be more than " + toString(aR)) + "% of supportes funds"))
584+ else WriteSet([DataEntry(t(p), aF), DataEntry(P(p, j), bj), DataEntry(l(X(p)), (U(X(p)) + al(p))), DataEntry(Q(p), bf.amount)])
585585 }
586586
587587
588588
589-@Callable(aR)
589+@Callable(aS)
590590 func claimwinnings (p,j) = {
591- let aY = ab(p)
592- let bF = if ((aY == aE))
591+ let aZ = ab(p)
592+ let bG = if ((aZ == aF))
593593 then 1
594594 else 0
595- let bG = if ((aY != aE))
595+ let bH = if ((aZ != aF))
596596 then 1
597597 else 0
598- let bH = al(p)
599- let bI = am(p)
600- let bJ = (((bF * (an(p, j) * 100)) / (if ((0 >= bH))
598+ let bI = al(p)
599+ let bJ = am(p)
600+ let bK = (((bG * (an(p, j) * 100)) / (if ((0 >= bI))
601601 then 1
602- else bH)) + ((bG * (ao(p, j) * 100)) / (if ((0 >= bI))
602+ else bI)) + ((bH * (ao(p, j) * 100)) / (if ((0 >= bJ))
603603 then 1
604- else bI)))
605- let bK = ((bI * aQ) / 100)
606- let bL = ((bF * ((bJ * bI) / 100)) + (bG * ((bJ * (if ((bH > bK))
607- then bK
608- else bH)) / 100)))
609- let bM = (bF * ((bJ * at(p)) / 100))
610- let bN = (((if ((X(p) == j))
604+ else bJ)))
605+ let bL = ((bJ * aR) / 100)
606+ let bM = ((bG * ((bK * bJ) / 100)) + (bH * ((bK * (if ((bI > bL))
607+ then bL
608+ else bI)) / 100)))
609+ let bN = (bG * ((bK * at(p)) / 100))
610+ let bO = (((if ((X(p) == j))
611611 then 1
612- else 0) * bH) * (if ((aY != aE))
612+ else 0) * bI) * (if ((aZ != aF))
613613 then 1
614614 else 0))
615- if ((aY == aC))
615+ if ((aZ == aD))
616616 then throw("The project hasn't accepted by community")
617- else if (if ((aY != aE))
617+ else if (if ((aZ != aF))
618618 then (ae(p) >= height)
619619 else false)
620620 then throw("The time for grant has not expired yet")
621- else if ((0 >= (bH + bI)))
621+ else if ((0 >= (bI + bJ)))
622622 then throw("The campaign wasn't active")
623- else WriteSet([DataEntry(l(j), (((U(j) + bL) + bM) + bN)), DataEntry(t(p), if ((bN > 0))
624- then aD
625- else aY), DataEntry(D(p, j), aG)])
623+ else WriteSet([DataEntry(l(j), (((U(j) + bM) + bN) + bO)), DataEntry(t(p), if ((bO > 0))
624+ then aE
625+ else aZ), DataEntry(D(p, j), aH)])
626626 }
627627
628628
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "none"
55
66 func b (c) = {
77 let d = {
88 let e = getInteger(this, c)
99 if ($isInstanceOf(e, "Int"))
1010 then {
1111 let f = e
1212 f
1313 }
1414 else 0
1515 }
1616 d
1717 }
1818
1919
2020 func g (c) = {
2121 let h = {
2222 let e = getString(this, c)
2323 if ($isInstanceOf(e, "String"))
2424 then {
2525 let f = e
2626 f
2727 }
2828 else a
2929 }
3030 h
3131 }
3232
3333
3434 func i (j) = ("wl_ref_" + j)
3535
3636
3737 func k (j) = ("wl_sts_" + j)
3838
3939
4040 func l (j) = ("balance_" + j)
4141
4242
4343 func m (j) = ("wl_bio_" + j)
4444
4545
4646 func n (j) = ("wl_blk_" + j)
4747
4848
4949 func o (p) = ("author_" + p)
5050
5151
5252 func q (p) = ("block_" + p)
5353
5454
5555 func r (p) = ("expiration_block_" + p)
5656
5757
5858 func s (p) = ("bank_" + p)
5959
6060
6161 func t (p) = ("status_" + p)
6262
6363
6464 func u (p) = ("datajson_" + p)
6565
6666
6767 func v (p) = ("contest_datajson_" + p)
6868
6969
7070 func w (p) = ("expiration_one_" + p)
7171
7272
7373 func x (p) = ("expiration_two_" + p)
7474
7575
7676 func y (p) = ("ncommits_" + p)
7777
7878
7979 func z (p,j) = ((("commit_" + p) + "_") + j)
8080
8181
8282 func A (p,j) = ((("reveal_" + p) + "_") + j)
8383
8484
8585 func B (p) = ("cnt_yes_" + p)
8686
8787
8888 func C (p) = ("cnt_no_" + p)
8989
9090
9191 func D (p,j) = ((("final_" + p) + "_") + j)
9292
9393
9494 func E (p) = ("positive_fund_" + p)
9595
9696
9797 func F (p) = ("negative_fund_" + p)
9898
9999
100100 func G (p,j) = ((E(p) + "_") + j)
101101
102102
103103 func H (p,j) = ((F(p) + "_") + j)
104104
105105
106106 func I (p,j) = ((("reviews_cnt_" + p) + "_") + j)
107107
108108
109109 func J (p,j) = ((("review_" + p) + "_") + j)
110110
111111
112112 func K (p,j,L) = ((J(p, j) + "_text_id:") + L)
113113
114114
115115 func M (p,j,L) = ((J(p, j) + "_mode_id:") + L)
116116
117117
118118 func N (p,j,L) = ((J(p, j) + "_tier_id:") + L)
119119
120120
121121 func O (p,j) = (J(p, j) + "_votereview")
122122
123123
124124 func P (p,j) = (J(p, j) + "_whalereview")
125125
126126
127127 func Q (p) = ("buyout_amount_" + p)
128128
129129
130130 func R (p,j) = ((("winnings_" + p) + "_") + j)
131131
132132
133133 func S (j) = g(i(j))
134134
135135
136136 func T (j) = g(k(j))
137137
138138
139139 func U (j) = b(l(j))
140140
141141
142142 func V (j) = g(m(j))
143143
144144
145145 func W (j) = g(n(j))
146146
147147
148148 func X (p) = g(o(p))
149149
150150
151151 func Y (p) = b(q(p))
152152
153153
154154 func Z (p) = b(r(p))
155155
156156
157157 func aa (p) = b(s(p))
158158
159159
160160 func ab (p) = g(t(p))
161161
162162
163163 func ac (p) = g(u(p))
164164
165165
166166 func ad (p) = b(w(p))
167167
168168
169169 func ae (p) = b(x(p))
170170
171171
172172 func af (p) = b(y(p))
173173
174174
175175 func ag (p,j) = g(z(p, j))
176176
177177
178178 func ah (p,j) = g(A(p, j))
179179
180180
181181 func ai (p) = b(B(p))
182182
183183
184184 func aj (p) = b(C(p))
185185
186186
187187 func ak (p,j) = g(D(p, j))
188188
189189
190190 func al (p) = b(E(p))
191191
192192
193193 func am (p) = b(F(p))
194194
195195
196196 func an (p,j) = b(G(p, j))
197197
198198
199199 func ao (p,j) = b(H(p, j))
200200
201201
202202 func ap (p,j) = b(I(p, j))
203203
204204
205205 func aq (p,j,L) = g(K(p, j, L))
206206
207207
208208 func ar (p,j,L) = g(M(p, j, L))
209209
210210
211211 func as (p,j,L) = b(N(p, j, L))
212212
213213
214214 func at (p) = b(Q(p))
215215
216216
217217 func au (p,j) = b(R(p, j))
218218
219219
220220 let av = "registered"
221221
222222 let aw = "invited"
223223
224224 let ax = "whale"
225225
226-let ay = "new"
226+let ay = "spend_invite"
227227
228-let az = "voting_commit"
228+let az = "new"
229229
230-let aA = "voting_reveal"
230+let aA = "voting_commit"
231231
232-let aB = "featured"
232+let aB = "voting_reveal"
233233
234-let aC = "delisted"
234+let aC = "featured"
235235
236-let aD = "cashout"
236+let aD = "delisted"
237237
238-let aE = "buyout"
238+let aE = "cashout"
239239
240-let aF = "finished"
240+let aF = "buyout"
241241
242-let aG = "claimed"
242+let aG = "finished"
243243
244-let aH = "positive"
244+let aH = "claimed"
245245
246-let aI = "negative"
246+let aI = "positive"
247247
248-let aJ = "3P8Fvy1yDwNHvVrabe4ek5b9dAwxFjDKV7R"
248+let aJ = "negative"
249249
250-let aK = "3P9NDxt9Y6ePfM9hkQysgSvbHJvihr56Z18"
250+let aK = "3P8Fvy1yDwNHvVrabe4ek5b9dAwxFjDKV7R"
251251
252-let aL = 3
252+let aL = "3P9NDxt9Y6ePfM9hkQysgSvbHJvihr56Z18"
253253
254-let aM = 2
254+let aM = 3
255255
256-let aN = [(3 * 100000000), (10 * 100000000), (100 * 100000000), (300 * 100000000), (1000 * 100000000)]
256+let aN = 2
257257
258-let aO = (3 * 100000000)
258+let aO = [(3 * 100000000), (10 * 100000000), (100 * 100000000), (300 * 100000000), (1000 * 100000000)]
259259
260-let aP = (1 * 100000000)
260+let aP = (3 * 100000000)
261261
262-let aQ = 150
262+let aQ = (1 * 100000000)
263263
264-@Callable(aR)
265-func inviteuser (aS,aT) = {
266- let j = toBase58String(aR.caller.bytes)
267- let aU = T(aS)
268- let aV = T(j)
269- if (if ((aU == av))
264+let aR = 150
265+
266+@Callable(aS)
267+func inviteuser (aT,aU) = {
268+ let j = toBase58String(aS.caller.bytes)
269+ let aV = T(aT)
270+ let aW = T(j)
271+ if (if ((aV == av))
270272 then true
271- else (aU == ax))
273+ else (aV == ax))
272274 then throw("User has already been registered")
273- else if (if (if ((aV != av))
274- then (j != aJ)
275+ else if (if (if ((aW != av))
276+ then (j != aK)
275277 else false)
276- then (aV != ax)
278+ then (aW != ax)
277279 else false)
278- then throw(("Your account should be whitelisted. status: " + aV))
279- else WriteSet([DataEntry(i(aS), j), DataEntry(m(aS), aT), DataEntry(k(aS), aw)])
280+ then throw(("Your account should be whitelisted. status: " + aW))
281+ else WriteSet([DataEntry(i(aT), j), DataEntry(m(aT), aU), DataEntry(k(aT), aw)])
280282 }
281283
282284
283285
284-@Callable(aR)
285-func signupbylink (aW,aT,aX) = {
286- let j = toBase58String(aR.caller.bytes)
287- let aY = T(aW)
288- if ((aY != aw))
289- then throw(((((("Referral invite needed. Current status: " + aY) + ", key:") + k(aW)) + ", account:") + aW))
290- else WriteSet([DataEntry(m(j), aT), DataEntry(n(j), height), DataEntry(k(j), if ((aX == ax))
286+@Callable(aS)
287+func signupbylink (aX,aU,aY) = {
288+ let j = toBase58String(aS.caller.bytes)
289+ let aZ = T(aX)
290+ if ((aZ != aw))
291+ then throw(((((("Referral invite needed. Current status: " + aZ) + ", key:") + k(aX)) + ", account:") + aX))
292+ else WriteSet([DataEntry(m(j), aU), DataEntry(n(j), height), DataEntry(k(j), if ((aY == ax))
291293 then ax
292- else av), DataEntry(k(aW), if ((aX == ax))
293- then ax
294- else av), DataEntry(i(j), S(aW))])
294+ else av), DataEntry(k(aX), ay), DataEntry(i(j), S(aX))])
295295 }
296296
297297
298298
299-@Callable(aR)
300-func signup (aT,aX) = {
301- let j = toBase58String(aR.caller.bytes)
302- let aY = T(j)
303- if ((aY == a))
304- then throw(((((("Referral invite needed. Current status: " + aY) + ", key:") + k(j)) + ", account:") + j))
305- else WriteSet([DataEntry(m(j), aT), DataEntry(n(j), height), DataEntry(k(j), if ((aX == ax))
299+@Callable(aS)
300+func signup (aU,aY) = {
301+ let j = toBase58String(aS.caller.bytes)
302+ let aZ = T(j)
303+ if ((aZ == a))
304+ then throw(((((("Referral invite needed. Current status: " + aZ) + ", key:") + k(j)) + ", account:") + j))
305+ else WriteSet([DataEntry(m(j), aU), DataEntry(n(j), height), DataEntry(k(j), if ((aY == ax))
306306 then ax
307307 else av)])
308308 }
309309
310310
311311
312-@Callable(aR)
313-func userupdate (aT,aX) = {
314- let j = toBase58String(aR.caller.bytes)
315- WriteSet([DataEntry(m(j), aT), DataEntry(k(j), if ((aX == ax))
312+@Callable(aS)
313+func userupdate (aU,aY) = {
314+ let j = toBase58String(aS.caller.bytes)
315+ WriteSet([DataEntry(m(j), aU), DataEntry(k(j), if ((aY == ax))
316316 then ax
317317 else av)])
318318 }
319319
320320
321321
322-@Callable(aR)
323-func projupdate (p,aT) = {
324- let j = toBase58String(aR.caller.bytes)
322+@Callable(aS)
323+func projupdate (p,aU) = {
324+ let j = toBase58String(aS.caller.bytes)
325325 if ((X(p) != j))
326326 then throw("You're not author")
327- else WriteSet([DataEntry(u(p), aT)])
327+ else WriteSet([DataEntry(u(p), aU)])
328328 }
329329
330330
331331
332-@Callable(aR)
333-func contestAddOrUpdate (p,aT) = {
334- let j = toBase58String(aR.caller.bytes)
335- if ((j != aK))
332+@Callable(aS)
333+func contestAddOrUpdate (p,aU) = {
334+ let j = toBase58String(aS.caller.bytes)
335+ if ((j != aL))
336336 then throw("You're not admin")
337- else WriteSet([DataEntry(v(p), aT)])
337+ else WriteSet([DataEntry(v(p), aU)])
338338 }
339339
340340
341341
342-@Callable(aR)
342+@Callable(aS)
343343 func withdraw () = {
344- let aZ = toBase58String(aR.caller.bytes)
345- let ba = U(aZ)
346- if ((0 >= ba))
344+ let ba = toBase58String(aS.caller.bytes)
345+ let bb = U(ba)
346+ if ((0 >= bb))
347347 then throw("Not enough balance")
348- else ScriptResult(WriteSet([DataEntry(l(aZ), 0)]), TransferSet([ScriptTransfer(aR.caller, ba, unit)]))
348+ else ScriptResult(WriteSet([DataEntry(l(ba), 0)]), TransferSet([ScriptTransfer(aS.caller, bb, unit)]))
349349 }
350350
351351
352352
353-@Callable(aR)
354-func additem (p,bb,bc,bd,aT) = {
355- let j = toBase58String(aR.caller.bytes)
356- let be = extract(aR.payment)
357- if (isDefined(be.assetId))
353+@Callable(aS)
354+func additem (p,bc,bd,be,aU) = {
355+ let j = toBase58String(aS.caller.bytes)
356+ let bf = extract(aS.payment)
357+ if (isDefined(bf.assetId))
358358 then throw("can use waves only at the moment")
359- else if ((be.amount != aO))
360- then throw(((("Please pay exact amount for the listing: " + toString(aO)) + ", actual payment is: ") + toString(be.amount)))
361- else if (!(if (if ((bb > 2))
362- then (bc > bb)
359+ else if ((bf.amount != aP))
360+ then throw(((("Please pay exact amount for the listing: " + toString(aP)) + ", actual payment is: ") + toString(bf.amount)))
361+ else if (!(if (if ((bc > 2))
362+ then (bd > bc)
363363 else false)
364- then (bd > bc)
364+ then (be > bd)
365365 else false))
366366 then throw("Incorrect time parameters")
367367 else if ((X(p) != a))
368368 then throw("Item already exist")
369- else WriteSet([DataEntry(o(p), j), DataEntry(q(p), height), DataEntry(r(p), (height + bb)), DataEntry(s(p), aO), DataEntry(t(p), ay), DataEntry(u(p), aT), DataEntry(w(p), (height + bc)), DataEntry(x(p), (height + bd))])
369+ else WriteSet([DataEntry(o(p), j), DataEntry(q(p), height), DataEntry(r(p), (height + bc)), DataEntry(s(p), aP), DataEntry(t(p), az), DataEntry(u(p), aU), DataEntry(w(p), (height + bd)), DataEntry(x(p), (height + be))])
370370 }
371371
372372
373373
374-@Callable(aR)
375-func votecommit (p,aW) = {
376- let j = toBase58String(aR.caller.bytes)
377- let bf = af(p)
378- let aY = ab(p)
379- let be = extract(aR.payment)
380- if (isDefined(be.assetId))
374+@Callable(aS)
375+func votecommit (p,aX) = {
376+ let j = toBase58String(aS.caller.bytes)
377+ let bg = af(p)
378+ let aZ = ab(p)
379+ let bf = extract(aS.payment)
380+ if (isDefined(bf.assetId))
381381 then throw("can use waves only at the moment")
382- else if ((be.amount != (2 * aP)))
382+ else if ((bf.amount != (2 * aQ)))
383383 then throw("Not enough funds to vote for a new item")
384384 else if ((height > Z(p)))
385385 then throw("The voting has expired")
386386 else if ((X(p) == j))
387387 then throw("Cannot vote for own proposal")
388- else if (if ((aY != ay))
389- then (aY != az)
388+ else if (if ((aZ != az))
389+ then (aZ != aA)
390390 else false)
391391 then throw("Wrong item status for 'commit' action")
392- else if ((bf >= aL))
392+ else if ((bg >= aM))
393393 then throw("No more voters for this item")
394394 else if ((ag(p, j) != a))
395395 then throw("Can't vote twice")
396- else WriteSet([DataEntry(t(p), if (((bf + 1) == aL))
397- then aA
398- else az), DataEntry(z(p, j), aW), DataEntry(y(p), (bf + 1))])
396+ else WriteSet([DataEntry(t(p), if (((bg + 1) == aM))
397+ then aB
398+ else aA), DataEntry(z(p, j), aX), DataEntry(y(p), (bg + 1))])
399399 }
400400
401401
402402
403-@Callable(aR)
404-func votereveal (p,bg,bh,bi) = {
405- let bj = toBase58String(sha256(toBytes((bg + bh))))
406- let j = toBase58String(aR.caller.bytes)
407- let bk = if ((bg == aB))
403+@Callable(aS)
404+func votereveal (p,bh,bi,bj) = {
405+ let bk = toBase58String(sha256(toBytes((bh + bi))))
406+ let j = toBase58String(aS.caller.bytes)
407+ let bl = if ((bh == aC))
408408 then 1
409409 else 0
410- let bl = if ((bg == aC))
410+ let bm = if ((bh == aD))
411411 then 1
412412 else 0
413- let bm = ai(p)
414- let bn = aj(p)
415- let aU = if ((bm >= aM))
416- then aB
417- else if ((bn >= aM))
418- then aC
419- else aA
420- if ((ag(p, j) != bj))
413+ let bn = ai(p)
414+ let bo = aj(p)
415+ let aV = if ((bn >= aN))
416+ then aC
417+ else if ((bo >= aN))
418+ then aD
419+ else aB
420+ if ((ag(p, j) != bk))
421421 then throw("Hashes don't match")
422422 else if ((height > Z(p)))
423423 then throw("The challenge has expired")
424- else if ((aL > af(p)))
424+ else if ((aM > af(p)))
425425 then throw("It's still commit stage")
426- else if (if ((ab(p) != aA))
427- then (ab(p) != aU)
426+ else if (if ((ab(p) != aB))
427+ then (ab(p) != aV)
428428 else false)
429429 then throw("Wrong item status for 'reveal' action")
430430 else if ((ah(p, j) != a))
431431 then throw("Can't vote twice")
432- else if (if ((bg != aB))
433- then (bg != aC)
432+ else if (if ((bh != aC))
433+ then (bh != aD)
434434 else false)
435435 then throw("Bad vote result format")
436- else ScriptResult(WriteSet([DataEntry(A(p, j), bg), DataEntry(B(p), (bm + bk)), DataEntry(C(p), (bn + bl)), DataEntry(t(p), aU), DataEntry(O(p, j), bi)]), TransferSet([ScriptTransfer(addressFromStringValue(j), aP, unit)]))
436+ else ScriptResult(WriteSet([DataEntry(A(p, j), bh), DataEntry(B(p), (bn + bl)), DataEntry(C(p), (bo + bm)), DataEntry(t(p), aV), DataEntry(O(p, j), bj)]), TransferSet([ScriptTransfer(addressFromStringValue(j), aQ, unit)]))
437437 }
438438
439439
440440
441-@Callable(aR)
441+@Callable(aS)
442442 func finalizevoting (p,j) = {
443- let bm = ai(p)
444- let bn = aj(p)
445- let bo = ah(p, j)
446- let bp = (j == X(p))
447- let bq = if ((bm > aM))
448- then aB
449- else if ((bn > aM))
450- then aC
443+ let bn = ai(p)
444+ let bo = aj(p)
445+ let bp = ah(p, j)
446+ let bq = (j == X(p))
447+ let br = if ((bn > aN))
448+ then aC
449+ else if ((bo > aN))
450+ then aD
451451 else a
452- let br = if (if ((bm == aL))
452+ let bs = if (if ((bn == aM))
453453 then true
454- else (bn == aL))
454+ else (bo == aM))
455455 then 0
456456 else 1
457- let bs = if ((bq == aB))
458- then bm
459- else if ((bq == aC))
460- then bn
457+ let bt = if ((br == aC))
458+ then bn
459+ else if ((br == aD))
460+ then bo
461461 else 0
462- let bt = (aL - bs)
463- let bu = if ((bq == bo))
462+ let bu = (aM - bt)
463+ let bv = if ((br == bp))
464464 then 1
465465 else 0
466- let bv = if ((bs == 0))
466+ let bw = if ((bt == 0))
467467 then 0
468- else (bu * (aP + ((br * ((bt * aP) + aO)) / bs)))
469- let bw = (((aO * (if (bp)
468+ else (bv * (aQ + ((bs * ((bu * aQ) + aP)) / bt)))
469+ let bx = (((aP * (if (bq)
470470 then 1
471- else 0)) * (if ((br == 1))
471+ else 0)) * (if ((bs == 1))
472472 then 0
473- else 1)) * (if ((bq == aB))
473+ else 1)) * (if ((br == aC))
474474 then 1
475475 else 0))
476476 if ((Z(p) > height))
477477 then throw("The voting hasn't finished yet")
478- else if ((ak(p, j) == aF))
478+ else if ((ak(p, j) == aG))
479479 then throw("Account has already claimed")
480- else if (if ((bo == a))
481- then !(bp)
480+ else if (if ((bp == a))
481+ then !(bq)
482482 else false)
483483 then throw("Account hasnot voted, hasnot reveal or isnot author")
484- else if ((bq == a))
484+ else if ((br == a))
485485 then throw("Voting has expired")
486- else ScriptResult(WriteSet([DataEntry(D(p, j), aF)]), TransferSet([ScriptTransfer(addressFromStringValue(j), (bv + bw), unit)]))
486+ else ScriptResult(WriteSet([DataEntry(D(p, j), aG)]), TransferSet([ScriptTransfer(addressFromStringValue(j), (bw + bx), unit)]))
487487 }
488488
489489
490490
491-@Callable(aR)
491+@Callable(aS)
492492 func closeexpiredvoting (p,j) = {
493- let bq = if ((ai(p) > aM))
494- then aB
495- else if ((aj(p) > aM))
496- then aC
493+ let br = if ((ai(p) > aN))
494+ then aC
495+ else if ((aj(p) > aN))
496+ then aD
497497 else a
498- let bo = ah(p, j)
499- let bp = (j == X(p))
500- let bx = ag(p, j)
501- let by = (af(p) == aL)
502- let bw = (aO * (if (bp)
498+ let bp = ah(p, j)
499+ let bq = (j == X(p))
500+ let by = ag(p, j)
501+ let bz = (af(p) == aM)
502+ let bx = (aP * (if (bq)
503503 then 1
504504 else 0))
505- let bz = ((aP * (if (by)
505+ let bA = ((aQ * (if (bz)
506506 then 1
507- else 0)) * (if ((bo != a))
507+ else 0)) * (if ((bp != a))
508508 then 1
509509 else 0))
510- let bA = (((2 * aP) * (if (by)
510+ let bB = (((2 * aQ) * (if (bz)
511511 then 0
512- else 1)) * (if ((bx != a))
512+ else 1)) * (if ((by != a))
513513 then 1
514514 else 0))
515515 if ((Z(p) > height))
516516 then throw("The voting hasn't finished yet")
517- else if (if (!(bp))
518- then (bx == a)
517+ else if (if (!(bq))
518+ then (by == a)
519519 else false)
520520 then throw("Wrong account or item")
521- else if ((ak(p, j) == aF))
521+ else if ((ak(p, j) == aG))
522522 then throw("Account has already claimed")
523- else if ((bq != a))
523+ else if ((br != a))
524524 then throw("Wrong item status")
525- else ScriptResult(WriteSet([DataEntry(D(p, j), aF)]), TransferSet([ScriptTransfer(addressFromStringValue(j), ((bw + bz) + bA), unit)]))
525+ else ScriptResult(WriteSet([DataEntry(D(p, j), aG)]), TransferSet([ScriptTransfer(addressFromStringValue(j), ((bx + bA) + bB), unit)]))
526526 }
527527
528528
529529
530-@Callable(aR)
531-func donate (p,bB,bC,bi) = {
532- let j = toBase58String(aR.caller.bytes)
533- let be = extract(aR.payment)
534- if (isDefined(be.assetId))
530+@Callable(aS)
531+func donate (p,bC,bD,bj) = {
532+ let j = toBase58String(aS.caller.bytes)
533+ let bf = extract(aS.payment)
534+ if (isDefined(bf.assetId))
535535 then throw("can use waves only at the moment")
536536 else {
537537 let L = (ap(p, j) + 1)
538- let bD = (am(p) + ((if ((bC == aI))
538+ let bE = (am(p) + ((if ((bD == aJ))
539539 then 1
540- else 0) * be.amount))
541- let bE = (al(p) + ((if ((bC == aH))
540+ else 0) * bf.amount))
541+ let bF = (al(p) + ((if ((bD == aI))
542542 then 1
543- else 0) * be.amount))
544- if ((ab(p) != aB))
543+ else 0) * bf.amount))
544+ if ((ab(p) != aC))
545545 then throw("The project hasn't accepted by community")
546546 else if ((height >= ad(p)))
547547 then throw("The time for crowdfunding has expired")
548- else if ((bD >= bE))
548+ else if ((bE >= bF))
549549 then throw("Negative fund can't be higher than positive fund")
550- else if (if ((bC != aH))
551- then (bC != aI)
550+ else if (if ((bD != aI))
551+ then (bD != aJ)
552552 else false)
553553 then throw("Wrong mode parameter")
554554 else if ((X(p) == j))
555555 then throw("Can't donate own project")
556- else if ((be.amount != aN[(bB - 1)]))
557- then throw(("The payment must be equal to tier amount: " + toString(aN[(bB - 1)])))
558- else WriteSet([DataEntry(I(p, j), L), DataEntry(G(p, j), (an(p, j) + ((if ((bC == aH))
556+ else if ((bf.amount != aO[(bC - 1)]))
557+ then throw(("The payment must be equal to tier amount: " + toString(aO[(bC - 1)])))
558+ else WriteSet([DataEntry(I(p, j), L), DataEntry(G(p, j), (an(p, j) + ((if ((bD == aI))
559559 then 1
560- else 0) * be.amount))), DataEntry(H(p, j), (ao(p, j) + ((if ((bC == aI))
560+ else 0) * bf.amount))), DataEntry(H(p, j), (ao(p, j) + ((if ((bD == aJ))
561561 then 1
562- else 0) * be.amount))), DataEntry(E(p), bE), DataEntry(F(p), bD), DataEntry(K(p, j, toString(L)), bi), DataEntry(M(p, j, toString(L)), bC), DataEntry(N(p, j, toString(L)), bB)])
562+ else 0) * bf.amount))), DataEntry(E(p), bF), DataEntry(F(p), bE), DataEntry(K(p, j, toString(L)), bj), DataEntry(M(p, j, toString(L)), bD), DataEntry(N(p, j, toString(L)), bC)])
563563 }
564564 }
565565
566566
567567
568-@Callable(aR)
569-func whale (p,bi) = {
570- let j = toBase58String(aR.caller.bytes)
571- let be = extract(aR.payment)
572- if (isDefined(be.assetId))
568+@Callable(aS)
569+func whale (p,bj) = {
570+ let j = toBase58String(aS.caller.bytes)
571+ let bf = extract(aS.payment)
572+ if (isDefined(bf.assetId))
573573 then throw("can use waves only at the moment")
574- else if ((ab(p) != aB))
574+ else if ((ab(p) != aC))
575575 then throw("The project hasn't accepted by community")
576576 else if ((ad(p) > height))
577577 then throw("The time for crowdfunding has not expired yet")
578578 else if ((height > ae(p)))
579579 then throw("The time for grant has expired")
580- else if ((ab(p) == aE))
580+ else if ((ab(p) == aF))
581581 then throw("Investement has already done")
582- else if ((((al(p) * aQ) / 100) > be.amount))
583- then throw((("Investement must be more than " + toString(aQ)) + "% of supportes funds"))
584- else WriteSet([DataEntry(t(p), aE), DataEntry(P(p, j), bi), DataEntry(l(X(p)), (U(X(p)) + al(p))), DataEntry(Q(p), be.amount)])
582+ else if ((((al(p) * aR) / 100) > bf.amount))
583+ then throw((("Investement must be more than " + toString(aR)) + "% of supportes funds"))
584+ else WriteSet([DataEntry(t(p), aF), DataEntry(P(p, j), bj), DataEntry(l(X(p)), (U(X(p)) + al(p))), DataEntry(Q(p), bf.amount)])
585585 }
586586
587587
588588
589-@Callable(aR)
589+@Callable(aS)
590590 func claimwinnings (p,j) = {
591- let aY = ab(p)
592- let bF = if ((aY == aE))
591+ let aZ = ab(p)
592+ let bG = if ((aZ == aF))
593593 then 1
594594 else 0
595- let bG = if ((aY != aE))
595+ let bH = if ((aZ != aF))
596596 then 1
597597 else 0
598- let bH = al(p)
599- let bI = am(p)
600- let bJ = (((bF * (an(p, j) * 100)) / (if ((0 >= bH))
598+ let bI = al(p)
599+ let bJ = am(p)
600+ let bK = (((bG * (an(p, j) * 100)) / (if ((0 >= bI))
601601 then 1
602- else bH)) + ((bG * (ao(p, j) * 100)) / (if ((0 >= bI))
602+ else bI)) + ((bH * (ao(p, j) * 100)) / (if ((0 >= bJ))
603603 then 1
604- else bI)))
605- let bK = ((bI * aQ) / 100)
606- let bL = ((bF * ((bJ * bI) / 100)) + (bG * ((bJ * (if ((bH > bK))
607- then bK
608- else bH)) / 100)))
609- let bM = (bF * ((bJ * at(p)) / 100))
610- let bN = (((if ((X(p) == j))
604+ else bJ)))
605+ let bL = ((bJ * aR) / 100)
606+ let bM = ((bG * ((bK * bJ) / 100)) + (bH * ((bK * (if ((bI > bL))
607+ then bL
608+ else bI)) / 100)))
609+ let bN = (bG * ((bK * at(p)) / 100))
610+ let bO = (((if ((X(p) == j))
611611 then 1
612- else 0) * bH) * (if ((aY != aE))
612+ else 0) * bI) * (if ((aZ != aF))
613613 then 1
614614 else 0))
615- if ((aY == aC))
615+ if ((aZ == aD))
616616 then throw("The project hasn't accepted by community")
617- else if (if ((aY != aE))
617+ else if (if ((aZ != aF))
618618 then (ae(p) >= height)
619619 else false)
620620 then throw("The time for grant has not expired yet")
621- else if ((0 >= (bH + bI)))
621+ else if ((0 >= (bI + bJ)))
622622 then throw("The campaign wasn't active")
623- else WriteSet([DataEntry(l(j), (((U(j) + bL) + bM) + bN)), DataEntry(t(p), if ((bN > 0))
624- then aD
625- else aY), DataEntry(D(p, j), aG)])
623+ else WriteSet([DataEntry(l(j), (((U(j) + bM) + bN) + bO)), DataEntry(t(p), if ((bO > 0))
624+ then aE
625+ else aZ), DataEntry(D(p, j), aH)])
626626 }
627627
628628

github/deemru/w8io/873ac7e 
165.85 ms