tx · 3tBVpA5eJ9XgdgTnqkd9oWBtEHWnHTR46nijJGXhHrio

3NBB3iv7YDRsD8ZM2Pw2V5eTcsfqh3j2mvF:  -0.01400000 Waves

2019.08.02 01:28 [612358] smart account 3NBB3iv7YDRsD8ZM2Pw2V5eTcsfqh3j2mvF > SELF 0.00000000 Waves

{ "type": 13, "id": "3tBVpA5eJ9XgdgTnqkd9oWBtEHWnHTR46nijJGXhHrio", "fee": 1400000, "feeAssetId": null, "timestamp": 1564698615910, "version": 1, "sender": "3NBB3iv7YDRsD8ZM2Pw2V5eTcsfqh3j2mvF", "senderPublicKey": "9i5FpMUFCwhogG5euZDBZKV6NehQN4xX83qvNr8NWipE", "proofs": [ "2hN4YWZY5kvGtYjsGLcHpi2hU1dokxSm8dz8JZHbUU293LEPwbKf8N9Rj8TegSdK8hNFCyrjszBVbK2ehuphH3q7" ], "script": "base64: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X2Z1bmRfBQAAAARpdGVtAQAAABZnZXRLZXlJdGVtRnVuZE5lZ2F0aXZlAAAAAQAAAARpdGVtCQABLAAAAAICAAAADm5lZ2F0aXZlX2Z1bmRfBQAAAARpdGVtAQAAABlnZXRLZXlJdGVtQWNjRnVuZFBvc2l0aXZlAAAAAgAAAARpdGVtAAAAB2FjY291bnQJAAEsAAAAAgkAASwAAAACCQEAAAAWZ2V0S2V5SXRlbUZ1bmRQb3NpdGl2ZQAAAAEFAAAABGl0ZW0CAAAAAV8FAAAAB2FjY291bnQBAAAAGWdldEtleUl0ZW1BY2NGdW5kTmVnYXRpdmUAAAACAAAABGl0ZW0AAAAHYWNjb3VudAkAASwAAAACCQABLAAAAAIJAQAAABZnZXRLZXlJdGVtRnVuZE5lZ2F0aXZlAAAAAQUAAAAEaXRlbQIAAAABXwUAAAAHYWNjb3VudAEAAAAXZ2V0S2V5SXRlbUFjY1Jldmlld3NDbnQAAAACAAAABGl0ZW0AAAAHYWNjb3VudAkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAMcmV2aWV3c19jbnRfBQAAAARpdGVtAgAAAAFfBQAAAAdhY2NvdW50AQAAABNnZXRLZXlJdGVtQWNjUmV2aWV3AAAAAgAAAARpdGVtAAAAB2FjY291bnQJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAB3Jldmlld18FAAAABGl0ZW0CAAAAAV8FAAAAB2FjY291bnQBAAAAF2dldEtleUl0ZW1BY2NSZXZpZXdUZXh0AAAAAwAAAARpdGVtAAAAB2FjY291bnQAAAADY250CQABLAAAAAIJAAEsAAAAAgkBAAAAE2dldEtleUl0ZW1BY2NSZXZpZXcAAAACBQAAAARpdGVtBQAAAAdhY2NvdW50AgAAAAlfdGV4dF9pZDoFAAAAA2NudAEAAAAXZ2V0S2V5SXRlbUFjY1Jldmlld01vZGUAAAADAAAABGl0ZW0AAAAHYWNjb3VudAAAAANjbnQJAAEsAAAAAgkAASwAAAACCQEAAAATZ2V0S2V5SXRlbUFjY1JldmlldwAAAAIFAAAABGl0ZW0FAAAAB2FjY291bnQCAAAACV9tb2RlX2lkOgUAAAADY250AQAAABdnZXRLZXlJdGVtQWNjUmV2aWV3VGllcgAAAAMAAAAEaXRlbQAAAAdhY2NvdW50AAAAA2NudAkAASwAAAACCQABLAAAAAIJAQAAABNnZXRLZXlJdGVtQWNjUmV2aWV3AAAAAgUAAAAEaXRlbQUAAAAHYWNjb3VudAIAAAAJX3RpZXJfaWQ6BQAAAANjbnQBAAAAG2dldEtleUl0ZW1BY2NWb3RlUmV2aWV3VGV4dAAAAAIAAAAEaXRlbQAAAAdhY2NvdW50CQABLAAAAAIJAQAAABNnZXRLZXlJdGVtQWNjUmV2aWV3AAAAAgUAAAAEaXRlbQUAAAAHYWNjb3VudAIAAAALX3ZvdGVyZXZpZXcBAAAAHGdldEtleUl0ZW1BY2NXaGFsZVJldmlld1RleHQAAAACAAAABGl0ZW0AAAAHYWNjb3VudAkAASwAAAACCQEAAAATZ2V0S2V5SXRlbUFjY1JldmlldwAAAAIFAAAABGl0ZW0FAAAAB2FjY291bnQCAAAADF93aGFsZXJldmlldwEAAAAWZ2V0S2V5SXRlbUJ1eW91dEFtb3VudAAAAAEAAAAEaXRlbQkAASwAAAACAgAAAA5idXlvdXRfYW1vdW50XwUAAAAEaXRlbQEAAAAVZ2V0S2V5SXRlbUFjY1dpbm5pbmdzAAAAAgAAAARpdGVtAAAAB2FjY291bnQJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAACXdpbm5pbmdzXwUAAAAEaXRlbQIAAAABXwUAAAAHYWNjb3VudAEAAAAUZ2V0VmFsdWVXaGl0ZWxpc3RSZWYAAAABAAAAB2FjY291bnQJAQAAAAtnZXRTdHJCeUtleQAAAAEJAQAAABJnZXRLZXlXaGl0ZWxpc3RSZWYAAAABBQAAAAdhY2NvdW50AQAAABdnZXRWYWx1ZVdoaXRlbGlzdFN0YXR1cwAAAAEAAAAHYWNjb3VudAkBAAAAC2dldFN0ckJ5S2V5AAAAAQkBAAAAFWdldEtleVdoaXRlbGlzdFN0YXR1cwAAAAEFAAAAB2FjY291bnQBAAAAD2dldFZhbHVlQmFsYW5jZQAAAAEAAAAHYWNjb3VudAkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAADWdldEtleUJhbGFuY2UAAAABBQAAAAdhY2NvdW50AQAAABRnZXRWYWx1ZVdoaXRlbGlzdEJpbwAAAAEAAAAHYWNjb3VudAkBAAAAC2dldFN0ckJ5S2V5AAAAAQkBAAAAEmdldEtleVdoaXRlbGlzdEJpbwAAAAEFAAAAB2FjY291bnQBAAAAFmdldFZhbHVlV2hpdGVsaXN0QmxvY2sAAAABAAAAB2FjY291bnQJAQAAAAtnZXRTdHJCeUtleQAAAAEJAQAAABRnZXRLZXlXaGl0ZWxpc3RCbG9jawAAAAEFAAAAB2FjY291bnQBAAAAEmdldFZhbHVlSXRlbUF1dGhvcgAAAAEAAAAEaXRlbQkBAAAAC2dldFN0ckJ5S2V5AAAAAQkBAAAAEGdldEtleUl0ZW1BdXRob3IAAAABBQAAAARpdGVtAQAAABFnZXRWYWx1ZUl0ZW1CbG9jawAAAAEAAAAEaXRlbQkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAD2dldEtleUl0ZW1CbG9jawAAAAEFAAAABGl0ZW0BAAAAHGdldFZhbHVlSXRlbVZvdGluZ0V4cGlyYXRpb24AAAABAAAABGl0ZW0JAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAABpnZXRLZXlJdGVtVm90aW5nRXhwaXJhdGlvbgAAAAEFAAAABGl0ZW0BAAAAEGdldFZhbHVlSXRlbUJhbmsAAAABAAAABGl0ZW0JAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAAA5nZXRLZXlJdGVtQmFuawAAAAEFAAAABGl0ZW0BAAAAEmdldFZhbHVlSXRlbVN0YXR1cwAAAAEAAAAEaXRlbQkBAAAAC2dldFN0ckJ5S2V5AAAAAQkBAAAAEGdldEtleUl0ZW1TdGF0dXMAAAABBQAAAARpdGVtAQAAABBnZXRWYWx1ZUl0ZW1EYXRhAAAAAQAAAARpdGVtCQEAAAALZ2V0U3RyQnlLZXkAAAABCQEAAAAOZ2V0S2V5SXRlbURhdGEAAAABBQAAAARpdGVtAQAAABtnZXRWYWx1ZUl0ZW1Dcm93ZEV4cGlyYXRpb24AAAABAAAABGl0ZW0JAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAABlnZXRLZXlJdGVtQ3Jvd2RFeHBpcmF0aW9uAAAAAQUAAAAEaXRlbQEAAAAbZ2V0VmFsdWVJdGVtV2hhbGVFeHBpcmF0aW9uAAAAAQAAAARpdGVtCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAZZ2V0S2V5SXRlbVdoYWxlRXhwaXJhdGlvbgAAAAEFAAAABGl0ZW0BAAAAFGdldFZhbHVlSXRlbU5Db21taXRzAAAAAQAAAARpdGVtCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAASZ2V0S2V5SXRlbU5Db21taXRzAAAAAQUAAAAEaXRlbQEAAAAVZ2V0VmFsdWVJdGVtQWNjQ29tbWl0AAAAAgAAAARpdGVtAAAAB2FjY291bnQJAQAAAAtnZXRTdHJCeUtleQAAAAEJAQAAABNnZXRLZXlJdGVtQWNjQ29tbWl0AAAAAgUAAAAEaXRlbQUAAAAHYWNjb3VudAEAAAAVZ2V0VmFsdWVJdGVtQWNjUmV2ZWFsAAAAAgAAAARpdGVtAAAAB2FjY291bnQJAQAAAAtnZXRTdHJCeUtleQAAAAEJAQAAABNnZXRLZXlJdGVtQWNjUmV2ZWFsAAAAAgUAAAAEaXRlbQUAAAAHYWNjb3VudAEAAAAUZ2V0VmFsdWVJdGVtVm90ZXNZZXMAAAABAAAABGl0ZW0JAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAABJnZXRLZXlJdGVtVm90ZXNZZXMAAAABBQAAAARpdGVtAQAAABNnZXRWYWx1ZUl0ZW1Wb3Rlc05vAAAAAQAAAARpdGVtCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAARZ2V0S2V5SXRlbVZvdGVzTm8AAAABBQAAAARpdGVtAQAAABRnZXRWYWx1ZUl0ZW1BY2NGaW5hbAAAAAIAAAAEaXRlbQAAAAdhY2NvdW50CQEAAAALZ2V0U3RyQnlLZXkAAAABCQEAAAASZ2V0S2V5SXRlbUFjY0ZpbmFsAAAAAgUAAAAEaXRlbQUAAAAHYWNjb3VudAEAAAAYZ2V0VmFsdWVJdGVtRnVuZFBvc2l0aXZlAAAAAQAAAARpdGVtCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAWZ2V0S2V5SXRlbUZ1bmRQb3NpdGl2ZQAAAAEFAAAABGl0ZW0BAAAAGGdldFZhbHVlSXRlbUZ1bmROZWdhdGl2ZQAAAAEAAAAEaXRlbQkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAFmdldEtleUl0ZW1GdW5kTmVnYXRpdmUAAAABBQAAAARpdGVtAQAAABtnZXRWYWx1ZUl0ZW1BY2NGdW5kUG9zaXRpdmUAAAACAAAABGl0ZW0AAAAHYWNjb3VudAkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAGWdldEtleUl0ZW1BY2NGdW5kUG9zaXRpdmUAAAACBQAAAARpdGVtBQAAAAdhY2NvdW50AQAAABtnZXRWYWx1ZUl0ZW1BY2NGdW5kTmVnYXRpdmUAAAACAAAABGl0ZW0AAAAHYWNjb3VudAkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAGWdldEtleUl0ZW1BY2NGdW5kTmVnYXRpdmUAAAACBQAAAARpdGVtBQAAAAdhY2NvdW50AQAAABlnZXRWYWx1ZUl0ZW1BY2NSZXZpZXdzQ250AAAAAgAAAARpdGVtAAAAB2FjY291bnQJAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAABdnZXRLZXlJdGVtQWNjUmV2aWV3c0NudAAAAAIFAAAABGl0ZW0FAAAAB2FjY291bnQBAAAAGWdldFZhbHVlSXRlbUFjY1Jldmlld1RleHQAAAADAAAABGl0ZW0AAAAHYWNjb3VudAAAAANjbnQJAQAAAAtnZXRTdHJCeUtleQAAAAEJAQAAABdnZXRLZXlJdGVtQWNjUmV2aWV3VGV4dAAAAAMFAAAABGl0ZW0FAAAAB2FjY291bnQFAAAAA2NudAEAAAAZZ2V0VmFsdWVJdGVtQWNjUmV2aWV3TW9kZQAAAAMAAAAEaXRlbQAAAAdhY2NvdW50AAAAA2NudAkBAAAAC2dldFN0ckJ5S2V5AAAAAQkBAAAAF2dldEtleUl0ZW1BY2NSZXZpZXdNb2RlAAAAAwUAAAAEaXRlbQUAAAAHYWNjb3VudAUAAAADY250AQAAABlnZXRWYWx1ZUl0ZW1BY2NSZXZpZXdUaWVyAAAAAwAAAARpdGVtAAAAB2FjY291bnQAAAADY250CQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAXZ2V0S2V5SXRlbUFjY1Jldmlld1RpZXIAAAADBQAAAARpdGVtBQAAAAdhY2NvdW50BQAAAANjbnQBAAAAGGdldFZhbHVlSXRlbUJ1eW91dEFtb3VudAAAAAEAAAAEaXRlbQkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAFmdldEtleUl0ZW1CdXlvdXRBbW91bnQAAAABBQAAAARpdGVtAQAAABdnZXRWYWx1ZUl0ZW1BY2NXaW5uaW5ncwAAAAIAAAAEaXRlbQAAAAdhY2NvdW50CQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAVZ2V0S2V5SXRlbUFjY1dpbm5pbmdzAAAAAgUAAAAEaXRlbQUAAAAHYWNjb3VudAAAAAALV0hJVEVMSVNURUQCAAAACnJlZ2lzdGVyZWQAAAAAB0lOVklURUQCAAAAB2ludml0ZWQAAAAABVdIQUxFAgAAAAV3aGFsZQAAAAADTkVXAgAAAANuZXcAAAAABkNPTU1JVAIAAAANdm90aW5nX2NvbW1pdAAAAAAGUkVWRUFMAgAAAA12b3RpbmdfcmV2ZWFsAAAAAAhGRUFUVVJFRAIAAAAIZmVhdHVyZWQAAAAACERFTElTVEVEAgAAAAhkZWxpc3RlZAAAAAAHQ0FTSE9VVAIAAAAHY2FzaG91dAAAAAAGQlVZT1VUAgAAAAZidXlvdXQAAAAACEZJTklTSEVEAgAAAAhmaW5pc2hlZAAAAAAHQ0xBSU1FRAIAAAAHY2xhaW1lZAAAAAAIUE9TSVRJVkUCAAAACHBvc2l0aXZlAAAAAAhORUdBVElWRQIAAAAIbmVnYXRpdmUAAAAAB0dFTkVTSVMCAAAAIzNOQkIzaXY3WURSc0Q4Wk0yUHcyVjVlVGNzZnFoM2oybXZGAAAAAAZWT1RFUlMAAAAAAAAAAAMAAAAABlFVT1JVTQAAAAAAAAAAAgAAAAAFVElFUlMJAARMAAAAAgkAAGgAAAACAAAAAAAAAAADAAAAAAAF9eEACQAETAAAAAIJAABoAAAAAgAAAAAAAAAACgAAAAAABfXhAAkABEwAAAACCQAAaAAAAAIAAAAAAAAAAGQAAAAAAAX14QAJAARMAAAAAgkAAGgAAAACAAAAAAAAAAEsAAAAAAAF9eEACQAETAAAAAIJAABoAAAAAgAAAAAAAAAD6AAAAAAABfXhAAUAAAADbmlsAAAAAApMSVNUSU5HRkVFCQAAaAAAAAIAAAAAAAAAAAMAAAAAAAX14QAAAAAAB1ZPVEVCRVQJAABoAAAAAgAAAAAAAAAAAQAAAAAABfXhAAAAAAAKTVVMVElQTElFUgAAAAAAAAAAlgAAAA4AAAABaQEAAAAKaW52aXRldXNlcgAAAAIAAAAKbmV3YWNjb3VudAAAAARkYXRhBAAAAAdhY2NvdW50CQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAACW5ld3N0YXR1cwkBAAAAF2dldFZhbHVlV2hpdGVsaXN0U3RhdHVzAAAAAQUAAAAKbmV3YWNjb3VudAQAAAAKY3VycnN0YXR1cwkBAAAAF2dldFZhbHVlV2hpdGVsaXN0U3RhdHVzAAAAAQUAAAAHYWNjb3VudAMDCQAAAAAAAAIFAAAACW5ld3N0YXR1cwUAAAALV0hJVEVMSVNURUQGCQAAAAAAAAIFAAAACW5ld3N0YXR1cwUAAAAFV0hBTEUJAAACAAAAAQIAAAAgVXNlciBoYXMgYWxyZWFkeSBiZWVuIHJlZ2lzdGVyZWQDAwMJAQAAAAIhPQAAAAIFAAAACmN1cnJzdGF0dXMFAAAAC1dISVRFTElTVEVECQEAAAACIT0AAAACBQAAAApjdXJyc3RhdHVzBQAAAAdHRU5FU0lTBwkBAAAAAiE9AAAAAgUAAAAKY3VycnN0YXR1cwUAAAAFV0hBTEUHCQAAAgAAAAEJAAEsAAAAAgIAAAAsWW91ciBhY2NvdW50IHNob3VsZCBiZSB3aGl0ZWxpc3RlZC4gc3RhdHVzOiAFAAAACmN1cnJzdGF0dXMJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABJnZXRLZXlXaGl0ZWxpc3RSZWYAAAABBQAAAApuZXdhY2NvdW50BQAAAAdhY2NvdW50CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAASZ2V0S2V5V2hpdGVsaXN0QmlvAAAAAQUAAAAKbmV3YWNjb3VudAUAAAAEZGF0YQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAFWdldEtleVdoaXRlbGlzdFN0YXR1cwAAAAEFAAAACm5ld2FjY291bnQFAAAAB0lOVklURUQFAAAAA25pbAAAAAFpAQAAAAxzaWdudXBieWxpbmsAAAADAAAABGhhc2gAAAAEZGF0YQAAAAR0eXBlBAAAAAdhY2NvdW50CQACWAAA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AAAAFkJhZCB2b3RlIHJlc3VsdCBmb3JtYXQJAQAAAAxTY3JpcHRSZXN1bHQAAAACCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAATZ2V0S2V5SXRlbUFjY1JldmVhbAAAAAIFAAAABGl0ZW0FAAAAB2FjY291bnQFAAAABHZvdGUJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABJnZXRLZXlJdGVtVm90ZXNZZXMAAAABBQAAAARpdGVtCQAAZAAAAAIFAAAABnllc2NudAUAAAAHeWVzbWx0cAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAEWdldEtleUl0ZW1Wb3Rlc05vAAAAAQUAAAAEaXRlbQkAAGQAAAACBQAAAAZub3RjbnQFAAAAB25vdG1sdHAJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABBnZXRLZXlJdGVtU3RhdHVzAAAAAQUAAAAEaXRlbQUAAAAJbmV3c3RhdHVzCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAbZ2V0S2V5SXRlbUFjY1ZvdGVSZXZpZXdUZXh0AAAAAgUAAAAEaXRlbQUAAAAHYWNjb3VudAUAAAAGcmV2aWV3BQAAAANuaWwJAQAAAAtUcmFuc2ZlclNldAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAHEBleHRyVXNlcihhZGRyZXNzRnJvbVN0cmluZykAAAABBQAAAAdhY2NvdW50BQAAAAdWT1RFQkVUBQAAAAR1bml0BQAAAANuaWwAAAABaQEAAAAOZmluYWxpemV2b3RpbmcAAAACAAAABGl0ZW0AAAAHYWNjb3VudAQAAAAGeWVzY250CQEAAAAUZ2V0VmFsdWVJdGVtVm90ZXNZZXMAAAABBQAAAARpdGVtBAAAAAZub3RjbnQJAQAAABNnZXRWYWx1ZUl0ZW1Wb3Rlc05vAAAAAQUAAAAEaXRlbQQAAAAHYWNjdm90ZQkBAAAAFWdldFZhbHVlSXRlbUFjY1JldmVhbAAAAAIFAAAABGl0ZW0FAAAAB2FjY291bnQEAAAACGlzYXV0aG9yCQAAAAAAAAIFAAAAB2FjY291bnQJAQAAABJnZXRWYWx1ZUl0ZW1BdXRob3IAAAABBQAAAARpdGVtBAAAAAtmaW5hbHN0YXR1cwMJAABmAAAAAgUAAAAGeWVzY250BQAAAAZRVU9SVU0FAAAACEZFQVRVUkVEAwkAAGYAAAACBQAAAAZub3RjbnQFAAAABlFVT1JVTQUAAAAIREVMSVNURUQFAAAABE5PTkUEAAAAFG1sdGlzbm90ZnVsbG1ham9yaXR5AwMJAAAAAAAAAgUAAAAGeWVzY250BQAAAAZWT1RFUlMGCQAAAAAAAAIFAAAABm5vdGNudAUAAAAGVk9URVJTAAAAAAAAAAAAAAAAAAAAAAABBAAAAAhud2lubmVycwMJAAAAAAAAAgUAAAALZmluYWxzdGF0dXMFAAAACEZFQVRVUkVEBQAAAAZ5ZXNjbnQDCQAAAAAAAAIFAAAAC2ZpbmFsc3RhdHVzBQAAAAhERUxJU1RFRAUAAAAGbm90Y250AAAAAAAAAAAABAAAAAhubG9vc2VycwkAAGUAAAACBQAAAAZWT1RFUlMFAAAACG53aW5uZXJzBAAAAA5tbHRhY2Npc3dpbm5lcgMJAAAAAAAAAgUAAAALZmluYWxzdGF0dXMFAAAAB2FjY3ZvdGUAAAAAAAAAAAEAAAAAAAAAAAAEAAAACnZvdGVwcm9maXQDCQAAAAAAAAIFAAAACG53aW5uZXJzAAAAAAAAAAAAAAAAAAAAAAAACQAAaAAAAAIFAAAADm1sdGFjY2lzd2lubmVyCQAAZAAAAAIFAAAAB1ZPVEVCRVQJAABpAAAAAgkAAGgAAAACBQAAABRtbHRpc25vdGZ1bGxtYWpvcml0eQkAAGQAAAACCQAAaAAAAAIFAAAACG5sb29zZXJzBQAAAAdWT1RFQkVUBQAAAApMSVNUSU5HRkVFBQAAAAhud2lubmVycwQAAAAMYXV0aG9ycmV0dXJuCQAAaAAAAAIJAABoAAAAAgkAAGgAAAACBQAAAApMSVNUSU5HRkVFAwUAAAAIaXNhdXRob3IAAAAAAAAAAAEAAAAAAAAAAAADCQAAAAAAAAIFAAAAFG1sdGlzbm90ZnVsbG1ham9yaXR5AAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAABAwkAAAAAAAACBQAAAAtmaW5hbHN0YXR1cwUAAAAIRkVBVFVSRUQAAAAAAAAAAAEAAAAAAAAAAAADCQAAZgAAAAIJAQAAABxnZXRWYWx1ZUl0ZW1Wb3RpbmdFeHBpcmF0aW9uAAAAAQUAAAAEaXRlbQUAAAAGaGVpZ2h0CQAAAgAAAAECAAAAHlRoZSB2b3RpbmcgaGFzbid0IGZpbmlzaGVkIHlldAMJAAAAAAAAAgkBAAAAFGdldFZhbHVlSXRlbUFjY0ZpbmFsAAAAAgUAAAAEaXRlbQUAAAAHYWNjb3VudAUAAAAIRklOSVNIRUQJAAACAAAAAQIAAAAbQWNjb3VudCBoYXMgYWxyZWFkeSBjbGFpbWVkAwMJAAAAAAAAAgUAAAAHYWNjdm90ZQUAAAAETk9ORQkBAAAAASEAAAABBQAAAAhpc2F1dGhvcgcJAAACAAAAAQIAAAAzQWNjb3VudCBoYXNub3Qgdm90ZWQsIGhhc25vdCByZXZlYWwgb3IgaXNub3QgYXV0aG9yAwkAAAAAAAACBQAAAAtmaW5hbHN0YXR1cwUAAAAETk9ORQkAAAIAAAABAgAAABJWb3RpbmcgaGFzIGV4cGlyZWQJAQAAAAxTY3JpcHRSZXN1bHQAAAACCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAASZ2V0S2V5SXRlbUFjY0ZpbmFsAAAAAgUAAAAEaXRlbQUAAAAHYWNjb3VudAUAAAAIRklOSVNIRUQFAAAAA25pbAkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAcQGV4dHJVc2VyKGFkZHJlc3NGcm9tU3RyaW5nKQAAAAEFAAAAB2FjY291bnQJAABkAAAAAgUAAAAKdm90ZXByb2ZpdAUAAAAMYXV0aG9ycmV0dXJuBQAAAAR1bml0BQAAAANuaWwAAAABaQEAAAASY2xvc2VleHBpcmVkdm90aW5nAAAAAgAAAARpdGVtAAAAB2FjY291bnQEAAAAC2ZpbmFsc3RhdHVzAwkAAGYAAAACCQEAAAAUZ2V0VmFsdWVJdGVtVm90ZXNZZXMAAAABBQAAAARpdGVtBQAAAAZRVU9SVU0FAAAACEZFQVRVUkVEAwkAAGYAAAACCQEAAAATZ2V0VmFsdWVJdGVtVm90ZXNObwAAAAEFAAAABGl0ZW0F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", "chainId": 84, "height": 612358, "spentComplexity": 0 } View: original | compacted Prev: G8iT3TkKTUoBV5mm7YiDWeosELqZSGeR8gi5TNVibW2s Next: 7WhW9kcmzTZwQjkVkjri3cfZvuVAECyVXr6rh2C5CSbh Diff:
OldNewDifferences
315315
316316
317317 @Callable(aP)
318-func godsmodestring (c,aX) = {
319- let j = toBase58String(aP.caller.bytes)
320- if ((j != aI))
321- then throw("you're not admin")
322- else WriteSet([DataEntry(c, aX)])
323- }
324-
325-
326-
327-@Callable(aP)
328318 func projupdate (p,aR) = {
329319 let j = toBase58String(aP.caller.bytes)
330320 if ((W(p) != j))
336326
337327 @Callable(aP)
338328 func withdraw () = {
339- let aY = toBase58String(aP.caller.bytes)
340- let aZ = T(aY)
341- if ((0 >= aZ))
329+ let aX = toBase58String(aP.caller.bytes)
330+ let aY = T(aX)
331+ if ((0 >= aY))
342332 then throw("Not enough balance")
343- else ScriptResult(WriteSet([DataEntry(l(aY), 0)]), TransferSet([ScriptTransfer(aP.caller, aZ, unit)]))
333+ else ScriptResult(WriteSet([DataEntry(l(aX), 0)]), TransferSet([ScriptTransfer(aP.caller, aY, unit)]))
344334 }
345335
346336
347337
348338 @Callable(aP)
349-func additem (p,ba,bb,bc,aR) = {
339+func additem (p,aZ,ba,bb,aR) = {
350340 let j = toBase58String(aP.caller.bytes)
351- let bd = extract(aP.payment)
352- if (isDefined(bd.assetId))
341+ let bc = extract(aP.payment)
342+ if (isDefined(bc.assetId))
353343 then throw("can use waves only at the moment")
354- else if ((bd.amount != aM))
355- then throw(((("Please pay exact amount for the listing: " + toString(aM)) + ", actual payment is: ") + toString(bd.amount)))
356- else if (!(if (if ((ba > 2))
344+ else if ((bc.amount != aM))
345+ then throw(((("Please pay exact amount for the listing: " + toString(aM)) + ", actual payment is: ") + toString(bc.amount)))
346+ else if (!(if (if ((aZ > 2))
347+ then (ba > aZ)
348+ else false)
357349 then (bb > ba)
358- else false)
359- then (bc > bb)
360350 else false))
361351 then throw("Incorrect time parameters")
362352 else if ((W(p) != a))
363353 then throw("Item already exist")
364- else WriteSet([DataEntry(o(p), j), DataEntry(q(p), height), DataEntry(r(p), (height + ba)), DataEntry(s(p), aM), DataEntry(t(p), ax), DataEntry(u(p), aR), DataEntry(v(p), (height + bb)), DataEntry(w(p), (height + bc))])
354+ else WriteSet([DataEntry(o(p), j), DataEntry(q(p), height), DataEntry(r(p), (height + aZ)), DataEntry(s(p), aM), DataEntry(t(p), ax), DataEntry(u(p), aR), DataEntry(v(p), (height + ba)), DataEntry(w(p), (height + bb))])
365355 }
366356
367357
369359 @Callable(aP)
370360 func votecommit (p,aU) = {
371361 let j = toBase58String(aP.caller.bytes)
372- let be = ae(p)
362+ let bd = ae(p)
373363 let aW = aa(p)
374- let bd = extract(aP.payment)
375- if (isDefined(bd.assetId))
364+ let bc = extract(aP.payment)
365+ if (isDefined(bc.assetId))
376366 then throw("can use waves only at the moment")
377- else if ((bd.amount != (2 * aN)))
367+ else if ((bc.amount != (2 * aN)))
378368 then throw("Not enough funds to vote for a new item")
379369 else if ((height > Y(p)))
380370 then throw("The voting has expired")
384374 then (aW != ay)
385375 else false)
386376 then throw("Wrong item status for 'commit' action")
387- else if ((be >= aJ))
377+ else if ((bd >= aJ))
388378 then throw("No more voters for this item")
389379 else if ((af(p, j) != a))
390380 then throw("Can't vote twice")
391- else WriteSet([DataEntry(t(p), if (((be + 1) == aJ))
381+ else WriteSet([DataEntry(t(p), if (((bd + 1) == aJ))
392382 then az
393- else ay), DataEntry(y(p, j), aU), DataEntry(x(p), (be + 1))])
383+ else ay), DataEntry(y(p, j), aU), DataEntry(x(p), (bd + 1))])
394384 }
395385
396386
397387
398388 @Callable(aP)
399-func votereveal (p,bf,bg,bh) = {
400- let bi = toBase58String(sha256(toBytes((bf + bg))))
389+func votereveal (p,be,bf,bg) = {
390+ let bh = toBase58String(sha256(toBytes((be + bf))))
401391 let j = toBase58String(aP.caller.bytes)
402- let bj = if ((bf == aA))
392+ let bi = if ((be == aA))
403393 then 1
404394 else 0
405- let bk = if ((bf == aB))
395+ let bj = if ((be == aB))
406396 then 1
407397 else 0
408- let bl = ah(p)
409- let bm = ai(p)
410- let aS = if ((bl >= aK))
398+ let bk = ah(p)
399+ let bl = ai(p)
400+ let aS = if ((bk >= aK))
411401 then aA
412- else if ((bm >= aK))
402+ else if ((bl >= aK))
413403 then aB
414404 else az
415- if ((af(p, j) != bi))
405+ if ((af(p, j) != bh))
416406 then throw("Hashes don't match")
417407 else if ((height > Y(p)))
418408 then throw("The challenge has expired")
424414 then throw("Wrong item status for 'reveal' action")
425415 else if ((ag(p, j) != a))
426416 then throw("Can't vote twice")
427- else if (if ((bf != aA))
428- then (bf != aB)
417+ else if (if ((be != aA))
418+ then (be != aB)
429419 else false)
430420 then throw("Bad vote result format")
431- else WriteSet([DataEntry(z(p, j), bf), DataEntry(A(p), (bl + bj)), DataEntry(B(p), (bm + bk)), DataEntry(t(p), aS), DataEntry(N(p, j), bh), DataEntry(l(j), (T(j) + aN))])
421+ else ScriptResult(WriteSet([DataEntry(z(p, j), be), DataEntry(A(p), (bk + bi)), DataEntry(B(p), (bl + bj)), DataEntry(t(p), aS), DataEntry(N(p, j), bg)]), TransferSet([ScriptTransfer(addressFromStringValue(j), aN, unit)]))
432422 }
433423
434424
435425
436426 @Callable(aP)
437427 func finalizevoting (p,j) = {
438- let bl = ah(p)
439- let bm = ai(p)
440- let bn = ag(p, j)
441- let bo = (j == W(p))
442- let bp = if ((bl > aK))
428+ let bk = ah(p)
429+ let bl = ai(p)
430+ let bm = ag(p, j)
431+ let bn = (j == W(p))
432+ let bo = if ((bk > aK))
443433 then aA
444- else if ((bm > aK))
434+ else if ((bl > aK))
445435 then aB
446436 else a
447- let bq = if (if ((bl == aJ))
437+ let bp = if (if ((bk == aJ))
448438 then true
449- else (bm == aJ))
439+ else (bl == aJ))
450440 then 0
451441 else 1
452- let br = if ((bp == aA))
453- then bl
454- else if ((bp == aB))
455- then bm
442+ let bq = if ((bo == aA))
443+ then bk
444+ else if ((bo == aB))
445+ then bl
456446 else 0
457- let bs = (aJ - br)
458- let bt = if ((bp == bn))
447+ let br = (aJ - bq)
448+ let bs = if ((bo == bm))
459449 then 1
460450 else 0
461- let bu = if ((br == 0))
451+ let bt = if ((bq == 0))
462452 then 0
463- else (bt * (aN + ((bq * ((bs * aN) + aM)) / br)))
464- let bv = (((aM * (if (bo)
453+ else (bs * (aN + ((bp * ((br * aN) + aM)) / bq)))
454+ let bu = (((aM * (if (bn)
465455 then 1
466- else 0)) * (if ((bq == 1))
456+ else 0)) * (if ((bp == 1))
467457 then 0
468- else 1)) * (if ((bp == aA))
458+ else 1)) * (if ((bo == aA))
469459 then 1
470460 else 0))
471461 if ((Y(p) > height))
472462 then throw("The voting hasn't finished yet")
473463 else if ((aj(p, j) == aE))
474464 then throw("Account has already claimed")
475- else if (if ((bn == a))
476- then !(bo)
465+ else if (if ((bm == a))
466+ then !(bn)
477467 else false)
478468 then throw("Account hasnot voted, hasnot reveal or isnot author")
479- else if ((bp == a))
469+ else if ((bo == a))
480470 then throw("Voting has expired")
481- else WriteSet([DataEntry(C(p, j), aE), DataEntry(l(j), ((T(j) + bu) + bv))])
471+ else ScriptResult(WriteSet([DataEntry(C(p, j), aE)]), TransferSet([ScriptTransfer(addressFromStringValue(j), (bt + bu), unit)]))
482472 }
483473
484474
485475
486476 @Callable(aP)
487477 func closeexpiredvoting (p,j) = {
488- let bp = if ((ah(p) > aK))
478+ let bo = if ((ah(p) > aK))
489479 then aA
490480 else if ((ai(p) > aK))
491481 then aB
492482 else a
493- let bn = ag(p, j)
494- let bo = (j == W(p))
495- let bw = af(p, j)
496- let bx = (ae(p) == aJ)
497- let bv = (aM * (if (bo)
483+ let bm = ag(p, j)
484+ let bn = (j == W(p))
485+ let bv = af(p, j)
486+ let bw = (ae(p) == aJ)
487+ let bu = (aM * (if (bn)
498488 then 1
499489 else 0))
500- let by = ((aN * (if (bx)
490+ let bx = ((aN * (if (bw)
501491 then 1
502- else 0)) * (if ((bn != a))
492+ else 0)) * (if ((bm != a))
503493 then 1
504494 else 0))
505- let bz = (((2 * aN) * (if (bx)
495+ let by = (((2 * aN) * (if (bw)
506496 then 0
507- else 1)) * (if ((bw != a))
497+ else 1)) * (if ((bv != a))
508498 then 1
509499 else 0))
510500 if ((Y(p) > height))
511501 then throw("The voting hasn't finished yet")
512- else if (if (!(bo))
513- then (bw == a)
502+ else if (if (!(bn))
503+ then (bv == a)
514504 else false)
515505 then throw("Wrong account or item")
516506 else if ((aj(p, j) == aE))
517507 then throw("Account has already claimed")
518- else if ((bp != a))
508+ else if ((bo != a))
519509 then throw("Wrong item status")
520- else WriteSet([DataEntry(C(p, j), aE), DataEntry(l(j), (((T(j) + bv) + by) + bz))])
510+ else ScriptResult(WriteSet([DataEntry(C(p, j), aE)]), TransferSet([ScriptTransfer(addressFromStringValue(j), ((bu + bx) + by), unit)]))
521511 }
522512
523513
524514
525515 @Callable(aP)
526-func donate (p,bA,bB,bh) = {
516+func donate (p,bz,bA,bg) = {
527517 let j = toBase58String(aP.caller.bytes)
528- let bd = extract(aP.payment)
529- if (isDefined(bd.assetId))
518+ let bc = extract(aP.payment)
519+ if (isDefined(bc.assetId))
530520 then throw("can use waves only at the moment")
531521 else {
532522 let K = (ao(p, j) + 1)
533- let bC = (al(p) + ((if ((bB == aH))
523+ let bB = (al(p) + ((if ((bA == aH))
534524 then 1
535- else 0) * bd.amount))
536- let bD = (ak(p) + ((if ((bB == aG))
525+ else 0) * bc.amount))
526+ let bC = (ak(p) + ((if ((bA == aG))
537527 then 1
538- else 0) * bd.amount))
528+ else 0) * bc.amount))
539529 if ((aa(p) != aA))
540530 then throw("The project hasn't accepted by community")
541531 else if ((height >= ac(p)))
542532 then throw("The time for crowdfunding has expired")
543- else if ((bC >= bD))
533+ else if ((bB >= bC))
544534 then throw("Negative fund can't be higher than positive fund")
545- else if (if ((bB != aG))
546- then (bB != aH)
535+ else if (if ((bA != aG))
536+ then (bA != aH)
547537 else false)
548538 then throw("Wrong mode parameter")
549539 else if ((W(p) == j))
550540 then throw("Can't donate own project")
551- else if ((bd.amount != aL[(bA - 1)]))
552- then throw(("The payment must be equal to tier amount: " + toString(aL[(bA - 1)])))
553- else WriteSet([DataEntry(H(p, j), K), DataEntry(F(p, j), (am(p, j) + ((if ((bB == aG))
541+ else if ((bc.amount != aL[(bz - 1)]))
542+ then throw(("The payment must be equal to tier amount: " + toString(aL[(bz - 1)])))
543+ else WriteSet([DataEntry(H(p, j), K), DataEntry(F(p, j), (am(p, j) + ((if ((bA == aG))
554544 then 1
555- else 0) * bd.amount))), DataEntry(G(p, j), (an(p, j) + ((if ((bB == aH))
545+ else 0) * bc.amount))), DataEntry(G(p, j), (an(p, j) + ((if ((bA == aH))
556546 then 1
557- else 0) * bd.amount))), DataEntry(D(p), bD), DataEntry(E(p), bC), DataEntry(J(p, j, toString(K)), bh), DataEntry(L(p, j, toString(K)), bB), DataEntry(M(p, j, toString(K)), bA)])
547+ else 0) * bc.amount))), DataEntry(D(p), bC), DataEntry(E(p), bB), DataEntry(J(p, j, toString(K)), bg), DataEntry(L(p, j, toString(K)), bA), DataEntry(M(p, j, toString(K)), bz)])
558548 }
559549 }
560550
561551
562552
563553 @Callable(aP)
564-func whale (p,bh) = {
554+func whale (p,bg) = {
565555 let j = toBase58String(aP.caller.bytes)
566- let bd = extract(aP.payment)
567- if (isDefined(bd.assetId))
556+ let bc = extract(aP.payment)
557+ if (isDefined(bc.assetId))
568558 then throw("can use waves only at the moment")
569559 else if ((aa(p) != aA))
570560 then throw("The project hasn't accepted by community")
574564 then throw("The time for grant has expired")
575565 else if ((aa(p) == aD))
576566 then throw("Investement has already done")
577- else if ((((ak(p) * aO) / 100) > bd.amount))
567+ else if ((((ak(p) * aO) / 100) > bc.amount))
578568 then throw((("Investement must be more than " + toString(aO)) + "% of supportes funds"))
579- else WriteSet([DataEntry(t(p), aD), DataEntry(O(p, j), bh), DataEntry(l(W(p)), (T(W(p)) + ak(p))), DataEntry(P(p), bd.amount)])
569+ else WriteSet([DataEntry(t(p), aD), DataEntry(O(p, j), bg), DataEntry(l(W(p)), (T(W(p)) + ak(p))), DataEntry(P(p), bc.amount)])
580570 }
581571
582572
584574 @Callable(aP)
585575 func claimwinnings (p,j) = {
586576 let aW = aa(p)
587- let bE = if ((aW == aD))
577+ let bD = if ((aW == aD))
588578 then 1
589579 else 0
590- let bF = if ((aW != aD))
580+ let bE = if ((aW != aD))
591581 then 1
592582 else 0
593- let bG = ak(p)
594- let bH = al(p)
595- let bI = (((bE * (am(p, j) * 100)) / (if ((0 >= bG))
583+ let bF = ak(p)
584+ let bG = al(p)
585+ let bH = (((bD * (am(p, j) * 100)) / (if ((0 >= bF))
596586 then 1
597- else bG)) + ((bF * (an(p, j) * 100)) / (if ((0 >= bH))
587+ else bF)) + ((bE * (an(p, j) * 100)) / (if ((0 >= bG))
598588 then 1
599- else bH)))
600- let bJ = ((bH * aO) / 100)
601- let bK = ((bE * ((bI * bH) / 100)) + (bF * ((bI * (if ((bG > bJ))
602- then bJ
603- else bG)) / 100)))
604- let bL = (bE * ((bI * as(p)) / 100))
605- let bM = (((if ((W(p) == j))
589+ else bG)))
590+ let bI = ((bG * aO) / 100)
591+ let bJ = ((bD * ((bH * bG) / 100)) + (bE * ((bH * (if ((bF > bI))
592+ then bI
593+ else bF)) / 100)))
594+ let bK = (bD * ((bH * as(p)) / 100))
595+ let bL = (((if ((W(p) == j))
606596 then 1
607- else 0) * bG) * (if ((aW != aD))
597+ else 0) * bF) * (if ((aW != aD))
608598 then 1
609599 else 0))
610600 if ((aW == aB))
613603 then (ad(p) >= height)
614604 else false)
615605 then throw("The time for grant has not expired yet")
616- else if ((0 >= (bG + bH)))
606+ else if ((0 >= (bF + bG)))
617607 then throw("The campaign wasn't active")
618- else WriteSet([DataEntry(l(j), (((T(j) + bK) + bL) + bM)), DataEntry(t(p), if ((bM > 0))
608+ else WriteSet([DataEntry(l(j), (((T(j) + bJ) + bK) + bL)), DataEntry(t(p), if ((bL > 0))
619609 then aC
620610 else aW), DataEntry(C(p, j), aF)])
621611 }
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) = ("expiration_one_" + p)
6868
6969
7070 func w (p) = ("expiration_two_" + p)
7171
7272
7373 func x (p) = ("ncommits_" + p)
7474
7575
7676 func y (p,j) = ((("commit_" + p) + "_") + j)
7777
7878
7979 func z (p,j) = ((("reveal_" + p) + "_") + j)
8080
8181
8282 func A (p) = ("cnt_yes_" + p)
8383
8484
8585 func B (p) = ("cnt_no_" + p)
8686
8787
8888 func C (p,j) = ((("final_" + p) + "_") + j)
8989
9090
9191 func D (p) = ("positive_fund_" + p)
9292
9393
9494 func E (p) = ("negative_fund_" + p)
9595
9696
9797 func F (p,j) = ((D(p) + "_") + j)
9898
9999
100100 func G (p,j) = ((E(p) + "_") + j)
101101
102102
103103 func H (p,j) = ((("reviews_cnt_" + p) + "_") + j)
104104
105105
106106 func I (p,j) = ((("review_" + p) + "_") + j)
107107
108108
109109 func J (p,j,K) = ((I(p, j) + "_text_id:") + K)
110110
111111
112112 func L (p,j,K) = ((I(p, j) + "_mode_id:") + K)
113113
114114
115115 func M (p,j,K) = ((I(p, j) + "_tier_id:") + K)
116116
117117
118118 func N (p,j) = (I(p, j) + "_votereview")
119119
120120
121121 func O (p,j) = (I(p, j) + "_whalereview")
122122
123123
124124 func P (p) = ("buyout_amount_" + p)
125125
126126
127127 func Q (p,j) = ((("winnings_" + p) + "_") + j)
128128
129129
130130 func R (j) = g(i(j))
131131
132132
133133 func S (j) = g(k(j))
134134
135135
136136 func T (j) = b(l(j))
137137
138138
139139 func U (j) = g(m(j))
140140
141141
142142 func V (j) = g(n(j))
143143
144144
145145 func W (p) = g(o(p))
146146
147147
148148 func X (p) = b(q(p))
149149
150150
151151 func Y (p) = b(r(p))
152152
153153
154154 func Z (p) = b(s(p))
155155
156156
157157 func aa (p) = g(t(p))
158158
159159
160160 func ab (p) = g(u(p))
161161
162162
163163 func ac (p) = b(v(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,j) = g(y(p, j))
173173
174174
175175 func ag (p,j) = g(z(p, j))
176176
177177
178178 func ah (p) = b(A(p))
179179
180180
181181 func ai (p) = b(B(p))
182182
183183
184184 func aj (p,j) = g(C(p, j))
185185
186186
187187 func ak (p) = b(D(p))
188188
189189
190190 func al (p) = b(E(p))
191191
192192
193193 func am (p,j) = b(F(p, j))
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,K) = g(J(p, j, K))
203203
204204
205205 func aq (p,j,K) = g(L(p, j, K))
206206
207207
208208 func ar (p,j,K) = b(M(p, j, K))
209209
210210
211211 func as (p) = b(P(p))
212212
213213
214214 func at (p,j) = b(Q(p, j))
215215
216216
217217 let au = "registered"
218218
219219 let av = "invited"
220220
221221 let aw = "whale"
222222
223223 let ax = "new"
224224
225225 let ay = "voting_commit"
226226
227227 let az = "voting_reveal"
228228
229229 let aA = "featured"
230230
231231 let aB = "delisted"
232232
233233 let aC = "cashout"
234234
235235 let aD = "buyout"
236236
237237 let aE = "finished"
238238
239239 let aF = "claimed"
240240
241241 let aG = "positive"
242242
243243 let aH = "negative"
244244
245245 let aI = "3NBB3iv7YDRsD8ZM2Pw2V5eTcsfqh3j2mvF"
246246
247247 let aJ = 3
248248
249249 let aK = 2
250250
251251 let aL = [(3 * 100000000), (10 * 100000000), (100 * 100000000), (300 * 100000000), (1000 * 100000000)]
252252
253253 let aM = (3 * 100000000)
254254
255255 let aN = (1 * 100000000)
256256
257257 let aO = 150
258258
259259 @Callable(aP)
260260 func inviteuser (aQ,aR) = {
261261 let j = toBase58String(aP.caller.bytes)
262262 let aS = S(aQ)
263263 let aT = S(j)
264264 if (if ((aS == au))
265265 then true
266266 else (aS == aw))
267267 then throw("User has already been registered")
268268 else if (if (if ((aT != au))
269269 then (aT != aI)
270270 else false)
271271 then (aT != aw)
272272 else false)
273273 then throw(("Your account should be whitelisted. status: " + aT))
274274 else WriteSet([DataEntry(i(aQ), j), DataEntry(m(aQ), aR), DataEntry(k(aQ), av)])
275275 }
276276
277277
278278
279279 @Callable(aP)
280280 func signupbylink (aU,aR,aV) = {
281281 let j = toBase58String(aP.caller.bytes)
282282 let aW = S(aU)
283283 if ((aW != av))
284284 then throw(((((("Referral invite needed. Current status: " + aW) + ", key:") + k(aU)) + ", account:") + aU))
285285 else WriteSet([DataEntry(m(j), aR), DataEntry(n(j), height), DataEntry(k(j), if ((aV == aw))
286286 then aw
287287 else au), DataEntry(k(aU), if ((aV == aw))
288288 then aw
289289 else au), DataEntry(i(j), R(aU))])
290290 }
291291
292292
293293
294294 @Callable(aP)
295295 func signup (aR,aV) = {
296296 let j = toBase58String(aP.caller.bytes)
297297 let aW = S(j)
298298 if ((aW == a))
299299 then throw(((((("Referral invite needed. Current status: " + aW) + ", key:") + k(j)) + ", account:") + j))
300300 else WriteSet([DataEntry(m(j), aR), DataEntry(n(j), height), DataEntry(k(j), if ((aV == aw))
301301 then aw
302302 else au)])
303303 }
304304
305305
306306
307307 @Callable(aP)
308308 func userupdate (aR,aV) = {
309309 let j = toBase58String(aP.caller.bytes)
310310 WriteSet([DataEntry(m(j), aR), DataEntry(k(j), if ((aV == aw))
311311 then aw
312312 else au)])
313313 }
314314
315315
316316
317317 @Callable(aP)
318-func godsmodestring (c,aX) = {
319- let j = toBase58String(aP.caller.bytes)
320- if ((j != aI))
321- then throw("you're not admin")
322- else WriteSet([DataEntry(c, aX)])
323- }
324-
325-
326-
327-@Callable(aP)
328318 func projupdate (p,aR) = {
329319 let j = toBase58String(aP.caller.bytes)
330320 if ((W(p) != j))
331321 then throw("You're not author")
332322 else WriteSet([DataEntry(u(p), aR)])
333323 }
334324
335325
336326
337327 @Callable(aP)
338328 func withdraw () = {
339- let aY = toBase58String(aP.caller.bytes)
340- let aZ = T(aY)
341- if ((0 >= aZ))
329+ let aX = toBase58String(aP.caller.bytes)
330+ let aY = T(aX)
331+ if ((0 >= aY))
342332 then throw("Not enough balance")
343- else ScriptResult(WriteSet([DataEntry(l(aY), 0)]), TransferSet([ScriptTransfer(aP.caller, aZ, unit)]))
333+ else ScriptResult(WriteSet([DataEntry(l(aX), 0)]), TransferSet([ScriptTransfer(aP.caller, aY, unit)]))
344334 }
345335
346336
347337
348338 @Callable(aP)
349-func additem (p,ba,bb,bc,aR) = {
339+func additem (p,aZ,ba,bb,aR) = {
350340 let j = toBase58String(aP.caller.bytes)
351- let bd = extract(aP.payment)
352- if (isDefined(bd.assetId))
341+ let bc = extract(aP.payment)
342+ if (isDefined(bc.assetId))
353343 then throw("can use waves only at the moment")
354- else if ((bd.amount != aM))
355- then throw(((("Please pay exact amount for the listing: " + toString(aM)) + ", actual payment is: ") + toString(bd.amount)))
356- else if (!(if (if ((ba > 2))
344+ else if ((bc.amount != aM))
345+ then throw(((("Please pay exact amount for the listing: " + toString(aM)) + ", actual payment is: ") + toString(bc.amount)))
346+ else if (!(if (if ((aZ > 2))
347+ then (ba > aZ)
348+ else false)
357349 then (bb > ba)
358- else false)
359- then (bc > bb)
360350 else false))
361351 then throw("Incorrect time parameters")
362352 else if ((W(p) != a))
363353 then throw("Item already exist")
364- else WriteSet([DataEntry(o(p), j), DataEntry(q(p), height), DataEntry(r(p), (height + ba)), DataEntry(s(p), aM), DataEntry(t(p), ax), DataEntry(u(p), aR), DataEntry(v(p), (height + bb)), DataEntry(w(p), (height + bc))])
354+ else WriteSet([DataEntry(o(p), j), DataEntry(q(p), height), DataEntry(r(p), (height + aZ)), DataEntry(s(p), aM), DataEntry(t(p), ax), DataEntry(u(p), aR), DataEntry(v(p), (height + ba)), DataEntry(w(p), (height + bb))])
365355 }
366356
367357
368358
369359 @Callable(aP)
370360 func votecommit (p,aU) = {
371361 let j = toBase58String(aP.caller.bytes)
372- let be = ae(p)
362+ let bd = ae(p)
373363 let aW = aa(p)
374- let bd = extract(aP.payment)
375- if (isDefined(bd.assetId))
364+ let bc = extract(aP.payment)
365+ if (isDefined(bc.assetId))
376366 then throw("can use waves only at the moment")
377- else if ((bd.amount != (2 * aN)))
367+ else if ((bc.amount != (2 * aN)))
378368 then throw("Not enough funds to vote for a new item")
379369 else if ((height > Y(p)))
380370 then throw("The voting has expired")
381371 else if ((W(p) == j))
382372 then throw("Cannot vote for own proposal")
383373 else if (if ((aW != ax))
384374 then (aW != ay)
385375 else false)
386376 then throw("Wrong item status for 'commit' action")
387- else if ((be >= aJ))
377+ else if ((bd >= aJ))
388378 then throw("No more voters for this item")
389379 else if ((af(p, j) != a))
390380 then throw("Can't vote twice")
391- else WriteSet([DataEntry(t(p), if (((be + 1) == aJ))
381+ else WriteSet([DataEntry(t(p), if (((bd + 1) == aJ))
392382 then az
393- else ay), DataEntry(y(p, j), aU), DataEntry(x(p), (be + 1))])
383+ else ay), DataEntry(y(p, j), aU), DataEntry(x(p), (bd + 1))])
394384 }
395385
396386
397387
398388 @Callable(aP)
399-func votereveal (p,bf,bg,bh) = {
400- let bi = toBase58String(sha256(toBytes((bf + bg))))
389+func votereveal (p,be,bf,bg) = {
390+ let bh = toBase58String(sha256(toBytes((be + bf))))
401391 let j = toBase58String(aP.caller.bytes)
402- let bj = if ((bf == aA))
392+ let bi = if ((be == aA))
403393 then 1
404394 else 0
405- let bk = if ((bf == aB))
395+ let bj = if ((be == aB))
406396 then 1
407397 else 0
408- let bl = ah(p)
409- let bm = ai(p)
410- let aS = if ((bl >= aK))
398+ let bk = ah(p)
399+ let bl = ai(p)
400+ let aS = if ((bk >= aK))
411401 then aA
412- else if ((bm >= aK))
402+ else if ((bl >= aK))
413403 then aB
414404 else az
415- if ((af(p, j) != bi))
405+ if ((af(p, j) != bh))
416406 then throw("Hashes don't match")
417407 else if ((height > Y(p)))
418408 then throw("The challenge has expired")
419409 else if ((aJ > ae(p)))
420410 then throw("It's still commit stage")
421411 else if (if ((aa(p) != az))
422412 then (aa(p) != aS)
423413 else false)
424414 then throw("Wrong item status for 'reveal' action")
425415 else if ((ag(p, j) != a))
426416 then throw("Can't vote twice")
427- else if (if ((bf != aA))
428- then (bf != aB)
417+ else if (if ((be != aA))
418+ then (be != aB)
429419 else false)
430420 then throw("Bad vote result format")
431- else WriteSet([DataEntry(z(p, j), bf), DataEntry(A(p), (bl + bj)), DataEntry(B(p), (bm + bk)), DataEntry(t(p), aS), DataEntry(N(p, j), bh), DataEntry(l(j), (T(j) + aN))])
421+ else ScriptResult(WriteSet([DataEntry(z(p, j), be), DataEntry(A(p), (bk + bi)), DataEntry(B(p), (bl + bj)), DataEntry(t(p), aS), DataEntry(N(p, j), bg)]), TransferSet([ScriptTransfer(addressFromStringValue(j), aN, unit)]))
432422 }
433423
434424
435425
436426 @Callable(aP)
437427 func finalizevoting (p,j) = {
438- let bl = ah(p)
439- let bm = ai(p)
440- let bn = ag(p, j)
441- let bo = (j == W(p))
442- let bp = if ((bl > aK))
428+ let bk = ah(p)
429+ let bl = ai(p)
430+ let bm = ag(p, j)
431+ let bn = (j == W(p))
432+ let bo = if ((bk > aK))
443433 then aA
444- else if ((bm > aK))
434+ else if ((bl > aK))
445435 then aB
446436 else a
447- let bq = if (if ((bl == aJ))
437+ let bp = if (if ((bk == aJ))
448438 then true
449- else (bm == aJ))
439+ else (bl == aJ))
450440 then 0
451441 else 1
452- let br = if ((bp == aA))
453- then bl
454- else if ((bp == aB))
455- then bm
442+ let bq = if ((bo == aA))
443+ then bk
444+ else if ((bo == aB))
445+ then bl
456446 else 0
457- let bs = (aJ - br)
458- let bt = if ((bp == bn))
447+ let br = (aJ - bq)
448+ let bs = if ((bo == bm))
459449 then 1
460450 else 0
461- let bu = if ((br == 0))
451+ let bt = if ((bq == 0))
462452 then 0
463- else (bt * (aN + ((bq * ((bs * aN) + aM)) / br)))
464- let bv = (((aM * (if (bo)
453+ else (bs * (aN + ((bp * ((br * aN) + aM)) / bq)))
454+ let bu = (((aM * (if (bn)
465455 then 1
466- else 0)) * (if ((bq == 1))
456+ else 0)) * (if ((bp == 1))
467457 then 0
468- else 1)) * (if ((bp == aA))
458+ else 1)) * (if ((bo == aA))
469459 then 1
470460 else 0))
471461 if ((Y(p) > height))
472462 then throw("The voting hasn't finished yet")
473463 else if ((aj(p, j) == aE))
474464 then throw("Account has already claimed")
475- else if (if ((bn == a))
476- then !(bo)
465+ else if (if ((bm == a))
466+ then !(bn)
477467 else false)
478468 then throw("Account hasnot voted, hasnot reveal or isnot author")
479- else if ((bp == a))
469+ else if ((bo == a))
480470 then throw("Voting has expired")
481- else WriteSet([DataEntry(C(p, j), aE), DataEntry(l(j), ((T(j) + bu) + bv))])
471+ else ScriptResult(WriteSet([DataEntry(C(p, j), aE)]), TransferSet([ScriptTransfer(addressFromStringValue(j), (bt + bu), unit)]))
482472 }
483473
484474
485475
486476 @Callable(aP)
487477 func closeexpiredvoting (p,j) = {
488- let bp = if ((ah(p) > aK))
478+ let bo = if ((ah(p) > aK))
489479 then aA
490480 else if ((ai(p) > aK))
491481 then aB
492482 else a
493- let bn = ag(p, j)
494- let bo = (j == W(p))
495- let bw = af(p, j)
496- let bx = (ae(p) == aJ)
497- let bv = (aM * (if (bo)
483+ let bm = ag(p, j)
484+ let bn = (j == W(p))
485+ let bv = af(p, j)
486+ let bw = (ae(p) == aJ)
487+ let bu = (aM * (if (bn)
498488 then 1
499489 else 0))
500- let by = ((aN * (if (bx)
490+ let bx = ((aN * (if (bw)
501491 then 1
502- else 0)) * (if ((bn != a))
492+ else 0)) * (if ((bm != a))
503493 then 1
504494 else 0))
505- let bz = (((2 * aN) * (if (bx)
495+ let by = (((2 * aN) * (if (bw)
506496 then 0
507- else 1)) * (if ((bw != a))
497+ else 1)) * (if ((bv != a))
508498 then 1
509499 else 0))
510500 if ((Y(p) > height))
511501 then throw("The voting hasn't finished yet")
512- else if (if (!(bo))
513- then (bw == a)
502+ else if (if (!(bn))
503+ then (bv == a)
514504 else false)
515505 then throw("Wrong account or item")
516506 else if ((aj(p, j) == aE))
517507 then throw("Account has already claimed")
518- else if ((bp != a))
508+ else if ((bo != a))
519509 then throw("Wrong item status")
520- else WriteSet([DataEntry(C(p, j), aE), DataEntry(l(j), (((T(j) + bv) + by) + bz))])
510+ else ScriptResult(WriteSet([DataEntry(C(p, j), aE)]), TransferSet([ScriptTransfer(addressFromStringValue(j), ((bu + bx) + by), unit)]))
521511 }
522512
523513
524514
525515 @Callable(aP)
526-func donate (p,bA,bB,bh) = {
516+func donate (p,bz,bA,bg) = {
527517 let j = toBase58String(aP.caller.bytes)
528- let bd = extract(aP.payment)
529- if (isDefined(bd.assetId))
518+ let bc = extract(aP.payment)
519+ if (isDefined(bc.assetId))
530520 then throw("can use waves only at the moment")
531521 else {
532522 let K = (ao(p, j) + 1)
533- let bC = (al(p) + ((if ((bB == aH))
523+ let bB = (al(p) + ((if ((bA == aH))
534524 then 1
535- else 0) * bd.amount))
536- let bD = (ak(p) + ((if ((bB == aG))
525+ else 0) * bc.amount))
526+ let bC = (ak(p) + ((if ((bA == aG))
537527 then 1
538- else 0) * bd.amount))
528+ else 0) * bc.amount))
539529 if ((aa(p) != aA))
540530 then throw("The project hasn't accepted by community")
541531 else if ((height >= ac(p)))
542532 then throw("The time for crowdfunding has expired")
543- else if ((bC >= bD))
533+ else if ((bB >= bC))
544534 then throw("Negative fund can't be higher than positive fund")
545- else if (if ((bB != aG))
546- then (bB != aH)
535+ else if (if ((bA != aG))
536+ then (bA != aH)
547537 else false)
548538 then throw("Wrong mode parameter")
549539 else if ((W(p) == j))
550540 then throw("Can't donate own project")
551- else if ((bd.amount != aL[(bA - 1)]))
552- then throw(("The payment must be equal to tier amount: " + toString(aL[(bA - 1)])))
553- else WriteSet([DataEntry(H(p, j), K), DataEntry(F(p, j), (am(p, j) + ((if ((bB == aG))
541+ else if ((bc.amount != aL[(bz - 1)]))
542+ then throw(("The payment must be equal to tier amount: " + toString(aL[(bz - 1)])))
543+ else WriteSet([DataEntry(H(p, j), K), DataEntry(F(p, j), (am(p, j) + ((if ((bA == aG))
554544 then 1
555- else 0) * bd.amount))), DataEntry(G(p, j), (an(p, j) + ((if ((bB == aH))
545+ else 0) * bc.amount))), DataEntry(G(p, j), (an(p, j) + ((if ((bA == aH))
556546 then 1
557- else 0) * bd.amount))), DataEntry(D(p), bD), DataEntry(E(p), bC), DataEntry(J(p, j, toString(K)), bh), DataEntry(L(p, j, toString(K)), bB), DataEntry(M(p, j, toString(K)), bA)])
547+ else 0) * bc.amount))), DataEntry(D(p), bC), DataEntry(E(p), bB), DataEntry(J(p, j, toString(K)), bg), DataEntry(L(p, j, toString(K)), bA), DataEntry(M(p, j, toString(K)), bz)])
558548 }
559549 }
560550
561551
562552
563553 @Callable(aP)
564-func whale (p,bh) = {
554+func whale (p,bg) = {
565555 let j = toBase58String(aP.caller.bytes)
566- let bd = extract(aP.payment)
567- if (isDefined(bd.assetId))
556+ let bc = extract(aP.payment)
557+ if (isDefined(bc.assetId))
568558 then throw("can use waves only at the moment")
569559 else if ((aa(p) != aA))
570560 then throw("The project hasn't accepted by community")
571561 else if ((ac(p) > height))
572562 then throw("The time for crowdfunding has not expired yet")
573563 else if ((height > ad(p)))
574564 then throw("The time for grant has expired")
575565 else if ((aa(p) == aD))
576566 then throw("Investement has already done")
577- else if ((((ak(p) * aO) / 100) > bd.amount))
567+ else if ((((ak(p) * aO) / 100) > bc.amount))
578568 then throw((("Investement must be more than " + toString(aO)) + "% of supportes funds"))
579- else WriteSet([DataEntry(t(p), aD), DataEntry(O(p, j), bh), DataEntry(l(W(p)), (T(W(p)) + ak(p))), DataEntry(P(p), bd.amount)])
569+ else WriteSet([DataEntry(t(p), aD), DataEntry(O(p, j), bg), DataEntry(l(W(p)), (T(W(p)) + ak(p))), DataEntry(P(p), bc.amount)])
580570 }
581571
582572
583573
584574 @Callable(aP)
585575 func claimwinnings (p,j) = {
586576 let aW = aa(p)
587- let bE = if ((aW == aD))
577+ let bD = if ((aW == aD))
588578 then 1
589579 else 0
590- let bF = if ((aW != aD))
580+ let bE = if ((aW != aD))
591581 then 1
592582 else 0
593- let bG = ak(p)
594- let bH = al(p)
595- let bI = (((bE * (am(p, j) * 100)) / (if ((0 >= bG))
583+ let bF = ak(p)
584+ let bG = al(p)
585+ let bH = (((bD * (am(p, j) * 100)) / (if ((0 >= bF))
596586 then 1
597- else bG)) + ((bF * (an(p, j) * 100)) / (if ((0 >= bH))
587+ else bF)) + ((bE * (an(p, j) * 100)) / (if ((0 >= bG))
598588 then 1
599- else bH)))
600- let bJ = ((bH * aO) / 100)
601- let bK = ((bE * ((bI * bH) / 100)) + (bF * ((bI * (if ((bG > bJ))
602- then bJ
603- else bG)) / 100)))
604- let bL = (bE * ((bI * as(p)) / 100))
605- let bM = (((if ((W(p) == j))
589+ else bG)))
590+ let bI = ((bG * aO) / 100)
591+ let bJ = ((bD * ((bH * bG) / 100)) + (bE * ((bH * (if ((bF > bI))
592+ then bI
593+ else bF)) / 100)))
594+ let bK = (bD * ((bH * as(p)) / 100))
595+ let bL = (((if ((W(p) == j))
606596 then 1
607- else 0) * bG) * (if ((aW != aD))
597+ else 0) * bF) * (if ((aW != aD))
608598 then 1
609599 else 0))
610600 if ((aW == aB))
611601 then throw("The project hasn't accepted by community")
612602 else if (if ((aW != aD))
613603 then (ad(p) >= height)
614604 else false)
615605 then throw("The time for grant has not expired yet")
616- else if ((0 >= (bG + bH)))
606+ else if ((0 >= (bF + bG)))
617607 then throw("The campaign wasn't active")
618- else WriteSet([DataEntry(l(j), (((T(j) + bK) + bL) + bM)), DataEntry(t(p), if ((bM > 0))
608+ else WriteSet([DataEntry(l(j), (((T(j) + bJ) + bK) + bL)), DataEntry(t(p), if ((bL > 0))
619609 then aC
620610 else aW), DataEntry(C(p, j), aF)])
621611 }
622612
623613

github/deemru/w8io/3ef1775 
187.35 ms