tx · 3ZoqCBeUZYJX48kJkpYzt5xueNmu5scqigvAY8dxMsoM

3PJPW1rknfSxCKjUwRp1Upg7Yxhe7VerDqg:  -0.01700000 Waves

2024.01.05 11:31 [3983758] smart account 3PJPW1rknfSxCKjUwRp1Upg7Yxhe7VerDqg > SELF 0.00000000 Waves

{ "type": 13, "id": "3ZoqCBeUZYJX48kJkpYzt5xueNmu5scqigvAY8dxMsoM", "fee": 1700000, "feeAssetId": null, "timestamp": 1704443571804, "version": 1, "sender": "3PJPW1rknfSxCKjUwRp1Upg7Yxhe7VerDqg", "senderPublicKey": "7nSWVBfVWDAFZYVVRuNHc1a8vZT9nLbDwm4qn4MaX473", "proofs": [ "3JajFEdh6xNv7DsrsggjJEAeFN3AUGksGgffxroFMuK5UUsH3bsFB9QojFfGQoa9nKckQvYZFLfyPr5fTxyXAnrE" ], "script": "base64:AAIFAAAAAAAAACgIAhIFCgMICAISBAoCCAISAwoBCBIDCgEIEgMKAQgSAwoBCBIDCgEIAAAAMQEAAAAHdGhyb3dJZgAAAAIAAAAJY29uZGl0aW9uAAAABWVycm9yAwUAAAAJY29uZGl0aW9uCQAAAgAAAAEFAAAABWVycm9yBgEAAAALd3JpdGVCaW5hcnkAAAACAAAAA2tleQAAAAV2YWx1ZQkBAAAAC0JpbmFyeUVudHJ5AAAAAgUAAAADa2V5BQAAAAV2YWx1ZQEAAAAId3JpdGVJbnQAAAACAAAAA2tleQAAAAV2YWx1ZQMJAABmAAAAAgAAAAAAAAAAAAUAAAAFdmFsdWUJAAACAAAAAQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAXd3JpdGluZyBuZWdhdGl2ZSB2YWx1ZSAJAAGkAAAAAQUAAAAFdmFsdWUCAAAACSBmb3Iga2V5IAUAAAADa2V5CQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAADa2V5BQAAAAV2YWx1ZQEAAAAQd3JpdGVDb25zdFN0cmluZwAAAAIAAAADa2V5AAAABXZhbHVlAwkBAAAAASEAAAABCQEAAAAJaXNEZWZpbmVkAAAAAQkABB0AAAACBQAAAAR0aGlzBQAAAANrZXkJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAAA2tleQUAAAAFdmFsdWUJAAACAAAAAQkAASwAAAACAgAAABVhbHJlYWR5IGluaXRpYWxpemVkOiAFAAAAA2tleQEAAAANd3JpdGVDb25zdEludAAAAAIAAAADa2V5AAAABXZhbHVlAwkBAAAAASEAAAABCQEAAAAJaXNEZWZpbmVkAAAAAQkABBoAAAACBQAAAAR0aGlzBQAAAANrZXkJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAANrZXkFAAAABXZhbHVlCQAAAgAAAAEJAAEsAAAAAgIAAAAQYWxyZWFkeSBleGlzdHM6IAUAAAADa2V5AQAAAAhjaGFuZ2VCeQAAAAIAAAADa2V5AAAABXZhbHVlCQEAAAAId3JpdGVJbnQAAAACBQAAAANrZXkJAABkAAAAAgkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzBQAAAANrZXkAAAAAAAAAAAAFAAAABXZhbHVlAQAAAAVhc0ludAAAAAEAAAAFdmFsdWUEAAAAByRtYXRjaDAFAAAABXZhbHVlAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAA2ludAUAAAAHJG1hdGNoMAUAAAADaW50CQAAAgAAAAECAAAAGXdyb25nIHR5cGUsIGV4cGVjdGVkOiBJbnQAAAAAEmNvbmZpZ0FkZHJlc3NTdG9yZQIAAAAGY29uZmlnAAAAAA1jb25maWdBZGRyZXNzCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQmAAAAAQkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEHQAAAAIFAAAABHRoaXMFAAAAEmNvbmZpZ0FkZHJlc3NTdG9yZQIAAAAaY2hpbGRyZW4udm90aW5nOiBubyBjb25maWcCAAAAFmludmFsaWQgY29uZmlnIGFkZHJlc3MAAAAABkhFSUdIVAUAAAAGaGVpZ2h0AQAAAAZhZHZpc2UAAAAACQABLAAAAAICAAAACGhlaWdodDogCQABpAAAAAEFAAAABkhFSUdIVAAAAAAEQkFTRQAAAAAAAAAD6AEAAAAJb3BBbGxvd2VkAAAAAQAAAAJvcAQAAAABYQkAA/wAAAAEBQAAAA1jb25maWdBZGRyZXNzAgAAAAlvcEFsbG93ZWQJAARMAAAAAgUAAAACb3AFAAAAA25pbAUAAAADbmlsAwkAAAAAAAACBQAAAAFhBQAAAAFhBgkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4AAAAAEGNoaWxkcmVuQ29udHJhY3QJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABCYAAAABCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQdAAAAAgUAAAANY29uZmlnQWRkcmVzcwIAAAARY29udHJhY3RfY2hpbGRyZW4CAAAAFG5vIGNvbnRyYWN0X2NoaWxkcmVuAgAAABlpbnZhbGlkIGNvbnRyYWN0X2NoaWxkcmVuAAAAABR2b3RpbmdSZXN1bHRDb250cmFjdAkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEJgAAAAEJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABB0AAAACBQAAAA1jb25maWdBZGRyZXNzAgAAABZjb250cmFjdF92b3RpbmdfcmVzdWx0AgAAABlubyBjb250cmFjdF92b3RpbmdfcmVzdWx0AgAAAB5pbnZhbGlkIGNvbnRyYWN0X3ZvdGluZ19yZXN1bHQBAAAAEnByb3Bvc2FsQ2hpbGRTdG9yZQAAAAEAAAACaWQJAAEsAAAAAgIAAAAPcHJvcG9zYWxfY2hpbGRfBQAAAAJpZAEAAAAUcHJvcG9zYWxBZGRyZXNzU3RvcmUAAAABAAAAAmlkCQABLAAAAAICAAAAEXByb3Bvc2FsX2FkZHJlc3NfBQAAAAJpZAEAAAATcHJvcG9zYWxIZWlnaHRTdG9yZQAAAAEAAAACaWQJAAEsAAAAAgIAAAAQcHJvcG9zYWxfaGVpZ2h0XwUAAAACaWQBAAAAGHByb3Bvc2FsVm90aW5nU3RhcnRTdG9yZQAAAAEAAAACaWQJAAEsAAAAAgIAAAAVcHJvcG9zYWxfdm90aW5nc3RhcnRfBQAAAAJpZAEAAAAWcHJvcG9zYWxWb3RpbmdFbmRTdG9yZQAAAAEAAAACaWQJAAEsAAAAAgIAAAATcHJvcG9zYWxfdm90aW5nZW5kXwUAAAACaWQBAAAAD3Byb3Bvc2FsQnlTdG9yZQAAAAEAAAACaWQJAAEsAAAAAgIAAAAMcHJvcG9zYWxfYnlfBQAAAAJpZAEAAAAYcHJvcG9zYWxBdHRhY2htZW50c1N0b3JlAAAAAQAAAAJpZAkAASwAAAACAgAAABVwcm9wb3NhbF9hdHRhY2htZW50c18FAAAAAmlkAQAAABVwcm9wb3NhbFRvdGFsWWVzU3RvcmUAAAABAAAAAmlkCQABLAAAAAICAAAADXByb3Bvc2FsX3llc18FAAAAAmlkAQAAABRwcm9wb3NhbFRvdGFsTm9TdG9yZQAAAAEAAAACaWQJAAEsAAAAAgIAAAAMcHJvcG9zYWxfbm9fBQAAAAJpZAEAAAAUcHJvcG9zYWxVc2VyWWVzU3RvcmUAAAACAAAABHVzZXIAAAACaWQJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAEnVzZXJfcHJvcG9zYWxfeWVzXwUAAAAEdXNlcgIAAAABXwUAAAACaWQBAAAAE3Byb3Bvc2FsVXNlck5vU3RvcmUAAAACAAAABHVzZXIAAAACaWQJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAEXVzZXJfcHJvcG9zYWxfbm9fBQAAAAR1c2VyAgAAAAFfBQAAAAJpZAEAAAAadXNlckxhc3RQcm9wb3NlSGVpZ2h0U3RvcmUAAAABAAAABHVzZXIJAAEsAAAAAgIAAAATcHJvcG9zZV9sYXN0aGVpZ2h0XwUAAAAEdXNlcgEAAAAHdXNlclllcwAAAAIAAAAEdXNlcgAAAAJpZAkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzCQEAAAAUcHJvcG9zYWxVc2VyWWVzU3RvcmUAAAACBQAAAAR1c2VyBQAAAAJpZAAAAAAAAAAAAAEAAAAGdXNlck5vAAAAAgAAAAR1c2VyAAAAAmlkCQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMJAQAAABNwcm9wb3NhbFVzZXJOb1N0b3JlAAAAAgUAAAAEdXNlcgUAAAACaWQAAAAAAAAAAAABAAAAFXVzZXJMYXN0UHJvcG9zZUhlaWdodAAAAAEAAAAEdXNlcgkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzCQEAAAAadXNlckxhc3RQcm9wb3NlSGVpZ2h0U3RvcmUAAAABBQAAAAR1c2VyAP//////////AAAAAAt0aGlzQWRkcmVzcwkABCUAAAABBQAAAAR0aGlzAQAAAAhzZXR0aW5ncwAAAAIAAAADa2V5AAAABWNoaWxkCQEAAAALdmFsdWVPckVsc2UAAAACCQAEHwAAAAEJAAEsAAAAAgkAASwAAAACBQAAAANrZXkCAAAAAV8FAAAABWNoaWxkCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgUAAAANY29uZmlnQWRkcmVzcwkAASwAAAACCQABLAAAAAIFAAAAC3RoaXNBZGRyZXNzAgAAAAFfBQAAAANrZXkJAAEsAAAAAgUAAAADa2V5AgAAAA8gaXMgbm90IGRlZmluZWQBAAAAEHVzZXJQcm9wb3NlRGVsYXkAAAABAAAABWNoaWxkCQEAAAAIc2V0dGluZ3MAAAACAgAAABJ1c2VyX3Byb3Bvc2VfZGVsYXkFAAAABWNoaWxkAQAAAAtxdW9ydW1SYXRpbwAAAAEAAAAFY2hpbGQJAQAAAAhzZXR0aW5ncwAAAAICAAAAFXByb3Bvc2FsX3F1b3J1bV9yYXRpbwUAAAAFY2hpbGQBAAAAC3Bhc3NlZFJhdGlvAAAAAQAAAAVjaGlsZAkBAAAACHNldHRpbmdzAAAAAgIAAAAVcHJvcG9zYWxfcGFzc2VkX3JhdGlvBQAAAAVjaGlsZAEAAAATcHJvcG9zYWxNaW5SZXF1aXJlZAAAAAEAAAAFY2hpbGQJAQAAAAhzZXR0aW5ncwAAAAICAAAAG3Byb3Bvc2FsX21pbl9wb3dlcl9yZXF1aXJlZAUAAAAFY2hpbGQBAAAAEXZvdGluZ1N0YXJ0T2Zmc2V0AAAAAQAAAAVjaGlsZAkBAAAACHNldHRpbmdzAAAAAgIAAAAbcHJvcG9zYWxfdm90aW5nc3RhcnRfb2Zmc2V0BQAAAAVjaGlsZAEAAAAPdm90aW5nRW5kT2Zmc2V0AAAAAQAAAAVjaGlsZAkBAAAACHNldHRpbmdzAAAAAgIAAAAZcHJvcG9zYWxfdm90aW5nZW5kX29mZnNldAUAAAAFY2hpbGQBAAAAE3Byb3Bvc2FsUXVvcnVtU3RvcmUAAAABAAAABHR4aWQJAAEsAAAAAgIAAAAWcHJvcG9zYWxfcXVvcnVtX3JhdGlvXwUAAAAEdHhpZAEAAAAGcXVvcnVtAAAAAgAAAAVjaGlsZAAAAAR0eElkCQEAAAALdmFsdWVPckVsc2UAAAACCQAEHwAAAAEJAQAAABNwcm9wb3NhbFF1b3J1bVN0b3JlAAAAAQUAAAAEdHhJZAkBAAAAC3F1b3J1bVJhdGlvAAAAAQUAAAAFY2hpbGQBAAAACXVzZXJQb3dlcgAAAAIAAAAFY2hpbGQAAAAEdXNlcgkBAAAABWFzSW50AAAAAQkAA/wAAAAEBQAAABBjaGlsZHJlbkNvbnRyYWN0AgAAAAl1c2VyUG93ZXIJAARMAAAAAgUAAAAFY2hpbGQJAARMAAAAAgUAAAAEdXNlcgUAAAADbmlsBQAAAANuaWwBAAAADWlzUGFydGljaXBhbnQAAAABAAAABXBvd2VyAwkAAAAAAAACBQAAAAVwb3dlcgAAAAAAAAAAAAkAAAIAAAABAgAAACV5b3UgYXJlIG5vdCBhIHBhcnRpY2lwYW50IG9mIHRoaXMgZGFvBQAAAANuaWwBAAAADnByb3Bvc2FsRXhpc3RzAAAAAQAAAAR0eElkBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAQAAABNwcm9wb3NhbEhlaWdodFN0b3JlAAAAAQUAAAAEdHhJZAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAVzdGFydAUAAAAHJG1hdGNoMAYHAQAAABBwcm9wb3NhbE9uVm90aW5nAAAAAQAAAAR0eElkBAAAAAtub25FeGlzdEVycgIAAAAWcHJvcG9zYWwgZG9lc24ndCBleGlzdAMJAQAAAAEhAAAAAQkBAAAADnByb3Bvc2FsRXhpc3RzAAAAAQUAAAAEdHhJZAkAAAIAAAABBQAAAAtub25FeGlzdEVycgQAAAALdm90aW5nU3RhcnQJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABBoAAAACBQAAAAR0aGlzCQEAAAAYcHJvcG9zYWxWb3RpbmdTdGFydFN0b3JlAAAAAQUAAAAEdHhJZAUAAAALbm9uRXhpc3RFcnIEAAAACXZvdGluZ0VuZAkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEGgAAAAIFAAAABHRoaXMJAQAAABZwcm9wb3NhbFZvdGluZ0VuZFN0b3JlAAAAAQUAAAAEdHhJZAUAAAALbm9uRXhpc3RFcnIDCQAAZgAAAAIFAAAAC3ZvdGluZ1N0YXJ0BQAAAAZIRUlHSFQJAAACAAAAAQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAABOdm90aW5nIG5vdCBzdGFydGVkIHlldCwgZGlzY3Vzc2lvbiBpcyBpbiBwcm9ncmVzcywgdm90aW5nIHdpbGwgc3RhcnQgYXQgYmxvY2sgCQABpAAAAAEFAAAAC3ZvdGluZ1N0YXJ0AgAAAAssIG5vdyBpdCdzIAkAAaQAAAABBQAAAAZIRUlHSFQDCQAAZgAAAAIFAAAABkhFSUdIVAUAAAAJdm90aW5nRW5kCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAFnZvdGluZyBlbmRlZCBhdCBibG9jayAJAAGkAAAAAQUAAAAJdm90aW5nRW5kAgAAAAssIG5vdyBpdCdzIAkAAaQAAAABBQAAAAZIRUlHSFQGAQAAABRwcm9wb3NhbEJlZm9yZVZvdGluZwAAAAEAAAAEdHhJZAQAAAALbm9uRXhpc3RFcnICAAAAFnByb3Bvc2FsIGRvZXNuJ3QgZXhpc3QDCQEAAAABIQAAAAEJAQAAAA5wcm9wb3NhbEV4aXN0cwAAAAEFAAAABHR4SWQJAAACAAAAAQUAAAALbm9uRXhpc3RFcnIEAAAAC3ZvdGluZ1N0YXJ0CQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkBAAAAGHByb3Bvc2FsVm90aW5nU3RhcnRTdG9yZQAAAAEFAAAABHR4SWQFAAAAC25vbkV4aXN0RXJyAwkAAGcAAAACBQAAAAZIRUlHSFQFAAAAC3ZvdGluZ1N0YXJ0CQAAAgAAAAECAAAAIHZvdGluZyBzdGFydCBpcyBhbHJlYWR5IGhhcHBlbmVkBgEAAAAQdG90YWxQb3dlclN0YWtlZAAAAAEAAAAFY2hpbGQJAQAAAAVhc0ludAAAAAEJAAP8AAAABAUAAAAQY2hpbGRyZW5Db250cmFjdAIAAAAKdG90YWxQb3dlcgkABEwAAAACBQAAAAVjaGlsZAUAAAADbmlsBQAAAANuaWwBAAAADGNhbkJyb2FkY2FzdAAAAAQAAAAFY2hpbGQAAAAEdHhJZAAAAAZ5ZXNJbmMAAAAFbm9JbmMEAAAACHZvdGVzWWVzCQAAZAAAAAIJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQfAAAAAQkBAAAAFXByb3Bvc2FsVG90YWxZZXNTdG9yZQAAAAEFAAAABHR4SWQAAAAAAAAAAAAFAAAABnllc0luYwQAAAAHdm90ZXNObwkAAGQAAAACCQEAAAALdmFsdWVPckVsc2UAAAACCQAEHwAAAAEJAQAAABRwcm9wb3NhbFRvdGFsTm9TdG9yZQAAAAEFAAAABHR4SWQAAAAAAAAAAAAFAAAABW5vSW5jBAAAAA5wcm9wb3NhbEhlaWdodAkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEHwAAAAEJAQAAABNwcm9wb3NhbEhlaWdodFN0b3JlAAAAAQUAAAAEdHhJZAIAAAAXcHJvcG9zYWwgbm90IHJlZ2lzdGVyZWQEAAAACnRvdGFsUG93ZXIJAQAAABB0b3RhbFBvd2VyU3Rha2VkAAAAAQUAAAAFY2hpbGQDCQAAAAAAAAIFAAAACnRvdGFsUG93ZXIFAAAACnRvdGFsUG93ZXIEAAAABnBhc3NlZAkBAAAAC3Bhc3NlZFJhdGlvAAAAAQUAAAAFY2hpbGQEAAAACnRvdGFsVm90ZXMJAABkAAAAAgUAAAAIdm90ZXNZZXMFAAAAB3ZvdGVzTm8EAAAACWhhc1F1b3J1bQkAAGcAAAACCQAAaQAAAAIJAABoAAAAAgUAAAAKdG90YWxWb3RlcwUAAAAEQkFTRQUAAAAKdG90YWxQb3dlcgkBAAAABnF1b3J1bQAAAAIFAAAABWNoaWxkBQAAAAR0eElkBAAAAAloYXNQYXNzZWQJAABnAAAAAgkAAGkAAAACCQAAaAAAAAIFAAAACHZvdGVzWWVzBQAAAARCQVNFBQAAAAp0b3RhbFZvdGVzBQAAAAZwYXNzZWQDBQAAAAloYXNRdW9ydW0FAAAACWhhc1Bhc3NlZAcJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQAAAA5hZHZpc2VQcm9wb3NhbAAAAAEAAAAEdHhJZAQAAAAFY2hpbGQJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABCIAAAABCQEAAAAScHJvcG9zYWxDaGlsZFN0b3JlAAAAAQUAAAAEdHhJZAIAAAAPY2hpbGQgbm90IGZvdW5kBAAAAA5wcm9wb3NhbEhlaWdodAkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEGgAAAAIFAAAABHRoaXMJAQAAABNwcm9wb3NhbEhlaWdodFN0b3JlAAAAAQUAAAAEdHhJZAIAAAALbm8gcHJvcG9zYWwEAAAAC3ZvdGluZ1N0YXJ0CQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkBAAAAGHByb3Bvc2FsVm90aW5nU3RhcnRTdG9yZQAAAAEFAAAABHR4SWQCAAAAC25vIHByb3Bvc2FsBAAAAAl2b3RpbmdFbmQJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABBoAAAACBQAAAAR0aGlzCQEAAAAWcHJvcG9zYWxW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AAEFAAAACXZvdGluZ0VuZAIAAAASLCBwcm9wb3NhbF9wb3dlcjogCQABpAAAAAEFAAAADnRvdGFsUG93ZXJTbmFwAgAAAAwsIHZvdGVfeWVzOiAJAAGkAAAAAQUAAAAIdm90ZXNZZXMCAAAACywgdm90ZV9ubzogCQABpAAAAAEFAAAAB3ZvdGVzTm8CAAAAHCwgcHJvcG9zYWxfYWxsb3dfYnJvYWRjYXN0OiAJAAGlAAAAAQMJAQAAAAIhPQAAAAIFAAAAD2Jyb2FkY2FzdEhlaWdodAD//////////wkAAGcAAAACBQAAAAZIRUlHSFQFAAAAD2Jyb2FkY2FzdEhlaWdodAcCAAAAIywgcHJvcG9zYWxfYWxsb3dfYnJvYWRjYXN0X2hlaWdodDogCQABpAAAAAEFAAAAD2Jyb2FkY2FzdEhlaWdodAIAAAAaLCBwcm9wb3NhbF92b3Rpbmdfc3VjY2VlZDoJAAGlAAAAAQkBAAAAAiE9AAAAAgUAAAAPYnJvYWRjYXN0SGVpZ2h0AP//////////AgAAABIsIHByb3Bvc2FsX3F1b3J1bToJAAGkAAAAAQUAAAABcQIAAAAULCBwcm9wb3NhbF9hZGRyZXNzOiAJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAQAAABRwcm9wb3NhbEFkZHJlc3NTdG9yZQAAAAEFAAAABHR4SWQFAAAABWNoaWxkCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgEAAAAPYnJvYWRjYXN0SGVpZ2h0AAAAAQAAAAR0eElkCQAAZAAAAAIJAQAAABFAZXh0ck5hdGl2ZSgxMDU1KQAAAAEJAQAAABZwcm9wb3NhbFZvdGluZ0VuZFN0b3JlAAAAAQUAAAAEdHhJZAAAAAAAAAAAAQAAAAcAAAABaQEAAAAHcHJvcG9zZQAAAAMAAAAFY2hpbGQAAAAEdHhJZAAAAAthdHRhY2htZW50cwQAAAAGY2hlY2tzCQEAAAAJb3BBbGxvd2VkAAAAAQIAAAAbY2hpbGRfZ292ZXJuYW5jZV9wcm9wb3NlX3R4AwkAAAAAAAACBQAAAAZjaGVja3MFAAAABmNoZWNrcwQAAAAIcmVxdWlyZWQJAQAAABNwcm9wb3NhbE1pblJlcXVpcmVkAAAAAQUAAAAFY2hpbGQEAAAABHVzZXIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBAAAAAJndgkBAAAACXVzZXJQb3dlcgAAAAIFAAAABWNoaWxkBQAAAAR1c2VyAwkAAAAAAAACBQAAAAJndgUAAAACZ3YDCQAAZgAAAAIFAAAACHJlcXVpcmVkBQAAAAJndgkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAKW5vdCBlbm91Z2ggc3Rha2VkIHBvd2VyIHRvIG1ha2UgcHJvcG9zYWwuAgAAABQgTWluaW11bSByZXF1aXJlZCA9IAkAAaQAAAABBQAAAAhyZXF1aXJlZAIAAAAMLCBhY3R1YWw6ID0gCQABpAAAAAEFAAAAAmd2BAAAAAVkZWxheQkBAAAAEHVzZXJQcm9wb3NlRGVsYXkAAAABBQAAAAVjaGlsZAQAAAAEbGFzdAkBAAAAFXVzZXJMYXN0UHJvcG9zZUhlaWdodAAAAAEFAAAABHVzZXIDAwkAAGYAAAACBQAAAARsYXN0AP//////////CQAAZgAAAAIJAABkAAAAAgUAAAAEbGFzdAUAAAAFZGVsYXkFAAAABkhFSUdIVAcJAAACAAAAAQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAxY2FuJ3QgcHJvcG9zZSB0b28gb2Z0ZW4sIGxhc3QgcHJvcm9wb3NhbCBoZWlnaHQ6IAkAAaQAAAABBQAAAARsYXN0AgAAABIsIGJsb2NrcyB0byB3YWl0OiAJAAGkAAAAAQkAAGUAAAACCQAAZAAAAAIFAAAABGxhc3QFAAAABWRlbGF5BQAAAAZIRUlHSFQEAAAAB2FkZHJlc3MJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQdAAAAAgUAAAAQY2hpbGRyZW5Db250cmFjdAkAASwAAAACAgAAAAl0cmVhc3VyeV8FAAAABWNoaWxkBQAAAAVjaGlsZAkABEwAAAACCQEAAAAQd3JpdGVDb25zdFN0cmluZwAAAAIJAQAAABJwcm9wb3NhbENoaWxkU3RvcmUAAAABBQAAAAR0eElkBQAAAAVjaGlsZAkABEwAAAACCQEAAAANd3JpdGVDb25zdEludAAAAAIJAQAAABNwcm9wb3NhbEhlaWdodFN0b3JlAAAAAQUAAAAEdHhJZAUAAAAGSEVJR0hUCQAETAAAAAIJAQAAAA13cml0ZUNvbnN0SW50AAAAAgkBAAAAGHByb3Bvc2FsVm90aW5nU3RhcnRTdG9yZQAAAAEFAAAABHR4SWQJAABkAAAAAgUAAAAGSEVJR0hUCQEAAAARdm90aW5nU3RhcnRPZmZzZXQAAAABBQAAAAVjaGlsZAkABEwAAAACCQEAAAANd3JpdGVDb25zdEludAAAAAIJAQAAABZwcm9wb3NhbFZvdGluZ0VuZFN0b3JlAAAAAQUAAAAEdHhJZAkAAGQAAAACBQAAAAZIRUlHSFQJAQAAAA92b3RpbmdFbmRPZmZzZXQAAAABBQAAAAVjaGlsZAkABEwAAAACCQEAAAAQd3JpdGVDb25zdFN0cmluZwAAAAIJAQAAAA9wcm9wb3NhbEJ5U3RvcmUAAAABBQAAAAR0eElkBQAAAAR1c2VyCQAETAAAAAIJAQAAAAh3cml0ZUludAAAAAIJAQAAABp1c2VyTGFzdFByb3Bvc2VIZWlnaHRTdG9yZQAAAAEFAAAABHVzZXIFAAAABkhFSUdIVAkABEwAAAACCQEAAAALd3JpdGVCaW5hcnkAAAACCQEAAAAYcHJvcG9zYWxBdHRhY2htZW50c1N0b3JlAAAAAQUAAAAEdHhJZAUAAAALYXR0YWNobWVudHMJAARMAAAAAgkBAAAAEHdyaXRlQ29uc3RTdHJpbmcAAAACCQEAAAAUcHJvcG9zYWxBZGRyZXNzU3RvcmUAAAABBQAAAAR0eElkBQAAAAdhZGRyZXNzBQAAAANuaWwJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgAAAAFpAQAAAA9lZGl0QXR0YWNobWVudHMAAAACAAAABHR4SWQAAAALYXR0YWNobWVudHMEAAAABmNoZWNrcwkBAAAACW9wQWxsb3dlZAAAAAECAAAAIWNoaWxkX2dvdmVybmFuY2VfZWRpdF9hdHRhY2htZW50cwMJAAAAAAAAAgUAAAAGY2hlY2tzBQAAAAZjaGVja3MEAAAABHVzZXIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVy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", "chainId": 87, "height": 3983758, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: D5SqyUfh67paTJzXjsQzmuFCrBaEQ78CbE986QZ2RL87 Next: 9ijVP3qSFNkqxFA5trRYvoZJCjNkZk4ArckaW2Trit9t Diff:
OldNewDifferences
6464 func x (y) = ("proposal_child_" + y)
6565
6666
67-func z (y) = ("proposal_height_" + y)
67+func z (y) = ("proposal_address_" + y)
6868
6969
70-func A (y) = ("proposal_votingstart_" + y)
70+func A (y) = ("proposal_height_" + y)
7171
7272
73-func B (y) = ("proposal_votingend_" + y)
73+func B (y) = ("proposal_votingstart_" + y)
7474
7575
76-func C (y) = ("proposal_by_" + y)
76+func C (y) = ("proposal_votingend_" + y)
7777
7878
79-func D (y) = ("proposal_attachments_" + y)
79+func D (y) = ("proposal_by_" + y)
8080
8181
82-func E (y) = ("proposal_yes_" + y)
82+func E (y) = ("proposal_attachments_" + y)
8383
8484
85-func F (y) = ("proposal_no_" + y)
85+func F (y) = ("proposal_yes_" + y)
8686
8787
88-func G (H,y) = ((("user_proposal_yes_" + H) + "_") + y)
88+func G (y) = ("proposal_no_" + y)
8989
9090
91-func I (H,y) = ((("user_proposal_no_" + H) + "_") + y)
91+func H (I,y) = ((("user_proposal_yes_" + I) + "_") + y)
9292
9393
94-func J (H) = ("propose_lastheight_" + H)
94+func J (I,y) = ((("user_proposal_no_" + I) + "_") + y)
9595
9696
97-func K (H,y) = valueOrElse(getInteger(this, G(H, y)), 0)
97+func K (I) = ("propose_lastheight_" + I)
9898
9999
100-func L (H,y) = valueOrElse(getInteger(this, I(H, y)), 0)
100+func L (I,y) = valueOrElse(getInteger(this, H(I, y)), 0)
101101
102102
103-func M (H) = valueOrElse(getInteger(this, J(H)), -1)
103+func M (I,y) = valueOrElse(getInteger(this, J(I, y)), 0)
104104
105105
106-let N = toString(this)
107-
108-func O (e,P) = valueOrElse(getInteger(((e + "_") + P)), valueOrErrorMessage(getInteger(o, ((N + "_") + e)), (e + " is not defined")))
106+func N (I) = valueOrElse(getInteger(this, K(I)), -1)
109107
110108
111-func Q (P) = O("user_propose_delay", P)
109+let O = toString(this)
110+
111+func P (e,Q) = valueOrElse(getInteger(((e + "_") + Q)), valueOrErrorMessage(getInteger(o, ((O + "_") + e)), (e + " is not defined")))
112112
113113
114-func R (P) = O("proposal_quorum_ratio", P)
114+func R (Q) = P("user_propose_delay", Q)
115115
116116
117-func S (P) = O("proposal_passed_ratio", P)
117+func S (Q) = P("proposal_quorum_ratio", Q)
118118
119119
120-func T (P) = O("proposal_min_power_required", P)
120+func T (Q) = P("proposal_passed_ratio", Q)
121121
122122
123-func U (P) = O("proposal_votingstart_offset", P)
123+func U (Q) = P("proposal_min_power_required", Q)
124124
125125
126-func V (P) = O("proposal_votingend_offset", P)
126+func V (Q) = P("proposal_votingstart_offset", Q)
127127
128128
129-func W (X) = ("proposal_quorum_ratio_" + X)
129+func W (Q) = P("proposal_votingend_offset", Q)
130130
131131
132-func Y (P,Z) = valueOrElse(getInteger(W(Z)), R(P))
132+func X (Y) = ("proposal_quorum_ratio_" + Y)
133133
134134
135-func aa (P,H) = k(invoke(v, "userPower", [P, H], nil))
135+func Z (Q,aa) = valueOrElse(getInteger(X(aa)), S(Q))
136136
137137
138-func ab (ac) = if ((ac == 0))
138+func ab (Q,I) = k(invoke(v, "userPower", [Q, I], nil))
139+
140+
141+func ac (ad) = if ((ad == 0))
139142 then throw("you are not a participant of this dao")
140143 else nil
141144
142145
143-func ad (Z) = {
144- let l = getInteger(this, z(Z))
146+func ae (aa) = {
147+ let l = getInteger(this, A(aa))
145148 if ($isInstanceOf(l, "Int"))
146149 then {
147- let ae = l
150+ let af = l
148151 true
149152 }
150153 else false
151154 }
152155
153156
154-func af (Z) = {
155- let ag = "proposal doesn't exist"
156- if (!(ad(Z)))
157- then throw(ag)
157+func ag (aa) = {
158+ let ah = "proposal doesn't exist"
159+ if (!(ae(aa)))
160+ then throw(ah)
158161 else {
159- let ah = valueOrErrorMessage(getInteger(this, A(Z)), ag)
160- let ai = valueOrErrorMessage(getInteger(this, B(Z)), ag)
161- if ((ah > p))
162- then throw(((("voting not started yet, discussion is in progress, voting will start at block " + toString(ah)) + ", now it's ") + toString(p)))
163- else if ((p > ai))
164- then throw(((("voting ended at block " + toString(ai)) + ", now it's ") + toString(p)))
162+ let ai = valueOrErrorMessage(getInteger(this, B(aa)), ah)
163+ let aj = valueOrErrorMessage(getInteger(this, C(aa)), ah)
164+ if ((ai > p))
165+ then throw(((("voting not started yet, discussion is in progress, voting will start at block " + toString(ai)) + ", now it's ") + toString(p)))
166+ else if ((p > aj))
167+ then throw(((("voting ended at block " + toString(aj)) + ", now it's ") + toString(p)))
165168 else true
166169 }
167170 }
168171
169172
170-func aj (Z) = {
171- let ag = "proposal doesn't exist"
172- if (!(ad(Z)))
173- then throw(ag)
173+func ak (aa) = {
174+ let ah = "proposal doesn't exist"
175+ if (!(ae(aa)))
176+ then throw(ah)
174177 else {
175- let ah = valueOrErrorMessage(getInteger(this, A(Z)), ag)
176- if ((p >= ah))
178+ let ai = valueOrErrorMessage(getInteger(this, B(aa)), ah)
179+ if ((p >= ai))
177180 then throw("voting start is already happened")
178181 else true
179182 }
180183 }
181184
182185
183-func ak (P) = k(invoke(v, "totalPower", [P], nil))
186+func al (Q) = k(invoke(v, "totalPower", [Q], nil))
184187
185188
186-func al (P,Z,am,an) = {
187- let ao = (valueOrElse(getInteger(E(Z)), 0) + am)
188- let ap = (valueOrElse(getInteger(F(Z)), 0) + an)
189- let aq = valueOrErrorMessage(getInteger(z(Z)), "proposal not registered")
190- let ar = ak(P)
191- if ((ar == ar))
189+func am (Q,aa,an,ao) = {
190+ let ap = (valueOrElse(getInteger(F(aa)), 0) + an)
191+ let aq = (valueOrElse(getInteger(G(aa)), 0) + ao)
192+ let ar = valueOrErrorMessage(getInteger(A(aa)), "proposal not registered")
193+ let as = al(Q)
194+ if ((as == as))
192195 then {
193- let as = S(P)
194- let at = (ao + ap)
195- let au = (((at * r) / ar) >= Y(P, Z))
196- let av = (((ao * r) / at) >= as)
197- if (au)
198- then av
196+ let at = T(Q)
197+ let au = (ap + aq)
198+ let av = (((au * r) / as) >= Z(Q, aa))
199+ let aw = (((ap * r) / au) >= at)
200+ if (av)
201+ then aw
199202 else false
200203 }
201204 else throw("Strict value is not equal to itself.")
202205 }
203206
204207
205-func aw (Z) = {
206- let P = valueOrErrorMessage(getString(x(Z)), "child not found")
207- let aq = valueOrErrorMessage(getInteger(this, z(Z)), "no proposal")
208- let ah = valueOrErrorMessage(getInteger(this, A(Z)), "no proposal")
209- let ai = valueOrErrorMessage(getInteger(this, B(Z)), "no proposal")
210- let ao = valueOrElse(getInteger(this, E(Z)), 0)
211- let ap = valueOrElse(getInteger(this, F(Z)), 0)
212- let ax = ak(P)
213- if ((ax == ax))
208+func ax (aa) = {
209+ let Q = valueOrErrorMessage(getString(x(aa)), "child not found")
210+ let ar = valueOrErrorMessage(getInteger(this, A(aa)), "no proposal")
211+ let ai = valueOrErrorMessage(getInteger(this, B(aa)), "no proposal")
212+ let aj = valueOrErrorMessage(getInteger(this, C(aa)), "no proposal")
213+ let ap = valueOrElse(getInteger(this, F(aa)), 0)
214+ let aq = valueOrElse(getInteger(this, G(aa)), 0)
215+ let ay = al(Q)
216+ if ((ay == ay))
214217 then {
215- let ay = Y(P, Z)
216- let at = (ao + ap)
217- let au = if ((at > 0))
218- then (((at * r) / ax) >= ay)
218+ let az = Z(Q, aa)
219+ let au = (ap + aq)
220+ let av = if ((au > 0))
221+ then (((au * r) / ay) >= az)
219222 else false
220- let av = if ((at > 0))
221- then (((ao * r) / at) >= S(P))
223+ let aw = if ((au > 0))
224+ then (((ap * r) / au) >= T(Q))
222225 else false
223- let az = valueOrElse(transactionHeightById(fromBase58String(Z)), 0)
224- let aA = if ((ah > p))
226+ let aA = valueOrElse(transactionHeightById(fromBase58String(aa)), 0)
227+ let aB = if ((ai > p))
225228 then "discussion"
226- else if ((ai >= p))
229+ else if ((aj >= p))
227230 then "voting"
228- else if (!(au))
231+ else if (!(av))
229232 then "noQuorum"
230- else if (!(av))
233+ else if (!(aw))
231234 then "votingFailed"
232- else if ((az > 0))
235+ else if ((aA > 0))
233236 then "inBlockchain"
234237 else "waitingForTx"
235- let aB = valueOrElse(getInteger(w, ((("proposal_allow_broadcast_" + P) + "_") + Z)), -1)
236- ((((((((((((((((((((((((((("proposal_id: " + Z) + ", proposal_status: ") + aA) + ", proposal_by: ") + valueOrErrorMessage(getString(this, C(Z)), "no proposal")) + ", proposal_height: ") + toString(aq)) + ", proposal_txheight: ") + toString(az)) + ", proposal_votingstart: ") + toString(ah)) + ", proposal_votingend: ") + toString(ai)) + ", proposal_power: ") + toString(ax)) + ", vote_yes: ") + toString(ao)) + ", vote_no: ") + toString(ap)) + ", proposal_allow_broadcast: ") + toString(if ((aB != -1))
237- then (p >= aB)
238- else false)) + ", proposal_allow_broadcast_height: ") + toString(aB)) + ", proposal_voting_succeed:") + toString((aB != -1))) + ", proposal_quorum:") + toString(ay))
238+ let aC = valueOrElse(getInteger(w, ((("proposal_allow_broadcast_" + Q) + "_") + aa)), -1)
239+ ((((((((((((((((((((((((((((("proposal_id: " + aa) + ", proposal_status: ") + aB) + ", proposal_by: ") + valueOrErrorMessage(getString(this, D(aa)), "no proposal")) + ", proposal_height: ") + toString(ar)) + ", proposal_txheight: ") + toString(aA)) + ", proposal_votingstart: ") + toString(ai)) + ", proposal_votingend: ") + toString(aj)) + ", proposal_power: ") + toString(ay)) + ", vote_yes: ") + toString(ap)) + ", vote_no: ") + toString(aq)) + ", proposal_allow_broadcast: ") + toString(if ((aC != -1))
240+ then (p >= aC)
241+ else false)) + ", proposal_allow_broadcast_height: ") + toString(aC)) + ", proposal_voting_succeed:") + toString((aC != -1))) + ", proposal_quorum:") + toString(az)) + ", proposal_address: ") + valueOrElse(z(aa), Q))
239242 }
240243 else throw("Strict value is not equal to itself.")
241244 }
242245
243246
244-func aB (Z) = (getIntegerValue(B(Z)) + 1)
247+func aC (aa) = (getIntegerValue(C(aa)) + 1)
245248
246249
247-@Callable(aC)
248-func propose (P,Z,aD) = {
249- let aE = s("child_governance_propose_tx")
250- if ((aE == aE))
250+@Callable(aD)
251+func propose (Q,aa,aE) = {
252+ let aF = s("child_governance_propose_tx")
253+ if ((aF == aF))
251254 then {
252- let aF = T(P)
253- let H = toString(aC.caller)
254- let aG = aa(P, H)
255- if ((aG == aG))
256- then if ((aF > aG))
257- then throw((((("not enough staked power to make proposal." + " Minimum required = ") + toString(aF)) + ", actual: = ") + toString(aG)))
255+ let aG = U(Q)
256+ let I = toString(aD.caller)
257+ let aH = ab(Q, I)
258+ if ((aH == aH))
259+ then if ((aG > aH))
260+ then throw((((("not enough staked power to make proposal." + " Minimum required = ") + toString(aG)) + ", actual: = ") + toString(aH)))
258261 else {
259- let aH = Q(P)
260- let aI = M(H)
261- if (if ((aI > -1))
262- then ((aI + aH) > p)
262+ let aI = R(Q)
263+ let aJ = N(I)
264+ if (if ((aJ > -1))
265+ then ((aJ + aI) > p)
263266 else false)
264- then throw(((("can't propose too often, last proroposal height: " + toString(aI)) + ", blocks to wait: ") + toString(((aI + aH) - p))))
265- else [h(x(Z), P), i(z(Z), p), i(A(Z), (p + U(P))), i(B(Z), (p + V(P))), h(C(Z), H), g(J(H), p), d(D(Z), aD)]
267+ then throw(((("can't propose too often, last proroposal height: " + toString(aJ)) + ", blocks to wait: ") + toString(((aJ + aI) - p))))
268+ else {
269+ let aK = valueOrElse(getString(v, ("treasury_" + Q)), Q)
270+[h(x(aa), Q), i(A(aa), p), i(B(aa), (p + V(Q))), i(C(aa), (p + W(Q))), h(D(aa), I), g(K(I), p), d(E(aa), aE), h(z(aa), aK)]
271+ }
266272 }
267273 else throw("Strict value is not equal to itself.")
268274 }
271277
272278
273279
274-@Callable(aC)
275-func editAttachments (Z,aD) = {
276- let aE = s("child_governance_edit_attachments")
277- if ((aE == aE))
280+@Callable(aD)
281+func editAttachments (aa,aE) = {
282+ let aF = s("child_governance_edit_attachments")
283+ if ((aF == aF))
278284 then {
279- let H = toString(aC.caller)
280- let aJ = valueOrErrorMessage(getString(this, C(Z)), "proposal doesn't exist")
281- if ((aJ != H))
285+ let I = toString(aD.caller)
286+ let aL = valueOrErrorMessage(getString(this, D(aa)), "proposal doesn't exist")
287+ if ((aL != I))
282288 then throw("only owner can edit proposal attachments")
283- else [d(D(Z), aD)]
289+ else [d(E(aa), aE)]
284290 }
285291 else throw("Strict value is not equal to itself.")
286292 }
287293
288294
289295
290-@Callable(aC)
291-func voteYes (Z) = {
292- let aE = if (s("child_governance_vote_tx"))
293- then af(Z)
296+@Callable(aD)
297+func voteYes (aa) = {
298+ let aF = if (s("child_governance_vote_tx"))
299+ then ag(aa)
294300 else false
295- if ((aE == aE))
301+ if ((aF == aF))
296302 then {
297- let H = toString(aC.caller)
298- if ((L(H, Z) > 0))
303+ let I = toString(aD.caller)
304+ if ((M(I, aa) > 0))
299305 then throw("already voted against, please retract your vote first")
300306 else {
301- let aK = K(H, Z)
302- if ((aK > 0))
307+ let aM = L(I, aa)
308+ if ((aM > 0))
303309 then throw("already voted")
304310 else {
305- let P = valueOrErrorMessage(getString(x(Z)), "child not found")
306- let ac = aa(P, H)
307- if ((ac == ac))
311+ let Q = valueOrErrorMessage(getString(x(aa)), "child not found")
312+ let ad = ab(Q, I)
313+ if ((ad == ad))
308314 then {
309- let aL = ab(ac)
310- if ((aL == aL))
315+ let aN = ac(ad)
316+ if ((aN == aN))
311317 then {
312- let aM = al(P, Z, ac, 0)
313- let aN = invoke(w, "setResult", [P, Z, aM, aB(Z)], nil)
314- if ((aN == aN))
315- then [j(G(H, Z), ac), j(E(Z), ac)]
318+ let aO = am(Q, aa, ad, 0)
319+ let aP = valueOrElse(getString(z(aa)), Q)
320+ let aQ = invoke(w, "setResult", [aP, aa, aO, aC(aa)], nil)
321+ if ((aQ == aQ))
322+ then [j(H(I, aa), ad), j(F(aa), ad)]
316323 else throw("Strict value is not equal to itself.")
317324 }
318325 else throw("Strict value is not equal to itself.")
326333
327334
328335
329-@Callable(aC)
330-func voteNo (Z) = {
331- let aE = if (s("child_governance_vote_tx"))
332- then af(Z)
336+@Callable(aD)
337+func voteNo (aa) = {
338+ let aF = if (s("child_governance_vote_tx"))
339+ then ag(aa)
333340 else false
334- if ((aE == aE))
341+ if ((aF == aF))
335342 then {
336- let H = toString(aC.caller)
337- if ((K(H, Z) > 0))
343+ let I = toString(aD.caller)
344+ if ((L(I, aa) > 0))
338345 then throw("already voted for, please retract your vote first")
339346 else {
340- let aO = L(H, Z)
341- if ((aO > 0))
347+ let aR = M(I, aa)
348+ if ((aR > 0))
342349 then throw("already voted")
343350 else {
344- let P = valueOrErrorMessage(getString(x(Z)), "child not found")
345- let ac = aa(P, H)
346- if ((ac == ac))
351+ let Q = valueOrErrorMessage(getString(x(aa)), "child not found")
352+ let ad = ab(Q, I)
353+ if ((ad == ad))
347354 then {
348- let aL = ab(ac)
349- if ((aL == aL))
355+ let aN = ac(ad)
356+ if ((aN == aN))
350357 then {
351- let aM = al(P, Z, 0, ac)
352- let aN = invoke(w, "setResult", [P, Z, aM, aB(Z)], nil)
353- if ((aN == aN))
354- then [j(I(H, Z), ac), j(F(Z), ac)]
358+ let aO = am(Q, aa, 0, ad)
359+ let aP = valueOrElse(getString(z(aa)), Q)
360+ let aQ = invoke(w, "setResult", [aP, aa, aO, aC(aa)], nil)
361+ if ((aQ == aQ))
362+ then [j(J(I, aa), ad), j(G(aa), ad)]
355363 else throw("Strict value is not equal to itself.")
356364 }
357365 else throw("Strict value is not equal to itself.")
365373
366374
367375
368-@Callable(aC)
369-func retract (Z) = {
370- let aE = if (s("child_governance_retract_vote"))
371- then af(Z)
376+@Callable(aD)
377+func retract (aa) = {
378+ let aF = if (s("child_governance_retract_vote"))
379+ then ag(aa)
372380 else false
373- if ((aE == aE))
381+ if ((aF == aF))
374382 then {
375- let H = toString(aC.caller)
376- let P = valueOrErrorMessage(getString(x(Z)), "child not found")
377- let aK = -(K(H, Z))
378- let aO = -(L(H, Z))
379- let aM = al(P, Z, aK, aO)
380- let aN = invoke(w, "setResult", [P, Z, aM, aB(Z)], nil)
381- if ((aN == aN))
382- then [j(E(Z), aK), j(F(Z), aO), DeleteEntry(G(H, Z)), DeleteEntry(I(H, Z))]
383+ let I = toString(aD.caller)
384+ let Q = valueOrErrorMessage(getString(x(aa)), "child not found")
385+ let aM = -(L(I, aa))
386+ let aR = -(M(I, aa))
387+ let aO = am(Q, aa, aM, aR)
388+ let aP = valueOrElse(getString(z(aa)), Q)
389+ let aQ = invoke(w, "setResult", [aP, aa, aO, aC(aa)], nil)
390+ if ((aQ == aQ))
391+ then [j(F(aa), aM), j(G(aa), aR), DeleteEntry(H(I, aa)), DeleteEntry(J(I, aa))]
383392 else throw("Strict value is not equal to itself.")
384393 }
385394 else throw("Strict value is not equal to itself.")
387396
388397
389398
390-@Callable(aC)
391-func retractProposal (Z) = {
392- let aE = if (s("child_governance_retract_proposal_tx"))
393- then aj(Z)
399+@Callable(aD)
400+func retractProposal (aa) = {
401+ let aF = if (s("child_governance_retract_proposal_tx"))
402+ then ak(aa)
394403 else false
395- if ((aE == aE))
404+ if ((aF == aF))
396405 then {
397- let aJ = valueOrErrorMessage(getString(this, C(Z)), "proposal doesn't exist")
398- let H = toString(aC.caller)
399- if ((aJ != H))
406+ let aL = valueOrErrorMessage(getString(this, D(aa)), "proposal doesn't exist")
407+ let I = toString(aD.caller)
408+ if ((aL != I))
400409 then throw("only owner can retract proposal")
401- else [DeleteEntry(x(Z)), DeleteEntry(z(Z)), DeleteEntry(A(Z)), DeleteEntry(B(Z)), DeleteEntry(C(Z)), DeleteEntry(E(Z)), DeleteEntry(F(Z)), DeleteEntry(G(H, Z)), DeleteEntry(I(H, Z)), DeleteEntry(J(H))]
410+ else [DeleteEntry(x(aa)), DeleteEntry(A(aa)), DeleteEntry(B(aa)), DeleteEntry(C(aa)), DeleteEntry(D(aa)), DeleteEntry(F(aa)), DeleteEntry(G(aa)), DeleteEntry(H(I, aa)), DeleteEntry(J(I, aa)), DeleteEntry(K(I)), DeleteEntry(z(aa))]
402411 }
403412 else throw("Strict value is not equal to itself.")
404413 }
405414
406415
407416
408-@Callable(aC)
409-func init (aP) = [h(n, aP)]
417+@Callable(aD)
418+func init (aS) = [h(n, aS)]
410419
411420
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 func a (b,c) = if (b)
55 then throw(c)
66 else true
77
88
99 func d (e,f) = BinaryEntry(e, f)
1010
1111
1212 func g (e,f) = if ((0 > f))
1313 then throw(((("writing negative value " + toString(f)) + " for key ") + e))
1414 else IntegerEntry(e, f)
1515
1616
1717 func h (e,f) = if (!(isDefined(getString(this, e))))
1818 then StringEntry(e, f)
1919 else throw(("already initialized: " + e))
2020
2121
2222 func i (e,f) = if (!(isDefined(getInteger(this, e))))
2323 then IntegerEntry(e, f)
2424 else throw(("already exists: " + e))
2525
2626
2727 func j (e,f) = g(e, (valueOrElse(getInteger(this, e), 0) + f))
2828
2929
3030 func k (f) = {
3131 let l = f
3232 if ($isInstanceOf(l, "Int"))
3333 then {
3434 let m = l
3535 m
3636 }
3737 else throw("wrong type, expected: Int")
3838 }
3939
4040
4141 let n = "config"
4242
4343 let o = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(this, n), "children.voting: no config")), "invalid config address")
4444
4545 let p = height
4646
4747 func q () = ("height: " + toString(p))
4848
4949
5050 let r = 1000
5151
5252 func s (t) = {
5353 let u = invoke(o, "opAllowed", [t], nil)
5454 if ((u == u))
5555 then true
5656 else throw("Strict value is not equal to itself.")
5757 }
5858
5959
6060 let v = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(o, "contract_children"), "no contract_children")), "invalid contract_children")
6161
6262 let w = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(o, "contract_voting_result"), "no contract_voting_result")), "invalid contract_voting_result")
6363
6464 func x (y) = ("proposal_child_" + y)
6565
6666
67-func z (y) = ("proposal_height_" + y)
67+func z (y) = ("proposal_address_" + y)
6868
6969
70-func A (y) = ("proposal_votingstart_" + y)
70+func A (y) = ("proposal_height_" + y)
7171
7272
73-func B (y) = ("proposal_votingend_" + y)
73+func B (y) = ("proposal_votingstart_" + y)
7474
7575
76-func C (y) = ("proposal_by_" + y)
76+func C (y) = ("proposal_votingend_" + y)
7777
7878
79-func D (y) = ("proposal_attachments_" + y)
79+func D (y) = ("proposal_by_" + y)
8080
8181
82-func E (y) = ("proposal_yes_" + y)
82+func E (y) = ("proposal_attachments_" + y)
8383
8484
85-func F (y) = ("proposal_no_" + y)
85+func F (y) = ("proposal_yes_" + y)
8686
8787
88-func G (H,y) = ((("user_proposal_yes_" + H) + "_") + y)
88+func G (y) = ("proposal_no_" + y)
8989
9090
91-func I (H,y) = ((("user_proposal_no_" + H) + "_") + y)
91+func H (I,y) = ((("user_proposal_yes_" + I) + "_") + y)
9292
9393
94-func J (H) = ("propose_lastheight_" + H)
94+func J (I,y) = ((("user_proposal_no_" + I) + "_") + y)
9595
9696
97-func K (H,y) = valueOrElse(getInteger(this, G(H, y)), 0)
97+func K (I) = ("propose_lastheight_" + I)
9898
9999
100-func L (H,y) = valueOrElse(getInteger(this, I(H, y)), 0)
100+func L (I,y) = valueOrElse(getInteger(this, H(I, y)), 0)
101101
102102
103-func M (H) = valueOrElse(getInteger(this, J(H)), -1)
103+func M (I,y) = valueOrElse(getInteger(this, J(I, y)), 0)
104104
105105
106-let N = toString(this)
107-
108-func O (e,P) = valueOrElse(getInteger(((e + "_") + P)), valueOrErrorMessage(getInteger(o, ((N + "_") + e)), (e + " is not defined")))
106+func N (I) = valueOrElse(getInteger(this, K(I)), -1)
109107
110108
111-func Q (P) = O("user_propose_delay", P)
109+let O = toString(this)
110+
111+func P (e,Q) = valueOrElse(getInteger(((e + "_") + Q)), valueOrErrorMessage(getInteger(o, ((O + "_") + e)), (e + " is not defined")))
112112
113113
114-func R (P) = O("proposal_quorum_ratio", P)
114+func R (Q) = P("user_propose_delay", Q)
115115
116116
117-func S (P) = O("proposal_passed_ratio", P)
117+func S (Q) = P("proposal_quorum_ratio", Q)
118118
119119
120-func T (P) = O("proposal_min_power_required", P)
120+func T (Q) = P("proposal_passed_ratio", Q)
121121
122122
123-func U (P) = O("proposal_votingstart_offset", P)
123+func U (Q) = P("proposal_min_power_required", Q)
124124
125125
126-func V (P) = O("proposal_votingend_offset", P)
126+func V (Q) = P("proposal_votingstart_offset", Q)
127127
128128
129-func W (X) = ("proposal_quorum_ratio_" + X)
129+func W (Q) = P("proposal_votingend_offset", Q)
130130
131131
132-func Y (P,Z) = valueOrElse(getInteger(W(Z)), R(P))
132+func X (Y) = ("proposal_quorum_ratio_" + Y)
133133
134134
135-func aa (P,H) = k(invoke(v, "userPower", [P, H], nil))
135+func Z (Q,aa) = valueOrElse(getInteger(X(aa)), S(Q))
136136
137137
138-func ab (ac) = if ((ac == 0))
138+func ab (Q,I) = k(invoke(v, "userPower", [Q, I], nil))
139+
140+
141+func ac (ad) = if ((ad == 0))
139142 then throw("you are not a participant of this dao")
140143 else nil
141144
142145
143-func ad (Z) = {
144- let l = getInteger(this, z(Z))
146+func ae (aa) = {
147+ let l = getInteger(this, A(aa))
145148 if ($isInstanceOf(l, "Int"))
146149 then {
147- let ae = l
150+ let af = l
148151 true
149152 }
150153 else false
151154 }
152155
153156
154-func af (Z) = {
155- let ag = "proposal doesn't exist"
156- if (!(ad(Z)))
157- then throw(ag)
157+func ag (aa) = {
158+ let ah = "proposal doesn't exist"
159+ if (!(ae(aa)))
160+ then throw(ah)
158161 else {
159- let ah = valueOrErrorMessage(getInteger(this, A(Z)), ag)
160- let ai = valueOrErrorMessage(getInteger(this, B(Z)), ag)
161- if ((ah > p))
162- then throw(((("voting not started yet, discussion is in progress, voting will start at block " + toString(ah)) + ", now it's ") + toString(p)))
163- else if ((p > ai))
164- then throw(((("voting ended at block " + toString(ai)) + ", now it's ") + toString(p)))
162+ let ai = valueOrErrorMessage(getInteger(this, B(aa)), ah)
163+ let aj = valueOrErrorMessage(getInteger(this, C(aa)), ah)
164+ if ((ai > p))
165+ then throw(((("voting not started yet, discussion is in progress, voting will start at block " + toString(ai)) + ", now it's ") + toString(p)))
166+ else if ((p > aj))
167+ then throw(((("voting ended at block " + toString(aj)) + ", now it's ") + toString(p)))
165168 else true
166169 }
167170 }
168171
169172
170-func aj (Z) = {
171- let ag = "proposal doesn't exist"
172- if (!(ad(Z)))
173- then throw(ag)
173+func ak (aa) = {
174+ let ah = "proposal doesn't exist"
175+ if (!(ae(aa)))
176+ then throw(ah)
174177 else {
175- let ah = valueOrErrorMessage(getInteger(this, A(Z)), ag)
176- if ((p >= ah))
178+ let ai = valueOrErrorMessage(getInteger(this, B(aa)), ah)
179+ if ((p >= ai))
177180 then throw("voting start is already happened")
178181 else true
179182 }
180183 }
181184
182185
183-func ak (P) = k(invoke(v, "totalPower", [P], nil))
186+func al (Q) = k(invoke(v, "totalPower", [Q], nil))
184187
185188
186-func al (P,Z,am,an) = {
187- let ao = (valueOrElse(getInteger(E(Z)), 0) + am)
188- let ap = (valueOrElse(getInteger(F(Z)), 0) + an)
189- let aq = valueOrErrorMessage(getInteger(z(Z)), "proposal not registered")
190- let ar = ak(P)
191- if ((ar == ar))
189+func am (Q,aa,an,ao) = {
190+ let ap = (valueOrElse(getInteger(F(aa)), 0) + an)
191+ let aq = (valueOrElse(getInteger(G(aa)), 0) + ao)
192+ let ar = valueOrErrorMessage(getInteger(A(aa)), "proposal not registered")
193+ let as = al(Q)
194+ if ((as == as))
192195 then {
193- let as = S(P)
194- let at = (ao + ap)
195- let au = (((at * r) / ar) >= Y(P, Z))
196- let av = (((ao * r) / at) >= as)
197- if (au)
198- then av
196+ let at = T(Q)
197+ let au = (ap + aq)
198+ let av = (((au * r) / as) >= Z(Q, aa))
199+ let aw = (((ap * r) / au) >= at)
200+ if (av)
201+ then aw
199202 else false
200203 }
201204 else throw("Strict value is not equal to itself.")
202205 }
203206
204207
205-func aw (Z) = {
206- let P = valueOrErrorMessage(getString(x(Z)), "child not found")
207- let aq = valueOrErrorMessage(getInteger(this, z(Z)), "no proposal")
208- let ah = valueOrErrorMessage(getInteger(this, A(Z)), "no proposal")
209- let ai = valueOrErrorMessage(getInteger(this, B(Z)), "no proposal")
210- let ao = valueOrElse(getInteger(this, E(Z)), 0)
211- let ap = valueOrElse(getInteger(this, F(Z)), 0)
212- let ax = ak(P)
213- if ((ax == ax))
208+func ax (aa) = {
209+ let Q = valueOrErrorMessage(getString(x(aa)), "child not found")
210+ let ar = valueOrErrorMessage(getInteger(this, A(aa)), "no proposal")
211+ let ai = valueOrErrorMessage(getInteger(this, B(aa)), "no proposal")
212+ let aj = valueOrErrorMessage(getInteger(this, C(aa)), "no proposal")
213+ let ap = valueOrElse(getInteger(this, F(aa)), 0)
214+ let aq = valueOrElse(getInteger(this, G(aa)), 0)
215+ let ay = al(Q)
216+ if ((ay == ay))
214217 then {
215- let ay = Y(P, Z)
216- let at = (ao + ap)
217- let au = if ((at > 0))
218- then (((at * r) / ax) >= ay)
218+ let az = Z(Q, aa)
219+ let au = (ap + aq)
220+ let av = if ((au > 0))
221+ then (((au * r) / ay) >= az)
219222 else false
220- let av = if ((at > 0))
221- then (((ao * r) / at) >= S(P))
223+ let aw = if ((au > 0))
224+ then (((ap * r) / au) >= T(Q))
222225 else false
223- let az = valueOrElse(transactionHeightById(fromBase58String(Z)), 0)
224- let aA = if ((ah > p))
226+ let aA = valueOrElse(transactionHeightById(fromBase58String(aa)), 0)
227+ let aB = if ((ai > p))
225228 then "discussion"
226- else if ((ai >= p))
229+ else if ((aj >= p))
227230 then "voting"
228- else if (!(au))
231+ else if (!(av))
229232 then "noQuorum"
230- else if (!(av))
233+ else if (!(aw))
231234 then "votingFailed"
232- else if ((az > 0))
235+ else if ((aA > 0))
233236 then "inBlockchain"
234237 else "waitingForTx"
235- let aB = valueOrElse(getInteger(w, ((("proposal_allow_broadcast_" + P) + "_") + Z)), -1)
236- ((((((((((((((((((((((((((("proposal_id: " + Z) + ", proposal_status: ") + aA) + ", proposal_by: ") + valueOrErrorMessage(getString(this, C(Z)), "no proposal")) + ", proposal_height: ") + toString(aq)) + ", proposal_txheight: ") + toString(az)) + ", proposal_votingstart: ") + toString(ah)) + ", proposal_votingend: ") + toString(ai)) + ", proposal_power: ") + toString(ax)) + ", vote_yes: ") + toString(ao)) + ", vote_no: ") + toString(ap)) + ", proposal_allow_broadcast: ") + toString(if ((aB != -1))
237- then (p >= aB)
238- else false)) + ", proposal_allow_broadcast_height: ") + toString(aB)) + ", proposal_voting_succeed:") + toString((aB != -1))) + ", proposal_quorum:") + toString(ay))
238+ let aC = valueOrElse(getInteger(w, ((("proposal_allow_broadcast_" + Q) + "_") + aa)), -1)
239+ ((((((((((((((((((((((((((((("proposal_id: " + aa) + ", proposal_status: ") + aB) + ", proposal_by: ") + valueOrErrorMessage(getString(this, D(aa)), "no proposal")) + ", proposal_height: ") + toString(ar)) + ", proposal_txheight: ") + toString(aA)) + ", proposal_votingstart: ") + toString(ai)) + ", proposal_votingend: ") + toString(aj)) + ", proposal_power: ") + toString(ay)) + ", vote_yes: ") + toString(ap)) + ", vote_no: ") + toString(aq)) + ", proposal_allow_broadcast: ") + toString(if ((aC != -1))
240+ then (p >= aC)
241+ else false)) + ", proposal_allow_broadcast_height: ") + toString(aC)) + ", proposal_voting_succeed:") + toString((aC != -1))) + ", proposal_quorum:") + toString(az)) + ", proposal_address: ") + valueOrElse(z(aa), Q))
239242 }
240243 else throw("Strict value is not equal to itself.")
241244 }
242245
243246
244-func aB (Z) = (getIntegerValue(B(Z)) + 1)
247+func aC (aa) = (getIntegerValue(C(aa)) + 1)
245248
246249
247-@Callable(aC)
248-func propose (P,Z,aD) = {
249- let aE = s("child_governance_propose_tx")
250- if ((aE == aE))
250+@Callable(aD)
251+func propose (Q,aa,aE) = {
252+ let aF = s("child_governance_propose_tx")
253+ if ((aF == aF))
251254 then {
252- let aF = T(P)
253- let H = toString(aC.caller)
254- let aG = aa(P, H)
255- if ((aG == aG))
256- then if ((aF > aG))
257- then throw((((("not enough staked power to make proposal." + " Minimum required = ") + toString(aF)) + ", actual: = ") + toString(aG)))
255+ let aG = U(Q)
256+ let I = toString(aD.caller)
257+ let aH = ab(Q, I)
258+ if ((aH == aH))
259+ then if ((aG > aH))
260+ then throw((((("not enough staked power to make proposal." + " Minimum required = ") + toString(aG)) + ", actual: = ") + toString(aH)))
258261 else {
259- let aH = Q(P)
260- let aI = M(H)
261- if (if ((aI > -1))
262- then ((aI + aH) > p)
262+ let aI = R(Q)
263+ let aJ = N(I)
264+ if (if ((aJ > -1))
265+ then ((aJ + aI) > p)
263266 else false)
264- then throw(((("can't propose too often, last proroposal height: " + toString(aI)) + ", blocks to wait: ") + toString(((aI + aH) - p))))
265- else [h(x(Z), P), i(z(Z), p), i(A(Z), (p + U(P))), i(B(Z), (p + V(P))), h(C(Z), H), g(J(H), p), d(D(Z), aD)]
267+ then throw(((("can't propose too often, last proroposal height: " + toString(aJ)) + ", blocks to wait: ") + toString(((aJ + aI) - p))))
268+ else {
269+ let aK = valueOrElse(getString(v, ("treasury_" + Q)), Q)
270+[h(x(aa), Q), i(A(aa), p), i(B(aa), (p + V(Q))), i(C(aa), (p + W(Q))), h(D(aa), I), g(K(I), p), d(E(aa), aE), h(z(aa), aK)]
271+ }
266272 }
267273 else throw("Strict value is not equal to itself.")
268274 }
269275 else throw("Strict value is not equal to itself.")
270276 }
271277
272278
273279
274-@Callable(aC)
275-func editAttachments (Z,aD) = {
276- let aE = s("child_governance_edit_attachments")
277- if ((aE == aE))
280+@Callable(aD)
281+func editAttachments (aa,aE) = {
282+ let aF = s("child_governance_edit_attachments")
283+ if ((aF == aF))
278284 then {
279- let H = toString(aC.caller)
280- let aJ = valueOrErrorMessage(getString(this, C(Z)), "proposal doesn't exist")
281- if ((aJ != H))
285+ let I = toString(aD.caller)
286+ let aL = valueOrErrorMessage(getString(this, D(aa)), "proposal doesn't exist")
287+ if ((aL != I))
282288 then throw("only owner can edit proposal attachments")
283- else [d(D(Z), aD)]
289+ else [d(E(aa), aE)]
284290 }
285291 else throw("Strict value is not equal to itself.")
286292 }
287293
288294
289295
290-@Callable(aC)
291-func voteYes (Z) = {
292- let aE = if (s("child_governance_vote_tx"))
293- then af(Z)
296+@Callable(aD)
297+func voteYes (aa) = {
298+ let aF = if (s("child_governance_vote_tx"))
299+ then ag(aa)
294300 else false
295- if ((aE == aE))
301+ if ((aF == aF))
296302 then {
297- let H = toString(aC.caller)
298- if ((L(H, Z) > 0))
303+ let I = toString(aD.caller)
304+ if ((M(I, aa) > 0))
299305 then throw("already voted against, please retract your vote first")
300306 else {
301- let aK = K(H, Z)
302- if ((aK > 0))
307+ let aM = L(I, aa)
308+ if ((aM > 0))
303309 then throw("already voted")
304310 else {
305- let P = valueOrErrorMessage(getString(x(Z)), "child not found")
306- let ac = aa(P, H)
307- if ((ac == ac))
311+ let Q = valueOrErrorMessage(getString(x(aa)), "child not found")
312+ let ad = ab(Q, I)
313+ if ((ad == ad))
308314 then {
309- let aL = ab(ac)
310- if ((aL == aL))
315+ let aN = ac(ad)
316+ if ((aN == aN))
311317 then {
312- let aM = al(P, Z, ac, 0)
313- let aN = invoke(w, "setResult", [P, Z, aM, aB(Z)], nil)
314- if ((aN == aN))
315- then [j(G(H, Z), ac), j(E(Z), ac)]
318+ let aO = am(Q, aa, ad, 0)
319+ let aP = valueOrElse(getString(z(aa)), Q)
320+ let aQ = invoke(w, "setResult", [aP, aa, aO, aC(aa)], nil)
321+ if ((aQ == aQ))
322+ then [j(H(I, aa), ad), j(F(aa), ad)]
316323 else throw("Strict value is not equal to itself.")
317324 }
318325 else throw("Strict value is not equal to itself.")
319326 }
320327 else throw("Strict value is not equal to itself.")
321328 }
322329 }
323330 }
324331 else throw("Strict value is not equal to itself.")
325332 }
326333
327334
328335
329-@Callable(aC)
330-func voteNo (Z) = {
331- let aE = if (s("child_governance_vote_tx"))
332- then af(Z)
336+@Callable(aD)
337+func voteNo (aa) = {
338+ let aF = if (s("child_governance_vote_tx"))
339+ then ag(aa)
333340 else false
334- if ((aE == aE))
341+ if ((aF == aF))
335342 then {
336- let H = toString(aC.caller)
337- if ((K(H, Z) > 0))
343+ let I = toString(aD.caller)
344+ if ((L(I, aa) > 0))
338345 then throw("already voted for, please retract your vote first")
339346 else {
340- let aO = L(H, Z)
341- if ((aO > 0))
347+ let aR = M(I, aa)
348+ if ((aR > 0))
342349 then throw("already voted")
343350 else {
344- let P = valueOrErrorMessage(getString(x(Z)), "child not found")
345- let ac = aa(P, H)
346- if ((ac == ac))
351+ let Q = valueOrErrorMessage(getString(x(aa)), "child not found")
352+ let ad = ab(Q, I)
353+ if ((ad == ad))
347354 then {
348- let aL = ab(ac)
349- if ((aL == aL))
355+ let aN = ac(ad)
356+ if ((aN == aN))
350357 then {
351- let aM = al(P, Z, 0, ac)
352- let aN = invoke(w, "setResult", [P, Z, aM, aB(Z)], nil)
353- if ((aN == aN))
354- then [j(I(H, Z), ac), j(F(Z), ac)]
358+ let aO = am(Q, aa, 0, ad)
359+ let aP = valueOrElse(getString(z(aa)), Q)
360+ let aQ = invoke(w, "setResult", [aP, aa, aO, aC(aa)], nil)
361+ if ((aQ == aQ))
362+ then [j(J(I, aa), ad), j(G(aa), ad)]
355363 else throw("Strict value is not equal to itself.")
356364 }
357365 else throw("Strict value is not equal to itself.")
358366 }
359367 else throw("Strict value is not equal to itself.")
360368 }
361369 }
362370 }
363371 else throw("Strict value is not equal to itself.")
364372 }
365373
366374
367375
368-@Callable(aC)
369-func retract (Z) = {
370- let aE = if (s("child_governance_retract_vote"))
371- then af(Z)
376+@Callable(aD)
377+func retract (aa) = {
378+ let aF = if (s("child_governance_retract_vote"))
379+ then ag(aa)
372380 else false
373- if ((aE == aE))
381+ if ((aF == aF))
374382 then {
375- let H = toString(aC.caller)
376- let P = valueOrErrorMessage(getString(x(Z)), "child not found")
377- let aK = -(K(H, Z))
378- let aO = -(L(H, Z))
379- let aM = al(P, Z, aK, aO)
380- let aN = invoke(w, "setResult", [P, Z, aM, aB(Z)], nil)
381- if ((aN == aN))
382- then [j(E(Z), aK), j(F(Z), aO), DeleteEntry(G(H, Z)), DeleteEntry(I(H, Z))]
383+ let I = toString(aD.caller)
384+ let Q = valueOrErrorMessage(getString(x(aa)), "child not found")
385+ let aM = -(L(I, aa))
386+ let aR = -(M(I, aa))
387+ let aO = am(Q, aa, aM, aR)
388+ let aP = valueOrElse(getString(z(aa)), Q)
389+ let aQ = invoke(w, "setResult", [aP, aa, aO, aC(aa)], nil)
390+ if ((aQ == aQ))
391+ then [j(F(aa), aM), j(G(aa), aR), DeleteEntry(H(I, aa)), DeleteEntry(J(I, aa))]
383392 else throw("Strict value is not equal to itself.")
384393 }
385394 else throw("Strict value is not equal to itself.")
386395 }
387396
388397
389398
390-@Callable(aC)
391-func retractProposal (Z) = {
392- let aE = if (s("child_governance_retract_proposal_tx"))
393- then aj(Z)
399+@Callable(aD)
400+func retractProposal (aa) = {
401+ let aF = if (s("child_governance_retract_proposal_tx"))
402+ then ak(aa)
394403 else false
395- if ((aE == aE))
404+ if ((aF == aF))
396405 then {
397- let aJ = valueOrErrorMessage(getString(this, C(Z)), "proposal doesn't exist")
398- let H = toString(aC.caller)
399- if ((aJ != H))
406+ let aL = valueOrErrorMessage(getString(this, D(aa)), "proposal doesn't exist")
407+ let I = toString(aD.caller)
408+ if ((aL != I))
400409 then throw("only owner can retract proposal")
401- else [DeleteEntry(x(Z)), DeleteEntry(z(Z)), DeleteEntry(A(Z)), DeleteEntry(B(Z)), DeleteEntry(C(Z)), DeleteEntry(E(Z)), DeleteEntry(F(Z)), DeleteEntry(G(H, Z)), DeleteEntry(I(H, Z)), DeleteEntry(J(H))]
410+ else [DeleteEntry(x(aa)), DeleteEntry(A(aa)), DeleteEntry(B(aa)), DeleteEntry(C(aa)), DeleteEntry(D(aa)), DeleteEntry(F(aa)), DeleteEntry(G(aa)), DeleteEntry(H(I, aa)), DeleteEntry(J(I, aa)), DeleteEntry(K(I)), DeleteEntry(z(aa))]
402411 }
403412 else throw("Strict value is not equal to itself.")
404413 }
405414
406415
407416
408-@Callable(aC)
409-func init (aP) = [h(n, aP)]
417+@Callable(aD)
418+func init (aS) = [h(n, aS)]
410419
411420

github/deemru/w8io/0e76f2f 
131.81 ms