| 768 | } |
| 769 | |
| 770 | td::UniqueSlice ProxyRunner::get_from_db(td::Slice key) { |
| 771 | std::string config_value; |
| 772 | auto k = kv_->get(key, config_value); |
| 773 | k.ensure(); |
| 774 | |
| 775 | if (k.move_as_ok() == td::KeyValue::GetStatus::Ok) { |
| 776 | auto value = td::Slice(config_value); |
| 777 | CHECK(value.size() >= 64); |
| 778 | auto signature = value.copy().remove_prefix(value.size() - 64); |
| 779 | value.remove_suffix(64); |
| 780 | |
| 781 | public_key_obj_->verify_signature(value, signature).ensure(); |
| 782 | |
| 783 | return td::UniqueSlice(value); |
| 784 | } else { |
| 785 | return td::UniqueSlice(); |
| 786 | } |
| 787 | } |
| 788 | |
| 789 | void ProxyRunner::on_receive_saved_state_seqno(td::int32 seqno, const td::Bits256 &unique_hash) { |
| 790 | LOG(INFO) << "received saved state from blockchain: seqno=" << seqno << " unique_hash=" << unique_hash.to_hex() |
no test coverage detected