tx · 97YpMPk4UsZPBJUBcELE1jBt3qL9k2hiyqwYq69RNkKP

3NBS9dz4ZfzFvekCW9AeYaic1tcsMZqwrR5:  -0.01000000 Waves

2019.11.19 17:28 [772150] smart account 3NBS9dz4ZfzFvekCW9AeYaic1tcsMZqwrR5 > SELF 0.00000000 Waves

{ "type": 13, "id": "97YpMPk4UsZPBJUBcELE1jBt3qL9k2hiyqwYq69RNkKP", "fee": 1000000, "feeAssetId": null, "timestamp": 1574173718699, "version": 1, "sender": "3NBS9dz4ZfzFvekCW9AeYaic1tcsMZqwrR5", "senderPublicKey": "Dd3srdfvRER858yTqbfq3U9V8kAG7Gw2pxshgDvTvJGV", "proofs": [ "jqb3JZe82Pj9DKA6hNxxL5E6KpVhRV6f1asmc7d5ad3dAGW4RA5okPLjXvs22pkzgKYFe65hE5esNUm58XnWyZP" ], "script": "base64:AAIDAAAAAAAAAA4IARIDCgEBEgASAwoBCAAAAEEBAAAADmdldE51bWJlckJ5S2V5AAAAAQAAAANrZXkEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAABAAAADmdldFN0cmluZ0J5S2V5AAAAAQAAAANrZXkEAAAAByRtYXRjaDAJAAQdAAAAAgUAAAAEdGhpcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWECAAAAAAEAAAAMZ2V0Qm9vbEJ5S2V5AAAAAQAAAANrZXkEAAAAByRtYXRjaDAJAAQbAAAAAgUAAAAEdGhpcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAdCb29sZWFuBAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhBwEAAAAYZ2V0TnVtYmVyQnlBZGRyZXNzQW5kS2V5AAAAAgAAAAdhZGRyZXNzAAAAA2tleQQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAdhZGRyZXNzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAEAAAAYZ2V0U3RyaW5nQnlBZGRyZXNzQW5kS2V5AAAAAgAAAAdhZGRyZXNzAAAAA2tleQQAAAAHJG1hdGNoMAkABB0AAAACBQAAAAdhZGRyZXNzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQIAAAAAAQAAABZkcm9wRWxlbWVudEluSnNvbkFycmF5AAAAAgAAAAVhcnJheQAAAAdlbGVtZW50BAAAAAxzcGxpdGVkQXJyYXkJAAS1AAAAAgUAAAAFYXJyYXkFAAAAB2VsZW1lbnQDCQAAAAAAAAIJAAEvAAAAAgkAAZEAAAACBQAAAAxzcGxpdGVkQXJyYXkAAAAAAAAAAAEAAAAAAAAAAAECAAAAASwJAAEsAAAAAgkAAZEAAAACBQAAAAxzcGxpdGVkQXJyYXkAAAAAAAAAAAAJAAEwAAAAAgkAAZEAAAACBQAAAAxzcGxpdGVkQXJyYXkAAAAAAAAAAAEAAAAAAAAAAAEJAAEsAAAAAgkBAAAACWRyb3BSaWdodAAAAAIJAAGRAAAAAgUAAAAMc3BsaXRlZEFycmF5AAAAAAAAAAAAAAAAAAAAAAABCQABkQAAAAIFAAAADHNwbGl0ZWRBcnJheQAAAAAAAAAAAQEAAAAWY29udmVydEpzb25BcnJheVRvTGlzdAAAAAEAAAAJanNvbkFycmF5CQAEtQAAAAIFAAAACWpzb25BcnJheQIAAAABLAAAAAAFQkxPQ0sCAAAABWJsb2NrAAAAAAdVTkJMT0NLAgAAAAd1bmJsb2NrAAAAAAZVUERBVEUCAAAABnVwZGF0ZQAAAAAKT3JhY2xlc0tleQIAAAAHb3JhY2xlcwAAAAAJQWRtaW5zS2V5AgAAAAZhZG1pbnMAAAAAD1ZvdGVJbnRlcnZhbEtleQIAAAANdm90ZV9pbnRlcnZhbAAAAAAUQ29lZmZpY2llbnRPcmFjbGVLZXkCAAAAEmNvZWZmaWNpZW50X29yYWNsZQAAAAATQ29lZmZpY2llbnRBZG1pbktleQIAAAARY29lZmZpY2llbnRfYWRtaW4AAAAAF1NjcmlwdFVwZGF0ZUludGVydmFsS2V5AgAAABZzY3JpcHRfdXBkYXRlX2ludGVydmFsAAAAABRQcm92aWRpbmdJbnRlcnZhbEtleQIAAAAScHJvdmlkaW5nX2ludGVydmFsAAAAAAhQcmljZUtleQIAAAAFcHJpY2UAAAAADlByaWNlT2Zmc2V0S2V5AgAAAAxwcmljZV9vZmZzZXQAAAAAEUlzUHJpY2VQZW5kaW5nS2V5AgAAABBpc19wZW5kaW5nX3ByaWNlAAAAAAxJc0Jsb2NrZWRLZXkCAAAACmlzX2Jsb2NrZWQAAAAAEk9yYWNsZUlzUHJvdmlkZUtleQIAAAASb3JhY2xlX2lzX3Byb3ZpZGVfAAAAABVPcmFjbGVQcm92aWRlUHJpY2VLZXkCAAAAFW9yYWNsZV9wcmljZV9wcm92aWRlXwAAAAAMQWRtaW5Wb3RlS2V5AgAAAAthZG1pbl92b3RlXwAAAAAJQWN0aW9uS2V5AgAAAAZhY3Rpb24AAAAAF0Jsb2NrRXhwaXJlUHJvdmlkaW5nS2V5AgAAABZwcm92aWRpbmdfZXhwaXJlX2Jsb2NrAAAAABJCbGFja1N3YXJtUHJpY2VLZXkCAAAAEWJsYWNrX3N3YXJtX3ByaWNlAAAAABJCbG9ja0V4cGlyZVZvdGVLZXkCAAAAEXZvdGVfZXhwaXJlX2Jsb2NrAAAAABRTY3JpcHRVcGRhdGVCbG9ja0tleQIAAAATc2NyaXB0X3VwZGF0ZV9ibG9jawAAAAANUHJpY2VJbmRleEtleQIAAAALcHJpY2VfaW5kZXgBAAAAFWdldE9yYWNsZUlzUHJvdmlkZUtleQAAAAEAAAAFb3duZXIJAAEsAAAAAgUAAAAST3JhY2xlSXNQcm92aWRlS2V5BQAAAAVvd25lcgEAAAAYZ2V0T3JhY2xlUHJvdmlkZVByaWNlS2V5AAAAAQAAAAVvd25lcgkAASwAAAACBQAAABVPcmFjbGVQcm92aWRlUHJpY2VLZXkFAAAABW93bmVyAQAAAA9nZXRBZG1pblZvdGVLZXkAAAABAAAABW93bmVyCQABLAAAAAIFAAAADEFkbWluVm90ZUtleQUAAAAFb3duZXIBAAAAFWdldEFkbWluVm90ZUFjdGlvbktleQAAAAEAAAAFb3duZXIJAAEsAAAAAgkAASwAAAACCQEAAAAPZ2V0QWRtaW5Wb3RlS2V5AAAAAQUAAAAFb3duZXICAAAAAV8FAAAACUFjdGlvbktleQEAAAAVZ2V0QmxhY2tTd2FybVByaWNlS2V5AAAAAQAAAAVibG9jawkAASwAAAACCQABLAAAAAIFAAAAEkJsYWNrU3dhcm1QcmljZUtleQIAAAABXwkAAaQAAAABBQAAAAVibG9jawEAAAASZ2V0UHJpY2VIaXN0b3J5S2V5AAAAAQAAAAVibG9jawkAASwAAAACCQABLAAAAAIFAAAACFByaWNlS2V5AgAAAAFfCQABpAAAAAEFAAAABWJsb2NrAQAAABhnZXRIZWlnaHRQcmljZUJ5SW5kZXhLZXkAAAABAAAABWluZGV4CQABLAAAAAIJAAEsAAAAAgUAAAANUHJpY2VJbmRleEtleQIAAAABXwkAAaQAAAABBQAAAAVpbmRleAAAAAAFcHJpY2UJAQAAAA5nZXROdW1iZXJCeUtleQAAAAEFAAAACFByaWNlS2V5AAAAAApwcmljZUluZGV4CQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABBQAAAA1QcmljZUluZGV4S2V5AAAAABFwcm92aWRpbmdJbnRlcnZhbAkBAAAADmdldE51bWJlckJ5S2V5AAAAAQUAAAAUUHJvdmlkaW5nSW50ZXJ2YWxLZXkAAAAAFGJsb2NrRXhwaXJlUHJvdmlkaW5nCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABBQAAABdCbG9ja0V4cGlyZVByb3ZpZGluZ0tleQAAAAAPYmxvY2tFeHBpcmVWb3RlCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABBQAAABJCbG9ja0V4cGlyZVZvdGVLZXkAAAAAEXNjcmlwdFVwZGF0ZUJsb2NrCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABBQAAABRTY3JpcHRVcGRhdGVCbG9ja0tleQAAAAAUc2NyaXB0VXBkYXRlSW50ZXJ2YWwJAQAAAA5nZXROdW1iZXJCeUtleQAAAAEFAAAAF1NjcmlwdFVwZGF0ZUludGVydmFsS2V5AAAAAA5pc1ByaWNlUGVuZGluZwkBAAAADGdldEJvb2xCeUtleQAAAAEFAAAAEUlzUHJpY2VQZW5kaW5nS2V5AAAAAAlpc0Jsb2NrZWQJAQAAAAxnZXRCb29sQnlLZXkAAAABBQAAAAxJc0Jsb2NrZWRLZXkAAAAAFGJmdENvZWZmaWNpZW50T3JhY2xlCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABBQAAABRDb2VmZmljaWVudE9yYWNsZUtleQAAAAATYmZ0Q29lZmZpY2llbnRBZG1pbgkBAAAADmdldE51bWJlckJ5S2V5AAAAAQUAAAATQ29lZmZpY2llbnRBZG1pbktleQAAAAAScGVyY2VudFByaWNlT2Zmc2V0CQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABBQAAAA5QcmljZU9mZnNldEtleQAAAAAMdm90ZUludGVydmFsCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABBQAAAA9Wb3RlSW50ZXJ2YWxLZXkAAAAAB29yYWNsZXMJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEFAAAACk9yYWNsZXNLZXkAAAAABmFkbWlucwkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQUAAAAJQWRtaW5zS2V5AAAAAAtvcmFjbGVzTGlzdAkBAAAAFmNvbnZlcnRKc29uQXJyYXlUb0xpc3QAAAABBQAAAAdvcmFjbGVzAAAAAAphZG1pbnNMaXN0CQEAAAAWY29udmVydEpzb25BcnJheVRvTGlzdAAAAAEFAAAABmFkbWlucwEAAAASZ2V0QWRtaW5Wb3RlQWN0aW9uAAAAAQAAAAVvd25lcgkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQkBAAAAFWdldEFkbWluVm90ZUFjdGlvbktleQAAAAEFAAAABW93bmVyAQAAAA9pc09yYWNsZVByb3ZpZGUAAAABAAAABW93bmVyCQEAAAAMZ2V0Qm9vbEJ5S2V5AAAAAQkBAAAAFWdldE9yYWNsZUlzUHJvdmlkZUtleQAAAAEFAAAABW93bmVyAQAAABJpc09yYWNsZVByb3ZpZGVJbnQAAAABAAAABW93bmVyAwkBAAAAD2lzT3JhY2xlUHJvdmlkZQAAAAEFAAAABW93bmVyAAAAAAAAAAABAAAAAAAAAAAAAQAAABVnZXRPcmFjbGVQcm92aWRlUHJpY2UAAAABAAAABW93bmVyCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAYZ2V0T3JhY2xlUHJvdmlkZVByaWNlS2V5AAAAAQUAAAAFb3duZXIBAAAACGlzT3JhY2xlAAAAAQAAAAdhZGRyZXNzCQEAAAAJaXNEZWZpbmVkAAAAAQkABLMAAAACBQAAAAdvcmFjbGVzBQAAAAdhZGRyZXNzAQAAAAdpc0FkbWluAAAAAQAAAAdhZGRyZXNzCQEAAAAJaXNEZWZpbmVkAAAAAQkABLMAAAACBQAAAAZhZG1pbnMFAAAAB2FkZHJlc3MBAAAADnN1bU9yYWNsZVByaWNlAAAAAgAAAARiYXNlAAAAB2FkZHJlc3MJAABkAAAAAgUAAAAEYmFzZQkAAGgAAAACCQEAAAAVZ2V0T3JhY2xlUHJvdmlkZVByaWNlAAAAAQUAAAAHYWRkcmVzcwkBAAAAEmlzT3JhY2xlUHJvdmlkZUludAAAAAEFAAAAB2FkZHJlc3MBAAAAGGZpbHRlckFkbWluc1ZvdGVCeUFjdGlvbgAAAAMAAAAGcmVzdWx0AAAAB2FkZHJlc3MAAAAGYWN0aW9uCQAETAAAAAIFAAAAB2FkZHJlc3MFAAAABnJlc3VsdAEAAAAdZmlsdGVyQWRtaW5zVm90ZUJ5QmxvY2tBY3Rpb24AAAACAAAABnJlc3VsdAAAAAdhZGRyZXNzCQEAAAAYZmlsdGVyQWRtaW5zVm90ZUJ5QWN0aW9uAAAAAwUAAAAGcmVzdWx0BQAAAAdhZGRyZXNzBQAAAAVCTE9DSwEAAAAfZmlsdGVyQWRtaW5zVm90ZUJ5VW5ibG9ja0FjdGlvbgAAAAIAAAAGcmVzdWx0AAAAB2FkZHJlc3MJAQAAABhmaWx0ZXJBZG1pbnNWb3RlQnlBY3Rpb24AAAADBQAAAAZyZXN1bHQFAAAAB2FkZHJlc3MFAAAAB1VOQkxPQ0sBAAAAHmZpbHRlckFkbWluc1ZvdGVCeVVwZGF0ZUFjdGlvbgAAAAIAAAAGcmVzdWx0AAAAB2FkZHJlc3MJAQAAABhmaWx0ZXJBZG1pbnNWb3RlQnlBY3Rpb24AAAADBQAAAAZyZXN1bHQFAAAAB2FkZHJlc3MFAAAABlVQREFURQAAAAMAAAABaQEAAAAPc2V0Q3VycmVudFByaWNlAAAAAQAAAAhuZXdQcmljZQQAAAAHYWNjb3VudAkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIEAAAAE2lzT3JhY2xlUHJvdmlkZUxpc3QJAARMAAAAAgkBAAAAD2lzT3JhY2xlUHJvdmlkZQAAAAEJAAGRAAAAAgUAAAALb3JhY2xlc0xpc3QAAAAAAAAAAAAJAARMAAAAAgkBAAAAD2lzT3JhY2xlUHJvdmlkZQAAAAEJAAGRAAAAAgUAAAALb3JhY2xlc0xpc3QAAAAAAAAAAAEJAARMAAAAAgkBAAAAD2lzT3JhY2xlUHJvdmlkZQAAAAEJAAGRAAAAAgUAAAALb3JhY2xlc0xpc3QAAAAAAAAAAAIJAARMAAAAAgkBAAAAD2lzT3JhY2xlUHJvdmlkZQAAAAEJAAGRAAAAAgUAAAALb3JhY2xlc0xpc3QAAAAAAAAAAAMJAARMAAAAAgkBAAAAD2lzT3JhY2xlUHJvdmlkZQAAAAEJAAGRAAAAAgUAAAALb3JhY2xlc0xpc3QAAAAAAAAAAAQFAAAAA25pbAQAAAATcHJpY2VQcm92aWRpbmdDb3VudAkAAGQAAAACCQAAZAAAAAIJAABkAAAAAgkA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AAAADVByaWNlSW5kZXhLZXkFAAAADW5ld1ByaWNlSW5kZXgJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABhnZXRIZWlnaHRQcmljZUJ5SW5kZXhLZXkAAAABBQAAAA1uZXdQcmljZUluZGV4BQAAAAZoZWlnaHQFAAAAA25pbAAAAAFpAQAAAAR2b3RlAAAAAQAAAAZhY3Rpb24EAAAAB2FjY291bnQJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBAAAABhhZG1pbnNMaXN0V2l0aG91dEFjY291bnQJAQAAABZjb252ZXJ0SnNvbkFycmF5VG9MaXN0AAAAAQkBAAAAFmRyb3BFbGVtZW50SW5Kc29uQXJyYXkAAAACBQAAAAZhZG1pbnMFAAAAB2FjY291bnQEAAAACmxhc3RBY3Rpb24JAQAAABJnZXRBZG1pblZvdGVBY3Rpb24AAAABBQAAAAdhY2NvdW50BAAAAApibG9ja1ZvdGVzBAAAAA0kbGlzdDk4Nzk5OTQ3BQAAABhhZG1pbnNMaXN0V2l0aG91dEFjY291bnQEAAAADSRzaXplOTg3OTk5NDcJAAGQAAAAAQUAAAANJGxpc3Q5ODc5OTk0NwQAAAANJGFjYzA5ODc5OTk0NwUAAAADbmlsAwkAAAAAAAACBQAAAA0kc2l6ZTk4Nzk5OTQ3AAAAAAAAAAAABQAAAA0kYWNjMDk4Nzk5OTQ3BAAAAA0kYWNjMTk4Nzk5OTQ3CQEAAAAdZmlsdGVyQWRtaW5zVm90ZUJ5QmxvY2tBY3Rpb24AAAACBQAAAA0kYWNjMDk4Nzk5OTQ3CQABkQAAAAIFAAAADSRsaXN0OTg3OTk5NDcAAAAAAAAAAAADCQAAAAAAAAIFAAAADSRzaXplOTg3OTk5NDcAAAAAAAAAAAEFAAAADSRhY2MxOTg3OTk5NDcEAAAADSRhY2MyOTg3OTk5NDcJAQAAAB1maWx0ZXJBZG1pbnNWb3RlQnlCbG9ja0FjdGlvbgAAAAIFAAAADSRhY2MxOTg3OTk5NDcJAAGRAAAAAgUAAAANJGxpc3Q5ODc5OTk0NwAAAAAAAAAAAQMJAAAAAAAAAgUAAAANJHNpemU5ODc5OTk0NwAAAAAAAAAAAgUAAAANJGFjYzI5ODc5OTk0NwQAAAANJGFjYzM5ODc5OTk0NwkBAAAAHWZpbHRlckFkbWluc1ZvdGVCeUJsb2NrQWN0aW9uAAAAAgUAAAANJGFjYzI5ODc5OTk0NwkAAZEAAAACBQAAAA0kbGlzdDk4Nzk5OTQ3AAAAAAAAAAACAwkAAAAAAAACBQAAAA0kc2l6ZTk4Nzk5OTQ3AAAAAAAAAAADBQAAAA0kYWNjMzk4Nzk5OTQ3BAAAAA0kYWNjNDk4Nzk5OTQ3CQEAAAAdZmlsdGVyQWRtaW5zVm90ZUJ5QmxvY2tBY3Rpb24AAAACBQAAAA0kYWNjMzk4Nzk5OTQ3CQABkQAAAAIFAAAADSRsaXN0OTg3OTk5NDcAAAAAAAAAAAMDCQAAAAAAAAIFAAAADSRzaXplOTg3OTk5NDcAAAAAAAAAAAQFAAAADSRhY2M0OTg3OTk5NDcEAAAADSRhY2M1OTg3OTk5NDcJAQAAAB1maWx0ZXJBZG1pbnNWb3RlQnlCbG9ja0FjdGlvbgAAAAIFAAAADSRhY2M0OTg3OTk5NDcJAAGRAAAAAgUAAAANJGxpc3Q5ODc5OTk0NwAAAAAAAAAABAMJAAAAAAAAAgUAAAANJHNpemU5ODc5OTk0NwAAAAAAAAAABQUAAAANJGFjYzU5ODc5OTk0NwQAAAANJGFjYzY5ODc5OTk0NwkBAAAAHWZpbHRlckFkbWluc1ZvdGVCeUJsb2NrQWN0aW9uAAAAAgUAAAANJGFjYzU5ODc5OTk0NwkAAZEAAAACBQAAAA0kbGlzdDk4Nzk5OTQ3AAAAAAAAAAAFCQAAAgAAAAECAAAAEkxpc3Qgc2l6ZSBleGNlZWQgNQQAAAAMdW5ibG9ja1ZvdGVzBAAAAA4kbGlzdDk5NzExMDA0MQUAAAAYYWRtaW5zTGlzdFdpdGhvdXRBY2NvdW50BAAAAA4kc2l6ZTk5NzExMDA0MQkAAZAAAAABBQAAAA4kbGlzdDk5NzExMDA0MQQAAAAOJGFjYzA5OTcxMTAwNDEFAAAAA25pbAMJAAAAAAAAAgUAAAAOJHNpemU5OTcxMTAwNDEAAAAAAAAAAAAFAAAADiRhY2MwOTk3MTEwMDQxBAAAAA4kYWNjMTk5NzExMDA0MQkBAAAAH2ZpbHRlckFkbWluc1ZvdGVCeVVuYmxvY2tBY3Rpb24AAAACBQAAAA4kYWNjMDk5NzExMDA0MQkAAZEAAAACBQAAAA4kbGlzdDk5NzExMDA0MQAAAAAAAAAAAAMJAAAAAAAAAgUAAAAOJHNpemU5OTcxMTAwNDEAAAAAAAAAAAEFAAAADiRhY2MxOTk3MTEwMDQxBAAAAA4kYWNjMjk5NzExMDA0MQkBAAAAH2ZpbHRlckFkbWluc1ZvdGVCeVVuYmxvY2tBY3Rpb24AAAACBQAAAA4kYWNjMTk5NzExMDA0MQkAAZEAAAACBQAAAA4kbGlzdDk5NzExMDA0MQAAAAAAAAAAAQMJAAAAAAAAAgUAAAAOJHNpemU5OTcxMTAwNDEAAAAAAAAAAAIFAAAADiRhY2MyOTk3MTEwMDQxBAAAAA4kYWNjMzk5NzExMDA0MQkBAAAAH2ZpbHRlckFkbWluc1ZvdGVCeVVuYmxvY2tBY3Rpb24AAAACBQAAAA4kYWNjMjk5NzExMDA0MQkAAZEAAAACBQAAAA4kbGlzdDk5NzExMDA0MQAAAAAAAAAAAgMJAAAAAAAAAgUAAAAOJHNpemU5OTcxMTAwNDEAAAAAAAAAAAMFAAAADiRhY2MzOTk3MTEwMDQxBAAAAA4kYWNjNDk5NzExMDA0MQkBAAAAH2ZpbHRlckFkbWluc1ZvdGVCeVVuYmxvY2tBY3Rpb24AAAACBQAAAA4kYWNjMzk5NzExMDA0MQkAAZEAAAACBQAAAA4kbGlzdDk5NzExMDA0MQAAAAAAAAAAAwMJAAAAAAAAAgUAAAAOJHNpemU5OTcxMTAwNDEAAAAAAAAAAAQFAAAADiRhY2M0OTk3MTEwMDQxBAAAAA4kYWNjNTk5NzExMDA0MQkBAAAAH2ZpbHRlckFkbWluc1ZvdGVCeVVuYmxvY2tBY3Rpb24AAAACBQAAAA4kYWNjNDk5NzExMDA0MQkAAZEAAAACBQAAAA4kbGlzdDk5NzExMDA0MQAAAAAAAAAABAMJAAAAAAAAAgUAAAAOJHNpemU5OTcxMTAwNDEAAAAAAAAAAAUFAAAADiRhY2M1OTk3MTEwMDQxBAAAAA4kYWNjNjk5NzExMDA0MQkBAAAAH2ZpbHRlckFkbWluc1ZvdGVCeVVuYmxvY2tBY3Rpb24AAAACBQAAAA4kYWNjNTk5NzExMDA0MQkAAZEAAAACBQAAAA4kbGlzdDk5NzExMDA0MQAAAAAAAAAABQkAAAIAAAABAgAAABJMaXN0IHNpemUgZXhjZWVkIDUEAAAAC3VwZGF0ZVZvdGVzBAAAAA8kbGlzdDEwMDY0MTAxMzMFAAAAGGFkbWluc0xpc3RXaXRob3V0QWNjb3VudAQAAAAPJHNpemUxMDA2NDEwMTMzCQABkAAAAAEFAAAADyRsaXN0MTAwNjQxMDEzMwQAAAAPJGFjYzAxMDA2NDEwMTMzBQAAAANuaWwDCQAAAAAAAAIFAAAADyRzaXplMTAwNjQxMDEzMwAAAAAAAAAAAAUAAAAPJGFjYzAxMDA2NDEwMTMzBAAAAA8kYWNjMTEwMDY0MTAxMzMJAQAAAB5maWx0ZXJBZG1pbnNWb3RlQnlVcGRhdGVBY3Rpb24AAAACBQAAAA8kYWNjMDEwMDY0MTAxMzMJAAGRAAAAAgUAAAAPJGxpc3QxMDA2NDEwMTMzAAAAAAAAAAAAAwkAAAAAAAACBQAAAA8kc2l6ZTEwMDY0MTAxMzMAAAAAAAAAAAEFAAAADyRhY2MxMTAwNjQxMDEzMwQAAAAPJGFjYzIxMDA2NDEwMTMzCQEAAAAeZmlsdGVyQWRtaW5zVm90ZUJ5VXBkYXRlQWN0aW9uAAAAAgUAAAAPJGFjYzExMDA2NDEwMTMzCQABkQAAAAIFAAAADyRsaXN0MTAwNjQxMDEzMwAAAAAAAAAAAQMJAAAAAAAAAgUAAAAPJHNpemUxMDA2NDEwMTMzAAAAAAAAAAACBQAAAA8kYWNjMjEwMDY0MTAxMzMEAAAADyRhY2MzMTAwNjQxMDEzMwkBAAAAHmZpbHRlckFkbWluc1ZvdGVCeVVwZGF0ZUFjdGlvbgAAAAIFAAAADyRhY2MyMTAwNjQxMDEzMwkAAZEAAAACBQAAAA8kbGlzdDEwMDY0MTAxMzMAAAAAAAAAAAIDCQAAAAAAAAIFAAAADyRzaXplMTAwNjQxMDEzMwAAAAAAAAAAAwUAAAAPJGFjYzMxMDA2NDEwMTMzBAAAAA8kYWNjNDEwMDY0MTAxMzMJAQAAAB5maWx0ZXJBZG1pbnNWb3RlQnlVcGRhdGVBY3Rpb24AAAACBQAAAA8kYWNjMzEwMDY0MTAxMzMJAAGRAAAAAgUAAAAPJGxpc3QxMDA2NDEwMTMzAAAAAAAAAAADAwkAAAAAAAACBQAAAA8kc2l6ZTEwMDY0MTAxMzMAAAAAAAAAAAQFAAAADyRhY2M0MTAwNjQxMDEzMwQAAAAPJGFjYzUxMDA2NDEwMTMzCQEAAAAeZmlsdGVyQWRtaW5zVm90ZUJ5VXBkYXRlQWN0aW9uAAAAAgUAAAAPJGFjYzQxMDA2NDEwMTMzCQABkQAAAAIFAAAADyRsaXN0MTAwNjQxMDEzMwAAAAAAAAAABAMJAAAAAAAAAgUAAAAPJHNpemUxMDA2NDEwMTMzAAAAAAAAAAAFBQAAAA8kYWNjNTEwMDY0MTAxMzMEAAAADyRhY2M2MTAwNjQxMDEzMwkBAAAAHmZpbHRlckFkbWluc1ZvdGVCeVVwZGF0ZUFjdGlvbgAAAAIFAAAADyRhY2M1MTAwNjQxMDEzMwkAAZEAAAACBQAAAA8kbGlzdDEwMDY0MTAxMzMAAAAAAAAAAAUJAAACAAAAAQIAAAASTGlzdCBzaXplIGV4Y2VlZCA1BAAAAA5ibG9ja1ZvdGVDb3VudAkAAGQAAAACCQABkAAAAAEFAAAACmJsb2NrVm90ZXMDCQAAAAAAAAIFAAAABmFjdGlvbgUAAAAFQkxPQ0sAAAAAAAAAAAEAAAAAAAAAAAAEAAAAEHVuYmxvY2tWb3RlQ291bnQJAABkAAAAAgkAAZAAAAABBQAAAAx1bmJsb2NrVm90ZXMDCQAAAAAAAAIFAAAABmFjdGlvbgUAAAAHVU5CTE9DSwAAAAAAAAAAAQAAAAAAAAAAAAQAAAAQdXBkYXRlVm90ZXNDb3VudAkAAGQAAAACCQABkAAAAAEFAAAAC3VwZGF0ZVZvdGVzAwkAAAAAAAACBQAAAAZhY3Rpb24FAAAABlVQREFURQAAAAAAAAAAAQAAAAAAAAAAAAQAAAALcmVzZXRSZXN1bHQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAAEkJsb2NrRXhwaXJlVm90ZUtleQAAAAAAAAAAAAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAAXQmxvY2tFeHBpcmVQcm92aWRpbmdLZXkAAAAAAAAAAAAJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABVnZXRBZG1pblZvdGVBY3Rpb25LZXkAAAABCQABkQAAAAIFAAAAGGFkbWluc0xpc3RXaXRob3V0QWNjb3VudAAAAAAAAAAAAAIAAAAACQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAVZ2V0QWRtaW5Wb3RlQWN0aW9uS2V5AAAAAQkAAZEAAAACBQAAABhhZG1pbnNMaXN0V2l0aG91dEFjY291bnQAAAAAAAAAAAECAAAAAAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAFWdldEFkbWluVm90ZUFjdGlvbktleQAAAAEJAAGRAAAAAgUAAAAYYWRtaW5zTGlzdFdpdGhvdXRBY2NvdW50AAAAAAAAAAACAgAAAAAJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABVnZXRBZG1pblZvdGVBY3Rpb25LZXkAAAABCQABkQAAAAIFAAAAGGFkbWluc0xpc3RXaXRob3V0QWNjb3VudAAAAAAAAAAAAwIAAAAABQAAAANuaWwDAwkAAGcAAAACBQAAAA5ibG9ja1ZvdGVDb3VudAUAAAATYmZ0Q29lZmZpY2llbnRBZG1pbgYJAABnAAAAAgUAAAAQdW5ibG9ja1ZvdGVDb3VudAUAAAATYmZ0Q29lZmZpY2llbnRBZG1pbgkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAARSXNQcmljZVBlbmRpbmdLZXkHCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAAAxJc0Jsb2NrZWRLZXkDCQAAZwAAAAIFAAAADmJsb2NrVm90ZUNvdW50BQAAABNiZnRDb2VmZmljaWVudEFkbWluBgcFAAAAC3Jlc2V0UmVzdWx0AwkAAGYAAAACBQAAABB1cGRhdGVWb3Rlc0NvdW50BQAAABNiZnRDb2VmZmljaWVudEFkbWluCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAABRTY3JpcHRVcGRhdGVCbG9ja0tleQMJAABmAAAAAgUAAAAQdXBkYXRlVm90ZXNDb3VudAUAAAATYmZ0Q29lZmZpY2llbnRBZG1pbgkAAGQAAAACBQAAAAZoZWlnaHQFAAAAFHNjcmlwdFVwZGF0ZUludGVydmFsBQAAABFzY3JpcHRVcGRhdGVCbG9jawUAAAALcmVzZXRSZXN1bHQJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAAEkJsb2NrRXhwaXJlVm90ZUtleQMJAABmAAAAAgUAAAAGaGVpZ2h0BQAAAA9ibG9ja0V4cGlyZVZvdGUJAABkAAAAAgUAAAAGaGVpZ2h0BQAAAAx2b3RlSW50ZXJ2YWwFAAAAD2Jsb2NrRXhwaXJlVm90ZQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAFWdldEFkbWluVm90ZUFjdGlvbktleQAAAAEFAAAAB2FjY291bnQFAAAABmFjdGlvbgUAAAADbmlsAAAAAA0nbJ4=", "chainId": 84, "height": 772150, "spentComplexity": 0 } View: original | compacted Prev: none Next: none Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 3 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+func getNumberByKey (key) = match getInteger(this, key) {
5+ case a: Int =>
6+ a
7+ case _ =>
8+ 0
9+}
10+
11+
12+func getStringByKey (key) = match getString(this, key) {
13+ case a: String =>
14+ a
15+ case _ =>
16+ ""
17+}
18+
19+
20+func getBoolByKey (key) = match getBoolean(this, key) {
21+ case a: Boolean =>
22+ a
23+ case _ =>
24+ false
25+}
26+
27+
28+func getNumberByAddressAndKey (address,key) = match getInteger(address, key) {
29+ case a: Int =>
30+ a
31+ case _ =>
32+ 0
33+}
34+
35+
36+func getStringByAddressAndKey (address,key) = match getString(address, key) {
37+ case a: String =>
38+ a
39+ case _ =>
40+ ""
41+}
42+
43+
44+func dropElementInJsonArray (array,element) = {
45+ let splitedArray = split(array, element)
46+ if ((take(splitedArray[1], 1) == ","))
47+ then (splitedArray[0] + drop(splitedArray[1], 1))
48+ else (dropRight(splitedArray[0], 1) + splitedArray[1])
49+ }
50+
51+
52+func convertJsonArrayToList (jsonArray) = split(jsonArray, ",")
53+
54+
55+let BLOCK = "block"
56+
57+let UNBLOCK = "unblock"
58+
59+let UPDATE = "update"
60+
61+let OraclesKey = "oracles"
62+
63+let AdminsKey = "admins"
64+
65+let VoteIntervalKey = "vote_interval"
66+
67+let CoefficientOracleKey = "coefficient_oracle"
68+
69+let CoefficientAdminKey = "coefficient_admin"
70+
71+let ScriptUpdateIntervalKey = "script_update_interval"
72+
73+let ProvidingIntervalKey = "providing_interval"
74+
75+let PriceKey = "price"
76+
77+let PriceOffsetKey = "price_offset"
78+
79+let IsPricePendingKey = "is_pending_price"
80+
81+let IsBlockedKey = "is_blocked"
82+
83+let OracleIsProvideKey = "oracle_is_provide_"
84+
85+let OracleProvidePriceKey = "oracle_price_provide_"
86+
87+let AdminVoteKey = "admin_vote_"
88+
89+let ActionKey = "action"
90+
91+let BlockExpireProvidingKey = "providing_expire_block"
92+
93+let BlackSwarmPriceKey = "black_swarm_price"
94+
95+let BlockExpireVoteKey = "vote_expire_block"
96+
97+let ScriptUpdateBlockKey = "script_update_block"
98+
99+let PriceIndexKey = "price_index"
100+
101+func getOracleIsProvideKey (owner) = (OracleIsProvideKey + owner)
102+
103+
104+func getOracleProvidePriceKey (owner) = (OracleProvidePriceKey + owner)
105+
106+
107+func getAdminVoteKey (owner) = (AdminVoteKey + owner)
108+
109+
110+func getAdminVoteActionKey (owner) = ((getAdminVoteKey(owner) + "_") + ActionKey)
111+
112+
113+func getBlackSwarmPriceKey (block) = ((BlackSwarmPriceKey + "_") + toString(block))
114+
115+
116+func getPriceHistoryKey (block) = ((PriceKey + "_") + toString(block))
117+
118+
119+func getHeightPriceByIndexKey (index) = ((PriceIndexKey + "_") + toString(index))
120+
121+
122+let price = getNumberByKey(PriceKey)
123+
124+let priceIndex = getNumberByKey(PriceIndexKey)
125+
126+let providingInterval = getNumberByKey(ProvidingIntervalKey)
127+
128+let blockExpireProviding = getNumberByKey(BlockExpireProvidingKey)
129+
130+let blockExpireVote = getNumberByKey(BlockExpireVoteKey)
131+
132+let scriptUpdateBlock = getNumberByKey(ScriptUpdateBlockKey)
133+
134+let scriptUpdateInterval = getNumberByKey(ScriptUpdateIntervalKey)
135+
136+let isPricePending = getBoolByKey(IsPricePendingKey)
137+
138+let isBlocked = getBoolByKey(IsBlockedKey)
139+
140+let bftCoefficientOracle = getNumberByKey(CoefficientOracleKey)
141+
142+let bftCoefficientAdmin = getNumberByKey(CoefficientAdminKey)
143+
144+let percentPriceOffset = getNumberByKey(PriceOffsetKey)
145+
146+let voteInterval = getNumberByKey(VoteIntervalKey)
147+
148+let oracles = getStringByKey(OraclesKey)
149+
150+let admins = getStringByKey(AdminsKey)
151+
152+let oraclesList = convertJsonArrayToList(oracles)
153+
154+let adminsList = convertJsonArrayToList(admins)
155+
156+func getAdminVoteAction (owner) = getStringByKey(getAdminVoteActionKey(owner))
157+
158+
159+func isOracleProvide (owner) = getBoolByKey(getOracleIsProvideKey(owner))
160+
161+
162+func isOracleProvideInt (owner) = if (isOracleProvide(owner))
163+ then 1
164+ else 0
165+
166+
167+func getOracleProvidePrice (owner) = getNumberByKey(getOracleProvidePriceKey(owner))
168+
169+
170+func isOracle (address) = isDefined(indexOf(oracles, address))
171+
172+
173+func isAdmin (address) = isDefined(indexOf(admins, address))
174+
175+
176+func sumOraclePrice (base,address) = (base + (getOracleProvidePrice(address) * isOracleProvideInt(address)))
177+
178+
179+func filterAdminsVoteByAction (result,address,action) = address :: result
180+
181+
182+func filterAdminsVoteByBlockAction (result,address) = filterAdminsVoteByAction(result, address, BLOCK)
183+
184+
185+func filterAdminsVoteByUnblockAction (result,address) = filterAdminsVoteByAction(result, address, UNBLOCK)
186+
187+
188+func filterAdminsVoteByUpdateAction (result,address) = filterAdminsVoteByAction(result, address, UPDATE)
189+
190+
191+@Callable(i)
192+func setCurrentPrice (newPrice) = {
193+ let account = toString(i.caller)
194+ let isOracleProvideList = [isOracleProvide(oraclesList[0]), isOracleProvide(oraclesList[1]), isOracleProvide(oraclesList[2]), isOracleProvide(oraclesList[3]), isOracleProvide(oraclesList[4])]
195+ let priceProvidingCount = ((((((if (isOracleProvideList[0])
196+ then 1
197+ else 0) + (if (isOracleProvideList[1])
198+ then 1
199+ else 0)) + (if (isOracleProvideList[2])
200+ then 1
201+ else 0)) + (if (isOracleProvideList[3])
202+ then 1
203+ else 0)) + (if (isOracleProvideList[4])
204+ then 1
205+ else 0)) + 1)
206+ if (isBlocked)
207+ then throw("contract is blocked")
208+ else if (!(isOracle(account)))
209+ then throw("permission denied")
210+ else if (if ((blockExpireProviding >= height))
211+ then isOracleProvide(account)
212+ else false)
213+ then throw("price is already provided")
214+ else if (if ((height > blockExpireProviding))
215+ then isPricePending
216+ else false)
217+ then throw("use finalizeCurrentPrice")
218+ else WriteSet([DataEntry(getOracleIsProvideKey(oraclesList[0]), if ((height > blockExpireProviding))
219+ then false
220+ else isOracleProvideList[0]), DataEntry(getOracleIsProvideKey(oraclesList[1]), if ((height > blockExpireProviding))
221+ then false
222+ else isOracleProvideList[1]), DataEntry(getOracleIsProvideKey(oraclesList[2]), if ((height > blockExpireProviding))
223+ then false
224+ else isOracleProvideList[2]), DataEntry(getOracleIsProvideKey(oraclesList[3]), if ((height > blockExpireProviding))
225+ then false
226+ else isOracleProvideList[3]), DataEntry(getOracleIsProvideKey(oraclesList[4]), if ((height > blockExpireProviding))
227+ then false
228+ else isOracleProvideList[4]), DataEntry(getOracleIsProvideKey(account), true), DataEntry(getOracleProvidePriceKey(account), newPrice), DataEntry(BlockExpireProvidingKey, if ((height > blockExpireProviding))
229+ then (height + providingInterval)
230+ else blockExpireProviding), DataEntry(IsPricePendingKey, if (if ((blockExpireProviding >= height))
231+ then (priceProvidingCount >= bftCoefficientOracle)
232+ else false)
233+ then true
234+ else isPricePending)])
235+ }
236+
237+
238+
239+@Callable(i)
240+func finalizeCurrentPrice () = {
241+ let isOracleProvideList = [isOracleProvide(oraclesList[0]), isOracleProvide(oraclesList[1]), isOracleProvide(oraclesList[2]), isOracleProvide(oraclesList[3]), isOracleProvide(oraclesList[4])]
242+ let priceProvidingCount = (((((if (isOracleProvideList[0])
243+ then 1
244+ else 0) + (if (isOracleProvideList[1])
245+ then 1
246+ else 0)) + (if (isOracleProvideList[2])
247+ then 1
248+ else 0)) + (if (isOracleProvideList[3])
249+ then 1
250+ else 0)) + (if (isOracleProvideList[4])
251+ then 1
252+ else 0))
253+ let priceSum = (((((getOracleProvidePrice(oraclesList[0]) * (if (isOracleProvideList[0])
254+ then 1
255+ else 0)) + (getOracleProvidePrice(oraclesList[1]) * (if (isOracleProvideList[1])
256+ then 1
257+ else 0))) + (getOracleProvidePrice(oraclesList[2]) * (if (isOracleProvideList[2])
258+ then 1
259+ else 0))) + (getOracleProvidePrice(oraclesList[3]) * (if (isOracleProvideList[3])
260+ then 1
261+ else 0))) + (getOracleProvidePrice(oraclesList[4]) * (if (isOracleProvideList[4])
262+ then 1
263+ else 0)))
264+ let newPrice = (priceSum / priceProvidingCount)
265+ if (isBlocked)
266+ then throw("contract is blocked")
267+ else if (if (!(isPricePending))
268+ then true
269+ else (blockExpireProviding >= height))
270+ then throw("wait for the end of the price providing")
271+ else if ((bftCoefficientOracle > priceProvidingCount))
272+ then throw("3/5 oracles need to set a price")
273+ else if (if ((newPrice >= (price + ((price * percentPriceOffset) / 100))))
274+ then true
275+ else ((price - ((price * percentPriceOffset) / 100)) >= newPrice))
276+ then WriteSet([DataEntry(IsBlockedKey, true), DataEntry(getBlackSwarmPriceKey(height), newPrice)])
277+ else {
278+ let newPriceIndex = (priceIndex + 1)
279+ WriteSet([DataEntry(PriceKey, newPrice), DataEntry(getPriceHistoryKey(height), newPrice), DataEntry(IsPricePendingKey, false), DataEntry(PriceIndexKey, newPriceIndex), DataEntry(getHeightPriceByIndexKey(newPriceIndex), height)])
280+ }
281+ }
282+
283+
284+
285+@Callable(i)
286+func vote (action) = {
287+ let account = toString(i.caller)
288+ let adminsListWithoutAccount = convertJsonArrayToList(dropElementInJsonArray(admins, account))
289+ let lastAction = getAdminVoteAction(account)
290+ let blockVotes = {
291+ let $list98799947 = adminsListWithoutAccount
292+ let $size98799947 = size($list98799947)
293+ let $acc098799947 = nil
294+ if (($size98799947 == 0))
295+ then $acc098799947
296+ else {
297+ let $acc198799947 = filterAdminsVoteByBlockAction($acc098799947, $list98799947[0])
298+ if (($size98799947 == 1))
299+ then $acc198799947
300+ else {
301+ let $acc298799947 = filterAdminsVoteByBlockAction($acc198799947, $list98799947[1])
302+ if (($size98799947 == 2))
303+ then $acc298799947
304+ else {
305+ let $acc398799947 = filterAdminsVoteByBlockAction($acc298799947, $list98799947[2])
306+ if (($size98799947 == 3))
307+ then $acc398799947
308+ else {
309+ let $acc498799947 = filterAdminsVoteByBlockAction($acc398799947, $list98799947[3])
310+ if (($size98799947 == 4))
311+ then $acc498799947
312+ else {
313+ let $acc598799947 = filterAdminsVoteByBlockAction($acc498799947, $list98799947[4])
314+ if (($size98799947 == 5))
315+ then $acc598799947
316+ else {
317+ let $acc698799947 = filterAdminsVoteByBlockAction($acc598799947, $list98799947[5])
318+ throw("List size exceed 5")
319+ }
320+ }
321+ }
322+ }
323+ }
324+ }
325+ }
326+ let unblockVotes = {
327+ let $list997110041 = adminsListWithoutAccount
328+ let $size997110041 = size($list997110041)
329+ let $acc0997110041 = nil
330+ if (($size997110041 == 0))
331+ then $acc0997110041
332+ else {
333+ let $acc1997110041 = filterAdminsVoteByUnblockAction($acc0997110041, $list997110041[0])
334+ if (($size997110041 == 1))
335+ then $acc1997110041
336+ else {
337+ let $acc2997110041 = filterAdminsVoteByUnblockAction($acc1997110041, $list997110041[1])
338+ if (($size997110041 == 2))
339+ then $acc2997110041
340+ else {
341+ let $acc3997110041 = filterAdminsVoteByUnblockAction($acc2997110041, $list997110041[2])
342+ if (($size997110041 == 3))
343+ then $acc3997110041
344+ else {
345+ let $acc4997110041 = filterAdminsVoteByUnblockAction($acc3997110041, $list997110041[3])
346+ if (($size997110041 == 4))
347+ then $acc4997110041
348+ else {
349+ let $acc5997110041 = filterAdminsVoteByUnblockAction($acc4997110041, $list997110041[4])
350+ if (($size997110041 == 5))
351+ then $acc5997110041
352+ else {
353+ let $acc6997110041 = filterAdminsVoteByUnblockAction($acc5997110041, $list997110041[5])
354+ throw("List size exceed 5")
355+ }
356+ }
357+ }
358+ }
359+ }
360+ }
361+ }
362+ let updateVotes = {
363+ let $list1006410133 = adminsListWithoutAccount
364+ let $size1006410133 = size($list1006410133)
365+ let $acc01006410133 = nil
366+ if (($size1006410133 == 0))
367+ then $acc01006410133
368+ else {
369+ let $acc11006410133 = filterAdminsVoteByUpdateAction($acc01006410133, $list1006410133[0])
370+ if (($size1006410133 == 1))
371+ then $acc11006410133
372+ else {
373+ let $acc21006410133 = filterAdminsVoteByUpdateAction($acc11006410133, $list1006410133[1])
374+ if (($size1006410133 == 2))
375+ then $acc21006410133
376+ else {
377+ let $acc31006410133 = filterAdminsVoteByUpdateAction($acc21006410133, $list1006410133[2])
378+ if (($size1006410133 == 3))
379+ then $acc31006410133
380+ else {
381+ let $acc41006410133 = filterAdminsVoteByUpdateAction($acc31006410133, $list1006410133[3])
382+ if (($size1006410133 == 4))
383+ then $acc41006410133
384+ else {
385+ let $acc51006410133 = filterAdminsVoteByUpdateAction($acc41006410133, $list1006410133[4])
386+ if (($size1006410133 == 5))
387+ then $acc51006410133
388+ else {
389+ let $acc61006410133 = filterAdminsVoteByUpdateAction($acc51006410133, $list1006410133[5])
390+ throw("List size exceed 5")
391+ }
392+ }
393+ }
394+ }
395+ }
396+ }
397+ }
398+ let blockVoteCount = (size(blockVotes) + (if ((action == BLOCK))
399+ then 1
400+ else 0))
401+ let unblockVoteCount = (size(unblockVotes) + (if ((action == UNBLOCK))
402+ then 1
403+ else 0))
404+ let updateVotesCount = (size(updateVotes) + (if ((action == UPDATE))
405+ then 1
406+ else 0))
407+ let resetResult = [DataEntry(BlockExpireVoteKey, 0), DataEntry(BlockExpireProvidingKey, 0), DataEntry(getAdminVoteActionKey(adminsListWithoutAccount[0]), ""), DataEntry(getAdminVoteActionKey(adminsListWithoutAccount[1]), ""), DataEntry(getAdminVoteActionKey(adminsListWithoutAccount[2]), ""), DataEntry(getAdminVoteActionKey(adminsListWithoutAccount[3]), "")]
408+ if (if ((blockVoteCount >= bftCoefficientAdmin))
409+ then true
410+ else (unblockVoteCount >= bftCoefficientAdmin))
411+ then WriteSet([DataEntry(IsPricePendingKey, false), DataEntry(IsBlockedKey, if ((blockVoteCount >= bftCoefficientAdmin))
412+ then true
413+ else false)] :: resetResult)
414+ else if ((updateVotesCount > bftCoefficientAdmin))
415+ then WriteSet(DataEntry(ScriptUpdateBlockKey, if ((updateVotesCount > bftCoefficientAdmin))
416+ then (height + scriptUpdateInterval)
417+ else scriptUpdateBlock) :: resetResult)
418+ else WriteSet([DataEntry(BlockExpireVoteKey, if ((height > blockExpireVote))
419+ then (height + voteInterval)
420+ else blockExpireVote), DataEntry(getAdminVoteActionKey(account), action)])
421+ }
422+
423+

github/deemru/w8io/3ef1775 
40.13 ms