tx · Gar9ECCSvLW2uaG7h3xPwk8iokfVwFd8p6xKTWUChoxn

3P5Bfd58PPfNvBM2Hy8QfbcDqMeNtzg7KfP:  -0.01400000 Waves

2019.11.07 13:37 [1784694] smart account 3P5Bfd58PPfNvBM2Hy8QfbcDqMeNtzg7KfP > SELF 0.00000000 Waves

{ "type": 13, "id": "Gar9ECCSvLW2uaG7h3xPwk8iokfVwFd8p6xKTWUChoxn", "fee": 1400000, "feeAssetId": null, "timestamp": 1573123108604, "version": 1, "sender": "3P5Bfd58PPfNvBM2Hy8QfbcDqMeNtzg7KfP", "senderPublicKey": "GqXuX2WHNr3WUqTaeH2YCySFY45NAJoE9RmY9bEWkzh", "proofs": [ "5qW2gMvfQh23Q5Tqe9b9fAoxnYSwUzLcSyCpL8yaEUXkDDE438uYcrday1mvfBfpzhnc7zYsfM5ujvCMCo8Xx428" ], "script": "base64:AAIDAAAAAAAAAA4IARIDCgEBEgASAwoBCAAAAEEBAAAADmdldE51bWJlckJ5S2V5AAAAAQAAAANrZXkEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAABAAAADmdldFN0cmluZ0J5S2V5AAAAAQAAAANrZXkEAAAAByRtYXRjaDAJAAQdAAAAAgUAAAAEdGhpcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWECAAAAAAEAAAAMZ2V0Qm9vbEJ5S2V5AAAAAQAAAANrZXkEAAAAByRtYXRjaDAJAAQbAAAAAgUAAAAEdGhpcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAdCb29sZWFuBAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhBwEAAAAYZ2V0TnVtYmVyQnlBZGRyZXNzQW5kS2V5AAAAAgAAAAdhZGRyZXNzAAAAA2tleQQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAdhZGRyZXNzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAEAAAAYZ2V0U3RyaW5nQnlBZGRyZXNzQW5kS2V5AAAAAgAAAAdhZGRyZXNzAAAAA2tleQQAAAAHJG1hdGNoMAkABB0AAAACBQAAAAdhZGRyZXNzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQIAAAAAAQAAABZkcm9wRWxlbWVudEluSnNvbkFycmF5AAAAAgAAAAVhcnJheQAAAAdlbGVtZW50BAAAAAxzcGxpdGVkQXJyYXkJAAS1AAAAAgUAAAAFYXJyYXkFAAAAB2VsZW1lbnQDCQAAAAAAAAIJAAEvAAAAAgkAAZEAAAACBQAAAAxzcGxpdGVkQXJyYXkAAAAAAAAAAAEAAAAAAAAAAAECAAAAASwJAAEsAAAAAgkAAZEAAAACBQAAAAxzcGxpdGVkQXJyYXkAAAAAAAAAAAAJAAEwAAAAAgkAAZEAAAACBQAAAAxzcGxpdGVkQXJyYXkAAAAAAAAAAAEAAAAAAAAAAAEJAAEsAAAAAgkBAAAACWRyb3BSaWdodAAAAAIJAAGRAAAAAgUAAAAMc3BsaXRlZEFycmF5AAAAAAAAAAAAAAAAAAAAAAABCQABkQAAAAIFAAAADHNwbGl0ZWRBcnJheQAAAAAAAAAAAQEAAAAWY29udmVydEpzb25BcnJheVRvTGlzdAAAAAEAAAAJanNvbkFycmF5CQAEtQAAAAIFAAAACWpzb25BcnJheQIAAAABLAAAAAAFQkxPQ0sCAAAABWJsb2NrAAAAAAdVTkJMT0NLAgAAAAd1bmJsb2NrAAAAAAZVUERBVEUCAAAABnVwZGF0ZQAAAAAKT3JhY2xlc0tleQIAAAAHb3JhY2xlcwAAAAAJQWRtaW5zS2V5AgAAAAZhZG1pbnMAAAAAD1ZvdGVJbnRlcnZhbEtleQIAAAANdm90ZV9pbnRlcnZhbAAAAAAUQ29lZmZpY2llbnRPcmFjbGVLZXkCAAAAEmNvZWZmaWNpZW50X29yYWNsZQAAAAATQ29lZmZpY2llbnRBZG1pbktleQIAAAARY29lZmZpY2llbnRfYWRtaW4AAAAAF1NjcmlwdFVwZGF0ZUludGVydmFsS2V5AgAAABZzY3JpcHRfdXBkYXRlX2ludGVydmFsAAAAABRQcm92aWRpbmdJbnRlcnZhbEtleQIAAAAScHJvdmlkaW5nX2ludGVydmFsAAAAAAhQcmljZUtleQIAAAAFcHJpY2UAAAAADlByaWNlT2Zmc2V0S2V5AgAAAAxwcmljZV9vZmZzZXQAAAAAEUlzUHJpY2VQZW5kaW5nS2V5AgAAABBpc19wZW5kaW5nX3ByaWNlAAAAAAxJc0Jsb2NrZWRLZXkCAAAACmlzX2Jsb2NrZWQAAAAAEk9yYWNsZUlzUHJvdmlkZUtleQIAAAASb3JhY2xlX2lzX3Byb3ZpZGVfAAAAABVPcmFjbGVQcm92aWRlUHJpY2VLZXkCAAAAFW9yYWNsZV9wcmljZV9wcm92aWRlXwAAAAAMQWRtaW5Wb3RlS2V5AgAAAAthZG1pbl92b3RlXwAAAAAJQWN0aW9uS2V5AgAAAAZhY3Rpb24AAAAAF0Jsb2NrRXhwaXJlUHJvdmlkaW5nS2V5AgAAABZwcm92aWRpbmdfZXhwaXJlX2Jsb2NrAAAAABJCbGFja1N3YXJtUHJpY2VLZXkCAAAAEWJsYWNrX3N3YXJtX3ByaWNlAAAAABJCbG9ja0V4cGlyZVZvdGVLZXkCAAAAEXZvdGVfZXhwaXJlX2Jsb2NrAAAAABRTY3JpcHRVcGRhdGVCbG9ja0tleQIAAAATc2NyaXB0X3VwZGF0ZV9ibG9jawAAAAANUHJpY2VJbmRleEtleQIAAAALcHJpY2VfaW5kZXgBAAAAFWdldE9yYWNsZUlzUHJvdmlkZUtleQAAAAEAAAAFb3duZXIJAAEsAAAAAgUAAAAST3JhY2xlSXNQcm92aWRlS2V5BQAAAAVvd25lcgEAAAAYZ2V0T3JhY2xlUHJvdmlkZVByaWNlS2V5AAAAAQAAAAVvd25lcgkAASwAAAACBQAAABVPcmFjbGVQcm92aWRlUHJpY2VLZXkFAAAABW93bmVyAQAAAA9nZXRBZG1pblZvdGVLZXkAAAABAAAABW93bmVyCQABLAAAAAIFAAAADEFkbWluVm90ZUtleQUAAAAFb3duZXIBAAAAFWdldEFkbWluVm90ZUFjdGlvbktleQAAAAEAAAAFb3duZXIJAAEsAAAAAgkAASwAAAACCQEAAAAPZ2V0QWRtaW5Wb3RlS2V5AAAAAQUAAAAFb3duZXICAAAAAV8FAAAACUFjdGlvbktleQEAAAAVZ2V0QmxhY2tTd2FybVByaWNlS2V5AAAAAQAAAAVibG9jawkAASwAAAACCQABLAAAAAIFAAAAEkJsYWNrU3dhcm1QcmljZUtleQIAAAABXwkAAaQAAAABBQAAAAVibG9jawEAAAASZ2V0UHJpY2VIaXN0b3J5S2V5AAAAAQAAAAVibG9jawkAASwAAAACCQABLAAAAAIFAAAACFByaWNlS2V5AgAAAAFfCQABpAAAAAEFAAAABWJsb2NrAQAAABhnZXRIZWlnaHRQcmljZUJ5SW5kZXhLZXkAAAABAAAABWluZGV4CQABLAAAAAIJAAEsAAAAAgUAAAANUHJpY2VJbmRleEtleQIAAAABXwkAAaQAAAABBQAAAAVpbmRleAAAAAAFcHJpY2UJAQAAAA5nZXROdW1iZXJCeUtleQAAAAEFAAAACFByaWNlS2V5AAAAAApwcmljZUluZGV4CQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABBQAAAA1QcmljZUluZGV4S2V5AAAAABFwcm92aWRpbmdJbnRlcnZhbAkBAAAADmdldE51bWJlckJ5S2V5AAAAAQUAAAAUUHJvdmlkaW5nSW50ZXJ2YWxLZXkAAAAAFGJsb2NrRXhwaXJlUHJvdmlkaW5nCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABBQAAABdCbG9ja0V4cGlyZVByb3ZpZGluZ0tleQAAAAAPYmxvY2tFeHBpcmVWb3RlCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABBQAAABJCbG9ja0V4cGlyZVZvdGVLZXkAAAAAEXNjcmlwdFVwZGF0ZUJsb2NrCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABBQAAABRTY3JpcHRVcGRhdGVCbG9ja0tleQAAAAAUc2NyaXB0VXBkYXRlSW50ZXJ2YWwJAQAAAA5nZXROdW1iZXJCeUtleQAAAAEFAAAAF1NjcmlwdFVwZGF0ZUludGVydmFsS2V5AAAAAA5pc1ByaWNlUGVuZGluZwkBAAAADGdldEJvb2xCeUtleQAAAAEFAAAAEUlzUHJpY2VQZW5kaW5nS2V5AAAAAAlpc0Jsb2NrZWQJAQAAAAxnZXRCb29sQnlLZXkAAAABBQAAAAxJc0Jsb2NrZWRLZXkAAAAAFGJmdENvZWZmaWNpZW50T3JhY2xlCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABBQAAABRDb2VmZmljaWVudE9yYWNsZUtleQAAAAATYmZ0Q29lZmZpY2llbnRBZG1pbgkBAAAADmdldE51bWJlckJ5S2V5AAAAAQUAAAATQ29lZmZpY2llbnRBZG1pbktleQAAAAAScGVyY2VudFByaWNlT2Zmc2V0CQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABBQAAAA5QcmljZU9mZnNldEtleQAAAAAMdm90ZUludGVydmFsCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABBQAAAA9Wb3RlSW50ZXJ2YWxLZXkAAAAAB29yYWNsZXMJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEFAAAACk9yYWNsZXNLZXkAAAAABmFkbWlucwkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQUAAAAJQWRtaW5zS2V5AAAAAAtvcmFjbGVzTGlzdAkBAAAAFmNvbnZlcnRKc29uQXJyYXlUb0xpc3QAAAABBQAAAAdvcmFjbGVzAAAAAAphZG1pbnNMaXN0CQEAAAAWY29udmVydEpzb25BcnJheVRvTGlzdAAAAAEFAAAABmFkbWlucwEAAAASZ2V0QWRtaW5Wb3RlQWN0aW9uAAAAAQAAAAVvd25lcgkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQkBAAAAFWdldEFkbWluVm90ZUFjdGlvbktleQAAAAEFAAAABW93bmVyAQAAAA9pc09yYWNsZVByb3ZpZGUAAAABAAAABW93bmVyCQEAAAAMZ2V0Qm9vbEJ5S2V5AAAAAQkBAAAAFWdldE9yYWNsZUlzUHJvdmlkZUtleQAAAAEFAAAABW93bmVyAQAAABJpc09yYWNsZVByb3ZpZGVJbnQAAAABAAAABW93bmVyAwkBAAAAD2lzT3JhY2xlUHJvdmlkZQAAAAEFAAAABW93bmVyAAAAAAAAAAABAAAAAAAAAAAAAQAAABVnZXRPcmFjbGVQcm92aWRlUHJpY2UAAAABAAAABW93bmVyCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAYZ2V0T3JhY2xlUHJvdmlkZVByaWNlS2V5AAAAAQUAAAAFb3duZXIBAAAACGlzT3JhY2xlAAAAAQAAAAdhZGRyZXNzCQEAAAAJaXNEZWZpbmVkAAAAAQkABLMAAAACBQAAAAdvcmFjbGVzBQAAAAdhZGRyZXNzAQAAAAdpc0FkbWluAAAAAQAAAAdhZGRyZXNzCQEAAAAJaXNEZWZpbmVkAAAAAQkABLMAAAACBQAAAAZhZG1pbnMFAAAAB2FkZHJlc3MBAAAADnN1bU9yYWNsZVByaWNlAAAAAgAAAARiYXNlAAAAB2FkZHJlc3MJAABkAAAAAgUAAAAEYmFzZQkAAGgAAAACCQEAAAAVZ2V0T3JhY2xlUHJvdmlkZVByaWNlAAAAAQUAAAAHYWRkcmVzcwkBAAAAEmlzT3JhY2xlUHJvdmlkZUludAAAAAEFAAAAB2FkZHJlc3MBAAAAGGZpbHRlckFkbWluc1ZvdGVCeUFjdGlvbgAAAAMAAAAGcmVzdWx0AAAAB2FkZHJlc3MAAAAGYWN0aW9uCQAETAAAAAIFAAAAB2FkZHJlc3MFAAAABnJlc3VsdAEAAAAdZmlsdGVyQWRtaW5zVm90ZUJ5QmxvY2tBY3Rpb24AAAACAAAABnJlc3VsdAAAAAdhZGRyZXNzCQEAAAAYZmlsdGVyQWRtaW5zVm90ZUJ5QWN0aW9uAAAAAwUAAAAGcmVzdWx0BQAAAAdhZGRyZXNzBQAAAAVCTE9DSwEAAAAfZmlsdGVyQWRtaW5zVm90ZUJ5VW5ibG9ja0FjdGlvbgAAAAIAAAAGcmVzdWx0AAAAB2FkZHJlc3MJAQAAABhmaWx0ZXJBZG1pbnNWb3RlQnlBY3Rpb24AAAADBQAAAAZyZXN1bHQFAAAAB2FkZHJlc3MFAAAAB1VOQkxPQ0sBAAAAHmZpbHRlckFkbWluc1ZvdGVCeVVwZGF0ZUFjdGlvbgAAAAIAAAAGcmVzdWx0AAAAB2FkZHJlc3MJAQAAABhmaWx0ZXJBZG1pbnNWb3RlQnlBY3Rpb24AAAADBQAAAAZyZXN1bHQFAAAAB2FkZHJlc3MFAAAABlVQREFURQAAAAMAAAABaQEAAAAPc2V0Q3VycmVudFByaWNlAAAAAQAAAAhuZXdQcmljZQQAAAAHYWNjb3VudAkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIEAAAAE2lzT3JhY2xlUHJvdmlkZUxpc3QJAARMAAAAAgkBAAAAD2lzT3JhY2xlUHJvdmlkZQAAAAEJAAGRAAAAAgUAAAALb3JhY2xlc0xpc3QAAAAAAAAAAAAJAARMAAAAAgkBAAAAD2lzT3JhY2xlUHJvdmlkZQAAAAEJAAGRAAAAAgUAAAALb3JhY2xlc0xpc3QAAAAAAAAAAAEJAARMAAAAAgkBAAAAD2lzT3JhY2xlUHJvdmlkZQAAAAEJAAGRAAAAAgUAAAALb3JhY2xlc0xpc3QAAAAAAAAAAAIJAARMAAAAAgkBAAAAD2lzT3JhY2xlUHJvdmlkZQAAAAEJAAGRAAAAAgUAAAALb3JhY2xlc0xpc3QAAAAAAAAAAAMJAARMAAAAAgkBAAAAD2lzT3JhY2xlUHJvdmlkZQAAAAEJAAGRAAAAAgUAAAALb3JhY2xlc0xpc3QAAAAAAAAAAAQFAAAAA25pbAQAAAATcHJpY2VQcm92aWRpbmdDb3VudAkAAGQAAAACCQAAZAAAAAIJAABkAAAAAgkA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AAAADVByaWNlSW5kZXhLZXkFAAAADW5ld1ByaWNlSW5kZXgJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABhnZXRIZWlnaHRQcmljZUJ5SW5kZXhLZXkAAAABBQAAAA1uZXdQcmljZUluZGV4BQAAAAZoZWlnaHQFAAAAA25pbAAAAAFpAQAAAAR2b3RlAAAAAQAAAAZhY3Rpb24EAAAAB2FjY291bnQJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBAAAABhhZG1pbnNMaXN0V2l0aG91dEFjY291bnQJAQAAABZjb252ZXJ0SnNvbkFycmF5VG9MaXN0AAAAAQkBAAAAFmRyb3BFbGVtZW50SW5Kc29uQXJyYXkAAAACBQAAAAZhZG1pbnMFAAAAB2FjY291bnQEAAAACmxhc3RBY3Rpb24JAQAAABJnZXRBZG1pblZvdGVBY3Rpb24AAAABBQAAAAdhY2NvdW50BAAAAApibG9ja1ZvdGVzBAAAAA0kbGlzdDk4Mjk5ODk3BQAAABhhZG1pbnNMaXN0V2l0aG91dEFjY291bnQEAAAADSRzaXplOTgyOTk4OTcJAAGQAAAAAQUAAAANJGxpc3Q5ODI5OTg5NwQAAAANJGFjYzA5ODI5OTg5NwUAAAADbmlsAwkAAAAAAAACBQAAAA0kc2l6ZTk4Mjk5ODk3AAAAAAAAAAAABQAAAA0kYWNjMDk4Mjk5ODk3BAAAAA0kYWNjMTk4Mjk5ODk3CQEAAAAdZmlsdGVyQWRtaW5zVm90ZUJ5QmxvY2tBY3Rpb24AAAACBQAAAA0kYWNjMDk4Mjk5ODk3CQABkQAAAAIFAAAADSRsaXN0OTgyOTk4OTcAAAAAAAAAAAADCQAAAAAAAAIFAAAADSRzaXplOTgyOTk4OTcAAAAAAAAAAAEFAAAADSRhY2MxOTgyOTk4OTcEAAAADSRhY2MyOTgyOTk4OTcJAQAAAB1maWx0ZXJBZG1pbnNWb3RlQnlCbG9ja0FjdGlvbgAAAAIFAAAADSRhY2MxOTgyOTk4OTcJAAGRAAAAAgUAAAANJGxpc3Q5ODI5OTg5NwAAAAAAAAAAAQMJAAAAAAAAAgUAAAANJHNpemU5ODI5OTg5NwAAAAAAAAAAAgUAAAANJGFjYzI5ODI5OTg5NwQAAAANJGFjYzM5ODI5OTg5NwkBAAAAHWZpbHRlckFkbWluc1ZvdGVCeUJsb2NrQWN0aW9uAAAAAgUAAAANJGFjYzI5ODI5OTg5NwkAAZEAAAACBQAAAA0kbGlzdDk4Mjk5ODk3AAAAAAAAAAACAwkAAAAAAAACBQAAAA0kc2l6ZTk4Mjk5ODk3AAAAAAAAAAADBQAAAA0kYWNjMzk4Mjk5ODk3BAAAAA0kYWNjNDk4Mjk5ODk3CQEAAAAdZmlsdGVyQWRtaW5zVm90ZUJ5QmxvY2tBY3Rpb24AAAACBQAAAA0kYWNjMzk4Mjk5ODk3CQABkQAAAAIFAAAADSRsaXN0OTgyOTk4OTcAAAAAAAAAAAMDCQAAAAAAAAIFAAAADSRzaXplOTgyOTk4OTcAAAAAAAAAAAQFAAAADSRhY2M0OTgyOTk4OTcEAAAADSRhY2M1OTgyOTk4OTcJAQAAAB1maWx0ZXJBZG1pbnNWb3RlQnlCbG9ja0FjdGlvbgAAAAIFAAAADSRhY2M0OTgyOTk4OTcJAAGRAAAAAgUAAAANJGxpc3Q5ODI5OTg5NwAAAAAAAAAABAMJAAAAAAAAAgUAAAANJHNpemU5ODI5OTg5NwAAAAAAAAAABQUAAAANJGFjYzU5ODI5OTg5NwQAAAANJGFjYzY5ODI5OTg5NwkBAAAAHWZpbHRlckFkbWluc1ZvdGVCeUJsb2NrQWN0aW9uAAAAAgUAAAANJGFjYzU5ODI5OTg5NwkAAZEAAAACBQAAAA0kbGlzdDk4Mjk5ODk3AAAAAAAAAAAFCQAAAgAAAAECAAAAEkxpc3Qgc2l6ZSBleGNlZWQgNQQAAAAMdW5ibG9ja1ZvdGVzBAAAAA0kbGlzdDk5MjE5OTkxBQAAABhhZG1pbnNMaXN0V2l0aG91dEFjY291bnQEAAAADSRzaXplOTkyMTk5OTEJAAGQAAAAAQUAAAANJGxpc3Q5OTIxOTk5MQQAAAANJGFjYzA5OTIxOTk5MQUAAAADbmlsAwkAAAAAAAACBQAAAA0kc2l6ZTk5MjE5OTkxAAAAAAAAAAAABQAAAA0kYWNjMDk5MjE5OTkxBAAAAA0kYWNjMTk5MjE5OTkxCQEAAAAfZmlsdGVyQWRtaW5zVm90ZUJ5VW5ibG9ja0FjdGlvbgAAAAIFAAAADSRhY2MwOTkyMTk5OTEJAAGRAAAAAgUAAAANJGxpc3Q5OTIxOTk5MQAAAAAAAAAAAAMJAAAAAAAAAgUAAAANJHNpemU5OTIxOTk5MQAAAAAAAAAAAQUAAAANJGFjYzE5OTIxOTk5MQQAAAANJGFjYzI5OTIxOTk5MQkBAAAAH2ZpbHRlckFkbWluc1ZvdGVCeVVuYmxvY2tBY3Rpb24AAAACBQAAAA0kYWNjMTk5MjE5OTkxCQABkQAAAAIFAAAADSRsaXN0OTkyMTk5OTEAAAAAAAAAAAEDCQAAAAAAAAIFAAAADSRzaXplOTkyMTk5OTEAAAAAAAAAAAIFAAAADSRhY2MyOTkyMTk5OTEEAAAADSRhY2MzOTkyMTk5OTEJAQAAAB9maWx0ZXJBZG1pbnNWb3RlQnlVbmJsb2NrQWN0aW9uAAAAAgUAAAANJGFjYzI5OTIxOTk5MQkAAZEAAAACBQAAAA0kbGlzdDk5MjE5OTkxAAAAAAAAAAACAwkAAAAAAAACBQAAAA0kc2l6ZTk5MjE5OTkxAAAAAAAAAAADBQAAAA0kYWNjMzk5MjE5OTkxBAAAAA0kYWNjNDk5MjE5OTkxCQEAAAAfZmlsdGVyQWRtaW5zVm90ZUJ5VW5ibG9ja0FjdGlvbgAAAAIFAAAADSRhY2MzOTkyMTk5OTEJAAGRAAAAAgUAAAANJGxpc3Q5OTIxOTk5MQAAAAAAAAAAAwMJAAAAAAAAAgUAAAANJHNpemU5OTIxOTk5MQAAAAAAAAAABAUAAAANJGFjYzQ5OTIxOTk5MQQAAAANJGFjYzU5OTIxOTk5MQkBAAAAH2ZpbHRlckFkbWluc1ZvdGVCeVVuYmxvY2tBY3Rpb24AAAACBQAAAA0kYWNjNDk5MjE5OTkxCQABkQAAAAIFAAAADSRsaXN0OTkyMTk5OTEAAAAAAAAAAAQDCQAAAAAAAAIFAAAADSRzaXplOTkyMTk5OTEAAAAAAAAAAAUFAAAADSRhY2M1OTkyMTk5OTEEAAAADSRhY2M2OTkyMTk5OTEJAQAAAB9maWx0ZXJBZG1pbnNWb3RlQnlVbmJsb2NrQWN0aW9uAAAAAgUAAAANJGFjYzU5OTIxOTk5MQkAAZEAAAACBQAAAA0kbGlzdDk5MjE5OTkxAAAAAAAAAAAFCQAAAgAAAAECAAAAEkxpc3Qgc2l6ZSBleGNlZWQgNQQAAAALdXBkYXRlVm90ZXMEAAAADyRsaXN0MTAwMTQxMDA4MwUAAAAYYWRtaW5zTGlzdFdpdGhvdXRBY2NvdW50BAAAAA8kc2l6ZTEwMDE0MTAwODMJAAGQAAAAAQUAAAAPJGxpc3QxMDAxNDEwMDgzBAAAAA8kYWNjMDEwMDE0MTAwODMFAAAAA25pbAMJAAAAAAAAAgUAAAAPJHNpemUxMDAxNDEwMDgzAAAAAAAAAAAABQAAAA8kYWNjMDEwMDE0MTAwODMEAAAADyRhY2MxMTAwMTQxMDA4MwkBAAAAHmZpbHRlckFkbWluc1ZvdGVCeVVwZGF0ZUFjdGlvbgAAAAIFAAAADyRhY2MwMTAwMTQxMDA4MwkAAZEAAAACBQAAAA8kbGlzdDEwMDE0MTAwODMAAAAAAAAAAAADCQAAAAAAAAIFAAAADyRzaXplMTAwMTQxMDA4MwAAAAAAAAAAAQUAAAAPJGFjYzExMDAxNDEwMDgzBAAAAA8kYWNjMjEwMDE0MTAwODMJAQAAAB5maWx0ZXJBZG1pbnNWb3RlQnlVcGRhdGVBY3Rpb24AAAACBQAAAA8kYWNjMTEwMDE0MTAwODMJAAGRAAAAAgUAAAAPJGxpc3QxMDAxNDEwMDgzAAAAAAAAAAABAwkAAAAAAAACBQAAAA8kc2l6ZTEwMDE0MTAwODMAAAAAAAAAAAIFAAAADyRhY2MyMTAwMTQxMDA4MwQAAAAPJGFjYzMxMDAxNDEwMDgzCQEAAAAeZmlsdGVyQWRtaW5zVm90ZUJ5VXBkYXRlQWN0aW9uAAAAAgUAAAAPJGFjYzIxMDAxNDEwMDgzCQABkQAAAAIFAAAADyRsaXN0MTAwMTQxMDA4MwAAAAAAAAAAAgMJAAAAAAAAAgUAAAAPJHNpemUxMDAxNDEwMDgzAAAAAAAAAAADBQAAAA8kYWNjMzEwMDE0MTAwODMEAAAADyRhY2M0MTAwMTQxMDA4MwkBAAAAHmZpbHRlckFkbWluc1ZvdGVCeVVwZGF0ZUFjdGlvbgAAAAIFAAAADyRhY2MzMTAwMTQxMDA4MwkAAZEAAAACBQAAAA8kbGlzdDEwMDE0MTAwODMAAAAAAAAAAAMDCQAAAAAAAAIFAAAADyRzaXplMTAwMTQxMDA4MwAAAAAAAAAABAUAAAAPJGFjYzQxMDAxNDEwMDgzBAAAAA8kYWNjNTEwMDE0MTAwODMJAQAAAB5maWx0ZXJBZG1pbnNWb3RlQnlVcGRhdGVBY3Rpb24AAAACBQAAAA8kYWNjNDEwMDE0MTAwODMJAAGRAAAAAgUAAAAPJGxpc3QxMDAxNDEwMDgzAAAAAAAAAAAEAwkAAAAAAAACBQAAAA8kc2l6ZTEwMDE0MTAwODMAAAAAAAAAAAUFAAAADyRhY2M1MTAwMTQxMDA4MwQAAAAPJGFjYzYxMDAxNDEwMDgzCQEAAAAeZmlsdGVyQWRtaW5zVm90ZUJ5VXBkYXRlQWN0aW9uAAAAAgUAAAAPJGFjYzUxMDAxNDEwMDgzCQABkQAAAAIFAAAADyRsaXN0MTAwMTQxMDA4MwAAAAAAAAAABQkAAAIAAAABAgAAABJMaXN0IHNpemUgZXhjZWVkIDUEAAAADmJsb2NrVm90ZUNvdW50CQAAZAAAAAIJAAGQAAAAAQUAAAAKYmxvY2tWb3RlcwMJAAAAAAAAAgUAAAAGYWN0aW9uBQAAAAVCTE9DSwAAAAAAAAAAAQAAAAAAAAAAAAQAAAAQdW5ibG9ja1ZvdGVDb3VudAkAAGQAAAACCQABkAAAAAEFAAAADHVuYmxvY2tWb3RlcwMJAAAAAAAAAgUAAAAGYWN0aW9uBQAAAAdVTkJMT0NLAAAAAAAAAAABAAAAAAAAAAAABAAAABB1cGRhdGVWb3Rlc0NvdW50CQAAZAAAAAIJAAGQAAAAAQUAAAALdXBkYXRlVm90ZXMDCQAAAAAAAAIFAAAABmFjdGlvbgUAAAAGVVBEQVRFAAAAAAAAAAABAAAAAAAAAAAABAAAAAtyZXNldFJlc3VsdAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAASQmxvY2tFeHBpcmVWb3RlS2V5AAAAAAAAAAAACQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAABdCbG9ja0V4cGlyZVByb3ZpZGluZ0tleQAAAAAAAAAAAAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAFWdldEFkbWluVm90ZUFjdGlvbktleQAAAAEJAAGRAAAAAgUAAAAYYWRtaW5zTGlzdFdpdGhvdXRBY2NvdW50AAAAAAAAAAAAAgAAAAAJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABVnZXRBZG1pblZvdGVBY3Rpb25LZXkAAAABCQABkQAAAAIFAAAAGGFkbWluc0xpc3RXaXRob3V0QWNjb3VudAAAAAAAAAAAAQIAAAAACQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAVZ2V0QWRtaW5Wb3RlQWN0aW9uS2V5AAAAAQkAAZEAAAACBQAAABhhZG1pbnNMaXN0V2l0aG91dEFjY291bnQAAAAAAAAAAAICAAAAAAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAFWdldEFkbWluVm90ZUFjdGlvbktleQAAAAEJAAGRAAAAAgUAAAAYYWRtaW5zTGlzdFdpdGhvdXRBY2NvdW50AAAAAAAAAAADAgAAAAAFAAAAA25pbAMDCQAAZwAAAAIFAAAADmJsb2NrVm90ZUNvdW50BQAAABNiZnRDb2VmZmljaWVudEFkbWluBgkAAGcAAAACBQAAABB1bmJsb2NrVm90ZUNvdW50BQAAABNiZnRDb2VmZmljaWVudEFkbWluCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAABFJc1ByaWNlUGVuZGluZ0tleQcJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAADElzQmxvY2tlZEtleQMJAABnAAAAAgUAAAAOYmxvY2tWb3RlQ291bnQFAAAAE2JmdENvZWZmaWNpZW50QWRtaW4GBwUAAAALcmVzZXRSZXN1bHQDCQAAZgAAAAIFAAAAEHVwZGF0ZVZvdGVzQ291bnQFAAAAE2JmdENvZWZmaWNpZW50QWRtaW4JAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAAFFNjcmlwdFVwZGF0ZUJsb2NrS2V5AwkAAGYAAAACBQAAABB1cGRhdGVWb3Rlc0NvdW50BQAAABNiZnRDb2VmZmljaWVudEFkbWluCQAAZAAAAAIFAAAABmhlaWdodAUAAAAUc2NyaXB0VXBkYXRlSW50ZXJ2YWwFAAAAEXNjcmlwdFVwZGF0ZUJsb2NrBQAAAAtyZXNldFJlc3VsdAkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAASQmxvY2tFeHBpcmVWb3RlS2V5AwkAAGYAAAACBQAAAAZoZWlnaHQFAAAAD2Jsb2NrRXhwaXJlVm90ZQkAAGQAAAACBQAAAAZoZWlnaHQFAAAADHZvdGVJbnRlcnZhbAUAAAAPYmxvY2tFeHBpcmVWb3RlCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAVZ2V0QWRtaW5Wb3RlQWN0aW9uS2V5AAAAAQUAAAAHYWNjb3VudAUAAAAGYWN0aW9uBQAAAANuaWwAAAAAwuWGFQ==", "chainId": 87, "height": 1784694, "spentComplexity": 0 } View: original | compacted Prev: 2CnYtxPqng4vNmoKR4rg5rUvp5QAuY3Nm467ebYV9eWN Next: CYU1g5oWVMW3vL3134EWtUFosRFHQRjPUi9s5N2ga1x2 Diff:
OldNewDifferences
3838 a
3939 case _ =>
4040 ""
41-}
42-
43-
44-func isInt (val) = match val {
45- case a: Int =>
46- true
47- case _ =>
48- false
4941 }
5042
5143
175167 func getOracleProvidePrice (owner) = getNumberByKey(getOracleProvidePriceKey(owner))
176168
177169
178-func isOracle (address) = match indexOf(oracles, address) {
179- case _: Int =>
180- true
181- case _ =>
182- false
183-}
170+func isOracle (address) = isDefined(indexOf(oracles, address))
184171
185172
186-func isAdmin (address) = match indexOf(admins, address) {
187- case _: Int =>
188- true
189- case _ =>
190- false
191-}
173+func isAdmin (address) = isDefined(indexOf(admins, address))
192174
193175
194176 func sumOraclePrice (base,address) = (base + (getOracleProvidePrice(address) * isOracleProvideInt(address)))
255237
256238
257239 @Callable(i)
258-func finilizeCurrentPrice () = {
240+func finalizeCurrentPrice () = {
259241 let isOracleProvideList = [isOracleProvide(oraclesList[0]), isOracleProvide(oraclesList[1]), isOracleProvide(oraclesList[2]), isOracleProvide(oraclesList[3]), isOracleProvide(oraclesList[4])]
260242 let priceProvidingCount = (((((if (isOracleProvideList[0])
261243 then 1
287269 else (blockExpireProviding >= height))
288270 then throw("wait for the end of the price providing")
289271 else if ((bftCoefficientOracle > priceProvidingCount))
290- then throw("2/3 oracles need to set a price")
272+ then throw("3/5 oracles need to set a price")
291273 else if (if ((newPrice >= (price + ((price * percentPriceOffset) / 100))))
292274 then true
293275 else ((price - ((price * percentPriceOffset) / 100)) >= newPrice))
306288 let adminsListWithoutAccount = convertJsonArrayToList(dropElementInJsonArray(admins, account))
307289 let lastAction = getAdminVoteAction(account)
308290 let blockVotes = {
309- let $list998410052 = adminsListWithoutAccount
310- let $size998410052 = size($list998410052)
311- let $acc0998410052 = nil
312- if (($size998410052 == 0))
313- then $acc0998410052
291+ let $list98299897 = adminsListWithoutAccount
292+ let $size98299897 = size($list98299897)
293+ let $acc098299897 = nil
294+ if (($size98299897 == 0))
295+ then $acc098299897
314296 else {
315- let $acc1998410052 = filterAdminsVoteByBlockAction($acc0998410052, $list998410052[0])
316- if (($size998410052 == 1))
317- then $acc1998410052
297+ let $acc198299897 = filterAdminsVoteByBlockAction($acc098299897, $list98299897[0])
298+ if (($size98299897 == 1))
299+ then $acc198299897
318300 else {
319- let $acc2998410052 = filterAdminsVoteByBlockAction($acc1998410052, $list998410052[1])
320- if (($size998410052 == 2))
321- then $acc2998410052
301+ let $acc298299897 = filterAdminsVoteByBlockAction($acc198299897, $list98299897[1])
302+ if (($size98299897 == 2))
303+ then $acc298299897
322304 else {
323- let $acc3998410052 = filterAdminsVoteByBlockAction($acc2998410052, $list998410052[2])
324- if (($size998410052 == 3))
325- then $acc3998410052
305+ let $acc398299897 = filterAdminsVoteByBlockAction($acc298299897, $list98299897[2])
306+ if (($size98299897 == 3))
307+ then $acc398299897
326308 else {
327- let $acc4998410052 = filterAdminsVoteByBlockAction($acc3998410052, $list998410052[3])
328- if (($size998410052 == 4))
329- then $acc4998410052
309+ let $acc498299897 = filterAdminsVoteByBlockAction($acc398299897, $list98299897[3])
310+ if (($size98299897 == 4))
311+ then $acc498299897
330312 else {
331- let $acc5998410052 = filterAdminsVoteByBlockAction($acc4998410052, $list998410052[4])
332- if (($size998410052 == 5))
333- then $acc5998410052
313+ let $acc598299897 = filterAdminsVoteByBlockAction($acc498299897, $list98299897[4])
314+ if (($size98299897 == 5))
315+ then $acc598299897
334316 else {
335- let $acc6998410052 = filterAdminsVoteByBlockAction($acc5998410052, $list998410052[5])
317+ let $acc698299897 = filterAdminsVoteByBlockAction($acc598299897, $list98299897[5])
336318 throw("List size exceed 5")
337319 }
338320 }
342324 }
343325 }
344326 let unblockVotes = {
345- let $list1007610146 = adminsListWithoutAccount
346- let $size1007610146 = size($list1007610146)
347- let $acc01007610146 = nil
348- if (($size1007610146 == 0))
349- then $acc01007610146
327+ let $list99219991 = adminsListWithoutAccount
328+ let $size99219991 = size($list99219991)
329+ let $acc099219991 = nil
330+ if (($size99219991 == 0))
331+ then $acc099219991
350332 else {
351- let $acc11007610146 = filterAdminsVoteByUnblockAction($acc01007610146, $list1007610146[0])
352- if (($size1007610146 == 1))
353- then $acc11007610146
333+ let $acc199219991 = filterAdminsVoteByUnblockAction($acc099219991, $list99219991[0])
334+ if (($size99219991 == 1))
335+ then $acc199219991
354336 else {
355- let $acc21007610146 = filterAdminsVoteByUnblockAction($acc11007610146, $list1007610146[1])
356- if (($size1007610146 == 2))
357- then $acc21007610146
337+ let $acc299219991 = filterAdminsVoteByUnblockAction($acc199219991, $list99219991[1])
338+ if (($size99219991 == 2))
339+ then $acc299219991
358340 else {
359- let $acc31007610146 = filterAdminsVoteByUnblockAction($acc21007610146, $list1007610146[2])
360- if (($size1007610146 == 3))
361- then $acc31007610146
341+ let $acc399219991 = filterAdminsVoteByUnblockAction($acc299219991, $list99219991[2])
342+ if (($size99219991 == 3))
343+ then $acc399219991
362344 else {
363- let $acc41007610146 = filterAdminsVoteByUnblockAction($acc31007610146, $list1007610146[3])
364- if (($size1007610146 == 4))
365- then $acc41007610146
345+ let $acc499219991 = filterAdminsVoteByUnblockAction($acc399219991, $list99219991[3])
346+ if (($size99219991 == 4))
347+ then $acc499219991
366348 else {
367- let $acc51007610146 = filterAdminsVoteByUnblockAction($acc41007610146, $list1007610146[4])
368- if (($size1007610146 == 5))
369- then $acc51007610146
349+ let $acc599219991 = filterAdminsVoteByUnblockAction($acc499219991, $list99219991[4])
350+ if (($size99219991 == 5))
351+ then $acc599219991
370352 else {
371- let $acc61007610146 = filterAdminsVoteByUnblockAction($acc51007610146, $list1007610146[5])
353+ let $acc699219991 = filterAdminsVoteByUnblockAction($acc599219991, $list99219991[5])
372354 throw("List size exceed 5")
373355 }
374356 }
378360 }
379361 }
380362 let updateVotes = {
381- let $list1016910238 = adminsListWithoutAccount
382- let $size1016910238 = size($list1016910238)
383- let $acc01016910238 = nil
384- if (($size1016910238 == 0))
385- then $acc01016910238
363+ let $list1001410083 = adminsListWithoutAccount
364+ let $size1001410083 = size($list1001410083)
365+ let $acc01001410083 = nil
366+ if (($size1001410083 == 0))
367+ then $acc01001410083
386368 else {
387- let $acc11016910238 = filterAdminsVoteByUpdateAction($acc01016910238, $list1016910238[0])
388- if (($size1016910238 == 1))
389- then $acc11016910238
369+ let $acc11001410083 = filterAdminsVoteByUpdateAction($acc01001410083, $list1001410083[0])
370+ if (($size1001410083 == 1))
371+ then $acc11001410083
390372 else {
391- let $acc21016910238 = filterAdminsVoteByUpdateAction($acc11016910238, $list1016910238[1])
392- if (($size1016910238 == 2))
393- then $acc21016910238
373+ let $acc21001410083 = filterAdminsVoteByUpdateAction($acc11001410083, $list1001410083[1])
374+ if (($size1001410083 == 2))
375+ then $acc21001410083
394376 else {
395- let $acc31016910238 = filterAdminsVoteByUpdateAction($acc21016910238, $list1016910238[2])
396- if (($size1016910238 == 3))
397- then $acc31016910238
377+ let $acc31001410083 = filterAdminsVoteByUpdateAction($acc21001410083, $list1001410083[2])
378+ if (($size1001410083 == 3))
379+ then $acc31001410083
398380 else {
399- let $acc41016910238 = filterAdminsVoteByUpdateAction($acc31016910238, $list1016910238[3])
400- if (($size1016910238 == 4))
401- then $acc41016910238
381+ let $acc41001410083 = filterAdminsVoteByUpdateAction($acc31001410083, $list1001410083[3])
382+ if (($size1001410083 == 4))
383+ then $acc41001410083
402384 else {
403- let $acc51016910238 = filterAdminsVoteByUpdateAction($acc41016910238, $list1016910238[4])
404- if (($size1016910238 == 5))
405- then $acc51016910238
385+ let $acc51001410083 = filterAdminsVoteByUpdateAction($acc41001410083, $list1001410083[4])
386+ if (($size1001410083 == 5))
387+ then $acc51001410083
406388 else {
407- let $acc61016910238 = filterAdminsVoteByUpdateAction($acc51016910238, $list1016910238[5])
389+ let $acc61001410083 = filterAdminsVoteByUpdateAction($acc51001410083, $list1001410083[5])
408390 throw("List size exceed 5")
409391 }
410392 }
422404 let updateVotesCount = (size(updateVotes) + (if ((action == UPDATE))
423405 then 1
424406 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]), "")]
425408 if (if ((blockVoteCount >= bftCoefficientAdmin))
426409 then true
427410 else (unblockVoteCount >= bftCoefficientAdmin))
428- then WriteSet([DataEntry(IsBlockedKey, if ((blockVoteCount >= bftCoefficientAdmin))
411+ then WriteSet([DataEntry(IsPricePendingKey, false), DataEntry(IsBlockedKey, if ((blockVoteCount >= bftCoefficientAdmin))
429412 then true
430- else false), DataEntry(BlockExpireVoteKey, 0), DataEntry(BlockExpireProvidingKey, 0), DataEntry(IsPricePendingKey, false), DataEntry(getAdminVoteActionKey(adminsListWithoutAccount[0]), ""), DataEntry(getAdminVoteActionKey(adminsListWithoutAccount[1]), ""), DataEntry(getAdminVoteActionKey(adminsListWithoutAccount[2]), ""), DataEntry(getAdminVoteActionKey(adminsListWithoutAccount[3]), "")])
413+ else false)] :: resetResult)
431414 else if ((updateVotesCount > bftCoefficientAdmin))
432- then WriteSet([DataEntry(BlockExpireVoteKey, 0), DataEntry(BlockExpireProvidingKey, 0), DataEntry(ScriptUpdateBlockKey, (height + scriptUpdateInterval)), DataEntry(getAdminVoteActionKey(adminsListWithoutAccount[0]), ""), DataEntry(getAdminVoteActionKey(adminsListWithoutAccount[1]), ""), DataEntry(getAdminVoteActionKey(adminsListWithoutAccount[2]), ""), DataEntry(getAdminVoteActionKey(adminsListWithoutAccount[3]), "")])
433- else if ((height > blockExpireVote))
434- then WriteSet([DataEntry(BlockExpireVoteKey, (height + voteInterval)), DataEntry(getAdminVoteActionKey(account), action), DataEntry(getAdminVoteActionKey(adminsListWithoutAccount[0]), ""), DataEntry(getAdminVoteActionKey(adminsListWithoutAccount[1]), ""), DataEntry(getAdminVoteActionKey(adminsListWithoutAccount[2]), ""), DataEntry(getAdminVoteActionKey(adminsListWithoutAccount[3]), "")])
435- else WriteSet([DataEntry(getAdminVoteActionKey(account), action)])
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)])
436421 }
437422
438423
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 func getNumberByKey (key) = match getInteger(this, key) {
55 case a: Int =>
66 a
77 case _ =>
88 0
99 }
1010
1111
1212 func getStringByKey (key) = match getString(this, key) {
1313 case a: String =>
1414 a
1515 case _ =>
1616 ""
1717 }
1818
1919
2020 func getBoolByKey (key) = match getBoolean(this, key) {
2121 case a: Boolean =>
2222 a
2323 case _ =>
2424 false
2525 }
2626
2727
2828 func getNumberByAddressAndKey (address,key) = match getInteger(address, key) {
2929 case a: Int =>
3030 a
3131 case _ =>
3232 0
3333 }
3434
3535
3636 func getStringByAddressAndKey (address,key) = match getString(address, key) {
3737 case a: String =>
3838 a
3939 case _ =>
4040 ""
41-}
42-
43-
44-func isInt (val) = match val {
45- case a: Int =>
46- true
47- case _ =>
48- false
4941 }
5042
5143
5244 func dropElementInJsonArray (array,element) = {
5345 let splitedArray = split(array, element)
5446 if ((take(splitedArray[1], 1) == ","))
5547 then (splitedArray[0] + drop(splitedArray[1], 1))
5648 else (dropRight(splitedArray[0], 1) + splitedArray[1])
5749 }
5850
5951
6052 func convertJsonArrayToList (jsonArray) = split(jsonArray, ",")
6153
6254
6355 let BLOCK = "block"
6456
6557 let UNBLOCK = "unblock"
6658
6759 let UPDATE = "update"
6860
6961 let OraclesKey = "oracles"
7062
7163 let AdminsKey = "admins"
7264
7365 let VoteIntervalKey = "vote_interval"
7466
7567 let CoefficientOracleKey = "coefficient_oracle"
7668
7769 let CoefficientAdminKey = "coefficient_admin"
7870
7971 let ScriptUpdateIntervalKey = "script_update_interval"
8072
8173 let ProvidingIntervalKey = "providing_interval"
8274
8375 let PriceKey = "price"
8476
8577 let PriceOffsetKey = "price_offset"
8678
8779 let IsPricePendingKey = "is_pending_price"
8880
8981 let IsBlockedKey = "is_blocked"
9082
9183 let OracleIsProvideKey = "oracle_is_provide_"
9284
9385 let OracleProvidePriceKey = "oracle_price_provide_"
9486
9587 let AdminVoteKey = "admin_vote_"
9688
9789 let ActionKey = "action"
9890
9991 let BlockExpireProvidingKey = "providing_expire_block"
10092
10193 let BlackSwarmPriceKey = "black_swarm_price"
10294
10395 let BlockExpireVoteKey = "vote_expire_block"
10496
10597 let ScriptUpdateBlockKey = "script_update_block"
10698
10799 let PriceIndexKey = "price_index"
108100
109101 func getOracleIsProvideKey (owner) = (OracleIsProvideKey + owner)
110102
111103
112104 func getOracleProvidePriceKey (owner) = (OracleProvidePriceKey + owner)
113105
114106
115107 func getAdminVoteKey (owner) = (AdminVoteKey + owner)
116108
117109
118110 func getAdminVoteActionKey (owner) = ((getAdminVoteKey(owner) + "_") + ActionKey)
119111
120112
121113 func getBlackSwarmPriceKey (block) = ((BlackSwarmPriceKey + "_") + toString(block))
122114
123115
124116 func getPriceHistoryKey (block) = ((PriceKey + "_") + toString(block))
125117
126118
127119 func getHeightPriceByIndexKey (index) = ((PriceIndexKey + "_") + toString(index))
128120
129121
130122 let price = getNumberByKey(PriceKey)
131123
132124 let priceIndex = getNumberByKey(PriceIndexKey)
133125
134126 let providingInterval = getNumberByKey(ProvidingIntervalKey)
135127
136128 let blockExpireProviding = getNumberByKey(BlockExpireProvidingKey)
137129
138130 let blockExpireVote = getNumberByKey(BlockExpireVoteKey)
139131
140132 let scriptUpdateBlock = getNumberByKey(ScriptUpdateBlockKey)
141133
142134 let scriptUpdateInterval = getNumberByKey(ScriptUpdateIntervalKey)
143135
144136 let isPricePending = getBoolByKey(IsPricePendingKey)
145137
146138 let isBlocked = getBoolByKey(IsBlockedKey)
147139
148140 let bftCoefficientOracle = getNumberByKey(CoefficientOracleKey)
149141
150142 let bftCoefficientAdmin = getNumberByKey(CoefficientAdminKey)
151143
152144 let percentPriceOffset = getNumberByKey(PriceOffsetKey)
153145
154146 let voteInterval = getNumberByKey(VoteIntervalKey)
155147
156148 let oracles = getStringByKey(OraclesKey)
157149
158150 let admins = getStringByKey(AdminsKey)
159151
160152 let oraclesList = convertJsonArrayToList(oracles)
161153
162154 let adminsList = convertJsonArrayToList(admins)
163155
164156 func getAdminVoteAction (owner) = getStringByKey(getAdminVoteActionKey(owner))
165157
166158
167159 func isOracleProvide (owner) = getBoolByKey(getOracleIsProvideKey(owner))
168160
169161
170162 func isOracleProvideInt (owner) = if (isOracleProvide(owner))
171163 then 1
172164 else 0
173165
174166
175167 func getOracleProvidePrice (owner) = getNumberByKey(getOracleProvidePriceKey(owner))
176168
177169
178-func isOracle (address) = match indexOf(oracles, address) {
179- case _: Int =>
180- true
181- case _ =>
182- false
183-}
170+func isOracle (address) = isDefined(indexOf(oracles, address))
184171
185172
186-func isAdmin (address) = match indexOf(admins, address) {
187- case _: Int =>
188- true
189- case _ =>
190- false
191-}
173+func isAdmin (address) = isDefined(indexOf(admins, address))
192174
193175
194176 func sumOraclePrice (base,address) = (base + (getOracleProvidePrice(address) * isOracleProvideInt(address)))
195177
196178
197179 func filterAdminsVoteByAction (result,address,action) = address :: result
198180
199181
200182 func filterAdminsVoteByBlockAction (result,address) = filterAdminsVoteByAction(result, address, BLOCK)
201183
202184
203185 func filterAdminsVoteByUnblockAction (result,address) = filterAdminsVoteByAction(result, address, UNBLOCK)
204186
205187
206188 func filterAdminsVoteByUpdateAction (result,address) = filterAdminsVoteByAction(result, address, UPDATE)
207189
208190
209191 @Callable(i)
210192 func setCurrentPrice (newPrice) = {
211193 let account = toString(i.caller)
212194 let isOracleProvideList = [isOracleProvide(oraclesList[0]), isOracleProvide(oraclesList[1]), isOracleProvide(oraclesList[2]), isOracleProvide(oraclesList[3]), isOracleProvide(oraclesList[4])]
213195 let priceProvidingCount = ((((((if (isOracleProvideList[0])
214196 then 1
215197 else 0) + (if (isOracleProvideList[1])
216198 then 1
217199 else 0)) + (if (isOracleProvideList[2])
218200 then 1
219201 else 0)) + (if (isOracleProvideList[3])
220202 then 1
221203 else 0)) + (if (isOracleProvideList[4])
222204 then 1
223205 else 0)) + 1)
224206 if (isBlocked)
225207 then throw("contract is blocked")
226208 else if (!(isOracle(account)))
227209 then throw("permission denied")
228210 else if (if ((blockExpireProviding >= height))
229211 then isOracleProvide(account)
230212 else false)
231213 then throw("price is already provided")
232214 else if (if ((height > blockExpireProviding))
233215 then isPricePending
234216 else false)
235217 then throw("use finalizeCurrentPrice")
236218 else WriteSet([DataEntry(getOracleIsProvideKey(oraclesList[0]), if ((height > blockExpireProviding))
237219 then false
238220 else isOracleProvideList[0]), DataEntry(getOracleIsProvideKey(oraclesList[1]), if ((height > blockExpireProviding))
239221 then false
240222 else isOracleProvideList[1]), DataEntry(getOracleIsProvideKey(oraclesList[2]), if ((height > blockExpireProviding))
241223 then false
242224 else isOracleProvideList[2]), DataEntry(getOracleIsProvideKey(oraclesList[3]), if ((height > blockExpireProviding))
243225 then false
244226 else isOracleProvideList[3]), DataEntry(getOracleIsProvideKey(oraclesList[4]), if ((height > blockExpireProviding))
245227 then false
246228 else isOracleProvideList[4]), DataEntry(getOracleIsProvideKey(account), true), DataEntry(getOracleProvidePriceKey(account), newPrice), DataEntry(BlockExpireProvidingKey, if ((height > blockExpireProviding))
247229 then (height + providingInterval)
248230 else blockExpireProviding), DataEntry(IsPricePendingKey, if (if ((blockExpireProviding >= height))
249231 then (priceProvidingCount >= bftCoefficientOracle)
250232 else false)
251233 then true
252234 else isPricePending)])
253235 }
254236
255237
256238
257239 @Callable(i)
258-func finilizeCurrentPrice () = {
240+func finalizeCurrentPrice () = {
259241 let isOracleProvideList = [isOracleProvide(oraclesList[0]), isOracleProvide(oraclesList[1]), isOracleProvide(oraclesList[2]), isOracleProvide(oraclesList[3]), isOracleProvide(oraclesList[4])]
260242 let priceProvidingCount = (((((if (isOracleProvideList[0])
261243 then 1
262244 else 0) + (if (isOracleProvideList[1])
263245 then 1
264246 else 0)) + (if (isOracleProvideList[2])
265247 then 1
266248 else 0)) + (if (isOracleProvideList[3])
267249 then 1
268250 else 0)) + (if (isOracleProvideList[4])
269251 then 1
270252 else 0))
271253 let priceSum = (((((getOracleProvidePrice(oraclesList[0]) * (if (isOracleProvideList[0])
272254 then 1
273255 else 0)) + (getOracleProvidePrice(oraclesList[1]) * (if (isOracleProvideList[1])
274256 then 1
275257 else 0))) + (getOracleProvidePrice(oraclesList[2]) * (if (isOracleProvideList[2])
276258 then 1
277259 else 0))) + (getOracleProvidePrice(oraclesList[3]) * (if (isOracleProvideList[3])
278260 then 1
279261 else 0))) + (getOracleProvidePrice(oraclesList[4]) * (if (isOracleProvideList[4])
280262 then 1
281263 else 0)))
282264 let newPrice = (priceSum / priceProvidingCount)
283265 if (isBlocked)
284266 then throw("contract is blocked")
285267 else if (if (!(isPricePending))
286268 then true
287269 else (blockExpireProviding >= height))
288270 then throw("wait for the end of the price providing")
289271 else if ((bftCoefficientOracle > priceProvidingCount))
290- then throw("2/3 oracles need to set a price")
272+ then throw("3/5 oracles need to set a price")
291273 else if (if ((newPrice >= (price + ((price * percentPriceOffset) / 100))))
292274 then true
293275 else ((price - ((price * percentPriceOffset) / 100)) >= newPrice))
294276 then WriteSet([DataEntry(IsBlockedKey, true), DataEntry(getBlackSwarmPriceKey(height), newPrice)])
295277 else {
296278 let newPriceIndex = (priceIndex + 1)
297279 WriteSet([DataEntry(PriceKey, newPrice), DataEntry(getPriceHistoryKey(height), newPrice), DataEntry(IsPricePendingKey, false), DataEntry(PriceIndexKey, newPriceIndex), DataEntry(getHeightPriceByIndexKey(newPriceIndex), height)])
298280 }
299281 }
300282
301283
302284
303285 @Callable(i)
304286 func vote (action) = {
305287 let account = toString(i.caller)
306288 let adminsListWithoutAccount = convertJsonArrayToList(dropElementInJsonArray(admins, account))
307289 let lastAction = getAdminVoteAction(account)
308290 let blockVotes = {
309- let $list998410052 = adminsListWithoutAccount
310- let $size998410052 = size($list998410052)
311- let $acc0998410052 = nil
312- if (($size998410052 == 0))
313- then $acc0998410052
291+ let $list98299897 = adminsListWithoutAccount
292+ let $size98299897 = size($list98299897)
293+ let $acc098299897 = nil
294+ if (($size98299897 == 0))
295+ then $acc098299897
314296 else {
315- let $acc1998410052 = filterAdminsVoteByBlockAction($acc0998410052, $list998410052[0])
316- if (($size998410052 == 1))
317- then $acc1998410052
297+ let $acc198299897 = filterAdminsVoteByBlockAction($acc098299897, $list98299897[0])
298+ if (($size98299897 == 1))
299+ then $acc198299897
318300 else {
319- let $acc2998410052 = filterAdminsVoteByBlockAction($acc1998410052, $list998410052[1])
320- if (($size998410052 == 2))
321- then $acc2998410052
301+ let $acc298299897 = filterAdminsVoteByBlockAction($acc198299897, $list98299897[1])
302+ if (($size98299897 == 2))
303+ then $acc298299897
322304 else {
323- let $acc3998410052 = filterAdminsVoteByBlockAction($acc2998410052, $list998410052[2])
324- if (($size998410052 == 3))
325- then $acc3998410052
305+ let $acc398299897 = filterAdminsVoteByBlockAction($acc298299897, $list98299897[2])
306+ if (($size98299897 == 3))
307+ then $acc398299897
326308 else {
327- let $acc4998410052 = filterAdminsVoteByBlockAction($acc3998410052, $list998410052[3])
328- if (($size998410052 == 4))
329- then $acc4998410052
309+ let $acc498299897 = filterAdminsVoteByBlockAction($acc398299897, $list98299897[3])
310+ if (($size98299897 == 4))
311+ then $acc498299897
330312 else {
331- let $acc5998410052 = filterAdminsVoteByBlockAction($acc4998410052, $list998410052[4])
332- if (($size998410052 == 5))
333- then $acc5998410052
313+ let $acc598299897 = filterAdminsVoteByBlockAction($acc498299897, $list98299897[4])
314+ if (($size98299897 == 5))
315+ then $acc598299897
334316 else {
335- let $acc6998410052 = filterAdminsVoteByBlockAction($acc5998410052, $list998410052[5])
317+ let $acc698299897 = filterAdminsVoteByBlockAction($acc598299897, $list98299897[5])
336318 throw("List size exceed 5")
337319 }
338320 }
339321 }
340322 }
341323 }
342324 }
343325 }
344326 let unblockVotes = {
345- let $list1007610146 = adminsListWithoutAccount
346- let $size1007610146 = size($list1007610146)
347- let $acc01007610146 = nil
348- if (($size1007610146 == 0))
349- then $acc01007610146
327+ let $list99219991 = adminsListWithoutAccount
328+ let $size99219991 = size($list99219991)
329+ let $acc099219991 = nil
330+ if (($size99219991 == 0))
331+ then $acc099219991
350332 else {
351- let $acc11007610146 = filterAdminsVoteByUnblockAction($acc01007610146, $list1007610146[0])
352- if (($size1007610146 == 1))
353- then $acc11007610146
333+ let $acc199219991 = filterAdminsVoteByUnblockAction($acc099219991, $list99219991[0])
334+ if (($size99219991 == 1))
335+ then $acc199219991
354336 else {
355- let $acc21007610146 = filterAdminsVoteByUnblockAction($acc11007610146, $list1007610146[1])
356- if (($size1007610146 == 2))
357- then $acc21007610146
337+ let $acc299219991 = filterAdminsVoteByUnblockAction($acc199219991, $list99219991[1])
338+ if (($size99219991 == 2))
339+ then $acc299219991
358340 else {
359- let $acc31007610146 = filterAdminsVoteByUnblockAction($acc21007610146, $list1007610146[2])
360- if (($size1007610146 == 3))
361- then $acc31007610146
341+ let $acc399219991 = filterAdminsVoteByUnblockAction($acc299219991, $list99219991[2])
342+ if (($size99219991 == 3))
343+ then $acc399219991
362344 else {
363- let $acc41007610146 = filterAdminsVoteByUnblockAction($acc31007610146, $list1007610146[3])
364- if (($size1007610146 == 4))
365- then $acc41007610146
345+ let $acc499219991 = filterAdminsVoteByUnblockAction($acc399219991, $list99219991[3])
346+ if (($size99219991 == 4))
347+ then $acc499219991
366348 else {
367- let $acc51007610146 = filterAdminsVoteByUnblockAction($acc41007610146, $list1007610146[4])
368- if (($size1007610146 == 5))
369- then $acc51007610146
349+ let $acc599219991 = filterAdminsVoteByUnblockAction($acc499219991, $list99219991[4])
350+ if (($size99219991 == 5))
351+ then $acc599219991
370352 else {
371- let $acc61007610146 = filterAdminsVoteByUnblockAction($acc51007610146, $list1007610146[5])
353+ let $acc699219991 = filterAdminsVoteByUnblockAction($acc599219991, $list99219991[5])
372354 throw("List size exceed 5")
373355 }
374356 }
375357 }
376358 }
377359 }
378360 }
379361 }
380362 let updateVotes = {
381- let $list1016910238 = adminsListWithoutAccount
382- let $size1016910238 = size($list1016910238)
383- let $acc01016910238 = nil
384- if (($size1016910238 == 0))
385- then $acc01016910238
363+ let $list1001410083 = adminsListWithoutAccount
364+ let $size1001410083 = size($list1001410083)
365+ let $acc01001410083 = nil
366+ if (($size1001410083 == 0))
367+ then $acc01001410083
386368 else {
387- let $acc11016910238 = filterAdminsVoteByUpdateAction($acc01016910238, $list1016910238[0])
388- if (($size1016910238 == 1))
389- then $acc11016910238
369+ let $acc11001410083 = filterAdminsVoteByUpdateAction($acc01001410083, $list1001410083[0])
370+ if (($size1001410083 == 1))
371+ then $acc11001410083
390372 else {
391- let $acc21016910238 = filterAdminsVoteByUpdateAction($acc11016910238, $list1016910238[1])
392- if (($size1016910238 == 2))
393- then $acc21016910238
373+ let $acc21001410083 = filterAdminsVoteByUpdateAction($acc11001410083, $list1001410083[1])
374+ if (($size1001410083 == 2))
375+ then $acc21001410083
394376 else {
395- let $acc31016910238 = filterAdminsVoteByUpdateAction($acc21016910238, $list1016910238[2])
396- if (($size1016910238 == 3))
397- then $acc31016910238
377+ let $acc31001410083 = filterAdminsVoteByUpdateAction($acc21001410083, $list1001410083[2])
378+ if (($size1001410083 == 3))
379+ then $acc31001410083
398380 else {
399- let $acc41016910238 = filterAdminsVoteByUpdateAction($acc31016910238, $list1016910238[3])
400- if (($size1016910238 == 4))
401- then $acc41016910238
381+ let $acc41001410083 = filterAdminsVoteByUpdateAction($acc31001410083, $list1001410083[3])
382+ if (($size1001410083 == 4))
383+ then $acc41001410083
402384 else {
403- let $acc51016910238 = filterAdminsVoteByUpdateAction($acc41016910238, $list1016910238[4])
404- if (($size1016910238 == 5))
405- then $acc51016910238
385+ let $acc51001410083 = filterAdminsVoteByUpdateAction($acc41001410083, $list1001410083[4])
386+ if (($size1001410083 == 5))
387+ then $acc51001410083
406388 else {
407- let $acc61016910238 = filterAdminsVoteByUpdateAction($acc51016910238, $list1016910238[5])
389+ let $acc61001410083 = filterAdminsVoteByUpdateAction($acc51001410083, $list1001410083[5])
408390 throw("List size exceed 5")
409391 }
410392 }
411393 }
412394 }
413395 }
414396 }
415397 }
416398 let blockVoteCount = (size(blockVotes) + (if ((action == BLOCK))
417399 then 1
418400 else 0))
419401 let unblockVoteCount = (size(unblockVotes) + (if ((action == UNBLOCK))
420402 then 1
421403 else 0))
422404 let updateVotesCount = (size(updateVotes) + (if ((action == UPDATE))
423405 then 1
424406 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]), "")]
425408 if (if ((blockVoteCount >= bftCoefficientAdmin))
426409 then true
427410 else (unblockVoteCount >= bftCoefficientAdmin))
428- then WriteSet([DataEntry(IsBlockedKey, if ((blockVoteCount >= bftCoefficientAdmin))
411+ then WriteSet([DataEntry(IsPricePendingKey, false), DataEntry(IsBlockedKey, if ((blockVoteCount >= bftCoefficientAdmin))
429412 then true
430- else false), DataEntry(BlockExpireVoteKey, 0), DataEntry(BlockExpireProvidingKey, 0), DataEntry(IsPricePendingKey, false), DataEntry(getAdminVoteActionKey(adminsListWithoutAccount[0]), ""), DataEntry(getAdminVoteActionKey(adminsListWithoutAccount[1]), ""), DataEntry(getAdminVoteActionKey(adminsListWithoutAccount[2]), ""), DataEntry(getAdminVoteActionKey(adminsListWithoutAccount[3]), "")])
413+ else false)] :: resetResult)
431414 else if ((updateVotesCount > bftCoefficientAdmin))
432- then WriteSet([DataEntry(BlockExpireVoteKey, 0), DataEntry(BlockExpireProvidingKey, 0), DataEntry(ScriptUpdateBlockKey, (height + scriptUpdateInterval)), DataEntry(getAdminVoteActionKey(adminsListWithoutAccount[0]), ""), DataEntry(getAdminVoteActionKey(adminsListWithoutAccount[1]), ""), DataEntry(getAdminVoteActionKey(adminsListWithoutAccount[2]), ""), DataEntry(getAdminVoteActionKey(adminsListWithoutAccount[3]), "")])
433- else if ((height > blockExpireVote))
434- then WriteSet([DataEntry(BlockExpireVoteKey, (height + voteInterval)), DataEntry(getAdminVoteActionKey(account), action), DataEntry(getAdminVoteActionKey(adminsListWithoutAccount[0]), ""), DataEntry(getAdminVoteActionKey(adminsListWithoutAccount[1]), ""), DataEntry(getAdminVoteActionKey(adminsListWithoutAccount[2]), ""), DataEntry(getAdminVoteActionKey(adminsListWithoutAccount[3]), "")])
435- else WriteSet([DataEntry(getAdminVoteActionKey(account), action)])
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)])
436421 }
437422
438423

github/deemru/w8io/6500d08 
136.26 ms