tx · qBZc8XWZyBsN2kUhygkHF9fc4GuZWGRbCKry6JHGfLk

3NBB3iv7YDRsD8ZM2Pw2V5eTcsfqh3j2mvF:  -0.01400000 Waves

2019.08.14 09:19 [630369] smart account 3NBB3iv7YDRsD8ZM2Pw2V5eTcsfqh3j2mvF > SELF 0.00000000 Waves

{ "type": 13, "id": "qBZc8XWZyBsN2kUhygkHF9fc4GuZWGRbCKry6JHGfLk", "fee": 1400000, "feeAssetId": null, "timestamp": 1565763541766, "version": 1, "sender": "3NBB3iv7YDRsD8ZM2Pw2V5eTcsfqh3j2mvF", "senderPublicKey": "9i5FpMUFCwhogG5euZDBZKV6NehQN4xX83qvNr8NWipE", "proofs": [ "47cpVMsR5KGgJ5aMyYeFokoeJL6mezXuz6QZ7ta3wVK51xrAQUNEkTkZhh6ZK7gePG7gUpx2VrVekyRDhhnvB4U5" ], "script": "base64:AAIDAAAAAAAAAAAAAABYAAAAAAROT05FAgAAAARub25lAQAAAA5nZXROdW1iZXJCeUtleQAAAAEAAAADa2V5BAAAAANudW0EAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAFAAAAA251bQEAAAALZ2V0U3RyQnlLZXkAAAABAAAAA2tleQQAAAADc3RyBAAAAAckbWF0Y2gwCQAEHQAAAAIFAAAABHRoaXMFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhBQAAAAROT05FBQAAAANzdHIBAAAAEmdldEtleVdoaXRlbGlzdFJlZgAAAAEAAAAHYWNjb3VudAkAASwAAAACAgAAAAd3bF9yZWZfBQAAAAdhY2NvdW50AQAAABVnZXRLZXlXaGl0ZWxpc3RTdGF0dXMAAAABAAAAB2FjY291bnQJAAEsAAAAAgIAAAAHd2xfc3RzXwUAAAAHYWNjb3VudAEAAAANZ2V0S2V5QmFsYW5jZQAAAAEAAAAHYWNjb3VudAkAASwAAAACAgAAAAhiYWxhbmNlXwUAAAAHYWNjb3VudAEAAAASZ2V0S2V5V2hpdGVsaXN0QmlvAAAAAQAAAAdhY2NvdW50CQABLAAAAAICAAAAB3dsX2Jpb18FAAAAB2FjY291bnQBAAAAFGdldEtleVdoaXRlbGlzdEJsb2NrAAAAAQAAAAdhY2NvdW50CQABLAAAAAICAAAAB3dsX2Jsa18FAAAAB2FjY291bnQBAAAAEGdldEtleUl0ZW1BdXRob3IAAAABAAAABGl0ZW0JAAEsAAAAAgIAAAAHYXV0aG9yXwUAAAAEaXRlbQEAAAAPZ2V0S2V5SXRlbUJsb2NrAAAAAQAAAARpdGVtCQABLAAAAAICAAAABmJsb2NrXwUAAAAEaXRlbQEAAAAaZ2V0S2V5SXRlbVZvdGluZ0V4cGlyYXRpb24AAAABAAAABGl0ZW0JAAEsAAAAAgIAAAARZXhwaXJhdGlvbl9ibG9ja18FAAAABGl0ZW0BAAAADmdldEtleUl0ZW1CYW5rAAAAAQAAAARpdGVtCQABLAAAAAICAAAABWJhbmtfBQAAAARpdGVtAQAAABBnZXRLZXlJdGVtU3RhdHVzAAAAAQAAAARpdGVtCQABLAAAAAICAAAAB3N0YXR1c18FAAAABGl0ZW0BAAAADmdldEtleUl0ZW1EYXRhAAAAAQAAAARpdGVtCQABLAAAAAICAAAACWRhdGFqc29uXwUAAAAEaXRlbQEAAAARZ2V0S2V5Q29udGVzdERhdGEAAAABAAAABGl0ZW0JAAEsAAAAAgIAAAARY29udGVzdF9kYXRhanNvbl8FAAAABGl0ZW0BAAAAGWdldEtleUl0ZW1Dcm93ZEV4cGlyYXRpb24AAAABAAAABGl0ZW0JAAEsAAAAAgIAAAAPZXhwaXJhdGlvbl9vbmVfBQAAAARpdGVtAQAAABlnZXRLZXlJdGVtV2hhbGVFeHBpcmF0aW9uAAAAAQAAAARpdGVtCQABLAAAAAICAAAAD2V4cGlyYXRpb25fdHdvXwUAAAAEaXRlbQEAAAASZ2V0S2V5SXRlbU5Db21taXRzAAAAAQAAAARpdGVtCQABLAAAAAICAAAACW5jb21taXRzXwUAAAAEaXRlbQEAAAAXZ2V0S2V5SXRlbUFjY1JlcG9ydERhdGEAAAACAAAABGl0ZW0AAAAHYWNjb3VudAkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAHcmVwb3J0XwUAAAAEaXRlbQIAAAABXwUAAAAHYWNjb3VudAEAAAATZ2V0S2V5SXRlbUFjY0NvbW1pdAAAAAIAAAAEaXRlbQAAAAdhY2NvdW50CQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAdjb21taXRfBQAAAARpdGVtAgAAAAFfBQAAAAdhY2NvdW50AQAAABNnZXRLZXlJdGVtQWNjUmV2ZWFsAAAAAgAAAARpdGVtAAAAB2FjY291bnQJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAB3JldmVhbF8FAAAABGl0ZW0CAAAAAV8FAAAAB2FjY291bnQBAAAAEmdldEtleUl0ZW1Wb3Rlc1llcwAAAAEAAAAEaXRlbQkAASwAAAACAgAAAAhjbnRfeWVzXwUAAAAEaXRlbQEAAAARZ2V0S2V5SXRlbVZvdGVzTm8AAAABAAAABGl0ZW0JAAEsAAAAAgIAAAAHY250X25vXwUAAAAEaXRlbQEAAAASZ2V0S2V5SXRlbUFjY0ZpbmFsAAAAAgAAAARpdGVtAAAAB2FjY291bnQJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAABmZpbmFsXwUAAAAEaXRlbQIAAAABXwUAAAAHYWNjb3VudAEAAAAWZ2V0S2V5SXRlbUZ1bmRQb3NpdGl2ZQAAAAEAAAAEaXRlbQkAASwAAAACAgAAAA5wb3NpdGl2ZV9mdW5kXwUAAAAEaXRlbQEAAAAWZ2V0S2V5SXRlbUZ1bmROZWdhdGl2ZQAAAAEAAAAEaXRlbQkAASwAAAACAgAAAA5uZWdhdGl2ZV9mdW5kXwUAAAAEaXRlbQEAAAAZZ2V0S2V5SXRlbUFjY0Z1bmRQb3NpdGl2ZQAAAAIAAAAEaXRlbQAAAAdhY2NvdW50CQABLAAAAAIJAAEsAAAAAgkBAAAAFmdldEtleUl0ZW1GdW5kUG9zaXRpdmUAAAABBQAAAARpdGVtAgAAAAFfBQAAAAdhY2NvdW50AQAAABlnZXRLZXlJdGVtQWNjRnVuZE5lZ2F0aXZlAAAAAgAAAARpdGVtAAAAB2FjY291bnQJAAEsAAAAAgkAASwAAAACCQEAAAAWZ2V0S2V5SXRlbUZ1bmROZWdhdGl2ZQAAAAEFAAAABGl0ZW0CAAAAAV8FAAAAB2FjY291bnQBAAAAF2dldEtleUl0ZW1BY2NSZXZpZXdzQ250AAAAAgAAAARpdGVtAAAAB2FjY291bnQJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAADHJldmlld3NfY250XwUAAAAEaXRlbQIAAAABXwUAAAAHYWNjb3VudAEAAAATZ2V0S2V5SXRlbUFjY1JldmlldwAAAAIAAAAEaXRlbQAAAAdhY2NvdW50CQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAdyZXZpZXdfBQAAAARpdGVtAgAAAAFfBQAAAAdhY2NvdW50AQAAABdnZXRLZXlJdGVtQWNjUmV2aWV3VGV4dAAAAAMAAAAEaXRlbQAAAAdhY2NvdW50AAAAA2NudAkAASwAAAACCQABLAAAAAIJAQAAABNnZXRLZXlJdGVtQWNjUmV2aWV3AAAAAgUAAAAEaXRlbQUAAAAHYWNjb3VudAIAAAAJX3RleHRfaWQ6BQAAAANjbnQBAAAAF2dldEtleUl0ZW1BY2NSZXZpZXdNb2RlAAAAAwAAAARpdGVtAAAAB2FjY291bnQAAAADY250CQABLAAAAAIJAAEsAAAAAgkBAAAAE2dldEtleUl0ZW1BY2NSZXZpZXcAAAACBQAAAARpdGVtBQAAAAdhY2NvdW50AgAAAAlfbW9kZV9pZDoFAAAAA2NudAEAAAAXZ2V0S2V5SXRlbUFjY1Jldmlld1RpZXIAAAADAAAABGl0ZW0AAAAHYWNjb3VudAAAAANjbnQJAAEsAAAAAgkAASwAAAACCQEAAAATZ2V0S2V5SXRlbUFjY1JldmlldwAAAAIFAAAABGl0ZW0FAAAAB2FjY291bnQCAAAACV90aWVyX2lkOgUAAAADY250AQAAABtnZXRLZXlJdGVtQWNjVm90ZVJldmlld1RleHQAAAACAAAABGl0ZW0AAAAHYWNjb3VudAkAASwAAAACCQEAAAATZ2V0S2V5SXRlbUFjY1JldmlldwAAAAIFAAAABGl0ZW0FAAAAB2FjY291bnQCAAAAC192b3RlcmV2aWV3AQAAABxnZXRLZXlJdGVtQWNjV2hhbGVSZXZpZXdUZXh0AAAAAgAAAARpdGVtAAAAB2FjY291bnQJAAEsAAAAAgkBAAAAE2dldEtleUl0ZW1BY2NSZXZpZXcAAAACBQAAAARpdGVtBQAAAAdhY2NvdW50AgAAAAxfd2hhbGVyZXZpZXcBAAAAFmdldEtleUl0ZW1CdXlvdXRBbW91bnQAAAABAAAABGl0ZW0JAAEsAAAAAgIAAAAOYnV5b3V0X2Ftb3VudF8FAAAABGl0ZW0BAAAAFWdldEtleUl0ZW1BY2NXaW5uaW5ncwAAAAIAAAAEaXRlbQAAAAdhY2NvdW50CQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAl3aW5uaW5nc18FAAAABGl0ZW0CAAAAAV8FAAAAB2FjY291bnQBAAAAFGdldFZhbHVlV2hpdGVsaXN0UmVmAAAAAQAAAAdhY2NvdW50CQEAAAALZ2V0U3RyQnlLZXkAAAABCQEAAAASZ2V0S2V5V2hpdGVsaXN0UmVmAAAAAQUAAAAHYWNjb3VudAEAAAAXZ2V0VmFsdWVXaGl0ZWxpc3RTdGF0dXMAAAABAAAAB2FjY291bnQJAQAAAAtnZXRTdHJCeUtleQAAAAEJAQAAABVnZXRLZXlXaGl0ZWxpc3RTdGF0dXMAAAABBQAAAAdhY2NvdW50AQAAAA9nZXRWYWx1ZUJhbGFuY2UAAAABAAAAB2FjY291bnQJAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAAA1nZXRLZXlCYWxhbmNlAAAAAQUAAAAHYWNjb3VudAEAAAAUZ2V0VmFsdWVXaGl0ZWxpc3RCaW8AAAABAAAAB2FjY291bnQJAQAAAAtnZXRTdHJCeUtleQAAAAEJAQAAABJnZXRLZXlXaGl0ZWxpc3RCaW8AAAABBQAAAAdhY2NvdW50AQAAABZnZXRWYWx1ZVdoaXRlbGlzdEJsb2NrAAAAAQAAAAdhY2NvdW50CQEAAAALZ2V0U3RyQnlLZXkAAAABCQEAAAAUZ2V0S2V5V2hpdGVsaXN0QmxvY2sAAAABBQAAAAdhY2NvdW50AQAAABJnZXRWYWx1ZUl0ZW1BdXRob3IAAAABAAAABGl0ZW0JAQAAAAtnZXRTdHJCeUtleQAAAAEJAQAAABBnZXRLZXlJdGVtQXV0aG9yAAAAAQUAAAAEaXRlbQEAAAARZ2V0VmFsdWVJdGVtQmxvY2sAAAABAAAABGl0ZW0JAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAAA9nZXRLZXlJdGVtQmxvY2sAAAABBQAAAARpdGVtAQAAABxnZXRWYWx1ZUl0ZW1Wb3RpbmdFeHBpcmF0aW9uAAAAAQAAAARpdGVtCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAaZ2V0S2V5SXRlbVZvdGluZ0V4cGlyYXRpb24AAAABBQAAAARpdGVtAQAAABBnZXRWYWx1ZUl0ZW1CYW5rAAAAAQAAAARpdGVtCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAOZ2V0S2V5SXRlbUJhbmsAAAABBQAAAARpdGVtAQAAABJnZXRWYWx1ZUl0ZW1TdGF0dXMAAAABAAAABGl0ZW0JAQAAAAtnZXRTdHJCeUtleQAAAAEJAQAAABBnZXRLZXlJdGVtU3RhdHVzAAAAAQUAAAAEaXRlbQEAAAAQZ2V0VmFsdWVJdGVtRGF0YQAAAAEAAAAEaXRlbQkBAAAAC2dldFN0ckJ5S2V5AAAAAQkBAAAADmdldEtleUl0ZW1EYXRhAAAAAQUAAAAEaXRlbQEAAAAbZ2V0VmFsdWVJdGVtQ3Jvd2RFeHBpcmF0aW9uAAAAAQAAAARpdGVtCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAZZ2V0S2V5SXRlbUNyb3dkRXhwaXJhdGlvbgAAAAEFAAAABGl0ZW0BAAAAG2dldFZhbHVlSXRlbVdoYWxlRXhwaXJhdGlvbgAAAAEAAAAEaXRlbQkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAGWdldEtleUl0ZW1XaGFsZUV4cGlyYXRpb24AAAABBQAAAARpdGVtAQAAABRnZXRWYWx1ZUl0ZW1OQ29tbWl0cwAAAAEAAAAEaXRlbQkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAEmdldEtleUl0ZW1OQ29tbWl0cwAAAAEFAAAABGl0ZW0BAAAAFWdldFZhbHVlSXRlbUFjY0NvbW1pdAAAAAIAAAAEaXRlbQAAAAdhY2NvdW50CQEAAAALZ2V0U3RyQnlLZXkAAAABCQEAAAATZ2V0S2V5SXRlbUFjY0NvbW1pdAAAAAIFAAAABGl0ZW0FAAAAB2FjY291bnQBAAAAFWdldFZhbHVlSXRlbUFjY1JldmVhbAAAAAIAAAAEaXRlbQAAAAdhY2NvdW50CQEAAAALZ2V0U3RyQnlLZXkAAAABCQEAAAATZ2V0S2V5SXRlbUFjY1JldmVhbAAAAAIFAAAABGl0ZW0FAAAAB2FjY291bnQBAAAAFGdldFZhbHVlSXRlbVZvdGVzWWVzAAAAAQAAAARpdGVtCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAASZ2V0S2V5SXRlbVZvdGVzWWVzAAAAAQUAAAAEaXRlbQEAAAATZ2V0VmFsdWVJdGVtVm90ZXNObwAAAAEAAAAEaXRlbQkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAEWdldEtleUl0ZW1Wb3Rlc05vAAAAAQUAAAAEaXRlbQEAAAAUZ2V0VmFsdWVJdGVtQWNjRmluYWwAAAACAAAABGl0ZW0AAAAHYWNjb3VudAkBAAAAC2dldFN0ckJ5S2V5AAAAAQkBAAAAEmdldEtleUl0ZW1BY2NGaW5hbAAAAAIFAAAABGl0ZW0FAAAAB2FjY291bnQBAAAAGGdldFZhbHVlSXRlbUZ1bmRQb3NpdGl2ZQAAAAEAAAAEaXRlbQkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAFmdldEtleUl0ZW1GdW5kUG9zaXRpdmUAAAABBQAAAARpdGVtAQAAABhnZXRWYWx1ZUl0ZW1GdW5kTmVnYXRpdmUAAAABAAAABGl0ZW0JAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAABZnZXRLZXlJdGVtRnVuZE5lZ2F0aXZlAAAAAQUAAAAEaXRlbQEAAAAbZ2V0VmFsdWVJdGVtQWNjRnVuZFBvc2l0aXZlAAAAAgAAAARpdGVtAAAAB2FjY291bnQJAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAABlnZXRLZXlJdGVtQWNjRnVuZFBvc2l0aXZlAAAAAgUAAAAEaXRlbQUAAAAHYWNjb3VudAEAAAAbZ2V0VmFsdWVJdGVtQWNjRnVuZE5lZ2F0aXZlAAAAAgAAAARpdGVtAAAAB2FjY291bnQJAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAABlnZXRLZXlJdGVtQWNjRnVuZE5lZ2F0aXZlAAAAAgUAAAAEaXRlbQUAAAAHYWNjb3VudAEAAAAZZ2V0VmFsdWVJdGVtQWNjUmV2aWV3c0NudAAAAAIAAAAEaXRlbQAAAAdhY2NvdW50CQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAXZ2V0S2V5SXRlbUFjY1Jldmlld3NDbnQAAAACBQAAAARpdGVtBQAAAAdhY2NvdW50AQAAABlnZXRWYWx1ZUl0ZW1BY2NSZXZpZXdUZXh0AAAAAwAAAARpdGVtAAAAB2FjY291bnQAAAADY250CQEAAAALZ2V0U3RyQnlLZXkAAAABCQEAAAAXZ2V0S2V5SXRlbUFjY1Jldmlld1RleHQAAAADBQAAAARpdGVtBQAAAAdhY2NvdW50BQAAAANjbnQBAAAAGWdldFZhbHVlSXRlbUFjY1Jldmlld01vZGUAAAADAAAABGl0ZW0AAAAHYWNjb3VudAAAAANjbnQJAQAAAAtnZXRTdHJCeUtleQAAAAEJAQAAABdnZXRLZXlJdGVtQWNjUmV2aWV3TW9kZQAAAAMFAAAABGl0ZW0FAAAAB2FjY291bnQFAAAAA2NudAEAAAAZZ2V0VmFsdWVJdGVtQWNjUmV2aWV3VGllcgAAAAMAAAAEaXRlbQAAAAdhY2NvdW50AAAAA2NudAkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAF2dldEtleUl0ZW1BY2NSZXZpZXdUaWVyAAAAAwUAAAAEaXRlbQUAAAAHYWNjb3VudAUAAAADY250AQAAABhnZXRWYWx1ZUl0ZW1CdXlvdXRBbW91bnQAAAABAAAABGl0ZW0JAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAABZnZXRLZXlJdGVtQnV5b3V0QW1vdW50AAAAAQUAAAAEaXRlbQEAAAAXZ2V0VmFsdWVJdGVtQWNjV2lubmluZ3MAAAACAAAABGl0ZW0AAAAHYWNjb3VudAkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAFWdldEtleUl0ZW1BY2NXaW5uaW5ncwAAAAIFAAAABGl0ZW0FAAAAB2FjY291bnQAAAAAC1dISVRFTElTVEVEAgAAAApyZWdpc3RlcmVkAAAAAAdJTlZJVEVEAgAAAAdpbnZpdGVkAAAAAAVXSEFMRQIAAAAFd2hhbGUAAAAAC1NQRU5ESU5WSVRFAgAAAAxzcGVuZF9pbnZpdGUAAAAABkNPTU1JVAIAAAANdm90aW5nX2NvbW1pdAAAAAAGUkVWRUFMAgAAAA12b3RpbmdfcmV2ZWFsAAAAAAhGRUFUVVJFRAIAAAAIZmVhdHVyZWQAAAAACERFTElTVEVEAgAAAAhkZWxpc3RlZAAAAAAHQ0FTSE9VVAIAAAAHY2FzaG91dAAAAAAGQlVZT1VUAgAAAAZidXlvdXQAAAAACEZJTklTSEVEAgAAAAhmaW5pc2hlZAAAAAAHQ0xBSU1FRAIAAAAHY2xhaW1lZAAAAAAIUE9TSVRJVkUCAAAACHBvc2l0aXZlAAAAAAhORUdBVElWRQIAAAAIbmVnYXRpdmUAAAAAB0dFTkVTSVMCAAAAIzNQOEZ2eTF5RHdOSHZWcmFiZTRlazViOWRBd3hGakRLVjdSAAAAAAVBRE1JTgIAAAAjM013TVIxWkZmeTcxMnRySFZMaXNpelltdlJRd3NnOHo5Qm4AAAAABlZPVEVSUwAAAAAAAAAAAwAAAAAGUVVPUlVNAAAAAAAAAAACAAAAAAVUSUVSUwkABEwAAAAC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", "chainId": 84, "height": 630369, "spentComplexity": 0 } View: original | compacted Prev: GKqtaUb3TKEsN6PYdrMLMHbpkeonLC14NEvikfQ9dyuo Next: GaDrKbipb4oa46YZHzDvYC4jR18xaTTneDtPDwXM1JZJ Diff:
OldNewDifferences
7676 func y (p) = ("ncommits_" + p)
7777
7878
79-func z (p,j) = ((("commit_" + p) + "_") + j)
79+func z (p,j) = ((("report_" + p) + "_") + j)
8080
8181
82-func A (p,j) = ((("reveal_" + p) + "_") + j)
82+func A (p,j) = ((("commit_" + p) + "_") + j)
8383
8484
85-func B (p) = ("cnt_yes_" + p)
85+func B (p,j) = ((("reveal_" + p) + "_") + j)
8686
8787
88-func C (p) = ("cnt_no_" + p)
88+func C (p) = ("cnt_yes_" + p)
8989
9090
91-func D (p,j) = ((("final_" + p) + "_") + j)
91+func D (p) = ("cnt_no_" + p)
9292
9393
94-func E (p) = ("positive_fund_" + p)
94+func E (p,j) = ((("final_" + p) + "_") + j)
9595
9696
97-func F (p) = ("negative_fund_" + p)
97+func F (p) = ("positive_fund_" + p)
9898
9999
100-func G (p,j) = ((E(p) + "_") + j)
100+func G (p) = ("negative_fund_" + p)
101101
102102
103103 func H (p,j) = ((F(p) + "_") + j)
104104
105105
106-func I (p,j) = ((("reviews_cnt_" + p) + "_") + j)
106+func I (p,j) = ((G(p) + "_") + j)
107107
108108
109-func J (p,j) = ((("review_" + p) + "_") + j)
109+func J (p,j) = ((("reviews_cnt_" + p) + "_") + j)
110110
111111
112-func K (p,j,L) = ((J(p, j) + "_text_id:") + L)
112+func K (p,j) = ((("review_" + p) + "_") + j)
113113
114114
115-func M (p,j,L) = ((J(p, j) + "_mode_id:") + L)
115+func L (p,j,M) = ((K(p, j) + "_text_id:") + M)
116116
117117
118-func N (p,j,L) = ((J(p, j) + "_tier_id:") + L)
118+func N (p,j,M) = ((K(p, j) + "_mode_id:") + M)
119119
120120
121-func O (p,j) = (J(p, j) + "_votereview")
121+func O (p,j,M) = ((K(p, j) + "_tier_id:") + M)
122122
123123
124-func P (p,j) = (J(p, j) + "_whalereview")
124+func P (p,j) = (K(p, j) + "_votereview")
125125
126126
127-func Q (p) = ("buyout_amount_" + p)
127+func Q (p,j) = (K(p, j) + "_whalereview")
128128
129129
130-func R (p,j) = ((("winnings_" + p) + "_") + j)
130+func R (p) = ("buyout_amount_" + p)
131131
132132
133-func S (j) = g(i(j))
133+func S (p,j) = ((("winnings_" + p) + "_") + j)
134134
135135
136-func T (j) = g(k(j))
136+func T (j) = g(i(j))
137137
138138
139-func U (j) = b(l(j))
139+func U (j) = g(k(j))
140140
141141
142-func V (j) = g(m(j))
142+func V (j) = b(l(j))
143143
144144
145-func W (j) = g(n(j))
145+func W (j) = g(m(j))
146146
147147
148-func X (p) = g(o(p))
148+func X (j) = g(n(j))
149149
150150
151-func Y (p) = b(q(p))
151+func Y (p) = g(o(p))
152152
153153
154-func Z (p) = b(r(p))
154+func Z (p) = b(q(p))
155155
156156
157-func aa (p) = b(s(p))
157+func aa (p) = b(r(p))
158158
159159
160-func ab (p) = g(t(p))
160+func ab (p) = b(s(p))
161161
162162
163-func ac (p) = g(u(p))
163+func ac (p) = g(t(p))
164164
165165
166-func ad (p) = b(w(p))
166+func ad (p) = g(u(p))
167167
168168
169-func ae (p) = b(x(p))
169+func ae (p) = b(w(p))
170170
171171
172-func af (p) = b(y(p))
172+func af (p) = b(x(p))
173173
174174
175-func ag (p,j) = g(z(p, j))
175+func ag (p) = b(y(p))
176176
177177
178178 func ah (p,j) = g(A(p, j))
179179
180180
181-func ai (p) = b(B(p))
181+func ai (p,j) = g(B(p, j))
182182
183183
184184 func aj (p) = b(C(p))
185185
186186
187-func ak (p,j) = g(D(p, j))
187+func ak (p) = b(D(p))
188188
189189
190-func al (p) = b(E(p))
190+func al (p,j) = g(E(p, j))
191191
192192
193193 func am (p) = b(F(p))
194194
195195
196-func an (p,j) = b(G(p, j))
196+func an (p) = b(G(p))
197197
198198
199199 func ao (p,j) = b(H(p, j))
202202 func ap (p,j) = b(I(p, j))
203203
204204
205-func aq (p,j,L) = g(K(p, j, L))
205+func aq (p,j) = b(J(p, j))
206206
207207
208-func ar (p,j,L) = g(M(p, j, L))
208+func ar (p,j,M) = g(L(p, j, M))
209209
210210
211-func as (p,j,L) = b(N(p, j, L))
211+func as (p,j,M) = g(N(p, j, M))
212212
213213
214-func at (p) = b(Q(p))
214+func at (p,j,M) = b(O(p, j, M))
215215
216216
217-func au (p,j) = b(R(p, j))
217+func au (p) = b(R(p))
218218
219219
220-let av = "registered"
220+func av (p,j) = b(S(p, j))
221221
222-let aw = "invited"
223222
224-let ax = "whale"
223+let aw = "registered"
225224
226-let ay = "spend_invite"
225+let ax = "invited"
227226
228-let az = "new"
227+let ay = "whale"
228+
229+let az = "spend_invite"
229230
230231 let aA = "voting_commit"
231232
266267 @Callable(aS)
267268 func inviteuser (aT,aU) = {
268269 let j = toBase58String(aS.caller.bytes)
269- let aV = T(aT)
270- let aW = T(j)
271- if (if ((aV == av))
270+ let aV = U(aT)
271+ let aW = U(j)
272+ if (if ((aV == aw))
272273 then true
273- else (aV == ax))
274+ else (aV == ay))
274275 then throw("User has already been registered")
275- else if (if (if ((aW != av))
276+ else if (if (if ((aW != aw))
276277 then (j != aK)
277278 else false)
278- then (aW != ax)
279+ then (aW != ay)
279280 else false)
280281 then throw(("Your account should be whitelisted. status: " + aW))
281- else WriteSet([DataEntry(i(aT), j), DataEntry(m(aT), aU), DataEntry(k(aT), aw)])
282+ else WriteSet([DataEntry(i(aT), j), DataEntry(m(aT), aU), DataEntry(k(aT), ax)])
282283 }
283284
284285
286287 @Callable(aS)
287288 func signupbylink (aX,aU,aY) = {
288289 let j = toBase58String(aS.caller.bytes)
289- let aZ = T(aX)
290- if ((aZ != aw))
290+ let aZ = U(aX)
291+ if ((aZ != ax))
291292 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))
293- then ax
294- else av), DataEntry(k(aX), ay), DataEntry(i(j), S(aX))])
293+ else WriteSet([DataEntry(m(j), aU), DataEntry(n(j), height), DataEntry(k(j), if ((aY == ay))
294+ then ay
295+ else aw), DataEntry(k(aX), az), DataEntry(i(j), T(aX))])
295296 }
296297
297298
299300 @Callable(aS)
300301 func signup (aU,aY) = {
301302 let j = toBase58String(aS.caller.bytes)
302- let aZ = T(j)
303+ let aZ = U(j)
303304 if ((aZ == a))
304305 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))
306- then ax
307- else av)])
306+ else WriteSet([DataEntry(m(j), aU), DataEntry(n(j), height), DataEntry(k(j), if ((aY == ay))
307+ then ay
308+ else aw)])
308309 }
309310
310311
312313 @Callable(aS)
313314 func userupdate (aU,aY) = {
314315 let j = toBase58String(aS.caller.bytes)
315- WriteSet([DataEntry(m(j), aU), DataEntry(k(j), if ((aY == ax))
316- then ax
317- else av)])
316+ WriteSet([DataEntry(m(j), aU), DataEntry(k(j), if ((aY == ay))
317+ then ay
318+ else aw)])
318319 }
319320
320321
322323 @Callable(aS)
323324 func projupdate (p,aU) = {
324325 let j = toBase58String(aS.caller.bytes)
325- if ((X(p) != j))
326+ if ((Y(p) != j))
326327 then throw("You're not author")
327328 else WriteSet([DataEntry(u(p), aU)])
328329 }
342343 @Callable(aS)
343344 func withdraw () = {
344345 let ba = toBase58String(aS.caller.bytes)
345- let bb = U(ba)
346+ let bb = V(ba)
346347 if ((0 >= bb))
347348 then throw("Not enough balance")
348349 else ScriptResult(WriteSet([DataEntry(l(ba), 0)]), TransferSet([ScriptTransfer(aS.caller, bb, unit)]))
364365 then (be > bd)
365366 else false))
366367 then throw("Incorrect time parameters")
367- else if ((X(p) != a))
368+ else if ((Y(p) != a))
368369 then throw("Item already exist")
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))])
370+ else WriteSet([DataEntry(o(p), j), DataEntry(q(p), height), DataEntry(r(p), (height + bc)), DataEntry(s(p), aP), DataEntry(t(p), aC), DataEntry(u(p), aU), DataEntry(w(p), (height + bd)), DataEntry(x(p), (height + be))])
370371 }
371372
372373
373374
374375 @Callable(aS)
375-func votecommit (p,aX) = {
376+func reportProject (p,aU) = {
376377 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))
381- then throw("can use waves only at the moment")
382- else if ((bf.amount != (2 * aQ)))
383- then throw("Not enough funds to vote for a new item")
384- else if ((height > Z(p)))
385- then throw("The voting has expired")
386- else if ((X(p) == j))
387- then throw("Cannot vote for own proposal")
388- else if (if ((aZ != az))
389- then (aZ != aA)
390- else false)
391- then throw("Wrong item status for 'commit' action")
392- else if ((bg >= aM))
393- then throw("No more voters for this item")
394- else if ((ag(p, j) != a))
395- then throw("Can't vote twice")
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))])
378+ WriteSet([DataEntry(z(p, j), aU)])
399379 }
400380
401381
402382
403383 @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))
408- then 1
409- else 0
410- let bm = if ((bh == aD))
411- then 1
412- else 0
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))
421- then throw("Hashes don't match")
422- else if ((height > Z(p)))
423- then throw("The challenge has expired")
424- else if ((aM > af(p)))
425- then throw("It's still commit stage")
426- else if (if ((ab(p) != aB))
427- then (ab(p) != aV)
428- else false)
429- then throw("Wrong item status for 'reveal' action")
430- else if ((ah(p, j) != a))
431- then throw("Can't vote twice")
432- else if (if ((bh != aC))
433- then (bh != aD)
434- else false)
435- then throw("Bad vote result format")
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)]))
437- }
438-
439-
440-
441-@Callable(aS)
442-func finalizevoting (p,j) = {
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
451- else a
452- let bs = if (if ((bn == aM))
453- then true
454- else (bo == aM))
455- then 0
456- else 1
457- let bt = if ((br == aC))
458- then bn
459- else if ((br == aD))
460- then bo
461- else 0
462- let bu = (aM - bt)
463- let bv = if ((br == bp))
464- then 1
465- else 0
466- let bw = if ((bt == 0))
467- then 0
468- else (bv * (aQ + ((bs * ((bu * aQ) + aP)) / bt)))
469- let bx = (((aP * (if (bq)
470- then 1
471- else 0)) * (if ((bs == 1))
472- then 0
473- else 1)) * (if ((br == aC))
474- then 1
475- else 0))
476- if ((Z(p) > height))
477- then throw("The voting hasn't finished yet")
478- else if ((ak(p, j) == aG))
479- then throw("Account has already claimed")
480- else if (if ((bp == a))
481- then !(bq)
482- else false)
483- then throw("Account hasnot voted, hasnot reveal or isnot author")
484- else if ((br == a))
485- then throw("Voting has expired")
486- else ScriptResult(WriteSet([DataEntry(D(p, j), aG)]), TransferSet([ScriptTransfer(addressFromStringValue(j), (bw + bx), unit)]))
487- }
488-
489-
490-
491-@Callable(aS)
492-func closeexpiredvoting (p,j) = {
493- let br = if ((ai(p) > aN))
494- then aC
495- else if ((aj(p) > aN))
496- then aD
497- else a
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)
503- then 1
504- else 0))
505- let bA = ((aQ * (if (bz)
506- then 1
507- else 0)) * (if ((bp != a))
508- then 1
509- else 0))
510- let bB = (((2 * aQ) * (if (bz)
511- then 0
512- else 1)) * (if ((by != a))
513- then 1
514- else 0))
515- if ((Z(p) > height))
516- then throw("The voting hasn't finished yet")
517- else if (if (!(bq))
518- then (by == a)
519- else false)
520- then throw("Wrong account or item")
521- else if ((ak(p, j) == aG))
522- then throw("Account has already claimed")
523- else if ((br != a))
524- then throw("Wrong item status")
525- else ScriptResult(WriteSet([DataEntry(D(p, j), aG)]), TransferSet([ScriptTransfer(addressFromStringValue(j), ((bx + bA) + bB), unit)]))
526- }
527-
528-
529-
530-@Callable(aS)
531-func donate (p,bC,bD,bj) = {
384+func donate (p,bg,bh,bi) = {
532385 let j = toBase58String(aS.caller.bytes)
533386 let bf = extract(aS.payment)
534387 if (isDefined(bf.assetId))
535388 then throw("can use waves only at the moment")
536389 else {
537- let L = (ap(p, j) + 1)
538- let bE = (am(p) + ((if ((bD == aJ))
390+ let M = (aq(p, j) + 1)
391+ let bj = (an(p) + ((if ((bh == aJ))
539392 then 1
540393 else 0) * bf.amount))
541- let bF = (al(p) + ((if ((bD == aI))
394+ let bk = (am(p) + ((if ((bh == aI))
542395 then 1
543396 else 0) * bf.amount))
544- if ((ab(p) != aC))
397+ if ((ac(p) != aC))
545398 then throw("The project hasn't accepted by community")
546- else if ((height >= ad(p)))
399+ else if ((height >= ae(p)))
547400 then throw("The time for crowdfunding has expired")
548- else if ((bE >= bF))
401+ else if ((bj >= bk))
549402 then throw("Negative fund can't be higher than positive fund")
550- else if (if ((bD != aI))
551- then (bD != aJ)
403+ else if (if ((bh != aI))
404+ then (bh != aJ)
552405 else false)
553406 then throw("Wrong mode parameter")
554- else if ((X(p) == j))
407+ else if ((Y(p) == j))
555408 then throw("Can't donate own project")
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))
409+ else if ((bf.amount != aO[(bg - 1)]))
410+ then throw(("The payment must be equal to tier amount: " + toString(aO[(bg - 1)])))
411+ else WriteSet([DataEntry(J(p, j), M), DataEntry(H(p, j), (ao(p, j) + ((if ((bh == aI))
559412 then 1
560- else 0) * bf.amount))), DataEntry(H(p, j), (ao(p, j) + ((if ((bD == aJ))
413+ else 0) * bf.amount))), DataEntry(I(p, j), (ap(p, j) + ((if ((bh == aJ))
561414 then 1
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)])
415+ else 0) * bf.amount))), DataEntry(F(p), bk), DataEntry(G(p), bj), DataEntry(L(p, j, toString(M)), bi), DataEntry(N(p, j, toString(M)), bh), DataEntry(O(p, j, toString(M)), bg)])
563416 }
564417 }
565418
566419
567420
568421 @Callable(aS)
569-func whale (p,bj) = {
422+func whale (p,bi) = {
570423 let j = toBase58String(aS.caller.bytes)
571424 let bf = extract(aS.payment)
572425 if (isDefined(bf.assetId))
573426 then throw("can use waves only at the moment")
574- else if ((ab(p) != aC))
427+ else if ((ac(p) != aC))
575428 then throw("The project hasn't accepted by community")
576- else if ((ad(p) > height))
429+ else if ((ae(p) > height))
577430 then throw("The time for crowdfunding has not expired yet")
578- else if ((height > ae(p)))
431+ else if ((height > af(p)))
579432 then throw("The time for grant has expired")
580- else if ((ab(p) == aF))
433+ else if ((ac(p) == aF))
581434 then throw("Investement has already done")
582- else if ((((al(p) * aR) / 100) > bf.amount))
435+ else if ((((am(p) * aR) / 100) > bf.amount))
583436 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)])
437+ else WriteSet([DataEntry(t(p), aF), DataEntry(Q(p, j), bi), DataEntry(l(Y(p)), (V(Y(p)) + am(p))), DataEntry(R(p), bf.amount)])
585438 }
586439
587440
588441
589442 @Callable(aS)
590443 func claimwinnings (p,j) = {
591- let aZ = ab(p)
592- let bG = if ((aZ == aF))
444+ let aZ = ac(p)
445+ let bl = if ((aZ == aF))
593446 then 1
594447 else 0
595- let bH = if ((aZ != aF))
448+ let bm = if ((aZ != aF))
596449 then 1
597450 else 0
598- let bI = al(p)
599- let bJ = am(p)
600- let bK = (((bG * (an(p, j) * 100)) / (if ((0 >= bI))
451+ let bn = am(p)
452+ let bo = an(p)
453+ let bp = (((bl * (ao(p, j) * 100)) / (if ((0 >= bn))
601454 then 1
602- else bI)) + ((bH * (ao(p, j) * 100)) / (if ((0 >= bJ))
455+ else bn)) + ((bm * (ap(p, j) * 100)) / (if ((0 >= bo))
603456 then 1
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))
457+ else bo)))
458+ let bq = ((bo * aR) / 100)
459+ let br = ((bl * ((bp * bo) / 100)) + (bm * ((bp * (if ((bn > bq))
460+ then bq
461+ else bn)) / 100)))
462+ let bs = (bl * ((bp * au(p)) / 100))
463+ let bt = (((if ((Y(p) == j))
611464 then 1
612- else 0) * bI) * (if ((aZ != aF))
465+ else 0) * bn) * (if ((aZ != aF))
613466 then 1
614467 else 0))
615468 if ((aZ == aD))
616469 then throw("The project hasn't accepted by community")
617470 else if (if ((aZ != aF))
618- then (ae(p) >= height)
471+ then (af(p) >= height)
619472 else false)
620473 then throw("The time for grant has not expired yet")
621- else if ((0 >= (bI + bJ)))
474+ else if ((0 >= (bn + bo)))
622475 then throw("The campaign wasn't active")
623- else WriteSet([DataEntry(l(j), (((U(j) + bM) + bN) + bO)), DataEntry(t(p), if ((bO > 0))
476+ else WriteSet([DataEntry(l(j), (((V(j) + br) + bs) + bt)), DataEntry(t(p), if ((bt > 0))
624477 then aE
625- else aZ), DataEntry(D(p, j), aH)])
478+ else aZ), DataEntry(E(p, j), aH)])
626479 }
627480
628481
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
79-func z (p,j) = ((("commit_" + p) + "_") + j)
79+func z (p,j) = ((("report_" + p) + "_") + j)
8080
8181
82-func A (p,j) = ((("reveal_" + p) + "_") + j)
82+func A (p,j) = ((("commit_" + p) + "_") + j)
8383
8484
85-func B (p) = ("cnt_yes_" + p)
85+func B (p,j) = ((("reveal_" + p) + "_") + j)
8686
8787
88-func C (p) = ("cnt_no_" + p)
88+func C (p) = ("cnt_yes_" + p)
8989
9090
91-func D (p,j) = ((("final_" + p) + "_") + j)
91+func D (p) = ("cnt_no_" + p)
9292
9393
94-func E (p) = ("positive_fund_" + p)
94+func E (p,j) = ((("final_" + p) + "_") + j)
9595
9696
97-func F (p) = ("negative_fund_" + p)
97+func F (p) = ("positive_fund_" + p)
9898
9999
100-func G (p,j) = ((E(p) + "_") + j)
100+func G (p) = ("negative_fund_" + p)
101101
102102
103103 func H (p,j) = ((F(p) + "_") + j)
104104
105105
106-func I (p,j) = ((("reviews_cnt_" + p) + "_") + j)
106+func I (p,j) = ((G(p) + "_") + j)
107107
108108
109-func J (p,j) = ((("review_" + p) + "_") + j)
109+func J (p,j) = ((("reviews_cnt_" + p) + "_") + j)
110110
111111
112-func K (p,j,L) = ((J(p, j) + "_text_id:") + L)
112+func K (p,j) = ((("review_" + p) + "_") + j)
113113
114114
115-func M (p,j,L) = ((J(p, j) + "_mode_id:") + L)
115+func L (p,j,M) = ((K(p, j) + "_text_id:") + M)
116116
117117
118-func N (p,j,L) = ((J(p, j) + "_tier_id:") + L)
118+func N (p,j,M) = ((K(p, j) + "_mode_id:") + M)
119119
120120
121-func O (p,j) = (J(p, j) + "_votereview")
121+func O (p,j,M) = ((K(p, j) + "_tier_id:") + M)
122122
123123
124-func P (p,j) = (J(p, j) + "_whalereview")
124+func P (p,j) = (K(p, j) + "_votereview")
125125
126126
127-func Q (p) = ("buyout_amount_" + p)
127+func Q (p,j) = (K(p, j) + "_whalereview")
128128
129129
130-func R (p,j) = ((("winnings_" + p) + "_") + j)
130+func R (p) = ("buyout_amount_" + p)
131131
132132
133-func S (j) = g(i(j))
133+func S (p,j) = ((("winnings_" + p) + "_") + j)
134134
135135
136-func T (j) = g(k(j))
136+func T (j) = g(i(j))
137137
138138
139-func U (j) = b(l(j))
139+func U (j) = g(k(j))
140140
141141
142-func V (j) = g(m(j))
142+func V (j) = b(l(j))
143143
144144
145-func W (j) = g(n(j))
145+func W (j) = g(m(j))
146146
147147
148-func X (p) = g(o(p))
148+func X (j) = g(n(j))
149149
150150
151-func Y (p) = b(q(p))
151+func Y (p) = g(o(p))
152152
153153
154-func Z (p) = b(r(p))
154+func Z (p) = b(q(p))
155155
156156
157-func aa (p) = b(s(p))
157+func aa (p) = b(r(p))
158158
159159
160-func ab (p) = g(t(p))
160+func ab (p) = b(s(p))
161161
162162
163-func ac (p) = g(u(p))
163+func ac (p) = g(t(p))
164164
165165
166-func ad (p) = b(w(p))
166+func ad (p) = g(u(p))
167167
168168
169-func ae (p) = b(x(p))
169+func ae (p) = b(w(p))
170170
171171
172-func af (p) = b(y(p))
172+func af (p) = b(x(p))
173173
174174
175-func ag (p,j) = g(z(p, j))
175+func ag (p) = b(y(p))
176176
177177
178178 func ah (p,j) = g(A(p, j))
179179
180180
181-func ai (p) = b(B(p))
181+func ai (p,j) = g(B(p, j))
182182
183183
184184 func aj (p) = b(C(p))
185185
186186
187-func ak (p,j) = g(D(p, j))
187+func ak (p) = b(D(p))
188188
189189
190-func al (p) = b(E(p))
190+func al (p,j) = g(E(p, j))
191191
192192
193193 func am (p) = b(F(p))
194194
195195
196-func an (p,j) = b(G(p, j))
196+func an (p) = b(G(p))
197197
198198
199199 func ao (p,j) = b(H(p, j))
200200
201201
202202 func ap (p,j) = b(I(p, j))
203203
204204
205-func aq (p,j,L) = g(K(p, j, L))
205+func aq (p,j) = b(J(p, j))
206206
207207
208-func ar (p,j,L) = g(M(p, j, L))
208+func ar (p,j,M) = g(L(p, j, M))
209209
210210
211-func as (p,j,L) = b(N(p, j, L))
211+func as (p,j,M) = g(N(p, j, M))
212212
213213
214-func at (p) = b(Q(p))
214+func at (p,j,M) = b(O(p, j, M))
215215
216216
217-func au (p,j) = b(R(p, j))
217+func au (p) = b(R(p))
218218
219219
220-let av = "registered"
220+func av (p,j) = b(S(p, j))
221221
222-let aw = "invited"
223222
224-let ax = "whale"
223+let aw = "registered"
225224
226-let ay = "spend_invite"
225+let ax = "invited"
227226
228-let az = "new"
227+let ay = "whale"
228+
229+let az = "spend_invite"
229230
230231 let aA = "voting_commit"
231232
232233 let aB = "voting_reveal"
233234
234235 let aC = "featured"
235236
236237 let aD = "delisted"
237238
238239 let aE = "cashout"
239240
240241 let aF = "buyout"
241242
242243 let aG = "finished"
243244
244245 let aH = "claimed"
245246
246247 let aI = "positive"
247248
248249 let aJ = "negative"
249250
250251 let aK = "3P8Fvy1yDwNHvVrabe4ek5b9dAwxFjDKV7R"
251252
252253 let aL = "3MwMR1ZFfy712trHVLisizYmvRQwsg8z9Bn"
253254
254255 let aM = 3
255256
256257 let aN = 2
257258
258259 let aO = [(3 * 100000000), (10 * 100000000), (100 * 100000000), (300 * 100000000), (1000 * 100000000)]
259260
260261 let aP = (3 * 100000000)
261262
262263 let aQ = (1 * 100000000)
263264
264265 let aR = 150
265266
266267 @Callable(aS)
267268 func inviteuser (aT,aU) = {
268269 let j = toBase58String(aS.caller.bytes)
269- let aV = T(aT)
270- let aW = T(j)
271- if (if ((aV == av))
270+ let aV = U(aT)
271+ let aW = U(j)
272+ if (if ((aV == aw))
272273 then true
273- else (aV == ax))
274+ else (aV == ay))
274275 then throw("User has already been registered")
275- else if (if (if ((aW != av))
276+ else if (if (if ((aW != aw))
276277 then (j != aK)
277278 else false)
278- then (aW != ax)
279+ then (aW != ay)
279280 else false)
280281 then throw(("Your account should be whitelisted. status: " + aW))
281- else WriteSet([DataEntry(i(aT), j), DataEntry(m(aT), aU), DataEntry(k(aT), aw)])
282+ else WriteSet([DataEntry(i(aT), j), DataEntry(m(aT), aU), DataEntry(k(aT), ax)])
282283 }
283284
284285
285286
286287 @Callable(aS)
287288 func signupbylink (aX,aU,aY) = {
288289 let j = toBase58String(aS.caller.bytes)
289- let aZ = T(aX)
290- if ((aZ != aw))
290+ let aZ = U(aX)
291+ if ((aZ != ax))
291292 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))
293- then ax
294- else av), DataEntry(k(aX), ay), DataEntry(i(j), S(aX))])
293+ else WriteSet([DataEntry(m(j), aU), DataEntry(n(j), height), DataEntry(k(j), if ((aY == ay))
294+ then ay
295+ else aw), DataEntry(k(aX), az), DataEntry(i(j), T(aX))])
295296 }
296297
297298
298299
299300 @Callable(aS)
300301 func signup (aU,aY) = {
301302 let j = toBase58String(aS.caller.bytes)
302- let aZ = T(j)
303+ let aZ = U(j)
303304 if ((aZ == a))
304305 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))
306- then ax
307- else av)])
306+ else WriteSet([DataEntry(m(j), aU), DataEntry(n(j), height), DataEntry(k(j), if ((aY == ay))
307+ then ay
308+ else aw)])
308309 }
309310
310311
311312
312313 @Callable(aS)
313314 func userupdate (aU,aY) = {
314315 let j = toBase58String(aS.caller.bytes)
315- WriteSet([DataEntry(m(j), aU), DataEntry(k(j), if ((aY == ax))
316- then ax
317- else av)])
316+ WriteSet([DataEntry(m(j), aU), DataEntry(k(j), if ((aY == ay))
317+ then ay
318+ else aw)])
318319 }
319320
320321
321322
322323 @Callable(aS)
323324 func projupdate (p,aU) = {
324325 let j = toBase58String(aS.caller.bytes)
325- if ((X(p) != j))
326+ if ((Y(p) != j))
326327 then throw("You're not author")
327328 else WriteSet([DataEntry(u(p), aU)])
328329 }
329330
330331
331332
332333 @Callable(aS)
333334 func contestAddOrUpdate (p,aU) = {
334335 let j = toBase58String(aS.caller.bytes)
335336 if ((j != aL))
336337 then throw("You're not admin")
337338 else WriteSet([DataEntry(v(p), aU)])
338339 }
339340
340341
341342
342343 @Callable(aS)
343344 func withdraw () = {
344345 let ba = toBase58String(aS.caller.bytes)
345- let bb = U(ba)
346+ let bb = V(ba)
346347 if ((0 >= bb))
347348 then throw("Not enough balance")
348349 else ScriptResult(WriteSet([DataEntry(l(ba), 0)]), TransferSet([ScriptTransfer(aS.caller, bb, unit)]))
349350 }
350351
351352
352353
353354 @Callable(aS)
354355 func additem (p,bc,bd,be,aU) = {
355356 let j = toBase58String(aS.caller.bytes)
356357 let bf = extract(aS.payment)
357358 if (isDefined(bf.assetId))
358359 then throw("can use waves only at the moment")
359360 else if ((bf.amount != aP))
360361 then throw(((("Please pay exact amount for the listing: " + toString(aP)) + ", actual payment is: ") + toString(bf.amount)))
361362 else if (!(if (if ((bc > 2))
362363 then (bd > bc)
363364 else false)
364365 then (be > bd)
365366 else false))
366367 then throw("Incorrect time parameters")
367- else if ((X(p) != a))
368+ else if ((Y(p) != a))
368369 then throw("Item already exist")
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))])
370+ else WriteSet([DataEntry(o(p), j), DataEntry(q(p), height), DataEntry(r(p), (height + bc)), DataEntry(s(p), aP), DataEntry(t(p), aC), DataEntry(u(p), aU), DataEntry(w(p), (height + bd)), DataEntry(x(p), (height + be))])
370371 }
371372
372373
373374
374375 @Callable(aS)
375-func votecommit (p,aX) = {
376+func reportProject (p,aU) = {
376377 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))
381- then throw("can use waves only at the moment")
382- else if ((bf.amount != (2 * aQ)))
383- then throw("Not enough funds to vote for a new item")
384- else if ((height > Z(p)))
385- then throw("The voting has expired")
386- else if ((X(p) == j))
387- then throw("Cannot vote for own proposal")
388- else if (if ((aZ != az))
389- then (aZ != aA)
390- else false)
391- then throw("Wrong item status for 'commit' action")
392- else if ((bg >= aM))
393- then throw("No more voters for this item")
394- else if ((ag(p, j) != a))
395- then throw("Can't vote twice")
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))])
378+ WriteSet([DataEntry(z(p, j), aU)])
399379 }
400380
401381
402382
403383 @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))
408- then 1
409- else 0
410- let bm = if ((bh == aD))
411- then 1
412- else 0
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))
421- then throw("Hashes don't match")
422- else if ((height > Z(p)))
423- then throw("The challenge has expired")
424- else if ((aM > af(p)))
425- then throw("It's still commit stage")
426- else if (if ((ab(p) != aB))
427- then (ab(p) != aV)
428- else false)
429- then throw("Wrong item status for 'reveal' action")
430- else if ((ah(p, j) != a))
431- then throw("Can't vote twice")
432- else if (if ((bh != aC))
433- then (bh != aD)
434- else false)
435- then throw("Bad vote result format")
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)]))
437- }
438-
439-
440-
441-@Callable(aS)
442-func finalizevoting (p,j) = {
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
451- else a
452- let bs = if (if ((bn == aM))
453- then true
454- else (bo == aM))
455- then 0
456- else 1
457- let bt = if ((br == aC))
458- then bn
459- else if ((br == aD))
460- then bo
461- else 0
462- let bu = (aM - bt)
463- let bv = if ((br == bp))
464- then 1
465- else 0
466- let bw = if ((bt == 0))
467- then 0
468- else (bv * (aQ + ((bs * ((bu * aQ) + aP)) / bt)))
469- let bx = (((aP * (if (bq)
470- then 1
471- else 0)) * (if ((bs == 1))
472- then 0
473- else 1)) * (if ((br == aC))
474- then 1
475- else 0))
476- if ((Z(p) > height))
477- then throw("The voting hasn't finished yet")
478- else if ((ak(p, j) == aG))
479- then throw("Account has already claimed")
480- else if (if ((bp == a))
481- then !(bq)
482- else false)
483- then throw("Account hasnot voted, hasnot reveal or isnot author")
484- else if ((br == a))
485- then throw("Voting has expired")
486- else ScriptResult(WriteSet([DataEntry(D(p, j), aG)]), TransferSet([ScriptTransfer(addressFromStringValue(j), (bw + bx), unit)]))
487- }
488-
489-
490-
491-@Callable(aS)
492-func closeexpiredvoting (p,j) = {
493- let br = if ((ai(p) > aN))
494- then aC
495- else if ((aj(p) > aN))
496- then aD
497- else a
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)
503- then 1
504- else 0))
505- let bA = ((aQ * (if (bz)
506- then 1
507- else 0)) * (if ((bp != a))
508- then 1
509- else 0))
510- let bB = (((2 * aQ) * (if (bz)
511- then 0
512- else 1)) * (if ((by != a))
513- then 1
514- else 0))
515- if ((Z(p) > height))
516- then throw("The voting hasn't finished yet")
517- else if (if (!(bq))
518- then (by == a)
519- else false)
520- then throw("Wrong account or item")
521- else if ((ak(p, j) == aG))
522- then throw("Account has already claimed")
523- else if ((br != a))
524- then throw("Wrong item status")
525- else ScriptResult(WriteSet([DataEntry(D(p, j), aG)]), TransferSet([ScriptTransfer(addressFromStringValue(j), ((bx + bA) + bB), unit)]))
526- }
527-
528-
529-
530-@Callable(aS)
531-func donate (p,bC,bD,bj) = {
384+func donate (p,bg,bh,bi) = {
532385 let j = toBase58String(aS.caller.bytes)
533386 let bf = extract(aS.payment)
534387 if (isDefined(bf.assetId))
535388 then throw("can use waves only at the moment")
536389 else {
537- let L = (ap(p, j) + 1)
538- let bE = (am(p) + ((if ((bD == aJ))
390+ let M = (aq(p, j) + 1)
391+ let bj = (an(p) + ((if ((bh == aJ))
539392 then 1
540393 else 0) * bf.amount))
541- let bF = (al(p) + ((if ((bD == aI))
394+ let bk = (am(p) + ((if ((bh == aI))
542395 then 1
543396 else 0) * bf.amount))
544- if ((ab(p) != aC))
397+ if ((ac(p) != aC))
545398 then throw("The project hasn't accepted by community")
546- else if ((height >= ad(p)))
399+ else if ((height >= ae(p)))
547400 then throw("The time for crowdfunding has expired")
548- else if ((bE >= bF))
401+ else if ((bj >= bk))
549402 then throw("Negative fund can't be higher than positive fund")
550- else if (if ((bD != aI))
551- then (bD != aJ)
403+ else if (if ((bh != aI))
404+ then (bh != aJ)
552405 else false)
553406 then throw("Wrong mode parameter")
554- else if ((X(p) == j))
407+ else if ((Y(p) == j))
555408 then throw("Can't donate own project")
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))
409+ else if ((bf.amount != aO[(bg - 1)]))
410+ then throw(("The payment must be equal to tier amount: " + toString(aO[(bg - 1)])))
411+ else WriteSet([DataEntry(J(p, j), M), DataEntry(H(p, j), (ao(p, j) + ((if ((bh == aI))
559412 then 1
560- else 0) * bf.amount))), DataEntry(H(p, j), (ao(p, j) + ((if ((bD == aJ))
413+ else 0) * bf.amount))), DataEntry(I(p, j), (ap(p, j) + ((if ((bh == aJ))
561414 then 1
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)])
415+ else 0) * bf.amount))), DataEntry(F(p), bk), DataEntry(G(p), bj), DataEntry(L(p, j, toString(M)), bi), DataEntry(N(p, j, toString(M)), bh), DataEntry(O(p, j, toString(M)), bg)])
563416 }
564417 }
565418
566419
567420
568421 @Callable(aS)
569-func whale (p,bj) = {
422+func whale (p,bi) = {
570423 let j = toBase58String(aS.caller.bytes)
571424 let bf = extract(aS.payment)
572425 if (isDefined(bf.assetId))
573426 then throw("can use waves only at the moment")
574- else if ((ab(p) != aC))
427+ else if ((ac(p) != aC))
575428 then throw("The project hasn't accepted by community")
576- else if ((ad(p) > height))
429+ else if ((ae(p) > height))
577430 then throw("The time for crowdfunding has not expired yet")
578- else if ((height > ae(p)))
431+ else if ((height > af(p)))
579432 then throw("The time for grant has expired")
580- else if ((ab(p) == aF))
433+ else if ((ac(p) == aF))
581434 then throw("Investement has already done")
582- else if ((((al(p) * aR) / 100) > bf.amount))
435+ else if ((((am(p) * aR) / 100) > bf.amount))
583436 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)])
437+ else WriteSet([DataEntry(t(p), aF), DataEntry(Q(p, j), bi), DataEntry(l(Y(p)), (V(Y(p)) + am(p))), DataEntry(R(p), bf.amount)])
585438 }
586439
587440
588441
589442 @Callable(aS)
590443 func claimwinnings (p,j) = {
591- let aZ = ab(p)
592- let bG = if ((aZ == aF))
444+ let aZ = ac(p)
445+ let bl = if ((aZ == aF))
593446 then 1
594447 else 0
595- let bH = if ((aZ != aF))
448+ let bm = if ((aZ != aF))
596449 then 1
597450 else 0
598- let bI = al(p)
599- let bJ = am(p)
600- let bK = (((bG * (an(p, j) * 100)) / (if ((0 >= bI))
451+ let bn = am(p)
452+ let bo = an(p)
453+ let bp = (((bl * (ao(p, j) * 100)) / (if ((0 >= bn))
601454 then 1
602- else bI)) + ((bH * (ao(p, j) * 100)) / (if ((0 >= bJ))
455+ else bn)) + ((bm * (ap(p, j) * 100)) / (if ((0 >= bo))
603456 then 1
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))
457+ else bo)))
458+ let bq = ((bo * aR) / 100)
459+ let br = ((bl * ((bp * bo) / 100)) + (bm * ((bp * (if ((bn > bq))
460+ then bq
461+ else bn)) / 100)))
462+ let bs = (bl * ((bp * au(p)) / 100))
463+ let bt = (((if ((Y(p) == j))
611464 then 1
612- else 0) * bI) * (if ((aZ != aF))
465+ else 0) * bn) * (if ((aZ != aF))
613466 then 1
614467 else 0))
615468 if ((aZ == aD))
616469 then throw("The project hasn't accepted by community")
617470 else if (if ((aZ != aF))
618- then (ae(p) >= height)
471+ then (af(p) >= height)
619472 else false)
620473 then throw("The time for grant has not expired yet")
621- else if ((0 >= (bI + bJ)))
474+ else if ((0 >= (bn + bo)))
622475 then throw("The campaign wasn't active")
623- else WriteSet([DataEntry(l(j), (((U(j) + bM) + bN) + bO)), DataEntry(t(p), if ((bO > 0))
476+ else WriteSet([DataEntry(l(j), (((V(j) + br) + bs) + bt)), DataEntry(t(p), if ((bt > 0))
624477 then aE
625- else aZ), DataEntry(D(p, j), aH)])
478+ else aZ), DataEntry(E(p, j), aH)])
626479 }
627480
628481

github/deemru/w8io/3ef1775 
393.14 ms